From f3f3994f25d74bc31ad73f54cd1ce21760ed66b9 Mon Sep 17 00:00:00 2001 From: Daniel Rosenwasser Date: Thu, 11 Sep 2014 14:52:14 -0700 Subject: [PATCH 001/195] Added tests. --- ...edMethodWithOverloadedArguments.errors.txt | 96 ++++++++++++++ ...OverloadedMethodWithOverloadedArguments.js | 125 ++++++++++++++++++ .../moduleWithStatementsOfEveryKind.js | 8 ++ .../moduleWithStatementsOfEveryKind.types | 14 ++ ...InitializersForwardReferencing.errors.txt} | 8 +- ...arameterInitializersForwardReferencing.js} | 17 ++- ...arameterInitializersForwardReferencing.ts} | 6 +- .../moduleWithStatementsOfEveryKind.ts | 8 ++ ...OverloadedMethodWithOverloadedArguments.ts | 86 ++++++++++++ 9 files changed, 362 insertions(+), 6 deletions(-) create mode 100644 tests/baselines/reference/genericCallToOverloadedMethodWithOverloadedArguments.errors.txt create mode 100644 tests/baselines/reference/genericCallToOverloadedMethodWithOverloadedArguments.js rename tests/baselines/reference/{defaultArgsForwardReferencing.errors.txt => parameterInitializersForwardReferencing.errors.txt} (83%) rename tests/baselines/reference/{defaultArgsForwardReferencing.js => parameterInitializersForwardReferencing.js} (76%) rename tests/cases/{compiler/defaultArgsForwardReferencing.ts => conformance/functions/parameterInitializersForwardReferencing.ts} (68%) create mode 100644 tests/cases/conformance/types/typeRelationships/typeInference/genericCallToOverloadedMethodWithOverloadedArguments.ts diff --git a/tests/baselines/reference/genericCallToOverloadedMethodWithOverloadedArguments.errors.txt b/tests/baselines/reference/genericCallToOverloadedMethodWithOverloadedArguments.errors.txt new file mode 100644 index 00000000000..95fec27cff6 --- /dev/null +++ b/tests/baselines/reference/genericCallToOverloadedMethodWithOverloadedArguments.errors.txt @@ -0,0 +1,96 @@ +==== tests/cases/conformance/types/typeRelationships/typeInference/genericCallToOverloadedMethodWithOverloadedArguments.ts (4 errors) ==== + + module m1 { + interface Promise { + then(cb: (x: T) => Promise): Promise; + } + + declare function testFunction(n: number): Promise; + + var numPromise: Promise; + var newPromise = numPromise.then(testFunction); + } + + ////////////////////////////////////// + + module m2 { + interface Promise { + then(cb: (x: T) => Promise): Promise; + } + + declare function testFunction(n: number): Promise; + declare function testFunction(s: string): Promise; + + var numPromise: Promise; + var newPromise = numPromise.then(testFunction); + ~~~~~~~~~~~~ +!!! Argument of type '{ (n: number): Promise; (s: string): Promise; }' is not assignable to parameter of type '(x: number) => Promise'. + } + + ////////////////////////////////////// + + module m3 { + interface Promise { + then(cb: (x: T) => Promise): Promise; + then(cb: (x: T) => Promise, error?: (error: any) => Promise): Promise; + } + + declare function testFunction(n: number): Promise; + + var numPromise: Promise; + var newPromise = numPromise.then(testFunction); + } + + ////////////////////////////////////// + + module m4 { + interface Promise { + then(cb: (x: T) => Promise): Promise; + then(cb: (x: T) => Promise, error?: (error: any) => Promise): Promise; + } + + declare function testFunction(n: number): Promise; + declare function testFunction(s: string): Promise; + + var numPromise: Promise; + var newPromise = numPromise.then(testFunction); + ~~~~~~~~~~~~ +!!! Argument of type '{ (n: number): Promise; (s: string): Promise; }' is not assignable to parameter of type '(x: number) => Promise'. + } + + ////////////////////////////////////// + + module m5 { + interface Promise { + then(cb: (x: T) => Promise): Promise; + then(cb: (x: T) => Promise, error?: (error: any) => Promise): Promise; + then(cb: (x: T) => Promise, error?: (error: any) => U, progress?: (preservation: any) => void): Promise; + } + + declare function testFunction(n: number): Promise; + declare function testFunction(s: string): Promise; + + var numPromise: Promise; + var newPromise = numPromise.then(testFunction); + ~~~~~~~~~~~~ +!!! Argument of type '{ (n: number): Promise; (s: string): Promise; }' is not assignable to parameter of type '(x: number) => Promise'. + } + + ////////////////////////////////////// + + module m6 { + interface Promise { + then(cb: (x: T) => Promise): Promise; + then(cb: (x: T) => Promise, error?: (error: any) => Promise): Promise; + } + + declare function testFunction(n: number): Promise; + declare function testFunction(s: string): Promise; + declare function testFunction(b: boolean): Promise; + + var numPromise: Promise; + var newPromise = numPromise.then(testFunction); + ~~~~~~~~~~~~ +!!! Argument of type '{ (n: number): Promise; (s: string): Promise; (b: boolean): Promise; }' is not assignable to parameter of type '(x: number) => Promise'. + } + \ No newline at end of file diff --git a/tests/baselines/reference/genericCallToOverloadedMethodWithOverloadedArguments.js b/tests/baselines/reference/genericCallToOverloadedMethodWithOverloadedArguments.js new file mode 100644 index 00000000000..9bfb6eec113 --- /dev/null +++ b/tests/baselines/reference/genericCallToOverloadedMethodWithOverloadedArguments.js @@ -0,0 +1,125 @@ +//// [genericCallToOverloadedMethodWithOverloadedArguments.ts] + +module m1 { + interface Promise { + then(cb: (x: T) => Promise): Promise; + } + + declare function testFunction(n: number): Promise; + + var numPromise: Promise; + var newPromise = numPromise.then(testFunction); +} + +////////////////////////////////////// + +module m2 { + interface Promise { + then(cb: (x: T) => Promise): Promise; + } + + declare function testFunction(n: number): Promise; + declare function testFunction(s: string): Promise; + + var numPromise: Promise; + var newPromise = numPromise.then(testFunction); +} + +////////////////////////////////////// + +module m3 { + interface Promise { + then(cb: (x: T) => Promise): Promise; + then(cb: (x: T) => Promise, error?: (error: any) => Promise): Promise; + } + + declare function testFunction(n: number): Promise; + + var numPromise: Promise; + var newPromise = numPromise.then(testFunction); +} + +////////////////////////////////////// + +module m4 { + interface Promise { + then(cb: (x: T) => Promise): Promise; + then(cb: (x: T) => Promise, error?: (error: any) => Promise): Promise; + } + + declare function testFunction(n: number): Promise; + declare function testFunction(s: string): Promise; + + var numPromise: Promise; + var newPromise = numPromise.then(testFunction); +} + +////////////////////////////////////// + +module m5 { + interface Promise { + then(cb: (x: T) => Promise): Promise; + then(cb: (x: T) => Promise, error?: (error: any) => Promise): Promise; + then(cb: (x: T) => Promise, error?: (error: any) => U, progress?: (preservation: any) => void): Promise; + } + + declare function testFunction(n: number): Promise; + declare function testFunction(s: string): Promise; + + var numPromise: Promise; + var newPromise = numPromise.then(testFunction); +} + +////////////////////////////////////// + +module m6 { + interface Promise { + then(cb: (x: T) => Promise): Promise; + then(cb: (x: T) => Promise, error?: (error: any) => Promise): Promise; + } + + declare function testFunction(n: number): Promise; + declare function testFunction(s: string): Promise; + declare function testFunction(b: boolean): Promise; + + var numPromise: Promise; + var newPromise = numPromise.then(testFunction); +} + + +//// [genericCallToOverloadedMethodWithOverloadedArguments.js] +var m1; +(function (m1) { + var numPromise; + var newPromise = numPromise.then(testFunction); +})(m1 || (m1 = {})); +////////////////////////////////////// +var m2; +(function (m2) { + var numPromise; + var newPromise = numPromise.then(testFunction); +})(m2 || (m2 = {})); +////////////////////////////////////// +var m3; +(function (m3) { + var numPromise; + var newPromise = numPromise.then(testFunction); +})(m3 || (m3 = {})); +////////////////////////////////////// +var m4; +(function (m4) { + var numPromise; + var newPromise = numPromise.then(testFunction); +})(m4 || (m4 = {})); +////////////////////////////////////// +var m5; +(function (m5) { + var numPromise; + var newPromise = numPromise.then(testFunction); +})(m5 || (m5 = {})); +////////////////////////////////////// +var m6; +(function (m6) { + var numPromise; + var newPromise = numPromise.then(testFunction); +})(m6 || (m6 = {})); diff --git a/tests/baselines/reference/moduleWithStatementsOfEveryKind.js b/tests/baselines/reference/moduleWithStatementsOfEveryKind.js index d30c36584b8..8496588c5bb 100644 --- a/tests/baselines/reference/moduleWithStatementsOfEveryKind.js +++ b/tests/baselines/reference/moduleWithStatementsOfEveryKind.js @@ -22,6 +22,10 @@ module A { return 'hello ' + s; } var ol = { s: 'hello', id: 2, isvalid: true }; + + declare class DC { + static x: number; + } } module Y { @@ -47,6 +51,10 @@ module Y { return 'hello ' + s; } export var ol = { s: 'hello', id: 2, isvalid: true }; + + export declare class DC { + static x: number; + } } diff --git a/tests/baselines/reference/moduleWithStatementsOfEveryKind.types b/tests/baselines/reference/moduleWithStatementsOfEveryKind.types index 263da21f524..0bade1f2d8e 100644 --- a/tests/baselines/reference/moduleWithStatementsOfEveryKind.types +++ b/tests/baselines/reference/moduleWithStatementsOfEveryKind.types @@ -71,6 +71,13 @@ module A { >s : string >id : number >isvalid : boolean + + declare class DC { +>DC : DC + + static x: number; +>x : number + } } module Y { @@ -145,5 +152,12 @@ module Y { >s : string >id : number >isvalid : boolean + + export declare class DC { +>DC : DC + + static x: number; +>x : number + } } diff --git a/tests/baselines/reference/defaultArgsForwardReferencing.errors.txt b/tests/baselines/reference/parameterInitializersForwardReferencing.errors.txt similarity index 83% rename from tests/baselines/reference/defaultArgsForwardReferencing.errors.txt rename to tests/baselines/reference/parameterInitializersForwardReferencing.errors.txt index 2b8250f6fb4..c528203fdd1 100644 --- a/tests/baselines/reference/defaultArgsForwardReferencing.errors.txt +++ b/tests/baselines/reference/parameterInitializersForwardReferencing.errors.txt @@ -1,4 +1,4 @@ -==== tests/cases/compiler/defaultArgsForwardReferencing.ts (10 errors) ==== +==== tests/cases/conformance/functions/parameterInitializersForwardReferencing.ts (10 errors) ==== function left(a, b = a, c = b) { a; b; @@ -55,4 +55,8 @@ ~ !!! Initializer of parameter 'b' cannot reference identifier 'c' declared after it. ~ -!!! Initializer of parameter 'c' cannot reference identifier 'd' declared after it. \ No newline at end of file +!!! Initializer of parameter 'c' cannot reference identifier 'd' declared after it. + + // Should not produce errors - can reference later parameters if they occur within a function expression initializer. + function f(a, b = function () { return c; }, c = b()) { + } \ No newline at end of file diff --git a/tests/baselines/reference/defaultArgsForwardReferencing.js b/tests/baselines/reference/parameterInitializersForwardReferencing.js similarity index 76% rename from tests/baselines/reference/defaultArgsForwardReferencing.js rename to tests/baselines/reference/parameterInitializersForwardReferencing.js index 4e9a5ae60e3..90fa1bdcd23 100644 --- a/tests/baselines/reference/defaultArgsForwardReferencing.js +++ b/tests/baselines/reference/parameterInitializersForwardReferencing.js @@ -1,4 +1,4 @@ -//// [defaultArgsForwardReferencing.ts] +//// [parameterInitializersForwardReferencing.ts] function left(a, b = a, c = b) { a; b; @@ -35,9 +35,13 @@ class C { } // Function expressions -var x = (a = b, b = c, c = d) => { var d; }; +var x = (a = b, b = c, c = d) => { var d; }; + +// Should not produce errors - can reference later parameters if they occur within a function expression initializer. +function f(a, b = function () { return c; }, c = b()) { +} -//// [defaultArgsForwardReferencing.js] +//// [parameterInitializersForwardReferencing.js] function left(a, b, c) { if (b === void 0) { b = a; } if (c === void 0) { c = b; } @@ -97,3 +101,10 @@ var x = function (a, b, c) { if (c === void 0) { c = d; } var d; }; +// Should not produce errors - can reference later parameters if they occur within a function expression initializer. +function f(a, b, c) { + if (b === void 0) { b = function () { + return c; + }; } + if (c === void 0) { c = b(); } +} diff --git a/tests/cases/compiler/defaultArgsForwardReferencing.ts b/tests/cases/conformance/functions/parameterInitializersForwardReferencing.ts similarity index 68% rename from tests/cases/compiler/defaultArgsForwardReferencing.ts rename to tests/cases/conformance/functions/parameterInitializersForwardReferencing.ts index c169f7d23e8..fa3549ea2c5 100644 --- a/tests/cases/compiler/defaultArgsForwardReferencing.ts +++ b/tests/cases/conformance/functions/parameterInitializersForwardReferencing.ts @@ -34,4 +34,8 @@ class C { } // Function expressions -var x = (a = b, b = c, c = d) => { var d; }; \ No newline at end of file +var x = (a = b, b = c, c = d) => { var d; }; + +// Should not produce errors - can reference later parameters if they occur within a function expression initializer. +function f(a, b = function () { return c; }, c = b()) { +} \ No newline at end of file diff --git a/tests/cases/conformance/internalModules/moduleBody/moduleWithStatementsOfEveryKind.ts b/tests/cases/conformance/internalModules/moduleBody/moduleWithStatementsOfEveryKind.ts index 202c84013ed..6991795b26c 100644 --- a/tests/cases/conformance/internalModules/moduleBody/moduleWithStatementsOfEveryKind.ts +++ b/tests/cases/conformance/internalModules/moduleBody/moduleWithStatementsOfEveryKind.ts @@ -21,6 +21,10 @@ module A { return 'hello ' + s; } var ol = { s: 'hello', id: 2, isvalid: true }; + + declare class DC { + static x: number; + } } module Y { @@ -46,4 +50,8 @@ module Y { return 'hello ' + s; } export var ol = { s: 'hello', id: 2, isvalid: true }; + + export declare class DC { + static x: number; + } } diff --git a/tests/cases/conformance/types/typeRelationships/typeInference/genericCallToOverloadedMethodWithOverloadedArguments.ts b/tests/cases/conformance/types/typeRelationships/typeInference/genericCallToOverloadedMethodWithOverloadedArguments.ts new file mode 100644 index 00000000000..b1db7364ab2 --- /dev/null +++ b/tests/cases/conformance/types/typeRelationships/typeInference/genericCallToOverloadedMethodWithOverloadedArguments.ts @@ -0,0 +1,86 @@ + +module m1 { + interface Promise { + then(cb: (x: T) => Promise): Promise; + } + + declare function testFunction(n: number): Promise; + + var numPromise: Promise; + var newPromise = numPromise.then(testFunction); +} + +////////////////////////////////////// + +module m2 { + interface Promise { + then(cb: (x: T) => Promise): Promise; + } + + declare function testFunction(n: number): Promise; + declare function testFunction(s: string): Promise; + + var numPromise: Promise; + var newPromise = numPromise.then(testFunction); +} + +////////////////////////////////////// + +module m3 { + interface Promise { + then(cb: (x: T) => Promise): Promise; + then(cb: (x: T) => Promise, error?: (error: any) => Promise): Promise; + } + + declare function testFunction(n: number): Promise; + + var numPromise: Promise; + var newPromise = numPromise.then(testFunction); +} + +////////////////////////////////////// + +module m4 { + interface Promise { + then(cb: (x: T) => Promise): Promise; + then(cb: (x: T) => Promise, error?: (error: any) => Promise): Promise; + } + + declare function testFunction(n: number): Promise; + declare function testFunction(s: string): Promise; + + var numPromise: Promise; + var newPromise = numPromise.then(testFunction); +} + +////////////////////////////////////// + +module m5 { + interface Promise { + then(cb: (x: T) => Promise): Promise; + then(cb: (x: T) => Promise, error?: (error: any) => Promise): Promise; + then(cb: (x: T) => Promise, error?: (error: any) => U, progress?: (preservation: any) => void): Promise; + } + + declare function testFunction(n: number): Promise; + declare function testFunction(s: string): Promise; + + var numPromise: Promise; + var newPromise = numPromise.then(testFunction); +} + +////////////////////////////////////// + +module m6 { + interface Promise { + then(cb: (x: T) => Promise): Promise; + then(cb: (x: T) => Promise, error?: (error: any) => Promise): Promise; + } + + declare function testFunction(n: number): Promise; + declare function testFunction(s: string): Promise; + declare function testFunction(b: boolean): Promise; + + var numPromise: Promise; + var newPromise = numPromise.then(testFunction); +} From fe4a96e1bdee5765dabc3216d44940a6e4be7e55 Mon Sep 17 00:00:00 2001 From: Mohamed Hegazy Date: Tue, 28 Oct 2014 21:21:47 -0700 Subject: [PATCH 002/195] Allow static side of native types to be extended --- src/lib/core.d.ts | 86 +++++++++++++----- ...peWithInaccessibleTypeAsTypeArgument.types | 2 +- tests/baselines/reference/arrayConcat2.types | 2 +- .../reference/arrayConstructors1.types | 12 +-- tests/baselines/reference/arrayLiteral.types | 8 +- .../reference/arrayTypeOfTypeOf.errors.txt | 8 +- .../reference/castNewObjectBug.types | 2 +- ...aOperatorWithSecondOperandObjectType.types | 4 +- ...aOperatorWithSecondOperandStringType.types | 8 +- .../commaOperatorsMultipleOperators.types | 4 +- ...itionalOperatorConditionIsObjectType.types | 4 +- ...DeclarationShadowedByVarDeclaration3.types | 2 +- ...errorMessageOnObjectLiteralType.errors.txt | 4 +- ...veryTypeWithAnnotationAndInitializer.types | 4 +- .../reference/everyTypeWithInitializer.types | 4 +- .../reference/exportAssignValueAndType.types | 2 +- .../reference/exportEqualNamespaces.types | 2 +- tests/baselines/reference/forStatements.types | 4 +- .../forStatementsMultipleValidDecl.types | 2 +- .../functionConstraintSatisfaction.types | 2 +- .../reference/functionOnlyHasThrow.types | 2 +- tests/baselines/reference/functionType.types | 2 +- ...ericFunctionsWithOptionalParameters3.types | 6 +- .../reference/getterSetterNonAccessor.types | 2 +- .../heterogeneousArrayLiterals.types | 2 +- .../reference/implementArrayInterface.js | 2 +- .../reference/implementArrayInterface.types | 4 +- .../reference/library_ArraySlice.types | 6 +- .../library_DatePrototypeProperties.types | 88 +++++++++---------- .../library_ObjectPrototypeProperties.types | 16 ++-- .../reference/library_StringSlice.types | 6 +- tests/baselines/reference/newArrays.types | 2 +- ...ullIsSubtypeOfEverythingButUndefined.types | 8 +- .../reference/objectLitGetterSetter.types | 2 +- ...ctTypeWithStringNamedNumericProperty.types | 22 ++--- ...AccessOnTypeParameterWithConstraints.types | 2 +- .../reference/redefineArray.errors.txt | 4 +- .../reference/returnStatements.types | 2 +- .../returnTypeParameterWithModules.types | 2 +- .../sourceMapValidationTryCatchFinally.types | 2 +- .../subtypingWithOptionalProperties.types | 2 +- .../reference/switchStatements.types | 8 +- .../baselines/reference/throwStatements.types | 8 +- .../baselines/reference/underscoreTest1.types | 4 +- .../validMultipleVariableDeclarations.types | 2 +- .../cases/compiler/implementArrayInterface.ts | 2 +- 46 files changed, 207 insertions(+), 167 deletions(-) diff --git a/src/lib/core.d.ts b/src/lib/core.d.ts index 8e16e4bdd6c..189af20ad0b 100644 --- a/src/lib/core.d.ts +++ b/src/lib/core.d.ts @@ -109,10 +109,7 @@ interface Object { propertyIsEnumerable(v: string): boolean; } -/** - * Provides functionality common to all JavaScript objects. - */ -declare var Object: { +interface ObjectConstructor { new (value?: any): Object; (): any; (value: any): any; @@ -206,6 +203,11 @@ declare var Object: { keys(o: any): string[]; } +/** + * Provides functionality common to all JavaScript objects. + */ +declare var Object: ObjectConstructor; + /** * Creates a new function. */ @@ -240,8 +242,8 @@ interface Function { caller: Function; } -declare var Function: { - /** +interface FunctionConstructor { + /** * Creates a new function. * @param args A list of arguments the function accepts. */ @@ -250,6 +252,8 @@ declare var Function: { prototype: Function; } +declare var Function: FunctionConstructor; + interface IArguments { [index: number]: any; length: number; @@ -409,24 +413,29 @@ interface String { [index: number]: string; } -/** - * Allows manipulation and formatting of text strings and determination and location of substrings within strings. - */ -declare var String: { +interface StringConstructor { new (value?: any): String; (value?: any): string; prototype: String; fromCharCode(...codes: number[]): string; } +/** + * Allows manipulation and formatting of text strings and determination and location of substrings within strings. + */ +declare var String: StringConstructor; + interface Boolean { } -declare var Boolean: { + +interface BoolenConstructor { new (value?: any): Boolean; (value?: any): boolean; prototype: Boolean; } +declare var Boolean: BoolenConstructor; + interface Number { /** * Returns a string representation of an object. @@ -453,8 +462,7 @@ interface Number { toPrecision(precision?: number): string; } -/** An object that represents a number of any kind. All JavaScript numbers are 64-bit floating-point numbers. */ -declare var Number: { +interface NumberConstructor { new (value?: any): Number; (value?: any): number; prototype: Number; @@ -484,6 +492,9 @@ declare var Number: { POSITIVE_INFINITY: number; } +/** An object that represents a number of any kind. All JavaScript numbers are 64-bit floating-point numbers. */ +declare var Number: NumberConstructor; + interface Math { /** The mathematical constant e. This is Euler's number, the base of natural logarithms. */ E: number; @@ -749,7 +760,7 @@ interface Date { toJSON(key?: any): string; } -declare var Date: { +interface DateConstructor { new (): Date; new (value: number): Date; new (value: string): Date; @@ -775,6 +786,8 @@ declare var Date: { now(): number; } +declare var Date: DateConstructor; + interface RegExpMatchArray extends Array { index?: number; input?: string; @@ -815,7 +828,8 @@ interface RegExp { // Non-standard extensions compile(): RegExp; } -declare var RegExp: { + +interface RegExpConstructor { new (pattern: string, flags?: string): RegExp; (pattern: string, flags?: string): RegExp; @@ -832,64 +846,87 @@ declare var RegExp: { lastMatch: string; } +declare var RegExp: RegExpConstructor; + interface Error { name: string; message: string; } -declare var Error: { + +interface ErrorConstructor { new (message?: string): Error; (message?: string): Error; prototype: Error; } +declare var Error: ErrorConstructor; + interface EvalError extends Error { } -declare var EvalError: { + +interface EvalErrorConstructor { new (message?: string): EvalError; (message?: string): EvalError; prototype: EvalError; } +declare var EvalError: EvalErrorConstructor; + interface RangeError extends Error { } -declare var RangeError: { + +interface RangeErrorConstructor { new (message?: string): RangeError; (message?: string): RangeError; prototype: RangeError; } +declare var RangeError: RangeErrorConstructor; + interface ReferenceError extends Error { } -declare var ReferenceError: { + +interface ReferenceErrorConstructor { new (message?: string): ReferenceError; (message?: string): ReferenceError; prototype: ReferenceError; } +declare var ReferenceError: ReferenceErrorConstructor; + interface SyntaxError extends Error { } -declare var SyntaxError: { + +interface SyntaxErrorConstructor { new (message?: string): SyntaxError; (message?: string): SyntaxError; prototype: SyntaxError; } +declare var SyntaxError: SyntaxErrorConstructor; + interface TypeError extends Error { } -declare var TypeError: { + +interface TypeErrorConstructor { new (message?: string): TypeError; (message?: string): TypeError; prototype: TypeError; } +declare var TypeError: TypeErrorConstructor; + interface URIError extends Error { } -declare var URIError: { + +interface URIErrorConstructor { new (message?: string): URIError; (message?: string): URIError; prototype: URIError; } +declare var URIError: URIErrorConstructor; + interface JSON { /** * Converts a JavaScript Object Notation (JSON) string into an object. @@ -1092,7 +1129,8 @@ interface Array { [n: number]: T; } -declare var Array: { + +interface ArrayConstructor { new (arrayLength?: number): any[]; new (arrayLength: number): T[]; new (...items: T[]): T[]; @@ -1102,3 +1140,5 @@ declare var Array: { isArray(arg: any): boolean; prototype: Array; } + +declare var Array: ArrayConstructor; diff --git a/tests/baselines/reference/ExportVariableOfGenericTypeWithInaccessibleTypeAsTypeArgument.types b/tests/baselines/reference/ExportVariableOfGenericTypeWithInaccessibleTypeAsTypeArgument.types index 46084e85632..ba24bf93442 100644 --- a/tests/baselines/reference/ExportVariableOfGenericTypeWithInaccessibleTypeAsTypeArgument.types +++ b/tests/baselines/reference/ExportVariableOfGenericTypeWithInaccessibleTypeAsTypeArgument.types @@ -17,6 +17,6 @@ module A { export var beez2 = new Array(); >beez2 : B[] >new Array() : B[] ->Array : { (arrayLength?: number): any[]; (arrayLength: number): T[]; (...items: T[]): T[]; new (arrayLength?: number): any[]; new (arrayLength: number): T[]; new (...items: T[]): T[]; isArray(arg: any): boolean; prototype: any[]; } +>Array : ArrayConstructor >B : B } diff --git a/tests/baselines/reference/arrayConcat2.types b/tests/baselines/reference/arrayConcat2.types index 4cd02d31f9d..aa0e0478033 100644 --- a/tests/baselines/reference/arrayConcat2.types +++ b/tests/baselines/reference/arrayConcat2.types @@ -18,7 +18,7 @@ a.concat('Hello'); var b = new Array(); >b : string[] >new Array() : string[] ->Array : { (arrayLength?: number): any[]; (arrayLength: number): T[]; (...items: T[]): T[]; new (arrayLength?: number): any[]; new (arrayLength: number): T[]; new (...items: T[]): T[]; isArray(arg: any): boolean; prototype: any[]; } +>Array : ArrayConstructor b.concat('hello'); >b.concat('hello') : string[] diff --git a/tests/baselines/reference/arrayConstructors1.types b/tests/baselines/reference/arrayConstructors1.types index 8b34f32205e..6dbdc0cd8f2 100644 --- a/tests/baselines/reference/arrayConstructors1.types +++ b/tests/baselines/reference/arrayConstructors1.types @@ -6,19 +6,19 @@ x = new Array(1); >x = new Array(1) : any[] >x : string[] >new Array(1) : any[] ->Array : { (arrayLength?: number): any[]; (arrayLength: number): T[]; (...items: T[]): T[]; new (arrayLength?: number): any[]; new (arrayLength: number): T[]; new (...items: T[]): T[]; isArray(arg: any): boolean; prototype: any[]; } +>Array : ArrayConstructor x = new Array('hi', 'bye'); >x = new Array('hi', 'bye') : string[] >x : string[] >new Array('hi', 'bye') : string[] ->Array : { (arrayLength?: number): any[]; (arrayLength: number): T[]; (...items: T[]): T[]; new (arrayLength?: number): any[]; new (arrayLength: number): T[]; new (...items: T[]): T[]; isArray(arg: any): boolean; prototype: any[]; } +>Array : ArrayConstructor x = new Array('hi', 'bye'); >x = new Array('hi', 'bye') : string[] >x : string[] >new Array('hi', 'bye') : string[] ->Array : { (arrayLength?: number): any[]; (arrayLength: number): T[]; (...items: T[]): T[]; new (arrayLength?: number): any[]; new (arrayLength: number): T[]; new (...items: T[]): T[]; isArray(arg: any): boolean; prototype: any[]; } +>Array : ArrayConstructor var y: number[]; >y : number[] @@ -27,17 +27,17 @@ y = new Array(1); >y = new Array(1) : any[] >y : number[] >new Array(1) : any[] ->Array : { (arrayLength?: number): any[]; (arrayLength: number): T[]; (...items: T[]): T[]; new (arrayLength?: number): any[]; new (arrayLength: number): T[]; new (...items: T[]): T[]; isArray(arg: any): boolean; prototype: any[]; } +>Array : ArrayConstructor y = new Array(1,2); >y = new Array(1,2) : number[] >y : number[] >new Array(1,2) : number[] ->Array : { (arrayLength?: number): any[]; (arrayLength: number): T[]; (...items: T[]): T[]; new (arrayLength?: number): any[]; new (arrayLength: number): T[]; new (...items: T[]): T[]; isArray(arg: any): boolean; prototype: any[]; } +>Array : ArrayConstructor y = new Array(1, 2); >y = new Array(1, 2) : number[] >y : number[] >new Array(1, 2) : number[] ->Array : { (arrayLength?: number): any[]; (arrayLength: number): T[]; (...items: T[]): T[]; new (arrayLength?: number): any[]; new (arrayLength: number): T[]; new (...items: T[]): T[]; isArray(arg: any): boolean; prototype: any[]; } +>Array : ArrayConstructor diff --git a/tests/baselines/reference/arrayLiteral.types b/tests/baselines/reference/arrayLiteral.types index 9378a508228..a5ab7368937 100644 --- a/tests/baselines/reference/arrayLiteral.types +++ b/tests/baselines/reference/arrayLiteral.types @@ -8,7 +8,7 @@ var x = []; var x = new Array(1); >x : any[] >new Array(1) : any[] ->Array : { (arrayLength?: number): any[]; (arrayLength: number): T[]; (...items: T[]): T[]; new (arrayLength?: number): any[]; new (arrayLength: number): T[]; new (...items: T[]): T[]; isArray(arg: any): boolean; prototype: any[]; } +>Array : ArrayConstructor var y = [1]; >y : number[] @@ -21,7 +21,7 @@ var y = [1, 2]; var y = new Array(); >y : number[] >new Array() : number[] ->Array : { (arrayLength?: number): any[]; (arrayLength: number): T[]; (...items: T[]): T[]; new (arrayLength?: number): any[]; new (arrayLength: number): T[]; new (...items: T[]): T[]; isArray(arg: any): boolean; prototype: any[]; } +>Array : ArrayConstructor var x2: number[] = []; >x2 : number[] @@ -30,7 +30,7 @@ var x2: number[] = []; var x2: number[] = new Array(1); >x2 : number[] >new Array(1) : any[] ->Array : { (arrayLength?: number): any[]; (arrayLength: number): T[]; (...items: T[]): T[]; new (arrayLength?: number): any[]; new (arrayLength: number): T[]; new (...items: T[]): T[]; isArray(arg: any): boolean; prototype: any[]; } +>Array : ArrayConstructor var y2: number[] = [1]; >y2 : number[] @@ -43,5 +43,5 @@ var y2: number[] = [1, 2]; var y2: number[] = new Array(); >y2 : number[] >new Array() : number[] ->Array : { (arrayLength?: number): any[]; (arrayLength: number): T[]; (...items: T[]): T[]; new (arrayLength?: number): any[]; new (arrayLength: number): T[]; new (...items: T[]): T[]; isArray(arg: any): boolean; prototype: any[]; } +>Array : ArrayConstructor diff --git a/tests/baselines/reference/arrayTypeOfTypeOf.errors.txt b/tests/baselines/reference/arrayTypeOfTypeOf.errors.txt index 807227cc10b..a80c776ea33 100644 --- a/tests/baselines/reference/arrayTypeOfTypeOf.errors.txt +++ b/tests/baselines/reference/arrayTypeOfTypeOf.errors.txt @@ -2,9 +2,9 @@ tests/cases/conformance/types/specifyingTypes/typeLiterals/arrayTypeOfTypeOf.ts( tests/cases/conformance/types/specifyingTypes/typeLiterals/arrayTypeOfTypeOf.ts(6,30): error TS1109: Expression expected. tests/cases/conformance/types/specifyingTypes/typeLiterals/arrayTypeOfTypeOf.ts(7,22): error TS1005: '=' expected. tests/cases/conformance/types/specifyingTypes/typeLiterals/arrayTypeOfTypeOf.ts(7,32): error TS1109: Expression expected. -tests/cases/conformance/types/specifyingTypes/typeLiterals/arrayTypeOfTypeOf.ts(6,5): error TS2323: Type 'number' is not assignable to type '{ (arrayLength?: number): any[]; (arrayLength: number): T[]; (...items: T[]): T[]; new (arrayLength?: number): any[]; new (arrayLength: number): T[]; new (...items: T[]): T[]; isArray(arg: any): boolean; prototype: any[]; }'. +tests/cases/conformance/types/specifyingTypes/typeLiterals/arrayTypeOfTypeOf.ts(6,5): error TS2323: Type 'number' is not assignable to type 'ArrayConstructor'. Property 'isArray' is missing in type 'Number'. -tests/cases/conformance/types/specifyingTypes/typeLiterals/arrayTypeOfTypeOf.ts(7,5): error TS2323: Type 'number' is not assignable to type '{ (arrayLength?: number): any[]; (arrayLength: number): T[]; (...items: T[]): T[]; new (arrayLength?: number): any[]; new (arrayLength: number): T[]; new (...items: T[]): T[]; isArray(arg: any): boolean; prototype: any[]; }'. +tests/cases/conformance/types/specifyingTypes/typeLiterals/arrayTypeOfTypeOf.ts(7,5): error TS2323: Type 'number' is not assignable to type 'ArrayConstructor'. ==== tests/cases/conformance/types/specifyingTypes/typeLiterals/arrayTypeOfTypeOf.ts (6 errors) ==== @@ -19,7 +19,7 @@ tests/cases/conformance/types/specifyingTypes/typeLiterals/arrayTypeOfTypeOf.ts( ~ !!! error TS1109: Expression expected. ~~~ -!!! error TS2323: Type 'number' is not assignable to type '{ (arrayLength?: number): any[]; (arrayLength: number): T[]; (...items: T[]): T[]; new (arrayLength?: number): any[]; new (arrayLength: number): T[]; new (...items: T[]): T[]; isArray(arg: any): boolean; prototype: any[]; }'. +!!! error TS2323: Type 'number' is not assignable to type 'ArrayConstructor'. !!! error TS2323: Property 'isArray' is missing in type 'Number'. var xs4: typeof Array; ~ @@ -27,4 +27,4 @@ tests/cases/conformance/types/specifyingTypes/typeLiterals/arrayTypeOfTypeOf.ts( ~ !!! error TS1109: Expression expected. ~~~ -!!! error TS2323: Type 'number' is not assignable to type '{ (arrayLength?: number): any[]; (arrayLength: number): T[]; (...items: T[]): T[]; new (arrayLength?: number): any[]; new (arrayLength: number): T[]; new (...items: T[]): T[]; isArray(arg: any): boolean; prototype: any[]; }'. \ No newline at end of file +!!! error TS2323: Type 'number' is not assignable to type 'ArrayConstructor'. \ No newline at end of file diff --git a/tests/baselines/reference/castNewObjectBug.types b/tests/baselines/reference/castNewObjectBug.types index c3a6cffb84f..b98b1576061 100644 --- a/tests/baselines/reference/castNewObjectBug.types +++ b/tests/baselines/reference/castNewObjectBug.types @@ -7,5 +7,5 @@ var xx = new Object(); > new Object() : Foo >Foo : Foo >new Object() : Object ->Object : { (): any; (value: any): any; new (value?: any): Object; prototype: Object; getPrototypeOf(o: any): any; getOwnPropertyDescriptor(o: any, p: string): PropertyDescriptor; getOwnPropertyNames(o: any): string[]; create(o: any, properties?: PropertyDescriptorMap): any; defineProperty(o: any, p: string, attributes: PropertyDescriptor): any; defineProperties(o: any, properties: PropertyDescriptorMap): any; seal(o: any): any; freeze(o: any): any; preventExtensions(o: any): any; isSealed(o: any): boolean; isFrozen(o: any): boolean; isExtensible(o: any): boolean; keys(o: any): string[]; } +>Object : ObjectConstructor diff --git a/tests/baselines/reference/commaOperatorWithSecondOperandObjectType.types b/tests/baselines/reference/commaOperatorWithSecondOperandObjectType.types index ebd102c0fde..ba2663dd271 100644 --- a/tests/baselines/reference/commaOperatorWithSecondOperandObjectType.types +++ b/tests/baselines/reference/commaOperatorWithSecondOperandObjectType.types @@ -108,7 +108,7 @@ true, {} "string", new Date() >"string", new Date() : Date >new Date() : Date ->Date : { (): string; new (): Date; new (value: number): Date; new (value: string): Date; new (year: number, month: number, date?: number, hours?: number, minutes?: number, seconds?: number, ms?: number): Date; prototype: Date; parse(s: string): number; UTC(year: number, month: number, date?: number, hours?: number, minutes?: number, seconds?: number, ms?: number): number; now(): number; } +>Date : DateConstructor STRING.toLowerCase(), new CLASS() >STRING.toLowerCase(), new CLASS() : CLASS @@ -154,7 +154,7 @@ var resultIsObject10 = ("string", new Date()); >("string", new Date()) : Date >"string", new Date() : Date >new Date() : Date ->Date : { (): string; new (): Date; new (value: number): Date; new (value: string): Date; new (year: number, month: number, date?: number, hours?: number, minutes?: number, seconds?: number, ms?: number): Date; prototype: Date; parse(s: string): number; UTC(year: number, month: number, date?: number, hours?: number, minutes?: number, seconds?: number, ms?: number): number; now(): number; } +>Date : DateConstructor var resultIsObject11 = (STRING.toLowerCase(), new CLASS()); >resultIsObject11 : CLASS diff --git a/tests/baselines/reference/commaOperatorWithSecondOperandStringType.types b/tests/baselines/reference/commaOperatorWithSecondOperandStringType.types index 2fd182114bb..d5b2f50ca33 100644 --- a/tests/baselines/reference/commaOperatorWithSecondOperandStringType.types +++ b/tests/baselines/reference/commaOperatorWithSecondOperandStringType.types @@ -90,7 +90,7 @@ ANY = new Date(), STRING; >ANY = new Date() : Date >ANY : any >new Date() : Date ->Date : { (): string; new (): Date; new (value: number): Date; new (value: string): Date; new (year: number, month: number, date?: number, hours?: number, minutes?: number, seconds?: number, ms?: number): Date; prototype: Date; parse(s: string): number; UTC(year: number, month: number, date?: number, hours?: number, minutes?: number, seconds?: number, ms?: number): number; now(): number; } +>Date : DateConstructor >STRING : string true, ""; @@ -115,7 +115,7 @@ OBJECT = new Object, STRING + "string"; >OBJECT = new Object : Object >OBJECT : Object >new Object : Object ->Object : { (): any; (value: any): any; new (value?: any): Object; prototype: Object; getPrototypeOf(o: any): any; getOwnPropertyDescriptor(o: any, p: string): PropertyDescriptor; getOwnPropertyNames(o: any): string[]; create(o: any, properties?: PropertyDescriptorMap): any; defineProperty(o: any, p: string, attributes: PropertyDescriptor): any; defineProperties(o: any, properties: PropertyDescriptorMap): any; seal(o: any): any; freeze(o: any): any; preventExtensions(o: any): any; isSealed(o: any): boolean; isFrozen(o: any): boolean; isExtensible(o: any): boolean; keys(o: any): string[]; } +>Object : ObjectConstructor >STRING + "string" : string >STRING : string @@ -132,7 +132,7 @@ var resultIsString7 = (ANY = new Date(), STRING); >ANY = new Date() : Date >ANY : any >new Date() : Date ->Date : { (): string; new (): Date; new (value: number): Date; new (value: string): Date; new (year: number, month: number, date?: number, hours?: number, minutes?: number, seconds?: number, ms?: number): Date; prototype: Date; parse(s: string): number; UTC(year: number, month: number, date?: number, hours?: number, minutes?: number, seconds?: number, ms?: number): number; now(): number; } +>Date : DateConstructor >STRING : string var resultIsString8 = (true, ""); @@ -163,7 +163,7 @@ var resultIsString11 = (new Object, STRING + "string"); >(new Object, STRING + "string") : string >new Object, STRING + "string" : string >new Object : Object ->Object : { (): any; (value: any): any; new (value?: any): Object; prototype: Object; getPrototypeOf(o: any): any; getOwnPropertyDescriptor(o: any, p: string): PropertyDescriptor; getOwnPropertyNames(o: any): string[]; create(o: any, properties?: PropertyDescriptorMap): any; defineProperty(o: any, p: string, attributes: PropertyDescriptor): any; defineProperties(o: any, properties: PropertyDescriptorMap): any; seal(o: any): any; freeze(o: any): any; preventExtensions(o: any): any; isSealed(o: any): boolean; isFrozen(o: any): boolean; isExtensible(o: any): boolean; keys(o: any): string[]; } +>Object : ObjectConstructor >STRING + "string" : string >STRING : string diff --git a/tests/baselines/reference/commaOperatorsMultipleOperators.types b/tests/baselines/reference/commaOperatorsMultipleOperators.types index 9297ea1aa47..12b90e8ec77 100644 --- a/tests/baselines/reference/commaOperatorsMultipleOperators.types +++ b/tests/baselines/reference/commaOperatorsMultipleOperators.types @@ -112,7 +112,7 @@ null, true, 1; >STRING : string >charAt : (pos: number) => string >new Object() : Object ->Object : { (): any; (value: any): any; new (value?: any): Object; prototype: Object; getPrototypeOf(o: any): any; getOwnPropertyDescriptor(o: any, p: string): PropertyDescriptor; getOwnPropertyNames(o: any): string[]; create(o: any, properties?: PropertyDescriptorMap): any; defineProperty(o: any, p: string, attributes: PropertyDescriptor): any; defineProperties(o: any, properties: PropertyDescriptorMap): any; seal(o: any): any; freeze(o: any): any; preventExtensions(o: any): any; isSealed(o: any): boolean; isFrozen(o: any): boolean; isExtensible(o: any): boolean; keys(o: any): string[]; } +>Object : ObjectConstructor var resultIsNumber2 = (null, true, 1); >resultIsNumber2 : number @@ -132,5 +132,5 @@ var resultIsObject2 = (++NUMBER, STRING.charAt(0), new Object()); >STRING : string >charAt : (pos: number) => string >new Object() : Object ->Object : { (): any; (value: any): any; new (value?: any): Object; prototype: Object; getPrototypeOf(o: any): any; getOwnPropertyDescriptor(o: any, p: string): PropertyDescriptor; getOwnPropertyNames(o: any): string[]; create(o: any, properties?: PropertyDescriptorMap): any; defineProperty(o: any, p: string, attributes: PropertyDescriptor): any; defineProperties(o: any, properties: PropertyDescriptorMap): any; seal(o: any): any; freeze(o: any): any; preventExtensions(o: any): any; isSealed(o: any): boolean; isFrozen(o: any): boolean; isExtensible(o: any): boolean; keys(o: any): string[]; } +>Object : ObjectConstructor diff --git a/tests/baselines/reference/conditionalOperatorConditionIsObjectType.types b/tests/baselines/reference/conditionalOperatorConditionIsObjectType.types index 36c15d64c54..199e93c6265 100644 --- a/tests/baselines/reference/conditionalOperatorConditionIsObjectType.types +++ b/tests/baselines/reference/conditionalOperatorConditionIsObjectType.types @@ -133,7 +133,7 @@ foo() ? exprAny1 : exprAny2; new Date() ? exprBoolean1 : exprBoolean2; >new Date() ? exprBoolean1 : exprBoolean2 : boolean >new Date() : Date ->Date : { (): string; new (): Date; new (value: number): Date; new (value: string): Date; new (year: number, month: number, date?: number, hours?: number, minutes?: number, seconds?: number, ms?: number): Date; prototype: Date; parse(s: string): number; UTC(year: number, month: number, date?: number, hours?: number, minutes?: number, seconds?: number, ms?: number): number; now(): number; } +>Date : DateConstructor >exprBoolean1 : boolean >exprBoolean2 : boolean @@ -262,7 +262,7 @@ var resultIsBoolean3 = new Date() ? exprBoolean1 : exprBoolean2; >resultIsBoolean3 : boolean >new Date() ? exprBoolean1 : exprBoolean2 : boolean >new Date() : Date ->Date : { (): string; new (): Date; new (value: number): Date; new (value: string): Date; new (year: number, month: number, date?: number, hours?: number, minutes?: number, seconds?: number, ms?: number): Date; prototype: Date; parse(s: string): number; UTC(year: number, month: number, date?: number, hours?: number, minutes?: number, seconds?: number, ms?: number): number; now(): number; } +>Date : DateConstructor >exprBoolean1 : boolean >exprBoolean2 : boolean diff --git a/tests/baselines/reference/constDeclarationShadowedByVarDeclaration3.types b/tests/baselines/reference/constDeclarationShadowedByVarDeclaration3.types index 89490567f14..8241b319d84 100644 --- a/tests/baselines/reference/constDeclarationShadowedByVarDeclaration3.types +++ b/tests/baselines/reference/constDeclarationShadowedByVarDeclaration3.types @@ -7,7 +7,7 @@ class Rule { >regex : RegExp >RegExp : RegExp >new RegExp('') : RegExp ->RegExp : { (pattern: string, flags?: string): RegExp; new (pattern: string, flags?: string): RegExp; $1: string; $2: string; $3: string; $4: string; $5: string; $6: string; $7: string; $8: string; $9: string; lastMatch: string; } +>RegExp : RegExpConstructor public name: string = ''; >name : string diff --git a/tests/baselines/reference/errorMessageOnObjectLiteralType.errors.txt b/tests/baselines/reference/errorMessageOnObjectLiteralType.errors.txt index 04b80fb1104..bf9006a7143 100644 --- a/tests/baselines/reference/errorMessageOnObjectLiteralType.errors.txt +++ b/tests/baselines/reference/errorMessageOnObjectLiteralType.errors.txt @@ -1,5 +1,5 @@ tests/cases/compiler/errorMessageOnObjectLiteralType.ts(5,3): error TS2339: Property 'getOwnPropertyNamess' does not exist on type '{ a: string; b: number; }'. -tests/cases/compiler/errorMessageOnObjectLiteralType.ts(6,8): error TS2339: Property 'getOwnPropertyNamess' does not exist on type '{ (): any; (value: any): any; new (value?: any): Object; prototype: Object; getPrototypeOf(o: any): any; getOwnPropertyDescriptor(o: any, p: string): PropertyDescriptor; getOwnPropertyNames(o: any): string[]; create(o: any, properties?: PropertyDescriptorMap): any; defineProperty(o: any, p: string, attributes: PropertyDescriptor): any; defineProperties(o: any, properties: PropertyDescriptorMap): any; seal(o: any): any; freeze(o: any): any; preventExtensions(o: any): any; isSealed(o: any): boolean; isFrozen(o: any): boolean; isExtensible(o: any): boolean; keys(o: any): string[]; }'. +tests/cases/compiler/errorMessageOnObjectLiteralType.ts(6,8): error TS2339: Property 'getOwnPropertyNamess' does not exist on type 'ObjectConstructor'. ==== tests/cases/compiler/errorMessageOnObjectLiteralType.ts (2 errors) ==== @@ -12,4 +12,4 @@ tests/cases/compiler/errorMessageOnObjectLiteralType.ts(6,8): error TS2339: Prop !!! error TS2339: Property 'getOwnPropertyNamess' does not exist on type '{ a: string; b: number; }'. Object.getOwnPropertyNamess(null); ~~~~~~~~~~~~~~~~~~~~ -!!! error TS2339: Property 'getOwnPropertyNamess' does not exist on type '{ (): any; (value: any): any; new (value?: any): Object; prototype: Object; getPrototypeOf(o: any): any; getOwnPropertyDescriptor(o: any, p: string): PropertyDescriptor; getOwnPropertyNames(o: any): string[]; create(o: any, properties?: PropertyDescriptorMap): any; defineProperty(o: any, p: string, attributes: PropertyDescriptor): any; defineProperties(o: any, properties: PropertyDescriptorMap): any; seal(o: any): any; freeze(o: any): any; preventExtensions(o: any): any; isSealed(o: any): boolean; isFrozen(o: any): boolean; isExtensible(o: any): boolean; keys(o: any): string[]; }'. \ No newline at end of file +!!! error TS2339: Property 'getOwnPropertyNamess' does not exist on type 'ObjectConstructor'. \ No newline at end of file diff --git a/tests/baselines/reference/everyTypeWithAnnotationAndInitializer.types b/tests/baselines/reference/everyTypeWithAnnotationAndInitializer.types index 54dcc67b78a..c707e694468 100644 --- a/tests/baselines/reference/everyTypeWithAnnotationAndInitializer.types +++ b/tests/baselines/reference/everyTypeWithAnnotationAndInitializer.types @@ -67,13 +67,13 @@ var aDate: Date = new Date(12); >aDate : Date >Date : Date >new Date(12) : Date ->Date : { (): string; new (): Date; new (value: number): Date; new (value: string): Date; new (year: number, month: number, date?: number, hours?: number, minutes?: number, seconds?: number, ms?: number): Date; prototype: Date; parse(s: string): number; UTC(year: number, month: number, date?: number, hours?: number, minutes?: number, seconds?: number, ms?: number): number; now(): number; } +>Date : DateConstructor var anObject: Object = new Object(); >anObject : Object >Object : Object >new Object() : Object ->Object : { (): any; (value: any): any; new (value?: any): Object; prototype: Object; getPrototypeOf(o: any): any; getOwnPropertyDescriptor(o: any, p: string): PropertyDescriptor; getOwnPropertyNames(o: any): string[]; create(o: any, properties?: PropertyDescriptorMap): any; defineProperty(o: any, p: string, attributes: PropertyDescriptor): any; defineProperties(o: any, properties: PropertyDescriptorMap): any; seal(o: any): any; freeze(o: any): any; preventExtensions(o: any): any; isSealed(o: any): boolean; isFrozen(o: any): boolean; isExtensible(o: any): boolean; keys(o: any): string[]; } +>Object : ObjectConstructor var anAny: any = null; >anAny : any diff --git a/tests/baselines/reference/everyTypeWithInitializer.types b/tests/baselines/reference/everyTypeWithInitializer.types index 3ebe8368f35..7a0318718e4 100644 --- a/tests/baselines/reference/everyTypeWithInitializer.types +++ b/tests/baselines/reference/everyTypeWithInitializer.types @@ -66,12 +66,12 @@ var aString = 'this is a string'; var aDate = new Date(12); >aDate : Date >new Date(12) : Date ->Date : { (): string; new (): Date; new (value: number): Date; new (value: string): Date; new (year: number, month: number, date?: number, hours?: number, minutes?: number, seconds?: number, ms?: number): Date; prototype: Date; parse(s: string): number; UTC(year: number, month: number, date?: number, hours?: number, minutes?: number, seconds?: number, ms?: number): number; now(): number; } +>Date : DateConstructor var anObject = new Object(); >anObject : Object >new Object() : Object ->Object : { (): any; (value: any): any; new (value?: any): Object; prototype: Object; getPrototypeOf(o: any): any; getOwnPropertyDescriptor(o: any, p: string): PropertyDescriptor; getOwnPropertyNames(o: any): string[]; create(o: any, properties?: PropertyDescriptorMap): any; defineProperty(o: any, p: string, attributes: PropertyDescriptor): any; defineProperties(o: any, properties: PropertyDescriptorMap): any; seal(o: any): any; freeze(o: any): any; preventExtensions(o: any): any; isSealed(o: any): boolean; isFrozen(o: any): boolean; isExtensible(o: any): boolean; keys(o: any): string[]; } +>Object : ObjectConstructor var anAny = null; >anAny : any diff --git a/tests/baselines/reference/exportAssignValueAndType.types b/tests/baselines/reference/exportAssignValueAndType.types index 7d18e3c1655..fca84f399ec 100644 --- a/tests/baselines/reference/exportAssignValueAndType.types +++ b/tests/baselines/reference/exportAssignValueAndType.types @@ -25,7 +25,7 @@ var x = 5; var server = new Date(); >server : Date >new Date() : Date ->Date : { (): string; new (): Date; new (value: number): Date; new (value: string): Date; new (year: number, month: number, date?: number, hours?: number, minutes?: number, seconds?: number, ms?: number): Date; prototype: Date; parse(s: string): number; UTC(year: number, month: number, date?: number, hours?: number, minutes?: number, seconds?: number, ms?: number): number; now(): number; } +>Date : DateConstructor export = server; >server : server diff --git a/tests/baselines/reference/exportEqualNamespaces.types b/tests/baselines/reference/exportEqualNamespaces.types index 57ed5742b2a..d258d8ef023 100644 --- a/tests/baselines/reference/exportEqualNamespaces.types +++ b/tests/baselines/reference/exportEqualNamespaces.types @@ -25,7 +25,7 @@ var x = 5; var server = new Date(); >server : Date >new Date() : Date ->Date : { (): string; new (): Date; new (value: number): Date; new (value: string): Date; new (year: number, month: number, date?: number, hours?: number, minutes?: number, seconds?: number, ms?: number): Date; prototype: Date; parse(s: string): number; UTC(year: number, month: number, date?: number, hours?: number, minutes?: number, seconds?: number, ms?: number): number; now(): number; } +>Date : DateConstructor export = server; >server : server diff --git a/tests/baselines/reference/forStatements.types b/tests/baselines/reference/forStatements.types index fad702213df..a5563a190ec 100644 --- a/tests/baselines/reference/forStatements.types +++ b/tests/baselines/reference/forStatements.types @@ -67,13 +67,13 @@ for(var aDate: Date = new Date(12);;){} >aDate : Date >Date : Date >new Date(12) : Date ->Date : { (): string; new (): Date; new (value: number): Date; new (value: string): Date; new (year: number, month: number, date?: number, hours?: number, minutes?: number, seconds?: number, ms?: number): Date; prototype: Date; parse(s: string): number; UTC(year: number, month: number, date?: number, hours?: number, minutes?: number, seconds?: number, ms?: number): number; now(): number; } +>Date : DateConstructor for(var anObject: Object = new Object();;){} >anObject : Object >Object : Object >new Object() : Object ->Object : { (): any; (value: any): any; new (value?: any): Object; prototype: Object; getPrototypeOf(o: any): any; getOwnPropertyDescriptor(o: any, p: string): PropertyDescriptor; getOwnPropertyNames(o: any): string[]; create(o: any, properties?: PropertyDescriptorMap): any; defineProperty(o: any, p: string, attributes: PropertyDescriptor): any; defineProperties(o: any, properties: PropertyDescriptorMap): any; seal(o: any): any; freeze(o: any): any; preventExtensions(o: any): any; isSealed(o: any): boolean; isFrozen(o: any): boolean; isExtensible(o: any): boolean; keys(o: any): string[]; } +>Object : ObjectConstructor for(var anAny: any = null;;){} >anAny : any diff --git a/tests/baselines/reference/forStatementsMultipleValidDecl.types b/tests/baselines/reference/forStatementsMultipleValidDecl.types index c2458a306c7..988a1c8a6d3 100644 --- a/tests/baselines/reference/forStatementsMultipleValidDecl.types +++ b/tests/baselines/reference/forStatementsMultipleValidDecl.types @@ -118,7 +118,7 @@ for (var a: string[] = []; ;) { } for (var a = new Array(); ;) { } >a : string[] >new Array() : string[] ->Array : { (arrayLength?: number): any[]; (arrayLength: number): T[]; (...items: T[]): T[]; new (arrayLength?: number): any[]; new (arrayLength: number): T[]; new (...items: T[]): T[]; isArray(arg: any): boolean; prototype: any[]; } +>Array : ArrayConstructor for (var a: typeof a; ;) { } >a : string[] diff --git a/tests/baselines/reference/functionConstraintSatisfaction.types b/tests/baselines/reference/functionConstraintSatisfaction.types index 70200af6fa9..7363fa162d3 100644 --- a/tests/baselines/reference/functionConstraintSatisfaction.types +++ b/tests/baselines/reference/functionConstraintSatisfaction.types @@ -41,7 +41,7 @@ var r = foo(new Function()); >foo(new Function()) : Function >foo : (x: T) => T >new Function() : Function ->Function : { (...args: string[]): Function; new (...args: string[]): Function; prototype: Function; } +>Function : FunctionConstructor var r1 = foo((x) => x); >r1 : (x: any) => any diff --git a/tests/baselines/reference/functionOnlyHasThrow.types b/tests/baselines/reference/functionOnlyHasThrow.types index 0f76f4be39d..d37284f547c 100644 --- a/tests/baselines/reference/functionOnlyHasThrow.types +++ b/tests/baselines/reference/functionOnlyHasThrow.types @@ -4,5 +4,5 @@ function clone():number { throw new Error("To be implemented"); >new Error("To be implemented") : Error ->Error : { (message?: string): Error; new (message?: string): Error; prototype: Error; } +>Error : ErrorConstructor } diff --git a/tests/baselines/reference/functionType.types b/tests/baselines/reference/functionType.types index 4bbce7e096a..29a940db205 100644 --- a/tests/baselines/reference/functionType.types +++ b/tests/baselines/reference/functionType.types @@ -13,7 +13,7 @@ salt.apply("hello", []); >(new Function("return 5"))() : any >(new Function("return 5")) : Function >new Function("return 5") : Function ->Function : { (...args: string[]): Function; new (...args: string[]): Function; prototype: Function; } +>Function : FunctionConstructor diff --git a/tests/baselines/reference/genericFunctionsWithOptionalParameters3.types b/tests/baselines/reference/genericFunctionsWithOptionalParameters3.types index 4df90324283..fbb4780274f 100644 --- a/tests/baselines/reference/genericFunctionsWithOptionalParameters3.types +++ b/tests/baselines/reference/genericFunctionsWithOptionalParameters3.types @@ -68,7 +68,7 @@ var r3 = utils.mapReduce(c, (x) => { return 1 }, (y) => { return new Date() }); >(y) => { return new Date() } : (y: number) => Date >y : number >new Date() : Date ->Date : { (): string; new (): Date; new (value: number): Date; new (value: string): Date; new (year: number, month: number, date?: number, hours?: number, minutes?: number, seconds?: number, ms?: number): Date; prototype: Date; parse(s: string): number; UTC(year: number, month: number, date?: number, hours?: number, minutes?: number, seconds?: number, ms?: number): number; now(): number; } +>Date : DateConstructor var r4 = utils.mapReduce(c, (x: string) => { return 1 }, (y: number) => { return new Date() }); >r4 : Collection @@ -82,7 +82,7 @@ var r4 = utils.mapReduce(c, (x: string) => { return 1 }, (y: number) => { return >(y: number) => { return new Date() } : (y: number) => Date >y : number >new Date() : Date ->Date : { (): string; new (): Date; new (value: number): Date; new (value: string): Date; new (year: number, month: number, date?: number, hours?: number, minutes?: number, seconds?: number, ms?: number): Date; prototype: Date; parse(s: string): number; UTC(year: number, month: number, date?: number, hours?: number, minutes?: number, seconds?: number, ms?: number): number; now(): number; } +>Date : DateConstructor var f1 = (x: string) => { return 1 }; >f1 : (x: string) => number @@ -94,7 +94,7 @@ var f2 = (y: number) => { return new Date() }; >(y: number) => { return new Date() } : (y: number) => Date >y : number >new Date() : Date ->Date : { (): string; new (): Date; new (value: number): Date; new (value: string): Date; new (year: number, month: number, date?: number, hours?: number, minutes?: number, seconds?: number, ms?: number): Date; prototype: Date; parse(s: string): number; UTC(year: number, month: number, date?: number, hours?: number, minutes?: number, seconds?: number, ms?: number): number; now(): number; } +>Date : DateConstructor var r5 = utils.mapReduce(c, f1, f2); >r5 : Collection diff --git a/tests/baselines/reference/getterSetterNonAccessor.types b/tests/baselines/reference/getterSetterNonAccessor.types index d0b925f99e0..f3e5d549cff 100644 --- a/tests/baselines/reference/getterSetterNonAccessor.types +++ b/tests/baselines/reference/getterSetterNonAccessor.types @@ -9,7 +9,7 @@ function setFunc(v){} Object.defineProperty({}, "0", ({ >Object.defineProperty({}, "0", ({ get: getFunc, set: setFunc, configurable: true })) : any >Object.defineProperty : (o: any, p: string, attributes: PropertyDescriptor) => any ->Object : { (): any; (value: any): any; new (value?: any): Object; prototype: Object; getPrototypeOf(o: any): any; getOwnPropertyDescriptor(o: any, p: string): PropertyDescriptor; getOwnPropertyNames(o: any): string[]; create(o: any, properties?: PropertyDescriptorMap): any; defineProperty(o: any, p: string, attributes: PropertyDescriptor): any; defineProperties(o: any, properties: PropertyDescriptorMap): any; seal(o: any): any; freeze(o: any): any; preventExtensions(o: any): any; isSealed(o: any): boolean; isFrozen(o: any): boolean; isExtensible(o: any): boolean; keys(o: any): string[]; } +>Object : ObjectConstructor >defineProperty : (o: any, p: string, attributes: PropertyDescriptor) => any >{} : {} >({ get: getFunc, set: setFunc, configurable: true }) : PropertyDescriptor diff --git a/tests/baselines/reference/heterogeneousArrayLiterals.types b/tests/baselines/reference/heterogeneousArrayLiterals.types index 7ea7d4196a6..dc4e21d85ee 100644 --- a/tests/baselines/reference/heterogeneousArrayLiterals.types +++ b/tests/baselines/reference/heterogeneousArrayLiterals.types @@ -22,7 +22,7 @@ var e = [{}, Object]; // {}[] >e : {}[] >[{}, Object] : {}[] >{} : {} ->Object : { (): any; (value: any): any; new (value?: any): Object; prototype: Object; getPrototypeOf(o: any): any; getOwnPropertyDescriptor(o: any, p: string): PropertyDescriptor; getOwnPropertyNames(o: any): string[]; create(o: any, properties?: PropertyDescriptorMap): any; defineProperty(o: any, p: string, attributes: PropertyDescriptor): any; defineProperties(o: any, properties: PropertyDescriptorMap): any; seal(o: any): any; freeze(o: any): any; preventExtensions(o: any): any; isSealed(o: any): boolean; isFrozen(o: any): boolean; isExtensible(o: any): boolean; keys(o: any): string[]; } +>Object : ObjectConstructor var f = [[], [1]]; // number[][] >f : number[][] diff --git a/tests/baselines/reference/implementArrayInterface.js b/tests/baselines/reference/implementArrayInterface.js index 18ababcc5c6..b75de77ea97 100644 --- a/tests/baselines/reference/implementArrayInterface.js +++ b/tests/baselines/reference/implementArrayInterface.js @@ -1,5 +1,5 @@ //// [implementArrayInterface.ts] -declare class ArrayConstructor implements Array { +declare class MyArray implements Array { toString(): string; toLocaleString(): string; concat(...items: U[]): T[]; diff --git a/tests/baselines/reference/implementArrayInterface.types b/tests/baselines/reference/implementArrayInterface.types index 68d192cee6f..347fcf37693 100644 --- a/tests/baselines/reference/implementArrayInterface.types +++ b/tests/baselines/reference/implementArrayInterface.types @@ -1,6 +1,6 @@ === tests/cases/compiler/implementArrayInterface.ts === -declare class ArrayConstructor implements Array { ->ArrayConstructor : ArrayConstructor +declare class MyArray implements Array { +>MyArray : MyArray >T : T >Array : T[] >T : T diff --git a/tests/baselines/reference/library_ArraySlice.types b/tests/baselines/reference/library_ArraySlice.types index f1309844913..378724c74e4 100644 --- a/tests/baselines/reference/library_ArraySlice.types +++ b/tests/baselines/reference/library_ArraySlice.types @@ -4,7 +4,7 @@ Array.prototype.slice(); >Array.prototype.slice() : any[] >Array.prototype.slice : (start?: number, end?: number) => any[] >Array.prototype : any[] ->Array : { (arrayLength?: number): any[]; (arrayLength: number): T[]; (...items: T[]): T[]; new (arrayLength?: number): any[]; new (arrayLength: number): T[]; new (...items: T[]): T[]; isArray(arg: any): boolean; prototype: any[]; } +>Array : ArrayConstructor >prototype : any[] >slice : (start?: number, end?: number) => any[] @@ -12,7 +12,7 @@ Array.prototype.slice(0); >Array.prototype.slice(0) : any[] >Array.prototype.slice : (start?: number, end?: number) => any[] >Array.prototype : any[] ->Array : { (arrayLength?: number): any[]; (arrayLength: number): T[]; (...items: T[]): T[]; new (arrayLength?: number): any[]; new (arrayLength: number): T[]; new (...items: T[]): T[]; isArray(arg: any): boolean; prototype: any[]; } +>Array : ArrayConstructor >prototype : any[] >slice : (start?: number, end?: number) => any[] @@ -20,7 +20,7 @@ Array.prototype.slice(0, 1); >Array.prototype.slice(0, 1) : any[] >Array.prototype.slice : (start?: number, end?: number) => any[] >Array.prototype : any[] ->Array : { (arrayLength?: number): any[]; (arrayLength: number): T[]; (...items: T[]): T[]; new (arrayLength?: number): any[]; new (arrayLength: number): T[]; new (...items: T[]): T[]; isArray(arg: any): boolean; prototype: any[]; } +>Array : ArrayConstructor >prototype : any[] >slice : (start?: number, end?: number) => any[] diff --git a/tests/baselines/reference/library_DatePrototypeProperties.types b/tests/baselines/reference/library_DatePrototypeProperties.types index 15f4c860fa5..35dcea318be 100644 --- a/tests/baselines/reference/library_DatePrototypeProperties.types +++ b/tests/baselines/reference/library_DatePrototypeProperties.types @@ -4,7 +4,7 @@ Date.prototype.constructor; >Date.prototype.constructor : Function >Date.prototype : Date ->Date : { (): string; new (): Date; new (value: number): Date; new (value: string): Date; new (year: number, month: number, date?: number, hours?: number, minutes?: number, seconds?: number, ms?: number): Date; prototype: Date; parse(s: string): number; UTC(year: number, month: number, date?: number, hours?: number, minutes?: number, seconds?: number, ms?: number): number; now(): number; } +>Date : DateConstructor >prototype : Date >constructor : Function @@ -12,7 +12,7 @@ Date.prototype.toString(); >Date.prototype.toString() : string >Date.prototype.toString : () => string >Date.prototype : Date ->Date : { (): string; new (): Date; new (value: number): Date; new (value: string): Date; new (year: number, month: number, date?: number, hours?: number, minutes?: number, seconds?: number, ms?: number): Date; prototype: Date; parse(s: string): number; UTC(year: number, month: number, date?: number, hours?: number, minutes?: number, seconds?: number, ms?: number): number; now(): number; } +>Date : DateConstructor >prototype : Date >toString : () => string @@ -20,7 +20,7 @@ Date.prototype.toDateString(); >Date.prototype.toDateString() : string >Date.prototype.toDateString : () => string >Date.prototype : Date ->Date : { (): string; new (): Date; new (value: number): Date; new (value: string): Date; new (year: number, month: number, date?: number, hours?: number, minutes?: number, seconds?: number, ms?: number): Date; prototype: Date; parse(s: string): number; UTC(year: number, month: number, date?: number, hours?: number, minutes?: number, seconds?: number, ms?: number): number; now(): number; } +>Date : DateConstructor >prototype : Date >toDateString : () => string @@ -28,7 +28,7 @@ Date.prototype.toTimeString(); >Date.prototype.toTimeString() : string >Date.prototype.toTimeString : () => string >Date.prototype : Date ->Date : { (): string; new (): Date; new (value: number): Date; new (value: string): Date; new (year: number, month: number, date?: number, hours?: number, minutes?: number, seconds?: number, ms?: number): Date; prototype: Date; parse(s: string): number; UTC(year: number, month: number, date?: number, hours?: number, minutes?: number, seconds?: number, ms?: number): number; now(): number; } +>Date : DateConstructor >prototype : Date >toTimeString : () => string @@ -36,7 +36,7 @@ Date.prototype.toLocaleString(); >Date.prototype.toLocaleString() : string >Date.prototype.toLocaleString : () => string >Date.prototype : Date ->Date : { (): string; new (): Date; new (value: number): Date; new (value: string): Date; new (year: number, month: number, date?: number, hours?: number, minutes?: number, seconds?: number, ms?: number): Date; prototype: Date; parse(s: string): number; UTC(year: number, month: number, date?: number, hours?: number, minutes?: number, seconds?: number, ms?: number): number; now(): number; } +>Date : DateConstructor >prototype : Date >toLocaleString : () => string @@ -44,7 +44,7 @@ Date.prototype.toLocaleDateString(); >Date.prototype.toLocaleDateString() : string >Date.prototype.toLocaleDateString : () => string >Date.prototype : Date ->Date : { (): string; new (): Date; new (value: number): Date; new (value: string): Date; new (year: number, month: number, date?: number, hours?: number, minutes?: number, seconds?: number, ms?: number): Date; prototype: Date; parse(s: string): number; UTC(year: number, month: number, date?: number, hours?: number, minutes?: number, seconds?: number, ms?: number): number; now(): number; } +>Date : DateConstructor >prototype : Date >toLocaleDateString : () => string @@ -52,7 +52,7 @@ Date.prototype.toLocaleTimeString(); >Date.prototype.toLocaleTimeString() : string >Date.prototype.toLocaleTimeString : () => string >Date.prototype : Date ->Date : { (): string; new (): Date; new (value: number): Date; new (value: string): Date; new (year: number, month: number, date?: number, hours?: number, minutes?: number, seconds?: number, ms?: number): Date; prototype: Date; parse(s: string): number; UTC(year: number, month: number, date?: number, hours?: number, minutes?: number, seconds?: number, ms?: number): number; now(): number; } +>Date : DateConstructor >prototype : Date >toLocaleTimeString : () => string @@ -60,7 +60,7 @@ Date.prototype.valueOf(); >Date.prototype.valueOf() : number >Date.prototype.valueOf : () => number >Date.prototype : Date ->Date : { (): string; new (): Date; new (value: number): Date; new (value: string): Date; new (year: number, month: number, date?: number, hours?: number, minutes?: number, seconds?: number, ms?: number): Date; prototype: Date; parse(s: string): number; UTC(year: number, month: number, date?: number, hours?: number, minutes?: number, seconds?: number, ms?: number): number; now(): number; } +>Date : DateConstructor >prototype : Date >valueOf : () => number @@ -68,7 +68,7 @@ Date.prototype.getTime(); >Date.prototype.getTime() : number >Date.prototype.getTime : () => number >Date.prototype : Date ->Date : { (): string; new (): Date; new (value: number): Date; new (value: string): Date; new (year: number, month: number, date?: number, hours?: number, minutes?: number, seconds?: number, ms?: number): Date; prototype: Date; parse(s: string): number; UTC(year: number, month: number, date?: number, hours?: number, minutes?: number, seconds?: number, ms?: number): number; now(): number; } +>Date : DateConstructor >prototype : Date >getTime : () => number @@ -76,7 +76,7 @@ Date.prototype.getFullYear(); >Date.prototype.getFullYear() : number >Date.prototype.getFullYear : () => number >Date.prototype : Date ->Date : { (): string; new (): Date; new (value: number): Date; new (value: string): Date; new (year: number, month: number, date?: number, hours?: number, minutes?: number, seconds?: number, ms?: number): Date; prototype: Date; parse(s: string): number; UTC(year: number, month: number, date?: number, hours?: number, minutes?: number, seconds?: number, ms?: number): number; now(): number; } +>Date : DateConstructor >prototype : Date >getFullYear : () => number @@ -84,7 +84,7 @@ Date.prototype.getUTCFullYear(); >Date.prototype.getUTCFullYear() : number >Date.prototype.getUTCFullYear : () => number >Date.prototype : Date ->Date : { (): string; new (): Date; new (value: number): Date; new (value: string): Date; new (year: number, month: number, date?: number, hours?: number, minutes?: number, seconds?: number, ms?: number): Date; prototype: Date; parse(s: string): number; UTC(year: number, month: number, date?: number, hours?: number, minutes?: number, seconds?: number, ms?: number): number; now(): number; } +>Date : DateConstructor >prototype : Date >getUTCFullYear : () => number @@ -92,7 +92,7 @@ Date.prototype.getMonth(); >Date.prototype.getMonth() : number >Date.prototype.getMonth : () => number >Date.prototype : Date ->Date : { (): string; new (): Date; new (value: number): Date; new (value: string): Date; new (year: number, month: number, date?: number, hours?: number, minutes?: number, seconds?: number, ms?: number): Date; prototype: Date; parse(s: string): number; UTC(year: number, month: number, date?: number, hours?: number, minutes?: number, seconds?: number, ms?: number): number; now(): number; } +>Date : DateConstructor >prototype : Date >getMonth : () => number @@ -100,7 +100,7 @@ Date.prototype.getUTCMonth(); >Date.prototype.getUTCMonth() : number >Date.prototype.getUTCMonth : () => number >Date.prototype : Date ->Date : { (): string; new (): Date; new (value: number): Date; new (value: string): Date; new (year: number, month: number, date?: number, hours?: number, minutes?: number, seconds?: number, ms?: number): Date; prototype: Date; parse(s: string): number; UTC(year: number, month: number, date?: number, hours?: number, minutes?: number, seconds?: number, ms?: number): number; now(): number; } +>Date : DateConstructor >prototype : Date >getUTCMonth : () => number @@ -108,7 +108,7 @@ Date.prototype.getDate(); >Date.prototype.getDate() : number >Date.prototype.getDate : () => number >Date.prototype : Date ->Date : { (): string; new (): Date; new (value: number): Date; new (value: string): Date; new (year: number, month: number, date?: number, hours?: number, minutes?: number, seconds?: number, ms?: number): Date; prototype: Date; parse(s: string): number; UTC(year: number, month: number, date?: number, hours?: number, minutes?: number, seconds?: number, ms?: number): number; now(): number; } +>Date : DateConstructor >prototype : Date >getDate : () => number @@ -116,7 +116,7 @@ Date.prototype.getUTCDate(); >Date.prototype.getUTCDate() : number >Date.prototype.getUTCDate : () => number >Date.prototype : Date ->Date : { (): string; new (): Date; new (value: number): Date; new (value: string): Date; new (year: number, month: number, date?: number, hours?: number, minutes?: number, seconds?: number, ms?: number): Date; prototype: Date; parse(s: string): number; UTC(year: number, month: number, date?: number, hours?: number, minutes?: number, seconds?: number, ms?: number): number; now(): number; } +>Date : DateConstructor >prototype : Date >getUTCDate : () => number @@ -124,7 +124,7 @@ Date.prototype.getDay(); >Date.prototype.getDay() : number >Date.prototype.getDay : () => number >Date.prototype : Date ->Date : { (): string; new (): Date; new (value: number): Date; new (value: string): Date; new (year: number, month: number, date?: number, hours?: number, minutes?: number, seconds?: number, ms?: number): Date; prototype: Date; parse(s: string): number; UTC(year: number, month: number, date?: number, hours?: number, minutes?: number, seconds?: number, ms?: number): number; now(): number; } +>Date : DateConstructor >prototype : Date >getDay : () => number @@ -132,7 +132,7 @@ Date.prototype.getUTCDay(); >Date.prototype.getUTCDay() : number >Date.prototype.getUTCDay : () => number >Date.prototype : Date ->Date : { (): string; new (): Date; new (value: number): Date; new (value: string): Date; new (year: number, month: number, date?: number, hours?: number, minutes?: number, seconds?: number, ms?: number): Date; prototype: Date; parse(s: string): number; UTC(year: number, month: number, date?: number, hours?: number, minutes?: number, seconds?: number, ms?: number): number; now(): number; } +>Date : DateConstructor >prototype : Date >getUTCDay : () => number @@ -140,7 +140,7 @@ Date.prototype.getHours(); >Date.prototype.getHours() : number >Date.prototype.getHours : () => number >Date.prototype : Date ->Date : { (): string; new (): Date; new (value: number): Date; new (value: string): Date; new (year: number, month: number, date?: number, hours?: number, minutes?: number, seconds?: number, ms?: number): Date; prototype: Date; parse(s: string): number; UTC(year: number, month: number, date?: number, hours?: number, minutes?: number, seconds?: number, ms?: number): number; now(): number; } +>Date : DateConstructor >prototype : Date >getHours : () => number @@ -148,7 +148,7 @@ Date.prototype.getUTCHours(); >Date.prototype.getUTCHours() : number >Date.prototype.getUTCHours : () => number >Date.prototype : Date ->Date : { (): string; new (): Date; new (value: number): Date; new (value: string): Date; new (year: number, month: number, date?: number, hours?: number, minutes?: number, seconds?: number, ms?: number): Date; prototype: Date; parse(s: string): number; UTC(year: number, month: number, date?: number, hours?: number, minutes?: number, seconds?: number, ms?: number): number; now(): number; } +>Date : DateConstructor >prototype : Date >getUTCHours : () => number @@ -156,7 +156,7 @@ Date.prototype.getMinutes(); >Date.prototype.getMinutes() : number >Date.prototype.getMinutes : () => number >Date.prototype : Date ->Date : { (): string; new (): Date; new (value: number): Date; new (value: string): Date; new (year: number, month: number, date?: number, hours?: number, minutes?: number, seconds?: number, ms?: number): Date; prototype: Date; parse(s: string): number; UTC(year: number, month: number, date?: number, hours?: number, minutes?: number, seconds?: number, ms?: number): number; now(): number; } +>Date : DateConstructor >prototype : Date >getMinutes : () => number @@ -164,7 +164,7 @@ Date.prototype.getUTCMinutes(); >Date.prototype.getUTCMinutes() : number >Date.prototype.getUTCMinutes : () => number >Date.prototype : Date ->Date : { (): string; new (): Date; new (value: number): Date; new (value: string): Date; new (year: number, month: number, date?: number, hours?: number, minutes?: number, seconds?: number, ms?: number): Date; prototype: Date; parse(s: string): number; UTC(year: number, month: number, date?: number, hours?: number, minutes?: number, seconds?: number, ms?: number): number; now(): number; } +>Date : DateConstructor >prototype : Date >getUTCMinutes : () => number @@ -172,7 +172,7 @@ Date.prototype.getSeconds(); >Date.prototype.getSeconds() : number >Date.prototype.getSeconds : () => number >Date.prototype : Date ->Date : { (): string; new (): Date; new (value: number): Date; new (value: string): Date; new (year: number, month: number, date?: number, hours?: number, minutes?: number, seconds?: number, ms?: number): Date; prototype: Date; parse(s: string): number; UTC(year: number, month: number, date?: number, hours?: number, minutes?: number, seconds?: number, ms?: number): number; now(): number; } +>Date : DateConstructor >prototype : Date >getSeconds : () => number @@ -180,7 +180,7 @@ Date.prototype.getUTCSeconds(); >Date.prototype.getUTCSeconds() : number >Date.prototype.getUTCSeconds : () => number >Date.prototype : Date ->Date : { (): string; new (): Date; new (value: number): Date; new (value: string): Date; new (year: number, month: number, date?: number, hours?: number, minutes?: number, seconds?: number, ms?: number): Date; prototype: Date; parse(s: string): number; UTC(year: number, month: number, date?: number, hours?: number, minutes?: number, seconds?: number, ms?: number): number; now(): number; } +>Date : DateConstructor >prototype : Date >getUTCSeconds : () => number @@ -188,7 +188,7 @@ Date.prototype.getMilliseconds(); >Date.prototype.getMilliseconds() : number >Date.prototype.getMilliseconds : () => number >Date.prototype : Date ->Date : { (): string; new (): Date; new (value: number): Date; new (value: string): Date; new (year: number, month: number, date?: number, hours?: number, minutes?: number, seconds?: number, ms?: number): Date; prototype: Date; parse(s: string): number; UTC(year: number, month: number, date?: number, hours?: number, minutes?: number, seconds?: number, ms?: number): number; now(): number; } +>Date : DateConstructor >prototype : Date >getMilliseconds : () => number @@ -196,7 +196,7 @@ Date.prototype.getUTCMilliseconds(); >Date.prototype.getUTCMilliseconds() : number >Date.prototype.getUTCMilliseconds : () => number >Date.prototype : Date ->Date : { (): string; new (): Date; new (value: number): Date; new (value: string): Date; new (year: number, month: number, date?: number, hours?: number, minutes?: number, seconds?: number, ms?: number): Date; prototype: Date; parse(s: string): number; UTC(year: number, month: number, date?: number, hours?: number, minutes?: number, seconds?: number, ms?: number): number; now(): number; } +>Date : DateConstructor >prototype : Date >getUTCMilliseconds : () => number @@ -204,7 +204,7 @@ Date.prototype.getTimezoneOffset(); >Date.prototype.getTimezoneOffset() : number >Date.prototype.getTimezoneOffset : () => number >Date.prototype : Date ->Date : { (): string; new (): Date; new (value: number): Date; new (value: string): Date; new (year: number, month: number, date?: number, hours?: number, minutes?: number, seconds?: number, ms?: number): Date; prototype: Date; parse(s: string): number; UTC(year: number, month: number, date?: number, hours?: number, minutes?: number, seconds?: number, ms?: number): number; now(): number; } +>Date : DateConstructor >prototype : Date >getTimezoneOffset : () => number @@ -212,7 +212,7 @@ Date.prototype.setTime(0); >Date.prototype.setTime(0) : number >Date.prototype.setTime : (time: number) => number >Date.prototype : Date ->Date : { (): string; new (): Date; new (value: number): Date; new (value: string): Date; new (year: number, month: number, date?: number, hours?: number, minutes?: number, seconds?: number, ms?: number): Date; prototype: Date; parse(s: string): number; UTC(year: number, month: number, date?: number, hours?: number, minutes?: number, seconds?: number, ms?: number): number; now(): number; } +>Date : DateConstructor >prototype : Date >setTime : (time: number) => number @@ -220,7 +220,7 @@ Date.prototype.setMilliseconds(0); >Date.prototype.setMilliseconds(0) : number >Date.prototype.setMilliseconds : (ms: number) => number >Date.prototype : Date ->Date : { (): string; new (): Date; new (value: number): Date; new (value: string): Date; new (year: number, month: number, date?: number, hours?: number, minutes?: number, seconds?: number, ms?: number): Date; prototype: Date; parse(s: string): number; UTC(year: number, month: number, date?: number, hours?: number, minutes?: number, seconds?: number, ms?: number): number; now(): number; } +>Date : DateConstructor >prototype : Date >setMilliseconds : (ms: number) => number @@ -228,7 +228,7 @@ Date.prototype.setUTCMilliseconds(0); >Date.prototype.setUTCMilliseconds(0) : number >Date.prototype.setUTCMilliseconds : (ms: number) => number >Date.prototype : Date ->Date : { (): string; new (): Date; new (value: number): Date; new (value: string): Date; new (year: number, month: number, date?: number, hours?: number, minutes?: number, seconds?: number, ms?: number): Date; prototype: Date; parse(s: string): number; UTC(year: number, month: number, date?: number, hours?: number, minutes?: number, seconds?: number, ms?: number): number; now(): number; } +>Date : DateConstructor >prototype : Date >setUTCMilliseconds : (ms: number) => number @@ -236,7 +236,7 @@ Date.prototype.setSeconds(0); >Date.prototype.setSeconds(0) : number >Date.prototype.setSeconds : (sec: number, ms?: number) => number >Date.prototype : Date ->Date : { (): string; new (): Date; new (value: number): Date; new (value: string): Date; new (year: number, month: number, date?: number, hours?: number, minutes?: number, seconds?: number, ms?: number): Date; prototype: Date; parse(s: string): number; UTC(year: number, month: number, date?: number, hours?: number, minutes?: number, seconds?: number, ms?: number): number; now(): number; } +>Date : DateConstructor >prototype : Date >setSeconds : (sec: number, ms?: number) => number @@ -244,7 +244,7 @@ Date.prototype.setUTCSeconds(0); >Date.prototype.setUTCSeconds(0) : number >Date.prototype.setUTCSeconds : (sec: number, ms?: number) => number >Date.prototype : Date ->Date : { (): string; new (): Date; new (value: number): Date; new (value: string): Date; new (year: number, month: number, date?: number, hours?: number, minutes?: number, seconds?: number, ms?: number): Date; prototype: Date; parse(s: string): number; UTC(year: number, month: number, date?: number, hours?: number, minutes?: number, seconds?: number, ms?: number): number; now(): number; } +>Date : DateConstructor >prototype : Date >setUTCSeconds : (sec: number, ms?: number) => number @@ -252,7 +252,7 @@ Date.prototype.setMinutes(0); >Date.prototype.setMinutes(0) : number >Date.prototype.setMinutes : (min: number, sec?: number, ms?: number) => number >Date.prototype : Date ->Date : { (): string; new (): Date; new (value: number): Date; new (value: string): Date; new (year: number, month: number, date?: number, hours?: number, minutes?: number, seconds?: number, ms?: number): Date; prototype: Date; parse(s: string): number; UTC(year: number, month: number, date?: number, hours?: number, minutes?: number, seconds?: number, ms?: number): number; now(): number; } +>Date : DateConstructor >prototype : Date >setMinutes : (min: number, sec?: number, ms?: number) => number @@ -260,7 +260,7 @@ Date.prototype.setUTCMinutes(0); >Date.prototype.setUTCMinutes(0) : number >Date.prototype.setUTCMinutes : (min: number, sec?: number, ms?: number) => number >Date.prototype : Date ->Date : { (): string; new (): Date; new (value: number): Date; new (value: string): Date; new (year: number, month: number, date?: number, hours?: number, minutes?: number, seconds?: number, ms?: number): Date; prototype: Date; parse(s: string): number; UTC(year: number, month: number, date?: number, hours?: number, minutes?: number, seconds?: number, ms?: number): number; now(): number; } +>Date : DateConstructor >prototype : Date >setUTCMinutes : (min: number, sec?: number, ms?: number) => number @@ -268,7 +268,7 @@ Date.prototype.setHours(0); >Date.prototype.setHours(0) : number >Date.prototype.setHours : (hours: number, min?: number, sec?: number, ms?: number) => number >Date.prototype : Date ->Date : { (): string; new (): Date; new (value: number): Date; new (value: string): Date; new (year: number, month: number, date?: number, hours?: number, minutes?: number, seconds?: number, ms?: number): Date; prototype: Date; parse(s: string): number; UTC(year: number, month: number, date?: number, hours?: number, minutes?: number, seconds?: number, ms?: number): number; now(): number; } +>Date : DateConstructor >prototype : Date >setHours : (hours: number, min?: number, sec?: number, ms?: number) => number @@ -276,7 +276,7 @@ Date.prototype.setUTCHours(0); >Date.prototype.setUTCHours(0) : number >Date.prototype.setUTCHours : (hours: number, min?: number, sec?: number, ms?: number) => number >Date.prototype : Date ->Date : { (): string; new (): Date; new (value: number): Date; new (value: string): Date; new (year: number, month: number, date?: number, hours?: number, minutes?: number, seconds?: number, ms?: number): Date; prototype: Date; parse(s: string): number; UTC(year: number, month: number, date?: number, hours?: number, minutes?: number, seconds?: number, ms?: number): number; now(): number; } +>Date : DateConstructor >prototype : Date >setUTCHours : (hours: number, min?: number, sec?: number, ms?: number) => number @@ -284,7 +284,7 @@ Date.prototype.setDate(0); >Date.prototype.setDate(0) : number >Date.prototype.setDate : (date: number) => number >Date.prototype : Date ->Date : { (): string; new (): Date; new (value: number): Date; new (value: string): Date; new (year: number, month: number, date?: number, hours?: number, minutes?: number, seconds?: number, ms?: number): Date; prototype: Date; parse(s: string): number; UTC(year: number, month: number, date?: number, hours?: number, minutes?: number, seconds?: number, ms?: number): number; now(): number; } +>Date : DateConstructor >prototype : Date >setDate : (date: number) => number @@ -292,7 +292,7 @@ Date.prototype.setUTCDate(0); >Date.prototype.setUTCDate(0) : number >Date.prototype.setUTCDate : (date: number) => number >Date.prototype : Date ->Date : { (): string; new (): Date; new (value: number): Date; new (value: string): Date; new (year: number, month: number, date?: number, hours?: number, minutes?: number, seconds?: number, ms?: number): Date; prototype: Date; parse(s: string): number; UTC(year: number, month: number, date?: number, hours?: number, minutes?: number, seconds?: number, ms?: number): number; now(): number; } +>Date : DateConstructor >prototype : Date >setUTCDate : (date: number) => number @@ -300,7 +300,7 @@ Date.prototype.setMonth(0); >Date.prototype.setMonth(0) : number >Date.prototype.setMonth : (month: number, date?: number) => number >Date.prototype : Date ->Date : { (): string; new (): Date; new (value: number): Date; new (value: string): Date; new (year: number, month: number, date?: number, hours?: number, minutes?: number, seconds?: number, ms?: number): Date; prototype: Date; parse(s: string): number; UTC(year: number, month: number, date?: number, hours?: number, minutes?: number, seconds?: number, ms?: number): number; now(): number; } +>Date : DateConstructor >prototype : Date >setMonth : (month: number, date?: number) => number @@ -308,7 +308,7 @@ Date.prototype.setUTCMonth(0); >Date.prototype.setUTCMonth(0) : number >Date.prototype.setUTCMonth : (month: number, date?: number) => number >Date.prototype : Date ->Date : { (): string; new (): Date; new (value: number): Date; new (value: string): Date; new (year: number, month: number, date?: number, hours?: number, minutes?: number, seconds?: number, ms?: number): Date; prototype: Date; parse(s: string): number; UTC(year: number, month: number, date?: number, hours?: number, minutes?: number, seconds?: number, ms?: number): number; now(): number; } +>Date : DateConstructor >prototype : Date >setUTCMonth : (month: number, date?: number) => number @@ -316,7 +316,7 @@ Date.prototype.setFullYear(0); >Date.prototype.setFullYear(0) : number >Date.prototype.setFullYear : (year: number, month?: number, date?: number) => number >Date.prototype : Date ->Date : { (): string; new (): Date; new (value: number): Date; new (value: string): Date; new (year: number, month: number, date?: number, hours?: number, minutes?: number, seconds?: number, ms?: number): Date; prototype: Date; parse(s: string): number; UTC(year: number, month: number, date?: number, hours?: number, minutes?: number, seconds?: number, ms?: number): number; now(): number; } +>Date : DateConstructor >prototype : Date >setFullYear : (year: number, month?: number, date?: number) => number @@ -324,7 +324,7 @@ Date.prototype.setUTCFullYear(0); >Date.prototype.setUTCFullYear(0) : number >Date.prototype.setUTCFullYear : (year: number, month?: number, date?: number) => number >Date.prototype : Date ->Date : { (): string; new (): Date; new (value: number): Date; new (value: string): Date; new (year: number, month: number, date?: number, hours?: number, minutes?: number, seconds?: number, ms?: number): Date; prototype: Date; parse(s: string): number; UTC(year: number, month: number, date?: number, hours?: number, minutes?: number, seconds?: number, ms?: number): number; now(): number; } +>Date : DateConstructor >prototype : Date >setUTCFullYear : (year: number, month?: number, date?: number) => number @@ -332,7 +332,7 @@ Date.prototype.toUTCString(); >Date.prototype.toUTCString() : string >Date.prototype.toUTCString : () => string >Date.prototype : Date ->Date : { (): string; new (): Date; new (value: number): Date; new (value: string): Date; new (year: number, month: number, date?: number, hours?: number, minutes?: number, seconds?: number, ms?: number): Date; prototype: Date; parse(s: string): number; UTC(year: number, month: number, date?: number, hours?: number, minutes?: number, seconds?: number, ms?: number): number; now(): number; } +>Date : DateConstructor >prototype : Date >toUTCString : () => string @@ -340,7 +340,7 @@ Date.prototype.toISOString(); >Date.prototype.toISOString() : string >Date.prototype.toISOString : () => string >Date.prototype : Date ->Date : { (): string; new (): Date; new (value: number): Date; new (value: string): Date; new (year: number, month: number, date?: number, hours?: number, minutes?: number, seconds?: number, ms?: number): Date; prototype: Date; parse(s: string): number; UTC(year: number, month: number, date?: number, hours?: number, minutes?: number, seconds?: number, ms?: number): number; now(): number; } +>Date : DateConstructor >prototype : Date >toISOString : () => string @@ -348,7 +348,7 @@ Date.prototype.toJSON(null); >Date.prototype.toJSON(null) : string >Date.prototype.toJSON : (key?: any) => string >Date.prototype : Date ->Date : { (): string; new (): Date; new (value: number): Date; new (value: string): Date; new (year: number, month: number, date?: number, hours?: number, minutes?: number, seconds?: number, ms?: number): Date; prototype: Date; parse(s: string): number; UTC(year: number, month: number, date?: number, hours?: number, minutes?: number, seconds?: number, ms?: number): number; now(): number; } +>Date : DateConstructor >prototype : Date >toJSON : (key?: any) => string diff --git a/tests/baselines/reference/library_ObjectPrototypeProperties.types b/tests/baselines/reference/library_ObjectPrototypeProperties.types index 447d855778f..c848ccbe512 100644 --- a/tests/baselines/reference/library_ObjectPrototypeProperties.types +++ b/tests/baselines/reference/library_ObjectPrototypeProperties.types @@ -4,7 +4,7 @@ Object.prototype.constructor; >Object.prototype.constructor : Function >Object.prototype : Object ->Object : { (): any; (value: any): any; new (value?: any): Object; prototype: Object; getPrototypeOf(o: any): any; getOwnPropertyDescriptor(o: any, p: string): PropertyDescriptor; getOwnPropertyNames(o: any): string[]; create(o: any, properties?: PropertyDescriptorMap): any; defineProperty(o: any, p: string, attributes: PropertyDescriptor): any; defineProperties(o: any, properties: PropertyDescriptorMap): any; seal(o: any): any; freeze(o: any): any; preventExtensions(o: any): any; isSealed(o: any): boolean; isFrozen(o: any): boolean; isExtensible(o: any): boolean; keys(o: any): string[]; } +>Object : ObjectConstructor >prototype : Object >constructor : Function @@ -12,7 +12,7 @@ Object.prototype.toString(); >Object.prototype.toString() : string >Object.prototype.toString : () => string >Object.prototype : Object ->Object : { (): any; (value: any): any; new (value?: any): Object; prototype: Object; getPrototypeOf(o: any): any; getOwnPropertyDescriptor(o: any, p: string): PropertyDescriptor; getOwnPropertyNames(o: any): string[]; create(o: any, properties?: PropertyDescriptorMap): any; defineProperty(o: any, p: string, attributes: PropertyDescriptor): any; defineProperties(o: any, properties: PropertyDescriptorMap): any; seal(o: any): any; freeze(o: any): any; preventExtensions(o: any): any; isSealed(o: any): boolean; isFrozen(o: any): boolean; isExtensible(o: any): boolean; keys(o: any): string[]; } +>Object : ObjectConstructor >prototype : Object >toString : () => string @@ -20,7 +20,7 @@ Object.prototype.toLocaleString(); >Object.prototype.toLocaleString() : string >Object.prototype.toLocaleString : () => string >Object.prototype : Object ->Object : { (): any; (value: any): any; new (value?: any): Object; prototype: Object; getPrototypeOf(o: any): any; getOwnPropertyDescriptor(o: any, p: string): PropertyDescriptor; getOwnPropertyNames(o: any): string[]; create(o: any, properties?: PropertyDescriptorMap): any; defineProperty(o: any, p: string, attributes: PropertyDescriptor): any; defineProperties(o: any, properties: PropertyDescriptorMap): any; seal(o: any): any; freeze(o: any): any; preventExtensions(o: any): any; isSealed(o: any): boolean; isFrozen(o: any): boolean; isExtensible(o: any): boolean; keys(o: any): string[]; } +>Object : ObjectConstructor >prototype : Object >toLocaleString : () => string @@ -28,7 +28,7 @@ Object.prototype.valueOf(); >Object.prototype.valueOf() : Object >Object.prototype.valueOf : () => Object >Object.prototype : Object ->Object : { (): any; (value: any): any; new (value?: any): Object; prototype: Object; getPrototypeOf(o: any): any; getOwnPropertyDescriptor(o: any, p: string): PropertyDescriptor; getOwnPropertyNames(o: any): string[]; create(o: any, properties?: PropertyDescriptorMap): any; defineProperty(o: any, p: string, attributes: PropertyDescriptor): any; defineProperties(o: any, properties: PropertyDescriptorMap): any; seal(o: any): any; freeze(o: any): any; preventExtensions(o: any): any; isSealed(o: any): boolean; isFrozen(o: any): boolean; isExtensible(o: any): boolean; keys(o: any): string[]; } +>Object : ObjectConstructor >prototype : Object >valueOf : () => Object @@ -36,7 +36,7 @@ Object.prototype.hasOwnProperty("string"); >Object.prototype.hasOwnProperty("string") : boolean >Object.prototype.hasOwnProperty : (v: string) => boolean >Object.prototype : Object ->Object : { (): any; (value: any): any; new (value?: any): Object; prototype: Object; getPrototypeOf(o: any): any; getOwnPropertyDescriptor(o: any, p: string): PropertyDescriptor; getOwnPropertyNames(o: any): string[]; create(o: any, properties?: PropertyDescriptorMap): any; defineProperty(o: any, p: string, attributes: PropertyDescriptor): any; defineProperties(o: any, properties: PropertyDescriptorMap): any; seal(o: any): any; freeze(o: any): any; preventExtensions(o: any): any; isSealed(o: any): boolean; isFrozen(o: any): boolean; isExtensible(o: any): boolean; keys(o: any): string[]; } +>Object : ObjectConstructor >prototype : Object >hasOwnProperty : (v: string) => boolean @@ -44,16 +44,16 @@ Object.prototype.isPrototypeOf(Object); >Object.prototype.isPrototypeOf(Object) : boolean >Object.prototype.isPrototypeOf : (v: Object) => boolean >Object.prototype : Object ->Object : { (): any; (value: any): any; new (value?: any): Object; prototype: Object; getPrototypeOf(o: any): any; getOwnPropertyDescriptor(o: any, p: string): PropertyDescriptor; getOwnPropertyNames(o: any): string[]; create(o: any, properties?: PropertyDescriptorMap): any; defineProperty(o: any, p: string, attributes: PropertyDescriptor): any; defineProperties(o: any, properties: PropertyDescriptorMap): any; seal(o: any): any; freeze(o: any): any; preventExtensions(o: any): any; isSealed(o: any): boolean; isFrozen(o: any): boolean; isExtensible(o: any): boolean; keys(o: any): string[]; } +>Object : ObjectConstructor >prototype : Object >isPrototypeOf : (v: Object) => boolean ->Object : { (): any; (value: any): any; new (value?: any): Object; prototype: Object; getPrototypeOf(o: any): any; getOwnPropertyDescriptor(o: any, p: string): PropertyDescriptor; getOwnPropertyNames(o: any): string[]; create(o: any, properties?: PropertyDescriptorMap): any; defineProperty(o: any, p: string, attributes: PropertyDescriptor): any; defineProperties(o: any, properties: PropertyDescriptorMap): any; seal(o: any): any; freeze(o: any): any; preventExtensions(o: any): any; isSealed(o: any): boolean; isFrozen(o: any): boolean; isExtensible(o: any): boolean; keys(o: any): string[]; } +>Object : ObjectConstructor Object.prototype.propertyIsEnumerable("string"); >Object.prototype.propertyIsEnumerable("string") : boolean >Object.prototype.propertyIsEnumerable : (v: string) => boolean >Object.prototype : Object ->Object : { (): any; (value: any): any; new (value?: any): Object; prototype: Object; getPrototypeOf(o: any): any; getOwnPropertyDescriptor(o: any, p: string): PropertyDescriptor; getOwnPropertyNames(o: any): string[]; create(o: any, properties?: PropertyDescriptorMap): any; defineProperty(o: any, p: string, attributes: PropertyDescriptor): any; defineProperties(o: any, properties: PropertyDescriptorMap): any; seal(o: any): any; freeze(o: any): any; preventExtensions(o: any): any; isSealed(o: any): boolean; isFrozen(o: any): boolean; isExtensible(o: any): boolean; keys(o: any): string[]; } +>Object : ObjectConstructor >prototype : Object >propertyIsEnumerable : (v: string) => boolean diff --git a/tests/baselines/reference/library_StringSlice.types b/tests/baselines/reference/library_StringSlice.types index 4733ab39908..c40c4d744e0 100644 --- a/tests/baselines/reference/library_StringSlice.types +++ b/tests/baselines/reference/library_StringSlice.types @@ -4,7 +4,7 @@ String.prototype.slice(); >String.prototype.slice() : string >String.prototype.slice : (start?: number, end?: number) => string >String.prototype : String ->String : { (value?: any): string; new (value?: any): String; prototype: String; fromCharCode(...codes: number[]): string; } +>String : StringConstructor >prototype : String >slice : (start?: number, end?: number) => string @@ -12,7 +12,7 @@ String.prototype.slice(0); >String.prototype.slice(0) : string >String.prototype.slice : (start?: number, end?: number) => string >String.prototype : String ->String : { (value?: any): string; new (value?: any): String; prototype: String; fromCharCode(...codes: number[]): string; } +>String : StringConstructor >prototype : String >slice : (start?: number, end?: number) => string @@ -20,7 +20,7 @@ String.prototype.slice(0,1); >String.prototype.slice(0,1) : string >String.prototype.slice : (start?: number, end?: number) => string >String.prototype : String ->String : { (value?: any): string; new (value?: any): String; prototype: String; fromCharCode(...codes: number[]): string; } +>String : StringConstructor >prototype : String >slice : (start?: number, end?: number) => string diff --git a/tests/baselines/reference/newArrays.types b/tests/baselines/reference/newArrays.types index ab2d7165980..463525cb04c 100644 --- a/tests/baselines/reference/newArrays.types +++ b/tests/baselines/reference/newArrays.types @@ -27,7 +27,7 @@ module M { >this : Gar >fa : Foo[] >new Array(this.x * this.y) : Foo[] ->Array : { (arrayLength?: number): any[]; (arrayLength: number): T[]; (...items: T[]): T[]; new (arrayLength?: number): any[]; new (arrayLength: number): T[]; new (...items: T[]): T[]; isArray(arg: any): boolean; prototype: any[]; } +>Array : ArrayConstructor >Foo : Foo >this.x * this.y : number >this.x : number diff --git a/tests/baselines/reference/nullIsSubtypeOfEverythingButUndefined.types b/tests/baselines/reference/nullIsSubtypeOfEverythingButUndefined.types index aa81f87bed6..066f5eadef4 100644 --- a/tests/baselines/reference/nullIsSubtypeOfEverythingButUndefined.types +++ b/tests/baselines/reference/nullIsSubtypeOfEverythingButUndefined.types @@ -51,13 +51,13 @@ var r4 = true ? new Date() : null; >r4 : Date >true ? new Date() : null : Date >new Date() : Date ->Date : { (): string; new (): Date; new (value: number): Date; new (value: string): Date; new (year: number, month: number, date?: number, hours?: number, minutes?: number, seconds?: number, ms?: number): Date; prototype: Date; parse(s: string): number; UTC(year: number, month: number, date?: number, hours?: number, minutes?: number, seconds?: number, ms?: number): number; now(): number; } +>Date : DateConstructor var r4 = true ? null : new Date(); >r4 : Date >true ? null : new Date() : Date >new Date() : Date ->Date : { (): string; new (): Date; new (value: number): Date; new (value: string): Date; new (year: number, month: number, date?: number, hours?: number, minutes?: number, seconds?: number, ms?: number): Date; prototype: Date; parse(s: string): number; UTC(year: number, month: number, date?: number, hours?: number, minutes?: number, seconds?: number, ms?: number): number; now(): number; } +>Date : DateConstructor var r5 = true ? /1/ : null; >r5 : RegExp @@ -281,13 +281,13 @@ var r19 = true ? new Object() : null; >r19 : Object >true ? new Object() : null : Object >new Object() : Object ->Object : { (): any; (value: any): any; new (value?: any): Object; prototype: Object; getPrototypeOf(o: any): any; getOwnPropertyDescriptor(o: any, p: string): PropertyDescriptor; getOwnPropertyNames(o: any): string[]; create(o: any, properties?: PropertyDescriptorMap): any; defineProperty(o: any, p: string, attributes: PropertyDescriptor): any; defineProperties(o: any, properties: PropertyDescriptorMap): any; seal(o: any): any; freeze(o: any): any; preventExtensions(o: any): any; isSealed(o: any): boolean; isFrozen(o: any): boolean; isExtensible(o: any): boolean; keys(o: any): string[]; } +>Object : ObjectConstructor var r19 = true ? null : new Object(); >r19 : Object >true ? null : new Object() : Object >new Object() : Object ->Object : { (): any; (value: any): any; new (value?: any): Object; prototype: Object; getPrototypeOf(o: any): any; getOwnPropertyDescriptor(o: any, p: string): PropertyDescriptor; getOwnPropertyNames(o: any): string[]; create(o: any, properties?: PropertyDescriptorMap): any; defineProperty(o: any, p: string, attributes: PropertyDescriptor): any; defineProperties(o: any, properties: PropertyDescriptorMap): any; seal(o: any): any; freeze(o: any): any; preventExtensions(o: any): any; isSealed(o: any): boolean; isFrozen(o: any): boolean; isExtensible(o: any): boolean; keys(o: any): string[]; } +>Object : ObjectConstructor var r20 = true ? {} : null; >r20 : {} diff --git a/tests/baselines/reference/objectLitGetterSetter.types b/tests/baselines/reference/objectLitGetterSetter.types index 2215f60d889..92decfd4068 100644 --- a/tests/baselines/reference/objectLitGetterSetter.types +++ b/tests/baselines/reference/objectLitGetterSetter.types @@ -6,7 +6,7 @@ Object.defineProperty(obj, "accProperty", ({ >Object.defineProperty(obj, "accProperty", ({ get: function () { eval("public = 1;"); return 11; }, set: function (v) { } })) : any >Object.defineProperty : (o: any, p: string, attributes: PropertyDescriptor) => any ->Object : { (): any; (value: any): any; new (value?: any): Object; prototype: Object; getPrototypeOf(o: any): any; getOwnPropertyDescriptor(o: any, p: string): PropertyDescriptor; getOwnPropertyNames(o: any): string[]; create(o: any, properties?: PropertyDescriptorMap): any; defineProperty(o: any, p: string, attributes: PropertyDescriptor): any; defineProperties(o: any, properties: PropertyDescriptorMap): any; seal(o: any): any; freeze(o: any): any; preventExtensions(o: any): any; isSealed(o: any): boolean; isFrozen(o: any): boolean; isExtensible(o: any): boolean; keys(o: any): string[]; } +>Object : ObjectConstructor >defineProperty : (o: any, p: string, attributes: PropertyDescriptor) => any >obj : {} >({ get: function () { eval("public = 1;"); return 11; }, set: function (v) { } }) : PropertyDescriptor diff --git a/tests/baselines/reference/objectTypeWithStringNamedNumericProperty.types b/tests/baselines/reference/objectTypeWithStringNamedNumericProperty.types index febc7524e6d..74b5550fecb 100644 --- a/tests/baselines/reference/objectTypeWithStringNamedNumericProperty.types +++ b/tests/baselines/reference/objectTypeWithStringNamedNumericProperty.types @@ -343,43 +343,43 @@ var r13 = i[-01] >-01 : number var b = { ->b : { "1": number; "0.1": void; ".1": Object; "1.": string; "1..": boolean; "1.0": Date; "-1.0": RegExp; "-1": { (): string; new (): Date; new (value: number): Date; new (value: string): Date; new (year: number, month: number, date?: number, hours?: number, minutes?: number, seconds?: number, ms?: number): Date; prototype: Date; parse(s: string): number; UTC(year: number, month: number, date?: number, hours?: number, minutes?: number, seconds?: number, ms?: number): number; now(): number; }; } ->{ "0.1": null, ".1": new Object(), "1": 1, "1.": "", "1..": true, "1.0": new Date(), "-1.0": /123/, "-1": Date} : { "1": number; "0.1": void; ".1": Object; "1.": string; "1..": boolean; "1.0": Date; "-1.0": RegExp; "-1": { (): string; new (): Date; new (value: number): Date; new (value: string): Date; new (year: number, month: number, date?: number, hours?: number, minutes?: number, seconds?: number, ms?: number): Date; prototype: Date; parse(s: string): number; UTC(year: number, month: number, date?: number, hours?: number, minutes?: number, seconds?: number, ms?: number): number; now(): number; }; } +>b : { "1": number; "0.1": void; ".1": Object; "1.": string; "1..": boolean; "1.0": Date; "-1.0": RegExp; "-1": DateConstructor; } +>{ "0.1": null, ".1": new Object(), "1": 1, "1.": "", "1..": true, "1.0": new Date(), "-1.0": /123/, "-1": Date} : { "1": number; "0.1": void; ".1": Object; "1.": string; "1..": boolean; "1.0": Date; "-1.0": RegExp; "-1": DateConstructor; } "0.1": null, >null : void ".1": new Object(), >new Object() : Object ->Object : { (): any; (value: any): any; new (value?: any): Object; prototype: Object; getPrototypeOf(o: any): any; getOwnPropertyDescriptor(o: any, p: string): PropertyDescriptor; getOwnPropertyNames(o: any): string[]; create(o: any, properties?: PropertyDescriptorMap): any; defineProperty(o: any, p: string, attributes: PropertyDescriptor): any; defineProperties(o: any, properties: PropertyDescriptorMap): any; seal(o: any): any; freeze(o: any): any; preventExtensions(o: any): any; isSealed(o: any): boolean; isFrozen(o: any): boolean; isExtensible(o: any): boolean; keys(o: any): string[]; } +>Object : ObjectConstructor "1": 1, "1.": "", "1..": true, "1.0": new Date(), >new Date() : Date ->Date : { (): string; new (): Date; new (value: number): Date; new (value: string): Date; new (year: number, month: number, date?: number, hours?: number, minutes?: number, seconds?: number, ms?: number): Date; prototype: Date; parse(s: string): number; UTC(year: number, month: number, date?: number, hours?: number, minutes?: number, seconds?: number, ms?: number): number; now(): number; } +>Date : DateConstructor "-1.0": /123/, "-1": Date ->Date : { (): string; new (): Date; new (value: number): Date; new (value: string): Date; new (year: number, month: number, date?: number, hours?: number, minutes?: number, seconds?: number, ms?: number): Date; prototype: Date; parse(s: string): number; UTC(year: number, month: number, date?: number, hours?: number, minutes?: number, seconds?: number, ms?: number): number; now(): number; } +>Date : DateConstructor }; var r1 = b['0.1']; >r1 : void >b['0.1'] : void ->b : { "1": number; "0.1": void; ".1": Object; "1.": string; "1..": boolean; "1.0": Date; "-1.0": RegExp; "-1": { (): string; new (): Date; new (value: number): Date; new (value: string): Date; new (year: number, month: number, date?: number, hours?: number, minutes?: number, seconds?: number, ms?: number): Date; prototype: Date; parse(s: string): number; UTC(year: number, month: number, date?: number, hours?: number, minutes?: number, seconds?: number, ms?: number): number; now(): number; }; } +>b : { "1": number; "0.1": void; ".1": Object; "1.": string; "1..": boolean; "1.0": Date; "-1.0": RegExp; "-1": DateConstructor; } var r2 = b['.1']; >r2 : Object >b['.1'] : Object ->b : { "1": number; "0.1": void; ".1": Object; "1.": string; "1..": boolean; "1.0": Date; "-1.0": RegExp; "-1": { (): string; new (): Date; new (value: number): Date; new (value: string): Date; new (year: number, month: number, date?: number, hours?: number, minutes?: number, seconds?: number, ms?: number): Date; prototype: Date; parse(s: string): number; UTC(year: number, month: number, date?: number, hours?: number, minutes?: number, seconds?: number, ms?: number): number; now(): number; }; } +>b : { "1": number; "0.1": void; ".1": Object; "1.": string; "1..": boolean; "1.0": Date; "-1.0": RegExp; "-1": DateConstructor; } var r3 = b['1']; >r3 : number >b['1'] : number ->b : { "1": number; "0.1": void; ".1": Object; "1.": string; "1..": boolean; "1.0": Date; "-1.0": RegExp; "-1": { (): string; new (): Date; new (value: number): Date; new (value: string): Date; new (year: number, month: number, date?: number, hours?: number, minutes?: number, seconds?: number, ms?: number): Date; prototype: Date; parse(s: string): number; UTC(year: number, month: number, date?: number, hours?: number, minutes?: number, seconds?: number, ms?: number): number; now(): number; }; } +>b : { "1": number; "0.1": void; ".1": Object; "1.": string; "1..": boolean; "1.0": Date; "-1.0": RegExp; "-1": DateConstructor; } var r3 = c[1]; >r3 : number @@ -389,7 +389,7 @@ var r3 = c[1]; var r4 = b['1.']; >r4 : string >b['1.'] : string ->b : { "1": number; "0.1": void; ".1": Object; "1.": string; "1..": boolean; "1.0": Date; "-1.0": RegExp; "-1": { (): string; new (): Date; new (value: number): Date; new (value: string): Date; new (year: number, month: number, date?: number, hours?: number, minutes?: number, seconds?: number, ms?: number): Date; prototype: Date; parse(s: string): number; UTC(year: number, month: number, date?: number, hours?: number, minutes?: number, seconds?: number, ms?: number): number; now(): number; }; } +>b : { "1": number; "0.1": void; ".1": Object; "1.": string; "1..": boolean; "1.0": Date; "-1.0": RegExp; "-1": DateConstructor; } var r3 = c[1.]; // same as indexing by 1 when done numerically >r3 : number @@ -399,12 +399,12 @@ var r3 = c[1.]; // same as indexing by 1 when done numerically var r5 = b['1..']; >r5 : boolean >b['1..'] : boolean ->b : { "1": number; "0.1": void; ".1": Object; "1.": string; "1..": boolean; "1.0": Date; "-1.0": RegExp; "-1": { (): string; new (): Date; new (value: number): Date; new (value: string): Date; new (year: number, month: number, date?: number, hours?: number, minutes?: number, seconds?: number, ms?: number): Date; prototype: Date; parse(s: string): number; UTC(year: number, month: number, date?: number, hours?: number, minutes?: number, seconds?: number, ms?: number): number; now(): number; }; } +>b : { "1": number; "0.1": void; ".1": Object; "1.": string; "1..": boolean; "1.0": Date; "-1.0": RegExp; "-1": DateConstructor; } var r6 = b['1.0']; >r6 : Date >b['1.0'] : Date ->b : { "1": number; "0.1": void; ".1": Object; "1.": string; "1..": boolean; "1.0": Date; "-1.0": RegExp; "-1": { (): string; new (): Date; new (value: number): Date; new (value: string): Date; new (year: number, month: number, date?: number, hours?: number, minutes?: number, seconds?: number, ms?: number): Date; prototype: Date; parse(s: string): number; UTC(year: number, month: number, date?: number, hours?: number, minutes?: number, seconds?: number, ms?: number): number; now(): number; }; } +>b : { "1": number; "0.1": void; ".1": Object; "1.": string; "1..": boolean; "1.0": Date; "-1.0": RegExp; "-1": DateConstructor; } var r3 = c[1.0]; // same as indexing by 1 when done numerically >r3 : number diff --git a/tests/baselines/reference/propertyAccessOnTypeParameterWithConstraints.types b/tests/baselines/reference/propertyAccessOnTypeParameterWithConstraints.types index b467740332b..9d74985b9a5 100644 --- a/tests/baselines/reference/propertyAccessOnTypeParameterWithConstraints.types +++ b/tests/baselines/reference/propertyAccessOnTypeParameterWithConstraints.types @@ -130,5 +130,5 @@ var r4 = b.foo(new Date()); >b : { foo: (x: T) => number; } >foo : (x: T) => number >new Date() : Date ->Date : { (): string; new (): Date; new (value: number): Date; new (value: string): Date; new (year: number, month: number, date?: number, hours?: number, minutes?: number, seconds?: number, ms?: number): Date; prototype: Date; parse(s: string): number; UTC(year: number, month: number, date?: number, hours?: number, minutes?: number, seconds?: number, ms?: number): number; now(): number; } +>Date : DateConstructor diff --git a/tests/baselines/reference/redefineArray.errors.txt b/tests/baselines/reference/redefineArray.errors.txt index 86c8c8aee33..f0d5ff39eba 100644 --- a/tests/baselines/reference/redefineArray.errors.txt +++ b/tests/baselines/reference/redefineArray.errors.txt @@ -1,9 +1,9 @@ -tests/cases/compiler/redefineArray.ts(1,1): error TS2323: Type '(n: number, s: string) => number' is not assignable to type '{ (arrayLength?: number): any[]; (arrayLength: number): T[]; (...items: T[]): T[]; new (arrayLength?: number): any[]; new (arrayLength: number): T[]; new (...items: T[]): T[]; isArray(arg: any): boolean; prototype: any[]; }'. +tests/cases/compiler/redefineArray.ts(1,1): error TS2323: Type '(n: number, s: string) => number' is not assignable to type 'ArrayConstructor'. Property 'isArray' is missing in type '(n: number, s: string) => number'. ==== tests/cases/compiler/redefineArray.ts (1 errors) ==== Array = function (n:number, s:string) {return n;}; ~~~~~ -!!! error TS2323: Type '(n: number, s: string) => number' is not assignable to type '{ (arrayLength?: number): any[]; (arrayLength: number): T[]; (...items: T[]): T[]; new (arrayLength?: number): any[]; new (arrayLength: number): T[]; new (...items: T[]): T[]; isArray(arg: any): boolean; prototype: any[]; }'. +!!! error TS2323: Type '(n: number, s: string) => number' is not assignable to type 'ArrayConstructor'. !!! error TS2323: Property 'isArray' is missing in type '(n: number, s: string) => number'. \ No newline at end of file diff --git a/tests/baselines/reference/returnStatements.types b/tests/baselines/reference/returnStatements.types index 58d2a251b0e..5437c835784 100644 --- a/tests/baselines/reference/returnStatements.types +++ b/tests/baselines/reference/returnStatements.types @@ -20,7 +20,7 @@ function fn6(): Date { return new Date(12); } >fn6 : () => Date >Date : Date >new Date(12) : Date ->Date : { (): string; new (): Date; new (value: number): Date; new (value: string): Date; new (year: number, month: number, date?: number, hours?: number, minutes?: number, seconds?: number, ms?: number): Date; prototype: Date; parse(s: string): number; UTC(year: number, month: number, date?: number, hours?: number, minutes?: number, seconds?: number, ms?: number): number; now(): number; } +>Date : DateConstructor function fn7(): any { return null; } >fn7 : () => any diff --git a/tests/baselines/reference/returnTypeParameterWithModules.types b/tests/baselines/reference/returnTypeParameterWithModules.types index 4be0efcd2a5..be09b8f46b0 100644 --- a/tests/baselines/reference/returnTypeParameterWithModules.types +++ b/tests/baselines/reference/returnTypeParameterWithModules.types @@ -16,7 +16,7 @@ module M1 { >Array.prototype.reduce.apply : (thisArg: any, argArray?: any) => any >Array.prototype.reduce : { (callbackfn: (previousValue: any, currentValue: any, currentIndex: number, array: any[]) => any, initialValue?: any): any; (callbackfn: (previousValue: U, currentValue: any, currentIndex: number, array: any[]) => U, initialValue: U): U; } >Array.prototype : any[] ->Array : { (arrayLength?: number): any[]; (arrayLength: number): T[]; (...items: T[]): T[]; new (arrayLength?: number): any[]; new (arrayLength: number): T[]; new (...items: T[]): T[]; isArray(arg: any): boolean; prototype: any[]; } +>Array : ArrayConstructor >prototype : any[] >reduce : { (callbackfn: (previousValue: any, currentValue: any, currentIndex: number, array: any[]) => any, initialValue?: any): any; (callbackfn: (previousValue: U, currentValue: any, currentIndex: number, array: any[]) => U, initialValue: U): U; } >apply : (thisArg: any, argArray?: any) => any diff --git a/tests/baselines/reference/sourceMapValidationTryCatchFinally.types b/tests/baselines/reference/sourceMapValidationTryCatchFinally.types index 2bd6effcb1c..66039a96642 100644 --- a/tests/baselines/reference/sourceMapValidationTryCatchFinally.types +++ b/tests/baselines/reference/sourceMapValidationTryCatchFinally.types @@ -35,7 +35,7 @@ try throw new Error(); >new Error() : Error ->Error : { (message?: string): Error; new (message?: string): Error; prototype: Error; } +>Error : ErrorConstructor } catch (e) >e : any diff --git a/tests/baselines/reference/subtypingWithOptionalProperties.types b/tests/baselines/reference/subtypingWithOptionalProperties.types index 67eeb274c6b..707c4b007e7 100644 --- a/tests/baselines/reference/subtypingWithOptionalProperties.types +++ b/tests/baselines/reference/subtypingWithOptionalProperties.types @@ -24,7 +24,7 @@ var r = f({ s: new Object() }); // ok >{ s: new Object() } : { s: Object; } >s : Object >new Object() : Object ->Object : { (): any; (value: any): any; new (value?: any): Object; prototype: Object; getPrototypeOf(o: any): any; getOwnPropertyDescriptor(o: any, p: string): PropertyDescriptor; getOwnPropertyNames(o: any): string[]; create(o: any, properties?: PropertyDescriptorMap): any; defineProperty(o: any, p: string, attributes: PropertyDescriptor): any; defineProperties(o: any, properties: PropertyDescriptorMap): any; seal(o: any): any; freeze(o: any): any; preventExtensions(o: any): any; isSealed(o: any): boolean; isFrozen(o: any): boolean; isExtensible(o: any): boolean; keys(o: any): string[]; } +>Object : ObjectConstructor r.s && r.s.toFixed(); // would blow up at runtime >r.s && r.s.toFixed() : string diff --git a/tests/baselines/reference/switchStatements.types b/tests/baselines/reference/switchStatements.types index 1c951c5e098..4dd7b9904d6 100644 --- a/tests/baselines/reference/switchStatements.types +++ b/tests/baselines/reference/switchStatements.types @@ -25,11 +25,11 @@ switch (x) { case new Date(12): >new Date(12) : Date ->Date : { (): string; new (): Date; new (value: number): Date; new (value: string): Date; new (year: number, month: number, date?: number, hours?: number, minutes?: number, seconds?: number, ms?: number): Date; prototype: Date; parse(s: string): number; UTC(year: number, month: number, date?: number, hours?: number, minutes?: number, seconds?: number, ms?: number): number; now(): number; } +>Date : DateConstructor case new Object(): >new Object() : Object ->Object : { (): any; (value: any): any; new (value?: any): Object; prototype: Object; getPrototypeOf(o: any): any; getOwnPropertyDescriptor(o: any, p: string): PropertyDescriptor; getOwnPropertyNames(o: any): string[]; create(o: any, properties?: PropertyDescriptorMap): any; defineProperty(o: any, p: string, attributes: PropertyDescriptor): any; defineProperties(o: any, properties: PropertyDescriptorMap): any; seal(o: any): any; freeze(o: any): any; preventExtensions(o: any): any; isSealed(o: any): boolean; isFrozen(o: any): boolean; isExtensible(o: any): boolean; keys(o: any): string[]; } +>Object : ObjectConstructor case /[a-z]/: case[]: @@ -111,11 +111,11 @@ switch (undefined) { } switch (new Date(12)) { } >new Date(12) : Date ->Date : { (): string; new (): Date; new (value: number): Date; new (value: string): Date; new (year: number, month: number, date?: number, hours?: number, minutes?: number, seconds?: number, ms?: number): Date; prototype: Date; parse(s: string): number; UTC(year: number, month: number, date?: number, hours?: number, minutes?: number, seconds?: number, ms?: number): number; now(): number; } +>Date : DateConstructor switch (new Object()) { } >new Object() : Object ->Object : { (): any; (value: any): any; new (value?: any): Object; prototype: Object; getPrototypeOf(o: any): any; getOwnPropertyDescriptor(o: any, p: string): PropertyDescriptor; getOwnPropertyNames(o: any): string[]; create(o: any, properties?: PropertyDescriptorMap): any; defineProperty(o: any, p: string, attributes: PropertyDescriptor): any; defineProperties(o: any, properties: PropertyDescriptorMap): any; seal(o: any): any; freeze(o: any): any; preventExtensions(o: any): any; isSealed(o: any): boolean; isFrozen(o: any): boolean; isExtensible(o: any): boolean; keys(o: any): string[]; } +>Object : ObjectConstructor switch (/[a-z]/) { } switch ([]) { } diff --git a/tests/baselines/reference/throwStatements.types b/tests/baselines/reference/throwStatements.types index eeef863f6eb..08271fd0ac2 100644 --- a/tests/baselines/reference/throwStatements.types +++ b/tests/baselines/reference/throwStatements.types @@ -74,7 +74,7 @@ throw aString; var aDate = new Date(12); >aDate : Date >new Date(12) : Date ->Date : { (): string; new (): Date; new (value: number): Date; new (value: string): Date; new (year: number, month: number, date?: number, hours?: number, minutes?: number, seconds?: number, ms?: number): Date; prototype: Date; parse(s: string): number; UTC(year: number, month: number, date?: number, hours?: number, minutes?: number, seconds?: number, ms?: number): number; now(): number; } +>Date : DateConstructor throw aDate; >aDate : Date @@ -82,7 +82,7 @@ throw aDate; var anObject = new Object(); >anObject : Object >new Object() : Object ->Object : { (): any; (value: any): any; new (value?: any): Object; prototype: Object; getPrototypeOf(o: any): any; getOwnPropertyDescriptor(o: any, p: string): PropertyDescriptor; getOwnPropertyNames(o: any): string[]; create(o: any, properties?: PropertyDescriptorMap): any; defineProperty(o: any, p: string, attributes: PropertyDescriptor): any; defineProperties(o: any, properties: PropertyDescriptorMap): any; seal(o: any): any; freeze(o: any): any; preventExtensions(o: any): any; isSealed(o: any): boolean; isFrozen(o: any): boolean; isExtensible(o: any): boolean; keys(o: any): string[]; } +>Object : ObjectConstructor throw anObject; >anObject : Object @@ -225,7 +225,7 @@ throw ['a', ['b']]; throw /[a-z]/; throw new Date(); >new Date() : Date ->Date : { (): string; new (): Date; new (value: number): Date; new (value: string): Date; new (year: number, month: number, date?: number, hours?: number, minutes?: number, seconds?: number, ms?: number): Date; prototype: Date; parse(s: string): number; UTC(year: number, month: number, date?: number, hours?: number, minutes?: number, seconds?: number, ms?: number): number; now(): number; } +>Date : DateConstructor throw new C(); >new C() : C @@ -233,7 +233,7 @@ throw new C(); throw new Object(); >new Object() : Object ->Object : { (): any; (value: any): any; new (value?: any): Object; prototype: Object; getPrototypeOf(o: any): any; getOwnPropertyDescriptor(o: any, p: string): PropertyDescriptor; getOwnPropertyNames(o: any): string[]; create(o: any, properties?: PropertyDescriptorMap): any; defineProperty(o: any, p: string, attributes: PropertyDescriptor): any; defineProperties(o: any, properties: PropertyDescriptorMap): any; seal(o: any): any; freeze(o: any): any; preventExtensions(o: any): any; isSealed(o: any): boolean; isFrozen(o: any): boolean; isExtensible(o: any): boolean; keys(o: any): string[]; } +>Object : ObjectConstructor throw new D(); >new D() : D diff --git a/tests/baselines/reference/underscoreTest1.types b/tests/baselines/reference/underscoreTest1.types index 752c39b5e51..a3347457b8a 100644 --- a/tests/baselines/reference/underscoreTest1.types +++ b/tests/baselines/reference/underscoreTest1.types @@ -635,7 +635,7 @@ var log = _.bind((message?: string, ...rest: string[]) => { }, Date); >(message?: string, ...rest: string[]) => { } : (message?: string, ...rest: string[]) => void >message : string >rest : string[] ->Date : { (): string; new (): Date; new (value: number): Date; new (value: string): Date; new (year: number, month: number, date?: number, hours?: number, minutes?: number, seconds?: number, ms?: number): Date; prototype: Date; parse(s: string): number; UTC(year: number, month: number, date?: number, hours?: number, minutes?: number, seconds?: number, ms?: number): number; now(): number; } +>Date : DateConstructor _.delay(log, 1000, 'logged later'); >_.delay(log, 1000, 'logged later') : number @@ -1097,7 +1097,7 @@ _.isDate(new Date()); >_ : Underscore.Static >isDate : (object: any) => boolean >new Date() : Date ->Date : { (): string; new (): Date; new (value: number): Date; new (value: string): Date; new (year: number, month: number, date?: number, hours?: number, minutes?: number, seconds?: number, ms?: number): Date; prototype: Date; parse(s: string): number; UTC(year: number, month: number, date?: number, hours?: number, minutes?: number, seconds?: number, ms?: number): number; now(): number; } +>Date : DateConstructor _.isRegExp(/moe/); >_.isRegExp(/moe/) : boolean diff --git a/tests/baselines/reference/validMultipleVariableDeclarations.types b/tests/baselines/reference/validMultipleVariableDeclarations.types index 4bbd46bab2b..414f7cc7b84 100644 --- a/tests/baselines/reference/validMultipleVariableDeclarations.types +++ b/tests/baselines/reference/validMultipleVariableDeclarations.types @@ -126,7 +126,7 @@ var a: string[] = []; var a = new Array(); >a : string[] >new Array() : string[] ->Array : { (arrayLength?: number): any[]; (arrayLength: number): T[]; (...items: T[]): T[]; new (arrayLength?: number): any[]; new (arrayLength: number): T[]; new (...items: T[]): T[]; isArray(arg: any): boolean; prototype: any[]; } +>Array : ArrayConstructor var a: typeof a; >a : string[] diff --git a/tests/cases/compiler/implementArrayInterface.ts b/tests/cases/compiler/implementArrayInterface.ts index d08de40be2d..1ba8b8f2524 100644 --- a/tests/cases/compiler/implementArrayInterface.ts +++ b/tests/cases/compiler/implementArrayInterface.ts @@ -1,4 +1,4 @@ -declare class ArrayConstructor implements Array { +declare class MyArray implements Array { toString(): string; toLocaleString(): string; concat(...items: U[]): T[]; From c8db066211b76ba42d56f52d684e68c4713b46b8 Mon Sep 17 00:00:00 2001 From: Mohamed Hegazy Date: Tue, 28 Oct 2014 23:39:24 -0700 Subject: [PATCH 003/195] First draft of es6 typings --- Jakefile | 1 + src/lib/es6.d.ts | 747 +++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 748 insertions(+) create mode 100644 src/lib/es6.d.ts diff --git a/Jakefile b/Jakefile index 64394c2d60e..4769220958c 100644 --- a/Jakefile +++ b/Jakefile @@ -94,6 +94,7 @@ var librarySourceMap = [ { target: "lib.webworker.d.ts", sources: ["importcore.d.ts", "extensions.d.ts", "webworker.generated.d.ts"], }, { target: "lib.scriptHost.d.ts", sources: ["importcore.d.ts", "scriptHost.d.ts"], }, { target: "lib.d.ts", sources: ["core.d.ts", "extensions.d.ts", "dom.generated.d.ts", "webworker.importscripts.d.ts", "scriptHost.d.ts"], }, + { target: "lib.es6.d.ts", sources: ["core.d.ts", "es6.d.ts"]}, ]; var libraryTargets = librarySourceMap.map(function (f) { diff --git a/src/lib/es6.d.ts b/src/lib/es6.d.ts new file mode 100644 index 00000000000..489531590f4 --- /dev/null +++ b/src/lib/es6.d.ts @@ -0,0 +1,747 @@ + +interface Symbol { + /** Returns a string representation of an object. */ + toString(): string; + + /** Returns the primitive value of the specified object. */ + valueOf(): Object; + + // [Symbol.toStringTag]: string; +} + +interface SymbolConstructor { + /** + * Returns a new unique Symbol value. + * @param description Description of the new Symbol object. + */ + new (description?: string): Symbol; + + /** + * Returns a Symbol object from the global symbol registry matching the given key if found. + * Otherwise, returns a new symbol with this key. + * @param key key to search for. + */ + for(key: string): Symbol; + + /** + * Returns a key from the global symbol registry matching the given Symbol if found. + * Otherwise, returns a undefined. + * @param sym Symbol to find the key for. + */ + keyFor(sym: Symbol): string; + + // Well-known Symbols + + /** + * A method that determines if a constructor object recognizes an object as one of the constructor’s + * instances.Called by the semantics of the instanceof operator. + */ + hasInstance: Symbol; + + /** + * A Boolean value that if true indicates that an object should be flatten to its array elements + * by Array.prototype.concat. + */ + isConcatSpreadable: Symbol; + + /** + * A Boolean value that if true indicates that an object may be used as a regular expression. + */ + isRegExp: Symbol; + + /** + * A method that returns the default iterator for an object.Called by the semantics of the for-of + * statement. + */ + iterator: Symbol; + + /** + * A method that converts an object to a corresponding primitive value.Called by the ToPrimitive + * abstract operation. + */ + toPrimitive: Symbol; + + /** + * A String value that is used in the creation of the default string description of an object. + * Called by the built- in method Object.prototype.toString. + */ + toStringTag: Symbol; + + /** + * An Object whose own property names are property names that are excluded from the with environment + * bindings of the associated objects. + */ + unscopables: Symbol; +} + +declare var Symbol: SymbolConstructor; + +interface ObjectConstructor { + /** + * Copy the values of all of the enumerable own properties from one or more source objects to a + * target object. Returns the target object. + * @param target The target object to copy to. + * @param sources One or more source objects to copy properties from. + */ + assign(target: any, ...sources: any[]): any; + + /** + * Returns an array of all symbol properties found directly on object o. + * @param o Object to retrive the symbols from. + */ + getOwnPropertySymbols(o: any): Symbol[]; + + /** + * Returns true if the values are the same value, false otherwise. + * @param value1 The first value. + * @param value2 The second value. + */ + is(value1: any, value2: any): boolean; + + /** + * Sets the prototype of a specified object o to object proto or null. Returns the object o. + * @param o The object to change its prototype. + * @param proto The value of the new prototype or null. + */ + setPrototypeOf(o: any, proto: any): any; +} + +interface Function { + /** + * Returns a new function object that is identical to the argument object in all ways except for + * its identity and the value of its HomeObject internal slot. + */ + toMethod(newHome: Object): Function; + + /** + * Teturns the name of the function. Function names are read-only and can not be changed. + */ + name: string; +} + +interface NumberConstructor { + /** + * The value of Number.EPSILON is the difference between 1 and the smallest value greater than 1 that + * is representable as a Number value, which is approximately 2.2204460492503130808472633361816 x 10‍−‍16. + */ + EPSILON: number; + + /** + * Returns true if passed value is finite. + * Unlike the global isFininte, Number.isFinite doesn't forcibly convert the parameter to a number. + * Only finite values of the type number, result in true. + * @param number A numeric value. + */ + isFinite(number: number): boolean; + + /** + * Returns true if the value passed is an integer, false otherwise. + * @param number A numeric value. + */ + isInteger(number: number): boolean; + + /** + * Returns a Boolean value that indicates whether a value is the reserved value NaN (not a number). + * Unlike the global isNaN(), Number.isNaN() doesn't forcefully convert the parameter to a number. + * Only values of the type number, that are also NaN, result in true. + * @param number A numeric value. + */ + isNaN(number: number): boolean; + + /** + * Returns true if the value passed is a safe integer. + * @param number A numeric value. + */ + isSafeInteger(number: number): boolean; + + /** + * The value of the largest integer n such that n and n + 1 are both exactly representable as a Number value. + * The value of Number.MIN_SAFE_INTEGER is 9007199254740991 2^53 − 1. + */ + MAX_SAFE_INTEGER: number; + + /** + * The value of the smallest integer n such that n and n − 1 are both exactly representable as a Number value. + * The value of Number.MIN_SAFE_INTEGER is −9007199254740991 (−(2^53 − 1)). + */ + MIN_SAFE_INTEGER: number; + + /** + * Converts a string to a floating-point number. + * @param string A string that contains a floating-point number. + */ + parseFloat(string: string); + + /** + * Converts A string to an integer. + * @param s A string to convert into a number. + * @param radix A value between 2 and 36 that specifies the base of the number in numString. + * If this argument is not supplied, strings with a prefix of '0x' are considered hexadecimal. + * All other strings are considered decimal. + */ + parseInt(string: string, radix?: number): number; +} + +interface ArrayLike { + length: number; + [n: number]: T; +} + +interface Array { + /** Iterator */ + // [Symbol.iterator] (): T; + + /** + Returns an array of key, value pairs for every entry in the arrray + */ + entries(): Array<[number, T]>; + + /** + Returns an list of keys in the arrray + */ + keys(): number[]; + + /** + Returns an list of values in the arrray + */ + values(): T[]; + + /** + Returns the value of the first element in the array where predicate is true, and undefined otherwise + @parm predicate find calls predicate once for each element of the array, in ascending order, until it finds one where predicate returns true. If such an element is found, find immediately returns that element value. Otherwise, find returns undefined. + @param thisArg If provided, it will be used as the this value for each invocation of predicate. If it is not provided, undefined is used instead. + */ + find(predicate: (value: T, index: number, obj: Array) => boolean, thisArg?: any): T; + + /** + Returns the index of the first element in the array where predicate is true, and undefined otherwise + @parm predicate find calls predicate once for each element of the array, in ascending order, until it finds one where predicate returns true. If such an element is found, find immediately returns that element value. Otherwise, find returns undefined. + @param thisArg If provided, it will be used as the this value for each invocation of predicate. If it is not provided, undefined is used instead. + */ + findIndex(predicate: (value: T) => boolean, thisArg?: any): number; + + /** + Returns the this object after filling the section identified by start and end with value + @param value value to fill array section with + @param start index to start filling the array at. If start is negative, it is treated as length+start where length is the length of the array. + @param end index to stop filling the array at. If end is negative, it is treated as length+end. + */ + fill(value: T, start?: number, end?: number): T[]; + + /** + Returns the this object after copying a section of the array identified by start and end to the same array starting at position target + @param target If target is negative, it is treated as length+target where length is the length of the array. + @param start If start is negative, it is treated as length+start. If end is negative, it is treated as length+end. + @param end If not specified, length of the this object is used as its default value. + */ + copyWithin(target: number, start: number, end?: number): T[]; +} + +interface ArrayConstructor { + from(arrayLike: ArrayLike, mapfn: (s: T) => U, thisArg?: any): Array; + from(iterable: Iterable, mapfn: (s: T) => U, thisArg?: any): Array; + from(arrayLike: ArrayLike): Array; + from(iterable: Iterable): Array; + of(...items: T[]): Array; +} + +interface String { + /** Iterator */ + // [Symbol.iterator] (): string; + + /** + * Returns a nonnegative integer Number less than 1114112 (0x110000) that is the code point value of the UTF-16 encoded code point starting + * at the string element at position pos in the String resulting from converting this object to a String. + * If there is no element at that position, the result is undefined. + * If a valid UTF-16 surrogate pair does not begin at pos, the result is the code unit at pos. + */ + codePointAt(pos: number): number; + + /** + * Returns true if searchString appears as a substring of the result of converting this object to a String, at one or more positions that are + * greater than or equal to position; otherwise, returns false. + * @param searchString search string + * @param position If position is undefined, 0 is assumed, so as to search all of the String. + */ + contains(searchString: string, position?: number): boolean; + + /** + * Returns true if the sequence of elements of searchString converted to a String is the same as the corresponding elements of this object + * (converted to a String) starting at endPosition – length(this). Otherwise returns false. + */ + endsWith(searchString: string, endPosition?: number): boolean; + + /** + * Returns the String value result of normalizing the string into the normalization form named by form as specified in Unicode Standard Annex #15, Unicode Normalization Forms. + * @param form Applicaple values: "NFC", "NFD", "NFKC", or "NFKD", If not specified default is "NFC" + */ + normalize(form?: string): string; + + /** + * Returns a String value that is made from count copies appended together. If count is 0, T is the empty String is returned. + * @param count number of copies to append + */ + repeat(count: number): string; + + /** + * Returns true if the sequence of elements of searchString converted to a String is the same as the corresponding elements of this object + * (converted to a String) starting at position. Otherwise returns false. + */ + startsWith(searchString: string, position?: number): boolean; + + /** + * Returns an HTML anchor element and sets the name attribute to the text value + * @param name + */ + anchor(name: string): string; + + /** Returns a HTML element */ + big(): string; + + /** Returns a HTML element */ + blink(): string; + + /** Returns a HTML element */ + bold(): string; + + /** Returns a HTML element */ + fixed(): string + + /** Returns a HTML element and sets the color attribure value */ + fontcolor(color: string): string + + /** Returns a HTML element and sets the size attribure value */ + fontsize(size: number): string; + + /** Returns a HTML element and sets the size attribure value */ + fontsize(size: string): string; + + /** Returns an HTML element */ + italics(): string; + + /** Returns an HTML element and sets the href attribure value */ + link(url: string): string; + + /** Returns a HTML element */ + small(): string; + + /** Returns a HTML element */ + strike(): string; + + /** Returns a HTML element */ + sub(): string; + + /** Returns a HTML element */ + sup(): string; +} + +interface StringConstructor { + /** + * Return the String value whose elements are, in order, the elements in the List elements. If length is 0, the empty string is returned. + */ + fromCodePoint(...codePoints: number[]): string; + + /** + * String.raw is intended for use as a tag function of a Tagged Template String. When called as such the first argument will be a well formed + * template call site object and the rest parameter will contain the substitution values + */ + raw(callSite: { raw: string; }, ...substitutions: any[]); +} + +interface IteratorResult { + done: boolean; + value: T; +} + +interface Iterator { + next(): IteratorResult; +} + +interface Iterable { + //[Symbol.iterator](): Iterator; +} + +// Generators +interface Generator extends Iterator { + next(value?: any): IteratorResult; + throw(exception: any); + // [Symbol.toStringTag]: string; +} + +interface MATH { + /** + * Returns the number of leading zero bits in the 32-bit binary representation of a number. + * @param x A numeric expression. + */ + clz32(x: number): number; + + /** + * Returns the result of 32-bit multiplication of two numbers. + * @param x First number + * @param y Second number + */ + imul(x: number, y: number): number; + + /** + * Returns the sign of the x, indicating whether x is positive, negative or zero. + * @param x The numeric expression to test + */ + sign(x: number): number; + + /** + * Returns the base 10 logarithm of a number. + * @param x A numeric expression. + */ + log10(x: number): number; + + /** + * Returns the base 2 logarithm of a number. + * @param x A numeric expression. + */ + log2(x: number): number; + + /** + * Returns the natural logarithm of 1 + x. + * @param x A numeric expression. + */ + log1p(x: number): number; + + /** + * Returns the result of (e^x - 1) of x (e raised to the power of x, where e is the base of the natural logarithms). + * @param x A numeric expression. + */ + expm1(x: number): number; + + /** + * Returns the hyperbolic cosine of a number. + * @param x A numeric expression that contains an angle measured in radians. + */ + cosh(x: number): number; + + /** + * Returns the hyperbolic sine of a number. + * @param x A numeric expression that contains an angle measured in radians. + */ + sinh(x: number): number; + + /** + * Returns the hyperbolic tangent of a number. + * @param x A numeric expression that contains an angle measured in radians. + */ + tanh(x: number): number; + + /** + * Returns the inverse hyperbolic cosine of a number. + * @param x A numeric expression that contains an angle measured in radians. + */ + acosh(x: number): number; + + /** + * Returns the inverse hyperbolic sine of a number. + * @param x A numeric expression that contains an angle measured in radians. + */ + asinh(x: number): number; + + /** + * Returns the inverse hyperbolic tangent of a number. + * @param x A numeric expression that contains an angle measured in radians. + */ + atanh(x: number): number; + + /** + * Returns the square root of the sum of squares of its arguments. + */ + hypot(value1: number, value2: number, ...values: number[] ): number; + + /** + * Returns the integral part of the a numeric expression, x, removing any fractional digits. + * If x is already an integer, the result is x. + * @param x A numeric expression. + */ + trunc(x: number): number; + + /** + * Returns the nearest single precision float representation of a number. + * @param x A numeric expression. + */ + fround(x: number): number; + + /** + * Returns an implementation-dependent approximation to the cube root of number. + * @param x A numeric expression. + */ + cbrt(x: number): number; + + // [Symbol.toStringTag]: string; +} + +interface RegExp { + // [Symbol.isRegExp]: Boolean; + + /** + * Matches a string with a regular expression, and returns an array containing the results of + * that search. + * @param string A string to search within. + */ + match(string: string): string[]; + + /** + * Replaces text in a string, using a regular expression. + * @param searchValue A String object or string literal that represents the regular expression + * @param replaceValue A String object or string literal containing the text to replace for every + * successful match of rgExp in stringObj. + */ + replace(string: string, replaceValue: string): string; + + search(string: string): number; + + /** + * Returns an Array object into which substrings of the result of converting string to a String + * have been stored. The substrings are determined by searching from left to right for matches + * of the this value regular expression; these occurrences are not part of any substring in the + * returned array, but serve to divide up the String value. + * + * If the regular expression that contains capturing parentheses, then each time separator is + * matched the results (including any undefined results) of the capturing parentheses are spliced. + * @param string string value to slpit + * @param limit if not undefined, the output array is truncated so that it contains no more than + * limit elements. + */ + split(string: string, limit?: number): string[]; + + /** + * Returns a Boolean value indicating the state of the sticky flag (y) used with a regular expression. + * Default is false. Read-only. + */ + sticky: boolean; + + /** + * Returns a Boolean value indicating the state of the unicode flag (u) used with a regular expression. + * Default is false. Read-only. + */ + unicode: boolean; +} + +interface Map { + clear(): void; + delete(key: K): boolean; + entries(): [K, V][]; + forEach(callbackfn: (value: V, index: K, map: Map) => void, thisArg?: any): void; + get(key: K): V; + has(key: K): boolean; + keys(): K[]; + set(key: K, value: V): Map; + size: number; + values(): V[]; + // [Symbol.Iterator]():Iterator<[K,V]>; + // [Symbol.toStringTag]: string; +} + +declare var Map: { + new (): Map; + new (iterable: Iterable<[K, V]>): Map; +}; + +interface WeakMap { + clear(): void; + delete(key: K): boolean; + get(key: K): V; + has(key: K): boolean; + set(key: K, value: V): WeakMap; + // [Symbol.toStringTag]: string; +} + +declare var WeakMap: { + new (): WeakMap; + new (iterable: Iterable<[K, V]>): WeakMap; +} + +interface Set { + add(value: T): Set; + clear(): void; + delete(value: T): boolean; + entries(): [T, T][]; + forEach(callbackfn: (value: T, index: T, set: Set) => void, thisArg?: any): void; + has(value: T): boolean; + keys(): T[]; + size: number; + values(): T[]; + // [Symbol.Iterator]():Iterator; + // [Symbol.toStringTag]: string; +} + +declare var Set: { + new (): Set; + new (iterable: Iterable): Set; +}; + +interface WeakSet { + add(value: T): WeakSet; + clear(): void; + delete(value: T): boolean; + has(value: T): boolean; + // [Symbol.toStringTag]: string; +} + +declare var WeakSet: { + new (): WeakSet; + new (iterable: Iterable): WeakSet; +}; + +interface JSON { + // [Symbol.toStringTag]: string; +} + +/** + * Represents a raw buffer of binary data, which is used to store data for the + * different typed arrays. ArrayBuffers cannot be read from or written to directly, + * but can be passed to a typed array or DataView Object to interpret the raw + * buffer as needed. + */ +interface ArrayBuffer { + /** + * Read-only. The length of the ArrayBuffer (in bytes). + */ + byteLength: number; + + /** + * Returns a section of an ArrayBuffer. + */ + slice(begin: number, end?: number): ArrayBuffer; + + // [Symbol.toStringTag]: string; +} + +declare var ArrayBuffer: { + prototype: ArrayBuffer; + new (byteLength: number): ArrayBuffer; + isView(arg: any): boolean; +} + +interface DataView { + buffer: ArrayBuffer; + byteLength: number; + byteOffset: number; + getFloat32(byteOffset: number, littleEndian: boolean): number; + getFloat64(byteOffset: number, littleEndian: boolean): number; + getInt8(byteOffset: number): number; + getInt16(byteOffset: number, littleEndian: boolean): number; + getInt32(byteOffset: number, littleEndian: boolean): number; + getUint8(byteOffset: number): number; + getUint16(byteOffset: number, littleEndian: boolean): number; + getUint32(byteOffset: number, littleEndian: boolean): number; + setFloat32(byteOffset: number, value: number, littleEndian: boolean): void; + setFloat64(byteOffset: number, value: number, littleEndian: boolean): void; + setInt8(byteOffset: number, value: number): void; + setInt16(byteOffset: number, value: number, littleEndian: boolean): void; + setInt32(byteOffset: number, value: number, littleEndian: boolean): void; + setUint8(byteOffset: number, value: number): void; + setUint16(byteOffset: number, value: number, littleEndian: boolean): void; + setUint32(byteOffset: number, value: number, littleEndian: boolean): void; + // [Symbol.toStringTag]: string; +} + +declare var DataView: { + new (buffer: ArrayBuffer, byteOffset?: number, byteLength?: number); +}; + +/** + * A typed array of 8-bit integer values. The contents are initialized to 0. If the requested number of bytes could not be allocated an exception is raised. + */ +interface Int8Array { + BYTES_PER_ELEMENT: number; + buffer: ArrayBuffer; + byteLength: number; + byteOffset: number; + copyWithin(target: number, start: number, end?: number): Int8Array; + entries(): Array<[number, number]>; + every(callbackfn: (value: number, index: number, array: Int8Array) => boolean, thisArg?: any): boolean; + fill(value: number, start?: number, end?: number): Int8Array; + filter(callbackfn: (value: number, index: number, array: Int8Array) => boolean, thisArg?: any): Int8Array; + find(predicate: (value: number, index: number, obj: Array) => boolean, thisArg?: any): number; + findIndex(predicate: (value: number) => boolean, thisArg?: any): number; + forEach(callbackfn: (value: number, index: number, array: Int8Array) => void, thisArg?: any): void; + indexOf(searchElement: number, fromIndex?: number): number; + join(separator?: string): string; + keys(): number[]; + lastIndexOf(searchElement: number, fromIndex?: number): number; + length: number; + map(callbackfn: (value: number, index: number, array: Int8Array) => U, thisArg?: any): U[]; + reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Int8Array) => number, initialValue?: number): number; + reduce(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Int8Array) => U, initialValue: U): U; + reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Int8Array) => number, initialValue?: number): number; + reduceRight(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Int8Array) => U, initialValue: U): U; + reverse(): Int8Array; + set(index: number, value: number): void; + set(array: Int8Array, offset?: number): void; + slice(start?: number, end?: number): Int8Array; + some(callbackfn: (value: number, index: number, array: Int8Array) => boolean, thisArg?: any): boolean; + sort(compareFn?: (a: number, b: number) => number): Int8Array; + subarray(begin: number, end?: number): Int8Array; + toLocaleString(): string; + toString(): string; + values(): Int8Array; + [index: number]: number; + // [Symbol.iterator] (): number; +} + +declare var Int8Array: { + prototype: Int8Array; + new (length: number): Int8Array; + new (array: Int8Array): Int8Array; + new (array: number[]): Int8Array; + new (buffer: ArrayBuffer, byteOffset?: number, length?: number): Int8Array; + BYTES_PER_ELEMENT: number; + of(...items: number[]): Int8Array; +}; + +interface Uint8Array { } +declare var Uint8Array; + +interface Uint8ClampedArray { } +declare var Uint8ClampedArray; + +interface Int16Array { } +declare var Int16Array; + +interface Uint16Array { } +declare var Uint16Array; + +interface Int32Array { } +declare var Int32Array; + +interface Uint32Array { } +declare var Uint32Array; + +interface Float32Array { } +declare var Float32Array; + +interface Float64Array { } +declare var Float64Array; + +interface Handler { + getOwnPropertyDescriptor? (target: T, name: string): string; + getOwnPropertyNames? (target: T): string[]; // Object.getOwnPropertyNames(proxy) + getPrototypeOf? (target: T): any; // Object.getPrototypeOf(proxy) + defineProperty? (target: T, name: string, desc: string): boolean; // Object.defineProperty(proxy,name,desc) + deleteProperty? (target: T, name: string): boolean; // delete proxy[name] + freeze? (target: T): boolean; // Object.freeze(proxy) + seal? (target: T): boolean; // Object.seal(proxy) + preventExtensions? (target: T): boolean; // Object.preventExtensions(proxy) + isFrozen? (target: T): boolean; // Object.isFrozen(proxy) + isSealed? (target: T): boolean; // Object.isSealed(proxy) + isExtensible? (target: T): boolean; // Object.isExtensible(proxy) + has? (target: T, name: string): boolean; // name in proxy + hasOwn? (target: T, name: string): boolean; // ({}).hasOwnProperty.call(proxy,name) + get? (target: T, name: string, receiver: any): any; // receiver[name] + set? (target: T, name: string, val: any, receiver: any): boolean; // receiver[name] = val + enumerate? (target: T): Iterator; // for (name in proxy) (iterator should yield all enumerable own and inherited properties) + keys? (target: T): string[]; // Object.keys(proxy) (return array of enumerable own properties only) + apply? (target: T, thisArg, args): any; // proxy(...args) + construct? (target: T, args): any;// new proxy(...args) +} + +declare var Proxy: { + (target: T, handeler: Handler): T; + new (target: T, handeler: Handler): T +}; \ No newline at end of file From 63e136362365a6aebe83c5a966716e2b9782ca7a Mon Sep 17 00:00:00 2001 From: Mohamed Hegazy Date: Tue, 28 Oct 2014 23:52:02 -0700 Subject: [PATCH 004/195] Load the es6 lib if target is es6 --- src/compiler/parser.ts | 2 +- src/compiler/tsc.ts | 2 +- src/compiler/types.ts | 2 +- src/harness/harness.ts | 2 +- src/services/services.ts | 6 +++--- src/services/shims.ts | 6 +++--- 6 files changed, 10 insertions(+), 10 deletions(-) diff --git a/src/compiler/parser.ts b/src/compiler/parser.ts index 6c2207a08d2..03d8deefa57 100644 --- a/src/compiler/parser.ts +++ b/src/compiler/parser.ts @@ -4132,7 +4132,7 @@ module ts { forEach(rootNames, name => processRootFile(name, false)); if (!seenNoDefaultLib) { - processRootFile(host.getDefaultLibFilename(), true); + processRootFile(host.getDefaultLibFilename(options), true); } verifyCompilerOptions(); errors.sort(compareDiagnostics); diff --git a/src/compiler/tsc.ts b/src/compiler/tsc.ts index 15f231bc74e..4e75cf21ea9 100644 --- a/src/compiler/tsc.ts +++ b/src/compiler/tsc.ts @@ -193,7 +193,7 @@ module ts { return { getSourceFile: getSourceFile, - getDefaultLibFilename: () => combinePaths(getDirectoryPath(normalizePath(sys.getExecutingFilePath())), "lib.d.ts"), + getDefaultLibFilename: (options) => combinePaths(getDirectoryPath(normalizePath(sys.getExecutingFilePath())), options.target === ScriptTarget.ES6 ? "lib.es6.d.ts" : "lib.d.ts"), writeFile: writeFile, getCurrentDirectory: () => currentDirectory || (currentDirectory = sys.getCurrentDirectory()), useCaseSensitiveFileNames: () => sys.useCaseSensitiveFileNames, diff --git a/src/compiler/types.ts b/src/compiler/types.ts index 6a51691f1ab..2e9d22d9e7f 100644 --- a/src/compiler/types.ts +++ b/src/compiler/types.ts @@ -1256,7 +1256,7 @@ module ts { export interface CompilerHost { getSourceFile(filename: string, languageVersion: ScriptTarget, onError?: (message: string) => void): SourceFile; - getDefaultLibFilename(): string; + getDefaultLibFilename(options: CompilerOptions): string; getCancellationToken? (): CancellationToken; writeFile(filename: string, data: string, writeByteOrderMark: boolean, onError?: (message: string) => void): void; getCurrentDirectory(): string; diff --git a/src/harness/harness.ts b/src/harness/harness.ts index 60c5da5a1a6..0276154c740 100644 --- a/src/harness/harness.ts +++ b/src/harness/harness.ts @@ -591,7 +591,7 @@ module Harness { return null; } }, - getDefaultLibFilename: () => defaultLibFileName, + getDefaultLibFilename: (options) => defaultLibFileName, writeFile: writeFile, getCanonicalFileName: getCanonicalFileName, useCaseSensitiveFileNames: () => useCaseSensitiveFileNames, diff --git a/src/services/services.ts b/src/services/services.ts index d2e4360725d..d61c9288e50 100644 --- a/src/services/services.ts +++ b/src/services/services.ts @@ -785,7 +785,7 @@ module ts { getLocalizedDiagnosticMessages(): any; getCancellationToken(): CancellationToken; getCurrentDirectory(): string; - getDefaultLibFilename(): string; + getDefaultLibFilename(options: CompilerOptions): string; } // @@ -2096,8 +2096,8 @@ module ts { getCanonicalFileName: (filename) => useCaseSensitivefilenames ? filename : filename.toLowerCase(), useCaseSensitiveFileNames: () => useCaseSensitivefilenames, getNewLine: () => "\r\n", - getDefaultLibFilename: (): string => { - return host.getDefaultLibFilename(); + getDefaultLibFilename: (options): string => { + return host.getDefaultLibFilename(options); }, writeFile: (filename, data, writeByteOrderMark) => { writer(filename, data, writeByteOrderMark); diff --git a/src/services/shims.ts b/src/services/shims.ts index a6bf421b095..19a593612fb 100644 --- a/src/services/shims.ts +++ b/src/services/shims.ts @@ -52,7 +52,7 @@ module ts { getLocalizedDiagnosticMessages(): string; getCancellationToken(): CancellationToken; getCurrentDirectory(): string; - getDefaultLibFilename(): string; + getDefaultLibFilename(options: string): string; } /** Public interface of a language service instance shim. */ @@ -389,8 +389,8 @@ module ts { return this.shimHost.getCancellationToken(); } - public getDefaultLibFilename(): string { - return this.shimHost.getDefaultLibFilename(); + public getDefaultLibFilename(options: CompilerOptions): string { + return this.shimHost.getDefaultLibFilename(JSON.stringify(options)); } public getCurrentDirectory(): string { From 4f8605baf7a4a23b60d1f48c64ce9e0d4ea347bb Mon Sep 17 00:00:00 2001 From: Mohamed Hegazy Date: Wed, 29 Oct 2014 00:59:57 -0700 Subject: [PATCH 005/195] Add reflect definition --- src/lib/es6.d.ts | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/src/lib/es6.d.ts b/src/lib/es6.d.ts index 489531590f4..c2f69f5a4af 100644 --- a/src/lib/es6.d.ts +++ b/src/lib/es6.d.ts @@ -744,4 +744,24 @@ interface Handler { declare var Proxy: { (target: T, handeler: Handler): T; new (target: T, handeler: Handler): T +}; + +declare type PropertyKey = string | number | Symbol; + +declare var Reflect: { + apply(target: Function, thisArgument: any, argumentsList: ArrayLike): any; + construct(target: Function, argumentsList: ArrayLike): any; + defineProperty(target: any, propertyKey: PropertyKey, attributes: PropertyDescriptor): boolean; + deleteProperty(target: any, propertyKey: PropertyKey): boolean; + enumerate(target: any): Iterator; + get(target: any, propertyKey: PropertyKey, receiver?: any): any; + getOwnPropertyDescriptor(target: any, propertyKey: PropertyKey): PropertyDescriptor; + getPrototypeOf(target: any): any; + has(target: any, propertyKey: string): boolean; + has(target: any, propertyKey: Symbol): boolean; + isExtensible(target: any): boolean; + ownKeys(target: any): Array; + preventExtensions(target: any): boolean; + set(target: any, propertyKey: PropertyKey, value: any, receiver? :any): boolean; + setPrototypeOf(target: any, proto: any): boolean; }; \ No newline at end of file From 7634f741d944dcd45fb83f0dfd594ecda49d2bfd Mon Sep 17 00:00:00 2001 From: Sheetal Nandi Date: Mon, 3 Nov 2014 09:06:40 -0800 Subject: [PATCH 006/195] Conformance tests for array element type of tuple is union type of tuple element types --- .../reference/castingTuple.errors.txt | 19 ++-- tests/baselines/reference/castingTuple.js | 15 +++- .../contextualTypeWithTuple.errors.txt | 37 ++++++-- .../reference/contextualTypeWithTuple.js | 31 ++++++- tests/baselines/reference/indexerWithTuple.js | 49 ++++++++-- .../reference/indexerWithTuple.types | 90 ++++++++++++++++++- .../conformance/types/tuple/castingTuple.ts | 8 +- .../types/tuple/contextualTypeWithTuple.ts | 12 +++ .../types/tuple/indexerWithTuple.ts | 25 +++++- 9 files changed, 251 insertions(+), 35 deletions(-) diff --git a/tests/baselines/reference/castingTuple.errors.txt b/tests/baselines/reference/castingTuple.errors.txt index f4efed6f1d1..98be259964d 100644 --- a/tests/baselines/reference/castingTuple.errors.txt +++ b/tests/baselines/reference/castingTuple.errors.txt @@ -2,19 +2,19 @@ tests/cases/conformance/types/tuple/castingTuple.ts(13,23): error TS2352: Neithe Property '2' is missing in type '[number, string]'. tests/cases/conformance/types/tuple/castingTuple.ts(16,21): error TS2352: Neither type '[C, D]' nor type '[C, D, A]' is assignable to the other. Property '2' is missing in type '[C, D]'. -tests/cases/conformance/types/tuple/castingTuple.ts(24,10): error TS2352: Neither type '[number, string]' nor type '[number, number]' is assignable to the other. +tests/cases/conformance/types/tuple/castingTuple.ts(28,10): error TS2352: Neither type '[number, string]' nor type '[number, number]' is assignable to the other. Types of property '1' are incompatible. Type 'string' is not assignable to type 'number'. -tests/cases/conformance/types/tuple/castingTuple.ts(25,10): error TS2352: Neither type '[C, D]' nor type '[A, I]' is assignable to the other. +tests/cases/conformance/types/tuple/castingTuple.ts(29,10): error TS2352: Neither type '[C, D]' nor type '[A, I]' is assignable to the other. Types of property '0' are incompatible. Type 'C' is not assignable to type 'A'. -tests/cases/conformance/types/tuple/castingTuple.ts(26,5): error TS2403: Subsequent variable declarations must have the same type. Variable 'array1' must be of type '{}[]', but here has type 'number[]'. -tests/cases/conformance/types/tuple/castingTuple.ts(26,14): error TS2352: Neither type '[number, string]' nor type 'number[]' is assignable to the other. +tests/cases/conformance/types/tuple/castingTuple.ts(30,5): error TS2403: Subsequent variable declarations must have the same type. Variable 'array1' must be of type '{}[]', but here has type 'number[]'. +tests/cases/conformance/types/tuple/castingTuple.ts(30,14): error TS2352: Neither type '[number, string]' nor type 'number[]' is assignable to the other. Types of property 'pop' are incompatible. Type '() => string | number' is not assignable to type '() => number'. Type 'string | number' is not assignable to type 'number'. Type 'string' is not assignable to type 'number'. -tests/cases/conformance/types/tuple/castingTuple.ts(27,1): error TS2304: Cannot find name 't4'. +tests/cases/conformance/types/tuple/castingTuple.ts(31,1): error TS2304: Cannot find name 't4'. ==== tests/cases/conformance/types/tuple/castingTuple.ts (7 errors) ==== @@ -41,10 +41,14 @@ tests/cases/conformance/types/tuple/castingTuple.ts(27,1): error TS2304: Cannot !!! error TS2352: Neither type '[C, D]' nor type '[C, D, A]' is assignable to the other. !!! error TS2352: Property '2' is missing in type '[C, D]'. var eleFromCDA1 = classCDATuple[2]; // A - var eleFromCDA2 = classCDATuple[5]; // {} + var eleFromCDA2 = classCDATuple[5]; // C | D | A var t10: [E1, E2] = [E1.one, E2.one]; var t11 = <[number, number]>t10; var array1 = <{}[]>emptyObjTuple; + var unionTuple: [C, string | number] = [new C(), "foo"]; + var unionTuple2: [C, string | number, D] = [new C(), "foo", new D()]; + var unionTuple3: [number, string| number] = [10, "foo"]; + var unionTuple4 = <[number, number]>unionTuple3; // error var t3 = <[number, number]>numStrTuple; @@ -68,4 +72,5 @@ tests/cases/conformance/types/tuple/castingTuple.ts(27,1): error TS2304: Cannot !!! error TS2352: Type 'string' is not assignable to type 'number'. t4[2] = 10; ~~ -!!! error TS2304: Cannot find name 't4'. \ No newline at end of file +!!! error TS2304: Cannot find name 't4'. + \ No newline at end of file diff --git a/tests/baselines/reference/castingTuple.js b/tests/baselines/reference/castingTuple.js index 0671062bb4e..fffadcbc070 100644 --- a/tests/baselines/reference/castingTuple.js +++ b/tests/baselines/reference/castingTuple.js @@ -16,16 +16,21 @@ var classCDTuple: [C, D] = [new C(), new D()]; var interfaceIITuple = <[I, I]>classCDTuple; var classCDATuple = <[C, D, A]>classCDTuple; var eleFromCDA1 = classCDATuple[2]; // A -var eleFromCDA2 = classCDATuple[5]; // {} +var eleFromCDA2 = classCDATuple[5]; // C | D | A var t10: [E1, E2] = [E1.one, E2.one]; var t11 = <[number, number]>t10; var array1 = <{}[]>emptyObjTuple; +var unionTuple: [C, string | number] = [new C(), "foo"]; +var unionTuple2: [C, string | number, D] = [new C(), "foo", new D()]; +var unionTuple3: [number, string| number] = [10, "foo"]; +var unionTuple4 = <[number, number]>unionTuple3; // error var t3 = <[number, number]>numStrTuple; var t9 = <[A, I]>classCDTuple; var array1 = numStrTuple; -t4[2] = 10; +t4[2] = 10; + //// [castingTuple.js] var __extends = this.__extends || function (d, b) { @@ -84,10 +89,14 @@ var classCDTuple = [new C(), new D()]; var interfaceIITuple = classCDTuple; var classCDATuple = classCDTuple; var eleFromCDA1 = classCDATuple[2]; // A -var eleFromCDA2 = classCDATuple[5]; // {} +var eleFromCDA2 = classCDATuple[5]; // C | D | A var t10 = [0 /* one */, 0 /* one */]; var t11 = t10; var array1 = emptyObjTuple; +var unionTuple = [new C(), "foo"]; +var unionTuple2 = [new C(), "foo", new D()]; +var unionTuple3 = [10, "foo"]; +var unionTuple4 = unionTuple3; // error var t3 = numStrTuple; var t9 = classCDTuple; diff --git a/tests/baselines/reference/contextualTypeWithTuple.errors.txt b/tests/baselines/reference/contextualTypeWithTuple.errors.txt index d093e176455..32e368b0f88 100644 --- a/tests/baselines/reference/contextualTypeWithTuple.errors.txt +++ b/tests/baselines/reference/contextualTypeWithTuple.errors.txt @@ -4,21 +4,27 @@ tests/cases/conformance/types/tuple/contextualTypeWithTuple.ts(3,5): error TS232 Type 'string | number | boolean' is not assignable to type 'string | number'. Type 'boolean' is not assignable to type 'string | number'. Type 'boolean' is not assignable to type 'number'. -tests/cases/conformance/types/tuple/contextualTypeWithTuple.ts(8,1): error TS2323: Type '[number, string, boolean]' is not assignable to type '[number, string]'. -tests/cases/conformance/types/tuple/contextualTypeWithTuple.ts(11,1): error TS2323: Type '[{}, number]' is not assignable to type '[{ a: string; }, number]'. +tests/cases/conformance/types/tuple/contextualTypeWithTuple.ts(15,1): error TS2323: Type '[number, string, boolean]' is not assignable to type '[number, string]'. +tests/cases/conformance/types/tuple/contextualTypeWithTuple.ts(18,1): error TS2323: Type '[{}, number]' is not assignable to type '[{ a: string; }, number]'. Types of property '0' are incompatible. Type '{}' is not assignable to type '{ a: string; }'. Property 'a' is missing in type '{}'. -tests/cases/conformance/types/tuple/contextualTypeWithTuple.ts(12,1): error TS2323: Type '[number, string]' is not assignable to type '[number, string, boolean]'. +tests/cases/conformance/types/tuple/contextualTypeWithTuple.ts(19,1): error TS2323: Type '[number, string]' is not assignable to type '[number, string, boolean]'. Property '2' is missing in type '[number, string]'. -tests/cases/conformance/types/tuple/contextualTypeWithTuple.ts(13,5): error TS2323: Type '[string, string, number]' is not assignable to type '[string, string]'. +tests/cases/conformance/types/tuple/contextualTypeWithTuple.ts(20,5): error TS2323: Type '[string, string, number]' is not assignable to type '[string, string]'. Types of property 'pop' are incompatible. Type '() => string | number' is not assignable to type '() => string'. Type 'string | number' is not assignable to type 'string'. Type 'number' is not assignable to type 'string'. +tests/cases/conformance/types/tuple/contextualTypeWithTuple.ts(24,1): error TS2323: Type '[C, string | number]' is not assignable to type '[C, string | number, D]'. + Property '2' is missing in type '[C, string | number]'. +tests/cases/conformance/types/tuple/contextualTypeWithTuple.ts(25,1): error TS2323: Type '[number, string | number]' is not assignable to type '[number, string]'. + Types of property '1' are incompatible. + Type 'string | number' is not assignable to type 'string'. + Type 'number' is not assignable to type 'string'. -==== tests/cases/conformance/types/tuple/contextualTypeWithTuple.ts (5 errors) ==== +==== tests/cases/conformance/types/tuple/contextualTypeWithTuple.ts (7 errors) ==== // no error var numStrTuple: [number, string] = [5, "hello"]; var numStrTuple2: [number, string] = [5, "foo", true]; @@ -32,6 +38,13 @@ tests/cases/conformance/types/tuple/contextualTypeWithTuple.ts(13,5): error TS23 var numStrBoolTuple: [number, string, boolean] = [5, "foo", true]; var objNumTuple: [{ a: string }, number] = [{ a: "world" }, 5]; var strTupleTuple: [string, [number, {}]] = ["bar", [5, { x: 1, y: 1 }]]; + class C { } + class D { } + var unionTuple: [C, string | number] = [new C(), "foo"]; + var unionTuple1: [C, string | number] = [new C(), "foo"]; + var unionTuple2: [C, string | number, D] = [new C(), "foo", new D()]; + var unionTuple3: [number, string| number] = [10, "foo"]; + numStrTuple = numStrTuple2; numStrTuple = numStrBoolTuple; ~~~~~~~~~~~ @@ -55,4 +68,16 @@ tests/cases/conformance/types/tuple/contextualTypeWithTuple.ts(13,5): error TS23 !!! error TS2323: Type '() => string | number' is not assignable to type '() => string'. !!! error TS2323: Type 'string | number' is not assignable to type 'string'. !!! error TS2323: Type 'number' is not assignable to type 'string'. - \ No newline at end of file + + unionTuple = unionTuple1; + unionTuple = unionTuple2; + unionTuple2 = unionTuple; + ~~~~~~~~~~~ +!!! error TS2323: Type '[C, string | number]' is not assignable to type '[C, string | number, D]'. +!!! error TS2323: Property '2' is missing in type '[C, string | number]'. + numStrTuple = unionTuple3; + ~~~~~~~~~~~ +!!! error TS2323: Type '[number, string | number]' is not assignable to type '[number, string]'. +!!! error TS2323: Types of property '1' are incompatible. +!!! error TS2323: Type 'string | number' is not assignable to type 'string'. +!!! error TS2323: Type 'number' is not assignable to type 'string'. \ No newline at end of file diff --git a/tests/baselines/reference/contextualTypeWithTuple.js b/tests/baselines/reference/contextualTypeWithTuple.js index 61a2df5d8ce..cfcdd13f7d0 100644 --- a/tests/baselines/reference/contextualTypeWithTuple.js +++ b/tests/baselines/reference/contextualTypeWithTuple.js @@ -5,6 +5,13 @@ var numStrTuple2: [number, string] = [5, "foo", true]; var numStrBoolTuple: [number, string, boolean] = [5, "foo", true]; var objNumTuple: [{ a: string }, number] = [{ a: "world" }, 5]; var strTupleTuple: [string, [number, {}]] = ["bar", [5, { x: 1, y: 1 }]]; +class C { } +class D { } +var unionTuple: [C, string | number] = [new C(), "foo"]; +var unionTuple1: [C, string | number] = [new C(), "foo"]; +var unionTuple2: [C, string | number, D] = [new C(), "foo", new D()]; +var unionTuple3: [number, string| number] = [10, "foo"]; + numStrTuple = numStrTuple2; numStrTuple = numStrBoolTuple; @@ -12,7 +19,11 @@ numStrTuple = numStrBoolTuple; objNumTuple = [ {}, 5]; numStrBoolTuple = numStrTuple; var strStrTuple: [string, string] = ["foo", "bar", 5]; - + +unionTuple = unionTuple1; +unionTuple = unionTuple2; +unionTuple2 = unionTuple; +numStrTuple = unionTuple3; //// [contextualTypeWithTuple.js] // no error @@ -21,9 +32,27 @@ var numStrTuple2 = [5, "foo", true]; var numStrBoolTuple = [5, "foo", true]; var objNumTuple = [{ a: "world" }, 5]; var strTupleTuple = ["bar", [5, { x: 1, y: 1 }]]; +var C = (function () { + function C() { + } + return C; +})(); +var D = (function () { + function D() { + } + return D; +})(); +var unionTuple = [new C(), "foo"]; +var unionTuple1 = [new C(), "foo"]; +var unionTuple2 = [new C(), "foo", new D()]; +var unionTuple3 = [10, "foo"]; numStrTuple = numStrTuple2; numStrTuple = numStrBoolTuple; // error objNumTuple = [{}, 5]; numStrBoolTuple = numStrTuple; var strStrTuple = ["foo", "bar", 5]; +unionTuple = unionTuple1; +unionTuple = unionTuple2; +unionTuple2 = unionTuple; +numStrTuple = unionTuple3; diff --git a/tests/baselines/reference/indexerWithTuple.js b/tests/baselines/reference/indexerWithTuple.js index fc82716ba05..91d90792e6d 100644 --- a/tests/baselines/reference/indexerWithTuple.js +++ b/tests/baselines/reference/indexerWithTuple.js @@ -1,32 +1,65 @@ //// [indexerWithTuple.ts] var strNumTuple: [string, number] = ["foo", 10]; var numTupleTuple: [number, [string, number]] = [10, ["bar", 20]]; +var unionTuple1: [number, string| number] = [10, "foo"]; +var unionTuple2: [boolean, string| number] = [true, "foo"]; // no error var idx0 = 0; var idx1 = 1; var ele10 = strNumTuple[0]; // string var ele11 = strNumTuple[1]; // number -var ele12 = strNumTuple[2]; // {} -var ele13 = strNumTuple[idx0]; // {} -var ele14 = strNumTuple[idx1]; // {} +var ele12 = strNumTuple[2]; // string | number +var ele13 = strNumTuple[idx0]; // string | number +var ele14 = strNumTuple[idx1]; // string | number var ele15 = strNumTuple["0"]; // string var ele16 = strNumTuple["1"]; // number var strNumTuple1 = numTupleTuple[1]; //[string, number]; -var ele17 = numTupleTuple[2]; // {} +var ele17 = numTupleTuple[2]; // number | [string, number] +var eleUnion10 = unionTuple1[0]; // number +var eleUnion11 = unionTuple1[1]; // string | number +var eleUnion12 = unionTuple1[2]; // string | number +var eleUnion13 = unionTuple1[idx0]; // string | number +var eleUnion14 = unionTuple1[idx1]; // string | number +var eleUnion15 = unionTuple1["0"]; // number +var eleUnion16 = unionTuple1["1"]; // string | number + +var eleUnion20 = unionTuple2[0]; // boolean +var eleUnion21 = unionTuple2[1]; // string | number +var eleUnion22 = unionTuple2[2]; // string | number | boolean +var eleUnion23 = unionTuple2[idx0]; // string | number | boolean +var eleUnion24 = unionTuple2[idx1]; // string | number | boolean +var eleUnion25 = unionTuple2["0"]; // boolean +var eleUnion26 = unionTuple2["1"]; // string | number //// [indexerWithTuple.js] var strNumTuple = ["foo", 10]; var numTupleTuple = [10, ["bar", 20]]; +var unionTuple1 = [10, "foo"]; +var unionTuple2 = [true, "foo"]; // no error var idx0 = 0; var idx1 = 1; var ele10 = strNumTuple[0]; // string var ele11 = strNumTuple[1]; // number -var ele12 = strNumTuple[2]; // {} -var ele13 = strNumTuple[idx0]; // {} -var ele14 = strNumTuple[idx1]; // {} +var ele12 = strNumTuple[2]; // string | number +var ele13 = strNumTuple[idx0]; // string | number +var ele14 = strNumTuple[idx1]; // string | number var ele15 = strNumTuple["0"]; // string var ele16 = strNumTuple["1"]; // number var strNumTuple1 = numTupleTuple[1]; //[string, number]; -var ele17 = numTupleTuple[2]; // {} +var ele17 = numTupleTuple[2]; // number | [string, number] +var eleUnion10 = unionTuple1[0]; // number +var eleUnion11 = unionTuple1[1]; // string | number +var eleUnion12 = unionTuple1[2]; // string | number +var eleUnion13 = unionTuple1[idx0]; // string | number +var eleUnion14 = unionTuple1[idx1]; // string | number +var eleUnion15 = unionTuple1["0"]; // number +var eleUnion16 = unionTuple1["1"]; // string | number +var eleUnion20 = unionTuple2[0]; // boolean +var eleUnion21 = unionTuple2[1]; // string | number +var eleUnion22 = unionTuple2[2]; // string | number | boolean +var eleUnion23 = unionTuple2[idx0]; // string | number | boolean +var eleUnion24 = unionTuple2[idx1]; // string | number | boolean +var eleUnion25 = unionTuple2["0"]; // boolean +var eleUnion26 = unionTuple2["1"]; // string | number diff --git a/tests/baselines/reference/indexerWithTuple.types b/tests/baselines/reference/indexerWithTuple.types index 28053a33081..75b89ca6088 100644 --- a/tests/baselines/reference/indexerWithTuple.types +++ b/tests/baselines/reference/indexerWithTuple.types @@ -8,6 +8,14 @@ var numTupleTuple: [number, [string, number]] = [10, ["bar", 20]]; >[10, ["bar", 20]] : [number, [string, number]] >["bar", 20] : [string, number] +var unionTuple1: [number, string| number] = [10, "foo"]; +>unionTuple1 : [number, string | number] +>[10, "foo"] : [number, string] + +var unionTuple2: [boolean, string| number] = [true, "foo"]; +>unionTuple2 : [boolean, string | number] +>[true, "foo"] : [boolean, string] + // no error var idx0 = 0; >idx0 : number @@ -25,18 +33,18 @@ var ele11 = strNumTuple[1]; // number >strNumTuple[1] : number >strNumTuple : [string, number] -var ele12 = strNumTuple[2]; // {} +var ele12 = strNumTuple[2]; // string | number >ele12 : string | number >strNumTuple[2] : string | number >strNumTuple : [string, number] -var ele13 = strNumTuple[idx0]; // {} +var ele13 = strNumTuple[idx0]; // string | number >ele13 : string | number >strNumTuple[idx0] : string | number >strNumTuple : [string, number] >idx0 : number -var ele14 = strNumTuple[idx1]; // {} +var ele14 = strNumTuple[idx1]; // string | number >ele14 : string | number >strNumTuple[idx1] : string | number >strNumTuple : [string, number] @@ -57,8 +65,82 @@ var strNumTuple1 = numTupleTuple[1]; //[string, number]; >numTupleTuple[1] : [string, number] >numTupleTuple : [number, [string, number]] -var ele17 = numTupleTuple[2]; // {} +var ele17 = numTupleTuple[2]; // number | [string, number] >ele17 : number | [string, number] >numTupleTuple[2] : number | [string, number] >numTupleTuple : [number, [string, number]] +var eleUnion10 = unionTuple1[0]; // number +>eleUnion10 : number +>unionTuple1[0] : number +>unionTuple1 : [number, string | number] + +var eleUnion11 = unionTuple1[1]; // string | number +>eleUnion11 : string | number +>unionTuple1[1] : string | number +>unionTuple1 : [number, string | number] + +var eleUnion12 = unionTuple1[2]; // string | number +>eleUnion12 : string | number +>unionTuple1[2] : string | number +>unionTuple1 : [number, string | number] + +var eleUnion13 = unionTuple1[idx0]; // string | number +>eleUnion13 : string | number +>unionTuple1[idx0] : string | number +>unionTuple1 : [number, string | number] +>idx0 : number + +var eleUnion14 = unionTuple1[idx1]; // string | number +>eleUnion14 : string | number +>unionTuple1[idx1] : string | number +>unionTuple1 : [number, string | number] +>idx1 : number + +var eleUnion15 = unionTuple1["0"]; // number +>eleUnion15 : number +>unionTuple1["0"] : number +>unionTuple1 : [number, string | number] + +var eleUnion16 = unionTuple1["1"]; // string | number +>eleUnion16 : string | number +>unionTuple1["1"] : string | number +>unionTuple1 : [number, string | number] + +var eleUnion20 = unionTuple2[0]; // boolean +>eleUnion20 : boolean +>unionTuple2[0] : boolean +>unionTuple2 : [boolean, string | number] + +var eleUnion21 = unionTuple2[1]; // string | number +>eleUnion21 : string | number +>unionTuple2[1] : string | number +>unionTuple2 : [boolean, string | number] + +var eleUnion22 = unionTuple2[2]; // string | number | boolean +>eleUnion22 : string | number | boolean +>unionTuple2[2] : string | number | boolean +>unionTuple2 : [boolean, string | number] + +var eleUnion23 = unionTuple2[idx0]; // string | number | boolean +>eleUnion23 : string | number | boolean +>unionTuple2[idx0] : string | number | boolean +>unionTuple2 : [boolean, string | number] +>idx0 : number + +var eleUnion24 = unionTuple2[idx1]; // string | number | boolean +>eleUnion24 : string | number | boolean +>unionTuple2[idx1] : string | number | boolean +>unionTuple2 : [boolean, string | number] +>idx1 : number + +var eleUnion25 = unionTuple2["0"]; // boolean +>eleUnion25 : boolean +>unionTuple2["0"] : boolean +>unionTuple2 : [boolean, string | number] + +var eleUnion26 = unionTuple2["1"]; // string | number +>eleUnion26 : string | number +>unionTuple2["1"] : string | number +>unionTuple2 : [boolean, string | number] + diff --git a/tests/cases/conformance/types/tuple/castingTuple.ts b/tests/cases/conformance/types/tuple/castingTuple.ts index f154e5f00c8..cf5c58af346 100644 --- a/tests/cases/conformance/types/tuple/castingTuple.ts +++ b/tests/cases/conformance/types/tuple/castingTuple.ts @@ -15,13 +15,17 @@ var classCDTuple: [C, D] = [new C(), new D()]; var interfaceIITuple = <[I, I]>classCDTuple; var classCDATuple = <[C, D, A]>classCDTuple; var eleFromCDA1 = classCDATuple[2]; // A -var eleFromCDA2 = classCDATuple[5]; // {} +var eleFromCDA2 = classCDATuple[5]; // C | D | A var t10: [E1, E2] = [E1.one, E2.one]; var t11 = <[number, number]>t10; var array1 = <{}[]>emptyObjTuple; +var unionTuple: [C, string | number] = [new C(), "foo"]; +var unionTuple2: [C, string | number, D] = [new C(), "foo", new D()]; +var unionTuple3: [number, string| number] = [10, "foo"]; +var unionTuple4 = <[number, number]>unionTuple3; // error var t3 = <[number, number]>numStrTuple; var t9 = <[A, I]>classCDTuple; var array1 = numStrTuple; -t4[2] = 10; \ No newline at end of file +t4[2] = 10; diff --git a/tests/cases/conformance/types/tuple/contextualTypeWithTuple.ts b/tests/cases/conformance/types/tuple/contextualTypeWithTuple.ts index 7e9575d7f82..9600ebcd671 100644 --- a/tests/cases/conformance/types/tuple/contextualTypeWithTuple.ts +++ b/tests/cases/conformance/types/tuple/contextualTypeWithTuple.ts @@ -4,6 +4,13 @@ var numStrTuple2: [number, string] = [5, "foo", true]; var numStrBoolTuple: [number, string, boolean] = [5, "foo", true]; var objNumTuple: [{ a: string }, number] = [{ a: "world" }, 5]; var strTupleTuple: [string, [number, {}]] = ["bar", [5, { x: 1, y: 1 }]]; +class C { } +class D { } +var unionTuple: [C, string | number] = [new C(), "foo"]; +var unionTuple1: [C, string | number] = [new C(), "foo"]; +var unionTuple2: [C, string | number, D] = [new C(), "foo", new D()]; +var unionTuple3: [number, string| number] = [10, "foo"]; + numStrTuple = numStrTuple2; numStrTuple = numStrBoolTuple; @@ -11,3 +18,8 @@ numStrTuple = numStrBoolTuple; objNumTuple = [ {}, 5]; numStrBoolTuple = numStrTuple; var strStrTuple: [string, string] = ["foo", "bar", 5]; + +unionTuple = unionTuple1; +unionTuple = unionTuple2; +unionTuple2 = unionTuple; +numStrTuple = unionTuple3; \ No newline at end of file diff --git a/tests/cases/conformance/types/tuple/indexerWithTuple.ts b/tests/cases/conformance/types/tuple/indexerWithTuple.ts index 0b51ecd32ee..930ca56402c 100644 --- a/tests/cases/conformance/types/tuple/indexerWithTuple.ts +++ b/tests/cases/conformance/types/tuple/indexerWithTuple.ts @@ -1,15 +1,32 @@ var strNumTuple: [string, number] = ["foo", 10]; var numTupleTuple: [number, [string, number]] = [10, ["bar", 20]]; +var unionTuple1: [number, string| number] = [10, "foo"]; +var unionTuple2: [boolean, string| number] = [true, "foo"]; // no error var idx0 = 0; var idx1 = 1; var ele10 = strNumTuple[0]; // string var ele11 = strNumTuple[1]; // number -var ele12 = strNumTuple[2]; // {} -var ele13 = strNumTuple[idx0]; // {} -var ele14 = strNumTuple[idx1]; // {} +var ele12 = strNumTuple[2]; // string | number +var ele13 = strNumTuple[idx0]; // string | number +var ele14 = strNumTuple[idx1]; // string | number var ele15 = strNumTuple["0"]; // string var ele16 = strNumTuple["1"]; // number var strNumTuple1 = numTupleTuple[1]; //[string, number]; -var ele17 = numTupleTuple[2]; // {} \ No newline at end of file +var ele17 = numTupleTuple[2]; // number | [string, number] +var eleUnion10 = unionTuple1[0]; // number +var eleUnion11 = unionTuple1[1]; // string | number +var eleUnion12 = unionTuple1[2]; // string | number +var eleUnion13 = unionTuple1[idx0]; // string | number +var eleUnion14 = unionTuple1[idx1]; // string | number +var eleUnion15 = unionTuple1["0"]; // number +var eleUnion16 = unionTuple1["1"]; // string | number + +var eleUnion20 = unionTuple2[0]; // boolean +var eleUnion21 = unionTuple2[1]; // string | number +var eleUnion22 = unionTuple2[2]; // string | number | boolean +var eleUnion23 = unionTuple2[idx0]; // string | number | boolean +var eleUnion24 = unionTuple2[idx1]; // string | number | boolean +var eleUnion25 = unionTuple2["0"]; // boolean +var eleUnion26 = unionTuple2["1"]; // string | number \ No newline at end of file From 568049474e3980751376f8b620dfef711ed65c1f Mon Sep 17 00:00:00 2001 From: Sheetal Nandi Date: Mon, 3 Nov 2014 09:20:20 -0800 Subject: [PATCH 007/195] =?UTF-8?q?Tests=20to=20check=20equivalency=20of?= =?UTF-8?q?=20union=20types=20A=20union=20type=20encompasses=20an=20unorde?= =?UTF-8?q?red=20set=20of=20unrelated=20types=20(that=20is,=20types=20that?= =?UTF-8?q?=20aren=E2=80=99t=20subtypes=20of=20each=20other).=20The=20foll?= =?UTF-8?q?owing=20rules=20govern=20union=20types:=20=E2=80=A2=09A=20|=20B?= =?UTF-8?q?=20is=20equivalent=20to=20A=20if=20B=20is=20a=20subtype=20of=20?= =?UTF-8?q?A.=20=E2=80=A2=09A=20|=20B=20is=20equivalent=20to=20B=20|=20A.?= =?UTF-8?q?=20=E2=80=A2=09AB=20|=20C=20is=20equivalent=20to=20A=20|=20BC,?= =?UTF-8?q?=20where=20AB=20is=20A=20|=20B=20and=20BC=20is=20B=20|=20C.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../reference/unionTypeEquivalence.js | 54 +++++++++++++++++++ .../reference/unionTypeEquivalence.types | 49 +++++++++++++++++ .../types/union/unionTypeEquivalence.ts | 18 +++++++ 3 files changed, 121 insertions(+) create mode 100644 tests/baselines/reference/unionTypeEquivalence.js create mode 100644 tests/baselines/reference/unionTypeEquivalence.types create mode 100644 tests/cases/conformance/types/union/unionTypeEquivalence.ts diff --git a/tests/baselines/reference/unionTypeEquivalence.js b/tests/baselines/reference/unionTypeEquivalence.js new file mode 100644 index 00000000000..3698ecd2f92 --- /dev/null +++ b/tests/baselines/reference/unionTypeEquivalence.js @@ -0,0 +1,54 @@ +//// [unionTypeEquivalence.ts] +// A | B is equivalent to A if B is a subtype of A +class C { } +class D extends C { } +var x: C; +var x : C | D; + +// A | B is equivalent to B | A. +var y: string | number; +var y : number | string; + +// AB | C is equivalent to A | BC, where AB is A | B and BC is B | C. +var z : string | number | boolean; +var z : (string | number) | boolean; +var z : string | (number | boolean); +var AB : string | number; +var BC : number | boolean; +var z1: typeof AB | boolean; +var z1: string | typeof BC; + + +//// [unionTypeEquivalence.js] +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 __(); +}; +// A | B is equivalent to A if B is a subtype of A +var C = (function () { + function C() { + } + return C; +})(); +var D = (function (_super) { + __extends(D, _super); + function D() { + _super.apply(this, arguments); + } + return D; +})(C); +var x; +var x; +// A | B is equivalent to B | A. +var y; +var y; +// AB | C is equivalent to A | BC, where AB is A | B and BC is B | C. +var z; +var z; +var z; +var AB; +var BC; +var z1; +var z1; diff --git a/tests/baselines/reference/unionTypeEquivalence.types b/tests/baselines/reference/unionTypeEquivalence.types new file mode 100644 index 00000000000..53e95659120 --- /dev/null +++ b/tests/baselines/reference/unionTypeEquivalence.types @@ -0,0 +1,49 @@ +=== tests/cases/conformance/types/union/unionTypeEquivalence.ts === +// A | B is equivalent to A if B is a subtype of A +class C { } +>C : C + +class D extends C { } +>D : D +>C : C + +var x: C; +>x : C +>C : C + +var x : C | D; +>x : C +>C : C +>D : D + +// A | B is equivalent to B | A. +var y: string | number; +>y : string | number + +var y : number | string; +>y : string | number + +// AB | C is equivalent to A | BC, where AB is A | B and BC is B | C. +var z : string | number | boolean; +>z : string | number | boolean + +var z : (string | number) | boolean; +>z : string | number | boolean + +var z : string | (number | boolean); +>z : string | number | boolean + +var AB : string | number; +>AB : string | number + +var BC : number | boolean; +>BC : number | boolean + +var z1: typeof AB | boolean; +>z1 : string | number | boolean +>AB : string | number + +var z1: string | typeof BC; +>z1 : string | number | boolean +>BC : number | boolean + diff --git a/tests/cases/conformance/types/union/unionTypeEquivalence.ts b/tests/cases/conformance/types/union/unionTypeEquivalence.ts new file mode 100644 index 00000000000..0905fde17f8 --- /dev/null +++ b/tests/cases/conformance/types/union/unionTypeEquivalence.ts @@ -0,0 +1,18 @@ +// A | B is equivalent to A if B is a subtype of A +class C { } +class D extends C { } +var x: C; +var x : C | D; + +// A | B is equivalent to B | A. +var y: string | number; +var y : number | string; + +// AB | C is equivalent to A | BC, where AB is A | B and BC is B | C. +var z : string | number | boolean; +var z : (string | number) | boolean; +var z : string | (number | boolean); +var AB : string | number; +var BC : number | boolean; +var z1: typeof AB | boolean; +var z1: string | typeof BC; From a1535533e7da2e8688c5f3f4b6cbc979633e5ecf Mon Sep 17 00:00:00 2001 From: Sheetal Nandi Date: Mon, 3 Nov 2014 09:30:49 -0800 Subject: [PATCH 008/195] Tests for source (S) of subtype is union type (U) A union type U is a subtype of a type T if each type in U is a subtype of T --- ...IfEveryConstituentTypeIsSubtype.errors.txt | 239 ++++++++++++++++++ ...nSubtypeIfEveryConstituentTypeIsSubtype.js | 180 +++++++++++++ ...nSubtypeIfEveryConstituentTypeIsSubtype.ts | 143 +++++++++++ 3 files changed, 562 insertions(+) create mode 100644 tests/baselines/reference/unionSubtypeIfEveryConstituentTypeIsSubtype.errors.txt create mode 100644 tests/baselines/reference/unionSubtypeIfEveryConstituentTypeIsSubtype.js create mode 100644 tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/unionSubtypeIfEveryConstituentTypeIsSubtype.ts diff --git a/tests/baselines/reference/unionSubtypeIfEveryConstituentTypeIsSubtype.errors.txt b/tests/baselines/reference/unionSubtypeIfEveryConstituentTypeIsSubtype.errors.txt new file mode 100644 index 00000000000..013b5d9a990 --- /dev/null +++ b/tests/baselines/reference/unionSubtypeIfEveryConstituentTypeIsSubtype.errors.txt @@ -0,0 +1,239 @@ +tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/unionSubtypeIfEveryConstituentTypeIsSubtype.ts(15,5): error TS2411: Property 'foo' of type 'string | number' is not assignable to string index type 'number'. +tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/unionSubtypeIfEveryConstituentTypeIsSubtype.ts(21,5): error TS2411: Property 'foo' of type 'string | number' is not assignable to string index type 'string'. +tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/unionSubtypeIfEveryConstituentTypeIsSubtype.ts(22,5): error TS2411: Property 'foo2' of type 'number | e' is not assignable to string index type 'string'. +tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/unionSubtypeIfEveryConstituentTypeIsSubtype.ts(28,5): error TS2411: Property 'foo' of type 'string | number' is not assignable to string index type 'boolean'. +tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/unionSubtypeIfEveryConstituentTypeIsSubtype.ts(29,5): error TS2411: Property 'foo2' of type 'number | e' is not assignable to string index type 'boolean'. +tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/unionSubtypeIfEveryConstituentTypeIsSubtype.ts(35,5): error TS2411: Property 'foo' of type 'string | number' is not assignable to string index type 'Date'. +tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/unionSubtypeIfEveryConstituentTypeIsSubtype.ts(36,5): error TS2411: Property 'foo2' of type 'number | e' is not assignable to string index type 'Date'. +tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/unionSubtypeIfEveryConstituentTypeIsSubtype.ts(42,5): error TS2411: Property 'foo' of type 'string | number' is not assignable to string index type 'RegExp'. +tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/unionSubtypeIfEveryConstituentTypeIsSubtype.ts(43,5): error TS2411: Property 'foo2' of type 'number | e' is not assignable to string index type 'RegExp'. +tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/unionSubtypeIfEveryConstituentTypeIsSubtype.ts(49,5): error TS2411: Property 'foo' of type 'string | number' is not assignable to string index type '{ bar: number; }'. +tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/unionSubtypeIfEveryConstituentTypeIsSubtype.ts(50,5): error TS2411: Property 'foo2' of type 'number | e' is not assignable to string index type '{ bar: number; }'. +tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/unionSubtypeIfEveryConstituentTypeIsSubtype.ts(56,5): error TS2411: Property 'foo' of type 'string | number' is not assignable to string index type 'number[]'. +tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/unionSubtypeIfEveryConstituentTypeIsSubtype.ts(57,5): error TS2411: Property 'foo2' of type 'number | e' is not assignable to string index type 'number[]'. +tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/unionSubtypeIfEveryConstituentTypeIsSubtype.ts(63,5): error TS2411: Property 'foo' of type 'string | number' is not assignable to string index type 'I8'. +tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/unionSubtypeIfEveryConstituentTypeIsSubtype.ts(64,5): error TS2411: Property 'foo2' of type 'number | e' is not assignable to string index type 'I8'. +tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/unionSubtypeIfEveryConstituentTypeIsSubtype.ts(70,5): error TS2411: Property 'foo' of type 'string | number' is not assignable to string index type 'A'. +tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/unionSubtypeIfEveryConstituentTypeIsSubtype.ts(71,5): error TS2411: Property 'foo2' of type 'number | e' is not assignable to string index type 'A'. +tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/unionSubtypeIfEveryConstituentTypeIsSubtype.ts(77,5): error TS2411: Property 'foo' of type 'string | number' is not assignable to string index type 'A2'. +tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/unionSubtypeIfEveryConstituentTypeIsSubtype.ts(78,5): error TS2411: Property 'foo2' of type 'number | e' is not assignable to string index type 'A2'. +tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/unionSubtypeIfEveryConstituentTypeIsSubtype.ts(84,5): error TS2411: Property 'foo' of type 'string | number' is not assignable to string index type '(x: any) => number'. +tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/unionSubtypeIfEveryConstituentTypeIsSubtype.ts(85,5): error TS2411: Property 'foo2' of type 'number | e' is not assignable to string index type '(x: any) => number'. +tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/unionSubtypeIfEveryConstituentTypeIsSubtype.ts(91,5): error TS2411: Property 'foo' of type 'string | number' is not assignable to string index type '(x: T) => T'. +tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/unionSubtypeIfEveryConstituentTypeIsSubtype.ts(92,5): error TS2411: Property 'foo2' of type 'number | e' is not assignable to string index type '(x: T) => T'. +tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/unionSubtypeIfEveryConstituentTypeIsSubtype.ts(99,5): error TS2411: Property 'foo' of type 'string | number' is not assignable to string index type 'E2'. +tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/unionSubtypeIfEveryConstituentTypeIsSubtype.ts(100,5): error TS2411: Property 'foo2' of type 'number | e' is not assignable to string index type 'E2'. +tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/unionSubtypeIfEveryConstituentTypeIsSubtype.ts(110,5): error TS2411: Property 'foo' of type 'string | number' is not assignable to string index type 'typeof f'. +tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/unionSubtypeIfEveryConstituentTypeIsSubtype.ts(111,5): error TS2411: Property 'foo2' of type 'number | e' is not assignable to string index type 'typeof f'. +tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/unionSubtypeIfEveryConstituentTypeIsSubtype.ts(121,5): error TS2411: Property 'foo' of type 'string | number' is not assignable to string index type 'typeof c'. +tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/unionSubtypeIfEveryConstituentTypeIsSubtype.ts(122,5): error TS2411: Property 'foo2' of type 'number | e' is not assignable to string index type 'typeof c'. +tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/unionSubtypeIfEveryConstituentTypeIsSubtype.ts(128,5): error TS2411: Property 'foo' of type 'string | number' is not assignable to string index type 'T'. +tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/unionSubtypeIfEveryConstituentTypeIsSubtype.ts(129,5): error TS2411: Property 'foo2' of type 'number | e' is not assignable to string index type 'T'. + + +==== tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/unionSubtypeIfEveryConstituentTypeIsSubtype.ts (31 errors) ==== + enum e { + e1, + e2 + } + + // A union type U is a subtype of a type T if each type in U is a subtype of T + interface I { + [x: string]: any; + foo: string | number; // ok + foo2: e | number; // ok + } + interface I2 { + [x: string]: number; + // S is union type and each constituent type of S is a subtype of T + foo: string | number; // error string is not subtype of number + ~~~~~~~~~~~~~~~~~~~~~ +!!! error TS2411: Property 'foo' of type 'string | number' is not assignable to string index type 'number'. + foo2: e | number; // ok e and number both subtype of number + } + + interface I3 { + [x: string]: string; + foo: string | number; // error numer is not subtype of string + ~~~~~~~~~~~~~~~~~~~~~ +!!! error TS2411: Property 'foo' of type 'string | number' is not assignable to string index type 'string'. + foo2: e | number; // error e and number both not subtype of string + ~~~~~~~~~~~~~~~~~ +!!! error TS2411: Property 'foo2' of type 'number | e' is not assignable to string index type 'string'. + } + + // error cases + interface I4 { + [x: string]: boolean; + foo: string | number; + ~~~~~~~~~~~~~~~~~~~~~ +!!! error TS2411: Property 'foo' of type 'string | number' is not assignable to string index type 'boolean'. + foo2: e | number; + ~~~~~~~~~~~~~~~~~ +!!! error TS2411: Property 'foo2' of type 'number | e' is not assignable to string index type 'boolean'. + } + + + interface I5 { + [x: string]: Date; + foo: string | number; + ~~~~~~~~~~~~~~~~~~~~~ +!!! error TS2411: Property 'foo' of type 'string | number' is not assignable to string index type 'Date'. + foo2: e | number; + ~~~~~~~~~~~~~~~~~ +!!! error TS2411: Property 'foo2' of type 'number | e' is not assignable to string index type 'Date'. + } + + + interface I6 { + [x: string]: RegExp; + foo: string | number; + ~~~~~~~~~~~~~~~~~~~~~ +!!! error TS2411: Property 'foo' of type 'string | number' is not assignable to string index type 'RegExp'. + foo2: e | number; + ~~~~~~~~~~~~~~~~~ +!!! error TS2411: Property 'foo2' of type 'number | e' is not assignable to string index type 'RegExp'. + } + + + interface I7 { + [x: string]: { bar: number }; + foo: string | number; + ~~~~~~~~~~~~~~~~~~~~~ +!!! error TS2411: Property 'foo' of type 'string | number' is not assignable to string index type '{ bar: number; }'. + foo2: e | number; + ~~~~~~~~~~~~~~~~~ +!!! error TS2411: Property 'foo2' of type 'number | e' is not assignable to string index type '{ bar: number; }'. + } + + + interface I8 { + [x: string]: number[]; + foo: string | number; + ~~~~~~~~~~~~~~~~~~~~~ +!!! error TS2411: Property 'foo' of type 'string | number' is not assignable to string index type 'number[]'. + foo2: e | number; + ~~~~~~~~~~~~~~~~~ +!!! error TS2411: Property 'foo2' of type 'number | e' is not assignable to string index type 'number[]'. + } + + + interface I9 { + [x: string]: I8; + foo: string | number; + ~~~~~~~~~~~~~~~~~~~~~ +!!! error TS2411: Property 'foo' of type 'string | number' is not assignable to string index type 'I8'. + foo2: e | number; + ~~~~~~~~~~~~~~~~~ +!!! error TS2411: Property 'foo2' of type 'number | e' is not assignable to string index type 'I8'. + } + + class A { foo: number; } + interface I10 { + [x: string]: A; + foo: string | number; + ~~~~~~~~~~~~~~~~~~~~~ +!!! error TS2411: Property 'foo' of type 'string | number' is not assignable to string index type 'A'. + foo2: e | number; + ~~~~~~~~~~~~~~~~~ +!!! error TS2411: Property 'foo2' of type 'number | e' is not assignable to string index type 'A'. + } + + class A2 { foo: T; } + interface I11 { + [x: string]: A2; + foo: string | number; + ~~~~~~~~~~~~~~~~~~~~~ +!!! error TS2411: Property 'foo' of type 'string | number' is not assignable to string index type 'A2'. + foo2: e | number; + ~~~~~~~~~~~~~~~~~ +!!! error TS2411: Property 'foo2' of type 'number | e' is not assignable to string index type 'A2'. + } + + + interface I12 { + [x: string]: (x) => number; + foo: string | number; + ~~~~~~~~~~~~~~~~~~~~~ +!!! error TS2411: Property 'foo' of type 'string | number' is not assignable to string index type '(x: any) => number'. + foo2: e | number; + ~~~~~~~~~~~~~~~~~ +!!! error TS2411: Property 'foo2' of type 'number | e' is not assignable to string index type '(x: any) => number'. + } + + + interface I13 { + [x: string]: (x: T) => T; + foo: string | number; + ~~~~~~~~~~~~~~~~~~~~~ +!!! error TS2411: Property 'foo' of type 'string | number' is not assignable to string index type '(x: T) => T'. + foo2: e | number; + ~~~~~~~~~~~~~~~~~ +!!! error TS2411: Property 'foo2' of type 'number | e' is not assignable to string index type '(x: T) => T'. + } + + + enum E2 { A } + interface I14 { + [x: string]: E2; + foo: string | number; + ~~~~~~~~~~~~~~~~~~~~~ +!!! error TS2411: Property 'foo' of type 'string | number' is not assignable to string index type 'E2'. + foo2: e | number; + ~~~~~~~~~~~~~~~~~ +!!! error TS2411: Property 'foo2' of type 'number | e' is not assignable to string index type 'E2'. + } + + + function f() { } + module f { + export var bar = 1; + } + interface I15 { + [x: string]: typeof f; + foo: string | number; + ~~~~~~~~~~~~~~~~~~~~~ +!!! error TS2411: Property 'foo' of type 'string | number' is not assignable to string index type 'typeof f'. + foo2: e | number; + ~~~~~~~~~~~~~~~~~ +!!! error TS2411: Property 'foo2' of type 'number | e' is not assignable to string index type 'typeof f'. + } + + + class c { baz: string } + module c { + export var bar = 1; + } + interface I16 { + [x: string]: typeof c; + foo: string | number; + ~~~~~~~~~~~~~~~~~~~~~ +!!! error TS2411: Property 'foo' of type 'string | number' is not assignable to string index type 'typeof c'. + foo2: e | number; + ~~~~~~~~~~~~~~~~~ +!!! error TS2411: Property 'foo2' of type 'number | e' is not assignable to string index type 'typeof c'. + } + + + interface I17 { + [x: string]: T; + foo: string | number; + ~~~~~~~~~~~~~~~~~~~~~ +!!! error TS2411: Property 'foo' of type 'string | number' is not assignable to string index type 'T'. + foo2: e | number; + ~~~~~~~~~~~~~~~~~ +!!! error TS2411: Property 'foo2' of type 'number | e' is not assignable to string index type 'T'. + } + + interface I19 { + [x: string]: Object; + foo: string | number; + foo2: e | number; + } + + + interface I20 { + [x: string]: {}; + foo: string | number; + foo2: e | number; + } \ No newline at end of file diff --git a/tests/baselines/reference/unionSubtypeIfEveryConstituentTypeIsSubtype.js b/tests/baselines/reference/unionSubtypeIfEveryConstituentTypeIsSubtype.js new file mode 100644 index 00000000000..0c9ffeb5653 --- /dev/null +++ b/tests/baselines/reference/unionSubtypeIfEveryConstituentTypeIsSubtype.js @@ -0,0 +1,180 @@ +//// [unionSubtypeIfEveryConstituentTypeIsSubtype.ts] +enum e { + e1, + e2 +} + +// A union type U is a subtype of a type T if each type in U is a subtype of T +interface I { + [x: string]: any; + foo: string | number; // ok + foo2: e | number; // ok +} +interface I2 { + [x: string]: number; + // S is union type and each constituent type of S is a subtype of T + foo: string | number; // error string is not subtype of number + foo2: e | number; // ok e and number both subtype of number +} + +interface I3 { + [x: string]: string; + foo: string | number; // error numer is not subtype of string + foo2: e | number; // error e and number both not subtype of string +} + +// error cases +interface I4 { + [x: string]: boolean; + foo: string | number; + foo2: e | number; +} + + +interface I5 { + [x: string]: Date; + foo: string | number; + foo2: e | number; +} + + +interface I6 { + [x: string]: RegExp; + foo: string | number; + foo2: e | number; +} + + +interface I7 { + [x: string]: { bar: number }; + foo: string | number; + foo2: e | number; +} + + +interface I8 { + [x: string]: number[]; + foo: string | number; + foo2: e | number; +} + + +interface I9 { + [x: string]: I8; + foo: string | number; + foo2: e | number; +} + +class A { foo: number; } +interface I10 { + [x: string]: A; + foo: string | number; + foo2: e | number; +} + +class A2 { foo: T; } +interface I11 { + [x: string]: A2; + foo: string | number; + foo2: e | number; +} + + +interface I12 { + [x: string]: (x) => number; + foo: string | number; + foo2: e | number; +} + + +interface I13 { + [x: string]: (x: T) => T; + foo: string | number; + foo2: e | number; +} + + +enum E2 { A } +interface I14 { + [x: string]: E2; + foo: string | number; + foo2: e | number; +} + + +function f() { } +module f { + export var bar = 1; +} +interface I15 { + [x: string]: typeof f; + foo: string | number; + foo2: e | number; +} + + +class c { baz: string } +module c { + export var bar = 1; +} +interface I16 { + [x: string]: typeof c; + foo: string | number; + foo2: e | number; +} + + +interface I17 { + [x: string]: T; + foo: string | number; + foo2: e | number; +} + +interface I19 { + [x: string]: Object; + foo: string | number; + foo2: e | number; +} + + +interface I20 { + [x: string]: {}; + foo: string | number; + foo2: e | number; +} + +//// [unionSubtypeIfEveryConstituentTypeIsSubtype.js] +var e; +(function (e) { + e[e["e1"] = 0] = "e1"; + e[e["e2"] = 1] = "e2"; +})(e || (e = {})); +var A = (function () { + function A() { + } + return A; +})(); +var A2 = (function () { + function A2() { + } + return A2; +})(); +var E2; +(function (E2) { + E2[E2["A"] = 0] = "A"; +})(E2 || (E2 = {})); +function f() { +} +var f; +(function (f) { + f.bar = 1; +})(f || (f = {})); +var c = (function () { + function c() { + } + return c; +})(); +var c; +(function (c) { + c.bar = 1; +})(c || (c = {})); diff --git a/tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/unionSubtypeIfEveryConstituentTypeIsSubtype.ts b/tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/unionSubtypeIfEveryConstituentTypeIsSubtype.ts new file mode 100644 index 00000000000..7caa26a2959 --- /dev/null +++ b/tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/unionSubtypeIfEveryConstituentTypeIsSubtype.ts @@ -0,0 +1,143 @@ +enum e { + e1, + e2 +} + +// A union type U is a subtype of a type T if each type in U is a subtype of T +interface I { + [x: string]: any; + foo: string | number; // ok + foo2: e | number; // ok +} +interface I2 { + [x: string]: number; + // S is union type and each constituent type of S is a subtype of T + foo: string | number; // error string is not subtype of number + foo2: e | number; // ok e and number both subtype of number +} + +interface I3 { + [x: string]: string; + foo: string | number; // error numer is not subtype of string + foo2: e | number; // error e and number both not subtype of string +} + +// error cases +interface I4 { + [x: string]: boolean; + foo: string | number; + foo2: e | number; +} + + +interface I5 { + [x: string]: Date; + foo: string | number; + foo2: e | number; +} + + +interface I6 { + [x: string]: RegExp; + foo: string | number; + foo2: e | number; +} + + +interface I7 { + [x: string]: { bar: number }; + foo: string | number; + foo2: e | number; +} + + +interface I8 { + [x: string]: number[]; + foo: string | number; + foo2: e | number; +} + + +interface I9 { + [x: string]: I8; + foo: string | number; + foo2: e | number; +} + +class A { foo: number; } +interface I10 { + [x: string]: A; + foo: string | number; + foo2: e | number; +} + +class A2 { foo: T; } +interface I11 { + [x: string]: A2; + foo: string | number; + foo2: e | number; +} + + +interface I12 { + [x: string]: (x) => number; + foo: string | number; + foo2: e | number; +} + + +interface I13 { + [x: string]: (x: T) => T; + foo: string | number; + foo2: e | number; +} + + +enum E2 { A } +interface I14 { + [x: string]: E2; + foo: string | number; + foo2: e | number; +} + + +function f() { } +module f { + export var bar = 1; +} +interface I15 { + [x: string]: typeof f; + foo: string | number; + foo2: e | number; +} + + +class c { baz: string } +module c { + export var bar = 1; +} +interface I16 { + [x: string]: typeof c; + foo: string | number; + foo2: e | number; +} + + +interface I17 { + [x: string]: T; + foo: string | number; + foo2: e | number; +} + +interface I19 { + [x: string]: Object; + foo: string | number; + foo2: e | number; +} + + +interface I20 { + [x: string]: {}; + foo: string | number; + foo2: e | number; +} \ No newline at end of file From 703cd5d4cfed329688984c1d26ae6fc844b6cdd3 Mon Sep 17 00:00:00 2001 From: Sheetal Nandi Date: Mon, 3 Nov 2014 09:46:32 -0800 Subject: [PATCH 009/195] Tests for checking if type S is subtype of union type T is a union type and S is a subtype of at least one constituent type of T --- .../reference/subtypesOfUnion.errors.txt | 142 ++++++++++++++++++ tests/baselines/reference/subtypesOfUnion.js | 85 +++++++++++ .../subtypesAndSuperTypes/subtypesOfUnion.ts | 52 +++++++ 3 files changed, 279 insertions(+) create mode 100644 tests/baselines/reference/subtypesOfUnion.errors.txt create mode 100644 tests/baselines/reference/subtypesOfUnion.js create mode 100644 tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypesOfUnion.ts diff --git a/tests/baselines/reference/subtypesOfUnion.errors.txt b/tests/baselines/reference/subtypesOfUnion.errors.txt new file mode 100644 index 00000000000..fade5377814 --- /dev/null +++ b/tests/baselines/reference/subtypesOfUnion.errors.txt @@ -0,0 +1,142 @@ +tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypesOfUnion.ts(16,5): error TS2411: Property 'foo4' of type 'boolean' is not assignable to string index type 'string | number'. +tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypesOfUnion.ts(18,5): error TS2411: Property 'foo6' of type 'Date' is not assignable to string index type 'string | number'. +tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypesOfUnion.ts(19,5): error TS2411: Property 'foo7' of type 'RegExp' is not assignable to string index type 'string | number'. +tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypesOfUnion.ts(20,5): error TS2411: Property 'foo8' of type '{ bar: number; }' is not assignable to string index type 'string | number'. +tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypesOfUnion.ts(21,5): error TS2411: Property 'foo9' of type 'I8' is not assignable to string index type 'string | number'. +tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypesOfUnion.ts(22,5): error TS2411: Property 'foo10' of type 'A' is not assignable to string index type 'string | number'. +tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypesOfUnion.ts(23,5): error TS2411: Property 'foo11' of type 'A2' is not assignable to string index type 'string | number'. +tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypesOfUnion.ts(24,5): error TS2411: Property 'foo12' of type '(x: any) => number' is not assignable to string index type 'string | number'. +tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypesOfUnion.ts(25,5): error TS2411: Property 'foo13' of type '(x: T) => T' is not assignable to string index type 'string | number'. +tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypesOfUnion.ts(26,5): error TS2411: Property 'foo14' of type 'typeof f' is not assignable to string index type 'string | number'. +tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypesOfUnion.ts(27,5): error TS2411: Property 'foo15' of type 'typeof c' is not assignable to string index type 'string | number'. +tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypesOfUnion.ts(28,5): error TS2411: Property 'foo16' of type 'T' is not assignable to string index type 'string | number'. +tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypesOfUnion.ts(29,5): error TS2411: Property 'foo17' of type 'Object' is not assignable to string index type 'string | number'. +tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypesOfUnion.ts(30,5): error TS2411: Property 'foo18' of type '{}' is not assignable to string index type 'string | number'. +tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypesOfUnion.ts(35,5): error TS2411: Property 'foo2' of type 'string' is not assignable to string index type 'number | E'. +tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypesOfUnion.ts(37,5): error TS2411: Property 'foo4' of type 'boolean' is not assignable to string index type 'number | E'. +tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypesOfUnion.ts(39,5): error TS2411: Property 'foo6' of type 'Date' is not assignable to string index type 'number | E'. +tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypesOfUnion.ts(40,5): error TS2411: Property 'foo7' of type 'RegExp' is not assignable to string index type 'number | E'. +tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypesOfUnion.ts(41,5): error TS2411: Property 'foo8' of type '{ bar: number; }' is not assignable to string index type 'number | E'. +tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypesOfUnion.ts(42,5): error TS2411: Property 'foo9' of type 'I8' is not assignable to string index type 'number | E'. +tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypesOfUnion.ts(43,5): error TS2411: Property 'foo10' of type 'A' is not assignable to string index type 'number | E'. +tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypesOfUnion.ts(44,5): error TS2411: Property 'foo11' of type 'A2' is not assignable to string index type 'number | E'. +tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypesOfUnion.ts(45,5): error TS2411: Property 'foo12' of type '(x: any) => number' is not assignable to string index type 'number | E'. +tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypesOfUnion.ts(46,5): error TS2411: Property 'foo13' of type '(x: T) => T' is not assignable to string index type 'number | E'. +tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypesOfUnion.ts(47,5): error TS2411: Property 'foo14' of type 'typeof f' is not assignable to string index type 'number | E'. +tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypesOfUnion.ts(48,5): error TS2411: Property 'foo15' of type 'typeof c' is not assignable to string index type 'number | E'. +tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypesOfUnion.ts(49,5): error TS2411: Property 'foo16' of type 'T' is not assignable to string index type 'number | E'. +tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypesOfUnion.ts(50,5): error TS2411: Property 'foo17' of type 'Object' is not assignable to string index type 'number | E'. +tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypesOfUnion.ts(51,5): error TS2411: Property 'foo18' of type '{}' is not assignable to string index type 'number | E'. + + +==== tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypesOfUnion.ts (29 errors) ==== + enum E { e1, e2 } + interface I8 { [x: string]: number[]; } + class A { foo: number; } + class A2 { foo: T; } + function f() { } + module f { export var bar = 1; } + class c { baz: string } + module c { export var bar = 1; } + + // A type T is a subtype of a union type U if T is a subtype of any type in U. + interface I1 { + [x: string]: string | number; + foo: any; // ok + foo2: string; // ok + foo3: number; // ok + foo4: boolean; // error + ~~~~~~~~~~~~~~ +!!! error TS2411: Property 'foo4' of type 'boolean' is not assignable to string index type 'string | number'. + foo5: E; // ok - subtype of number + foo6: Date; // error + ~~~~~~~~~~~ +!!! error TS2411: Property 'foo6' of type 'Date' is not assignable to string index type 'string | number'. + foo7: RegExp; // error + ~~~~~~~~~~~~~ +!!! error TS2411: Property 'foo7' of type 'RegExp' is not assignable to string index type 'string | number'. + foo8: { bar: number }; // error + ~~~~~~~~~~~~~~~~~~~~~~ +!!! error TS2411: Property 'foo8' of type '{ bar: number; }' is not assignable to string index type 'string | number'. + foo9: I8; // error + ~~~~~~~~~ +!!! error TS2411: Property 'foo9' of type 'I8' is not assignable to string index type 'string | number'. + foo10: A; // error + ~~~~~~~~~ +!!! error TS2411: Property 'foo10' of type 'A' is not assignable to string index type 'string | number'. + foo11: A2; // error + ~~~~~~~~~~~~~~~~~~ +!!! error TS2411: Property 'foo11' of type 'A2' is not assignable to string index type 'string | number'. + foo12: (x) => number; //error + ~~~~~~~~~~~~~~~~~~~~~ +!!! error TS2411: Property 'foo12' of type '(x: any) => number' is not assignable to string index type 'string | number'. + foo13: (x: T) => T; // error + ~~~~~~~~~~~~~~~~~~~~~~ +!!! error TS2411: Property 'foo13' of type '(x: T) => T' is not assignable to string index type 'string | number'. + foo14: typeof f; // error + ~~~~~~~~~~~~~~~~ +!!! error TS2411: Property 'foo14' of type 'typeof f' is not assignable to string index type 'string | number'. + foo15: typeof c; // error + ~~~~~~~~~~~~~~~~ +!!! error TS2411: Property 'foo15' of type 'typeof c' is not assignable to string index type 'string | number'. + foo16: T; // error + ~~~~~~~~~ +!!! error TS2411: Property 'foo16' of type 'T' is not assignable to string index type 'string | number'. + foo17: Object; // error + ~~~~~~~~~~~~~~ +!!! error TS2411: Property 'foo17' of type 'Object' is not assignable to string index type 'string | number'. + foo18: {}; // error + ~~~~~~~~~~ +!!! error TS2411: Property 'foo18' of type '{}' is not assignable to string index type 'string | number'. + } + interface I2 { + [x: string]: E | number; + foo: any; // ok + foo2: string; // error + ~~~~~~~~~~~~~ +!!! error TS2411: Property 'foo2' of type 'string' is not assignable to string index type 'number | E'. + foo3: number; // ok + foo4: boolean; // error + ~~~~~~~~~~~~~~ +!!! error TS2411: Property 'foo4' of type 'boolean' is not assignable to string index type 'number | E'. + foo5: E; // ok + foo6: Date; // error + ~~~~~~~~~~~ +!!! error TS2411: Property 'foo6' of type 'Date' is not assignable to string index type 'number | E'. + foo7: RegExp; // error + ~~~~~~~~~~~~~ +!!! error TS2411: Property 'foo7' of type 'RegExp' is not assignable to string index type 'number | E'. + foo8: { bar: number }; // error + ~~~~~~~~~~~~~~~~~~~~~~ +!!! error TS2411: Property 'foo8' of type '{ bar: number; }' is not assignable to string index type 'number | E'. + foo9: I8; // error + ~~~~~~~~~ +!!! error TS2411: Property 'foo9' of type 'I8' is not assignable to string index type 'number | E'. + foo10: A; // error + ~~~~~~~~~ +!!! error TS2411: Property 'foo10' of type 'A' is not assignable to string index type 'number | E'. + foo11: A2; // error + ~~~~~~~~~~~~~~~~~~ +!!! error TS2411: Property 'foo11' of type 'A2' is not assignable to string index type 'number | E'. + foo12: (x) => number; //error + ~~~~~~~~~~~~~~~~~~~~~ +!!! error TS2411: Property 'foo12' of type '(x: any) => number' is not assignable to string index type 'number | E'. + foo13: (x: T) => T; // error + ~~~~~~~~~~~~~~~~~~~~~~ +!!! error TS2411: Property 'foo13' of type '(x: T) => T' is not assignable to string index type 'number | E'. + foo14: typeof f; // error + ~~~~~~~~~~~~~~~~ +!!! error TS2411: Property 'foo14' of type 'typeof f' is not assignable to string index type 'number | E'. + foo15: typeof c; // error + ~~~~~~~~~~~~~~~~ +!!! error TS2411: Property 'foo15' of type 'typeof c' is not assignable to string index type 'number | E'. + foo16: T; // error + ~~~~~~~~~ +!!! error TS2411: Property 'foo16' of type 'T' is not assignable to string index type 'number | E'. + foo17: Object; // error + ~~~~~~~~~~~~~~ +!!! error TS2411: Property 'foo17' of type 'Object' is not assignable to string index type 'number | E'. + foo18: {}; // error + ~~~~~~~~~~ +!!! error TS2411: Property 'foo18' of type '{}' is not assignable to string index type 'number | E'. + } \ No newline at end of file diff --git a/tests/baselines/reference/subtypesOfUnion.js b/tests/baselines/reference/subtypesOfUnion.js new file mode 100644 index 00000000000..a18ebb944b9 --- /dev/null +++ b/tests/baselines/reference/subtypesOfUnion.js @@ -0,0 +1,85 @@ +//// [subtypesOfUnion.ts] +enum E { e1, e2 } +interface I8 { [x: string]: number[]; } +class A { foo: number; } +class A2 { foo: T; } +function f() { } +module f { export var bar = 1; } +class c { baz: string } +module c { export var bar = 1; } + +// A type T is a subtype of a union type U if T is a subtype of any type in U. +interface I1 { + [x: string]: string | number; + foo: any; // ok + foo2: string; // ok + foo3: number; // ok + foo4: boolean; // error + foo5: E; // ok - subtype of number + foo6: Date; // error + foo7: RegExp; // error + foo8: { bar: number }; // error + foo9: I8; // error + foo10: A; // error + foo11: A2; // error + foo12: (x) => number; //error + foo13: (x: T) => T; // error + foo14: typeof f; // error + foo15: typeof c; // error + foo16: T; // error + foo17: Object; // error + foo18: {}; // error +} +interface I2 { + [x: string]: E | number; + foo: any; // ok + foo2: string; // error + foo3: number; // ok + foo4: boolean; // error + foo5: E; // ok + foo6: Date; // error + foo7: RegExp; // error + foo8: { bar: number }; // error + foo9: I8; // error + foo10: A; // error + foo11: A2; // error + foo12: (x) => number; //error + foo13: (x: T) => T; // error + foo14: typeof f; // error + foo15: typeof c; // error + foo16: T; // error + foo17: Object; // error + foo18: {}; // error +} + +//// [subtypesOfUnion.js] +var E; +(function (E) { + E[E["e1"] = 0] = "e1"; + E[E["e2"] = 1] = "e2"; +})(E || (E = {})); +var A = (function () { + function A() { + } + return A; +})(); +var A2 = (function () { + function A2() { + } + return A2; +})(); +function f() { +} +var f; +(function (f) { + f.bar = 1; +})(f || (f = {})); +var c = (function () { + function c() { + } + return c; +})(); +var c; +(function (c) { + c.bar = 1; +})(c || (c = {})); diff --git a/tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypesOfUnion.ts b/tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypesOfUnion.ts new file mode 100644 index 00000000000..c20bafeeabf --- /dev/null +++ b/tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypesOfUnion.ts @@ -0,0 +1,52 @@ +enum E { e1, e2 } +interface I8 { [x: string]: number[]; } +class A { foo: number; } +class A2 { foo: T; } +function f() { } +module f { export var bar = 1; } +class c { baz: string } +module c { export var bar = 1; } + +// A type T is a subtype of a union type U if T is a subtype of any type in U. +interface I1 { + [x: string]: string | number; + foo: any; // ok + foo2: string; // ok + foo3: number; // ok + foo4: boolean; // error + foo5: E; // ok - subtype of number + foo6: Date; // error + foo7: RegExp; // error + foo8: { bar: number }; // error + foo9: I8; // error + foo10: A; // error + foo11: A2; // error + foo12: (x) => number; //error + foo13: (x: T) => T; // error + foo14: typeof f; // error + foo15: typeof c; // error + foo16: T; // error + foo17: Object; // error + foo18: {}; // error +} +interface I2 { + [x: string]: E | number; + foo: any; // ok + foo2: string; // error + foo3: number; // ok + foo4: boolean; // error + foo5: E; // ok + foo6: Date; // error + foo7: RegExp; // error + foo8: { bar: number }; // error + foo9: I8; // error + foo10: A; // error + foo11: A2; // error + foo12: (x) => number; //error + foo13: (x: T) => T; // error + foo14: typeof f; // error + foo15: typeof c; // error + foo16: T; // error + foo17: Object; // error + foo18: {}; // error +} \ No newline at end of file From 1f3653b32e98e1fe5861c3c3aa16881aaa60a16e Mon Sep 17 00:00:00 2001 From: Sheetal Nandi Date: Mon, 3 Nov 2014 10:08:40 -0800 Subject: [PATCH 010/195] =?UTF-8?q?Tests=20for=20assignment=20compatibilit?= =?UTF-8?q?y=20of=20union=20types=20=E2=80=A2=09A=20union=20type=20U=20is?= =?UTF-8?q?=20assignable=20to=20a=20type=20T=20if=20each=20type=20in=20U?= =?UTF-8?q?=20is=20assignable=20to=20T.=20=E2=80=A2=09A=20type=20T=20is=20?= =?UTF-8?q?assignable=20to=20a=20union=20type=20U=20if=20T=20is=20assignab?= =?UTF-8?q?le=20to=20any=20type=20in=20U.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../unionTypesAssignability.errors.txt | 154 ++++++++++++++++ .../reference/unionTypesAssignability.js | 165 ++++++++++++++++++ .../unionTypesAssignability.ts | 71 ++++++++ 3 files changed, 390 insertions(+) create mode 100644 tests/baselines/reference/unionTypesAssignability.errors.txt create mode 100644 tests/baselines/reference/unionTypesAssignability.js create mode 100644 tests/cases/conformance/types/typeRelationships/assignmentCompatibility/unionTypesAssignability.ts diff --git a/tests/baselines/reference/unionTypesAssignability.errors.txt b/tests/baselines/reference/unionTypesAssignability.errors.txt new file mode 100644 index 00000000000..b32f71a38c1 --- /dev/null +++ b/tests/baselines/reference/unionTypesAssignability.errors.txt @@ -0,0 +1,154 @@ +tests/cases/conformance/types/typeRelationships/assignmentCompatibility/unionTypesAssignability.ts(18,1): error TS2323: Type 'E' is not assignable to type 'D'. + Property 'foo1' is missing in type 'E'. +tests/cases/conformance/types/typeRelationships/assignmentCompatibility/unionTypesAssignability.ts(19,1): error TS2323: Type 'D | E' is not assignable to type 'D'. + Type 'E' is not assignable to type 'D'. +tests/cases/conformance/types/typeRelationships/assignmentCompatibility/unionTypesAssignability.ts(20,1): error TS2323: Type 'D' is not assignable to type 'E'. + Property 'foo2' is missing in type 'D'. +tests/cases/conformance/types/typeRelationships/assignmentCompatibility/unionTypesAssignability.ts(22,1): error TS2323: Type 'D | E' is not assignable to type 'E'. + Type 'D' is not assignable to type 'E'. +tests/cases/conformance/types/typeRelationships/assignmentCompatibility/unionTypesAssignability.ts(24,1): error TS2323: Type 'string' is not assignable to type 'number'. +tests/cases/conformance/types/typeRelationships/assignmentCompatibility/unionTypesAssignability.ts(25,1): error TS2323: Type 'string | number' is not assignable to type 'number'. + Type 'string' is not assignable to type 'number'. +tests/cases/conformance/types/typeRelationships/assignmentCompatibility/unionTypesAssignability.ts(26,1): error TS2323: Type 'number' is not assignable to type 'string'. +tests/cases/conformance/types/typeRelationships/assignmentCompatibility/unionTypesAssignability.ts(28,1): error TS2323: Type 'string | number' is not assignable to type 'string'. + Type 'number' is not assignable to type 'string'. +tests/cases/conformance/types/typeRelationships/assignmentCompatibility/unionTypesAssignability.ts(31,1): error TS2323: Type 'C' is not assignable to type 'D'. + Property 'foo1' is missing in type 'C'. +tests/cases/conformance/types/typeRelationships/assignmentCompatibility/unionTypesAssignability.ts(32,1): error TS2323: Type 'C' is not assignable to type 'E'. + Property 'foo2' is missing in type 'C'. +tests/cases/conformance/types/typeRelationships/assignmentCompatibility/unionTypesAssignability.ts(33,1): error TS2323: Type 'C' is not assignable to type 'D | E'. + Type 'C' is not assignable to type 'E'. +tests/cases/conformance/types/typeRelationships/assignmentCompatibility/unionTypesAssignability.ts(35,1): error TS2323: Type 'D' is not assignable to type 'E'. +tests/cases/conformance/types/typeRelationships/assignmentCompatibility/unionTypesAssignability.ts(37,1): error TS2323: Type 'E' is not assignable to type 'D'. +tests/cases/conformance/types/typeRelationships/assignmentCompatibility/unionTypesAssignability.ts(41,1): error TS2323: Type 'number' is not assignable to type 'string'. +tests/cases/conformance/types/typeRelationships/assignmentCompatibility/unionTypesAssignability.ts(43,1): error TS2323: Type 'string' is not assignable to type 'number'. +tests/cases/conformance/types/typeRelationships/assignmentCompatibility/unionTypesAssignability.ts(64,5): error TS2323: Type 'U' is not assignable to type 'T'. +tests/cases/conformance/types/typeRelationships/assignmentCompatibility/unionTypesAssignability.ts(65,5): error TS2323: Type 'T' is not assignable to type 'U'. +tests/cases/conformance/types/typeRelationships/assignmentCompatibility/unionTypesAssignability.ts(69,5): error TS2323: Type 'T | U' is not assignable to type 'T'. + Type 'U' is not assignable to type 'T'. +tests/cases/conformance/types/typeRelationships/assignmentCompatibility/unionTypesAssignability.ts(70,5): error TS2323: Type 'T | U' is not assignable to type 'U'. + Type 'T' is not assignable to type 'U'. + + +==== tests/cases/conformance/types/typeRelationships/assignmentCompatibility/unionTypesAssignability.ts (19 errors) ==== + var unionNumberString: number | string; + class C { } + class D extends C { foo1() { } } + class E extends C { foo2() { } } + var unionDE: D | E; + + var num: number; + var str: string; + var c: C; + var d: D; + var e: E; + + // A union type U is assignable to a type T if each type in U is assignable to T + c = d; + c = e; + c = unionDE; // ok + d = d; + d = e; + ~ +!!! error TS2323: Type 'E' is not assignable to type 'D'. +!!! error TS2323: Property 'foo1' is missing in type 'E'. + d = unionDE; // error e is not assignable to d + ~ +!!! error TS2323: Type 'D | E' is not assignable to type 'D'. +!!! error TS2323: Type 'E' is not assignable to type 'D'. + e = d; + ~ +!!! error TS2323: Type 'D' is not assignable to type 'E'. +!!! error TS2323: Property 'foo2' is missing in type 'D'. + e = e; + e = unionDE; // error d is not assignable to e + ~ +!!! error TS2323: Type 'D | E' is not assignable to type 'E'. +!!! error TS2323: Type 'D' is not assignable to type 'E'. + num = num; + num = str; + ~~~ +!!! error TS2323: Type 'string' is not assignable to type 'number'. + num = unionNumberString; // error string is not assignable to number + ~~~ +!!! error TS2323: Type 'string | number' is not assignable to type 'number'. +!!! error TS2323: Type 'string' is not assignable to type 'number'. + str = num; + ~~~ +!!! error TS2323: Type 'number' is not assignable to type 'string'. + str = str; + str = unionNumberString; // error since number is not assignable to string + ~~~ +!!! error TS2323: Type 'string | number' is not assignable to type 'string'. +!!! error TS2323: Type 'number' is not assignable to type 'string'. + + // A type T is assignable to a union type U if T is assignable to any type in U + d = c; + ~ +!!! error TS2323: Type 'C' is not assignable to type 'D'. +!!! error TS2323: Property 'foo1' is missing in type 'C'. + e = c; + ~ +!!! error TS2323: Type 'C' is not assignable to type 'E'. +!!! error TS2323: Property 'foo2' is missing in type 'C'. + unionDE = c; // error since C is not assinable to either D or E + ~~~~~~~ +!!! error TS2323: Type 'C' is not assignable to type 'D | E'. +!!! error TS2323: Type 'C' is not assignable to type 'E'. + d = d; + e = d; + ~ +!!! error TS2323: Type 'D' is not assignable to type 'E'. + unionDE = d; // ok + d = e; + ~ +!!! error TS2323: Type 'E' is not assignable to type 'D'. + e = e; + unionDE = e; // ok + num = num; + str = num; + ~~~ +!!! error TS2323: Type 'number' is not assignable to type 'string'. + unionNumberString = num; // ok + num = str; + ~~~ +!!! error TS2323: Type 'string' is not assignable to type 'number'. + str = str; + unionNumberString = str; // ok + + // Any + var anyVar: any; + anyVar = unionDE; + anyVar = unionNumberString; + unionDE = anyVar; + unionNumberString = anyVar; + + // null + unionDE = null; + unionNumberString = null; + + // undefined + unionDE = undefined; + unionNumberString = undefined; + + // type parameters + function foo(t: T, u: U) { + t = u; // error + ~ +!!! error TS2323: Type 'U' is not assignable to type 'T'. + u = t; // error + ~ +!!! error TS2323: Type 'T' is not assignable to type 'U'. + var x : T | U; + x = t; // ok + x = u; // ok + t = x; // error U not assignable to T + ~ +!!! error TS2323: Type 'T | U' is not assignable to type 'T'. +!!! error TS2323: Type 'U' is not assignable to type 'T'. + u = x; // error T not assignable to U + ~ +!!! error TS2323: Type 'T | U' is not assignable to type 'U'. +!!! error TS2323: Type 'T' is not assignable to type 'U'. + } + \ No newline at end of file diff --git a/tests/baselines/reference/unionTypesAssignability.js b/tests/baselines/reference/unionTypesAssignability.js new file mode 100644 index 00000000000..a67f23bb09f --- /dev/null +++ b/tests/baselines/reference/unionTypesAssignability.js @@ -0,0 +1,165 @@ +//// [unionTypesAssignability.ts] +var unionNumberString: number | string; +class C { } +class D extends C { foo1() { } } +class E extends C { foo2() { } } +var unionDE: D | E; + +var num: number; +var str: string; +var c: C; +var d: D; +var e: E; + +// A union type U is assignable to a type T if each type in U is assignable to T +c = d; +c = e; +c = unionDE; // ok +d = d; +d = e; +d = unionDE; // error e is not assignable to d +e = d; +e = e; +e = unionDE; // error d is not assignable to e +num = num; +num = str; +num = unionNumberString; // error string is not assignable to number +str = num; +str = str; +str = unionNumberString; // error since number is not assignable to string + +// A type T is assignable to a union type U if T is assignable to any type in U +d = c; +e = c; +unionDE = c; // error since C is not assinable to either D or E +d = d; +e = d; +unionDE = d; // ok +d = e; +e = e; +unionDE = e; // ok +num = num; +str = num; +unionNumberString = num; // ok +num = str; +str = str; +unionNumberString = str; // ok + +// Any +var anyVar: any; +anyVar = unionDE; +anyVar = unionNumberString; +unionDE = anyVar; +unionNumberString = anyVar; + +// null +unionDE = null; +unionNumberString = null; + +// undefined +unionDE = undefined; +unionNumberString = undefined; + +// type parameters +function foo(t: T, u: U) { + t = u; // error + u = t; // error + var x : T | U; + x = t; // ok + x = u; // ok + t = x; // error U not assignable to T + u = x; // error T not assignable to U +} + + +//// [unionTypesAssignability.js] +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 unionNumberString; +var C = (function () { + function C() { + } + return C; +})(); +var D = (function (_super) { + __extends(D, _super); + function D() { + _super.apply(this, arguments); + } + D.prototype.foo1 = function () { + }; + return D; +})(C); +var E = (function (_super) { + __extends(E, _super); + function E() { + _super.apply(this, arguments); + } + E.prototype.foo2 = function () { + }; + return E; +})(C); +var unionDE; +var num; +var str; +var c; +var d; +var e; +// A union type U is assignable to a type T if each type in U is assignable to T +c = d; +c = e; +c = unionDE; // ok +d = d; +d = e; +d = unionDE; // error e is not assignable to d +e = d; +e = e; +e = unionDE; // error d is not assignable to e +num = num; +num = str; +num = unionNumberString; // error string is not assignable to number +str = num; +str = str; +str = unionNumberString; // error since number is not assignable to string +// A type T is assignable to a union type U if T is assignable to any type in U +d = c; +e = c; +unionDE = c; // error since C is not assinable to either D or E +d = d; +e = d; +unionDE = d; // ok +d = e; +e = e; +unionDE = e; // ok +num = num; +str = num; +unionNumberString = num; // ok +num = str; +str = str; +unionNumberString = str; // ok +// Any +var anyVar; +anyVar = unionDE; +anyVar = unionNumberString; +unionDE = anyVar; +unionNumberString = anyVar; +// null +unionDE = null; +unionNumberString = null; +// undefined +unionDE = undefined; +unionNumberString = undefined; +// type parameters +function foo(t, u) { + t = u; // error + u = t; // error + var x; + x = t; // ok + x = u; // ok + t = x; // error U not assignable to T + u = x; // error T not assignable to U +} diff --git a/tests/cases/conformance/types/typeRelationships/assignmentCompatibility/unionTypesAssignability.ts b/tests/cases/conformance/types/typeRelationships/assignmentCompatibility/unionTypesAssignability.ts new file mode 100644 index 00000000000..9ceee8845a5 --- /dev/null +++ b/tests/cases/conformance/types/typeRelationships/assignmentCompatibility/unionTypesAssignability.ts @@ -0,0 +1,71 @@ +var unionNumberString: number | string; +class C { } +class D extends C { foo1() { } } +class E extends C { foo2() { } } +var unionDE: D | E; + +var num: number; +var str: string; +var c: C; +var d: D; +var e: E; + +// A union type U is assignable to a type T if each type in U is assignable to T +c = d; +c = e; +c = unionDE; // ok +d = d; +d = e; +d = unionDE; // error e is not assignable to d +e = d; +e = e; +e = unionDE; // error d is not assignable to e +num = num; +num = str; +num = unionNumberString; // error string is not assignable to number +str = num; +str = str; +str = unionNumberString; // error since number is not assignable to string + +// A type T is assignable to a union type U if T is assignable to any type in U +d = c; +e = c; +unionDE = c; // error since C is not assinable to either D or E +d = d; +e = d; +unionDE = d; // ok +d = e; +e = e; +unionDE = e; // ok +num = num; +str = num; +unionNumberString = num; // ok +num = str; +str = str; +unionNumberString = str; // ok + +// Any +var anyVar: any; +anyVar = unionDE; +anyVar = unionNumberString; +unionDE = anyVar; +unionNumberString = anyVar; + +// null +unionDE = null; +unionNumberString = null; + +// undefined +unionDE = undefined; +unionNumberString = undefined; + +// type parameters +function foo(t: T, u: U) { + t = u; // error + u = t; // error + var x : T | U; + x = t; // ok + x = u; // ok + t = x; // error U not assignable to T + u = x; // error T not assignable to U +} From 357bd87612ba2e1f5302562a922f943405ea70b3 Mon Sep 17 00:00:00 2001 From: Sheetal Nandi Date: Mon, 3 Nov 2014 13:20:30 -0800 Subject: [PATCH 011/195] Tests for union members: If each type in U has a property P, U has a property P of a union type of the types of P from each type in U. --- .../reference/unionTypeEquivalence.js | 4 +- .../reference/unionTypeEquivalence.types | 3 +- .../reference/unionTypeMembers.errors.txt | 72 +++++++++++++++++ tests/baselines/reference/unionTypeMembers.js | 79 +++++++++++++++++++ .../types/union/unionTypeEquivalence.ts | 2 +- .../types/union/unionTypeMembers.ts | 54 +++++++++++++ 6 files changed, 211 insertions(+), 3 deletions(-) create mode 100644 tests/baselines/reference/unionTypeMembers.errors.txt create mode 100644 tests/baselines/reference/unionTypeMembers.js create mode 100644 tests/cases/conformance/types/union/unionTypeMembers.ts diff --git a/tests/baselines/reference/unionTypeEquivalence.js b/tests/baselines/reference/unionTypeEquivalence.js index 3698ecd2f92..f9fdf2e58d7 100644 --- a/tests/baselines/reference/unionTypeEquivalence.js +++ b/tests/baselines/reference/unionTypeEquivalence.js @@ -1,7 +1,7 @@ //// [unionTypeEquivalence.ts] // A | B is equivalent to A if B is a subtype of A class C { } -class D extends C { } +class D extends C { foo() { } } var x: C; var x : C | D; @@ -37,6 +37,8 @@ var D = (function (_super) { function D() { _super.apply(this, arguments); } + D.prototype.foo = function () { + }; return D; })(C); var x; diff --git a/tests/baselines/reference/unionTypeEquivalence.types b/tests/baselines/reference/unionTypeEquivalence.types index 53e95659120..c4990a58132 100644 --- a/tests/baselines/reference/unionTypeEquivalence.types +++ b/tests/baselines/reference/unionTypeEquivalence.types @@ -3,9 +3,10 @@ class C { } >C : C -class D extends C { } +class D extends C { foo() { } } >D : D >C : C +>foo : () => void var x: C; >x : C diff --git a/tests/baselines/reference/unionTypeMembers.errors.txt b/tests/baselines/reference/unionTypeMembers.errors.txt new file mode 100644 index 00000000000..21f1204ac6d --- /dev/null +++ b/tests/baselines/reference/unionTypeMembers.errors.txt @@ -0,0 +1,72 @@ +tests/cases/conformance/types/union/unionTypeMembers.ts(44,1): error TS2349: Cannot invoke an expression whose type lacks a call signature. +tests/cases/conformance/types/union/unionTypeMembers.ts(51,3): error TS2339: Property 'propertyOnlyInI1' does not exist on type 'I1 | I2'. +tests/cases/conformance/types/union/unionTypeMembers.ts(52,3): error TS2339: Property 'propertyOnlyInI2' does not exist on type 'I1 | I2'. +tests/cases/conformance/types/union/unionTypeMembers.ts(53,3): error TS2339: Property 'methodOnlyInI1' does not exist on type 'I1 | I2'. +tests/cases/conformance/types/union/unionTypeMembers.ts(54,3): error TS2339: Property 'methodOnlyInI2' does not exist on type 'I1 | I2'. + + +==== tests/cases/conformance/types/union/unionTypeMembers.ts (5 errors) ==== + interface I1 { + commonMethodType(a: string): string; + commonPropertyType: string; + + commonMethodDifferentParameterType(a: string): string; + commonMethodDifferentReturnType(a: string): string; + commonPropertyDifferenType: string; + + commonMethodWithTypeParameter(a: T): T; + commonMethodWithOwnTypeParameter(a: U): U; + + methodOnlyInI1(a: string): string; + propertyOnlyInI1: string; + } + + interface I2 { + commonMethodType(a: string): string; + commonPropertyType: string; + + commonMethodDifferentParameterType(a: number): number; + commonMethodDifferentReturnType(a: string): number; + commonPropertyDifferenType: number; + + commonMethodWithTypeParameter(a: T): T; + commonMethodWithOwnTypeParameter(a: U): U; + + methodOnlyInI2(a: string): string; + propertyOnlyInI2: string; + } + + // a union type U has those members that are present in every one of its constituent types, + // with types that are unions of the respective members in the constituent types + var x : I1 | I2; + var str: string; + var num: number; + var strOrNum: string | number; + + // If each type in U has a property P, U has a property P of a union type of the types of P from each type in U. + str = x.commonPropertyType; // string + str = x.commonMethodType(str); // (a: string) => string so result should be string + strOrNum = x.commonPropertyDifferenType; + strOrNum = x.commonMethodDifferentReturnType(str); // string | union + x.commonMethodDifferentParameterType; // No error - property exists + x.commonMethodDifferentParameterType(strOrNum); // error - no call signatures because the type of this property is ((a: string) => string) | (a: number) => number + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +!!! error TS2349: Cannot invoke an expression whose type lacks a call signature. + // and the call signatures arent identical + num = x.commonMethodWithTypeParameter(num); + num = x.commonMethodWithOwnTypeParameter(num); + str = x.commonMethodWithOwnTypeParameter(str); + strOrNum = x.commonMethodWithOwnTypeParameter(strOrNum); + + x.propertyOnlyInI1; // error + ~~~~~~~~~~~~~~~~ +!!! error TS2339: Property 'propertyOnlyInI1' does not exist on type 'I1 | I2'. + x.propertyOnlyInI2; // error + ~~~~~~~~~~~~~~~~ +!!! error TS2339: Property 'propertyOnlyInI2' does not exist on type 'I1 | I2'. + x.methodOnlyInI1("hello"); // error + ~~~~~~~~~~~~~~ +!!! error TS2339: Property 'methodOnlyInI1' does not exist on type 'I1 | I2'. + x.methodOnlyInI2(10); // error + ~~~~~~~~~~~~~~ +!!! error TS2339: Property 'methodOnlyInI2' does not exist on type 'I1 | I2'. \ No newline at end of file diff --git a/tests/baselines/reference/unionTypeMembers.js b/tests/baselines/reference/unionTypeMembers.js new file mode 100644 index 00000000000..b03572246b4 --- /dev/null +++ b/tests/baselines/reference/unionTypeMembers.js @@ -0,0 +1,79 @@ +//// [unionTypeMembers.ts] +interface I1 { + commonMethodType(a: string): string; + commonPropertyType: string; + + commonMethodDifferentParameterType(a: string): string; + commonMethodDifferentReturnType(a: string): string; + commonPropertyDifferenType: string; + + commonMethodWithTypeParameter(a: T): T; + commonMethodWithOwnTypeParameter(a: U): U; + + methodOnlyInI1(a: string): string; + propertyOnlyInI1: string; +} + +interface I2 { + commonMethodType(a: string): string; + commonPropertyType: string; + + commonMethodDifferentParameterType(a: number): number; + commonMethodDifferentReturnType(a: string): number; + commonPropertyDifferenType: number; + + commonMethodWithTypeParameter(a: T): T; + commonMethodWithOwnTypeParameter(a: U): U; + + methodOnlyInI2(a: string): string; + propertyOnlyInI2: string; +} + +// a union type U has those members that are present in every one of its constituent types, +// with types that are unions of the respective members in the constituent types +var x : I1 | I2; +var str: string; +var num: number; +var strOrNum: string | number; + +// If each type in U has a property P, U has a property P of a union type of the types of P from each type in U. +str = x.commonPropertyType; // string +str = x.commonMethodType(str); // (a: string) => string so result should be string +strOrNum = x.commonPropertyDifferenType; +strOrNum = x.commonMethodDifferentReturnType(str); // string | union +x.commonMethodDifferentParameterType; // No error - property exists +x.commonMethodDifferentParameterType(strOrNum); // error - no call signatures because the type of this property is ((a: string) => string) | (a: number) => number + // and the call signatures arent identical +num = x.commonMethodWithTypeParameter(num); +num = x.commonMethodWithOwnTypeParameter(num); +str = x.commonMethodWithOwnTypeParameter(str); +strOrNum = x.commonMethodWithOwnTypeParameter(strOrNum); + +x.propertyOnlyInI1; // error +x.propertyOnlyInI2; // error +x.methodOnlyInI1("hello"); // error +x.methodOnlyInI2(10); // error + +//// [unionTypeMembers.js] +// a union type U has those members that are present in every one of its constituent types, +// with types that are unions of the respective members in the constituent types +var x; +var str; +var num; +var strOrNum; +// If each type in U has a property P, U has a property P of a union type of the types of P from each type in U. +str = x.commonPropertyType; // string +str = x.commonMethodType(str); // (a: string) => string so result should be string +strOrNum = x.commonPropertyDifferenType; +strOrNum = x.commonMethodDifferentReturnType(str); // string | union +x.commonMethodDifferentParameterType; // No error - property exists +x.commonMethodDifferentParameterType(strOrNum); // error - no call signatures because the type of this property is ((a: string) => string) | (a: number) => number +// and the call signatures arent identical +num = x.commonMethodWithTypeParameter(num); +num = x.commonMethodWithOwnTypeParameter(num); +str = x.commonMethodWithOwnTypeParameter(str); +strOrNum = x.commonMethodWithOwnTypeParameter(strOrNum); +x.propertyOnlyInI1; // error +x.propertyOnlyInI2; // error +x.methodOnlyInI1("hello"); // error +x.methodOnlyInI2(10); // error diff --git a/tests/cases/conformance/types/union/unionTypeEquivalence.ts b/tests/cases/conformance/types/union/unionTypeEquivalence.ts index 0905fde17f8..71fd6d91b65 100644 --- a/tests/cases/conformance/types/union/unionTypeEquivalence.ts +++ b/tests/cases/conformance/types/union/unionTypeEquivalence.ts @@ -1,6 +1,6 @@ // A | B is equivalent to A if B is a subtype of A class C { } -class D extends C { } +class D extends C { foo() { } } var x: C; var x : C | D; diff --git a/tests/cases/conformance/types/union/unionTypeMembers.ts b/tests/cases/conformance/types/union/unionTypeMembers.ts new file mode 100644 index 00000000000..73c6867e9ac --- /dev/null +++ b/tests/cases/conformance/types/union/unionTypeMembers.ts @@ -0,0 +1,54 @@ +interface I1 { + commonMethodType(a: string): string; + commonPropertyType: string; + + commonMethodDifferentParameterType(a: string): string; + commonMethodDifferentReturnType(a: string): string; + commonPropertyDifferenType: string; + + commonMethodWithTypeParameter(a: T): T; + commonMethodWithOwnTypeParameter(a: U): U; + + methodOnlyInI1(a: string): string; + propertyOnlyInI1: string; +} + +interface I2 { + commonMethodType(a: string): string; + commonPropertyType: string; + + commonMethodDifferentParameterType(a: number): number; + commonMethodDifferentReturnType(a: string): number; + commonPropertyDifferenType: number; + + commonMethodWithTypeParameter(a: T): T; + commonMethodWithOwnTypeParameter(a: U): U; + + methodOnlyInI2(a: string): string; + propertyOnlyInI2: string; +} + +// a union type U has those members that are present in every one of its constituent types, +// with types that are unions of the respective members in the constituent types +var x : I1 | I2; +var str: string; +var num: number; +var strOrNum: string | number; + +// If each type in U has a property P, U has a property P of a union type of the types of P from each type in U. +str = x.commonPropertyType; // string +str = x.commonMethodType(str); // (a: string) => string so result should be string +strOrNum = x.commonPropertyDifferenType; +strOrNum = x.commonMethodDifferentReturnType(str); // string | union +x.commonMethodDifferentParameterType; // No error - property exists +x.commonMethodDifferentParameterType(strOrNum); // error - no call signatures because the type of this property is ((a: string) => string) | (a: number) => number + // and the call signatures arent identical +num = x.commonMethodWithTypeParameter(num); +num = x.commonMethodWithOwnTypeParameter(num); +str = x.commonMethodWithOwnTypeParameter(str); +strOrNum = x.commonMethodWithOwnTypeParameter(strOrNum); + +x.propertyOnlyInI1; // error +x.propertyOnlyInI2; // error +x.methodOnlyInI1("hello"); // error +x.methodOnlyInI2(10); // error \ No newline at end of file From 2b8342bd79352b05403e769cb79da15d9444e7b1 Mon Sep 17 00:00:00 2001 From: Sheetal Nandi Date: Mon, 3 Nov 2014 13:20:55 -0800 Subject: [PATCH 012/195] Tests for union of call signatures If each type in U has call signatures and the sets of call signatures are identical ignoring return types, U has the same set of call signatures, but with return types that are unions of the return types of the respective call signatures from each type in U. --- .../unionTypeCallSignatures.errors.txt | 178 ++++++++++++++++++ .../reference/unionTypeCallSignatures.js | 132 +++++++++++++ .../types/union/unionTypeCallSignatures.ts | 70 +++++++ 3 files changed, 380 insertions(+) create mode 100644 tests/baselines/reference/unionTypeCallSignatures.errors.txt create mode 100644 tests/baselines/reference/unionTypeCallSignatures.js create mode 100644 tests/cases/conformance/types/union/unionTypeCallSignatures.ts diff --git a/tests/baselines/reference/unionTypeCallSignatures.errors.txt b/tests/baselines/reference/unionTypeCallSignatures.errors.txt new file mode 100644 index 00000000000..313cd477187 --- /dev/null +++ b/tests/baselines/reference/unionTypeCallSignatures.errors.txt @@ -0,0 +1,178 @@ +tests/cases/conformance/types/union/unionTypeCallSignatures.ts(9,43): error TS2345: Argument of type 'string' is not assignable to parameter of type 'number'. +tests/cases/conformance/types/union/unionTypeCallSignatures.ts(10,29): error TS2345: Argument of type 'boolean' is not assignable to parameter of type 'string'. +tests/cases/conformance/types/union/unionTypeCallSignatures.ts(15,29): error TS2345: Argument of type 'boolean' is not assignable to parameter of type 'string'. +tests/cases/conformance/types/union/unionTypeCallSignatures.ts(16,1): error TS2346: Supplied parameters do not match any signature of call target. +tests/cases/conformance/types/union/unionTypeCallSignatures.ts(19,1): error TS2349: Cannot invoke an expression whose type lacks a call signature. +tests/cases/conformance/types/union/unionTypeCallSignatures.ts(20,1): error TS2349: Cannot invoke an expression whose type lacks a call signature. +tests/cases/conformance/types/union/unionTypeCallSignatures.ts(21,1): error TS2349: Cannot invoke an expression whose type lacks a call signature. +tests/cases/conformance/types/union/unionTypeCallSignatures.ts(24,1): error TS2349: Cannot invoke an expression whose type lacks a call signature. +tests/cases/conformance/types/union/unionTypeCallSignatures.ts(25,1): error TS2349: Cannot invoke an expression whose type lacks a call signature. +tests/cases/conformance/types/union/unionTypeCallSignatures.ts(26,1): error TS2349: Cannot invoke an expression whose type lacks a call signature. +tests/cases/conformance/types/union/unionTypeCallSignatures.ts(29,1): error TS2349: Cannot invoke an expression whose type lacks a call signature. +tests/cases/conformance/types/union/unionTypeCallSignatures.ts(30,1): error TS2349: Cannot invoke an expression whose type lacks a call signature. +tests/cases/conformance/types/union/unionTypeCallSignatures.ts(31,1): error TS2349: Cannot invoke an expression whose type lacks a call signature. +tests/cases/conformance/types/union/unionTypeCallSignatures.ts(36,49): error TS2345: Argument of type 'string' is not assignable to parameter of type 'number'. +tests/cases/conformance/types/union/unionTypeCallSignatures.ts(37,12): error TS2346: Supplied parameters do not match any signature of call target. +tests/cases/conformance/types/union/unionTypeCallSignatures.ts(40,12): error TS2349: Cannot invoke an expression whose type lacks a call signature. +tests/cases/conformance/types/union/unionTypeCallSignatures.ts(41,12): error TS2349: Cannot invoke an expression whose type lacks a call signature. +tests/cases/conformance/types/union/unionTypeCallSignatures.ts(42,12): error TS2349: Cannot invoke an expression whose type lacks a call signature. +tests/cases/conformance/types/union/unionTypeCallSignatures.ts(43,12): error TS2349: Cannot invoke an expression whose type lacks a call signature. +tests/cases/conformance/types/union/unionTypeCallSignatures.ts(46,12): error TS2349: Cannot invoke an expression whose type lacks a call signature. +tests/cases/conformance/types/union/unionTypeCallSignatures.ts(47,12): error TS2349: Cannot invoke an expression whose type lacks a call signature. +tests/cases/conformance/types/union/unionTypeCallSignatures.ts(48,12): error TS2349: Cannot invoke an expression whose type lacks a call signature. +tests/cases/conformance/types/union/unionTypeCallSignatures.ts(49,12): error TS2349: Cannot invoke an expression whose type lacks a call signature. +tests/cases/conformance/types/union/unionTypeCallSignatures.ts(55,45): error TS2345: Argument of type 'string' is not assignable to parameter of type 'number'. +tests/cases/conformance/types/union/unionTypeCallSignatures.ts(56,12): error TS2346: Supplied parameters do not match any signature of call target. +tests/cases/conformance/types/union/unionTypeCallSignatures.ts(59,12): error TS2349: Cannot invoke an expression whose type lacks a call signature. +tests/cases/conformance/types/union/unionTypeCallSignatures.ts(60,12): error TS2349: Cannot invoke an expression whose type lacks a call signature. +tests/cases/conformance/types/union/unionTypeCallSignatures.ts(61,12): error TS2349: Cannot invoke an expression whose type lacks a call signature. +tests/cases/conformance/types/union/unionTypeCallSignatures.ts(62,12): error TS2349: Cannot invoke an expression whose type lacks a call signature. +tests/cases/conformance/types/union/unionTypeCallSignatures.ts(63,12): error TS2349: Cannot invoke an expression whose type lacks a call signature. +tests/cases/conformance/types/union/unionTypeCallSignatures.ts(66,12): error TS2349: Cannot invoke an expression whose type lacks a call signature. +tests/cases/conformance/types/union/unionTypeCallSignatures.ts(67,12): error TS2349: Cannot invoke an expression whose type lacks a call signature. +tests/cases/conformance/types/union/unionTypeCallSignatures.ts(68,12): error TS2349: Cannot invoke an expression whose type lacks a call signature. +tests/cases/conformance/types/union/unionTypeCallSignatures.ts(69,12): error TS2349: Cannot invoke an expression whose type lacks a call signature. +tests/cases/conformance/types/union/unionTypeCallSignatures.ts(70,12): error TS2349: Cannot invoke an expression whose type lacks a call signature. + + +==== tests/cases/conformance/types/union/unionTypeCallSignatures.ts (35 errors) ==== + var numOrDate: number | Date; + var strOrBoolean: string | boolean; + var strOrNum: string | number; + + // If each type in U has call signatures and the sets of call signatures are identical ignoring return types, + // U has the same set of call signatures, but with return types that are unions of the return types of the respective call signatures from each type in U. + var unionOfDifferentReturnType: { (a: number): number; } | { (a: number): Date; }; + numOrDate = unionOfDifferentReturnType(10); + strOrBoolean = unionOfDifferentReturnType("hello"); // error + ~~~~~~~ +!!! error TS2345: Argument of type 'string' is not assignable to parameter of type 'number'. + unionOfDifferentReturnType1(true); // error in type of parameter + ~~~~ +!!! error TS2345: Argument of type 'boolean' is not assignable to parameter of type 'string'. + + var unionOfDifferentReturnType1: { (a: number): number; (a: string): string; } | { (a: number): Date; (a: string): boolean; }; + numOrDate = unionOfDifferentReturnType1(10); + strOrBoolean = unionOfDifferentReturnType1("hello"); + unionOfDifferentReturnType1(true); // error in type of parameter + ~~~~ +!!! error TS2345: Argument of type 'boolean' is not assignable to parameter of type 'string'. + unionOfDifferentReturnType1(); // error missing parameter + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +!!! error TS2346: Supplied parameters do not match any signature of call target. + + var unionOfDifferentParameterTypes: { (a: number): number; } | { (a: string): Date; }; + unionOfDifferentParameterTypes(10);// error - no call signatures + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +!!! error TS2349: Cannot invoke an expression whose type lacks a call signature. + unionOfDifferentParameterTypes("hello");// error - no call signatures + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +!!! error TS2349: Cannot invoke an expression whose type lacks a call signature. + unionOfDifferentParameterTypes();// error - no call signatures + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +!!! error TS2349: Cannot invoke an expression whose type lacks a call signature. + + var unionOfDifferentNumberOfSignatures: { (a: number): number; } | { (a: number): Date; (a: string): boolean; }; + unionOfDifferentNumberOfSignatures(); // error - no call signatures + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +!!! error TS2349: Cannot invoke an expression whose type lacks a call signature. + unionOfDifferentNumberOfSignatures(10); // error - no call signatures + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +!!! error TS2349: Cannot invoke an expression whose type lacks a call signature. + unionOfDifferentNumberOfSignatures("hello"); // error - no call signatures + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +!!! error TS2349: Cannot invoke an expression whose type lacks a call signature. + + var unionWithDifferentParameterCount: { (a: string): string; } | { (a: string, b: number): number; } ; + unionWithDifferentParameterCount();// no call signature + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +!!! error TS2349: Cannot invoke an expression whose type lacks a call signature. + unionWithDifferentParameterCount("hello");// no call signature + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +!!! error TS2349: Cannot invoke an expression whose type lacks a call signature. + unionWithDifferentParameterCount("hello", 10);// no call signature + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +!!! error TS2349: Cannot invoke an expression whose type lacks a call signature. + + var unionWithOptionalParameter1: { (a: string, b?: number): string; } | { (a: string, b?: number): number; }; + strOrNum = unionWithOptionalParameter1('hello'); + strOrNum = unionWithOptionalParameter1('hello', 10); + strOrNum = unionWithOptionalParameter1('hello', "hello"); // error in parameter type + ~~~~~~~ +!!! error TS2345: Argument of type 'string' is not assignable to parameter of type 'number'. + strOrNum = unionWithOptionalParameter1(); // error + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +!!! error TS2346: Supplied parameters do not match any signature of call target. + + var unionWithOptionalParameter2: { (a: string, b?: number): string; } | { (a: string, b: number): number }; + strOrNum = unionWithOptionalParameter2('hello'); // error no call signature + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +!!! error TS2349: Cannot invoke an expression whose type lacks a call signature. + strOrNum = unionWithOptionalParameter2('hello', 10); // error no call signature + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +!!! error TS2349: Cannot invoke an expression whose type lacks a call signature. + strOrNum = unionWithOptionalParameter2('hello', "hello"); // error no call signature + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +!!! error TS2349: Cannot invoke an expression whose type lacks a call signature. + strOrNum = unionWithOptionalParameter2(); // error no call signature + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +!!! error TS2349: Cannot invoke an expression whose type lacks a call signature. + + var unionWithOptionalParameter3: { (a: string, b?: number): string; } | { (a: string): number; }; + strOrNum = unionWithOptionalParameter3('hello'); // error no call signature + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +!!! error TS2349: Cannot invoke an expression whose type lacks a call signature. + strOrNum = unionWithOptionalParameter3('hello', 10); // error no call signature + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +!!! error TS2349: Cannot invoke an expression whose type lacks a call signature. + strOrNum = unionWithOptionalParameter3('hello', "hello"); // error no call signature + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +!!! error TS2349: Cannot invoke an expression whose type lacks a call signature. + strOrNum = unionWithOptionalParameter3(); // error no call signature + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +!!! error TS2349: Cannot invoke an expression whose type lacks a call signature. + + var unionWithRestParameter1: { (a: string, ...b: number[]): string; } | { (a: string, ...b: number[]): number }; + strOrNum = unionWithRestParameter1('hello'); + strOrNum = unionWithRestParameter1('hello', 10); + strOrNum = unionWithRestParameter1('hello', 10, 11); + strOrNum = unionWithRestParameter1('hello', "hello"); // error in parameter type + ~~~~~~~ +!!! error TS2345: Argument of type 'string' is not assignable to parameter of type 'number'. + strOrNum = unionWithRestParameter1(); // error + ~~~~~~~~~~~~~~~~~~~~~~~~~ +!!! error TS2346: Supplied parameters do not match any signature of call target. + + var unionWithRestParameter2: { (a: string, ...b: number[]): string; } | { (a: string, b: number): number }; + strOrNum = unionWithRestParameter2('hello'); // error no call signature + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +!!! error TS2349: Cannot invoke an expression whose type lacks a call signature. + strOrNum = unionWithRestParameter2('hello', 10); // error no call signature + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +!!! error TS2349: Cannot invoke an expression whose type lacks a call signature. + strOrNum = unionWithRestParameter2('hello', 10, 11); // error no call signature + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +!!! error TS2349: Cannot invoke an expression whose type lacks a call signature. + strOrNum = unionWithRestParameter2('hello', "hello"); // error no call signature + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +!!! error TS2349: Cannot invoke an expression whose type lacks a call signature. + strOrNum = unionWithRestParameter2(); // error no call signature + ~~~~~~~~~~~~~~~~~~~~~~~~~ +!!! error TS2349: Cannot invoke an expression whose type lacks a call signature. + + var unionWithRestParameter3: { (a: string, ...b: number[]): string; } | { (a: string): number }; + strOrNum = unionWithRestParameter3('hello'); // error no call signature + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +!!! error TS2349: Cannot invoke an expression whose type lacks a call signature. + strOrNum = unionWithRestParameter3('hello', 10); // error no call signature + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +!!! error TS2349: Cannot invoke an expression whose type lacks a call signature. + strOrNum = unionWithRestParameter3('hello', 10, 11); // error no call signature + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +!!! error TS2349: Cannot invoke an expression whose type lacks a call signature. + strOrNum = unionWithRestParameter3('hello', "hello"); // error no call signature + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +!!! error TS2349: Cannot invoke an expression whose type lacks a call signature. + strOrNum = unionWithRestParameter3(); // error no call signature + ~~~~~~~~~~~~~~~~~~~~~~~~~ +!!! error TS2349: Cannot invoke an expression whose type lacks a call signature. \ No newline at end of file diff --git a/tests/baselines/reference/unionTypeCallSignatures.js b/tests/baselines/reference/unionTypeCallSignatures.js new file mode 100644 index 00000000000..a4000038ce6 --- /dev/null +++ b/tests/baselines/reference/unionTypeCallSignatures.js @@ -0,0 +1,132 @@ +//// [unionTypeCallSignatures.ts] +var numOrDate: number | Date; +var strOrBoolean: string | boolean; +var strOrNum: string | number; + +// If each type in U has call signatures and the sets of call signatures are identical ignoring return types, +// U has the same set of call signatures, but with return types that are unions of the return types of the respective call signatures from each type in U. +var unionOfDifferentReturnType: { (a: number): number; } | { (a: number): Date; }; +numOrDate = unionOfDifferentReturnType(10); +strOrBoolean = unionOfDifferentReturnType("hello"); // error +unionOfDifferentReturnType1(true); // error in type of parameter + +var unionOfDifferentReturnType1: { (a: number): number; (a: string): string; } | { (a: number): Date; (a: string): boolean; }; +numOrDate = unionOfDifferentReturnType1(10); +strOrBoolean = unionOfDifferentReturnType1("hello"); +unionOfDifferentReturnType1(true); // error in type of parameter +unionOfDifferentReturnType1(); // error missing parameter + +var unionOfDifferentParameterTypes: { (a: number): number; } | { (a: string): Date; }; +unionOfDifferentParameterTypes(10);// error - no call signatures +unionOfDifferentParameterTypes("hello");// error - no call signatures +unionOfDifferentParameterTypes();// error - no call signatures + +var unionOfDifferentNumberOfSignatures: { (a: number): number; } | { (a: number): Date; (a: string): boolean; }; +unionOfDifferentNumberOfSignatures(); // error - no call signatures +unionOfDifferentNumberOfSignatures(10); // error - no call signatures +unionOfDifferentNumberOfSignatures("hello"); // error - no call signatures + + var unionWithDifferentParameterCount: { (a: string): string; } | { (a: string, b: number): number; } ; +unionWithDifferentParameterCount();// no call signature +unionWithDifferentParameterCount("hello");// no call signature +unionWithDifferentParameterCount("hello", 10);// no call signature + + var unionWithOptionalParameter1: { (a: string, b?: number): string; } | { (a: string, b?: number): number; }; +strOrNum = unionWithOptionalParameter1('hello'); +strOrNum = unionWithOptionalParameter1('hello', 10); +strOrNum = unionWithOptionalParameter1('hello', "hello"); // error in parameter type +strOrNum = unionWithOptionalParameter1(); // error + +var unionWithOptionalParameter2: { (a: string, b?: number): string; } | { (a: string, b: number): number }; +strOrNum = unionWithOptionalParameter2('hello'); // error no call signature +strOrNum = unionWithOptionalParameter2('hello', 10); // error no call signature +strOrNum = unionWithOptionalParameter2('hello', "hello"); // error no call signature +strOrNum = unionWithOptionalParameter2(); // error no call signature + +var unionWithOptionalParameter3: { (a: string, b?: number): string; } | { (a: string): number; }; +strOrNum = unionWithOptionalParameter3('hello'); // error no call signature +strOrNum = unionWithOptionalParameter3('hello', 10); // error no call signature +strOrNum = unionWithOptionalParameter3('hello', "hello"); // error no call signature +strOrNum = unionWithOptionalParameter3(); // error no call signature + +var unionWithRestParameter1: { (a: string, ...b: number[]): string; } | { (a: string, ...b: number[]): number }; +strOrNum = unionWithRestParameter1('hello'); +strOrNum = unionWithRestParameter1('hello', 10); +strOrNum = unionWithRestParameter1('hello', 10, 11); +strOrNum = unionWithRestParameter1('hello', "hello"); // error in parameter type +strOrNum = unionWithRestParameter1(); // error + +var unionWithRestParameter2: { (a: string, ...b: number[]): string; } | { (a: string, b: number): number }; +strOrNum = unionWithRestParameter2('hello'); // error no call signature +strOrNum = unionWithRestParameter2('hello', 10); // error no call signature +strOrNum = unionWithRestParameter2('hello', 10, 11); // error no call signature +strOrNum = unionWithRestParameter2('hello', "hello"); // error no call signature +strOrNum = unionWithRestParameter2(); // error no call signature + +var unionWithRestParameter3: { (a: string, ...b: number[]): string; } | { (a: string): number }; +strOrNum = unionWithRestParameter3('hello'); // error no call signature +strOrNum = unionWithRestParameter3('hello', 10); // error no call signature +strOrNum = unionWithRestParameter3('hello', 10, 11); // error no call signature +strOrNum = unionWithRestParameter3('hello', "hello"); // error no call signature +strOrNum = unionWithRestParameter3(); // error no call signature + +//// [unionTypeCallSignatures.js] +var numOrDate; +var strOrBoolean; +var strOrNum; +// If each type in U has call signatures and the sets of call signatures are identical ignoring return types, +// U has the same set of call signatures, but with return types that are unions of the return types of the respective call signatures from each type in U. +var unionOfDifferentReturnType; +numOrDate = unionOfDifferentReturnType(10); +strOrBoolean = unionOfDifferentReturnType("hello"); // error +unionOfDifferentReturnType1(true); // error in type of parameter +var unionOfDifferentReturnType1; +numOrDate = unionOfDifferentReturnType1(10); +strOrBoolean = unionOfDifferentReturnType1("hello"); +unionOfDifferentReturnType1(true); // error in type of parameter +unionOfDifferentReturnType1(); // error missing parameter +var unionOfDifferentParameterTypes; +unionOfDifferentParameterTypes(10); // error - no call signatures +unionOfDifferentParameterTypes("hello"); // error - no call signatures +unionOfDifferentParameterTypes(); // error - no call signatures +var unionOfDifferentNumberOfSignatures; +unionOfDifferentNumberOfSignatures(); // error - no call signatures +unionOfDifferentNumberOfSignatures(10); // error - no call signatures +unionOfDifferentNumberOfSignatures("hello"); // error - no call signatures +var unionWithDifferentParameterCount; +unionWithDifferentParameterCount(); // no call signature +unionWithDifferentParameterCount("hello"); // no call signature +unionWithDifferentParameterCount("hello", 10); // no call signature +var unionWithOptionalParameter1; +strOrNum = unionWithOptionalParameter1('hello'); +strOrNum = unionWithOptionalParameter1('hello', 10); +strOrNum = unionWithOptionalParameter1('hello', "hello"); // error in parameter type +strOrNum = unionWithOptionalParameter1(); // error +var unionWithOptionalParameter2; +strOrNum = unionWithOptionalParameter2('hello'); // error no call signature +strOrNum = unionWithOptionalParameter2('hello', 10); // error no call signature +strOrNum = unionWithOptionalParameter2('hello', "hello"); // error no call signature +strOrNum = unionWithOptionalParameter2(); // error no call signature +var unionWithOptionalParameter3; +strOrNum = unionWithOptionalParameter3('hello'); // error no call signature +strOrNum = unionWithOptionalParameter3('hello', 10); // error no call signature +strOrNum = unionWithOptionalParameter3('hello', "hello"); // error no call signature +strOrNum = unionWithOptionalParameter3(); // error no call signature +var unionWithRestParameter1; +strOrNum = unionWithRestParameter1('hello'); +strOrNum = unionWithRestParameter1('hello', 10); +strOrNum = unionWithRestParameter1('hello', 10, 11); +strOrNum = unionWithRestParameter1('hello', "hello"); // error in parameter type +strOrNum = unionWithRestParameter1(); // error +var unionWithRestParameter2; +strOrNum = unionWithRestParameter2('hello'); // error no call signature +strOrNum = unionWithRestParameter2('hello', 10); // error no call signature +strOrNum = unionWithRestParameter2('hello', 10, 11); // error no call signature +strOrNum = unionWithRestParameter2('hello', "hello"); // error no call signature +strOrNum = unionWithRestParameter2(); // error no call signature +var unionWithRestParameter3; +strOrNum = unionWithRestParameter3('hello'); // error no call signature +strOrNum = unionWithRestParameter3('hello', 10); // error no call signature +strOrNum = unionWithRestParameter3('hello', 10, 11); // error no call signature +strOrNum = unionWithRestParameter3('hello', "hello"); // error no call signature +strOrNum = unionWithRestParameter3(); // error no call signature diff --git a/tests/cases/conformance/types/union/unionTypeCallSignatures.ts b/tests/cases/conformance/types/union/unionTypeCallSignatures.ts new file mode 100644 index 00000000000..1261de3299e --- /dev/null +++ b/tests/cases/conformance/types/union/unionTypeCallSignatures.ts @@ -0,0 +1,70 @@ +var numOrDate: number | Date; +var strOrBoolean: string | boolean; +var strOrNum: string | number; + +// If each type in U has call signatures and the sets of call signatures are identical ignoring return types, +// U has the same set of call signatures, but with return types that are unions of the return types of the respective call signatures from each type in U. +var unionOfDifferentReturnType: { (a: number): number; } | { (a: number): Date; }; +numOrDate = unionOfDifferentReturnType(10); +strOrBoolean = unionOfDifferentReturnType("hello"); // error +unionOfDifferentReturnType1(true); // error in type of parameter + +var unionOfDifferentReturnType1: { (a: number): number; (a: string): string; } | { (a: number): Date; (a: string): boolean; }; +numOrDate = unionOfDifferentReturnType1(10); +strOrBoolean = unionOfDifferentReturnType1("hello"); +unionOfDifferentReturnType1(true); // error in type of parameter +unionOfDifferentReturnType1(); // error missing parameter + +var unionOfDifferentParameterTypes: { (a: number): number; } | { (a: string): Date; }; +unionOfDifferentParameterTypes(10);// error - no call signatures +unionOfDifferentParameterTypes("hello");// error - no call signatures +unionOfDifferentParameterTypes();// error - no call signatures + +var unionOfDifferentNumberOfSignatures: { (a: number): number; } | { (a: number): Date; (a: string): boolean; }; +unionOfDifferentNumberOfSignatures(); // error - no call signatures +unionOfDifferentNumberOfSignatures(10); // error - no call signatures +unionOfDifferentNumberOfSignatures("hello"); // error - no call signatures + + var unionWithDifferentParameterCount: { (a: string): string; } | { (a: string, b: number): number; } ; +unionWithDifferentParameterCount();// no call signature +unionWithDifferentParameterCount("hello");// no call signature +unionWithDifferentParameterCount("hello", 10);// no call signature + + var unionWithOptionalParameter1: { (a: string, b?: number): string; } | { (a: string, b?: number): number; }; +strOrNum = unionWithOptionalParameter1('hello'); +strOrNum = unionWithOptionalParameter1('hello', 10); +strOrNum = unionWithOptionalParameter1('hello', "hello"); // error in parameter type +strOrNum = unionWithOptionalParameter1(); // error + +var unionWithOptionalParameter2: { (a: string, b?: number): string; } | { (a: string, b: number): number }; +strOrNum = unionWithOptionalParameter2('hello'); // error no call signature +strOrNum = unionWithOptionalParameter2('hello', 10); // error no call signature +strOrNum = unionWithOptionalParameter2('hello', "hello"); // error no call signature +strOrNum = unionWithOptionalParameter2(); // error no call signature + +var unionWithOptionalParameter3: { (a: string, b?: number): string; } | { (a: string): number; }; +strOrNum = unionWithOptionalParameter3('hello'); // error no call signature +strOrNum = unionWithOptionalParameter3('hello', 10); // error no call signature +strOrNum = unionWithOptionalParameter3('hello', "hello"); // error no call signature +strOrNum = unionWithOptionalParameter3(); // error no call signature + +var unionWithRestParameter1: { (a: string, ...b: number[]): string; } | { (a: string, ...b: number[]): number }; +strOrNum = unionWithRestParameter1('hello'); +strOrNum = unionWithRestParameter1('hello', 10); +strOrNum = unionWithRestParameter1('hello', 10, 11); +strOrNum = unionWithRestParameter1('hello', "hello"); // error in parameter type +strOrNum = unionWithRestParameter1(); // error + +var unionWithRestParameter2: { (a: string, ...b: number[]): string; } | { (a: string, b: number): number }; +strOrNum = unionWithRestParameter2('hello'); // error no call signature +strOrNum = unionWithRestParameter2('hello', 10); // error no call signature +strOrNum = unionWithRestParameter2('hello', 10, 11); // error no call signature +strOrNum = unionWithRestParameter2('hello', "hello"); // error no call signature +strOrNum = unionWithRestParameter2(); // error no call signature + +var unionWithRestParameter3: { (a: string, ...b: number[]): string; } | { (a: string): number }; +strOrNum = unionWithRestParameter3('hello'); // error no call signature +strOrNum = unionWithRestParameter3('hello', 10); // error no call signature +strOrNum = unionWithRestParameter3('hello', 10, 11); // error no call signature +strOrNum = unionWithRestParameter3('hello', "hello"); // error no call signature +strOrNum = unionWithRestParameter3(); // error no call signature \ No newline at end of file From c2b2c306afbe44bd422138e254b2a0db486bc11f Mon Sep 17 00:00:00 2001 From: Sheetal Nandi Date: Mon, 3 Nov 2014 13:23:06 -0800 Subject: [PATCH 013/195] Tests for union of construct signatures If each type in U has construct signatures and the sets of construct signatures are identical ignoring return types, U has the same set of construct signatures, but with return types that are unions of the return types of the respective construct signatures from each type in U. --- .../unionTypeConstructSignatures.errors.txt | 178 ++++++++++++++++++ .../reference/unionTypeConstructSignatures.js | 132 +++++++++++++ .../union/unionTypeConstructSignatures.ts | 70 +++++++ 3 files changed, 380 insertions(+) create mode 100644 tests/baselines/reference/unionTypeConstructSignatures.errors.txt create mode 100644 tests/baselines/reference/unionTypeConstructSignatures.js create mode 100644 tests/cases/conformance/types/union/unionTypeConstructSignatures.ts diff --git a/tests/baselines/reference/unionTypeConstructSignatures.errors.txt b/tests/baselines/reference/unionTypeConstructSignatures.errors.txt new file mode 100644 index 00000000000..dd46564d779 --- /dev/null +++ b/tests/baselines/reference/unionTypeConstructSignatures.errors.txt @@ -0,0 +1,178 @@ +tests/cases/conformance/types/union/unionTypeConstructSignatures.ts(9,47): error TS2345: Argument of type 'string' is not assignable to parameter of type 'number'. +tests/cases/conformance/types/union/unionTypeConstructSignatures.ts(10,33): error TS2345: Argument of type 'boolean' is not assignable to parameter of type 'string'. +tests/cases/conformance/types/union/unionTypeConstructSignatures.ts(15,33): error TS2345: Argument of type 'boolean' is not assignable to parameter of type 'string'. +tests/cases/conformance/types/union/unionTypeConstructSignatures.ts(16,1): error TS2346: Supplied parameters do not match any signature of call target. +tests/cases/conformance/types/union/unionTypeConstructSignatures.ts(19,1): error TS2351: Cannot use 'new' with an expression whose type lacks a call or construct signature. +tests/cases/conformance/types/union/unionTypeConstructSignatures.ts(20,1): error TS2351: Cannot use 'new' with an expression whose type lacks a call or construct signature. +tests/cases/conformance/types/union/unionTypeConstructSignatures.ts(21,1): error TS2351: Cannot use 'new' with an expression whose type lacks a call or construct signature. +tests/cases/conformance/types/union/unionTypeConstructSignatures.ts(24,1): error TS2351: Cannot use 'new' with an expression whose type lacks a call or construct signature. +tests/cases/conformance/types/union/unionTypeConstructSignatures.ts(25,1): error TS2351: Cannot use 'new' with an expression whose type lacks a call or construct signature. +tests/cases/conformance/types/union/unionTypeConstructSignatures.ts(26,1): error TS2351: Cannot use 'new' with an expression whose type lacks a call or construct signature. +tests/cases/conformance/types/union/unionTypeConstructSignatures.ts(29,1): error TS2351: Cannot use 'new' with an expression whose type lacks a call or construct signature. +tests/cases/conformance/types/union/unionTypeConstructSignatures.ts(30,1): error TS2351: Cannot use 'new' with an expression whose type lacks a call or construct signature. +tests/cases/conformance/types/union/unionTypeConstructSignatures.ts(31,1): error TS2351: Cannot use 'new' with an expression whose type lacks a call or construct signature. +tests/cases/conformance/types/union/unionTypeConstructSignatures.ts(36,53): error TS2345: Argument of type 'string' is not assignable to parameter of type 'number'. +tests/cases/conformance/types/union/unionTypeConstructSignatures.ts(37,12): error TS2346: Supplied parameters do not match any signature of call target. +tests/cases/conformance/types/union/unionTypeConstructSignatures.ts(40,12): error TS2351: Cannot use 'new' with an expression whose type lacks a call or construct signature. +tests/cases/conformance/types/union/unionTypeConstructSignatures.ts(41,12): error TS2351: Cannot use 'new' with an expression whose type lacks a call or construct signature. +tests/cases/conformance/types/union/unionTypeConstructSignatures.ts(42,12): error TS2351: Cannot use 'new' with an expression whose type lacks a call or construct signature. +tests/cases/conformance/types/union/unionTypeConstructSignatures.ts(43,12): error TS2351: Cannot use 'new' with an expression whose type lacks a call or construct signature. +tests/cases/conformance/types/union/unionTypeConstructSignatures.ts(46,12): error TS2351: Cannot use 'new' with an expression whose type lacks a call or construct signature. +tests/cases/conformance/types/union/unionTypeConstructSignatures.ts(47,12): error TS2351: Cannot use 'new' with an expression whose type lacks a call or construct signature. +tests/cases/conformance/types/union/unionTypeConstructSignatures.ts(48,12): error TS2351: Cannot use 'new' with an expression whose type lacks a call or construct signature. +tests/cases/conformance/types/union/unionTypeConstructSignatures.ts(49,12): error TS2351: Cannot use 'new' with an expression whose type lacks a call or construct signature. +tests/cases/conformance/types/union/unionTypeConstructSignatures.ts(55,49): error TS2345: Argument of type 'string' is not assignable to parameter of type 'number'. +tests/cases/conformance/types/union/unionTypeConstructSignatures.ts(56,12): error TS2346: Supplied parameters do not match any signature of call target. +tests/cases/conformance/types/union/unionTypeConstructSignatures.ts(59,12): error TS2351: Cannot use 'new' with an expression whose type lacks a call or construct signature. +tests/cases/conformance/types/union/unionTypeConstructSignatures.ts(60,12): error TS2351: Cannot use 'new' with an expression whose type lacks a call or construct signature. +tests/cases/conformance/types/union/unionTypeConstructSignatures.ts(61,12): error TS2351: Cannot use 'new' with an expression whose type lacks a call or construct signature. +tests/cases/conformance/types/union/unionTypeConstructSignatures.ts(62,12): error TS2351: Cannot use 'new' with an expression whose type lacks a call or construct signature. +tests/cases/conformance/types/union/unionTypeConstructSignatures.ts(63,12): error TS2351: Cannot use 'new' with an expression whose type lacks a call or construct signature. +tests/cases/conformance/types/union/unionTypeConstructSignatures.ts(66,12): error TS2351: Cannot use 'new' with an expression whose type lacks a call or construct signature. +tests/cases/conformance/types/union/unionTypeConstructSignatures.ts(67,12): error TS2351: Cannot use 'new' with an expression whose type lacks a call or construct signature. +tests/cases/conformance/types/union/unionTypeConstructSignatures.ts(68,12): error TS2351: Cannot use 'new' with an expression whose type lacks a call or construct signature. +tests/cases/conformance/types/union/unionTypeConstructSignatures.ts(69,12): error TS2351: Cannot use 'new' with an expression whose type lacks a call or construct signature. +tests/cases/conformance/types/union/unionTypeConstructSignatures.ts(70,12): error TS2351: Cannot use 'new' with an expression whose type lacks a call or construct signature. + + +==== tests/cases/conformance/types/union/unionTypeConstructSignatures.ts (35 errors) ==== + var numOrDate: number | Date; + var strOrBoolean: string | boolean; + var strOrNum: string | number; + + // If each type in U has construct signatures and the sets of construct signatures are identical ignoring return types, + // U has the same set of construct signatures, but with return types that are unions of the return types of the respective construct signatures from each type in U. + var unionOfDifferentReturnType: { new (a: number): number; } | { new (a: number): Date; }; + numOrDate = new unionOfDifferentReturnType(10); + strOrBoolean = new unionOfDifferentReturnType("hello"); // error + ~~~~~~~ +!!! error TS2345: Argument of type 'string' is not assignable to parameter of type 'number'. + new unionOfDifferentReturnType1(true); // error in type of parameter + ~~~~ +!!! error TS2345: Argument of type 'boolean' is not assignable to parameter of type 'string'. + + var unionOfDifferentReturnType1: { new (a: number): number; new (a: string): string; } | { new (a: number): Date; new (a: string): boolean; }; + numOrDate = new unionOfDifferentReturnType1(10); + strOrBoolean = new unionOfDifferentReturnType1("hello"); + new unionOfDifferentReturnType1(true); // error in type of parameter + ~~~~ +!!! error TS2345: Argument of type 'boolean' is not assignable to parameter of type 'string'. + new unionOfDifferentReturnType1(); // error missing parameter + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +!!! error TS2346: Supplied parameters do not match any signature of call target. + + var unionOfDifferentParameterTypes: { new (a: number): number; } | { new (a: string): Date; }; + new unionOfDifferentParameterTypes(10);// error - no call signatures + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +!!! error TS2351: Cannot use 'new' with an expression whose type lacks a call or construct signature. + new unionOfDifferentParameterTypes("hello");// error - no call signatures + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +!!! error TS2351: Cannot use 'new' with an expression whose type lacks a call or construct signature. + new unionOfDifferentParameterTypes();// error - no call signatures + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +!!! error TS2351: Cannot use 'new' with an expression whose type lacks a call or construct signature. + + var unionOfDifferentNumberOfSignatures: { new (a: number): number; } | { new (a: number): Date; new (a: string): boolean; }; + new unionOfDifferentNumberOfSignatures(); // error - no call signatures + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +!!! error TS2351: Cannot use 'new' with an expression whose type lacks a call or construct signature. + new unionOfDifferentNumberOfSignatures(10); // error - no call signatures + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +!!! error TS2351: Cannot use 'new' with an expression whose type lacks a call or construct signature. + new unionOfDifferentNumberOfSignatures("hello"); // error - no call signatures + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +!!! error TS2351: Cannot use 'new' with an expression whose type lacks a call or construct signature. + + var unionWithDifferentParameterCount: { new (a: string): string; } | { new (a: string, b: number): number; }; + new unionWithDifferentParameterCount();// no call signature + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +!!! error TS2351: Cannot use 'new' with an expression whose type lacks a call or construct signature. + new unionWithDifferentParameterCount("hello");// no call signature + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +!!! error TS2351: Cannot use 'new' with an expression whose type lacks a call or construct signature. + new unionWithDifferentParameterCount("hello", 10);// no call signature + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +!!! error TS2351: Cannot use 'new' with an expression whose type lacks a call or construct signature. + + var unionWithOptionalParameter1: { new (a: string, b?: number): string; } | { new (a: string, b?: number): number; }; + strOrNum = new unionWithOptionalParameter1('hello'); + strOrNum = new unionWithOptionalParameter1('hello', 10); + strOrNum = new unionWithOptionalParameter1('hello', "hello"); // error in parameter type + ~~~~~~~ +!!! error TS2345: Argument of type 'string' is not assignable to parameter of type 'number'. + strOrNum = new unionWithOptionalParameter1(); // error + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +!!! error TS2346: Supplied parameters do not match any signature of call target. + + var unionWithOptionalParameter2: { new (a: string, b?: number): string; } | { new (a: string, b: number): number }; + strOrNum = new unionWithOptionalParameter2('hello'); // error no call signature + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +!!! error TS2351: Cannot use 'new' with an expression whose type lacks a call or construct signature. + strOrNum = new unionWithOptionalParameter2('hello', 10); // error no call signature + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +!!! error TS2351: Cannot use 'new' with an expression whose type lacks a call or construct signature. + strOrNum = new unionWithOptionalParameter2('hello', "hello"); // error no call signature + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +!!! error TS2351: Cannot use 'new' with an expression whose type lacks a call or construct signature. + strOrNum = new unionWithOptionalParameter2(); // error no call signature + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +!!! error TS2351: Cannot use 'new' with an expression whose type lacks a call or construct signature. + + var unionWithOptionalParameter3: { new (a: string, b?: number): string; } | { new (a: string): number; }; + strOrNum = new unionWithOptionalParameter3('hello'); // error no call signature + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +!!! error TS2351: Cannot use 'new' with an expression whose type lacks a call or construct signature. + strOrNum = new unionWithOptionalParameter3('hello', 10); // error no call signature + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +!!! error TS2351: Cannot use 'new' with an expression whose type lacks a call or construct signature. + strOrNum = new unionWithOptionalParameter3('hello', "hello"); // error no call signature + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +!!! error TS2351: Cannot use 'new' with an expression whose type lacks a call or construct signature. + strOrNum = new unionWithOptionalParameter3(); // error no call signature + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +!!! error TS2351: Cannot use 'new' with an expression whose type lacks a call or construct signature. + + var unionWithRestParameter1: { new (a: string, ...b: number[]): string; } | { new (a: string, ...b: number[]): number }; + strOrNum = new unionWithRestParameter1('hello'); + strOrNum = new unionWithRestParameter1('hello', 10); + strOrNum = new unionWithRestParameter1('hello', 10, 11); + strOrNum = new unionWithRestParameter1('hello', "hello"); // error in parameter type + ~~~~~~~ +!!! error TS2345: Argument of type 'string' is not assignable to parameter of type 'number'. + strOrNum = new unionWithRestParameter1(); // error + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +!!! error TS2346: Supplied parameters do not match any signature of call target. + + var unionWithRestParameter2: { new (a: string, ...b: number[]): string; } | { new (a: string, b: number): number }; + strOrNum = new unionWithRestParameter2('hello'); // error no call signature + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +!!! error TS2351: Cannot use 'new' with an expression whose type lacks a call or construct signature. + strOrNum = new unionWithRestParameter2('hello', 10); // error no call signature + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +!!! error TS2351: Cannot use 'new' with an expression whose type lacks a call or construct signature. + strOrNum = new unionWithRestParameter2('hello', 10, 11); // error no call signature + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +!!! error TS2351: Cannot use 'new' with an expression whose type lacks a call or construct signature. + strOrNum = new unionWithRestParameter2('hello', "hello"); // error no call signature + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +!!! error TS2351: Cannot use 'new' with an expression whose type lacks a call or construct signature. + strOrNum = new unionWithRestParameter2(); // error no call signature + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +!!! error TS2351: Cannot use 'new' with an expression whose type lacks a call or construct signature. + + var unionWithRestParameter3: { new (a: string, ...b: number[]): string; } | { new (a: string): number }; + strOrNum = new unionWithRestParameter3('hello'); // error no call signature + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +!!! error TS2351: Cannot use 'new' with an expression whose type lacks a call or construct signature. + strOrNum = new unionWithRestParameter3('hello', 10); // error no call signature + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +!!! error TS2351: Cannot use 'new' with an expression whose type lacks a call or construct signature. + strOrNum = new unionWithRestParameter3('hello', 10, 11); // error no call signature + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +!!! error TS2351: Cannot use 'new' with an expression whose type lacks a call or construct signature. + strOrNum = new unionWithRestParameter3('hello', "hello"); // error no call signature + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +!!! error TS2351: Cannot use 'new' with an expression whose type lacks a call or construct signature. + strOrNum = new unionWithRestParameter3(); // error no call signature + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +!!! error TS2351: Cannot use 'new' with an expression whose type lacks a call or construct signature. \ No newline at end of file diff --git a/tests/baselines/reference/unionTypeConstructSignatures.js b/tests/baselines/reference/unionTypeConstructSignatures.js new file mode 100644 index 00000000000..83c3df44603 --- /dev/null +++ b/tests/baselines/reference/unionTypeConstructSignatures.js @@ -0,0 +1,132 @@ +//// [unionTypeConstructSignatures.ts] +var numOrDate: number | Date; +var strOrBoolean: string | boolean; +var strOrNum: string | number; + +// If each type in U has construct signatures and the sets of construct signatures are identical ignoring return types, +// U has the same set of construct signatures, but with return types that are unions of the return types of the respective construct signatures from each type in U. +var unionOfDifferentReturnType: { new (a: number): number; } | { new (a: number): Date; }; +numOrDate = new unionOfDifferentReturnType(10); +strOrBoolean = new unionOfDifferentReturnType("hello"); // error +new unionOfDifferentReturnType1(true); // error in type of parameter + +var unionOfDifferentReturnType1: { new (a: number): number; new (a: string): string; } | { new (a: number): Date; new (a: string): boolean; }; +numOrDate = new unionOfDifferentReturnType1(10); +strOrBoolean = new unionOfDifferentReturnType1("hello"); +new unionOfDifferentReturnType1(true); // error in type of parameter +new unionOfDifferentReturnType1(); // error missing parameter + +var unionOfDifferentParameterTypes: { new (a: number): number; } | { new (a: string): Date; }; +new unionOfDifferentParameterTypes(10);// error - no call signatures +new unionOfDifferentParameterTypes("hello");// error - no call signatures +new unionOfDifferentParameterTypes();// error - no call signatures + +var unionOfDifferentNumberOfSignatures: { new (a: number): number; } | { new (a: number): Date; new (a: string): boolean; }; +new unionOfDifferentNumberOfSignatures(); // error - no call signatures +new unionOfDifferentNumberOfSignatures(10); // error - no call signatures +new unionOfDifferentNumberOfSignatures("hello"); // error - no call signatures + +var unionWithDifferentParameterCount: { new (a: string): string; } | { new (a: string, b: number): number; }; +new unionWithDifferentParameterCount();// no call signature +new unionWithDifferentParameterCount("hello");// no call signature +new unionWithDifferentParameterCount("hello", 10);// no call signature + +var unionWithOptionalParameter1: { new (a: string, b?: number): string; } | { new (a: string, b?: number): number; }; +strOrNum = new unionWithOptionalParameter1('hello'); +strOrNum = new unionWithOptionalParameter1('hello', 10); +strOrNum = new unionWithOptionalParameter1('hello', "hello"); // error in parameter type +strOrNum = new unionWithOptionalParameter1(); // error + +var unionWithOptionalParameter2: { new (a: string, b?: number): string; } | { new (a: string, b: number): number }; +strOrNum = new unionWithOptionalParameter2('hello'); // error no call signature +strOrNum = new unionWithOptionalParameter2('hello', 10); // error no call signature +strOrNum = new unionWithOptionalParameter2('hello', "hello"); // error no call signature +strOrNum = new unionWithOptionalParameter2(); // error no call signature + +var unionWithOptionalParameter3: { new (a: string, b?: number): string; } | { new (a: string): number; }; +strOrNum = new unionWithOptionalParameter3('hello'); // error no call signature +strOrNum = new unionWithOptionalParameter3('hello', 10); // error no call signature +strOrNum = new unionWithOptionalParameter3('hello', "hello"); // error no call signature +strOrNum = new unionWithOptionalParameter3(); // error no call signature + +var unionWithRestParameter1: { new (a: string, ...b: number[]): string; } | { new (a: string, ...b: number[]): number }; +strOrNum = new unionWithRestParameter1('hello'); +strOrNum = new unionWithRestParameter1('hello', 10); +strOrNum = new unionWithRestParameter1('hello', 10, 11); +strOrNum = new unionWithRestParameter1('hello', "hello"); // error in parameter type +strOrNum = new unionWithRestParameter1(); // error + +var unionWithRestParameter2: { new (a: string, ...b: number[]): string; } | { new (a: string, b: number): number }; +strOrNum = new unionWithRestParameter2('hello'); // error no call signature +strOrNum = new unionWithRestParameter2('hello', 10); // error no call signature +strOrNum = new unionWithRestParameter2('hello', 10, 11); // error no call signature +strOrNum = new unionWithRestParameter2('hello', "hello"); // error no call signature +strOrNum = new unionWithRestParameter2(); // error no call signature + +var unionWithRestParameter3: { new (a: string, ...b: number[]): string; } | { new (a: string): number }; +strOrNum = new unionWithRestParameter3('hello'); // error no call signature +strOrNum = new unionWithRestParameter3('hello', 10); // error no call signature +strOrNum = new unionWithRestParameter3('hello', 10, 11); // error no call signature +strOrNum = new unionWithRestParameter3('hello', "hello"); // error no call signature +strOrNum = new unionWithRestParameter3(); // error no call signature + +//// [unionTypeConstructSignatures.js] +var numOrDate; +var strOrBoolean; +var strOrNum; +// If each type in U has construct signatures and the sets of construct signatures are identical ignoring return types, +// U has the same set of construct signatures, but with return types that are unions of the return types of the respective construct signatures from each type in U. +var unionOfDifferentReturnType; +numOrDate = new unionOfDifferentReturnType(10); +strOrBoolean = new unionOfDifferentReturnType("hello"); // error +new unionOfDifferentReturnType1(true); // error in type of parameter +var unionOfDifferentReturnType1; +numOrDate = new unionOfDifferentReturnType1(10); +strOrBoolean = new unionOfDifferentReturnType1("hello"); +new unionOfDifferentReturnType1(true); // error in type of parameter +new unionOfDifferentReturnType1(); // error missing parameter +var unionOfDifferentParameterTypes; +new unionOfDifferentParameterTypes(10); // error - no call signatures +new unionOfDifferentParameterTypes("hello"); // error - no call signatures +new unionOfDifferentParameterTypes(); // error - no call signatures +var unionOfDifferentNumberOfSignatures; +new unionOfDifferentNumberOfSignatures(); // error - no call signatures +new unionOfDifferentNumberOfSignatures(10); // error - no call signatures +new unionOfDifferentNumberOfSignatures("hello"); // error - no call signatures +var unionWithDifferentParameterCount; +new unionWithDifferentParameterCount(); // no call signature +new unionWithDifferentParameterCount("hello"); // no call signature +new unionWithDifferentParameterCount("hello", 10); // no call signature +var unionWithOptionalParameter1; +strOrNum = new unionWithOptionalParameter1('hello'); +strOrNum = new unionWithOptionalParameter1('hello', 10); +strOrNum = new unionWithOptionalParameter1('hello', "hello"); // error in parameter type +strOrNum = new unionWithOptionalParameter1(); // error +var unionWithOptionalParameter2; +strOrNum = new unionWithOptionalParameter2('hello'); // error no call signature +strOrNum = new unionWithOptionalParameter2('hello', 10); // error no call signature +strOrNum = new unionWithOptionalParameter2('hello', "hello"); // error no call signature +strOrNum = new unionWithOptionalParameter2(); // error no call signature +var unionWithOptionalParameter3; +strOrNum = new unionWithOptionalParameter3('hello'); // error no call signature +strOrNum = new unionWithOptionalParameter3('hello', 10); // error no call signature +strOrNum = new unionWithOptionalParameter3('hello', "hello"); // error no call signature +strOrNum = new unionWithOptionalParameter3(); // error no call signature +var unionWithRestParameter1; +strOrNum = new unionWithRestParameter1('hello'); +strOrNum = new unionWithRestParameter1('hello', 10); +strOrNum = new unionWithRestParameter1('hello', 10, 11); +strOrNum = new unionWithRestParameter1('hello', "hello"); // error in parameter type +strOrNum = new unionWithRestParameter1(); // error +var unionWithRestParameter2; +strOrNum = new unionWithRestParameter2('hello'); // error no call signature +strOrNum = new unionWithRestParameter2('hello', 10); // error no call signature +strOrNum = new unionWithRestParameter2('hello', 10, 11); // error no call signature +strOrNum = new unionWithRestParameter2('hello', "hello"); // error no call signature +strOrNum = new unionWithRestParameter2(); // error no call signature +var unionWithRestParameter3; +strOrNum = new unionWithRestParameter3('hello'); // error no call signature +strOrNum = new unionWithRestParameter3('hello', 10); // error no call signature +strOrNum = new unionWithRestParameter3('hello', 10, 11); // error no call signature +strOrNum = new unionWithRestParameter3('hello', "hello"); // error no call signature +strOrNum = new unionWithRestParameter3(); // error no call signature diff --git a/tests/cases/conformance/types/union/unionTypeConstructSignatures.ts b/tests/cases/conformance/types/union/unionTypeConstructSignatures.ts new file mode 100644 index 00000000000..a02ba610ff7 --- /dev/null +++ b/tests/cases/conformance/types/union/unionTypeConstructSignatures.ts @@ -0,0 +1,70 @@ +var numOrDate: number | Date; +var strOrBoolean: string | boolean; +var strOrNum: string | number; + +// If each type in U has construct signatures and the sets of construct signatures are identical ignoring return types, +// U has the same set of construct signatures, but with return types that are unions of the return types of the respective construct signatures from each type in U. +var unionOfDifferentReturnType: { new (a: number): number; } | { new (a: number): Date; }; +numOrDate = new unionOfDifferentReturnType(10); +strOrBoolean = new unionOfDifferentReturnType("hello"); // error +new unionOfDifferentReturnType1(true); // error in type of parameter + +var unionOfDifferentReturnType1: { new (a: number): number; new (a: string): string; } | { new (a: number): Date; new (a: string): boolean; }; +numOrDate = new unionOfDifferentReturnType1(10); +strOrBoolean = new unionOfDifferentReturnType1("hello"); +new unionOfDifferentReturnType1(true); // error in type of parameter +new unionOfDifferentReturnType1(); // error missing parameter + +var unionOfDifferentParameterTypes: { new (a: number): number; } | { new (a: string): Date; }; +new unionOfDifferentParameterTypes(10);// error - no call signatures +new unionOfDifferentParameterTypes("hello");// error - no call signatures +new unionOfDifferentParameterTypes();// error - no call signatures + +var unionOfDifferentNumberOfSignatures: { new (a: number): number; } | { new (a: number): Date; new (a: string): boolean; }; +new unionOfDifferentNumberOfSignatures(); // error - no call signatures +new unionOfDifferentNumberOfSignatures(10); // error - no call signatures +new unionOfDifferentNumberOfSignatures("hello"); // error - no call signatures + +var unionWithDifferentParameterCount: { new (a: string): string; } | { new (a: string, b: number): number; }; +new unionWithDifferentParameterCount();// no call signature +new unionWithDifferentParameterCount("hello");// no call signature +new unionWithDifferentParameterCount("hello", 10);// no call signature + +var unionWithOptionalParameter1: { new (a: string, b?: number): string; } | { new (a: string, b?: number): number; }; +strOrNum = new unionWithOptionalParameter1('hello'); +strOrNum = new unionWithOptionalParameter1('hello', 10); +strOrNum = new unionWithOptionalParameter1('hello', "hello"); // error in parameter type +strOrNum = new unionWithOptionalParameter1(); // error + +var unionWithOptionalParameter2: { new (a: string, b?: number): string; } | { new (a: string, b: number): number }; +strOrNum = new unionWithOptionalParameter2('hello'); // error no call signature +strOrNum = new unionWithOptionalParameter2('hello', 10); // error no call signature +strOrNum = new unionWithOptionalParameter2('hello', "hello"); // error no call signature +strOrNum = new unionWithOptionalParameter2(); // error no call signature + +var unionWithOptionalParameter3: { new (a: string, b?: number): string; } | { new (a: string): number; }; +strOrNum = new unionWithOptionalParameter3('hello'); // error no call signature +strOrNum = new unionWithOptionalParameter3('hello', 10); // error no call signature +strOrNum = new unionWithOptionalParameter3('hello', "hello"); // error no call signature +strOrNum = new unionWithOptionalParameter3(); // error no call signature + +var unionWithRestParameter1: { new (a: string, ...b: number[]): string; } | { new (a: string, ...b: number[]): number }; +strOrNum = new unionWithRestParameter1('hello'); +strOrNum = new unionWithRestParameter1('hello', 10); +strOrNum = new unionWithRestParameter1('hello', 10, 11); +strOrNum = new unionWithRestParameter1('hello', "hello"); // error in parameter type +strOrNum = new unionWithRestParameter1(); // error + +var unionWithRestParameter2: { new (a: string, ...b: number[]): string; } | { new (a: string, b: number): number }; +strOrNum = new unionWithRestParameter2('hello'); // error no call signature +strOrNum = new unionWithRestParameter2('hello', 10); // error no call signature +strOrNum = new unionWithRestParameter2('hello', 10, 11); // error no call signature +strOrNum = new unionWithRestParameter2('hello', "hello"); // error no call signature +strOrNum = new unionWithRestParameter2(); // error no call signature + +var unionWithRestParameter3: { new (a: string, ...b: number[]): string; } | { new (a: string): number }; +strOrNum = new unionWithRestParameter3('hello'); // error no call signature +strOrNum = new unionWithRestParameter3('hello', 10); // error no call signature +strOrNum = new unionWithRestParameter3('hello', 10, 11); // error no call signature +strOrNum = new unionWithRestParameter3('hello', "hello"); // error no call signature +strOrNum = new unionWithRestParameter3(); // error no call signature \ No newline at end of file From 49b5b5ab994b3e05924947a8eca2ba43d65cf006 Mon Sep 17 00:00:00 2001 From: Sheetal Nandi Date: Mon, 3 Nov 2014 13:36:06 -0800 Subject: [PATCH 014/195] =?UTF-8?q?Tests=20for=20union=20of=20index=20sign?= =?UTF-8?q?atures:=20=E2=80=A2=09If=20each=20type=20in=20U=20has=20a=20str?= =?UTF-8?q?ing=20index=20signature,=20U=20has=20a=20string=20index=20signa?= =?UTF-8?q?ture=20of=20a=20union=20type=20of=20the=20types=20of=20the=20st?= =?UTF-8?q?ring=20index=20signatures=20from=20each=20type=20in=20U.=20?= =?UTF-8?q?=E2=80=A2=09If=20each=20type=20in=20U=20has=20a=20numeric=20ind?= =?UTF-8?q?ex=20signature,=20U=20has=20a=20numeric=20index=20signature=20o?= =?UTF-8?q?f=20a=20union=20type=20of=20the=20types=20of=20the=20numeric=20?= =?UTF-8?q?index=20signatures=20from=20each=20type=20in=20U.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../reference/unionTypeIndexSignature.js | 44 ++++++++++ .../reference/unionTypeIndexSignature.types | 81 +++++++++++++++++++ .../types/union/unionTypeIndexSignature.ts | 23 ++++++ 3 files changed, 148 insertions(+) create mode 100644 tests/baselines/reference/unionTypeIndexSignature.js create mode 100644 tests/baselines/reference/unionTypeIndexSignature.types create mode 100644 tests/cases/conformance/types/union/unionTypeIndexSignature.ts diff --git a/tests/baselines/reference/unionTypeIndexSignature.js b/tests/baselines/reference/unionTypeIndexSignature.js new file mode 100644 index 00000000000..b39a42e76a4 --- /dev/null +++ b/tests/baselines/reference/unionTypeIndexSignature.js @@ -0,0 +1,44 @@ +//// [unionTypeIndexSignature.ts] +var numOrDate: number | Date; +var anyVar: number; + +// If each type in U has a string index signature, +// U has a string index signature of a union type of the types of the string index signatures from each type in U. + +var unionOfDifferentReturnType: { [a: string]: number; } | { [a: string]: Date; }; +numOrDate = unionOfDifferentReturnType["hello"]; // number | Date +numOrDate = unionOfDifferentReturnType[10]; // number | Date + +var unionOfTypesWithAndWithoutStringSignature: { [a: string]: number; } | boolean; +anyVar = unionOfTypesWithAndWithoutStringSignature["hello"]; // any +anyVar = unionOfTypesWithAndWithoutStringSignature[10]; // any + +// If each type in U has a numeric index signature, +// U has a numeric index signature of a union type of the types of the numeric index signatures from each type in U. +var unionOfDifferentReturnType1: { [a: number]: number; } | { [a: number]: Date; }; +numOrDate = unionOfDifferentReturnType1["hello"]; // any +numOrDate = unionOfDifferentReturnType1[10]; // number | Date + +var unionOfTypesWithAndWithoutStringSignature1: { [a: number]: number; } | boolean; +anyVar = unionOfTypesWithAndWithoutStringSignature1["hello"]; // any +anyVar = unionOfTypesWithAndWithoutStringSignature1[10]; // any + +//// [unionTypeIndexSignature.js] +var numOrDate; +var anyVar; +// If each type in U has a string index signature, +// U has a string index signature of a union type of the types of the string index signatures from each type in U. +var unionOfDifferentReturnType; +numOrDate = unionOfDifferentReturnType["hello"]; // number | Date +numOrDate = unionOfDifferentReturnType[10]; // number | Date +var unionOfTypesWithAndWithoutStringSignature; +anyVar = unionOfTypesWithAndWithoutStringSignature["hello"]; // any +anyVar = unionOfTypesWithAndWithoutStringSignature[10]; // any +// If each type in U has a numeric index signature, +// U has a numeric index signature of a union type of the types of the numeric index signatures from each type in U. +var unionOfDifferentReturnType1; +numOrDate = unionOfDifferentReturnType1["hello"]; // any +numOrDate = unionOfDifferentReturnType1[10]; // number | Date +var unionOfTypesWithAndWithoutStringSignature1; +anyVar = unionOfTypesWithAndWithoutStringSignature1["hello"]; // any +anyVar = unionOfTypesWithAndWithoutStringSignature1[10]; // any diff --git a/tests/baselines/reference/unionTypeIndexSignature.types b/tests/baselines/reference/unionTypeIndexSignature.types new file mode 100644 index 00000000000..96453cffcb4 --- /dev/null +++ b/tests/baselines/reference/unionTypeIndexSignature.types @@ -0,0 +1,81 @@ +=== tests/cases/conformance/types/union/unionTypeIndexSignature.ts === +var numOrDate: number | Date; +>numOrDate : number | Date +>Date : Date + +var anyVar: number; +>anyVar : number + +// If each type in U has a string index signature, +// U has a string index signature of a union type of the types of the string index signatures from each type in U. + +var unionOfDifferentReturnType: { [a: string]: number; } | { [a: string]: Date; }; +>unionOfDifferentReturnType : { [x: string]: number; } | { [x: string]: Date; } +>a : string +>a : string +>Date : Date + +numOrDate = unionOfDifferentReturnType["hello"]; // number | Date +>numOrDate = unionOfDifferentReturnType["hello"] : number | Date +>numOrDate : number | Date +>unionOfDifferentReturnType["hello"] : number | Date +>unionOfDifferentReturnType : { [x: string]: number; } | { [x: string]: Date; } + +numOrDate = unionOfDifferentReturnType[10]; // number | Date +>numOrDate = unionOfDifferentReturnType[10] : number | Date +>numOrDate : number | Date +>unionOfDifferentReturnType[10] : number | Date +>unionOfDifferentReturnType : { [x: string]: number; } | { [x: string]: Date; } + +var unionOfTypesWithAndWithoutStringSignature: { [a: string]: number; } | boolean; +>unionOfTypesWithAndWithoutStringSignature : boolean | { [x: string]: number; } +>a : string + +anyVar = unionOfTypesWithAndWithoutStringSignature["hello"]; // any +>anyVar = unionOfTypesWithAndWithoutStringSignature["hello"] : any +>anyVar : number +>unionOfTypesWithAndWithoutStringSignature["hello"] : any +>unionOfTypesWithAndWithoutStringSignature : boolean | { [x: string]: number; } + +anyVar = unionOfTypesWithAndWithoutStringSignature[10]; // any +>anyVar = unionOfTypesWithAndWithoutStringSignature[10] : any +>anyVar : number +>unionOfTypesWithAndWithoutStringSignature[10] : any +>unionOfTypesWithAndWithoutStringSignature : boolean | { [x: string]: number; } + +// If each type in U has a numeric index signature, +// U has a numeric index signature of a union type of the types of the numeric index signatures from each type in U. +var unionOfDifferentReturnType1: { [a: number]: number; } | { [a: number]: Date; }; +>unionOfDifferentReturnType1 : { [x: number]: number; } | { [x: number]: Date; } +>a : number +>a : number +>Date : Date + +numOrDate = unionOfDifferentReturnType1["hello"]; // any +>numOrDate = unionOfDifferentReturnType1["hello"] : any +>numOrDate : number | Date +>unionOfDifferentReturnType1["hello"] : any +>unionOfDifferentReturnType1 : { [x: number]: number; } | { [x: number]: Date; } + +numOrDate = unionOfDifferentReturnType1[10]; // number | Date +>numOrDate = unionOfDifferentReturnType1[10] : number | Date +>numOrDate : number | Date +>unionOfDifferentReturnType1[10] : number | Date +>unionOfDifferentReturnType1 : { [x: number]: number; } | { [x: number]: Date; } + +var unionOfTypesWithAndWithoutStringSignature1: { [a: number]: number; } | boolean; +>unionOfTypesWithAndWithoutStringSignature1 : boolean | { [x: number]: number; } +>a : number + +anyVar = unionOfTypesWithAndWithoutStringSignature1["hello"]; // any +>anyVar = unionOfTypesWithAndWithoutStringSignature1["hello"] : any +>anyVar : number +>unionOfTypesWithAndWithoutStringSignature1["hello"] : any +>unionOfTypesWithAndWithoutStringSignature1 : boolean | { [x: number]: number; } + +anyVar = unionOfTypesWithAndWithoutStringSignature1[10]; // any +>anyVar = unionOfTypesWithAndWithoutStringSignature1[10] : any +>anyVar : number +>unionOfTypesWithAndWithoutStringSignature1[10] : any +>unionOfTypesWithAndWithoutStringSignature1 : boolean | { [x: number]: number; } + diff --git a/tests/cases/conformance/types/union/unionTypeIndexSignature.ts b/tests/cases/conformance/types/union/unionTypeIndexSignature.ts new file mode 100644 index 00000000000..698da7449f4 --- /dev/null +++ b/tests/cases/conformance/types/union/unionTypeIndexSignature.ts @@ -0,0 +1,23 @@ +var numOrDate: number | Date; +var anyVar: number; + +// If each type in U has a string index signature, +// U has a string index signature of a union type of the types of the string index signatures from each type in U. + +var unionOfDifferentReturnType: { [a: string]: number; } | { [a: string]: Date; }; +numOrDate = unionOfDifferentReturnType["hello"]; // number | Date +numOrDate = unionOfDifferentReturnType[10]; // number | Date + +var unionOfTypesWithAndWithoutStringSignature: { [a: string]: number; } | boolean; +anyVar = unionOfTypesWithAndWithoutStringSignature["hello"]; // any +anyVar = unionOfTypesWithAndWithoutStringSignature[10]; // any + +// If each type in U has a numeric index signature, +// U has a numeric index signature of a union type of the types of the numeric index signatures from each type in U. +var unionOfDifferentReturnType1: { [a: number]: number; } | { [a: number]: Date; }; +numOrDate = unionOfDifferentReturnType1["hello"]; // any +numOrDate = unionOfDifferentReturnType1[10]; // number | Date + +var unionOfTypesWithAndWithoutStringSignature1: { [a: number]: number; } | boolean; +anyVar = unionOfTypesWithAndWithoutStringSignature1["hello"]; // any +anyVar = unionOfTypesWithAndWithoutStringSignature1[10]; // any \ No newline at end of file From b66cd9b0fc9d69d82c2142fdc14e2352e560a499 Mon Sep 17 00:00:00 2001 From: Sheetal Nandi Date: Mon, 3 Nov 2014 15:59:57 -0800 Subject: [PATCH 015/195] Results of || operation produces union type --- .../logicalOrOperatorWithEveryType.js | 160 +++++++++--------- .../logicalOrOperatorWithEveryType.types | 80 ++++----- .../logicalOrOperatorWithEveryType.ts | 80 ++++----- 3 files changed, 160 insertions(+), 160 deletions(-) diff --git a/tests/baselines/reference/logicalOrOperatorWithEveryType.js b/tests/baselines/reference/logicalOrOperatorWithEveryType.js index bf7a641882e..78601374c22 100644 --- a/tests/baselines/reference/logicalOrOperatorWithEveryType.js +++ b/tests/baselines/reference/logicalOrOperatorWithEveryType.js @@ -28,77 +28,77 @@ var ra10 = undefined || a1; // undefined || any is any var rb1 = a1 || a2; // any || boolean is any var rb2 = a2 || a2; // boolean || boolean is boolean -var rb3 = a3 || a2; // number || boolean is {} -var rb4 = a4 || a2; // string || boolean is {} -var rb5 = a5 || a2; // void || boolean is {} -var rb6 = a6 || a2; // enum || boolean is {} -var rb7 = a7 || a2; // object || boolean is {} -var rb8 = a8 || a2; // array || boolean is {} +var rb3 = a3 || a2; // number || boolean is number | boolean +var rb4 = a4 || a2; // string || boolean is string | boolean +var rb5 = a5 || a2; // void || boolean is void | boolean +var rb6 = a6 || a2; // enum || boolean is E | boolean +var rb7 = a7 || a2; // object || boolean is object | boolean +var rb8 = a8 || a2; // array || boolean is array | boolean var rb9 = null || a2; // null || boolean is boolean var rb10= undefined || a2; // undefined || boolean is boolean var rc1 = a1 || a3; // any || number is any -var rc2 = a2 || a3; // boolean || number is {} +var rc2 = a2 || a3; // boolean || number is boolean | number var rc3 = a3 || a3; // number || number is number -var rc4 = a4 || a3; // string || number is {} -var rc5 = a5 || a3; // void || number is {} +var rc4 = a4 || a3; // string || number is string | number +var rc5 = a5 || a3; // void || number is void | number var rc6 = a6 || a3; // enum || number is number -var rc7 = a7 || a3; // object || number is {} -var rc8 = a8 || a3; // array || number is {} +var rc7 = a7 || a3; // object || number is object | number +var rc8 = a8 || a3; // array || number is array | number var rc9 = null || a3; // null || number is number var rc10 = undefined || a3; // undefined || number is number var rd1 = a1 || a4; // any || string is any -var rd2 = a2 || a4; // boolean || string is {} -var rd3 = a3 || a4; // number || string is {} +var rd2 = a2 || a4; // boolean || string is boolean | string +var rd3 = a3 || a4; // number || string is number | string var rd4 = a4 || a4; // string || string is string -var rd5 = a5 || a4; // void || string is {} -var rd6 = a6 || a4; // enum || string is {} -var rd7 = a7 || a4; // object || string is {} -var rd8 = a8 || a4; // array || string is {} +var rd5 = a5 || a4; // void || string is void | string +var rd6 = a6 || a4; // enum || string is enum | string +var rd7 = a7 || a4; // object || string is object | string +var rd8 = a8 || a4; // array || string is array | string var rd9 = null || a4; // null || string is string var rd10 = undefined || a4; // undefined || string is string var re1 = a1 || a5; // any || void is any -var re2 = a2 || a5; // boolean || void is {} -var re3 = a3 || a5; // number || void is {} -var re4 = a4 || a5; // string || void is {} +var re2 = a2 || a5; // boolean || void is boolean | void +var re3 = a3 || a5; // number || void is number | void +var re4 = a4 || a5; // string || void is string | void var re5 = a5 || a5; // void || void is void -var re6 = a6 || a5; // enum || void is {} -var re7 = a7 || a5; // object || void is {} -var re8 = a8 || a5; // array || void is {} +var re6 = a6 || a5; // enum || void is enum | void +var re7 = a7 || a5; // object || void is object | void +var re8 = a8 || a5; // array || void is array | void var re9 = null || a5; // null || void is void var re10 = undefined || a5; // undefined || void is void var rg1 = a1 || a6; // any || enum is any -var rg2 = a2 || a6; // boolean || enum is {} +var rg2 = a2 || a6; // boolean || enum is boolean | enum var rg3 = a3 || a6; // number || enum is number -var rg4 = a4 || a6; // string || enum is {} -var rg5 = a5 || a6; // void || enum is {} +var rg4 = a4 || a6; // string || enum is string | enum +var rg5 = a5 || a6; // void || enum is void | enum var rg6 = a6 || a6; // enum || enum is E -var rg7 = a7 || a6; // object || enum is {} -var rg8 = a8 || a6; // array || enum is {} +var rg7 = a7 || a6; // object || enum is object | enum +var rg8 = a8 || a6; // array || enum is array | enum var rg9 = null || a6; // null || enum is E var rg10 = undefined || a6; // undefined || enum is E var rh1 = a1 || a7; // any || object is any -var rh2 = a2 || a7; // boolean || object is {} -var rh3 = a3 || a7; // number || object is {} -var rh4 = a4 || a7; // string || object is {} -var rh5 = a5 || a7; // void || object is {} -var rh6 = a6 || a7; // enum || object is {} +var rh2 = a2 || a7; // boolean || object is boolean | object +var rh3 = a3 || a7; // number || object is number | object +var rh4 = a4 || a7; // string || object is string | object +var rh5 = a5 || a7; // void || object is void | object +var rh6 = a6 || a7; // enum || object is enum | object var rh7 = a7 || a7; // object || object is object -var rh8 = a8 || a7; // array || object is {} +var rh8 = a8 || a7; // array || object is array | object var rh9 = null || a7; // null || object is object var rh10 = undefined || a7; // undefined || object is object var ri1 = a1 || a8; // any || array is any -var ri2 = a2 || a8; // boolean || array is {} -var ri3 = a3 || a8; // number || array is {} -var ri4 = a4 || a8; // string || array is {} -var ri5 = a5 || a8; // void || array is {} -var ri6 = a6 || a8; // enum || array is {} -var ri7 = a7 || a8; // object || array is {} +var ri2 = a2 || a8; // boolean || array is boolean | array +var ri3 = a3 || a8; // number || array is number | array +var ri4 = a4 || a8; // string || array is string | array +var ri5 = a5 || a8; // void || array is void | array +var ri6 = a6 || a8; // enum || array is enum | array +var ri7 = a7 || a8; // object || array is object | array var ri8 = a8 || a8; // array || array is array var ri9 = null || a8; // null || array is array var ri10 = undefined || a8; // undefined || array is array @@ -156,71 +156,71 @@ var ra9 = null || a1; // null || any is any var ra10 = undefined || a1; // undefined || any is any var rb1 = a1 || a2; // any || boolean is any var rb2 = a2 || a2; // boolean || boolean is boolean -var rb3 = a3 || a2; // number || boolean is {} -var rb4 = a4 || a2; // string || boolean is {} -var rb5 = a5 || a2; // void || boolean is {} -var rb6 = a6 || a2; // enum || boolean is {} -var rb7 = a7 || a2; // object || boolean is {} -var rb8 = a8 || a2; // array || boolean is {} +var rb3 = a3 || a2; // number || boolean is number | boolean +var rb4 = a4 || a2; // string || boolean is string | boolean +var rb5 = a5 || a2; // void || boolean is void | boolean +var rb6 = a6 || a2; // enum || boolean is E | boolean +var rb7 = a7 || a2; // object || boolean is object | boolean +var rb8 = a8 || a2; // array || boolean is array | boolean var rb9 = null || a2; // null || boolean is boolean var rb10 = undefined || a2; // undefined || boolean is boolean var rc1 = a1 || a3; // any || number is any -var rc2 = a2 || a3; // boolean || number is {} +var rc2 = a2 || a3; // boolean || number is boolean | number var rc3 = a3 || a3; // number || number is number -var rc4 = a4 || a3; // string || number is {} -var rc5 = a5 || a3; // void || number is {} +var rc4 = a4 || a3; // string || number is string | number +var rc5 = a5 || a3; // void || number is void | number var rc6 = a6 || a3; // enum || number is number -var rc7 = a7 || a3; // object || number is {} -var rc8 = a8 || a3; // array || number is {} +var rc7 = a7 || a3; // object || number is object | number +var rc8 = a8 || a3; // array || number is array | number var rc9 = null || a3; // null || number is number var rc10 = undefined || a3; // undefined || number is number var rd1 = a1 || a4; // any || string is any -var rd2 = a2 || a4; // boolean || string is {} -var rd3 = a3 || a4; // number || string is {} +var rd2 = a2 || a4; // boolean || string is boolean | string +var rd3 = a3 || a4; // number || string is number | string var rd4 = a4 || a4; // string || string is string -var rd5 = a5 || a4; // void || string is {} -var rd6 = a6 || a4; // enum || string is {} -var rd7 = a7 || a4; // object || string is {} -var rd8 = a8 || a4; // array || string is {} +var rd5 = a5 || a4; // void || string is void | string +var rd6 = a6 || a4; // enum || string is enum | string +var rd7 = a7 || a4; // object || string is object | string +var rd8 = a8 || a4; // array || string is array | string var rd9 = null || a4; // null || string is string var rd10 = undefined || a4; // undefined || string is string var re1 = a1 || a5; // any || void is any -var re2 = a2 || a5; // boolean || void is {} -var re3 = a3 || a5; // number || void is {} -var re4 = a4 || a5; // string || void is {} +var re2 = a2 || a5; // boolean || void is boolean | void +var re3 = a3 || a5; // number || void is number | void +var re4 = a4 || a5; // string || void is string | void var re5 = a5 || a5; // void || void is void -var re6 = a6 || a5; // enum || void is {} -var re7 = a7 || a5; // object || void is {} -var re8 = a8 || a5; // array || void is {} +var re6 = a6 || a5; // enum || void is enum | void +var re7 = a7 || a5; // object || void is object | void +var re8 = a8 || a5; // array || void is array | void var re9 = null || a5; // null || void is void var re10 = undefined || a5; // undefined || void is void var rg1 = a1 || a6; // any || enum is any -var rg2 = a2 || a6; // boolean || enum is {} +var rg2 = a2 || a6; // boolean || enum is boolean | enum var rg3 = a3 || a6; // number || enum is number -var rg4 = a4 || a6; // string || enum is {} -var rg5 = a5 || a6; // void || enum is {} +var rg4 = a4 || a6; // string || enum is string | enum +var rg5 = a5 || a6; // void || enum is void | enum var rg6 = a6 || a6; // enum || enum is E -var rg7 = a7 || a6; // object || enum is {} -var rg8 = a8 || a6; // array || enum is {} +var rg7 = a7 || a6; // object || enum is object | enum +var rg8 = a8 || a6; // array || enum is array | enum var rg9 = null || a6; // null || enum is E var rg10 = undefined || a6; // undefined || enum is E var rh1 = a1 || a7; // any || object is any -var rh2 = a2 || a7; // boolean || object is {} -var rh3 = a3 || a7; // number || object is {} -var rh4 = a4 || a7; // string || object is {} -var rh5 = a5 || a7; // void || object is {} -var rh6 = a6 || a7; // enum || object is {} +var rh2 = a2 || a7; // boolean || object is boolean | object +var rh3 = a3 || a7; // number || object is number | object +var rh4 = a4 || a7; // string || object is string | object +var rh5 = a5 || a7; // void || object is void | object +var rh6 = a6 || a7; // enum || object is enum | object var rh7 = a7 || a7; // object || object is object -var rh8 = a8 || a7; // array || object is {} +var rh8 = a8 || a7; // array || object is array | object var rh9 = null || a7; // null || object is object var rh10 = undefined || a7; // undefined || object is object var ri1 = a1 || a8; // any || array is any -var ri2 = a2 || a8; // boolean || array is {} -var ri3 = a3 || a8; // number || array is {} -var ri4 = a4 || a8; // string || array is {} -var ri5 = a5 || a8; // void || array is {} -var ri6 = a6 || a8; // enum || array is {} -var ri7 = a7 || a8; // object || array is {} +var ri2 = a2 || a8; // boolean || array is boolean | array +var ri3 = a3 || a8; // number || array is number | array +var ri4 = a4 || a8; // string || array is string | array +var ri5 = a5 || a8; // void || array is void | array +var ri6 = a6 || a8; // enum || array is enum | array +var ri7 = a7 || a8; // object || array is object | array var ri8 = a8 || a8; // array || array is array var ri9 = null || a8; // null || array is array var ri10 = undefined || a8; // undefined || array is array diff --git a/tests/baselines/reference/logicalOrOperatorWithEveryType.types b/tests/baselines/reference/logicalOrOperatorWithEveryType.types index 3e3b0dcf37f..ae8dab8c71c 100644 --- a/tests/baselines/reference/logicalOrOperatorWithEveryType.types +++ b/tests/baselines/reference/logicalOrOperatorWithEveryType.types @@ -107,37 +107,37 @@ var rb2 = a2 || a2; // boolean || boolean is boolean >a2 : boolean >a2 : boolean -var rb3 = a3 || a2; // number || boolean is {} +var rb3 = a3 || a2; // number || boolean is number | boolean >rb3 : number | boolean >a3 || a2 : number | boolean >a3 : number >a2 : boolean -var rb4 = a4 || a2; // string || boolean is {} +var rb4 = a4 || a2; // string || boolean is string | boolean >rb4 : string | boolean >a4 || a2 : string | boolean >a4 : string >a2 : boolean -var rb5 = a5 || a2; // void || boolean is {} +var rb5 = a5 || a2; // void || boolean is void | boolean >rb5 : boolean | void >a5 || a2 : boolean | void >a5 : void >a2 : boolean -var rb6 = a6 || a2; // enum || boolean is {} +var rb6 = a6 || a2; // enum || boolean is E | boolean >rb6 : boolean | E >a6 || a2 : boolean | E >a6 : E >a2 : boolean -var rb7 = a7 || a2; // object || boolean is {} +var rb7 = a7 || a2; // object || boolean is object | boolean >rb7 : boolean | { a: string; } >a7 || a2 : boolean | { a: string; } >a7 : { a: string; } >a2 : boolean -var rb8 = a8 || a2; // array || boolean is {} +var rb8 = a8 || a2; // array || boolean is array | boolean >rb8 : boolean | string[] >a8 || a2 : boolean | string[] >a8 : string[] @@ -160,7 +160,7 @@ var rc1 = a1 || a3; // any || number is any >a1 : any >a3 : number -var rc2 = a2 || a3; // boolean || number is {} +var rc2 = a2 || a3; // boolean || number is boolean | number >rc2 : number | boolean >a2 || a3 : number | boolean >a2 : boolean @@ -172,13 +172,13 @@ var rc3 = a3 || a3; // number || number is number >a3 : number >a3 : number -var rc4 = a4 || a3; // string || number is {} +var rc4 = a4 || a3; // string || number is string | number >rc4 : string | number >a4 || a3 : string | number >a4 : string >a3 : number -var rc5 = a5 || a3; // void || number is {} +var rc5 = a5 || a3; // void || number is void | number >rc5 : number | void >a5 || a3 : number | void >a5 : void @@ -190,13 +190,13 @@ var rc6 = a6 || a3; // enum || number is number >a6 : E >a3 : number -var rc7 = a7 || a3; // object || number is {} +var rc7 = a7 || a3; // object || number is object | number >rc7 : number | { a: string; } >a7 || a3 : number | { a: string; } >a7 : { a: string; } >a3 : number -var rc8 = a8 || a3; // array || number is {} +var rc8 = a8 || a3; // array || number is array | number >rc8 : number | string[] >a8 || a3 : number | string[] >a8 : string[] @@ -219,13 +219,13 @@ var rd1 = a1 || a4; // any || string is any >a1 : any >a4 : string -var rd2 = a2 || a4; // boolean || string is {} +var rd2 = a2 || a4; // boolean || string is boolean | string >rd2 : string | boolean >a2 || a4 : string | boolean >a2 : boolean >a4 : string -var rd3 = a3 || a4; // number || string is {} +var rd3 = a3 || a4; // number || string is number | string >rd3 : string | number >a3 || a4 : string | number >a3 : number @@ -237,25 +237,25 @@ var rd4 = a4 || a4; // string || string is string >a4 : string >a4 : string -var rd5 = a5 || a4; // void || string is {} +var rd5 = a5 || a4; // void || string is void | string >rd5 : string | void >a5 || a4 : string | void >a5 : void >a4 : string -var rd6 = a6 || a4; // enum || string is {} +var rd6 = a6 || a4; // enum || string is enum | string >rd6 : string | E >a6 || a4 : string | E >a6 : E >a4 : string -var rd7 = a7 || a4; // object || string is {} +var rd7 = a7 || a4; // object || string is object | string >rd7 : string | { a: string; } >a7 || a4 : string | { a: string; } >a7 : { a: string; } >a4 : string -var rd8 = a8 || a4; // array || string is {} +var rd8 = a8 || a4; // array || string is array | string >rd8 : string | string[] >a8 || a4 : string | string[] >a8 : string[] @@ -278,19 +278,19 @@ var re1 = a1 || a5; // any || void is any >a1 : any >a5 : void -var re2 = a2 || a5; // boolean || void is {} +var re2 = a2 || a5; // boolean || void is boolean | void >re2 : boolean | void >a2 || a5 : boolean | void >a2 : boolean >a5 : void -var re3 = a3 || a5; // number || void is {} +var re3 = a3 || a5; // number || void is number | void >re3 : number | void >a3 || a5 : number | void >a3 : number >a5 : void -var re4 = a4 || a5; // string || void is {} +var re4 = a4 || a5; // string || void is string | void >re4 : string | void >a4 || a5 : string | void >a4 : string @@ -302,19 +302,19 @@ var re5 = a5 || a5; // void || void is void >a5 : void >a5 : void -var re6 = a6 || a5; // enum || void is {} +var re6 = a6 || a5; // enum || void is enum | void >re6 : void | E >a6 || a5 : void | E >a6 : E >a5 : void -var re7 = a7 || a5; // object || void is {} +var re7 = a7 || a5; // object || void is object | void >re7 : void | { a: string; } >a7 || a5 : void | { a: string; } >a7 : { a: string; } >a5 : void -var re8 = a8 || a5; // array || void is {} +var re8 = a8 || a5; // array || void is array | void >re8 : void | string[] >a8 || a5 : void | string[] >a8 : string[] @@ -337,7 +337,7 @@ var rg1 = a1 || a6; // any || enum is any >a1 : any >a6 : E -var rg2 = a2 || a6; // boolean || enum is {} +var rg2 = a2 || a6; // boolean || enum is boolean | enum >rg2 : boolean | E >a2 || a6 : boolean | E >a2 : boolean @@ -349,13 +349,13 @@ var rg3 = a3 || a6; // number || enum is number >a3 : number >a6 : E -var rg4 = a4 || a6; // string || enum is {} +var rg4 = a4 || a6; // string || enum is string | enum >rg4 : string | E >a4 || a6 : string | E >a4 : string >a6 : E -var rg5 = a5 || a6; // void || enum is {} +var rg5 = a5 || a6; // void || enum is void | enum >rg5 : void | E >a5 || a6 : void | E >a5 : void @@ -367,13 +367,13 @@ var rg6 = a6 || a6; // enum || enum is E >a6 : E >a6 : E -var rg7 = a7 || a6; // object || enum is {} +var rg7 = a7 || a6; // object || enum is object | enum >rg7 : E | { a: string; } >a7 || a6 : E | { a: string; } >a7 : { a: string; } >a6 : E -var rg8 = a8 || a6; // array || enum is {} +var rg8 = a8 || a6; // array || enum is array | enum >rg8 : string[] | E >a8 || a6 : string[] | E >a8 : string[] @@ -396,31 +396,31 @@ var rh1 = a1 || a7; // any || object is any >a1 : any >a7 : { a: string; } -var rh2 = a2 || a7; // boolean || object is {} +var rh2 = a2 || a7; // boolean || object is boolean | object >rh2 : boolean | { a: string; } >a2 || a7 : boolean | { a: string; } >a2 : boolean >a7 : { a: string; } -var rh3 = a3 || a7; // number || object is {} +var rh3 = a3 || a7; // number || object is number | object >rh3 : number | { a: string; } >a3 || a7 : number | { a: string; } >a3 : number >a7 : { a: string; } -var rh4 = a4 || a7; // string || object is {} +var rh4 = a4 || a7; // string || object is string | object >rh4 : string | { a: string; } >a4 || a7 : string | { a: string; } >a4 : string >a7 : { a: string; } -var rh5 = a5 || a7; // void || object is {} +var rh5 = a5 || a7; // void || object is void | object >rh5 : void | { a: string; } >a5 || a7 : void | { a: string; } >a5 : void >a7 : { a: string; } -var rh6 = a6 || a7; // enum || object is {} +var rh6 = a6 || a7; // enum || object is enum | object >rh6 : E | { a: string; } >a6 || a7 : E | { a: string; } >a6 : E @@ -432,7 +432,7 @@ var rh7 = a7 || a7; // object || object is object >a7 : { a: string; } >a7 : { a: string; } -var rh8 = a8 || a7; // array || object is {} +var rh8 = a8 || a7; // array || object is array | object >rh8 : string[] | { a: string; } >a8 || a7 : string[] | { a: string; } >a8 : string[] @@ -455,37 +455,37 @@ var ri1 = a1 || a8; // any || array is any >a1 : any >a8 : string[] -var ri2 = a2 || a8; // boolean || array is {} +var ri2 = a2 || a8; // boolean || array is boolean | array >ri2 : boolean | string[] >a2 || a8 : boolean | string[] >a2 : boolean >a8 : string[] -var ri3 = a3 || a8; // number || array is {} +var ri3 = a3 || a8; // number || array is number | array >ri3 : number | string[] >a3 || a8 : number | string[] >a3 : number >a8 : string[] -var ri4 = a4 || a8; // string || array is {} +var ri4 = a4 || a8; // string || array is string | array >ri4 : string | string[] >a4 || a8 : string | string[] >a4 : string >a8 : string[] -var ri5 = a5 || a8; // void || array is {} +var ri5 = a5 || a8; // void || array is void | array >ri5 : void | string[] >a5 || a8 : void | string[] >a5 : void >a8 : string[] -var ri6 = a6 || a8; // enum || array is {} +var ri6 = a6 || a8; // enum || array is enum | array >ri6 : string[] | E >a6 || a8 : string[] | E >a6 : E >a8 : string[] -var ri7 = a7 || a8; // object || array is {} +var ri7 = a7 || a8; // object || array is object | array >ri7 : string[] | { a: string; } >a7 || a8 : string[] | { a: string; } >a7 : { a: string; } diff --git a/tests/cases/conformance/expressions/binaryOperators/logicalOrOperator/logicalOrOperatorWithEveryType.ts b/tests/cases/conformance/expressions/binaryOperators/logicalOrOperator/logicalOrOperatorWithEveryType.ts index 2db2b854f6a..9ec124449f3 100644 --- a/tests/cases/conformance/expressions/binaryOperators/logicalOrOperator/logicalOrOperatorWithEveryType.ts +++ b/tests/cases/conformance/expressions/binaryOperators/logicalOrOperator/logicalOrOperatorWithEveryType.ts @@ -27,77 +27,77 @@ var ra10 = undefined || a1; // undefined || any is any var rb1 = a1 || a2; // any || boolean is any var rb2 = a2 || a2; // boolean || boolean is boolean -var rb3 = a3 || a2; // number || boolean is {} -var rb4 = a4 || a2; // string || boolean is {} -var rb5 = a5 || a2; // void || boolean is {} -var rb6 = a6 || a2; // enum || boolean is {} -var rb7 = a7 || a2; // object || boolean is {} -var rb8 = a8 || a2; // array || boolean is {} +var rb3 = a3 || a2; // number || boolean is number | boolean +var rb4 = a4 || a2; // string || boolean is string | boolean +var rb5 = a5 || a2; // void || boolean is void | boolean +var rb6 = a6 || a2; // enum || boolean is E | boolean +var rb7 = a7 || a2; // object || boolean is object | boolean +var rb8 = a8 || a2; // array || boolean is array | boolean var rb9 = null || a2; // null || boolean is boolean var rb10= undefined || a2; // undefined || boolean is boolean var rc1 = a1 || a3; // any || number is any -var rc2 = a2 || a3; // boolean || number is {} +var rc2 = a2 || a3; // boolean || number is boolean | number var rc3 = a3 || a3; // number || number is number -var rc4 = a4 || a3; // string || number is {} -var rc5 = a5 || a3; // void || number is {} +var rc4 = a4 || a3; // string || number is string | number +var rc5 = a5 || a3; // void || number is void | number var rc6 = a6 || a3; // enum || number is number -var rc7 = a7 || a3; // object || number is {} -var rc8 = a8 || a3; // array || number is {} +var rc7 = a7 || a3; // object || number is object | number +var rc8 = a8 || a3; // array || number is array | number var rc9 = null || a3; // null || number is number var rc10 = undefined || a3; // undefined || number is number var rd1 = a1 || a4; // any || string is any -var rd2 = a2 || a4; // boolean || string is {} -var rd3 = a3 || a4; // number || string is {} +var rd2 = a2 || a4; // boolean || string is boolean | string +var rd3 = a3 || a4; // number || string is number | string var rd4 = a4 || a4; // string || string is string -var rd5 = a5 || a4; // void || string is {} -var rd6 = a6 || a4; // enum || string is {} -var rd7 = a7 || a4; // object || string is {} -var rd8 = a8 || a4; // array || string is {} +var rd5 = a5 || a4; // void || string is void | string +var rd6 = a6 || a4; // enum || string is enum | string +var rd7 = a7 || a4; // object || string is object | string +var rd8 = a8 || a4; // array || string is array | string var rd9 = null || a4; // null || string is string var rd10 = undefined || a4; // undefined || string is string var re1 = a1 || a5; // any || void is any -var re2 = a2 || a5; // boolean || void is {} -var re3 = a3 || a5; // number || void is {} -var re4 = a4 || a5; // string || void is {} +var re2 = a2 || a5; // boolean || void is boolean | void +var re3 = a3 || a5; // number || void is number | void +var re4 = a4 || a5; // string || void is string | void var re5 = a5 || a5; // void || void is void -var re6 = a6 || a5; // enum || void is {} -var re7 = a7 || a5; // object || void is {} -var re8 = a8 || a5; // array || void is {} +var re6 = a6 || a5; // enum || void is enum | void +var re7 = a7 || a5; // object || void is object | void +var re8 = a8 || a5; // array || void is array | void var re9 = null || a5; // null || void is void var re10 = undefined || a5; // undefined || void is void var rg1 = a1 || a6; // any || enum is any -var rg2 = a2 || a6; // boolean || enum is {} +var rg2 = a2 || a6; // boolean || enum is boolean | enum var rg3 = a3 || a6; // number || enum is number -var rg4 = a4 || a6; // string || enum is {} -var rg5 = a5 || a6; // void || enum is {} +var rg4 = a4 || a6; // string || enum is string | enum +var rg5 = a5 || a6; // void || enum is void | enum var rg6 = a6 || a6; // enum || enum is E -var rg7 = a7 || a6; // object || enum is {} -var rg8 = a8 || a6; // array || enum is {} +var rg7 = a7 || a6; // object || enum is object | enum +var rg8 = a8 || a6; // array || enum is array | enum var rg9 = null || a6; // null || enum is E var rg10 = undefined || a6; // undefined || enum is E var rh1 = a1 || a7; // any || object is any -var rh2 = a2 || a7; // boolean || object is {} -var rh3 = a3 || a7; // number || object is {} -var rh4 = a4 || a7; // string || object is {} -var rh5 = a5 || a7; // void || object is {} -var rh6 = a6 || a7; // enum || object is {} +var rh2 = a2 || a7; // boolean || object is boolean | object +var rh3 = a3 || a7; // number || object is number | object +var rh4 = a4 || a7; // string || object is string | object +var rh5 = a5 || a7; // void || object is void | object +var rh6 = a6 || a7; // enum || object is enum | object var rh7 = a7 || a7; // object || object is object -var rh8 = a8 || a7; // array || object is {} +var rh8 = a8 || a7; // array || object is array | object var rh9 = null || a7; // null || object is object var rh10 = undefined || a7; // undefined || object is object var ri1 = a1 || a8; // any || array is any -var ri2 = a2 || a8; // boolean || array is {} -var ri3 = a3 || a8; // number || array is {} -var ri4 = a4 || a8; // string || array is {} -var ri5 = a5 || a8; // void || array is {} -var ri6 = a6 || a8; // enum || array is {} -var ri7 = a7 || a8; // object || array is {} +var ri2 = a2 || a8; // boolean || array is boolean | array +var ri3 = a3 || a8; // number || array is number | array +var ri4 = a4 || a8; // string || array is string | array +var ri5 = a5 || a8; // void || array is void | array +var ri6 = a6 || a8; // enum || array is enum | array +var ri7 = a7 || a8; // object || array is object | array var ri8 = a8 || a8; // array || array is array var ri9 = null || a8; // null || array is array var ri10 = undefined || a8; // undefined || array is array From 24ebc750c007a3752d135940bebff54427d2b118 Mon Sep 17 00:00:00 2001 From: Sheetal Nandi Date: Mon, 3 Nov 2014 16:25:09 -0800 Subject: [PATCH 016/195] Tests for Conditional operator can generate union type --- ...nditionalOperatorConditionIsBooleanType.js | 14 +++++ ...tionalOperatorConditionIsBooleanType.types | 45 ++++++++++++++ ...onditionalOperatorConditionIsNumberType.js | 13 +++- ...itionalOperatorConditionIsNumberType.types | 42 +++++++++++++ ...onditionalOperatorConditionIsObjectType.js | 12 ++++ ...itionalOperatorConditionIsObjectType.types | 49 +++++++++++++++ .../conditionalOperatorConditoinIsAnyType.js | 17 +++++- ...onditionalOperatorConditoinIsAnyType.types | 59 +++++++++++++++++++ ...onditionalOperatorConditoinIsStringType.js | 15 ++++- ...itionalOperatorConditoinIsStringType.types | 48 +++++++++++++++ ...onalOperatorWithoutIdenticalBCT.errors.txt | 11 ++-- .../conditionalOperatorWithoutIdenticalBCT.js | 7 ++- ...nditionalOperatorConditionIsBooleanType.ts | 7 +++ ...onditionalOperatorConditionIsNumberType.ts | 6 ++ ...onditionalOperatorConditionIsObjectType.ts | 6 ++ .../conditionalOperatorConditoinIsAnyType.ts | 8 +++ ...onditionalOperatorConditoinIsStringType.ts | 7 +++ .../conditionalOperatorWithoutIdenticalBCT.ts | 4 +- 18 files changed, 361 insertions(+), 9 deletions(-) diff --git a/tests/baselines/reference/conditionalOperatorConditionIsBooleanType.js b/tests/baselines/reference/conditionalOperatorConditionIsBooleanType.js index ab9dca9023f..d9a8b2daa29 100644 --- a/tests/baselines/reference/conditionalOperatorConditionIsBooleanType.js +++ b/tests/baselines/reference/conditionalOperatorConditionIsBooleanType.js @@ -20,6 +20,7 @@ condBoolean ? exprBoolean1 : exprBoolean2; condBoolean ? exprNumber1 : exprNumber2; condBoolean ? exprString1 : exprString2; condBoolean ? exprIsObject1 : exprIsObject2; +condBoolean ? exprString1 : exprBoolean1; // union //Cond is a boolean type literal true ? exprAny1 : exprAny2; @@ -27,6 +28,7 @@ false ? exprBoolean1 : exprBoolean2; true ? exprNumber1 : exprNumber2; false ? exprString1 : exprString2; true ? exprIsObject1 : exprIsObject2; +true ? exprString1 : exprBoolean1; // union //Cond is a boolean type expression !true ? exprAny1 : exprAny2; @@ -34,6 +36,7 @@ typeof "123" == "string" ? exprBoolean1 : exprBoolean2; 2 > 1 ? exprNumber1 : exprNumber2; null === undefined ? exprString1 : exprString2; true || false ? exprIsObject1 : exprIsObject2; +null === undefined ? exprString1 : exprBoolean1; // union //Results shoud be same as Expr1 and Expr2 var resultIsAny1 = condBoolean ? exprAny1 : exprAny2; @@ -41,18 +44,22 @@ var resultIsBoolean1 = condBoolean ? exprBoolean1 : exprBoolean2; var resultIsNumber1 = condBoolean ? exprNumber1 : exprNumber2; var resultIsString1 = condBoolean ? exprString1 : exprString2; var resultIsObject1 = condBoolean ? exprIsObject1 : exprIsObject2; +var resultIsStringOrBoolean1 = condBoolean ? exprString1 : exprBoolean1; // union var resultIsAny2 = true ? exprAny1 : exprAny2; var resultIsBoolean2 = false ? exprBoolean1 : exprBoolean2; var resultIsNumber2 = true ? exprNumber1 : exprNumber2; var resultIsString2 = false ? exprString1 : exprString2; var resultIsObject2 = true ? exprIsObject1 : exprIsObject2; +var resultIsStringOrBoolean2 = true ? exprString1 : exprBoolean1; // union +var resultIsStringOrBoolean3 = false ? exprString1 : exprBoolean1; // union var resultIsAny3 = !true ? exprAny1 : exprAny2; var resultIsBoolean3 = typeof "123" == "string" ? exprBoolean1 : exprBoolean2; var resultIsNumber3 = 2 > 1 ? exprNumber1 : exprNumber2; var resultIsString3 = null === undefined ? exprString1 : exprString2; var resultIsObject3 = true || false ? exprIsObject1 : exprIsObject2; +var resultIsStringOrBoolean4 = typeof "123" === "string" ? exprString1 : exprBoolean1; // union //// [conditionalOperatorConditionIsBooleanType.js] @@ -74,31 +81,38 @@ condBoolean ? exprBoolean1 : exprBoolean2; condBoolean ? exprNumber1 : exprNumber2; condBoolean ? exprString1 : exprString2; condBoolean ? exprIsObject1 : exprIsObject2; +condBoolean ? exprString1 : exprBoolean1; // union //Cond is a boolean type literal true ? exprAny1 : exprAny2; false ? exprBoolean1 : exprBoolean2; true ? exprNumber1 : exprNumber2; false ? exprString1 : exprString2; true ? exprIsObject1 : exprIsObject2; +true ? exprString1 : exprBoolean1; // union //Cond is a boolean type expression !true ? exprAny1 : exprAny2; typeof "123" == "string" ? exprBoolean1 : exprBoolean2; 2 > 1 ? exprNumber1 : exprNumber2; null === undefined ? exprString1 : exprString2; true || false ? exprIsObject1 : exprIsObject2; +null === undefined ? exprString1 : exprBoolean1; // union //Results shoud be same as Expr1 and Expr2 var resultIsAny1 = condBoolean ? exprAny1 : exprAny2; var resultIsBoolean1 = condBoolean ? exprBoolean1 : exprBoolean2; var resultIsNumber1 = condBoolean ? exprNumber1 : exprNumber2; var resultIsString1 = condBoolean ? exprString1 : exprString2; var resultIsObject1 = condBoolean ? exprIsObject1 : exprIsObject2; +var resultIsStringOrBoolean1 = condBoolean ? exprString1 : exprBoolean1; // union var resultIsAny2 = true ? exprAny1 : exprAny2; var resultIsBoolean2 = false ? exprBoolean1 : exprBoolean2; var resultIsNumber2 = true ? exprNumber1 : exprNumber2; var resultIsString2 = false ? exprString1 : exprString2; var resultIsObject2 = true ? exprIsObject1 : exprIsObject2; +var resultIsStringOrBoolean2 = true ? exprString1 : exprBoolean1; // union +var resultIsStringOrBoolean3 = false ? exprString1 : exprBoolean1; // union var resultIsAny3 = !true ? exprAny1 : exprAny2; var resultIsBoolean3 = typeof "123" == "string" ? exprBoolean1 : exprBoolean2; var resultIsNumber3 = 2 > 1 ? exprNumber1 : exprNumber2; var resultIsString3 = null === undefined ? exprString1 : exprString2; var resultIsObject3 = true || false ? exprIsObject1 : exprIsObject2; +var resultIsStringOrBoolean4 = typeof "123" === "string" ? exprString1 : exprBoolean1; // union diff --git a/tests/baselines/reference/conditionalOperatorConditionIsBooleanType.types b/tests/baselines/reference/conditionalOperatorConditionIsBooleanType.types index b3ca65219cb..44fc9f5ed7b 100644 --- a/tests/baselines/reference/conditionalOperatorConditionIsBooleanType.types +++ b/tests/baselines/reference/conditionalOperatorConditionIsBooleanType.types @@ -66,6 +66,12 @@ condBoolean ? exprIsObject1 : exprIsObject2; >exprIsObject1 : Object >exprIsObject2 : Object +condBoolean ? exprString1 : exprBoolean1; // union +>condBoolean ? exprString1 : exprBoolean1 : string | boolean +>condBoolean : boolean +>exprString1 : string +>exprBoolean1 : boolean + //Cond is a boolean type literal true ? exprAny1 : exprAny2; >true ? exprAny1 : exprAny2 : any @@ -92,6 +98,11 @@ true ? exprIsObject1 : exprIsObject2; >exprIsObject1 : Object >exprIsObject2 : Object +true ? exprString1 : exprBoolean1; // union +>true ? exprString1 : exprBoolean1 : string | boolean +>exprString1 : string +>exprBoolean1 : boolean + //Cond is a boolean type expression !true ? exprAny1 : exprAny2; >!true ? exprAny1 : exprAny2 : any @@ -125,6 +136,13 @@ true || false ? exprIsObject1 : exprIsObject2; >exprIsObject1 : Object >exprIsObject2 : Object +null === undefined ? exprString1 : exprBoolean1; // union +>null === undefined ? exprString1 : exprBoolean1 : string | boolean +>null === undefined : boolean +>undefined : undefined +>exprString1 : string +>exprBoolean1 : boolean + //Results shoud be same as Expr1 and Expr2 var resultIsAny1 = condBoolean ? exprAny1 : exprAny2; >resultIsAny1 : any @@ -161,6 +179,13 @@ var resultIsObject1 = condBoolean ? exprIsObject1 : exprIsObject2; >exprIsObject1 : Object >exprIsObject2 : Object +var resultIsStringOrBoolean1 = condBoolean ? exprString1 : exprBoolean1; // union +>resultIsStringOrBoolean1 : string | boolean +>condBoolean ? exprString1 : exprBoolean1 : string | boolean +>condBoolean : boolean +>exprString1 : string +>exprBoolean1 : boolean + var resultIsAny2 = true ? exprAny1 : exprAny2; >resultIsAny2 : any >true ? exprAny1 : exprAny2 : any @@ -191,6 +216,18 @@ var resultIsObject2 = true ? exprIsObject1 : exprIsObject2; >exprIsObject1 : Object >exprIsObject2 : Object +var resultIsStringOrBoolean2 = true ? exprString1 : exprBoolean1; // union +>resultIsStringOrBoolean2 : string | boolean +>true ? exprString1 : exprBoolean1 : string | boolean +>exprString1 : string +>exprBoolean1 : boolean + +var resultIsStringOrBoolean3 = false ? exprString1 : exprBoolean1; // union +>resultIsStringOrBoolean3 : string | boolean +>false ? exprString1 : exprBoolean1 : string | boolean +>exprString1 : string +>exprBoolean1 : boolean + var resultIsAny3 = !true ? exprAny1 : exprAny2; >resultIsAny3 : any >!true ? exprAny1 : exprAny2 : any @@ -228,3 +265,11 @@ var resultIsObject3 = true || false ? exprIsObject1 : exprIsObject2; >exprIsObject1 : Object >exprIsObject2 : Object +var resultIsStringOrBoolean4 = typeof "123" === "string" ? exprString1 : exprBoolean1; // union +>resultIsStringOrBoolean4 : string | boolean +>typeof "123" === "string" ? exprString1 : exprBoolean1 : string | boolean +>typeof "123" === "string" : boolean +>typeof "123" : string +>exprString1 : string +>exprBoolean1 : boolean + diff --git a/tests/baselines/reference/conditionalOperatorConditionIsNumberType.js b/tests/baselines/reference/conditionalOperatorConditionIsNumberType.js index 166841f0a89..46a04169e93 100644 --- a/tests/baselines/reference/conditionalOperatorConditionIsNumberType.js +++ b/tests/baselines/reference/conditionalOperatorConditionIsNumberType.js @@ -20,6 +20,7 @@ condNumber ? exprBoolean1 : exprBoolean2; condNumber ? exprNumber1 : exprNumber2; condNumber ? exprString1 : exprString2; condNumber ? exprIsObject1 : exprIsObject2; +condNumber ? exprString1 : exprBoolean1; // Union //Cond is a number type literal 1 ? exprAny1 : exprAny2; @@ -27,6 +28,7 @@ condNumber ? exprIsObject1 : exprIsObject2; 0.123456789 ? exprNumber1 : exprNumber2; - 10000000000000 ? exprString1 : exprString2; 1000000000000 ? exprIsObject1 : exprIsObject2; +10000 ? exprString1 : exprBoolean1; // Union //Cond is a number type expression function foo() { return 1 }; @@ -37,6 +39,7 @@ var array = [1, 2, 3]; "string".length ? exprNumber1 : exprNumber2; foo() ? exprString1 : exprString2; foo() / array[1] ? exprIsObject1 : exprIsObject2; +foo() ? exprString1 : exprBoolean1; // Union //Results shoud be same as Expr1 and Expr2 var resultIsAny1 = condNumber ? exprAny1 : exprAny2; @@ -44,19 +47,21 @@ var resultIsBoolean1 = condNumber ? exprBoolean1 : exprBoolean2; var resultIsNumber1 = condNumber ? exprNumber1 : exprNumber2; var resultIsString1 = condNumber ? exprString1 : exprString2; var resultIsObject1 = condNumber ? exprIsObject1 : exprIsObject2; +var resultIsStringOrBoolean1 = condNumber ? exprString1 : exprBoolean1; // Union var resultIsAny2 = 1 ? exprAny1 : exprAny2; var resultIsBoolean2 = 0 ? exprBoolean1 : exprBoolean2; var resultIsNumber2 = 0.123456789 ? exprNumber1 : exprNumber2; var resultIsString2 = - 10000000000000 ? exprString1 : exprString2; var resultIsObject2 = 1000000000000 ? exprIsObject1 : exprIsObject2; +var resultIsStringOrBoolean2 = 10000 ? exprString1 : exprBoolean1; // Union var resultIsAny3 = 1 * 0 ? exprAny1 : exprAny2; var resultIsBoolean3 = 1 + 1 ? exprBoolean1 : exprBoolean2; var resultIsNumber3 = "string".length ? exprNumber1 : exprNumber2; var resultIsString3 = foo() ? exprString1 : exprString2; var resultIsObject3 = foo() / array[1] ? exprIsObject1 : exprIsObject2; - +var resultIsStringOrBoolean3 = foo() / array[1] ? exprString1 : exprBoolean1; // Union //// [conditionalOperatorConditionIsNumberType.js] //Cond ? Expr1 : Expr2, Cond is of number type, Expr1 and Expr2 have the same type @@ -77,12 +82,14 @@ condNumber ? exprBoolean1 : exprBoolean2; condNumber ? exprNumber1 : exprNumber2; condNumber ? exprString1 : exprString2; condNumber ? exprIsObject1 : exprIsObject2; +condNumber ? exprString1 : exprBoolean1; // Union //Cond is a number type literal 1 ? exprAny1 : exprAny2; 0 ? exprBoolean1 : exprBoolean2; 0.123456789 ? exprNumber1 : exprNumber2; -10000000000000 ? exprString1 : exprString2; 1000000000000 ? exprIsObject1 : exprIsObject2; +10000 ? exprString1 : exprBoolean1; // Union //Cond is a number type expression function foo() { return 1; @@ -94,19 +101,23 @@ var array = [1, 2, 3]; "string".length ? exprNumber1 : exprNumber2; foo() ? exprString1 : exprString2; foo() / array[1] ? exprIsObject1 : exprIsObject2; +foo() ? exprString1 : exprBoolean1; // Union //Results shoud be same as Expr1 and Expr2 var resultIsAny1 = condNumber ? exprAny1 : exprAny2; var resultIsBoolean1 = condNumber ? exprBoolean1 : exprBoolean2; var resultIsNumber1 = condNumber ? exprNumber1 : exprNumber2; var resultIsString1 = condNumber ? exprString1 : exprString2; var resultIsObject1 = condNumber ? exprIsObject1 : exprIsObject2; +var resultIsStringOrBoolean1 = condNumber ? exprString1 : exprBoolean1; // Union var resultIsAny2 = 1 ? exprAny1 : exprAny2; var resultIsBoolean2 = 0 ? exprBoolean1 : exprBoolean2; var resultIsNumber2 = 0.123456789 ? exprNumber1 : exprNumber2; var resultIsString2 = -10000000000000 ? exprString1 : exprString2; var resultIsObject2 = 1000000000000 ? exprIsObject1 : exprIsObject2; +var resultIsStringOrBoolean2 = 10000 ? exprString1 : exprBoolean1; // Union var resultIsAny3 = 1 * 0 ? exprAny1 : exprAny2; var resultIsBoolean3 = 1 + 1 ? exprBoolean1 : exprBoolean2; var resultIsNumber3 = "string".length ? exprNumber1 : exprNumber2; var resultIsString3 = foo() ? exprString1 : exprString2; var resultIsObject3 = foo() / array[1] ? exprIsObject1 : exprIsObject2; +var resultIsStringOrBoolean3 = foo() / array[1] ? exprString1 : exprBoolean1; // Union diff --git a/tests/baselines/reference/conditionalOperatorConditionIsNumberType.types b/tests/baselines/reference/conditionalOperatorConditionIsNumberType.types index 3396885509a..99a81081d6b 100644 --- a/tests/baselines/reference/conditionalOperatorConditionIsNumberType.types +++ b/tests/baselines/reference/conditionalOperatorConditionIsNumberType.types @@ -66,6 +66,12 @@ condNumber ? exprIsObject1 : exprIsObject2; >exprIsObject1 : Object >exprIsObject2 : Object +condNumber ? exprString1 : exprBoolean1; // Union +>condNumber ? exprString1 : exprBoolean1 : string | boolean +>condNumber : number +>exprString1 : string +>exprBoolean1 : boolean + //Cond is a number type literal 1 ? exprAny1 : exprAny2; >1 ? exprAny1 : exprAny2 : any @@ -93,6 +99,11 @@ condNumber ? exprIsObject1 : exprIsObject2; >exprIsObject1 : Object >exprIsObject2 : Object +10000 ? exprString1 : exprBoolean1; // Union +>10000 ? exprString1 : exprBoolean1 : string | boolean +>exprString1 : string +>exprBoolean1 : boolean + //Cond is a number type expression function foo() { return 1 }; >foo : () => number @@ -137,6 +148,13 @@ foo() / array[1] ? exprIsObject1 : exprIsObject2; >exprIsObject1 : Object >exprIsObject2 : Object +foo() ? exprString1 : exprBoolean1; // Union +>foo() ? exprString1 : exprBoolean1 : string | boolean +>foo() : number +>foo : () => number +>exprString1 : string +>exprBoolean1 : boolean + //Results shoud be same as Expr1 and Expr2 var resultIsAny1 = condNumber ? exprAny1 : exprAny2; >resultIsAny1 : any @@ -173,6 +191,13 @@ var resultIsObject1 = condNumber ? exprIsObject1 : exprIsObject2; >exprIsObject1 : Object >exprIsObject2 : Object +var resultIsStringOrBoolean1 = condNumber ? exprString1 : exprBoolean1; // Union +>resultIsStringOrBoolean1 : string | boolean +>condNumber ? exprString1 : exprBoolean1 : string | boolean +>condNumber : number +>exprString1 : string +>exprBoolean1 : boolean + var resultIsAny2 = 1 ? exprAny1 : exprAny2; >resultIsAny2 : any >1 ? exprAny1 : exprAny2 : any @@ -204,6 +229,12 @@ var resultIsObject2 = 1000000000000 ? exprIsObject1 : exprIsObject2; >exprIsObject1 : Object >exprIsObject2 : Object +var resultIsStringOrBoolean2 = 10000 ? exprString1 : exprBoolean1; // Union +>resultIsStringOrBoolean2 : string | boolean +>10000 ? exprString1 : exprBoolean1 : string | boolean +>exprString1 : string +>exprBoolean1 : boolean + var resultIsAny3 = 1 * 0 ? exprAny1 : exprAny2; >resultIsAny3 : any >1 * 0 ? exprAny1 : exprAny2 : any @@ -245,3 +276,14 @@ var resultIsObject3 = foo() / array[1] ? exprIsObject1 : exprIsObject2; >exprIsObject1 : Object >exprIsObject2 : Object +var resultIsStringOrBoolean3 = foo() / array[1] ? exprString1 : exprBoolean1; // Union +>resultIsStringOrBoolean3 : string | boolean +>foo() / array[1] ? exprString1 : exprBoolean1 : string | boolean +>foo() / array[1] : number +>foo() : number +>foo : () => number +>array[1] : number +>array : number[] +>exprString1 : string +>exprBoolean1 : boolean + diff --git a/tests/baselines/reference/conditionalOperatorConditionIsObjectType.js b/tests/baselines/reference/conditionalOperatorConditionIsObjectType.js index 3f98398d94d..b628c21bd14 100644 --- a/tests/baselines/reference/conditionalOperatorConditionIsObjectType.js +++ b/tests/baselines/reference/conditionalOperatorConditionIsObjectType.js @@ -23,6 +23,7 @@ condObject ? exprBoolean1 : exprBoolean2; condObject ? exprNumber1 : exprNumber2; condObject ? exprString1 : exprString2; condObject ? exprIsObject1 : exprIsObject2; +condObject ? exprString1 : exprBoolean1; // union //Cond is an object type literal ((a: string) => a.length) ? exprAny1 : exprAny2; @@ -30,6 +31,7 @@ condObject ? exprIsObject1 : exprIsObject2; ({}) ? exprNumber1 : exprNumber2; ({ a: 1, b: "s" }) ? exprString1 : exprString2; ({ a: 1, b: "s" }) ? exprIsObject1 : exprIsObject2; +({ a: 1, b: "s" }) ? exprString1: exprBoolean1; // union //Cond is an object type expression foo() ? exprAny1 : exprAny2; @@ -37,6 +39,7 @@ new Date() ? exprBoolean1 : exprBoolean2; new C() ? exprNumber1 : exprNumber2; C.doIt() ? exprString1 : exprString2; condObject.valueOf() ? exprIsObject1 : exprIsObject2; +new Date() ? exprString1 : exprBoolean1; // union //Results shoud be same as Expr1 and Expr2 var resultIsAny1 = condObject ? exprAny1 : exprAny2; @@ -44,18 +47,21 @@ var resultIsBoolean1 = condObject ? exprBoolean1 : exprBoolean2; var resultIsNumber1 = condObject ? exprNumber1 : exprNumber2; var resultIsString1 = condObject ? exprString1 : exprString2; var resultIsObject1 = condObject ? exprIsObject1 : exprIsObject2; +var resultIsStringOrBoolean1 = condObject ? exprString1 : exprBoolean1; // union var resultIsAny2 = ((a: string) => a.length) ? exprAny1 : exprAny2; var resultIsBoolean2 = ((a: string) => a.length) ? exprBoolean1 : exprBoolean2; var resultIsNumber2 = ({}) ? exprNumber1 : exprNumber2; var resultIsString2 = ({ a: 1, b: "s" }) ? exprString1 : exprString2; var resultIsObject2 = ({ a: 1, b: "s" }) ? exprIsObject1 : exprIsObject2; +var resultIsStringOrBoolean2 = ({ a: 1, b: "s" }) ? exprString1 : exprBoolean1; // union var resultIsAny3 = foo() ? exprAny1 : exprAny2; var resultIsBoolean3 = new Date() ? exprBoolean1 : exprBoolean2; var resultIsNumber3 = new C() ? exprNumber1 : exprNumber2; var resultIsString3 = C.doIt() ? exprString1 : exprString2; var resultIsObject3 = condObject.valueOf() ? exprIsObject1 : exprIsObject2; +var resultIsStringOrBoolean3 = C.doIt() ? exprString1 : exprBoolean1; // union //// [conditionalOperatorConditionIsObjectType.js] @@ -86,31 +92,37 @@ condObject ? exprBoolean1 : exprBoolean2; condObject ? exprNumber1 : exprNumber2; condObject ? exprString1 : exprString2; condObject ? exprIsObject1 : exprIsObject2; +condObject ? exprString1 : exprBoolean1; // union //Cond is an object type literal (function (a) { return a.length; }) ? exprAny1 : exprAny2; (function (a) { return a.length; }) ? exprBoolean1 : exprBoolean2; ({}) ? exprNumber1 : exprNumber2; ({ a: 1, b: "s" }) ? exprString1 : exprString2; ({ a: 1, b: "s" }) ? exprIsObject1 : exprIsObject2; +({ a: 1, b: "s" }) ? exprString1 : exprBoolean1; // union //Cond is an object type expression foo() ? exprAny1 : exprAny2; new Date() ? exprBoolean1 : exprBoolean2; new C() ? exprNumber1 : exprNumber2; C.doIt() ? exprString1 : exprString2; condObject.valueOf() ? exprIsObject1 : exprIsObject2; +new Date() ? exprString1 : exprBoolean1; // union //Results shoud be same as Expr1 and Expr2 var resultIsAny1 = condObject ? exprAny1 : exprAny2; var resultIsBoolean1 = condObject ? exprBoolean1 : exprBoolean2; var resultIsNumber1 = condObject ? exprNumber1 : exprNumber2; var resultIsString1 = condObject ? exprString1 : exprString2; var resultIsObject1 = condObject ? exprIsObject1 : exprIsObject2; +var resultIsStringOrBoolean1 = condObject ? exprString1 : exprBoolean1; // union var resultIsAny2 = (function (a) { return a.length; }) ? exprAny1 : exprAny2; var resultIsBoolean2 = (function (a) { return a.length; }) ? exprBoolean1 : exprBoolean2; var resultIsNumber2 = ({}) ? exprNumber1 : exprNumber2; var resultIsString2 = ({ a: 1, b: "s" }) ? exprString1 : exprString2; var resultIsObject2 = ({ a: 1, b: "s" }) ? exprIsObject1 : exprIsObject2; +var resultIsStringOrBoolean2 = ({ a: 1, b: "s" }) ? exprString1 : exprBoolean1; // union var resultIsAny3 = foo() ? exprAny1 : exprAny2; var resultIsBoolean3 = new Date() ? exprBoolean1 : exprBoolean2; var resultIsNumber3 = new C() ? exprNumber1 : exprNumber2; var resultIsString3 = C.doIt() ? exprString1 : exprString2; var resultIsObject3 = condObject.valueOf() ? exprIsObject1 : exprIsObject2; +var resultIsStringOrBoolean3 = C.doIt() ? exprString1 : exprBoolean1; // union diff --git a/tests/baselines/reference/conditionalOperatorConditionIsObjectType.types b/tests/baselines/reference/conditionalOperatorConditionIsObjectType.types index 36c15d64c54..171871c5dcf 100644 --- a/tests/baselines/reference/conditionalOperatorConditionIsObjectType.types +++ b/tests/baselines/reference/conditionalOperatorConditionIsObjectType.types @@ -74,6 +74,12 @@ condObject ? exprIsObject1 : exprIsObject2; >exprIsObject1 : Object >exprIsObject2 : Object +condObject ? exprString1 : exprBoolean1; // union +>condObject ? exprString1 : exprBoolean1 : string | boolean +>condObject : Object +>exprString1 : string +>exprBoolean1 : boolean + //Cond is an object type literal ((a: string) => a.length) ? exprAny1 : exprAny2; >((a: string) => a.length) ? exprAny1 : exprAny2 : any @@ -122,6 +128,15 @@ condObject ? exprIsObject1 : exprIsObject2; >exprIsObject1 : Object >exprIsObject2 : Object +({ a: 1, b: "s" }) ? exprString1: exprBoolean1; // union +>({ a: 1, b: "s" }) ? exprString1: exprBoolean1 : string | boolean +>({ a: 1, b: "s" }) : { a: number; b: string; } +>{ a: 1, b: "s" } : { a: number; b: string; } +>a : number +>b : string +>exprString1 : string +>exprBoolean1 : boolean + //Cond is an object type expression foo() ? exprAny1 : exprAny2; >foo() ? exprAny1 : exprAny2 : any @@ -162,6 +177,13 @@ condObject.valueOf() ? exprIsObject1 : exprIsObject2; >exprIsObject1 : Object >exprIsObject2 : Object +new Date() ? exprString1 : exprBoolean1; // union +>new Date() ? exprString1 : exprBoolean1 : string | boolean +>new Date() : Date +>Date : { (): string; new (): Date; new (value: number): Date; new (value: string): Date; new (year: number, month: number, date?: number, hours?: number, minutes?: number, seconds?: number, ms?: number): Date; prototype: Date; parse(s: string): number; UTC(year: number, month: number, date?: number, hours?: number, minutes?: number, seconds?: number, ms?: number): number; now(): number; } +>exprString1 : string +>exprBoolean1 : boolean + //Results shoud be same as Expr1 and Expr2 var resultIsAny1 = condObject ? exprAny1 : exprAny2; >resultIsAny1 : any @@ -198,6 +220,13 @@ var resultIsObject1 = condObject ? exprIsObject1 : exprIsObject2; >exprIsObject1 : Object >exprIsObject2 : Object +var resultIsStringOrBoolean1 = condObject ? exprString1 : exprBoolean1; // union +>resultIsStringOrBoolean1 : string | boolean +>condObject ? exprString1 : exprBoolean1 : string | boolean +>condObject : Object +>exprString1 : string +>exprBoolean1 : boolean + var resultIsAny2 = ((a: string) => a.length) ? exprAny1 : exprAny2; >resultIsAny2 : any >((a: string) => a.length) ? exprAny1 : exprAny2 : any @@ -250,6 +279,16 @@ var resultIsObject2 = ({ a: 1, b: "s" }) ? exprIsObject1 : exprIsObject2; >exprIsObject1 : Object >exprIsObject2 : Object +var resultIsStringOrBoolean2 = ({ a: 1, b: "s" }) ? exprString1 : exprBoolean1; // union +>resultIsStringOrBoolean2 : string | boolean +>({ a: 1, b: "s" }) ? exprString1 : exprBoolean1 : string | boolean +>({ a: 1, b: "s" }) : { a: number; b: string; } +>{ a: 1, b: "s" } : { a: number; b: string; } +>a : number +>b : string +>exprString1 : string +>exprBoolean1 : boolean + var resultIsAny3 = foo() ? exprAny1 : exprAny2; >resultIsAny3 : any >foo() ? exprAny1 : exprAny2 : any @@ -294,3 +333,13 @@ var resultIsObject3 = condObject.valueOf() ? exprIsObject1 : exprIsObject2; >exprIsObject1 : Object >exprIsObject2 : Object +var resultIsStringOrBoolean3 = C.doIt() ? exprString1 : exprBoolean1; // union +>resultIsStringOrBoolean3 : string | boolean +>C.doIt() ? exprString1 : exprBoolean1 : string | boolean +>C.doIt() : void +>C.doIt : () => void +>C : typeof C +>doIt : () => void +>exprString1 : string +>exprBoolean1 : boolean + diff --git a/tests/baselines/reference/conditionalOperatorConditoinIsAnyType.js b/tests/baselines/reference/conditionalOperatorConditoinIsAnyType.js index 5869023d17d..80cfaf97f26 100644 --- a/tests/baselines/reference/conditionalOperatorConditoinIsAnyType.js +++ b/tests/baselines/reference/conditionalOperatorConditoinIsAnyType.js @@ -21,6 +21,7 @@ condAny ? exprBoolean1 : exprBoolean2; condAny ? exprNumber1 : exprNumber2; condAny ? exprString1 : exprString2; condAny ? exprIsObject1 : exprIsObject2; +condAny ? exprString1 : exprBoolean1; // union //Cond is an any type literal null ? exprAny1 : exprAny2; @@ -28,6 +29,7 @@ null ? exprBoolean1 : exprBoolean2; undefined ? exprNumber1 : exprNumber2; [null, undefined] ? exprString1 : exprString2; [null, undefined] ? exprIsObject1 : exprIsObject2; +undefined ? exprString1 : exprBoolean1; // union //Cond is an any type expression x.doSomeThing() ? exprAny1 : exprAny2; @@ -35,6 +37,7 @@ x("x") ? exprBoolean1 : exprBoolean2; x(x) ? exprNumber1 : exprNumber2; x("x") ? exprString1 : exprString2; x.doSomeThing() ? exprIsObject1 : exprIsObject2; +x.doSomeThing() ? exprString1 : exprBoolean1; // union //Results shoud be same as Expr1 and Expr2 var resultIsAny1 = condAny ? exprAny1 : exprAny2; @@ -42,19 +45,23 @@ var resultIsBoolean1 = condAny ? exprBoolean1 : exprBoolean2; var resultIsNumber1 = condAny ? exprNumber1 : exprNumber2; var resultIsString1 = condAny ? exprString1 : exprString2; var resultIsObject1 = condAny ? exprIsObject1 : exprIsObject2; +var resultIsStringOrBoolean1 = condAny ? exprString1 : exprBoolean1; // union var resultIsAny2 = null ? exprAny1 : exprAny2; var resultIsBoolean2 = null ? exprBoolean1 : exprBoolean2; var resultIsNumber2 = undefined ? exprNumber1 : exprNumber2; var resultIsString2 = [null, undefined] ? exprString1 : exprString2; var resultIsObject2 = [null, undefined] ? exprIsObject1 : exprIsObject2; +var resultIsStringOrBoolean2 = null ? exprString1 : exprBoolean1; // union +var resultIsStringOrBoolean3 = undefined ? exprString1 : exprBoolean1; // union +var resultIsStringOrBoolean4 = [null, undefined] ? exprString1 : exprBoolean1; // union var resultIsAny3 = x.doSomeThing() ? exprAny1 : exprAny2; var resultIsBoolean3 = x("x") ? exprBoolean1 : exprBoolean2; var resultIsNumber3 = x(x) ? exprNumber1 : exprNumber2; var resultIsString3 = x("x") ? exprString1 : exprString2; var resultIsObject3 = x.doSomeThing() ? exprIsObject1 : exprIsObject2; - +var resultIsStringOrBoolean5 = x.doSomeThing() ? exprString1 : exprBoolean1; // union //// [conditionalOperatorConditoinIsAnyType.js] //Cond ? Expr1 : Expr2, Cond is of any type, Expr1 and Expr2 have the same type @@ -76,31 +83,39 @@ condAny ? exprBoolean1 : exprBoolean2; condAny ? exprNumber1 : exprNumber2; condAny ? exprString1 : exprString2; condAny ? exprIsObject1 : exprIsObject2; +condAny ? exprString1 : exprBoolean1; // union //Cond is an any type literal null ? exprAny1 : exprAny2; null ? exprBoolean1 : exprBoolean2; undefined ? exprNumber1 : exprNumber2; [null, undefined] ? exprString1 : exprString2; [null, undefined] ? exprIsObject1 : exprIsObject2; +undefined ? exprString1 : exprBoolean1; // union //Cond is an any type expression x.doSomeThing() ? exprAny1 : exprAny2; x("x") ? exprBoolean1 : exprBoolean2; x(x) ? exprNumber1 : exprNumber2; x("x") ? exprString1 : exprString2; x.doSomeThing() ? exprIsObject1 : exprIsObject2; +x.doSomeThing() ? exprString1 : exprBoolean1; // union //Results shoud be same as Expr1 and Expr2 var resultIsAny1 = condAny ? exprAny1 : exprAny2; var resultIsBoolean1 = condAny ? exprBoolean1 : exprBoolean2; var resultIsNumber1 = condAny ? exprNumber1 : exprNumber2; var resultIsString1 = condAny ? exprString1 : exprString2; var resultIsObject1 = condAny ? exprIsObject1 : exprIsObject2; +var resultIsStringOrBoolean1 = condAny ? exprString1 : exprBoolean1; // union var resultIsAny2 = null ? exprAny1 : exprAny2; var resultIsBoolean2 = null ? exprBoolean1 : exprBoolean2; var resultIsNumber2 = undefined ? exprNumber1 : exprNumber2; var resultIsString2 = [null, undefined] ? exprString1 : exprString2; var resultIsObject2 = [null, undefined] ? exprIsObject1 : exprIsObject2; +var resultIsStringOrBoolean2 = null ? exprString1 : exprBoolean1; // union +var resultIsStringOrBoolean3 = undefined ? exprString1 : exprBoolean1; // union +var resultIsStringOrBoolean4 = [null, undefined] ? exprString1 : exprBoolean1; // union var resultIsAny3 = x.doSomeThing() ? exprAny1 : exprAny2; var resultIsBoolean3 = x("x") ? exprBoolean1 : exprBoolean2; var resultIsNumber3 = x(x) ? exprNumber1 : exprNumber2; var resultIsString3 = x("x") ? exprString1 : exprString2; var resultIsObject3 = x.doSomeThing() ? exprIsObject1 : exprIsObject2; +var resultIsStringOrBoolean5 = x.doSomeThing() ? exprString1 : exprBoolean1; // union diff --git a/tests/baselines/reference/conditionalOperatorConditoinIsAnyType.types b/tests/baselines/reference/conditionalOperatorConditoinIsAnyType.types index 9f5fc9326bb..6542377795f 100644 --- a/tests/baselines/reference/conditionalOperatorConditoinIsAnyType.types +++ b/tests/baselines/reference/conditionalOperatorConditoinIsAnyType.types @@ -69,6 +69,12 @@ condAny ? exprIsObject1 : exprIsObject2; >exprIsObject1 : Object >exprIsObject2 : Object +condAny ? exprString1 : exprBoolean1; // union +>condAny ? exprString1 : exprBoolean1 : string | boolean +>condAny : any +>exprString1 : string +>exprBoolean1 : boolean + //Cond is an any type literal null ? exprAny1 : exprAny2; >null ? exprAny1 : exprAny2 : any @@ -100,6 +106,12 @@ undefined ? exprNumber1 : exprNumber2; >exprIsObject1 : Object >exprIsObject2 : Object +undefined ? exprString1 : exprBoolean1; // union +>undefined ? exprString1 : exprBoolean1 : string | boolean +>undefined : undefined +>exprString1 : string +>exprBoolean1 : boolean + //Cond is an any type expression x.doSomeThing() ? exprAny1 : exprAny2; >x.doSomeThing() ? exprAny1 : exprAny2 : any @@ -141,6 +153,15 @@ x.doSomeThing() ? exprIsObject1 : exprIsObject2; >exprIsObject1 : Object >exprIsObject2 : Object +x.doSomeThing() ? exprString1 : exprBoolean1; // union +>x.doSomeThing() ? exprString1 : exprBoolean1 : string | boolean +>x.doSomeThing() : any +>x.doSomeThing : any +>x : any +>doSomeThing : any +>exprString1 : string +>exprBoolean1 : boolean + //Results shoud be same as Expr1 and Expr2 var resultIsAny1 = condAny ? exprAny1 : exprAny2; >resultIsAny1 : any @@ -177,6 +198,13 @@ var resultIsObject1 = condAny ? exprIsObject1 : exprIsObject2; >exprIsObject1 : Object >exprIsObject2 : Object +var resultIsStringOrBoolean1 = condAny ? exprString1 : exprBoolean1; // union +>resultIsStringOrBoolean1 : string | boolean +>condAny ? exprString1 : exprBoolean1 : string | boolean +>condAny : any +>exprString1 : string +>exprBoolean1 : boolean + var resultIsAny2 = null ? exprAny1 : exprAny2; >resultIsAny2 : any >null ? exprAny1 : exprAny2 : any @@ -212,6 +240,27 @@ var resultIsObject2 = [null, undefined] ? exprIsObject1 : exprIsObject2; >exprIsObject1 : Object >exprIsObject2 : Object +var resultIsStringOrBoolean2 = null ? exprString1 : exprBoolean1; // union +>resultIsStringOrBoolean2 : string | boolean +>null ? exprString1 : exprBoolean1 : string | boolean +>exprString1 : string +>exprBoolean1 : boolean + +var resultIsStringOrBoolean3 = undefined ? exprString1 : exprBoolean1; // union +>resultIsStringOrBoolean3 : string | boolean +>undefined ? exprString1 : exprBoolean1 : string | boolean +>undefined : undefined +>exprString1 : string +>exprBoolean1 : boolean + +var resultIsStringOrBoolean4 = [null, undefined] ? exprString1 : exprBoolean1; // union +>resultIsStringOrBoolean4 : string | boolean +>[null, undefined] ? exprString1 : exprBoolean1 : string | boolean +>[null, undefined] : null[] +>undefined : undefined +>exprString1 : string +>exprBoolean1 : boolean + var resultIsAny3 = x.doSomeThing() ? exprAny1 : exprAny2; >resultIsAny3 : any >x.doSomeThing() ? exprAny1 : exprAny2 : any @@ -257,3 +306,13 @@ var resultIsObject3 = x.doSomeThing() ? exprIsObject1 : exprIsObject2; >exprIsObject1 : Object >exprIsObject2 : Object +var resultIsStringOrBoolean5 = x.doSomeThing() ? exprString1 : exprBoolean1; // union +>resultIsStringOrBoolean5 : string | boolean +>x.doSomeThing() ? exprString1 : exprBoolean1 : string | boolean +>x.doSomeThing() : any +>x.doSomeThing : any +>x : any +>doSomeThing : any +>exprString1 : string +>exprBoolean1 : boolean + diff --git a/tests/baselines/reference/conditionalOperatorConditoinIsStringType.js b/tests/baselines/reference/conditionalOperatorConditoinIsStringType.js index 4bd67a40640..02c398e89e1 100644 --- a/tests/baselines/reference/conditionalOperatorConditoinIsStringType.js +++ b/tests/baselines/reference/conditionalOperatorConditoinIsStringType.js @@ -20,6 +20,7 @@ condString ? exprBoolean1 : exprBoolean2; condString ? exprNumber1 : exprNumber2; condString ? exprString1 : exprString2; condString ? exprIsObject1 : exprIsObject2; +condString ? exprString1 : exprBoolean1; // union //Cond is a string type literal "" ? exprAny1 : exprAny2; @@ -27,6 +28,7 @@ condString ? exprIsObject1 : exprIsObject2; 'c' ? exprNumber1 : exprNumber2; 'string' ? exprString1 : exprString2; " " ? exprIsObject1 : exprIsObject2; +"hello " ? exprString1 : exprBoolean1; // union //Cond is a string type expression function foo() { return "string" }; @@ -37,6 +39,7 @@ condString.toUpperCase ? exprBoolean1 : exprBoolean2; condString + "string" ? exprNumber1 : exprNumber2; foo() ? exprString1 : exprString2; array[1] ? exprIsObject1 : exprIsObject2; +foo() ? exprString1 : exprBoolean1; // union //Results shoud be same as Expr1 and Expr2 var resultIsAny1 = condString ? exprAny1 : exprAny2; @@ -44,19 +47,22 @@ var resultIsBoolean1 = condString ? exprBoolean1 : exprBoolean2; var resultIsNumber1 = condString ? exprNumber1 : exprNumber2; var resultIsString1 = condString ? exprString1 : exprString2; var resultIsObject1 = condString ? exprIsObject1 : exprIsObject2; +var resultIsStringOrBoolean1 = condString ? exprString1 : exprBoolean1; // union var resultIsAny2 = "" ? exprAny1 : exprAny2; var resultIsBoolean2 = "string" ? exprBoolean1 : exprBoolean2; var resultIsNumber2 = 'c' ? exprNumber1 : exprNumber2; var resultIsString2 = 'string' ? exprString1 : exprString2; var resultIsObject2 = " " ? exprIsObject1 : exprIsObject2; +var resultIsStringOrBoolean2 = "hello" ? exprString1 : exprBoolean1; // union var resultIsAny3 = typeof condString ? exprAny1 : exprAny2; var resultIsBoolean3 = condString.toUpperCase ? exprBoolean1 : exprBoolean2; var resultIsNumber3 = condString + "string" ? exprNumber1 : exprNumber2; var resultIsString3 = foo() ? exprString1 : exprString2; var resultIsObject3 = array[1] ? exprIsObject1 : exprIsObject2; - +var resultIsStringOrBoolean3 = typeof condString ? exprString1 : exprBoolean1; // union +var resultIsStringOrBoolean4 = condString.toUpperCase ? exprString1 : exprBoolean1; // union //// [conditionalOperatorConditoinIsStringType.js] //Cond ? Expr1 : Expr2, Cond is of string type, Expr1 and Expr2 have the same type @@ -77,12 +83,14 @@ condString ? exprBoolean1 : exprBoolean2; condString ? exprNumber1 : exprNumber2; condString ? exprString1 : exprString2; condString ? exprIsObject1 : exprIsObject2; +condString ? exprString1 : exprBoolean1; // union //Cond is a string type literal "" ? exprAny1 : exprAny2; "string" ? exprBoolean1 : exprBoolean2; 'c' ? exprNumber1 : exprNumber2; 'string' ? exprString1 : exprString2; " " ? exprIsObject1 : exprIsObject2; +"hello " ? exprString1 : exprBoolean1; // union //Cond is a string type expression function foo() { return "string"; @@ -94,19 +102,24 @@ condString.toUpperCase ? exprBoolean1 : exprBoolean2; condString + "string" ? exprNumber1 : exprNumber2; foo() ? exprString1 : exprString2; array[1] ? exprIsObject1 : exprIsObject2; +foo() ? exprString1 : exprBoolean1; // union //Results shoud be same as Expr1 and Expr2 var resultIsAny1 = condString ? exprAny1 : exprAny2; var resultIsBoolean1 = condString ? exprBoolean1 : exprBoolean2; var resultIsNumber1 = condString ? exprNumber1 : exprNumber2; var resultIsString1 = condString ? exprString1 : exprString2; var resultIsObject1 = condString ? exprIsObject1 : exprIsObject2; +var resultIsStringOrBoolean1 = condString ? exprString1 : exprBoolean1; // union var resultIsAny2 = "" ? exprAny1 : exprAny2; var resultIsBoolean2 = "string" ? exprBoolean1 : exprBoolean2; var resultIsNumber2 = 'c' ? exprNumber1 : exprNumber2; var resultIsString2 = 'string' ? exprString1 : exprString2; var resultIsObject2 = " " ? exprIsObject1 : exprIsObject2; +var resultIsStringOrBoolean2 = "hello" ? exprString1 : exprBoolean1; // union var resultIsAny3 = typeof condString ? exprAny1 : exprAny2; var resultIsBoolean3 = condString.toUpperCase ? exprBoolean1 : exprBoolean2; var resultIsNumber3 = condString + "string" ? exprNumber1 : exprNumber2; var resultIsString3 = foo() ? exprString1 : exprString2; var resultIsObject3 = array[1] ? exprIsObject1 : exprIsObject2; +var resultIsStringOrBoolean3 = typeof condString ? exprString1 : exprBoolean1; // union +var resultIsStringOrBoolean4 = condString.toUpperCase ? exprString1 : exprBoolean1; // union diff --git a/tests/baselines/reference/conditionalOperatorConditoinIsStringType.types b/tests/baselines/reference/conditionalOperatorConditoinIsStringType.types index 668e0fc437c..45a4db8d295 100644 --- a/tests/baselines/reference/conditionalOperatorConditoinIsStringType.types +++ b/tests/baselines/reference/conditionalOperatorConditoinIsStringType.types @@ -66,6 +66,12 @@ condString ? exprIsObject1 : exprIsObject2; >exprIsObject1 : Object >exprIsObject2 : Object +condString ? exprString1 : exprBoolean1; // union +>condString ? exprString1 : exprBoolean1 : string | boolean +>condString : string +>exprString1 : string +>exprBoolean1 : boolean + //Cond is a string type literal "" ? exprAny1 : exprAny2; >"" ? exprAny1 : exprAny2 : any @@ -92,6 +98,11 @@ condString ? exprIsObject1 : exprIsObject2; >exprIsObject1 : Object >exprIsObject2 : Object +"hello " ? exprString1 : exprBoolean1; // union +>"hello " ? exprString1 : exprBoolean1 : string | boolean +>exprString1 : string +>exprBoolean1 : boolean + //Cond is a string type expression function foo() { return "string" }; >foo : () => string @@ -136,6 +147,13 @@ array[1] ? exprIsObject1 : exprIsObject2; >exprIsObject1 : Object >exprIsObject2 : Object +foo() ? exprString1 : exprBoolean1; // union +>foo() ? exprString1 : exprBoolean1 : string | boolean +>foo() : string +>foo : () => string +>exprString1 : string +>exprBoolean1 : boolean + //Results shoud be same as Expr1 and Expr2 var resultIsAny1 = condString ? exprAny1 : exprAny2; >resultIsAny1 : any @@ -172,6 +190,13 @@ var resultIsObject1 = condString ? exprIsObject1 : exprIsObject2; >exprIsObject1 : Object >exprIsObject2 : Object +var resultIsStringOrBoolean1 = condString ? exprString1 : exprBoolean1; // union +>resultIsStringOrBoolean1 : string | boolean +>condString ? exprString1 : exprBoolean1 : string | boolean +>condString : string +>exprString1 : string +>exprBoolean1 : boolean + var resultIsAny2 = "" ? exprAny1 : exprAny2; >resultIsAny2 : any >"" ? exprAny1 : exprAny2 : any @@ -202,6 +227,12 @@ var resultIsObject2 = " " ? exprIsObject1 : exprIsObject2; >exprIsObject1 : Object >exprIsObject2 : Object +var resultIsStringOrBoolean2 = "hello" ? exprString1 : exprBoolean1; // union +>resultIsStringOrBoolean2 : string | boolean +>"hello" ? exprString1 : exprBoolean1 : string | boolean +>exprString1 : string +>exprBoolean1 : boolean + var resultIsAny3 = typeof condString ? exprAny1 : exprAny2; >resultIsAny3 : any >typeof condString ? exprAny1 : exprAny2 : any @@ -243,3 +274,20 @@ var resultIsObject3 = array[1] ? exprIsObject1 : exprIsObject2; >exprIsObject1 : Object >exprIsObject2 : Object +var resultIsStringOrBoolean3 = typeof condString ? exprString1 : exprBoolean1; // union +>resultIsStringOrBoolean3 : string | boolean +>typeof condString ? exprString1 : exprBoolean1 : string | boolean +>typeof condString : string +>condString : string +>exprString1 : string +>exprBoolean1 : boolean + +var resultIsStringOrBoolean4 = condString.toUpperCase ? exprString1 : exprBoolean1; // union +>resultIsStringOrBoolean4 : string | boolean +>condString.toUpperCase ? exprString1 : exprBoolean1 : string | boolean +>condString.toUpperCase : () => string +>condString : string +>toUpperCase : () => string +>exprString1 : string +>exprBoolean1 : boolean + diff --git a/tests/baselines/reference/conditionalOperatorWithoutIdenticalBCT.errors.txt b/tests/baselines/reference/conditionalOperatorWithoutIdenticalBCT.errors.txt index 27c08308c33..e04411e8f69 100644 --- a/tests/baselines/reference/conditionalOperatorWithoutIdenticalBCT.errors.txt +++ b/tests/baselines/reference/conditionalOperatorWithoutIdenticalBCT.errors.txt @@ -4,13 +4,13 @@ tests/cases/conformance/expressions/conditonalOperator/conditionalOperatorWithou tests/cases/conformance/expressions/conditonalOperator/conditionalOperatorWithoutIdenticalBCT.ts(16,5): error TS2323: Type 'A | B' is not assignable to type 'B'. Type 'A' is not assignable to type 'B'. Property 'propertyB' is missing in type 'A'. -tests/cases/conformance/expressions/conditonalOperator/conditionalOperatorWithoutIdenticalBCT.ts(18,5): error TS2323: Type '((m: X) => number) | ((n: X) => string)' is not assignable to type '(t: X) => number'. +tests/cases/conformance/expressions/conditonalOperator/conditionalOperatorWithoutIdenticalBCT.ts(19,5): error TS2323: Type '((m: X) => number) | ((n: X) => string)' is not assignable to type '(t: X) => number'. Type '(n: X) => string' is not assignable to type '(t: X) => number'. Type 'string' is not assignable to type 'number'. -tests/cases/conformance/expressions/conditonalOperator/conditionalOperatorWithoutIdenticalBCT.ts(19,5): error TS2323: Type '((m: X) => number) | ((n: X) => string)' is not assignable to type '(t: X) => string'. +tests/cases/conformance/expressions/conditonalOperator/conditionalOperatorWithoutIdenticalBCT.ts(20,5): error TS2323: Type '((m: X) => number) | ((n: X) => string)' is not assignable to type '(t: X) => string'. Type '(m: X) => number' is not assignable to type '(t: X) => string'. Type 'number' is not assignable to type 'string'. -tests/cases/conformance/expressions/conditonalOperator/conditionalOperatorWithoutIdenticalBCT.ts(20,5): error TS2323: Type '((m: X) => number) | ((n: X) => string)' is not assignable to type '(t: X) => boolean'. +tests/cases/conformance/expressions/conditonalOperator/conditionalOperatorWithoutIdenticalBCT.ts(21,5): error TS2323: Type '((m: X) => number) | ((n: X) => string)' is not assignable to type '(t: X) => boolean'. Type '(m: X) => number' is not assignable to type '(t: X) => boolean'. Type 'number' is not assignable to type 'boolean'. @@ -40,6 +40,7 @@ tests/cases/conformance/expressions/conditonalOperator/conditionalOperatorWithou !!! error TS2323: Type 'A | B' is not assignable to type 'B'. !!! error TS2323: Type 'A' is not assignable to type 'B'. !!! error TS2323: Property 'propertyB' is missing in type 'A'. + var result31: A | B = true ? a : b; var result4: (t: X) => number = true ? (m) => m.propertyX1 : (n) => n.propertyX2; ~~~~~~~ @@ -55,4 +56,6 @@ tests/cases/conformance/expressions/conditonalOperator/conditionalOperatorWithou ~~~~~~~ !!! error TS2323: Type '((m: X) => number) | ((n: X) => string)' is not assignable to type '(t: X) => boolean'. !!! error TS2323: Type '(m: X) => number' is not assignable to type '(t: X) => boolean'. -!!! error TS2323: Type 'number' is not assignable to type 'boolean'. \ No newline at end of file +!!! error TS2323: Type 'number' is not assignable to type 'boolean'. + var result61: (t: X) => number| string = true ? (m) => m.propertyX1 : (n) => n.propertyX2; + \ No newline at end of file diff --git a/tests/baselines/reference/conditionalOperatorWithoutIdenticalBCT.js b/tests/baselines/reference/conditionalOperatorWithoutIdenticalBCT.js index b6376dd781f..83262ed1301 100644 --- a/tests/baselines/reference/conditionalOperatorWithoutIdenticalBCT.js +++ b/tests/baselines/reference/conditionalOperatorWithoutIdenticalBCT.js @@ -15,10 +15,13 @@ var result1 = true ? a : b; //Be contextually typed and and bct is not identical, results in errors that union type is not assignable to target var result2: A = true ? a : b; var result3: B = true ? a : b; +var result31: A | B = true ? a : b; var result4: (t: X) => number = true ? (m) => m.propertyX1 : (n) => n.propertyX2; var result5: (t: X) => string = true ? (m) => m.propertyX1 : (n) => n.propertyX2; -var result6: (t: X) => boolean = true ? (m) => m.propertyX1 : (n) => n.propertyX2; +var result6: (t: X) => boolean = true ? (m) => m.propertyX1 : (n) => n.propertyX2; +var result61: (t: X) => number| string = true ? (m) => m.propertyX1 : (n) => n.propertyX2; + //// [conditionalOperatorWithoutIdenticalBCT.js] var __extends = this.__extends || function (d, b) { @@ -59,6 +62,8 @@ var result1 = true ? a : b; //Be contextually typed and and bct is not identical, results in errors that union type is not assignable to target var result2 = true ? a : b; var result3 = true ? a : b; +var result31 = true ? a : b; var result4 = true ? function (m) { return m.propertyX1; } : function (n) { return n.propertyX2; }; var result5 = true ? function (m) { return m.propertyX1; } : function (n) { return n.propertyX2; }; var result6 = true ? function (m) { return m.propertyX1; } : function (n) { return n.propertyX2; }; +var result61 = true ? function (m) { return m.propertyX1; } : function (n) { return n.propertyX2; }; diff --git a/tests/cases/conformance/expressions/conditonalOperator/conditionalOperatorConditionIsBooleanType.ts b/tests/cases/conformance/expressions/conditonalOperator/conditionalOperatorConditionIsBooleanType.ts index 80c2a8e8ec8..67b609e03e9 100644 --- a/tests/cases/conformance/expressions/conditonalOperator/conditionalOperatorConditionIsBooleanType.ts +++ b/tests/cases/conformance/expressions/conditonalOperator/conditionalOperatorConditionIsBooleanType.ts @@ -19,6 +19,7 @@ condBoolean ? exprBoolean1 : exprBoolean2; condBoolean ? exprNumber1 : exprNumber2; condBoolean ? exprString1 : exprString2; condBoolean ? exprIsObject1 : exprIsObject2; +condBoolean ? exprString1 : exprBoolean1; // union //Cond is a boolean type literal true ? exprAny1 : exprAny2; @@ -26,6 +27,7 @@ false ? exprBoolean1 : exprBoolean2; true ? exprNumber1 : exprNumber2; false ? exprString1 : exprString2; true ? exprIsObject1 : exprIsObject2; +true ? exprString1 : exprBoolean1; // union //Cond is a boolean type expression !true ? exprAny1 : exprAny2; @@ -33,6 +35,7 @@ typeof "123" == "string" ? exprBoolean1 : exprBoolean2; 2 > 1 ? exprNumber1 : exprNumber2; null === undefined ? exprString1 : exprString2; true || false ? exprIsObject1 : exprIsObject2; +null === undefined ? exprString1 : exprBoolean1; // union //Results shoud be same as Expr1 and Expr2 var resultIsAny1 = condBoolean ? exprAny1 : exprAny2; @@ -40,15 +43,19 @@ var resultIsBoolean1 = condBoolean ? exprBoolean1 : exprBoolean2; var resultIsNumber1 = condBoolean ? exprNumber1 : exprNumber2; var resultIsString1 = condBoolean ? exprString1 : exprString2; var resultIsObject1 = condBoolean ? exprIsObject1 : exprIsObject2; +var resultIsStringOrBoolean1 = condBoolean ? exprString1 : exprBoolean1; // union var resultIsAny2 = true ? exprAny1 : exprAny2; var resultIsBoolean2 = false ? exprBoolean1 : exprBoolean2; var resultIsNumber2 = true ? exprNumber1 : exprNumber2; var resultIsString2 = false ? exprString1 : exprString2; var resultIsObject2 = true ? exprIsObject1 : exprIsObject2; +var resultIsStringOrBoolean2 = true ? exprString1 : exprBoolean1; // union +var resultIsStringOrBoolean3 = false ? exprString1 : exprBoolean1; // union var resultIsAny3 = !true ? exprAny1 : exprAny2; var resultIsBoolean3 = typeof "123" == "string" ? exprBoolean1 : exprBoolean2; var resultIsNumber3 = 2 > 1 ? exprNumber1 : exprNumber2; var resultIsString3 = null === undefined ? exprString1 : exprString2; var resultIsObject3 = true || false ? exprIsObject1 : exprIsObject2; +var resultIsStringOrBoolean4 = typeof "123" === "string" ? exprString1 : exprBoolean1; // union diff --git a/tests/cases/conformance/expressions/conditonalOperator/conditionalOperatorConditionIsNumberType.ts b/tests/cases/conformance/expressions/conditonalOperator/conditionalOperatorConditionIsNumberType.ts index 5ec1beb9342..2e2c39ef316 100644 --- a/tests/cases/conformance/expressions/conditonalOperator/conditionalOperatorConditionIsNumberType.ts +++ b/tests/cases/conformance/expressions/conditonalOperator/conditionalOperatorConditionIsNumberType.ts @@ -19,6 +19,7 @@ condNumber ? exprBoolean1 : exprBoolean2; condNumber ? exprNumber1 : exprNumber2; condNumber ? exprString1 : exprString2; condNumber ? exprIsObject1 : exprIsObject2; +condNumber ? exprString1 : exprBoolean1; // Union //Cond is a number type literal 1 ? exprAny1 : exprAny2; @@ -26,6 +27,7 @@ condNumber ? exprIsObject1 : exprIsObject2; 0.123456789 ? exprNumber1 : exprNumber2; - 10000000000000 ? exprString1 : exprString2; 1000000000000 ? exprIsObject1 : exprIsObject2; +10000 ? exprString1 : exprBoolean1; // Union //Cond is a number type expression function foo() { return 1 }; @@ -36,6 +38,7 @@ var array = [1, 2, 3]; "string".length ? exprNumber1 : exprNumber2; foo() ? exprString1 : exprString2; foo() / array[1] ? exprIsObject1 : exprIsObject2; +foo() ? exprString1 : exprBoolean1; // Union //Results shoud be same as Expr1 and Expr2 var resultIsAny1 = condNumber ? exprAny1 : exprAny2; @@ -43,15 +46,18 @@ var resultIsBoolean1 = condNumber ? exprBoolean1 : exprBoolean2; var resultIsNumber1 = condNumber ? exprNumber1 : exprNumber2; var resultIsString1 = condNumber ? exprString1 : exprString2; var resultIsObject1 = condNumber ? exprIsObject1 : exprIsObject2; +var resultIsStringOrBoolean1 = condNumber ? exprString1 : exprBoolean1; // Union var resultIsAny2 = 1 ? exprAny1 : exprAny2; var resultIsBoolean2 = 0 ? exprBoolean1 : exprBoolean2; var resultIsNumber2 = 0.123456789 ? exprNumber1 : exprNumber2; var resultIsString2 = - 10000000000000 ? exprString1 : exprString2; var resultIsObject2 = 1000000000000 ? exprIsObject1 : exprIsObject2; +var resultIsStringOrBoolean2 = 10000 ? exprString1 : exprBoolean1; // Union var resultIsAny3 = 1 * 0 ? exprAny1 : exprAny2; var resultIsBoolean3 = 1 + 1 ? exprBoolean1 : exprBoolean2; var resultIsNumber3 = "string".length ? exprNumber1 : exprNumber2; var resultIsString3 = foo() ? exprString1 : exprString2; var resultIsObject3 = foo() / array[1] ? exprIsObject1 : exprIsObject2; +var resultIsStringOrBoolean3 = foo() / array[1] ? exprString1 : exprBoolean1; // Union \ No newline at end of file diff --git a/tests/cases/conformance/expressions/conditonalOperator/conditionalOperatorConditionIsObjectType.ts b/tests/cases/conformance/expressions/conditonalOperator/conditionalOperatorConditionIsObjectType.ts index 5c8dcf0a13e..24b6970e12b 100644 --- a/tests/cases/conformance/expressions/conditonalOperator/conditionalOperatorConditionIsObjectType.ts +++ b/tests/cases/conformance/expressions/conditonalOperator/conditionalOperatorConditionIsObjectType.ts @@ -22,6 +22,7 @@ condObject ? exprBoolean1 : exprBoolean2; condObject ? exprNumber1 : exprNumber2; condObject ? exprString1 : exprString2; condObject ? exprIsObject1 : exprIsObject2; +condObject ? exprString1 : exprBoolean1; // union //Cond is an object type literal ((a: string) => a.length) ? exprAny1 : exprAny2; @@ -29,6 +30,7 @@ condObject ? exprIsObject1 : exprIsObject2; ({}) ? exprNumber1 : exprNumber2; ({ a: 1, b: "s" }) ? exprString1 : exprString2; ({ a: 1, b: "s" }) ? exprIsObject1 : exprIsObject2; +({ a: 1, b: "s" }) ? exprString1: exprBoolean1; // union //Cond is an object type expression foo() ? exprAny1 : exprAny2; @@ -36,6 +38,7 @@ new Date() ? exprBoolean1 : exprBoolean2; new C() ? exprNumber1 : exprNumber2; C.doIt() ? exprString1 : exprString2; condObject.valueOf() ? exprIsObject1 : exprIsObject2; +new Date() ? exprString1 : exprBoolean1; // union //Results shoud be same as Expr1 and Expr2 var resultIsAny1 = condObject ? exprAny1 : exprAny2; @@ -43,15 +46,18 @@ var resultIsBoolean1 = condObject ? exprBoolean1 : exprBoolean2; var resultIsNumber1 = condObject ? exprNumber1 : exprNumber2; var resultIsString1 = condObject ? exprString1 : exprString2; var resultIsObject1 = condObject ? exprIsObject1 : exprIsObject2; +var resultIsStringOrBoolean1 = condObject ? exprString1 : exprBoolean1; // union var resultIsAny2 = ((a: string) => a.length) ? exprAny1 : exprAny2; var resultIsBoolean2 = ((a: string) => a.length) ? exprBoolean1 : exprBoolean2; var resultIsNumber2 = ({}) ? exprNumber1 : exprNumber2; var resultIsString2 = ({ a: 1, b: "s" }) ? exprString1 : exprString2; var resultIsObject2 = ({ a: 1, b: "s" }) ? exprIsObject1 : exprIsObject2; +var resultIsStringOrBoolean2 = ({ a: 1, b: "s" }) ? exprString1 : exprBoolean1; // union var resultIsAny3 = foo() ? exprAny1 : exprAny2; var resultIsBoolean3 = new Date() ? exprBoolean1 : exprBoolean2; var resultIsNumber3 = new C() ? exprNumber1 : exprNumber2; var resultIsString3 = C.doIt() ? exprString1 : exprString2; var resultIsObject3 = condObject.valueOf() ? exprIsObject1 : exprIsObject2; +var resultIsStringOrBoolean3 = C.doIt() ? exprString1 : exprBoolean1; // union diff --git a/tests/cases/conformance/expressions/conditonalOperator/conditionalOperatorConditoinIsAnyType.ts b/tests/cases/conformance/expressions/conditonalOperator/conditionalOperatorConditoinIsAnyType.ts index 67ef99da141..3a03dfdacaa 100644 --- a/tests/cases/conformance/expressions/conditonalOperator/conditionalOperatorConditoinIsAnyType.ts +++ b/tests/cases/conformance/expressions/conditonalOperator/conditionalOperatorConditoinIsAnyType.ts @@ -20,6 +20,7 @@ condAny ? exprBoolean1 : exprBoolean2; condAny ? exprNumber1 : exprNumber2; condAny ? exprString1 : exprString2; condAny ? exprIsObject1 : exprIsObject2; +condAny ? exprString1 : exprBoolean1; // union //Cond is an any type literal null ? exprAny1 : exprAny2; @@ -27,6 +28,7 @@ null ? exprBoolean1 : exprBoolean2; undefined ? exprNumber1 : exprNumber2; [null, undefined] ? exprString1 : exprString2; [null, undefined] ? exprIsObject1 : exprIsObject2; +undefined ? exprString1 : exprBoolean1; // union //Cond is an any type expression x.doSomeThing() ? exprAny1 : exprAny2; @@ -34,6 +36,7 @@ x("x") ? exprBoolean1 : exprBoolean2; x(x) ? exprNumber1 : exprNumber2; x("x") ? exprString1 : exprString2; x.doSomeThing() ? exprIsObject1 : exprIsObject2; +x.doSomeThing() ? exprString1 : exprBoolean1; // union //Results shoud be same as Expr1 and Expr2 var resultIsAny1 = condAny ? exprAny1 : exprAny2; @@ -41,15 +44,20 @@ var resultIsBoolean1 = condAny ? exprBoolean1 : exprBoolean2; var resultIsNumber1 = condAny ? exprNumber1 : exprNumber2; var resultIsString1 = condAny ? exprString1 : exprString2; var resultIsObject1 = condAny ? exprIsObject1 : exprIsObject2; +var resultIsStringOrBoolean1 = condAny ? exprString1 : exprBoolean1; // union var resultIsAny2 = null ? exprAny1 : exprAny2; var resultIsBoolean2 = null ? exprBoolean1 : exprBoolean2; var resultIsNumber2 = undefined ? exprNumber1 : exprNumber2; var resultIsString2 = [null, undefined] ? exprString1 : exprString2; var resultIsObject2 = [null, undefined] ? exprIsObject1 : exprIsObject2; +var resultIsStringOrBoolean2 = null ? exprString1 : exprBoolean1; // union +var resultIsStringOrBoolean3 = undefined ? exprString1 : exprBoolean1; // union +var resultIsStringOrBoolean4 = [null, undefined] ? exprString1 : exprBoolean1; // union var resultIsAny3 = x.doSomeThing() ? exprAny1 : exprAny2; var resultIsBoolean3 = x("x") ? exprBoolean1 : exprBoolean2; var resultIsNumber3 = x(x) ? exprNumber1 : exprNumber2; var resultIsString3 = x("x") ? exprString1 : exprString2; var resultIsObject3 = x.doSomeThing() ? exprIsObject1 : exprIsObject2; +var resultIsStringOrBoolean5 = x.doSomeThing() ? exprString1 : exprBoolean1; // union \ No newline at end of file diff --git a/tests/cases/conformance/expressions/conditonalOperator/conditionalOperatorConditoinIsStringType.ts b/tests/cases/conformance/expressions/conditonalOperator/conditionalOperatorConditoinIsStringType.ts index 37fd9102922..e8f026d52e3 100644 --- a/tests/cases/conformance/expressions/conditonalOperator/conditionalOperatorConditoinIsStringType.ts +++ b/tests/cases/conformance/expressions/conditonalOperator/conditionalOperatorConditoinIsStringType.ts @@ -19,6 +19,7 @@ condString ? exprBoolean1 : exprBoolean2; condString ? exprNumber1 : exprNumber2; condString ? exprString1 : exprString2; condString ? exprIsObject1 : exprIsObject2; +condString ? exprString1 : exprBoolean1; // union //Cond is a string type literal "" ? exprAny1 : exprAny2; @@ -26,6 +27,7 @@ condString ? exprIsObject1 : exprIsObject2; 'c' ? exprNumber1 : exprNumber2; 'string' ? exprString1 : exprString2; " " ? exprIsObject1 : exprIsObject2; +"hello " ? exprString1 : exprBoolean1; // union //Cond is a string type expression function foo() { return "string" }; @@ -36,6 +38,7 @@ condString.toUpperCase ? exprBoolean1 : exprBoolean2; condString + "string" ? exprNumber1 : exprNumber2; foo() ? exprString1 : exprString2; array[1] ? exprIsObject1 : exprIsObject2; +foo() ? exprString1 : exprBoolean1; // union //Results shoud be same as Expr1 and Expr2 var resultIsAny1 = condString ? exprAny1 : exprAny2; @@ -43,15 +46,19 @@ var resultIsBoolean1 = condString ? exprBoolean1 : exprBoolean2; var resultIsNumber1 = condString ? exprNumber1 : exprNumber2; var resultIsString1 = condString ? exprString1 : exprString2; var resultIsObject1 = condString ? exprIsObject1 : exprIsObject2; +var resultIsStringOrBoolean1 = condString ? exprString1 : exprBoolean1; // union var resultIsAny2 = "" ? exprAny1 : exprAny2; var resultIsBoolean2 = "string" ? exprBoolean1 : exprBoolean2; var resultIsNumber2 = 'c' ? exprNumber1 : exprNumber2; var resultIsString2 = 'string' ? exprString1 : exprString2; var resultIsObject2 = " " ? exprIsObject1 : exprIsObject2; +var resultIsStringOrBoolean2 = "hello" ? exprString1 : exprBoolean1; // union var resultIsAny3 = typeof condString ? exprAny1 : exprAny2; var resultIsBoolean3 = condString.toUpperCase ? exprBoolean1 : exprBoolean2; var resultIsNumber3 = condString + "string" ? exprNumber1 : exprNumber2; var resultIsString3 = foo() ? exprString1 : exprString2; var resultIsObject3 = array[1] ? exprIsObject1 : exprIsObject2; +var resultIsStringOrBoolean3 = typeof condString ? exprString1 : exprBoolean1; // union +var resultIsStringOrBoolean4 = condString.toUpperCase ? exprString1 : exprBoolean1; // union \ No newline at end of file diff --git a/tests/cases/conformance/expressions/conditonalOperator/conditionalOperatorWithoutIdenticalBCT.ts b/tests/cases/conformance/expressions/conditonalOperator/conditionalOperatorWithoutIdenticalBCT.ts index feaa3c5a280..f529b4fb9a0 100644 --- a/tests/cases/conformance/expressions/conditonalOperator/conditionalOperatorWithoutIdenticalBCT.ts +++ b/tests/cases/conformance/expressions/conditonalOperator/conditionalOperatorWithoutIdenticalBCT.ts @@ -14,7 +14,9 @@ var result1 = true ? a : b; //Be contextually typed and and bct is not identical, results in errors that union type is not assignable to target var result2: A = true ? a : b; var result3: B = true ? a : b; +var result31: A | B = true ? a : b; var result4: (t: X) => number = true ? (m) => m.propertyX1 : (n) => n.propertyX2; var result5: (t: X) => string = true ? (m) => m.propertyX1 : (n) => n.propertyX2; -var result6: (t: X) => boolean = true ? (m) => m.propertyX1 : (n) => n.propertyX2; \ No newline at end of file +var result6: (t: X) => boolean = true ? (m) => m.propertyX1 : (n) => n.propertyX2; +var result61: (t: X) => number| string = true ? (m) => m.propertyX1 : (n) => n.propertyX2; From 16fc7a22e23775a52fa1d152f217bc54eab1907e Mon Sep 17 00:00:00 2001 From: Sheetal Nandi Date: Mon, 3 Nov 2014 16:42:04 -0800 Subject: [PATCH 017/195] Tests for union type literals A union type literal is written as a sequence of types separated by vertical bars. UnionType: PrimaryOrUnionType | PrimaryType A union typle literal references a union type. When function or constructor types are included in union types they must be enclosed in parentheses --- .../baselines/reference/unionTypeLiterals.js | 29 ++++++++++++++++ .../reference/unionTypeLiterals.types | 34 +++++++++++++++++++ .../typeLiterals/unionTypeLiterals.ts | 15 ++++++++ 3 files changed, 78 insertions(+) create mode 100644 tests/baselines/reference/unionTypeLiterals.js create mode 100644 tests/baselines/reference/unionTypeLiterals.types create mode 100644 tests/cases/conformance/types/specifyingTypes/typeLiterals/unionTypeLiterals.ts diff --git a/tests/baselines/reference/unionTypeLiterals.js b/tests/baselines/reference/unionTypeLiterals.js new file mode 100644 index 00000000000..3e23d47d152 --- /dev/null +++ b/tests/baselines/reference/unionTypeLiterals.js @@ -0,0 +1,29 @@ +//// [unionTypeLiterals.ts] +// basic valid forms of union literals + +var simpleUnion: string | number; +var unionOfUnion: string | number | boolean; + +var arrayOfUnions: (string | number)[]; +var arrayOfUnions: Array; + +var unionOfFunctionType: (() => string) | (() => number); +var unionOfFunctionType: { (): string } | { (): number }; +var unionOfFunctionType: () => string | number; + +var unionOfConstructorType: (new () => string) | (new () => number); +var unionOfConstructorType: { new (): string } | { new (): number }; +var unionOfConstructorType: new () => string | number; + +//// [unionTypeLiterals.js] +// basic valid forms of union literals +var simpleUnion; +var unionOfUnion; +var arrayOfUnions; +var arrayOfUnions; +var unionOfFunctionType; +var unionOfFunctionType; +var unionOfFunctionType; +var unionOfConstructorType; +var unionOfConstructorType; +var unionOfConstructorType; diff --git a/tests/baselines/reference/unionTypeLiterals.types b/tests/baselines/reference/unionTypeLiterals.types new file mode 100644 index 00000000000..90bc4649aa7 --- /dev/null +++ b/tests/baselines/reference/unionTypeLiterals.types @@ -0,0 +1,34 @@ +=== tests/cases/conformance/types/specifyingTypes/typeLiterals/unionTypeLiterals.ts === +// basic valid forms of union literals + +var simpleUnion: string | number; +>simpleUnion : string | number + +var unionOfUnion: string | number | boolean; +>unionOfUnion : string | number | boolean + +var arrayOfUnions: (string | number)[]; +>arrayOfUnions : (string | number)[] + +var arrayOfUnions: Array; +>arrayOfUnions : (string | number)[] +>Array : T[] + +var unionOfFunctionType: (() => string) | (() => number); +>unionOfFunctionType : (() => string) | (() => number) + +var unionOfFunctionType: { (): string } | { (): number }; +>unionOfFunctionType : (() => string) | (() => number) + +var unionOfFunctionType: () => string | number; +>unionOfFunctionType : (() => string) | (() => number) + +var unionOfConstructorType: (new () => string) | (new () => number); +>unionOfConstructorType : (new () => string) | (new () => number) + +var unionOfConstructorType: { new (): string } | { new (): number }; +>unionOfConstructorType : (new () => string) | (new () => number) + +var unionOfConstructorType: new () => string | number; +>unionOfConstructorType : (new () => string) | (new () => number) + diff --git a/tests/cases/conformance/types/specifyingTypes/typeLiterals/unionTypeLiterals.ts b/tests/cases/conformance/types/specifyingTypes/typeLiterals/unionTypeLiterals.ts new file mode 100644 index 00000000000..7d52182beb3 --- /dev/null +++ b/tests/cases/conformance/types/specifyingTypes/typeLiterals/unionTypeLiterals.ts @@ -0,0 +1,15 @@ +// basic valid forms of union literals + +var simpleUnion: string | number; +var unionOfUnion: string | number | boolean; + +var arrayOfUnions: (string | number)[]; +var arrayOfUnions: Array; + +var unionOfFunctionType: (() => string) | (() => number); +var unionOfFunctionType: { (): string } | { (): number }; +var unionOfFunctionType: () => string | number; + +var unionOfConstructorType: (new () => string) | (new () => number); +var unionOfConstructorType: { new (): string } | { new (): number }; +var unionOfConstructorType: new () => string | number; \ No newline at end of file From 1ca9273f49753e864b3a20095feef66d369f1f3d Mon Sep 17 00:00:00 2001 From: Sheetal Nandi Date: Mon, 3 Nov 2014 16:54:00 -0800 Subject: [PATCH 018/195] Identity of union type --- .../reference/unionTypeIdentity.errors.txt | 20 +++++++++++++++++++ .../baselines/reference/unionTypeIdentity.js | 19 ++++++++++++++++++ .../unionTypeIdentity.ts | 8 ++++++++ 3 files changed, 47 insertions(+) create mode 100644 tests/baselines/reference/unionTypeIdentity.errors.txt create mode 100644 tests/baselines/reference/unionTypeIdentity.js create mode 100644 tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/unionTypeIdentity.ts diff --git a/tests/baselines/reference/unionTypeIdentity.errors.txt b/tests/baselines/reference/unionTypeIdentity.errors.txt new file mode 100644 index 00000000000..77d25bd78d1 --- /dev/null +++ b/tests/baselines/reference/unionTypeIdentity.errors.txt @@ -0,0 +1,20 @@ +tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/unionTypeIdentity.ts(6,5): error TS2403: Subsequent variable declarations must have the same type. Variable 'strOrNum' must be of type 'string | boolean', but here has type 'string'. +tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/unionTypeIdentity.ts(7,5): error TS2403: Subsequent variable declarations must have the same type. Variable 'strOrNum' must be of type 'string | boolean', but here has type 'boolean'. +tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/unionTypeIdentity.ts(8,5): error TS2403: Subsequent variable declarations must have the same type. Variable 'strOrNum' must be of type 'string | boolean', but here has type 'number'. + + +==== tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/unionTypeIdentity.ts (3 errors) ==== + // Two types are considered identical when + // they are union types with identical sets of constituent types, or + var strOrNum: string | boolean; + var strOrNum: boolean | string; + var strOrNum: boolean | string | boolean; + var strOrNum: string; // error + ~~~~~~~~ +!!! error TS2403: Subsequent variable declarations must have the same type. Variable 'strOrNum' must be of type 'string | boolean', but here has type 'string'. + var strOrNum: boolean; // error + ~~~~~~~~ +!!! error TS2403: Subsequent variable declarations must have the same type. Variable 'strOrNum' must be of type 'string | boolean', but here has type 'boolean'. + var strOrNum: number; // error + ~~~~~~~~ +!!! error TS2403: Subsequent variable declarations must have the same type. Variable 'strOrNum' must be of type 'string | boolean', but here has type 'number'. \ No newline at end of file diff --git a/tests/baselines/reference/unionTypeIdentity.js b/tests/baselines/reference/unionTypeIdentity.js new file mode 100644 index 00000000000..82cad827979 --- /dev/null +++ b/tests/baselines/reference/unionTypeIdentity.js @@ -0,0 +1,19 @@ +//// [unionTypeIdentity.ts] +// Two types are considered identical when +// they are union types with identical sets of constituent types, or +var strOrNum: string | boolean; +var strOrNum: boolean | string; +var strOrNum: boolean | string | boolean; +var strOrNum: string; // error +var strOrNum: boolean; // error +var strOrNum: number; // error + +//// [unionTypeIdentity.js] +// Two types are considered identical when +// they are union types with identical sets of constituent types, or +var strOrNum; +var strOrNum; +var strOrNum; +var strOrNum; // error +var strOrNum; // error +var strOrNum; // error diff --git a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/unionTypeIdentity.ts b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/unionTypeIdentity.ts new file mode 100644 index 00000000000..79100f476bc --- /dev/null +++ b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/unionTypeIdentity.ts @@ -0,0 +1,8 @@ +// Two types are considered identical when +// they are union types with identical sets of constituent types, or +var strOrNum: string | boolean; +var strOrNum: boolean | string; +var strOrNum: boolean | string | boolean; +var strOrNum: string; // error +var strOrNum: boolean; // error +var strOrNum: number; // error \ No newline at end of file From 40af15c8ffc0bc805aff2f6ebf8a7a596013ecb7 Mon Sep 17 00:00:00 2001 From: Sheetal Nandi Date: Tue, 4 Nov 2014 15:58:44 -0800 Subject: [PATCH 019/195] Array literal produces union type if the it is not contextually typed --- .../reference/unionTypeFromArrayLiteral.js | 79 +++++++++++++++++ .../reference/unionTypeFromArrayLiteral.types | 87 +++++++++++++++++++ .../types/union/unionTypeFromArrayLiteral.ts | 23 +++++ 3 files changed, 189 insertions(+) create mode 100644 tests/baselines/reference/unionTypeFromArrayLiteral.js create mode 100644 tests/baselines/reference/unionTypeFromArrayLiteral.types create mode 100644 tests/cases/conformance/types/union/unionTypeFromArrayLiteral.ts diff --git a/tests/baselines/reference/unionTypeFromArrayLiteral.js b/tests/baselines/reference/unionTypeFromArrayLiteral.js new file mode 100644 index 00000000000..e0410a65229 --- /dev/null +++ b/tests/baselines/reference/unionTypeFromArrayLiteral.js @@ -0,0 +1,79 @@ +//// [unionTypeFromArrayLiteral.ts] +// The resulting type an array literal expression is determined as follows: +// If the array literal is empty, the resulting type is an array type with the element type Undefined. +// Otherwise, if the array literal is contextually typed by a type that has a property with the numeric name ‘0’, the resulting type is a tuple type constructed from the types of the element expressions. +// Otherwise, the resulting type is an array type with an element type that is the union of the types of the element expressions. + +var arr1 = [1, 2]; // number[] +var arr2 = ["hello", true]; // (string | number)[] +var arr3Tuple: [number, string] = [3, "three"]; // [number, string] +var arr4Tuple: [number, string] = [3, "three", "hello"]; // [number, string, string] +var arrEmpty = []; +var arr5Tuple: { + 0: string; + 5: number; +} = ["hello", true, false, " hello", true, 10, "any"]; // Tuple +class C { foo() { } } +class D { foo2() { } } +class E extends C { foo3() { } } +class F extends C { foo4() { } } +var c: C, d: D, e: E, f: F; +var arr6 = [c, d]; // (C | D)[] +var arr7 = [c, d, e]; // (C | D)[] +var arr8 = [c, e]; // C[] +var arr9 = [e, f]; // (E|F)[] + +//// [unionTypeFromArrayLiteral.js] +// The resulting type an array literal expression is determined as follows: +// If the array literal is empty, the resulting type is an array type with the element type Undefined. +// Otherwise, if the array literal is contextually typed by a type that has a property with the numeric name ‘0’, the resulting type is a tuple type constructed from the types of the element expressions. +// Otherwise, the resulting type is an array type with an element type that is the union of the types of the element expressions. +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 arr1 = [1, 2]; // number[] +var arr2 = ["hello", true]; // (string | number)[] +var arr3Tuple = [3, "three"]; // [number, string] +var arr4Tuple = [3, "three", "hello"]; // [number, string, string] +var arrEmpty = []; +var arr5Tuple = ["hello", true, false, " hello", true, 10, "any"]; // Tuple +var C = (function () { + function C() { + } + C.prototype.foo = function () { + }; + return C; +})(); +var D = (function () { + function D() { + } + D.prototype.foo2 = function () { + }; + return D; +})(); +var E = (function (_super) { + __extends(E, _super); + function E() { + _super.apply(this, arguments); + } + E.prototype.foo3 = function () { + }; + return E; +})(C); +var F = (function (_super) { + __extends(F, _super); + function F() { + _super.apply(this, arguments); + } + F.prototype.foo4 = function () { + }; + return F; +})(C); +var c, d, e, f; +var arr6 = [c, d]; // (C | D)[] +var arr7 = [c, d, e]; // (C | D)[] +var arr8 = [c, e]; // C[] +var arr9 = [e, f]; // (E|F)[] diff --git a/tests/baselines/reference/unionTypeFromArrayLiteral.types b/tests/baselines/reference/unionTypeFromArrayLiteral.types new file mode 100644 index 00000000000..7cb09b3ce6a --- /dev/null +++ b/tests/baselines/reference/unionTypeFromArrayLiteral.types @@ -0,0 +1,87 @@ +=== tests/cases/conformance/types/union/unionTypeFromArrayLiteral.ts === +// The resulting type an array literal expression is determined as follows: +// If the array literal is empty, the resulting type is an array type with the element type Undefined. +// Otherwise, if the array literal is contextually typed by a type that has a property with the numeric name ‘0’, the resulting type is a tuple type constructed from the types of the element expressions. +// Otherwise, the resulting type is an array type with an element type that is the union of the types of the element expressions. + +var arr1 = [1, 2]; // number[] +>arr1 : number[] +>[1, 2] : number[] + +var arr2 = ["hello", true]; // (string | number)[] +>arr2 : (string | boolean)[] +>["hello", true] : (string | boolean)[] + +var arr3Tuple: [number, string] = [3, "three"]; // [number, string] +>arr3Tuple : [number, string] +>[3, "three"] : [number, string] + +var arr4Tuple: [number, string] = [3, "three", "hello"]; // [number, string, string] +>arr4Tuple : [number, string] +>[3, "three", "hello"] : [number, string, string] + +var arrEmpty = []; +>arrEmpty : any[] +>[] : undefined[] + +var arr5Tuple: { +>arr5Tuple : { 0: string; 5: number; } + + 0: string; + 5: number; +} = ["hello", true, false, " hello", true, 10, "any"]; // Tuple +>["hello", true, false, " hello", true, 10, "any"] : [string, boolean, boolean, string, boolean, number, string] + +class C { foo() { } } +>C : C +>foo : () => void + +class D { foo2() { } } +>D : D +>foo2 : () => void + +class E extends C { foo3() { } } +>E : E +>C : C +>foo3 : () => void + +class F extends C { foo4() { } } +>F : F +>C : C +>foo4 : () => void + +var c: C, d: D, e: E, f: F; +>c : C +>C : C +>d : D +>D : D +>e : E +>E : E +>f : F +>F : F + +var arr6 = [c, d]; // (C | D)[] +>arr6 : (C | D)[] +>[c, d] : (C | D)[] +>c : C +>d : D + +var arr7 = [c, d, e]; // (C | D)[] +>arr7 : (C | D)[] +>[c, d, e] : (C | D)[] +>c : C +>d : D +>e : E + +var arr8 = [c, e]; // C[] +>arr8 : C[] +>[c, e] : C[] +>c : C +>e : E + +var arr9 = [e, f]; // (E|F)[] +>arr9 : (E | F)[] +>[e, f] : (E | F)[] +>e : E +>f : F + diff --git a/tests/cases/conformance/types/union/unionTypeFromArrayLiteral.ts b/tests/cases/conformance/types/union/unionTypeFromArrayLiteral.ts new file mode 100644 index 00000000000..c6b57584673 --- /dev/null +++ b/tests/cases/conformance/types/union/unionTypeFromArrayLiteral.ts @@ -0,0 +1,23 @@ +// The resulting type an array literal expression is determined as follows: +// If the array literal is empty, the resulting type is an array type with the element type Undefined. +// Otherwise, if the array literal is contextually typed by a type that has a property with the numeric name ‘0’, the resulting type is a tuple type constructed from the types of the element expressions. +// Otherwise, the resulting type is an array type with an element type that is the union of the types of the element expressions. + +var arr1 = [1, 2]; // number[] +var arr2 = ["hello", true]; // (string | number)[] +var arr3Tuple: [number, string] = [3, "three"]; // [number, string] +var arr4Tuple: [number, string] = [3, "three", "hello"]; // [number, string, string] +var arrEmpty = []; +var arr5Tuple: { + 0: string; + 5: number; +} = ["hello", true, false, " hello", true, 10, "any"]; // Tuple +class C { foo() { } } +class D { foo2() { } } +class E extends C { foo3() { } } +class F extends C { foo4() { } } +var c: C, d: D, e: E, f: F; +var arr6 = [c, d]; // (C | D)[] +var arr7 = [c, d, e]; // (C | D)[] +var arr8 = [c, e]; // C[] +var arr9 = [e, f]; // (E|F)[] \ No newline at end of file From 9d31631fd716faf7e4ea6b6e60d8cdbaa451618b Mon Sep 17 00:00:00 2001 From: Sheetal Nandi Date: Tue, 4 Nov 2014 16:40:56 -0800 Subject: [PATCH 020/195] Test cases of function infering return type of functions if f is a contextually typed function expression (section 4.9.3), the inferred return type is the union type (section 3.3.4) of the types of the return statement expressions in the function body, ignoring return statements with no expressions. Otherwise, the inferred return type is the first of the types of the return statement expressions in the function body that is a supertype (section 3.8.3) of each of the others, ignoring return statements with no expressions. A compile-time error occurs if no return statement expression has a type that is a supertype of each of the others. --- .../functionImplementationErrors.errors.txt | 67 ++++++++++- .../reference/functionImplementationErrors.js | 83 ++++++++++++++ .../reference/functionImplementations.js | 85 +++++++++++++- .../reference/functionImplementations.types | 105 ++++++++++++++++++ .../functions/functionImplementationErrors.ts | 29 +++++ .../functions/functionImplementations.ts | 37 +++++- 6 files changed, 400 insertions(+), 6 deletions(-) diff --git a/tests/baselines/reference/functionImplementationErrors.errors.txt b/tests/baselines/reference/functionImplementationErrors.errors.txt index fbae17a609d..8ebd5aa272d 100644 --- a/tests/baselines/reference/functionImplementationErrors.errors.txt +++ b/tests/baselines/reference/functionImplementationErrors.errors.txt @@ -6,9 +6,15 @@ tests/cases/conformance/functions/functionImplementationErrors.ts(25,16): error tests/cases/conformance/functions/functionImplementationErrors.ts(30,17): error TS2373: Initializer of parameter 'n' cannot reference identifier 'm' declared after it. tests/cases/conformance/functions/functionImplementationErrors.ts(35,17): error TS2373: Initializer of parameter 'n' cannot reference identifier 'm' declared after it. tests/cases/conformance/functions/functionImplementationErrors.ts(40,28): error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value or consist of a single 'throw' statement. +tests/cases/conformance/functions/functionImplementationErrors.ts(49,1): error TS2354: No best common type exists among return expressions. +tests/cases/conformance/functions/functionImplementationErrors.ts(53,10): error TS2354: No best common type exists among return expressions. +tests/cases/conformance/functions/functionImplementationErrors.ts(57,11): error TS2354: No best common type exists among return expressions. +tests/cases/conformance/functions/functionImplementationErrors.ts(61,1): error TS2354: No best common type exists among return expressions. +tests/cases/conformance/functions/functionImplementationErrors.ts(65,11): error TS2354: No best common type exists among return expressions. +tests/cases/conformance/functions/functionImplementationErrors.ts(69,11): error TS2354: No best common type exists among return expressions. -==== tests/cases/conformance/functions/functionImplementationErrors.ts (8 errors) ==== +==== tests/cases/conformance/functions/functionImplementationErrors.ts (14 errors) ==== // FunctionExpression with no return type annotation with multiple return statements with unrelated types var f1 = function () { ~~~~~~~~~~~~~ @@ -83,4 +89,63 @@ tests/cases/conformance/functions/functionImplementationErrors.ts(40,28): error throw undefined; var x = 4; }; + + class Base { private x; } + class AnotherClass { private y; } + class Derived1 extends Base { private m; } + class Derived2 extends Base { private n; } + function f8() { + ~~~~~~~~~~~~~~~ + return new Derived1(); + ~~~~~~~~~~~~~~~~~~~~~~~~~~ + return new Derived2(); + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + } + ~ +!!! error TS2354: No best common type exists among return expressions. + var f9 = function () { + ~~~~~~~~~~~~~ + return new Derived1(); + ~~~~~~~~~~~~~~~~~~~~~~~~~~ + return new Derived2(); + ~~~~~~~~~~~~~~~~~~~~~~~~~~ + }; + ~ +!!! error TS2354: No best common type exists among return expressions. + var f10 = () => { + ~~~~~~~ + return new Derived1(); + ~~~~~~~~~~~~~~~~~~~~~~~~~~ + return new Derived2(); + ~~~~~~~~~~~~~~~~~~~~~~~~~~ + }; + ~ +!!! error TS2354: No best common type exists among return expressions. + function f11() { + ~~~~~~~~~~~~~~~~ + return new Base(); + ~~~~~~~~~~~~~~~~~~~~~~ + return new AnotherClass(); + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + } + ~ +!!! error TS2354: No best common type exists among return expressions. + var f12 = function () { + ~~~~~~~~~~~~~ + return new Base(); + ~~~~~~~~~~~~~~~~~~~~~~ + return new AnotherClass(); + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + }; + ~ +!!! error TS2354: No best common type exists among return expressions. + var f13 = () => { + ~~~~~~~ + return new Base(); + ~~~~~~~~~~~~~~~~~~~~~~ + return new AnotherClass(); + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + }; + ~ +!!! error TS2354: No best common type exists among return expressions. \ No newline at end of file diff --git a/tests/baselines/reference/functionImplementationErrors.js b/tests/baselines/reference/functionImplementationErrors.js index 90e1997f396..5eaf9027335 100644 --- a/tests/baselines/reference/functionImplementationErrors.js +++ b/tests/baselines/reference/functionImplementationErrors.js @@ -42,9 +42,44 @@ undefined === function (): number { throw undefined; var x = 4; }; + +class Base { private x; } +class AnotherClass { private y; } +class Derived1 extends Base { private m; } +class Derived2 extends Base { private n; } +function f8() { + return new Derived1(); + return new Derived2(); +} +var f9 = function () { + return new Derived1(); + return new Derived2(); +}; +var f10 = () => { + return new Derived1(); + return new Derived2(); +}; +function f11() { + return new Base(); + return new AnotherClass(); +} +var f12 = function () { + return new Base(); + return new AnotherClass(); +}; +var f13 = () => { + return new Base(); + return new AnotherClass(); +}; //// [functionImplementationErrors.js] +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 __(); +}; // FunctionExpression with no return type annotation with multiple return statements with unrelated types var f1 = function () { return ''; @@ -86,3 +121,51 @@ undefined === function () { throw undefined; var x = 4; }; +var Base = (function () { + function Base() { + } + return Base; +})(); +var AnotherClass = (function () { + function AnotherClass() { + } + return AnotherClass; +})(); +var Derived1 = (function (_super) { + __extends(Derived1, _super); + function Derived1() { + _super.apply(this, arguments); + } + return Derived1; +})(Base); +var Derived2 = (function (_super) { + __extends(Derived2, _super); + function Derived2() { + _super.apply(this, arguments); + } + return Derived2; +})(Base); +function f8() { + return new Derived1(); + return new Derived2(); +} +var f9 = function () { + return new Derived1(); + return new Derived2(); +}; +var f10 = function () { + return new Derived1(); + return new Derived2(); +}; +function f11() { + return new Base(); + return new AnotherClass(); +} +var f12 = function () { + return new Base(); + return new AnotherClass(); +}; +var f13 = function () { + return new Base(); + return new AnotherClass(); +}; diff --git a/tests/baselines/reference/functionImplementations.js b/tests/baselines/reference/functionImplementations.js index 365ee1d7c0d..7c7b753a880 100644 --- a/tests/baselines/reference/functionImplementations.js +++ b/tests/baselines/reference/functionImplementations.js @@ -70,6 +70,10 @@ var n = function () { return 5; }(); +// Otherwise, the inferred return type is the first of the types of the return statement expressions +// in the function body that is a supertype of each of the others, +// ignoring return statements with no expressions. +// A compile - time error occurs if no return statement expression has a type that is a supertype of each of the others. // FunctionExpression with no return type annotation with multiple return statements with subtype relation between returns class Base { private m; } class Derived extends Base { private q; } @@ -120,9 +124,37 @@ function f6(): number { return; } - - - +class Derived2 extends Base { private r: string; } +class AnotherClass { private x } +// if f is a contextually typed function expression, the inferred return type is the union type +// of the types of the return statement expressions in the function body, +// ignoring return statements with no expressions. +var f7: (x: number) => string | number = x => { // should be (x: number) => number | string + if (x < 0) { return x; } + return x.toString(); +} +var f8: (x: number) => any = x => { // should be (x: number) => Base + return new Base(); + return new Derived2(); +} +var f9: (x: number) => any = x => { // should be (x: number) => Base + return new Base(); + return new Derived(); + return new Derived2(); +} +var f10: (x: number) => any = x => { // should be (x: number) => Derived | Derived1 + return new Derived(); + return new Derived2(); +} +var f11: (x: number) => any = x => { // should be (x: number) => Base | AnotherClass + return new Base(); + return new AnotherClass(); +} +var f12: (x: number) => any = x => { // should be (x: number) => Base | AnotherClass + return new Base(); + return; // should be ignored + return new AnotherClass(); +} //// [functionImplementations.js] var __extends = this.__extends || function (d, b) { @@ -192,6 +224,10 @@ var n = function () { return 3; return 5; }(); +// Otherwise, the inferred return type is the first of the types of the return statement expressions +// in the function body that is a supertype of each of the others, +// ignoring return statements with no expressions. +// A compile - time error occurs if no return statement expression has a type that is a supertype of each of the others. // FunctionExpression with no return type annotation with multiple return statements with subtype relation between returns var Base = (function () { function Base() { @@ -249,3 +285,46 @@ function opt3(n, m) { function f6() { return; } +var Derived2 = (function (_super) { + __extends(Derived2, _super); + function Derived2() { + _super.apply(this, arguments); + } + return Derived2; +})(Base); +var AnotherClass = (function () { + function AnotherClass() { + } + return AnotherClass; +})(); +// if f is a contextually typed function expression, the inferred return type is the union type +// of the types of the return statement expressions in the function body, +// ignoring return statements with no expressions. +var f7 = function (x) { + if (x < 0) { + return x; + } + return x.toString(); +}; +var f8 = function (x) { + return new Base(); + return new Derived2(); +}; +var f9 = function (x) { + return new Base(); + return new Derived(); + return new Derived2(); +}; +var f10 = function (x) { + return new Derived(); + return new Derived2(); +}; +var f11 = function (x) { + return new Base(); + return new AnotherClass(); +}; +var f12 = function (x) { + return new Base(); + return; // should be ignored + return new AnotherClass(); +}; diff --git a/tests/baselines/reference/functionImplementations.types b/tests/baselines/reference/functionImplementations.types index 29fe7c0e39c..04144e3a65b 100644 --- a/tests/baselines/reference/functionImplementations.types +++ b/tests/baselines/reference/functionImplementations.types @@ -168,6 +168,10 @@ var n = function () { return 5; }(); +// Otherwise, the inferred return type is the first of the types of the return statement expressions +// in the function body that is a supertype of each of the others, +// ignoring return statements with no expressions. +// A compile - time error occurs if no return statement expression has a type that is a supertype of each of the others. // FunctionExpression with no return type annotation with multiple return statements with subtype relation between returns class Base { private m; } >Base : Base @@ -292,6 +296,107 @@ function f6(): number { return; } +class Derived2 extends Base { private r: string; } +>Derived2 : Derived2 +>Base : Base +>r : string +class AnotherClass { private x } +>AnotherClass : AnotherClass +>x : any +// if f is a contextually typed function expression, the inferred return type is the union type +// of the types of the return statement expressions in the function body, +// ignoring return statements with no expressions. +var f7: (x: number) => string | number = x => { // should be (x: number) => number | string +>f7 : (x: number) => string | number +>x : number +>x => { // should be (x: number) => number | string if (x < 0) { return x; } return x.toString();} : (x: number) => string | number +>x : number + if (x < 0) { return x; } +>x < 0 : boolean +>x : number +>x : number + + return x.toString(); +>x.toString() : string +>x.toString : (radix?: number) => string +>x : number +>toString : (radix?: number) => string +} +var f8: (x: number) => any = x => { // should be (x: number) => Base +>f8 : (x: number) => any +>x : number +>x => { // should be (x: number) => Base return new Base(); return new Derived2();} : (x: number) => Base +>x : number + + return new Base(); +>new Base() : Base +>Base : typeof Base + + return new Derived2(); +>new Derived2() : Derived2 +>Derived2 : typeof Derived2 +} +var f9: (x: number) => any = x => { // should be (x: number) => Base +>f9 : (x: number) => any +>x : number +>x => { // should be (x: number) => Base return new Base(); return new Derived(); return new Derived2();} : (x: number) => Base +>x : number + + return new Base(); +>new Base() : Base +>Base : typeof Base + + return new Derived(); +>new Derived() : Derived +>Derived : typeof Derived + + return new Derived2(); +>new Derived2() : Derived2 +>Derived2 : typeof Derived2 +} +var f10: (x: number) => any = x => { // should be (x: number) => Derived | Derived1 +>f10 : (x: number) => any +>x : number +>x => { // should be (x: number) => Derived | Derived1 return new Derived(); return new Derived2();} : (x: number) => Derived | Derived2 +>x : number + + return new Derived(); +>new Derived() : Derived +>Derived : typeof Derived + + return new Derived2(); +>new Derived2() : Derived2 +>Derived2 : typeof Derived2 +} +var f11: (x: number) => any = x => { // should be (x: number) => Base | AnotherClass +>f11 : (x: number) => any +>x : number +>x => { // should be (x: number) => Base | AnotherClass return new Base(); return new AnotherClass();} : (x: number) => Base | AnotherClass +>x : number + + return new Base(); +>new Base() : Base +>Base : typeof Base + + return new AnotherClass(); +>new AnotherClass() : AnotherClass +>AnotherClass : typeof AnotherClass +} +var f12: (x: number) => any = x => { // should be (x: number) => Base | AnotherClass +>f12 : (x: number) => any +>x : number +>x => { // should be (x: number) => Base | AnotherClass return new Base(); return; // should be ignored return new AnotherClass();} : (x: number) => Base | AnotherClass +>x : number + + return new Base(); +>new Base() : Base +>Base : typeof Base + + return; // should be ignored + return new AnotherClass(); +>new AnotherClass() : AnotherClass +>AnotherClass : typeof AnotherClass +} diff --git a/tests/cases/conformance/functions/functionImplementationErrors.ts b/tests/cases/conformance/functions/functionImplementationErrors.ts index 6db4f6ed7e1..ddd3ba0a2c1 100644 --- a/tests/cases/conformance/functions/functionImplementationErrors.ts +++ b/tests/cases/conformance/functions/functionImplementationErrors.ts @@ -41,3 +41,32 @@ undefined === function (): number { throw undefined; var x = 4; }; + +class Base { private x; } +class AnotherClass { private y; } +class Derived1 extends Base { private m; } +class Derived2 extends Base { private n; } +function f8() { + return new Derived1(); + return new Derived2(); +} +var f9 = function () { + return new Derived1(); + return new Derived2(); +}; +var f10 = () => { + return new Derived1(); + return new Derived2(); +}; +function f11() { + return new Base(); + return new AnotherClass(); +} +var f12 = function () { + return new Base(); + return new AnotherClass(); +}; +var f13 = () => { + return new Base(); + return new AnotherClass(); +}; diff --git a/tests/cases/conformance/functions/functionImplementations.ts b/tests/cases/conformance/functions/functionImplementations.ts index d49b4780772..df36a0b4457 100644 --- a/tests/cases/conformance/functions/functionImplementations.ts +++ b/tests/cases/conformance/functions/functionImplementations.ts @@ -69,6 +69,10 @@ var n = function () { return 5; }(); +// Otherwise, the inferred return type is the first of the types of the return statement expressions +// in the function body that is a supertype of each of the others, +// ignoring return statements with no expressions. +// A compile - time error occurs if no return statement expression has a type that is a supertype of each of the others. // FunctionExpression with no return type annotation with multiple return statements with subtype relation between returns class Base { private m; } class Derived extends Base { private q; } @@ -119,5 +123,34 @@ function f6(): number { return; } - - +class Derived2 extends Base { private r: string; } +class AnotherClass { private x } +// if f is a contextually typed function expression, the inferred return type is the union type +// of the types of the return statement expressions in the function body, +// ignoring return statements with no expressions. +var f7: (x: number) => string | number = x => { // should be (x: number) => number | string + if (x < 0) { return x; } + return x.toString(); +} +var f8: (x: number) => any = x => { // should be (x: number) => Base + return new Base(); + return new Derived2(); +} +var f9: (x: number) => any = x => { // should be (x: number) => Base + return new Base(); + return new Derived(); + return new Derived2(); +} +var f10: (x: number) => any = x => { // should be (x: number) => Derived | Derived1 + return new Derived(); + return new Derived2(); +} +var f11: (x: number) => any = x => { // should be (x: number) => Base | AnotherClass + return new Base(); + return new AnotherClass(); +} +var f12: (x: number) => any = x => { // should be (x: number) => Base | AnotherClass + return new Base(); + return; // should be ignored + return new AnotherClass(); +} \ No newline at end of file From 1934193213b0271988443d9a79818840006ba02c Mon Sep 17 00:00:00 2001 From: Daniel Rosenwasser Date: Fri, 7 Nov 2014 17:56:39 -0800 Subject: [PATCH 021/195] Support getOccurrences for modifier keywords. --- src/services/services.ts | 70 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 70 insertions(+) diff --git a/src/services/services.ts b/src/services/services.ts index 9a689a7ff33..463c7bd8ef1 100644 --- a/src/services/services.ts +++ b/src/services/services.ts @@ -3507,6 +3507,10 @@ module ts { if (hasKind(node.parent, SyntaxKind.GetAccessor) || hasKind(node.parent, SyntaxKind.SetAccessor)) { return getGetAndSetOccurrences(node.parent); } + default: + if (isModifier(node.kind) && node.parent && isDeclaration(node.parent)) { + return getModifierOccurrences(node.kind, node.parent); + } } return undefined; @@ -3854,6 +3858,72 @@ module ts { } } + function getModifierOccurrences(modifier: SyntaxKind, exportedDeclaration: Declaration) { + var container = exportedDeclaration.parent; + + // Make sure we only highlight the keyword when it makes sense to do so. + if (exportedDeclaration.flags & NodeFlags.AccessibilityModifier) { + if (!(hasKind(container, SyntaxKind.ClassDeclaration) || + (exportedDeclaration.kind === SyntaxKind.Parameter && hasKind(container, SyntaxKind.Constructor)))) { + return undefined; + } + } + else if (exportedDeclaration.flags & NodeFlags.Static) { + if (!(hasKind(container, SyntaxKind.ClassDeclaration))) { + return undefined; + } + } + else if (exportedDeclaration.flags & (NodeFlags.Export | NodeFlags.Ambient)) { + if (!(hasKind(container, SyntaxKind.ModuleBlock) || hasKind(container, SyntaxKind.SourceFile))) { + return undefined; + } + } + + var keywords: Node[] = []; + + var modifierFlag: NodeFlags = getFlagFromModifier(modifier); + + var nodes: Node[]; + + if (container.kind === SyntaxKind.ModuleBlock) { + nodes = (container).statements; + } + else if (container.kind === SyntaxKind.ClassDeclaration) { + nodes = (container).members; + } + else if (container.kind === SyntaxKind.Constructor) { + nodes = ((container).parameters).concat( + (container.parent).members); + } + + forEach(nodes, node => { + if (node.flags & modifierFlag) { + forEach(node.getChildren(), child => pushKeywordIf(keywords, child, modifier)); + } + }); + + return map(keywords, getReferenceEntryFromNode); + + function getFlagFromModifier(modifier: SyntaxKind) { + switch (modifier) { + case SyntaxKind.PublicKeyword: + return NodeFlags.Public; + case SyntaxKind.PrivateKeyword: + return NodeFlags.Private; + case SyntaxKind.ProtectedKeyword: + return NodeFlags.Protected; + case SyntaxKind.StaticKeyword: + return NodeFlags.Static; + case SyntaxKind.ExportKeyword: + return NodeFlags.Export; + case SyntaxKind.DeclareKeyword: + return NodeFlags.Ambient; + default: + Debug.fail(); + } + } + } + // returns true if 'node' is defined and has a matching 'kind'. function hasKind(node: Node, kind: SyntaxKind) { return node !== undefined && node.kind === kind; From c7acb6c2c4fb8b7a7cd6e588733cf3090e446eaf Mon Sep 17 00:00:00 2001 From: Daniel Rosenwasser Date: Fri, 7 Nov 2014 18:10:38 -0800 Subject: [PATCH 022/195] A few touch-ups to the code. --- src/services/services.ts | 20 +++++++++----------- 1 file changed, 9 insertions(+), 11 deletions(-) diff --git a/src/services/services.ts b/src/services/services.ts index 463c7bd8ef1..49e157fe63c 100644 --- a/src/services/services.ts +++ b/src/services/services.ts @@ -3858,33 +3858,31 @@ module ts { } } - function getModifierOccurrences(modifier: SyntaxKind, exportedDeclaration: Declaration) { - var container = exportedDeclaration.parent; + function getModifierOccurrences(modifier: SyntaxKind, declaration: Declaration) { + var container = declaration.parent; // Make sure we only highlight the keyword when it makes sense to do so. - if (exportedDeclaration.flags & NodeFlags.AccessibilityModifier) { - if (!(hasKind(container, SyntaxKind.ClassDeclaration) || - (exportedDeclaration.kind === SyntaxKind.Parameter && hasKind(container, SyntaxKind.Constructor)))) { + if (declaration.flags & NodeFlags.AccessibilityModifier) { + if (!(container.kind === SyntaxKind.ClassDeclaration || + (declaration.kind === SyntaxKind.Parameter && hasKind(container, SyntaxKind.Constructor)))) { return undefined; } } - else if (exportedDeclaration.flags & NodeFlags.Static) { - if (!(hasKind(container, SyntaxKind.ClassDeclaration))) { + else if (declaration.flags & NodeFlags.Static) { + if (container.kind !== SyntaxKind.ClassDeclaration) { return undefined; } } - else if (exportedDeclaration.flags & (NodeFlags.Export | NodeFlags.Ambient)) { - if (!(hasKind(container, SyntaxKind.ModuleBlock) || hasKind(container, SyntaxKind.SourceFile))) { + else if (declaration.flags & (NodeFlags.Export | NodeFlags.Ambient)) { + if (!(container.kind === SyntaxKind.ModuleBlock || container.kind === SyntaxKind.SourceFile)) { return undefined; } } var keywords: Node[] = []; - var modifierFlag: NodeFlags = getFlagFromModifier(modifier); var nodes: Node[]; - if (container.kind === SyntaxKind.ModuleBlock) { nodes = (container).statements; } From 00bfc06bc7c08d426986a96a2e087d5739b7d656 Mon Sep 17 00:00:00 2001 From: Mohamed Hegazy Date: Mon, 10 Nov 2014 17:33:30 -0800 Subject: [PATCH 023/195] remove unused arguments for getCompiler --- src/harness/compilerRunner.ts | 22 +++++----------------- src/harness/fourslashRunner.ts | 8 -------- src/harness/harness.ts | 2 +- 3 files changed, 6 insertions(+), 26 deletions(-) diff --git a/src/harness/compilerRunner.ts b/src/harness/compilerRunner.ts index 7045a1196d0..4ca33f92804 100644 --- a/src/harness/compilerRunner.ts +++ b/src/harness/compilerRunner.ts @@ -10,7 +10,7 @@ const enum CompilerTestType { } class CompilerBaselineRunner extends RunnerBase { - private basePath = 'tests/cases'; + protected basePath = 'tests/cases'; private errors: boolean; private emit: boolean; private decl: boolean; @@ -113,10 +113,7 @@ class CompilerBaselineRunner extends RunnerBase { for (var i = 0; i < tcSettings.length; ++i) { // noImplicitAny is passed to getCompiler, but target is just passed in the settings blob to setCompilerSettings if (!createNewInstance && (tcSettings[i].flag == "noimplicitany" || tcSettings[i].flag === 'target')) { - harnessCompiler = Harness.Compiler.getCompiler({ - useExistingInstance: false, - optionsForFreshInstance: { useMinimalDefaultLib: true, noImplicitAny: tcSettings[i].flag === "noimplicitany" } - }); + harnessCompiler = Harness.Compiler.getCompiler(); harnessCompiler.setCompilerSettings(tcSettings); createNewInstance = true; } @@ -125,10 +122,7 @@ class CompilerBaselineRunner extends RunnerBase { afterEach(() => { if (createNewInstance) { - harnessCompiler = Harness.Compiler.getCompiler({ - useExistingInstance: false, - optionsForFreshInstance: { useMinimalDefaultLib: true, noImplicitAny: false } - }); + harnessCompiler = Harness.Compiler.getCompiler(); createNewInstance = false; } }); @@ -312,10 +306,7 @@ class CompilerBaselineRunner extends RunnerBase { public initializeTests() { describe("Setup compiler for compiler baselines", () => { - var harnessCompiler = Harness.Compiler.getCompiler({ - useExistingInstance: false, - optionsForFreshInstance: { useMinimalDefaultLib: true, noImplicitAny: false } - }); + var harnessCompiler = Harness.Compiler.getCompiler(); this.parseOptions(); }); @@ -332,10 +323,7 @@ class CompilerBaselineRunner extends RunnerBase { } describe("Cleanup after compiler baselines", () => { - var harnessCompiler = Harness.Compiler.getCompiler({ - useExistingInstance: false, - optionsForFreshInstance: { useMinimalDefaultLib: true, noImplicitAny: false } - }); + var harnessCompiler = Harness.Compiler.getCompiler(); }); } diff --git a/src/harness/fourslashRunner.ts b/src/harness/fourslashRunner.ts index b7e59437456..1ecb02df292 100644 --- a/src/harness/fourslashRunner.ts +++ b/src/harness/fourslashRunner.ts @@ -15,10 +15,6 @@ class FourslashRunner extends RunnerBase { } describe("fourslash tests", () => { - before(() => { - Harness.Compiler.getCompiler({ useExistingInstance: false }); - }); - this.tests.forEach((fn: string) => { fn = ts.normalizeSlashes(fn); var justName = fn.replace(/^.*[\\\/]/, ''); @@ -33,10 +29,6 @@ class FourslashRunner extends RunnerBase { }); } }); - - after(() => { - Harness.Compiler.getCompiler({ useExistingInstance: false }); - }); }); describe('Generate Tao XML', () => { diff --git a/src/harness/harness.ts b/src/harness/harness.ts index f9c20a1893a..3bc635e2ab4 100644 --- a/src/harness/harness.ts +++ b/src/harness/harness.ts @@ -1029,7 +1029,7 @@ module Harness { /** Returns the singleton harness compiler instance for generating and running tests. If required a fresh compiler instance will be created, otherwise the existing singleton will be re-used. */ - export function getCompiler(opts?: { useExistingInstance: boolean; optionsForFreshInstance?: { useMinimalDefaultLib: boolean; noImplicitAny: boolean; } }) { + export function getCompiler() { return harnessCompiler = harnessCompiler || new HarnessCompiler(); } From ff32be79492b6d1e29ffbcc9d51d678a417c829d Mon Sep 17 00:00:00 2001 From: Mohamed Hegazy Date: Mon, 10 Nov 2014 22:33:51 -0800 Subject: [PATCH 024/195] Add additional property to mapfn for Array.from --- src/lib/es6.d.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/lib/es6.d.ts b/src/lib/es6.d.ts index c2f69f5a4af..42254eed229 100644 --- a/src/lib/es6.d.ts +++ b/src/lib/es6.d.ts @@ -238,8 +238,8 @@ interface Array { } interface ArrayConstructor { - from(arrayLike: ArrayLike, mapfn: (s: T) => U, thisArg?: any): Array; - from(iterable: Iterable, mapfn: (s: T) => U, thisArg?: any): Array; + from(arrayLike: ArrayLike, mapfn: (v: T, k: number) => U, thisArg?: any): Array; + from(iterable: Iterable, mapfn: (v: T, k: number) => U, thisArg?: any): Array; from(arrayLike: ArrayLike): Array; from(iterable: Iterable): Array; of(...items: T[]): Array; From f5eef432a9e28f15bac88b44be25b491f1699826 Mon Sep 17 00:00:00 2001 From: Mohamed Hegazy Date: Mon, 10 Nov 2014 22:49:32 -0800 Subject: [PATCH 025/195] Use the correct name for interface Math --- src/lib/es6.d.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lib/es6.d.ts b/src/lib/es6.d.ts index 42254eed229..fc520b68be4 100644 --- a/src/lib/es6.d.ts +++ b/src/lib/es6.d.ts @@ -368,7 +368,7 @@ interface Generator extends Iterator { // [Symbol.toStringTag]: string; } -interface MATH { +interface Math { /** * Returns the number of leading zero bits in the 32-bit binary representation of a number. * @param x A numeric expression. From 6ae43f39667a6d791bfb9087fcd067eaadb8a277 Mon Sep 17 00:00:00 2001 From: Mohamed Hegazy Date: Mon, 10 Nov 2014 22:59:11 -0800 Subject: [PATCH 026/195] Fix paramters for Math.hypot function --- src/lib/es6.d.ts | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/lib/es6.d.ts b/src/lib/es6.d.ts index fc520b68be4..7edbc15e48c 100644 --- a/src/lib/es6.d.ts +++ b/src/lib/es6.d.ts @@ -450,8 +450,14 @@ interface Math { /** * Returns the square root of the sum of squares of its arguments. + * @param values Values to compute the square root for. + * If no arguments are passed, the result is +0. + * If there is only one argument, the result is the absolute value. + * If any argument is +Infinity or -Infinity, the result is +Infinity. + * If any argument is NaN, the result is NaN. + * If all arguments are either +0 or −0, the result is +0. */ - hypot(value1: number, value2: number, ...values: number[] ): number; + hypot(...values: number[] ): number; /** * Returns the integral part of the a numeric expression, x, removing any fractional digits. From 6b5d0b091cd5713d48891b3526e48d8a48fed7a1 Mon Sep 17 00:00:00 2001 From: Mohamed Hegazy Date: Mon, 10 Nov 2014 23:54:39 -0800 Subject: [PATCH 027/195] Use PropertyKey instead of string when appropriate --- src/lib/es6.d.ts | 35 +++++++++++++++++++++++++---------- 1 file changed, 25 insertions(+), 10 deletions(-) diff --git a/src/lib/es6.d.ts b/src/lib/es6.d.ts index 7edbc15e48c..77535420d31 100644 --- a/src/lib/es6.d.ts +++ b/src/lib/es6.d.ts @@ -1,4 +1,5 @@ - +declare type PropertyKey = string | number | Symbol; + interface Symbol { /** Returns a string representation of an object. */ toString(): string; @@ -104,6 +105,22 @@ interface ObjectConstructor { * @param proto The value of the new prototype or null. */ setPrototypeOf(o: any, proto: any): any; + + /** + * Gets the own property descriptor of the specified object. + * An own property descriptor is one that is defined directly on the object and is not inherited from the object's prototype. + * @param o Object that contains the property. + * @param p Name of the property. + */ + getOwnPropertyDescriptor(o: any, propertyKey: PropertyKey): PropertyDescriptor; + + /** + * Adds a property to an object, or modifies attributes of an existing property. + * @param o Object on which to add or modify the property. This can be a native JavaScript object (that is, a user-defined object or a built in object) or a DOM object. + * @param p The property name. + * @param attributes Descriptor for the property. It can be for a data property or an accessor property. + */ + defineProperty(o: any, propertyKey: PropertyKey, attributes: PropertyDescriptor): any; } interface Function { @@ -726,21 +743,21 @@ interface Float64Array { } declare var Float64Array; interface Handler { - getOwnPropertyDescriptor? (target: T, name: string): string; + getOwnPropertyDescriptor? (target: T, propertyKey: PropertyKey): string; getOwnPropertyNames? (target: T): string[]; // Object.getOwnPropertyNames(proxy) getPrototypeOf? (target: T): any; // Object.getPrototypeOf(proxy) - defineProperty? (target: T, name: string, desc: string): boolean; // Object.defineProperty(proxy,name,desc) - deleteProperty? (target: T, name: string): boolean; // delete proxy[name] + defineProperty? (target: T, propertyKey: PropertyKey, desc: string): boolean; // Object.defineProperty(proxy,name,desc) + deleteProperty? (target: T, propertyKey: PropertyKey): boolean; // delete proxy[name] freeze? (target: T): boolean; // Object.freeze(proxy) seal? (target: T): boolean; // Object.seal(proxy) preventExtensions? (target: T): boolean; // Object.preventExtensions(proxy) isFrozen? (target: T): boolean; // Object.isFrozen(proxy) isSealed? (target: T): boolean; // Object.isSealed(proxy) isExtensible? (target: T): boolean; // Object.isExtensible(proxy) - has? (target: T, name: string): boolean; // name in proxy - hasOwn? (target: T, name: string): boolean; // ({}).hasOwnProperty.call(proxy,name) - get? (target: T, name: string, receiver: any): any; // receiver[name] - set? (target: T, name: string, val: any, receiver: any): boolean; // receiver[name] = val + has? (target: T, propertyKey: PropertyKey): boolean; // name in proxy + hasOwn? (target: T, propertyKey: PropertyKey): boolean; // ({}).hasOwnProperty.call(proxy,name) + get? (target: T, propertyKey: PropertyKey, receiver: any): any; // receiver[name] + set? (target: T, propertyKey: PropertyKey, val: any, receiver: any): boolean; // receiver[name] = val enumerate? (target: T): Iterator; // for (name in proxy) (iterator should yield all enumerable own and inherited properties) keys? (target: T): string[]; // Object.keys(proxy) (return array of enumerable own properties only) apply? (target: T, thisArg, args): any; // proxy(...args) @@ -752,8 +769,6 @@ declare var Proxy: { new (target: T, handeler: Handler): T }; -declare type PropertyKey = string | number | Symbol; - declare var Reflect: { apply(target: Function, thisArgument: any, argumentsList: ArrayLike): any; construct(target: Function, argumentsList: ArrayLike): any; From 20bbebc7eba72caeafe94dfae0fc6fc1219d6b02 Mon Sep 17 00:00:00 2001 From: Mohamed Hegazy Date: Tue, 11 Nov 2014 00:56:49 -0800 Subject: [PATCH 028/195] Make WeakMap.prototype.set second parameter optional --- src/lib/es6.d.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lib/es6.d.ts b/src/lib/es6.d.ts index 77535420d31..dfb4d94934c 100644 --- a/src/lib/es6.d.ts +++ b/src/lib/es6.d.ts @@ -570,7 +570,7 @@ interface WeakMap { delete(key: K): boolean; get(key: K): V; has(key: K): boolean; - set(key: K, value: V): WeakMap; + set(key: K, value?: V): WeakMap; // [Symbol.toStringTag]: string; } From 4257e1c168eda94a5305c0fabfa0df8933d99664 Mon Sep 17 00:00:00 2001 From: Mohamed Hegazy Date: Tue, 11 Nov 2014 09:57:22 -0800 Subject: [PATCH 029/195] Make Map.prototype.set second paramter optional --- src/lib/es6.d.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lib/es6.d.ts b/src/lib/es6.d.ts index dfb4d94934c..187aff12366 100644 --- a/src/lib/es6.d.ts +++ b/src/lib/es6.d.ts @@ -553,7 +553,7 @@ interface Map { get(key: K): V; has(key: K): boolean; keys(): K[]; - set(key: K, value: V): Map; + set(key: K, value?: V): Map; size: number; values(): V[]; // [Symbol.Iterator]():Iterator<[K,V]>; From abed6e48a41767f604777fae57f087979d97003d Mon Sep 17 00:00:00 2001 From: Mohamed Hegazy Date: Tue, 11 Nov 2014 13:21:29 -0800 Subject: [PATCH 030/195] Cleanup Proxy definition --- src/lib/es6.d.ts | 39 +++++++++++++++++---------------------- 1 file changed, 17 insertions(+), 22 deletions(-) diff --git a/src/lib/es6.d.ts b/src/lib/es6.d.ts index 187aff12366..6515a58ca08 100644 --- a/src/lib/es6.d.ts +++ b/src/lib/es6.d.ts @@ -742,31 +742,26 @@ declare var Float32Array; interface Float64Array { } declare var Float64Array; -interface Handler { - getOwnPropertyDescriptor? (target: T, propertyKey: PropertyKey): string; - getOwnPropertyNames? (target: T): string[]; // Object.getOwnPropertyNames(proxy) - getPrototypeOf? (target: T): any; // Object.getPrototypeOf(proxy) - defineProperty? (target: T, propertyKey: PropertyKey, desc: string): boolean; // Object.defineProperty(proxy,name,desc) - deleteProperty? (target: T, propertyKey: PropertyKey): boolean; // delete proxy[name] - freeze? (target: T): boolean; // Object.freeze(proxy) - seal? (target: T): boolean; // Object.seal(proxy) - preventExtensions? (target: T): boolean; // Object.preventExtensions(proxy) - isFrozen? (target: T): boolean; // Object.isFrozen(proxy) - isSealed? (target: T): boolean; // Object.isSealed(proxy) - isExtensible? (target: T): boolean; // Object.isExtensible(proxy) - has? (target: T, propertyKey: PropertyKey): boolean; // name in proxy - hasOwn? (target: T, propertyKey: PropertyKey): boolean; // ({}).hasOwnProperty.call(proxy,name) - get? (target: T, propertyKey: PropertyKey, receiver: any): any; // receiver[name] - set? (target: T, propertyKey: PropertyKey, val: any, receiver: any): boolean; // receiver[name] = val - enumerate? (target: T): Iterator; // for (name in proxy) (iterator should yield all enumerable own and inherited properties) - keys? (target: T): string[]; // Object.keys(proxy) (return array of enumerable own properties only) - apply? (target: T, thisArg, args): any; // proxy(...args) - construct? (target: T, args): any;// new proxy(...args) +interface ProxyHandler { + getPrototypeOf? (target: T): any; + setPrototypeOf? (target: T, v: any): boolean; + isExtensible? (target: T): boolean; + preventExtensions? (target: T): boolean; + getOwnPropertyDescriptor? (target: T, p: PropertyKey): PropertyDescriptor; + has? (target: T, p: PropertyKey): boolean; + get? (target: T, p: PropertyKey, receiver: any): any; + set? (target: T, p: PropertyKey, value: any, receiver: any): boolean; + deleteProperty? (target: T, p: PropertyKey): boolean; + defineProperty? (target: T, p: PropertyKey, attributes: PropertyDescriptor): boolean; + enumerate? (target: T): PropertyKey[]; + ownKeys? (target: T): PropertyKey[]; + apply? (target: T, thisArg: any, argArray?: any): any; + construct? (target: T, thisArg: any, argArray?: any): any; } declare var Proxy: { - (target: T, handeler: Handler): T; - new (target: T, handeler: Handler): T + revocable(target: T, handler: ProxyHandler): { proxy: T; revoke: () => void; }; + new (target: T, handeler: ProxyHandler): T }; declare var Reflect: { From ded34ef3ae99b7cfe9395008adaf9edfe46f9468 Mon Sep 17 00:00:00 2001 From: Mohamed Hegazy Date: Tue, 11 Nov 2014 15:36:06 -0800 Subject: [PATCH 031/195] Add support for typed arrays --- src/lib/es6.d.ts | 426 ++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 405 insertions(+), 21 deletions(-) diff --git a/src/lib/es6.d.ts b/src/lib/es6.d.ts index 6515a58ca08..32d3c00290f 100644 --- a/src/lib/es6.d.ts +++ b/src/lib/es6.d.ts @@ -211,7 +211,7 @@ interface Array { /** Returns an array of key, value pairs for every entry in the arrray */ - entries(): Array<[number, T]>; + entries(): Iterator<[number, T]>; /** Returns an list of keys in the arrray @@ -548,7 +548,7 @@ interface RegExp { interface Map { clear(): void; delete(key: K): boolean; - entries(): [K, V][]; + entries(): Iterator<[K, V]>; forEach(callbackfn: (value: V, index: K, map: Map) => void, thisArg?: any): void; get(key: K): V; has(key: K): boolean; @@ -583,7 +583,7 @@ interface Set { add(value: T): Set; clear(): void; delete(value: T): boolean; - entries(): [T, T][]; + entries(): Iterator<[T, T]>; forEach(callbackfn: (value: T, index: T, set: Set) => void, thisArg?: any): void; has(value: T): boolean; keys(): T[]; @@ -677,7 +677,7 @@ interface Int8Array { byteLength: number; byteOffset: number; copyWithin(target: number, start: number, end?: number): Int8Array; - entries(): Array<[number, number]>; + entries(): Iterator<[number, number]>; every(callbackfn: (value: number, index: number, array: Int8Array) => boolean, thisArg?: any): boolean; fill(value: number, start?: number, end?: number): Int8Array; filter(callbackfn: (value: number, index: number, array: Int8Array) => boolean, thisArg?: any): Int8Array; @@ -689,7 +689,7 @@ interface Int8Array { keys(): number[]; lastIndexOf(searchElement: number, fromIndex?: number): number; length: number; - map(callbackfn: (value: number, index: number, array: Int8Array) => U, thisArg?: any): U[]; + map(callbackfn: (value: number, index: number, array: Int8Array) => number, thisArg?: any): Int8Array; reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Int8Array) => number, initialValue?: number): number; reduce(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Int8Array) => U, initialValue: U): U; reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Int8Array) => number, initialValue?: number): number; @@ -716,32 +716,416 @@ declare var Int8Array: { new (buffer: ArrayBuffer, byteOffset?: number, length?: number): Int8Array; BYTES_PER_ELEMENT: number; of(...items: number[]): Int8Array; + from(arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Int8Array; }; -interface Uint8Array { } -declare var Uint8Array; +/** + * A typed array of 8-bit unsigned integer values. The contents are initialized to 0. If the requested number of bytes could not be allocated an exception is raised. + */ +interface Uint8Array { + BYTES_PER_ELEMENT: number; + buffer: ArrayBuffer; + byteLength: number; + byteOffset: number; + copyWithin(target: number, start: number, end?: number): Uint8Array; + entries(): Iterator<[number, number]>; + every(callbackfn: (value: number, index: number, array: Uint8Array) => boolean, thisArg?: any): boolean; + fill(value: number, start?: number, end?: number): Uint8Array; + filter(callbackfn: (value: number, index: number, array: Uint8Array) => boolean, thisArg?: any): Uint8Array; + find(predicate: (value: number, index: number, obj: Array) => boolean, thisArg?: any): number; + findIndex(predicate: (value: number) => boolean, thisArg?: any): number; + forEach(callbackfn: (value: number, index: number, array: Uint8Array) => void, thisArg?: any): void; + indexOf(searchElement: number, fromIndex?: number): number; + join(separator?: string): string; + keys(): number[]; + lastIndexOf(searchElement: number, fromIndex?: number): number; + length: number; + map(callbackfn: (value: number, index: number, array: Uint8Array) => number, thisArg?: any): Uint8Array; + reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Uint8Array) => number, initialValue?: number): number; + reduce(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Uint8Array) => U, initialValue: U): U; + reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Uint8Array) => number, initialValue?: number): number; + reduceRight(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Uint8Array) => U, initialValue: U): U; + reverse(): Uint8Array; + set(index: number, value: number): void; + set(array: Uint8Array, offset?: number): void; + slice(start?: number, end?: number): Uint8Array; + some(callbackfn: (value: number, index: number, array: Uint8Array) => boolean, thisArg?: any): boolean; + sort(compareFn?: (a: number, b: number) => number): Uint8Array; + subarray(begin: number, end?: number): Uint8Array; + toLocaleString(): string; + toString(): string; + values(): Uint8Array; + [index: number]: number; + // [Symbol.iterator] (): number; +} -interface Uint8ClampedArray { } -declare var Uint8ClampedArray; +declare var Uint8Array: { + prototype: Uint8Array; + new (length: number): Uint8Array; + new (array: Uint8Array): Uint8Array; + new (array: number[]): Uint8Array; + new (buffer: ArrayBuffer, byteOffset?: number, length?: number): Uint8Array; + BYTES_PER_ELEMENT: number; + of(...items: number[]): Uint8Array; + from(arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Uint8Array; +}; -interface Int16Array { } -declare var Int16Array; +/** + * A typed array of 8-bit unsigned integer (clamped) values. The contents are initialized to 0. If the requested number of bytes could not be allocated an exception is raised. + */ +interface Uint8ClampedArray { + BYTES_PER_ELEMENT: number; + buffer: ArrayBuffer; + byteLength: number; + byteOffset: number; + copyWithin(target: number, start: number, end?: number): Uint8ClampedArray; + entries(): Iterator<[number, number]>; + every(callbackfn: (value: number, index: number, array: Uint8ClampedArray) => boolean, thisArg?: any): boolean; + fill(value: number, start?: number, end?: number): Uint8ClampedArray; + filter(callbackfn: (value: number, index: number, array: Uint8ClampedArray) => boolean, thisArg?: any): Uint8ClampedArray; + find(predicate: (value: number, index: number, obj: Array) => boolean, thisArg?: any): number; + findIndex(predicate: (value: number) => boolean, thisArg?: any): number; + forEach(callbackfn: (value: number, index: number, array: Uint8ClampedArray) => void, thisArg?: any): void; + indexOf(searchElement: number, fromIndex?: number): number; + join(separator?: string): string; + keys(): number[]; + lastIndexOf(searchElement: number, fromIndex?: number): number; + length: number; + map(callbackfn: (value: number, index: number, array: Uint8ClampedArray) => number, thisArg?: any): Uint8ClampedArray; + reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Uint8ClampedArray) => number, initialValue?: number): number; + reduce(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Uint8ClampedArray) => U, initialValue: U): U; + reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Uint8ClampedArray) => number, initialValue?: number): number; + reduceRight(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Uint8ClampedArray) => U, initialValue: U): U; + reverse(): Uint8ClampedArray; + set(index: number, value: number): void; + set(array: Uint8ClampedArray, offset?: number): void; + slice(start?: number, end?: number): Uint8ClampedArray; + some(callbackfn: (value: number, index: number, array: Uint8ClampedArray) => boolean, thisArg?: any): boolean; + sort(compareFn?: (a: number, b: number) => number): Uint8ClampedArray; + subarray(begin: number, end?: number): Uint8ClampedArray; + toLocaleString(): string; + toString(): string; + values(): Uint8ClampedArray; + [index: number]: number; + // [Symbol.iterator] (): number; +} -interface Uint16Array { } -declare var Uint16Array; +declare var Uint8ClampedArray: { + prototype: Uint8ClampedArray; + new (length: number): Uint8ClampedArray; + new (array: Uint8ClampedArray): Uint8ClampedArray; + new (array: number[]): Uint8ClampedArray; + new (buffer: ArrayBuffer, byteOffset?: number, length?: number): Uint8ClampedArray; + BYTES_PER_ELEMENT: number; + of(...items: number[]): Uint8ClampedArray; + from(arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Uint8ClampedArray; +}; -interface Int32Array { } -declare var Int32Array; +/** + * A typed array of 16-bit signed integer values. The contents are initialized to 0. If the requested number of bytes could not be allocated an exception is raised. + */ +interface Int16Array { + BYTES_PER_ELEMENT: number; + buffer: ArrayBuffer; + byteLength: number; + byteOffset: number; + copyWithin(target: number, start: number, end?: number): Int16Array; + entries(): Iterator<[number, number]>; + every(callbackfn: (value: number, index: number, array: Int16Array) => boolean, thisArg?: any): boolean; + fill(value: number, start?: number, end?: number): Int16Array; + filter(callbackfn: (value: number, index: number, array: Int16Array) => boolean, thisArg?: any): Int16Array; + find(predicate: (value: number, index: number, obj: Array) => boolean, thisArg?: any): number; + findIndex(predicate: (value: number) => boolean, thisArg?: any): number; + forEach(callbackfn: (value: number, index: number, array: Int16Array) => void, thisArg?: any): void; + indexOf(searchElement: number, fromIndex?: number): number; + join(separator?: string): string; + keys(): number[]; + lastIndexOf(searchElement: number, fromIndex?: number): number; + length: number; + map(callbackfn: (value: number, index: number, array: Int16Array) => number, thisArg?: any): Int16Array; + reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Int16Array) => number, initialValue?: number): number; + reduce(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Int16Array) => U, initialValue: U): U; + reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Int16Array) => number, initialValue?: number): number; + reduceRight(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Int16Array) => U, initialValue: U): U; + reverse(): Int16Array; + set(index: number, value: number): void; + set(array: Int16Array, offset?: number): void; + slice(start?: number, end?: number): Int16Array; + some(callbackfn: (value: number, index: number, array: Int16Array) => boolean, thisArg?: any): boolean; + sort(compareFn?: (a: number, b: number) => number): Int16Array; + subarray(begin: number, end?: number): Int16Array; + toLocaleString(): string; + toString(): string; + values(): Int16Array; + [index: number]: number; + // [Symbol.iterator] (): number; +} -interface Uint32Array { } -declare var Uint32Array; +declare var Int16Array: { + prototype: Int16Array; + new (length: number): Int16Array; + new (array: Int16Array): Int16Array; + new (array: number[]): Int16Array; + new (buffer: ArrayBuffer, byteOffset?: number, length?: number): Int16Array; + BYTES_PER_ELEMENT: number; + of(...items: number[]): Int16Array; + from(arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Int16Array; +}; -interface Float32Array { } -declare var Float32Array; +/** + * A typed array of 16-bit unsinged integer values. The contents are initialized to 0. If the requested number of bytes could not be allocated an exception is raised. + */ +interface Uint16Array { + BYTES_PER_ELEMENT: number; + buffer: ArrayBuffer; + byteLength: number; + byteOffset: number; + copyWithin(target: number, start: number, end?: number): Uint16Array; + entries(): Iterator<[number, number]>; + every(callbackfn: (value: number, index: number, array: Uint16Array) => boolean, thisArg?: any): boolean; + fill(value: number, start?: number, end?: number): Uint16Array; + filter(callbackfn: (value: number, index: number, array: Uint16Array) => boolean, thisArg?: any): Uint16Array; + find(predicate: (value: number, index: number, obj: Array) => boolean, thisArg?: any): number; + findIndex(predicate: (value: number) => boolean, thisArg?: any): number; + forEach(callbackfn: (value: number, index: number, array: Uint16Array) => void, thisArg?: any): void; + indexOf(searchElement: number, fromIndex?: number): number; + join(separator?: string): string; + keys(): number[]; + lastIndexOf(searchElement: number, fromIndex?: number): number; + length: number; + map(callbackfn: (value: number, index: number, array: Uint16Array) => number, thisArg?: any): Uint16Array; + reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Uint16Array) => number, initialValue?: number): number; + reduce(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Uint16Array) => U, initialValue: U): U; + reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Uint16Array) => number, initialValue?: number): number; + reduceRight(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Uint16Array) => U, initialValue: U): U; + reverse(): Uint16Array; + set(index: number, value: number): void; + set(array: Uint16Array, offset?: number): void; + slice(start?: number, end?: number): Uint16Array; + some(callbackfn: (value: number, index: number, array: Uint16Array) => boolean, thisArg?: any): boolean; + sort(compareFn?: (a: number, b: number) => number): Uint16Array; + subarray(begin: number, end?: number): Uint16Array; + toLocaleString(): string; + toString(): string; + values(): Uint16Array; + [index: number]: number; + // [Symbol.iterator] (): number; +} -interface Float64Array { } -declare var Float64Array; +declare var Uint16Array: { + prototype: Uint16Array; + new (length: number): Uint16Array; + new (array: Uint16Array): Uint16Array; + new (array: number[]): Uint16Array; + new (buffer: ArrayBuffer, byteOffset?: number, length?: number): Uint16Array; + BYTES_PER_ELEMENT: number; + of(...items: number[]): Uint16Array; + from(arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Uint16Array; +}; +/** + * A typed array of 32-bit signed integer values. The contents are initialized to 0. If the requested number of bytes could not be allocated an exception is raised. + */ +interface Int32Array { + BYTES_PER_ELEMENT: number; + buffer: ArrayBuffer; + byteLength: number; + byteOffset: number; + copyWithin(target: number, start: number, end?: number): Int32Array; + entries(): Iterator<[number, number]>; + every(callbackfn: (value: number, index: number, array: Int32Array) => boolean, thisArg?: any): boolean; + fill(value: number, start?: number, end?: number): Int32Array; + filter(callbackfn: (value: number, index: number, array: Int32Array) => boolean, thisArg?: any): Int32Array; + find(predicate: (value: number, index: number, obj: Array) => boolean, thisArg?: any): number; + findIndex(predicate: (value: number) => boolean, thisArg?: any): number; + forEach(callbackfn: (value: number, index: number, array: Int32Array) => void, thisArg?: any): void; + indexOf(searchElement: number, fromIndex?: number): number; + join(separator?: string): string; + keys(): number[]; + lastIndexOf(searchElement: number, fromIndex?: number): number; + length: number; + map(callbackfn: (value: number, index: number, array: Int32Array) => number, thisArg?: any): Int32Array; + reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Int32Array) => number, initialValue?: number): number; + reduce(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Int32Array) => U, initialValue: U): U; + reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Int32Array) => number, initialValue?: number): number; + reduceRight(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Int32Array) => U, initialValue: U): U; + reverse(): Int32Array; + set(index: number, value: number): void; + set(array: Int32Array, offset?: number): void; + slice(start?: number, end?: number): Int32Array; + some(callbackfn: (value: number, index: number, array: Int32Array) => boolean, thisArg?: any): boolean; + sort(compareFn?: (a: number, b: number) => number): Int32Array; + subarray(begin: number, end?: number): Int32Array; + toLocaleString(): string; + toString(): string; + values(): Int32Array; + [index: number]: number; + // [Symbol.iterator] (): number; +} + +declare var Int32Array: { + prototype: Int32Array; + new (length: number): Int32Array; + new (array: Int32Array): Int32Array; + new (array: number[]): Int32Array; + new (buffer: ArrayBuffer, byteOffset?: number, length?: number): Int32Array; + BYTES_PER_ELEMENT: number; + of(...items: number[]): Int32Array; + from(arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Int32Array; +}; + +/** + * A typed array of 32-bit unsigned integer values. The contents are initialized to 0. If the requested number of bytes could not be allocated an exception is raised. + */ +interface Uint32Array { + BYTES_PER_ELEMENT: number; + buffer: ArrayBuffer; + byteLength: number; + byteOffset: number; + copyWithin(target: number, start: number, end?: number): Uint32Array; + entries(): Iterator<[number, number]>; + every(callbackfn: (value: number, index: number, array: Uint32Array) => boolean, thisArg?: any): boolean; + fill(value: number, start?: number, end?: number): Uint32Array; + filter(callbackfn: (value: number, index: number, array: Uint32Array) => boolean, thisArg?: any): Uint32Array; + find(predicate: (value: number, index: number, obj: Array) => boolean, thisArg?: any): number; + findIndex(predicate: (value: number) => boolean, thisArg?: any): number; + forEach(callbackfn: (value: number, index: number, array: Uint32Array) => void, thisArg?: any): void; + indexOf(searchElement: number, fromIndex?: number): number; + join(separator?: string): string; + keys(): number[]; + lastIndexOf(searchElement: number, fromIndex?: number): number; + length: number; + map(callbackfn: (value: number, index: number, array: Uint32Array) => number, thisArg?: any): Uint32Array; + reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Uint32Array) => number, initialValue?: number): number; + reduce(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Uint32Array) => U, initialValue: U): U; + reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Uint32Array) => number, initialValue?: number): number; + reduceRight(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Uint32Array) => U, initialValue: U): U; + reverse(): Uint32Array; + set(index: number, value: number): void; + set(array: Uint32Array, offset?: number): void; + slice(start?: number, end?: number): Uint32Array; + some(callbackfn: (value: number, index: number, array: Uint32Array) => boolean, thisArg?: any): boolean; + sort(compareFn?: (a: number, b: number) => number): Uint32Array; + subarray(begin: number, end?: number): Uint32Array; + toLocaleString(): string; + toString(): string; + values(): Uint32Array; + [index: number]: number; + // [Symbol.iterator] (): number; +} + +declare var Uint32Array: { + prototype: Uint32Array; + new (length: number): Uint32Array; + new (array: Uint32Array): Uint32Array; + new (array: number[]): Uint32Array; + new (buffer: ArrayBuffer, byteOffset?: number, length?: number): Uint32Array; + BYTES_PER_ELEMENT: number; + of(...items: number[]): Uint32Array; + from(arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Uint32Array; +}; + +/** + * A typed array of 32-bit float values. The contents are initialized to 0. If the requested number of bytes could not be allocated an exception is raised. + */ +interface Float32Array { + BYTES_PER_ELEMENT: number; + buffer: ArrayBuffer; + byteLength: number; + byteOffset: number; + copyWithin(target: number, start: number, end?: number): Float32Array; + entries(): Iterator<[number, number]>; + every(callbackfn: (value: number, index: number, array: Float32Array) => boolean, thisArg?: any): boolean; + fill(value: number, start?: number, end?: number): Float32Array; + filter(callbackfn: (value: number, index: number, array: Float32Array) => boolean, thisArg?: any): Float32Array; + find(predicate: (value: number, index: number, obj: Array) => boolean, thisArg?: any): number; + findIndex(predicate: (value: number) => boolean, thisArg?: any): number; + forEach(callbackfn: (value: number, index: number, array: Float32Array) => void, thisArg?: any): void; + indexOf(searchElement: number, fromIndex?: number): number; + join(separator?: string): string; + keys(): number[]; + lastIndexOf(searchElement: number, fromIndex?: number): number; + length: number; + map(callbackfn: (value: number, index: number, array: Float32Array) => number, thisArg?: any): Float32Array; + reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Float32Array) => number, initialValue?: number): number; + reduce(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Float32Array) => U, initialValue: U): U; + reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Float32Array) => number, initialValue?: number): number; + reduceRight(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Float32Array) => U, initialValue: U): U; + reverse(): Float32Array; + set(index: number, value: number): void; + set(array: Float32Array, offset?: number): void; + slice(start?: number, end?: number): Float32Array; + some(callbackfn: (value: number, index: number, array: Float32Array) => boolean, thisArg?: any): boolean; + sort(compareFn?: (a: number, b: number) => number): Float32Array; + subarray(begin: number, end?: number): Float32Array; + toLocaleString(): string; + toString(): string; + values(): Float32Array; + [index: number]: number; + // [Symbol.iterator] (): number; +} + +declare var Float32Array: { + prototype: Float32Array; + new (length: number): Float32Array; + new (array: Float32Array): Float32Array; + new (array: number[]): Float32Array; + new (buffer: ArrayBuffer, byteOffset?: number, length?: number): Float32Array; + BYTES_PER_ELEMENT: number; + of(...items: number[]): Float32Array; + from(arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Float32Array; +}; + +/** + * A typed array of 64-bit float values. The contents are initialized to 0. If the requested number of bytes could not be allocated an exception is raised. + */ +interface Float64Array { + BYTES_PER_ELEMENT: number; + buffer: ArrayBuffer; + byteLength: number; + byteOffset: number; + copyWithin(target: number, start: number, end?: number): Float64Array; + entries(): Iterator<[number, number]>; + every(callbackfn: (value: number, index: number, array: Float64Array) => boolean, thisArg?: any): boolean; + fill(value: number, start?: number, end?: number): Float64Array; + filter(callbackfn: (value: number, index: number, array: Float64Array) => boolean, thisArg?: any): Float64Array; + find(predicate: (value: number, index: number, obj: Array) => boolean, thisArg?: any): number; + findIndex(predicate: (value: number) => boolean, thisArg?: any): number; + forEach(callbackfn: (value: number, index: number, array: Float64Array) => void, thisArg?: any): void; + indexOf(searchElement: number, fromIndex?: number): number; + join(separator?: string): string; + keys(): number[]; + lastIndexOf(searchElement: number, fromIndex?: number): number; + length: number; + map(callbackfn: (value: number, index: number, array: Float64Array) => number, thisArg?: any): Float64Array; + reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Float64Array) => number, initialValue?: number): number; + reduce(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Float64Array) => U, initialValue: U): U; + reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Float64Array) => number, initialValue?: number): number; + reduceRight(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Float64Array) => U, initialValue: U): U; + reverse(): Float64Array; + set(index: number, value: number): void; + set(array: Float64Array, offset?: number): void; + slice(start?: number, end?: number): Float64Array; + some(callbackfn: (value: number, index: number, array: Float64Array) => boolean, thisArg?: any): boolean; + sort(compareFn?: (a: number, b: number) => number): Float64Array; + subarray(begin: number, end?: number): Float64Array; + toLocaleString(): string; + toString(): string; + values(): Float64Array; + [index: number]: number; + // [Symbol.iterator] (): number; +} + +declare var Float64Array: { + prototype: Float64Array; + new (length: number): Float64Array; + new (array: Float64Array): Float64Array; + new (array: number[]): Float64Array; + new (buffer: ArrayBuffer, byteOffset?: number, length?: number): Float64Array; + BYTES_PER_ELEMENT: number; + of(...items: number[]): Float64Array; + from(arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Float64Array; +}; interface ProxyHandler { getPrototypeOf? (target: T): any; setPrototypeOf? (target: T, v: any): boolean; From fc720be82e2862bbbb8abddc1c793ea25da011dc Mon Sep 17 00:00:00 2001 From: Daniel Rosenwasser Date: Wed, 12 Nov 2014 22:00:59 -0800 Subject: [PATCH 032/195] Added 'Constructor' to 'isDeclaration' predicate. --- src/compiler/parser.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/src/compiler/parser.ts b/src/compiler/parser.ts index c7818f2e1bb..8b91ac3a1c2 100644 --- a/src/compiler/parser.ts +++ b/src/compiler/parser.ts @@ -583,6 +583,7 @@ module ts { case SyntaxKind.FunctionDeclaration: case SyntaxKind.GetAccessor: case SyntaxKind.SetAccessor: + case SyntaxKind.Constructor: case SyntaxKind.ClassDeclaration: case SyntaxKind.InterfaceDeclaration: case SyntaxKind.TypeAliasDeclaration: From 89983588c5c886da252cc21de52da4632d668829 Mon Sep 17 00:00:00 2001 From: Daniel Rosenwasser Date: Wed, 12 Nov 2014 22:17:57 -0800 Subject: [PATCH 033/195] Look through constructor parameters if acc. modifier. --- src/services/services.ts | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/services/services.ts b/src/services/services.ts index 62b675b299e..2f141a76456 100644 --- a/src/services/services.ts +++ b/src/services/services.ts @@ -3882,6 +3882,18 @@ module ts { } else if (container.kind === SyntaxKind.ClassDeclaration) { nodes = (container).members; + + // If we're an accessibility modifier, we should search the constructor's parameter list + // as well (i.e. don't look for 'static' parameters). + if (modifierFlag & NodeFlags.AccessibilityModifier) { + var constructor = forEach((container).members, member => { + return member.kind === SyntaxKind.Constructor && member; + }); + + if (constructor) { + nodes = nodes.concat(constructor.parameters); + } + } } else if (container.kind === SyntaxKind.Constructor) { nodes = ((container).parameters).concat( From 56b4978040acd8147b560d4c3522fefa95404894 Mon Sep 17 00:00:00 2001 From: Daniel Rosenwasser Date: Wed, 12 Nov 2014 22:23:59 -0800 Subject: [PATCH 034/195] Account for variable statements, as they are not declarations. --- src/services/services.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/services/services.ts b/src/services/services.ts index 2f141a76456..68d703ef351 100644 --- a/src/services/services.ts +++ b/src/services/services.ts @@ -3505,7 +3505,8 @@ module ts { return getGetAndSetOccurrences(node.parent); } default: - if (isModifier(node.kind) && node.parent && isDeclaration(node.parent)) { + if (isModifier(node.kind) && node.parent && + (isDeclaration(node.parent) || node.parent.kind === SyntaxKind.VariableStatement)) { return getModifierOccurrences(node.kind, node.parent); } } From c111086552e24eedd8c6bf4bd46819b7c59b6c19 Mon Sep 17 00:00:00 2001 From: Daniel Rosenwasser Date: Wed, 12 Nov 2014 22:25:31 -0800 Subject: [PATCH 035/195] Added a few tests. --- .../cases/fourslash/getOccurrencesDeclare1.ts | 64 +++++++++++++++++++ .../cases/fourslash/getOccurrencesDeclare2.ts | 64 +++++++++++++++++++ .../cases/fourslash/getOccurrencesExport1.ts | 64 +++++++++++++++++++ .../cases/fourslash/getOccurrencesExport2.ts | 64 +++++++++++++++++++ .../cases/fourslash/getOccurrencesPrivate1.ts | 64 +++++++++++++++++++ .../cases/fourslash/getOccurrencesPrivate2.ts | 64 +++++++++++++++++++ .../fourslash/getOccurrencesProtected1.ts | 64 +++++++++++++++++++ .../fourslash/getOccurrencesProtected2.ts | 64 +++++++++++++++++++ .../cases/fourslash/getOccurrencesPublic1.ts | 64 +++++++++++++++++++ .../cases/fourslash/getOccurrencesPublic2.ts | 64 +++++++++++++++++++ .../cases/fourslash/getOccurrencesStatic1.ts | 64 +++++++++++++++++++ 11 files changed, 704 insertions(+) create mode 100644 tests/cases/fourslash/getOccurrencesDeclare1.ts create mode 100644 tests/cases/fourslash/getOccurrencesDeclare2.ts create mode 100644 tests/cases/fourslash/getOccurrencesExport1.ts create mode 100644 tests/cases/fourslash/getOccurrencesExport2.ts create mode 100644 tests/cases/fourslash/getOccurrencesPrivate1.ts create mode 100644 tests/cases/fourslash/getOccurrencesPrivate2.ts create mode 100644 tests/cases/fourslash/getOccurrencesProtected1.ts create mode 100644 tests/cases/fourslash/getOccurrencesProtected2.ts create mode 100644 tests/cases/fourslash/getOccurrencesPublic1.ts create mode 100644 tests/cases/fourslash/getOccurrencesPublic2.ts create mode 100644 tests/cases/fourslash/getOccurrencesStatic1.ts diff --git a/tests/cases/fourslash/getOccurrencesDeclare1.ts b/tests/cases/fourslash/getOccurrencesDeclare1.ts new file mode 100644 index 00000000000..1cdad07eb7e --- /dev/null +++ b/tests/cases/fourslash/getOccurrencesDeclare1.ts @@ -0,0 +1,64 @@ +/// + +////module m { +//// export class C1 { +//// public pub1; +//// public pub2; +//// private priv1; +//// private priv2; +//// protected prot1; +//// protected prot2; +//// +//// public public; +//// private private; +//// protected protected; +//// +//// public constructor(public a, private b, protected c, public d, private e, protected f) { +//// this.public = 10; +//// this.private = 10; +//// this.protected = 10; +//// } +//// +//// public get x() { return 10; } +//// public set x(value) { } +//// +//// public static statPub; +//// private static statPriv; +//// protected static statProt; +//// } +//// +//// export interface I1 { +//// } +//// +//// export [|declare|] module ma.m1.m2.m3 { +//// interface I2 { +//// } +//// } +//// +//// export module mb.m1.m2.m3 { +//// declare var foo; +//// +//// export class C2 { +//// public pub1; +//// private priv1; +//// protected prot1; +//// +//// protected constructor(public public, protected protected, private private) { +//// public = private = protected; +//// } +//// } +//// } +//// +//// [|declare|] var ambientThing: number; +//// export var exportedThing = 10; +//// [|declare|] function foo(): string; +////} + +test.ranges().forEach(r => { + goTo.position(r.start); + verify.occurrencesAtPositionCount(test.ranges().length); + + test.ranges().forEach(range => { + verify.occurrencesAtPositionContains(range, false); + }); +}); diff --git a/tests/cases/fourslash/getOccurrencesDeclare2.ts b/tests/cases/fourslash/getOccurrencesDeclare2.ts new file mode 100644 index 00000000000..3d719e5d035 --- /dev/null +++ b/tests/cases/fourslash/getOccurrencesDeclare2.ts @@ -0,0 +1,64 @@ +/// + +////module m { +//// export class C1 { +//// public pub1; +//// public pub2; +//// private priv1; +//// private priv2; +//// protected prot1; +//// protected prot2; +//// +//// public public; +//// private private; +//// protected protected; +//// +//// public constructor(public a, private b, protected c, public d, private e, protected f) { +//// this.public = 10; +//// this.private = 10; +//// this.protected = 10; +//// } +//// +//// public get x() { return 10; } +//// public set x(value) { } +//// +//// public static statPub; +//// private static statPriv; +//// protected static statProt; +//// } +//// +//// export interface I1 { +//// } +//// +//// export declare module ma.m1.m2.m3 { +//// interface I2 { +//// } +//// } +//// +//// export module mb.m1.m2.m3 { +//// [|declare|] var foo; +//// +//// export class C2 { +//// public pub1; +//// private priv1; +//// protected prot1; +//// +//// protected constructor(public public, protected protected, private private) { +//// public = private = protected; +//// } +//// } +//// } +//// +//// declare var ambientThing: number; +//// export var exportedThing = 10; +//// declare function foo(): string; +////} + +test.ranges().forEach(r => { + goTo.position(r.start); + verify.occurrencesAtPositionCount(test.ranges().length); + + test.ranges().forEach(range => { + verify.occurrencesAtPositionContains(range, false); + }); +}); diff --git a/tests/cases/fourslash/getOccurrencesExport1.ts b/tests/cases/fourslash/getOccurrencesExport1.ts new file mode 100644 index 00000000000..c47c39cf548 --- /dev/null +++ b/tests/cases/fourslash/getOccurrencesExport1.ts @@ -0,0 +1,64 @@ +/// + +////module m { +//// [|export|] class C1 { +//// public pub1; +//// public pub2; +//// private priv1; +//// private priv2; +//// protected prot1; +//// protected prot2; +//// +//// public public; +//// private private; +//// protected protected; +//// +//// public constructor(public a, private b, protected c, public d, private e, protected f) { +//// this.public = 10; +//// this.private = 10; +//// this.protected = 10; +//// } +//// +//// public get x() { return 10; } +//// public set x(value) { } +//// +//// public static statPub; +//// private static statPriv; +//// protected static statProt; +//// } +//// +//// [|export|] interface I1 { +//// } +//// +//// [|export|] declare module ma.m1.m2.m3 { +//// interface I2 { +//// } +//// } +//// +//// [|export|] module mb.m1.m2.m3 { +//// declare var foo; +//// +//// export class C2 { +//// public pub1; +//// private priv1; +//// protected prot1; +//// +//// protected constructor(public public, protected protected, private private) { +//// public = private = protected; +//// } +//// } +//// } +//// +//// declare var ambientThing: number; +//// [|export|] var exportedThing = 10; +//// declare function foo(): string; +////} + +test.ranges().forEach(r => { + goTo.position(r.start); + verify.occurrencesAtPositionCount(test.ranges().length); + + test.ranges().forEach(range => { + verify.occurrencesAtPositionContains(range, false); + }); +}); diff --git a/tests/cases/fourslash/getOccurrencesExport2.ts b/tests/cases/fourslash/getOccurrencesExport2.ts new file mode 100644 index 00000000000..a8e43e744b9 --- /dev/null +++ b/tests/cases/fourslash/getOccurrencesExport2.ts @@ -0,0 +1,64 @@ +/// + +////module m { +//// export class C1 { +//// public pub1; +//// public pub2; +//// private priv1; +//// private priv2; +//// protected prot1; +//// protected prot2; +//// +//// public public; +//// private private; +//// protected protected; +//// +//// public constructor(public a, private b, protected c, public d, private e, protected f) { +//// this.public = 10; +//// this.private = 10; +//// this.protected = 10; +//// } +//// +//// public get x() { return 10; } +//// public set x(value) { } +//// +//// public static statPub; +//// private static statPriv; +//// protected static statProt; +//// } +//// +//// export interface I1 { +//// } +//// +//// export declare module ma.m1.m2.m3 { +//// interface I2 { +//// } +//// } +//// +//// export module mb.m1.m2.m3 { +//// declare var foo; +//// +//// [|export|] class C2 { +//// public pub1; +//// private priv1; +//// protected prot1; +//// +//// protected constructor(public public, protected protected, private private) { +//// public = private = protected; +//// } +//// } +//// } +//// +//// declare var ambientThing: number; +//// export var exportedThing = 10; +//// declare function foo(): string; +////} + +test.ranges().forEach(r => { + goTo.position(r.start); + verify.occurrencesAtPositionCount(test.ranges().length); + + test.ranges().forEach(range => { + verify.occurrencesAtPositionContains(range, false); + }); +}); diff --git a/tests/cases/fourslash/getOccurrencesPrivate1.ts b/tests/cases/fourslash/getOccurrencesPrivate1.ts new file mode 100644 index 00000000000..991ed3ea31c --- /dev/null +++ b/tests/cases/fourslash/getOccurrencesPrivate1.ts @@ -0,0 +1,64 @@ +/// + +////module m { +//// export class C1 { +//// public pub1; +//// public pub2; +//// [|private|] priv1; +//// [|private|] priv2; +//// protected prot1; +//// protected prot2; +//// +//// public public; +//// [|private|] private; +//// protected protected; +//// +//// public constructor(public a, [|private|] b, protected c, public d, [|private|] e, protected f) { +//// this.public = 10; +//// this.private = 10; +//// this.protected = 10; +//// } +//// +//// public get x() { return 10; } +//// public set x(value) { } +//// +//// public static statPub; +//// [|private|] static statPriv; +//// protected static statProt; +//// } +//// +//// export interface I1 { +//// } +//// +//// export declare module ma.m1.m2.m3 { +//// interface I2 { +//// } +//// } +//// +//// export module mb.m1.m2.m3 { +//// declare var foo; +//// +//// export class C2 { +//// public pub1; +//// private priv1; +//// protected prot1; +//// +//// protected constructor(public public, protected protected, private private) { +//// public = private = protected; +//// } +//// } +//// } +//// +//// declare var ambientThing: number; +//// export var exportedThing = 10; +//// declare function foo(): string; +////} + +test.ranges().forEach(r => { + goTo.position(r.start); + verify.occurrencesAtPositionCount(test.ranges().length); + + test.ranges().forEach(range => { + verify.occurrencesAtPositionContains(range, false); + }); +}); diff --git a/tests/cases/fourslash/getOccurrencesPrivate2.ts b/tests/cases/fourslash/getOccurrencesPrivate2.ts new file mode 100644 index 00000000000..19397443af5 --- /dev/null +++ b/tests/cases/fourslash/getOccurrencesPrivate2.ts @@ -0,0 +1,64 @@ +/// + +////module m { +//// export class C1 { +//// public pub1; +//// public pub2; +//// private priv1; +//// private priv2; +//// protected prot1; +//// protected prot2; +//// +//// public public; +//// private private; +//// protected protected; +//// +//// public constructor(public a, private b, protected c, public d, private e, protected f) { +//// this.public = 10; +//// this.private = 10; +//// this.protected = 10; +//// } +//// +//// public get x() { return 10; } +//// public set x(value) { } +//// +//// public static statPub; +//// private static statPriv; +//// protected static statProt; +//// } +//// +//// export interface I1 { +//// } +//// +//// export declare module ma.m1.m2.m3 { +//// interface I2 { +//// } +//// } +//// +//// export module mb.m1.m2.m3 { +//// declare var foo; +//// +//// export class C2 { +//// public pub1; +//// [|private|] priv1; +//// protected prot1; +//// +//// protected constructor(public public, protected protected, [|private|] private) { +//// public = private = protected; +//// } +//// } +//// } +//// +//// declare var ambientThing: number; +//// export var exportedThing = 10; +//// declare function foo(): string; +////} + +test.ranges().forEach(r => { + goTo.position(r.start); + verify.occurrencesAtPositionCount(test.ranges().length); + + test.ranges().forEach(range => { + verify.occurrencesAtPositionContains(range, false); + }); +}); diff --git a/tests/cases/fourslash/getOccurrencesProtected1.ts b/tests/cases/fourslash/getOccurrencesProtected1.ts new file mode 100644 index 00000000000..af9e3302968 --- /dev/null +++ b/tests/cases/fourslash/getOccurrencesProtected1.ts @@ -0,0 +1,64 @@ +/// + +////module m { +//// export class C1 { +//// public pub1; +//// public pub2; +//// private priv1; +//// private priv2; +//// [|protected|] prot1; +//// [|protected|] prot2; +//// +//// public public; +//// private private; +//// [|protected|] protected; +//// +//// public constructor(public a, private b, [|protected|] c, public d, private e, [|protected|] f) { +//// this.public = 10; +//// this.private = 10; +//// this.protected = 10; +//// } +//// +//// public get x() { return 10; } +//// public set x(value) { } +//// +//// public static statPub; +//// private static statPriv; +//// [|protected|] static statProt; +//// } +//// +//// export interface I1 { +//// } +//// +//// export declare module ma.m1.m2.m3 { +//// interface I2 { +//// } +//// } +//// +//// export module mb.m1.m2.m3 { +//// declare var foo; +//// +//// export class C2 { +//// public pub1; +//// private priv1; +//// protected prot1; +//// +//// protected constructor(public public, protected protected, private private) { +//// public = private = protected; +//// } +//// } +//// } +//// +//// declare var ambientThing: number; +//// export var exportedThing = 10; +//// declare function foo(): string; +////} + +test.ranges().forEach(r => { + goTo.position(r.start); + verify.occurrencesAtPositionCount(test.ranges().length); + + test.ranges().forEach(range => { + verify.occurrencesAtPositionContains(range, false); + }); +}); diff --git a/tests/cases/fourslash/getOccurrencesProtected2.ts b/tests/cases/fourslash/getOccurrencesProtected2.ts new file mode 100644 index 00000000000..666736eee16 --- /dev/null +++ b/tests/cases/fourslash/getOccurrencesProtected2.ts @@ -0,0 +1,64 @@ +/// + +////module m { +//// export class C1 { +//// public pub1; +//// public pub2; +//// private priv1; +//// private priv2; +//// protected prot1; +//// protected prot2; +//// +//// public public; +//// private private; +//// protected protected; +//// +//// public constructor(public a, private b, protected c, public d, private e, protected f) { +//// this.public = 10; +//// this.private = 10; +//// this.protected = 10; +//// } +//// +//// public get x() { return 10; } +//// public set x(value) { } +//// +//// public static statPub; +//// private static statPriv; +//// protected static statProt; +//// } +//// +//// export interface I1 { +//// } +//// +//// export declare module ma.m1.m2.m3 { +//// interface I2 { +//// } +//// } +//// +//// export module mb.m1.m2.m3 { +//// declare var foo; +//// +//// export class C2 { +//// public pub1; +//// private priv1; +//// [|protected|] prot1; +//// +//// [|protected|] constructor(public public, [|protected|] protected, private private) { +//// public = private = protected; +//// } +//// } +//// } +//// +//// declare var ambientThing: number; +//// export var exportedThing = 10; +//// declare function foo(): string; +////} + +test.ranges().forEach(r => { + goTo.position(r.start); + verify.occurrencesAtPositionCount(test.ranges().length); + + test.ranges().forEach(range => { + verify.occurrencesAtPositionContains(range, false); + }); +}); diff --git a/tests/cases/fourslash/getOccurrencesPublic1.ts b/tests/cases/fourslash/getOccurrencesPublic1.ts new file mode 100644 index 00000000000..a451a70c1cb --- /dev/null +++ b/tests/cases/fourslash/getOccurrencesPublic1.ts @@ -0,0 +1,64 @@ +/// + +////module m { +//// export class C1 { +//// [|public|] pub1; +//// [|public|] pub2; +//// private priv1; +//// private priv2; +//// protected prot1; +//// protected prot2; +//// +//// [|public|] public; +//// private private; +//// protected protected; +//// +//// [|public|] constructor([|public|] a, private b, protected c, [|public|] d, private e, protected f) { +//// this.public = 10; +//// this.private = 10; +//// this.protected = 10; +//// } +//// +//// [|public|] get x() { return 10; } +//// [|public|] set x(value) { } +//// +//// [|public|] static statPub; +//// private static statPriv; +//// protected static statProt; +//// } +//// +//// export interface I1 { +//// } +//// +//// export declare module ma.m1.m2.m3 { +//// interface I2 { +//// } +//// } +//// +//// export module mb.m1.m2.m3 { +//// declare var foo; +//// +//// export class C2 { +//// public pub1; +//// private priv1; +//// protected prot1; +//// +//// protected constructor(public public, protected protected, private private) { +//// public = private = protected; +//// } +//// } +//// } +//// +//// declare var ambientThing: number; +//// export var exportedThing = 10; +//// declare function foo(): string; +////} + +test.ranges().forEach(r => { + goTo.position(r.start); + verify.occurrencesAtPositionCount(test.ranges().length); + + test.ranges().forEach(range => { + verify.occurrencesAtPositionContains(range, false); + }); +}); diff --git a/tests/cases/fourslash/getOccurrencesPublic2.ts b/tests/cases/fourslash/getOccurrencesPublic2.ts new file mode 100644 index 00000000000..b4887e18e80 --- /dev/null +++ b/tests/cases/fourslash/getOccurrencesPublic2.ts @@ -0,0 +1,64 @@ +/// + +////module m { +//// export class C1 { +//// public pub1; +//// public pub2; +//// private priv1; +//// private priv2; +//// protected prot1; +//// protected prot2; +//// +//// public public; +//// private private; +//// protected protected; +//// +//// public constructor(public a, private b, protected c, public d, private e, protected f) { +//// this.public = 10; +//// this.private = 10; +//// this.protected = 10; +//// } +//// +//// public get x() { return 10; } +//// public set x(value) { } +//// +//// public static statPub; +//// private static statPriv; +//// protected static statProt; +//// } +//// +//// export interface I1 { +//// } +//// +//// export declare module ma.m1.m2.m3 { +//// interface I2 { +//// } +//// } +//// +//// export module mb.m1.m2.m3 { +//// declare var foo; +//// +//// export class C2 { +//// [|public|] pub1; +//// private priv1; +//// protected prot1; +//// +//// protected constructor([|public|] public, protected protected, private private) { +//// public = private = protected; +//// } +//// } +//// } +//// +//// declare var ambientThing: number; +//// export var exportedThing = 10; +//// declare function foo(): string; +////} + +test.ranges().forEach(r => { + goTo.position(r.start); + verify.occurrencesAtPositionCount(test.ranges().length); + + test.ranges().forEach(range => { + verify.occurrencesAtPositionContains(range, false); + }); +}); diff --git a/tests/cases/fourslash/getOccurrencesStatic1.ts b/tests/cases/fourslash/getOccurrencesStatic1.ts new file mode 100644 index 00000000000..8be9862d5ec --- /dev/null +++ b/tests/cases/fourslash/getOccurrencesStatic1.ts @@ -0,0 +1,64 @@ +/// + +////module m { +//// export class C1 { +//// public pub1; +//// public pub2; +//// private priv1; +//// private priv2; +//// protected prot1; +//// protected prot2; +//// +//// public public; +//// private private; +//// protected protected; +//// +//// public constructor(public a, private b, protected c, public d, private e, protected f) { +//// this.public = 10; +//// this.private = 10; +//// this.protected = 10; +//// } +//// +//// public get x() { return 10; } +//// public set x(value) { } +//// +//// public [|static|] statPub; +//// private [|static|] statPriv; +//// protected [|static|] statProt; +//// } +//// +//// export interface I1 { +//// } +//// +//// export declare module ma.m1.m2.m3 { +//// interface I2 { +//// } +//// } +//// +//// export module mb.m1.m2.m3 { +//// declare var foo; +//// +//// export class C2 { +//// public pub1; +//// private priv1; +//// protected prot1; +//// +//// protected constructor(public public, protected protected, private private) { +//// public = private = protected; +//// } +//// } +//// } +//// +//// declare var ambientThing: number; +//// export var exportedThing = 10; +//// declare function foo(): string; +////} + +test.ranges().forEach(r => { + goTo.position(r.start); + verify.occurrencesAtPositionCount(test.ranges().length); + + test.ranges().forEach(range => { + verify.occurrencesAtPositionContains(range, false); + }); +}); From 7d6f7ea8e9f88236d5d1a51bee6b14691964b333 Mon Sep 17 00:00:00 2001 From: Mohamed Hegazy Date: Fri, 14 Nov 2014 10:14:00 -0800 Subject: [PATCH 036/195] Fix symbol constructor and update Object properties --- src/lib/es6.d.ts | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/src/lib/es6.d.ts b/src/lib/es6.d.ts index 32d3c00290f..873979ad80f 100644 --- a/src/lib/es6.d.ts +++ b/src/lib/es6.d.ts @@ -15,7 +15,7 @@ interface SymbolConstructor { * Returns a new unique Symbol value. * @param description Description of the new Symbol object. */ - new (description?: string): Symbol; + (description?: string|number): Symbol; /** * Returns a Symbol object from the global symbol registry matching the given key if found. @@ -77,6 +77,21 @@ interface SymbolConstructor { declare var Symbol: SymbolConstructor; + +interface Object { + /** + * Determines whether an object has a property with the specified name. + * @param v A property name. + */ + hasOwnProperty(v: PropertyKey): boolean; + + /** + * Determines whether a specified property is enumerable. + * @param v A property name. + */ + propertyIsEnumerable(v: PropertyKey): boolean; +} + interface ObjectConstructor { /** * Copy the values of all of the enumerable own properties from one or more source objects to a From 2897612eee938c74e935a866374f1b4df6f3b847 Mon Sep 17 00:00:00 2001 From: Mohamed Hegazy Date: Fri, 14 Nov 2014 17:43:20 -0800 Subject: [PATCH 037/195] Add Promise typing support --- src/lib/es6.d.ts | 82 +++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 81 insertions(+), 1 deletion(-) diff --git a/src/lib/es6.d.ts b/src/lib/es6.d.ts index 873979ad80f..ab47b7bdd58 100644 --- a/src/lib/es6.d.ts +++ b/src/lib/es6.d.ts @@ -1141,6 +1141,7 @@ declare var Float64Array: { of(...items: number[]): Float64Array; from(arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Float64Array; }; + interface ProxyHandler { getPrototypeOf? (target: T): any; setPrototypeOf? (target: T, v: any): boolean; @@ -1179,4 +1180,83 @@ declare var Reflect: { preventExtensions(target: any): boolean; set(target: any, propertyKey: PropertyKey, value: any, receiver? :any): boolean; setPrototypeOf(target: any, proto: any): boolean; -}; \ No newline at end of file +}; + + +/** + * Represents the completion of an asynchronous operation + */ +interface Promise { + /** + * Attaches callbacks for the resolution and/or rejection of the Promise. + * @param onfulfilled The callback to execute when the Promise is resolved. + * @param onrejected The callback to execute when the Promise is rejected. + * @returns A Promise for the completion of which ever callback is executed. + */ + then(onfulfilled?: (value: T) => TResult | Promise, onrejected?: (reason: any) => TResult | Promise): Promise; + + /** + * Attaches a callback for only the rejection of the Promise. + * @param onrejected The callback to execute when the Promise is rejected. + * @returns A Promise for the completion of the callback. + */ + catch(onrejected?: (reason: any) => T | Promise): Promise; +} + +interface PromiseConstructor { + /** + * Creates a new Promise. + * @param init A callback used to initialize the promise. This callback is passed two arguments: a resolve callback used resolve the promise with a value or the result of another promise, and a reject callback used to reject the promise with a provided reason or error. + */ + new (init: (resolve: (value?: T | Promise) => void, reject: (reason?: any) => void) => void): Promise; + + /** + * Creates a Promise that is resolved with an array of results when all of the provided Promises resolve, or rejected when any Promise is rejected. + * @param values An array of Promises. + * @returns A new Promise. + */ + all(values: (T | Promise)[]): Promise; + + /** + * Creates a Promise that is resolved with an array of results when all of the provided Promises resolve, or rejected when any Promise is rejected. + * @param values An array of values. + * @returns A new Promise. + */ + all(values: Promise[]): Promise; + + /** + * Creates a Promise that is resolved or rejected when any of the provided Promises are resolved or rejected. + * @param values An array of Promises. + * @returns A new Promise. + */ + race(values: (T | Promise)[]): Promise; + + /** + * Creates a new rejected promise for the provided reason. + * @param reason The reason the promise was rejected. + * @returns A new rejected Promise. + */ + reject(reason: any): Promise; + + /** + * Creates a new rejected promise for the provided reason. + * @param reason The reason the promise was rejected. + * @returns A new rejected Promise. + */ + reject(reason: any): Promise; + + /** + * Creates a new resolved promise for the provided value. + * @param value A promise. + * @returns A promise whose internal state matches the provided promise. + */ + resolve(value: T | Promise): Promise; + + /** + * Creates a new resolved promise . + * @returns A resolved promise. + */ + resolve(): Promise; +} + +declare var Promise: PromiseConstructor; \ No newline at end of file From 1986fb1a5776b32916034cc26b46cbce89eaa8cb Mon Sep 17 00:00:00 2001 From: Mohamed Hegazy Date: Mon, 17 Nov 2014 10:59:03 -0800 Subject: [PATCH 038/195] Respond to code review comments --- src/lib/es6.d.ts | 281 ++++++++++++++++++++++++++++++----------------- 1 file changed, 179 insertions(+), 102 deletions(-) diff --git a/src/lib/es6.d.ts b/src/lib/es6.d.ts index ab47b7bdd58..3c1d0b5964b 100644 --- a/src/lib/es6.d.ts +++ b/src/lib/es6.d.ts @@ -34,13 +34,13 @@ interface SymbolConstructor { // Well-known Symbols /** - * A method that determines if a constructor object recognizes an object as one of the constructor’s - * instances.Called by the semantics of the instanceof operator. + * A method that determines if a constructor object recognizes an object as one of the + * constructor’s instances.Called by the semantics of the instanceof operator. */ hasInstance: Symbol; /** - * A Boolean value that if true indicates that an object should be flatten to its array elements + * A Boolean value that if true indicates that an object should be flatten to its array elements * by Array.prototype.concat. */ isConcatSpreadable: Symbol; @@ -51,8 +51,8 @@ interface SymbolConstructor { isRegExp: Symbol; /** - * A method that returns the default iterator for an object.Called by the semantics of the for-of - * statement. + * A method that returns the default iterator for an object.Called by the semantics of the + * for-of statement. */ iterator: Symbol; @@ -69,8 +69,8 @@ interface SymbolConstructor { toStringTag: Symbol; /** - * An Object whose own property names are property names that are excluded from the with environment - * bindings of the associated objects. + * An Object whose own property names are property names that are excluded from the with + * environment bindings of the associated objects. */ unscopables: Symbol; } @@ -103,7 +103,7 @@ interface ObjectConstructor { /** * Returns an array of all symbol properties found directly on object o. - * @param o Object to retrive the symbols from. + * @param o Object to retrieve the symbols from. */ getOwnPropertySymbols(o: any): Symbol[]; @@ -123,7 +123,8 @@ interface ObjectConstructor { /** * Gets the own property descriptor of the specified object. - * An own property descriptor is one that is defined directly on the object and is not inherited from the object's prototype. + * An own property descriptor is one that is defined directly on the object and is not + * inherited from the object's prototype. * @param o Object that contains the property. * @param p Name of the property. */ @@ -131,37 +132,40 @@ interface ObjectConstructor { /** * Adds a property to an object, or modifies attributes of an existing property. - * @param o Object on which to add or modify the property. This can be a native JavaScript object (that is, a user-defined object or a built in object) or a DOM object. + * @param o Object on which to add or modify the property. This can be a native JavaScript + * object (that is, a user-defined object or a built in object) or a DOM object. * @param p The property name. - * @param attributes Descriptor for the property. It can be for a data property or an accessor property. + * @param attributes Descriptor for the property. It can be for a data property or an accessor + * property. */ defineProperty(o: any, propertyKey: PropertyKey, attributes: PropertyDescriptor): any; } interface Function { /** - * Returns a new function object that is identical to the argument object in all ways except for - * its identity and the value of its HomeObject internal slot. + * Returns a new function object that is identical to the argument object in all ways except + * for its identity and the value of its HomeObject internal slot. */ toMethod(newHome: Object): Function; /** - * Teturns the name of the function. Function names are read-only and can not be changed. + * Returns the name of the function. Function names are read-only and can not be changed. */ name: string; } interface NumberConstructor { /** - * The value of Number.EPSILON is the difference between 1 and the smallest value greater than 1 that - * is representable as a Number value, which is approximately 2.2204460492503130808472633361816 x 10‍−‍16. + * The value of Number.EPSILON is the difference between 1 and the smallest value greater than 1 + * that is representable as a Number value, which is approximately: + * 2.2204460492503130808472633361816 x 10‍−‍16. */ EPSILON: number; /** * Returns true if passed value is finite. - * Unlike the global isFininte, Number.isFinite doesn't forcibly convert the parameter to a number. - * Only finite values of the type number, result in true. + * Unlike the global isFininte, Number.isFinite doesn't forcibly convert the parameter to a + * number. Only finite values of the type number, result in true. * @param number A numeric value. */ isFinite(number: number): boolean; @@ -173,9 +177,9 @@ interface NumberConstructor { isInteger(number: number): boolean; /** - * Returns a Boolean value that indicates whether a value is the reserved value NaN (not a number). - * Unlike the global isNaN(), Number.isNaN() doesn't forcefully convert the parameter to a number. - * Only values of the type number, that are also NaN, result in true. + * Returns a Boolean value that indicates whether a value is the reserved value NaN (not a + * number). Unlike the global isNaN(), Number.isNaN() doesn't forcefully convert the parameter + * to a number. Only values of the type number, that are also NaN, result in true. * @param number A numeric value. */ isNaN(number: number): boolean; @@ -187,13 +191,15 @@ interface NumberConstructor { isSafeInteger(number: number): boolean; /** - * The value of the largest integer n such that n and n + 1 are both exactly representable as a Number value. + * The value of the largest integer n such that n and n + 1 are both exactly representable as + * a Number value. * The value of Number.MIN_SAFE_INTEGER is 9007199254740991 2^53 − 1. */ MAX_SAFE_INTEGER: number; /** - * The value of the smallest integer n such that n and n − 1 are both exactly representable as a Number value. + * The value of the smallest integer n such that n and n − 1 are both exactly representable as + * a Number value. * The value of Number.MIN_SAFE_INTEGER is −9007199254740991 (−(2^53 − 1)). */ MIN_SAFE_INTEGER: number; @@ -221,76 +227,119 @@ interface ArrayLike { interface Array { /** Iterator */ - // [Symbol.iterator] (): T; + // [Symbol.iterator] (): Iterator; /** - Returns an array of key, value pairs for every entry in the arrray - */ + * Returns an array of key, value pairs for every entry in the array + */ entries(): Iterator<[number, T]>; /** - Returns an list of keys in the arrray - */ + * Returns an list of keys in the array + */ keys(): number[]; /** - Returns an list of values in the arrray - */ + * Returns an list of values in the array + */ values(): T[]; /** - Returns the value of the first element in the array where predicate is true, and undefined otherwise - @parm predicate find calls predicate once for each element of the array, in ascending order, until it finds one where predicate returns true. If such an element is found, find immediately returns that element value. Otherwise, find returns undefined. - @param thisArg If provided, it will be used as the this value for each invocation of predicate. If it is not provided, undefined is used instead. - */ + * Returns the value of the first element in the array where predicate is true, and undefined + * otherwise. + * @param predicate find calls predicate once for each element of the array, in ascending + * order, until it finds one where predicate returns true. If such an element is found, find + * immediately returns that element value. Otherwise, find returns undefined. + * @param thisArg If provided, it will be used as the this value for each invocation of + * predicate. If it is not provided, undefined is used instead. + */ find(predicate: (value: T, index: number, obj: Array) => boolean, thisArg?: any): T; /** - Returns the index of the first element in the array where predicate is true, and undefined otherwise - @parm predicate find calls predicate once for each element of the array, in ascending order, until it finds one where predicate returns true. If such an element is found, find immediately returns that element value. Otherwise, find returns undefined. - @param thisArg If provided, it will be used as the this value for each invocation of predicate. If it is not provided, undefined is used instead. - */ + * Returns the index of the first element in the array where predicate is true, and undefined + * otherwise. + * @param predicate find calls predicate once for each element of the array, in ascending + * order, until it finds one where predicate returns true. If such an element is found, find + * immediately returns that element value. Otherwise, find returns undefined. + * @param thisArg If provided, it will be used as the this value for each invocation of + * predicate. If it is not provided, undefined is used instead. + */ findIndex(predicate: (value: T) => boolean, thisArg?: any): number; /** - Returns the this object after filling the section identified by start and end with value - @param value value to fill array section with - @param start index to start filling the array at. If start is negative, it is treated as length+start where length is the length of the array. - @param end index to stop filling the array at. If end is negative, it is treated as length+end. - */ + * Returns the this object after filling the section identified by start and end with value + * @param value value to fill array section with + * @param start index to start filling the array at. If start is negative, it is treated as + * length+start where length is the length of the array. + * @param end index to stop filling the array at. If end is negative, it is treated as + * length+end. + */ fill(value: T, start?: number, end?: number): T[]; /** - Returns the this object after copying a section of the array identified by start and end to the same array starting at position target - @param target If target is negative, it is treated as length+target where length is the length of the array. - @param start If start is negative, it is treated as length+start. If end is negative, it is treated as length+end. - @param end If not specified, length of the this object is used as its default value. - */ + * Returns the this object after copying a section of the array identified by start and end + * to the same array starting at position target + * @param target If target is negative, it is treated as length+target where length is the + * length of the array. + * @param start If start is negative, it is treated as length+start. If end is negative, it + * is treated as length+end. + * @param end If not specified, length of the this object is used as its default value. + */ copyWithin(target: number, start: number, end?: number): T[]; } interface ArrayConstructor { + /** + * Creates an array from an array-like object. + * @param arrayLike An array-like object to convert to an array. + * @param mapfn A mapping function to call on every element of the array. + * @param thisArg Value of 'this' used to invoke the mapfn. + */ from(arrayLike: ArrayLike, mapfn: (v: T, k: number) => U, thisArg?: any): Array; + + /** + * Creates an array from an iterable object. + * @param iterable An iterable object to convert to an array. + * @param mapfn A mapping function to call on every element of the array. + * @param thisArg Value of 'this' used to invoke the mapfn. + */ from(iterable: Iterable, mapfn: (v: T, k: number) => U, thisArg?: any): Array; + + /** + * Creates an array from an array-like object. + * @param arrayLike An array-like object to convert to an array. + */ from(arrayLike: ArrayLike): Array; + + /** + * Creates an array from an iterable object. + * @param iterable An iterable object to convert to an array. + */ from(iterable: Iterable): Array; + + /** + * Returns a new array from a set of elements. + * @param items A set of elements to include in the new array object. + */ of(...items: T[]): Array; } interface String { /** Iterator */ - // [Symbol.iterator] (): string; + // [Symbol.iterator] (): Iterator; /** - * Returns a nonnegative integer Number less than 1114112 (0x110000) that is the code point value of the UTF-16 encoded code point starting - * at the string element at position pos in the String resulting from converting this object to a String. - * If there is no element at that position, the result is undefined. - * If a valid UTF-16 surrogate pair does not begin at pos, the result is the code unit at pos. + * Returns a nonnegative integer Number less than 1114112 (0x110000) that is the code point + * value of the UTF-16 encoded code point starting at the string element at position pos in + * the String resulting from converting this object to a String. + * If there is no element at that position, the result is undefined. + * If a valid UTF-16 surrogate pair does not begin at pos, the result is the code unit at pos. */ codePointAt(pos: number): number; /** - * Returns true if searchString appears as a substring of the result of converting this object to a String, at one or more positions that are + * Returns true if searchString appears as a substring of the result of converting this + * object to a String, at one or more positions that are * greater than or equal to position; otherwise, returns false. * @param searchString search string * @param position If position is undefined, 0 is assumed, so as to search all of the String. @@ -298,26 +347,31 @@ interface String { contains(searchString: string, position?: number): boolean; /** - * Returns true if the sequence of elements of searchString converted to a String is the same as the corresponding elements of this object - * (converted to a String) starting at endPosition – length(this). Otherwise returns false. + * Returns true if the sequence of elements of searchString converted to a String is the + * same as the corresponding elements of this object (converted to a String) starting at + * endPosition – length(this). Otherwise returns false. */ endsWith(searchString: string, endPosition?: number): boolean; /** - * Returns the String value result of normalizing the string into the normalization form named by form as specified in Unicode Standard Annex #15, Unicode Normalization Forms. - * @param form Applicaple values: "NFC", "NFD", "NFKC", or "NFKD", If not specified default is "NFC" + * Returns the String value result of normalizing the string into the normalization form + * named by form as specified in Unicode Standard Annex #15, Unicode Normalization Forms. + * @param form Applicable values: "NFC", "NFD", "NFKC", or "NFKD", If not specified default + * is "NFC" */ normalize(form?: string): string; /** - * Returns a String value that is made from count copies appended together. If count is 0, T is the empty String is returned. + * Returns a String value that is made from count copies appended together. If count is 0, + * T is the empty String is returned. * @param count number of copies to append */ repeat(count: number): string; /** - * Returns true if the sequence of elements of searchString converted to a String is the same as the corresponding elements of this object - * (converted to a String) starting at position. Otherwise returns false. + * Returns true if the sequence of elements of searchString converted to a String is the + * same as the corresponding elements of this object (converted to a String) starting at + * position. Otherwise returns false. */ startsWith(searchString: string, position?: number): boolean; @@ -339,19 +393,19 @@ interface String { /** Returns a HTML element */ fixed(): string - /** Returns a HTML element and sets the color attribure value */ + /** Returns a HTML element and sets the color attribute value */ fontcolor(color: string): string - /** Returns a HTML element and sets the size attribure value */ + /** Returns a HTML element and sets the size attribute value */ fontsize(size: number): string; - /** Returns a HTML element and sets the size attribure value */ + /** Returns a HTML element and sets the size attribute value */ fontsize(size: string): string; /** Returns an HTML element */ italics(): string; - /** Returns an HTML element and sets the href attribure value */ + /** Returns an HTML element and sets the href attribute value */ link(url: string): string; /** Returns a HTML element */ @@ -369,15 +423,23 @@ interface String { interface StringConstructor { /** - * Return the String value whose elements are, in order, the elements in the List elements. If length is 0, the empty string is returned. + * Return the String value whose elements are, in order, the elements in the List elements. + * If length is 0, the empty string is returned. */ fromCodePoint(...codePoints: number[]): string; /** - * String.raw is intended for use as a tag function of a Tagged Template String. When called as such the first argument will be a well formed - * template call site object and the rest parameter will contain the substitution values + * String.raw is intended for use as a tag function of a Tagged Template String. When called + * as such the first argument will be a well formed template call site object and the rest + * parameter will contain the substitution values. + * @param template A well-formed template string call site representation. + * @param substitutions A set of substitution values. */ - raw(callSite: { raw: string; }, ...substitutions: any[]); + raw(template: TemplateStringsArray, ...substitutions: any[]); +} + +interface TemplateStringsArray extends Array { + raw: string[]; } interface IteratorResult { @@ -439,7 +501,8 @@ interface Math { log1p(x: number): number; /** - * Returns the result of (e^x - 1) of x (e raised to the power of x, where e is the base of the natural logarithms). + * Returns the result of (e^x - 1) of x (e raised to the power of x, where e is the base of + * the natural logarithms). * @param x A numeric expression. */ expm1(x: number): number; @@ -514,7 +577,7 @@ interface Math { } interface RegExp { - // [Symbol.isRegExp]: Boolean; + // [Symbol.isRegExp]: boolean; /** * Matches a string with a regular expression, and returns an array containing the results of @@ -541,21 +604,21 @@ interface RegExp { * * If the regular expression that contains capturing parentheses, then each time separator is * matched the results (including any undefined results) of the capturing parentheses are spliced. - * @param string string value to slpit - * @param limit if not undefined, the output array is truncated so that it contains no more than - * limit elements. + * @param string string value to split + * @param limit if not undefined, the output array is truncated so that it contains no more + * than limit elements. */ split(string: string, limit?: number): string[]; /** - * Returns a Boolean value indicating the state of the sticky flag (y) used with a regular expression. - * Default is false. Read-only. + * Returns a Boolean value indicating the state of the sticky flag (y) used with a regular + * expression. Default is false. Read-only. */ sticky: boolean; /** - * Returns a Boolean value indicating the state of the unicode flag (u) used with a regular expression. - * Default is false. Read-only. + * Returns a Boolean value indicating the state of the Unicode flag (u) used with a regular + * expression. Default is false. Read-only. */ unicode: boolean; } @@ -571,7 +634,7 @@ interface Map { set(key: K, value?: V): Map; size: number; values(): V[]; - // [Symbol.Iterator]():Iterator<[K,V]>; + // [Symbol.iterator]():Iterator<[K,V]>; // [Symbol.toStringTag]: string; } @@ -604,7 +667,7 @@ interface Set { keys(): T[]; size: number; values(): T[]; - // [Symbol.Iterator]():Iterator; + // [Symbol.iterator]():Iterator; // [Symbol.toStringTag]: string; } @@ -684,7 +747,8 @@ declare var DataView: { }; /** - * A typed array of 8-bit integer values. The contents are initialized to 0. If the requested number of bytes could not be allocated an exception is raised. + * A typed array of 8-bit integer values. The contents are initialized to 0. If the requested + * number of bytes could not be allocated an exception is raised. */ interface Int8Array { BYTES_PER_ELEMENT: number; @@ -720,7 +784,7 @@ interface Int8Array { toString(): string; values(): Int8Array; [index: number]: number; - // [Symbol.iterator] (): number; + // [Symbol.iterator] (): Iterator; } declare var Int8Array: { @@ -735,7 +799,8 @@ declare var Int8Array: { }; /** - * A typed array of 8-bit unsigned integer values. The contents are initialized to 0. If the requested number of bytes could not be allocated an exception is raised. + * A typed array of 8-bit unsigned integer values. The contents are initialized to 0. If the + * requested number of bytes could not be allocated an exception is raised. */ interface Uint8Array { BYTES_PER_ELEMENT: number; @@ -771,7 +836,7 @@ interface Uint8Array { toString(): string; values(): Uint8Array; [index: number]: number; - // [Symbol.iterator] (): number; + // [Symbol.iterator] (): Iterator; } declare var Uint8Array: { @@ -786,7 +851,8 @@ declare var Uint8Array: { }; /** - * A typed array of 8-bit unsigned integer (clamped) values. The contents are initialized to 0. If the requested number of bytes could not be allocated an exception is raised. + * A typed array of 8-bit unsigned integer (clamped) values. The contents are initialized to 0. + * If the requested number of bytes could not be allocated an exception is raised. */ interface Uint8ClampedArray { BYTES_PER_ELEMENT: number; @@ -822,7 +888,7 @@ interface Uint8ClampedArray { toString(): string; values(): Uint8ClampedArray; [index: number]: number; - // [Symbol.iterator] (): number; + // [Symbol.iterator] (): Iterator; } declare var Uint8ClampedArray: { @@ -837,7 +903,8 @@ declare var Uint8ClampedArray: { }; /** - * A typed array of 16-bit signed integer values. The contents are initialized to 0. If the requested number of bytes could not be allocated an exception is raised. + * A typed array of 16-bit signed integer values. The contents are initialized to 0. If the + * requested number of bytes could not be allocated an exception is raised. */ interface Int16Array { BYTES_PER_ELEMENT: number; @@ -873,7 +940,7 @@ interface Int16Array { toString(): string; values(): Int16Array; [index: number]: number; - // [Symbol.iterator] (): number; + // [Symbol.iterator] (): Iterator; } declare var Int16Array: { @@ -888,7 +955,8 @@ declare var Int16Array: { }; /** - * A typed array of 16-bit unsinged integer values. The contents are initialized to 0. If the requested number of bytes could not be allocated an exception is raised. + * A typed array of 16-bit unsigned integer values. The contents are initialized to 0. If the + * requested number of bytes could not be allocated an exception is raised. */ interface Uint16Array { BYTES_PER_ELEMENT: number; @@ -924,7 +992,7 @@ interface Uint16Array { toString(): string; values(): Uint16Array; [index: number]: number; - // [Symbol.iterator] (): number; + // [Symbol.iterator] (): Iterator; } declare var Uint16Array: { @@ -939,7 +1007,8 @@ declare var Uint16Array: { }; /** - * A typed array of 32-bit signed integer values. The contents are initialized to 0. If the requested number of bytes could not be allocated an exception is raised. + * A typed array of 32-bit signed integer values. The contents are initialized to 0. If the + * requested number of bytes could not be allocated an exception is raised. */ interface Int32Array { BYTES_PER_ELEMENT: number; @@ -975,7 +1044,7 @@ interface Int32Array { toString(): string; values(): Int32Array; [index: number]: number; - // [Symbol.iterator] (): number; + // [Symbol.iterator] (): Iterator; } declare var Int32Array: { @@ -990,7 +1059,8 @@ declare var Int32Array: { }; /** - * A typed array of 32-bit unsigned integer values. The contents are initialized to 0. If the requested number of bytes could not be allocated an exception is raised. + * A typed array of 32-bit unsigned integer values. The contents are initialized to 0. If the + * requested number of bytes could not be allocated an exception is raised. */ interface Uint32Array { BYTES_PER_ELEMENT: number; @@ -1026,7 +1096,7 @@ interface Uint32Array { toString(): string; values(): Uint32Array; [index: number]: number; - // [Symbol.iterator] (): number; + // [Symbol.iterator] (): Iterator; } declare var Uint32Array: { @@ -1041,7 +1111,8 @@ declare var Uint32Array: { }; /** - * A typed array of 32-bit float values. The contents are initialized to 0. If the requested number of bytes could not be allocated an exception is raised. + * A typed array of 32-bit float values. The contents are initialized to 0. If the requested number + * of bytes could not be allocated an exception is raised. */ interface Float32Array { BYTES_PER_ELEMENT: number; @@ -1077,7 +1148,7 @@ interface Float32Array { toString(): string; values(): Float32Array; [index: number]: number; - // [Symbol.iterator] (): number; + // [Symbol.iterator] (): Iterator; } declare var Float32Array: { @@ -1092,7 +1163,8 @@ declare var Float32Array: { }; /** - * A typed array of 64-bit float values. The contents are initialized to 0. If the requested number of bytes could not be allocated an exception is raised. + * A typed array of 64-bit float values. The contents are initialized to 0. If the requested + * number of bytes could not be allocated an exception is raised. */ interface Float64Array { BYTES_PER_ELEMENT: number; @@ -1128,7 +1200,7 @@ interface Float64Array { toString(): string; values(): Float64Array; [index: number]: number; - // [Symbol.iterator] (): number; + // [Symbol.iterator] (): Iterator; } declare var Float64Array: { @@ -1206,26 +1278,31 @@ interface Promise { interface PromiseConstructor { /** * Creates a new Promise. - * @param init A callback used to initialize the promise. This callback is passed two arguments: a resolve callback used resolve the promise with a value or the result of another promise, and a reject callback used to reject the promise with a provided reason or error. + * @param init A callback used to initialize the promise. This callback is passed two arguments: + * a resolve callback used resolve the promise with a value or the result of another promise, + * and a reject callback used to reject the promise with a provided reason or error. */ new (init: (resolve: (value?: T | Promise) => void, reject: (reason?: any) => void) => void): Promise; /** - * Creates a Promise that is resolved with an array of results when all of the provided Promises resolve, or rejected when any Promise is rejected. + * Creates a Promise that is resolved with an array of results when all of the provided Promises + * resolve, or rejected when any Promise is rejected. * @param values An array of Promises. * @returns A new Promise. */ all(values: (T | Promise)[]): Promise; /** - * Creates a Promise that is resolved with an array of results when all of the provided Promises resolve, or rejected when any Promise is rejected. + * Creates a Promise that is resolved with an array of results when all of the provided Promises + * resolve, or rejected when any Promise is rejected. * @param values An array of values. * @returns A new Promise. */ all(values: Promise[]): Promise; /** - * Creates a Promise that is resolved or rejected when any of the provided Promises are resolved or rejected. + * Creates a Promise that is resolved or rejected when any of the provided Promises are resolved + * or rejected. * @param values An array of Promises. * @returns A new Promise. */ From 0629bba5bf985f99a8b6057695fa84c2e2b59eb9 Mon Sep 17 00:00:00 2001 From: Mohamed Hegazy Date: Mon, 17 Nov 2014 10:59:55 -0800 Subject: [PATCH 039/195] allow non ts files to be passed in to the compiler --- src/compiler/parser.ts | 2 +- src/compiler/types.ts | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/src/compiler/parser.ts b/src/compiler/parser.ts index 2d7c9266f2b..ab78f74f29d 100644 --- a/src/compiler/parser.ts +++ b/src/compiler/parser.ts @@ -4328,7 +4328,7 @@ module ts { } var diagnostic: DiagnosticMessage; if (hasExtension(filename)) { - if (!fileExtensionIs(filename, ".ts")) { + if (!options.allowNonTsExtensions && !fileExtensionIs(filename, ".ts")) { diagnostic = Diagnostics.File_0_must_have_extension_ts_or_d_ts; } else if (!findSourceFile(filename, isDefaultLib, refFile, refPos, refEnd)) { diff --git a/src/compiler/types.ts b/src/compiler/types.ts index c8f1c6d8b6a..5836f25891b 100644 --- a/src/compiler/types.ts +++ b/src/compiler/types.ts @@ -1152,6 +1152,7 @@ module ts { version?: boolean; watch?: boolean; preserveConstEnums?: boolean; + allowNonTsExtensions?: boolean; [option: string]: string | number | boolean; } From 6c6d9bf0910c45031a80592ede148faefa8192d3 Mon Sep 17 00:00:00 2001 From: Mohamed Hegazy Date: Mon, 17 Nov 2014 11:01:05 -0800 Subject: [PATCH 040/195] Add test262 test runner --- .gitignore | 2 + Jakefile | 10 ++++ src/harness/compilerRunner.ts | 2 +- src/harness/harness.ts | 20 ++------ src/harness/projectsRunner.ts | 2 +- src/harness/runner.ts | 7 ++- src/harness/rwcRunner.ts | 2 +- src/harness/test262Runner.ts | 87 +++++++++++++++++++++++++++++++++++ 8 files changed, 110 insertions(+), 22 deletions(-) create mode 100644 src/harness/test262Runner.ts diff --git a/.gitignore b/.gitignore index fb84462083c..2d740532d56 100644 --- a/.gitignore +++ b/.gitignore @@ -11,6 +11,7 @@ tests/cases/*/*/*.js.map tests/cases/*/*/*/*.js.map tests/cases/*/*/*/*/*.js.map tests/cases/rwc/* +tests/cases/test262/* tests/cases/perf/* !tests/cases/webharness/compilerToString.js test-args.txt @@ -19,6 +20,7 @@ tests/baselines/local/* tests/services/baselines/local/* tests/baselines/prototyping/local/* tests/baselines/rwc/* +tests/baselines/test262/* tests/services/baselines/prototyping/local/* tests/services/browser/typescriptServices.js scripts/processDiagnosticMessages.d.ts diff --git a/Jakefile b/Jakefile index 0d19f0d0ba3..f438c97d625 100644 --- a/Jakefile +++ b/Jakefile @@ -78,6 +78,7 @@ var harnessSources = [ "projectsRunner.ts", "loggedIO.ts", "rwcRunner.ts", + "test262Runner.ts", "runner.ts" ].map(function (f) { return path.join(harnessDirectory, f); @@ -347,6 +348,9 @@ var refBaseline = "tests/baselines/reference/"; var localRwcBaseline = "tests/baselines/rwc/local/"; var refRwcBaseline = "tests/baselines/rwc/reference/"; +var localTest262Baseline = "tests/baselines/test262/local/"; +var refTest262Baseline = "tests/baselines/test262/reference/"; + desc("Builds the test infrastructure using the built compiler"); task("tests", ["local", run].concat(libraryTargets)); @@ -515,6 +519,12 @@ task("baseline-accept-rwc", function() { fs.renameSync(localRwcBaseline, refRwcBaseline); }); +desc("Makes the most recent test262 test results the new baseline, overwriting the old baseline"); +task("baseline-accept-test262", function() { + jake.rmRf(refTest262Baseline); + fs.renameSync(localTest262Baseline, refTest262Baseline); +}); + // Webhost var webhostPath = "tests/webhost/webtsc.ts"; diff --git a/src/harness/compilerRunner.ts b/src/harness/compilerRunner.ts index 4ca33f92804..243191e919a 100644 --- a/src/harness/compilerRunner.ts +++ b/src/harness/compilerRunner.ts @@ -10,7 +10,7 @@ const enum CompilerTestType { } class CompilerBaselineRunner extends RunnerBase { - protected basePath = 'tests/cases'; + private basePath = 'tests/cases'; private errors: boolean; private emit: boolean; private decl: boolean; diff --git a/src/harness/harness.ts b/src/harness/harness.ts index 3bc635e2ab4..9b12bd85322 100644 --- a/src/harness/harness.ts +++ b/src/harness/harness.ts @@ -537,6 +537,8 @@ module Harness { export var defaultLibFileName = 'lib.d.ts'; export var defaultLibSourceFile = ts.createSourceFile(defaultLibFileName, IO.readFile(libFolder + 'lib.core.d.ts'), /*languageVersion*/ ts.ScriptTarget.Latest, /*version:*/ "0"); + export var defaultES6LibSourceFile = ts.createSourceFile(defaultLibFileName, IO.readFile(libFolder + 'lib.es6.d.ts'), /*languageVersion*/ ts.ScriptTarget.Latest, /*version:*/ "0"); + // Cache these between executions so we don't have to re-parse them for every test export var fourslashFilename = 'fourslash.ts'; @@ -579,9 +581,8 @@ module Harness { return fourslashSourceFile; } else { - var lib = defaultLibFileName; if (fn === defaultLibFileName) { - return defaultLibSourceFile; + return languageVersion === ts.ScriptTarget.ES6 ? defaultES6LibSourceFile : defaultLibSourceFile; } // Don't throw here -- the compiler might be looking for a test that actually doesn't exist as part of the TC return null; @@ -799,7 +800,6 @@ module Harness { checker.checkProgram(); var hasEarlyErrors = checker.hasEarlyErrors(); - // only emit if there weren't parse errors var emitResult: ts.EmitResult; if (!hadParseErrors && !hasEarlyErrors) { @@ -1009,20 +1009,6 @@ module Harness { sys.newLine + sys.newLine + outputLines.join('\r\n'); } - /* TODO: Delete? - export function makeDefaultCompilerSettings(options?: { useMinimalDefaultLib: boolean; noImplicitAny: boolean; }) { - var useMinimalDefaultLib = options ? options.useMinimalDefaultLib : true; - var noImplicitAny = options ? options.noImplicitAny : false; - var settings = new TypeScript.CompilationSettings(); - settings.codeGenTarget = TypeScript.LanguageVersion.EcmaScript5; - settings.moduleGenTarget = TypeScript.ModuleGenTarget.Synchronous; - settings.noLib = useMinimalDefaultLib; - settings.noResolve = false; - settings.noImplicitAny = noImplicitAny; - return settings; - } - */ - /** The harness' compiler instance used when tests are actually run. Reseting or changing settings of this compiler instance must be done within a test case (i.e., describe/it) */ var harnessCompiler: HarnessCompiler; diff --git a/src/harness/projectsRunner.ts b/src/harness/projectsRunner.ts index 797bc12a42b..35efbffbd68 100644 --- a/src/harness/projectsRunner.ts +++ b/src/harness/projectsRunner.ts @@ -169,7 +169,7 @@ class ProjectRunner extends RunnerBase { function getSourceFile(filename: string, languageVersion: ts.ScriptTarget): ts.SourceFile { var sourceFile: ts.SourceFile = undefined; if (filename === Harness.Compiler.defaultLibFileName) { - sourceFile = Harness.Compiler.defaultLibSourceFile; + sourceFile = languageVersion === ts.ScriptTarget.ES6 ? Harness.Compiler.defaultES6LibSourceFile : Harness.Compiler.defaultLibSourceFile; } else { var text = getSourceFileText(filename); diff --git a/src/harness/runner.ts b/src/harness/runner.ts index 38e23bb10c5..da37c02e224 100644 --- a/src/harness/runner.ts +++ b/src/harness/runner.ts @@ -13,9 +13,9 @@ // limitations under the License. // +/// /// -// TODO: re-enable -// /// +/// /// /// @@ -69,6 +69,9 @@ if (testConfigFile !== '') { case 'rwc': runners.push(new RWCRunner()); break; + case 'test262': + runners.push(new Test262BaselineRunner()); + break; case 'reverse': reverse = true; break; diff --git a/src/harness/rwcRunner.ts b/src/harness/rwcRunner.ts index bfb139fa719..df843ccf885 100644 --- a/src/harness/rwcRunner.ts +++ b/src/harness/rwcRunner.ts @@ -20,7 +20,7 @@ module RWC { } } - function collateOutputs(outputFiles: Harness.Compiler.GeneratedFile[], clean?: (s: string) => string) { + export function collateOutputs(outputFiles: Harness.Compiler.GeneratedFile[], clean?: (s: string) => string) { // Collect, test, and sort the filenames function cleanName(fn: string) { var lastSlash = ts.normalizeSlashes(fn).lastIndexOf('/'); diff --git a/src/harness/test262Runner.ts b/src/harness/test262Runner.ts new file mode 100644 index 00000000000..5b664276b5b --- /dev/null +++ b/src/harness/test262Runner.ts @@ -0,0 +1,87 @@ +/// +/// +/// + +class Test262BaselineRunner extends RunnerBase { + private static basePath = 'tests/cases/test262'; + private static helpersFilePath = 'tests/cases/test262-harness/helpers.d.ts'; + private static helperFile = { + unitName: Test262BaselineRunner.helpersFilePath, + content: Harness.IO.readFile(Test262BaselineRunner.helpersFilePath) + }; + private static testFileExtensionRegex = /\.js$/; + private static options: ts.CompilerOptions = { + allowNonTsExtensions: true, + target: ts.ScriptTarget.Latest, + module: ts.ModuleKind.CommonJS + }; + private static baselineOptions: Harness.Baseline.BaselineOptions = { Subfolder: 'test262' }; + + private runTest(filePath: string) { + describe('test262 test for ' + filePath, () => { + // Mocha holds onto the closure environment of the describe callback even after the test is done. + // Everything declared here should be cleared out in the "after" callback. + var testState: { + filename: string; + compilerResult: Harness.Compiler.CompilerResult; + inputFiles: { unitName: string; content: string }[]; + }; + + before(() => { + var content = Harness.IO.readFile(filePath); + var testFilename = ts.removeFileExtension(filePath).replace(/\//g, '_') + ".test"; + var testCaseContent = Harness.TestCaseParser.makeUnitsFromTest(content, testFilename); + + var inputFiles = testCaseContent.testUnitData.map(unit => { + return { unitName: Test262BaselineRunner.basePath + "/" + unit.name, content: unit.content }; + }); + + // Emit the results + testState = { + filename: testFilename, + inputFiles: inputFiles, + compilerResult: undefined, + }; + + Harness.Compiler.getCompiler().compileFiles([Test262BaselineRunner.helperFile].concat(inputFiles), /*otherFiles*/ [], compilerResult => { + testState.compilerResult = compilerResult; + }, /*settingsCallback*/ undefined, Test262BaselineRunner.options); + }); + + after(() => { + testState = undefined; + }); + + it('has the expected emitted code', () => { + Harness.Baseline.runBaseline('has the expected emitted code', testState.filename + '.output.js', () => { + var files = testState.compilerResult.files.filter(f=> f.fileName !== Test262BaselineRunner.helpersFilePath); + return RWC.collateOutputs(files, s => SyntacticCleaner.clean(s)); + }, false, Test262BaselineRunner.baselineOptions); + }); + + it('has the expected errors', () => { + Harness.Baseline.runBaseline('has the expected errors', testState.filename + '.errors.txt', () => { + var errors = testState.compilerResult.errors; + if (errors.length === 0) { + return null; + } + + return Harness.Compiler.getErrorBaseline(testState.inputFiles, errors); + }, false, Test262BaselineRunner.baselineOptions); + }); + }); + } + + public initializeTests() { + // this will set up a series of describe/it blocks to run between the setup and cleanup phases + if (this.tests.length === 0) { + var testFiles = this.enumerateFiles(Test262BaselineRunner.basePath, Test262BaselineRunner.testFileExtensionRegex, { recursive: true }); + testFiles.forEach(fn => { + this.runTest(ts.normalizePath(fn)); + }); + } + else { + this.tests.forEach(test => this.runTest(test)); + } + } +} \ No newline at end of file From 0dddfd9b6fc5f8c1371c9d5d355c2097086fd5a9 Mon Sep 17 00:00:00 2001 From: Mohamed Hegazy Date: Mon, 17 Nov 2014 11:01:21 -0800 Subject: [PATCH 041/195] respond to code review comment --- src/lib/core.d.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/lib/core.d.ts b/src/lib/core.d.ts index 189af20ad0b..57b5e05af43 100644 --- a/src/lib/core.d.ts +++ b/src/lib/core.d.ts @@ -428,13 +428,13 @@ declare var String: StringConstructor; interface Boolean { } -interface BoolenConstructor { +interface BooleanConstructor { new (value?: any): Boolean; (value?: any): boolean; prototype: Boolean; } -declare var Boolean: BoolenConstructor; +declare var Boolean: BooleanConstructor; interface Number { /** From 19854a0386ebe4d21128de8828ed75dd085b4236 Mon Sep 17 00:00:00 2001 From: Mohamed Hegazy Date: Mon, 17 Nov 2014 11:16:03 -0800 Subject: [PATCH 042/195] Add TypedArray tests --- tests/baselines/reference/typedArrays.js | 260 +++++++ tests/baselines/reference/typedArrays.types | 788 ++++++++++++++++++++ tests/cases/compiler/typedArrays.ts | 138 ++++ 3 files changed, 1186 insertions(+) create mode 100644 tests/baselines/reference/typedArrays.js create mode 100644 tests/baselines/reference/typedArrays.types create mode 100644 tests/cases/compiler/typedArrays.ts diff --git a/tests/baselines/reference/typedArrays.js b/tests/baselines/reference/typedArrays.js new file mode 100644 index 00000000000..89e6f43ecae --- /dev/null +++ b/tests/baselines/reference/typedArrays.js @@ -0,0 +1,260 @@ +//// [typedArrays.ts] + +function CreateTypedArrayTypes() { + var typedArrays = []; + typedArrays[0] = Int8Array; + typedArrays[1] = Uint8Array; + typedArrays[2] = Int16Array; + typedArrays[3] = Uint16Array; + typedArrays[4] = Int32Array; + typedArrays[5] = Uint32Array; + typedArrays[6] = Float32Array; + typedArrays[7] = Float64Array; + typedArrays[8] = Uint8ClampedArray; + + return typedArrays; +} + +function CreateTypedArrayInstancesFromLength(obj: number) { + var typedArrays = []; + typedArrays[0] = new Int8Array(obj); + typedArrays[1] = new Uint8Array(obj); + typedArrays[2] = new Int16Array(obj); + typedArrays[3] = new Uint16Array(obj); + typedArrays[4] = new Int32Array(obj); + typedArrays[5] = new Uint32Array(obj); + typedArrays[6] = new Float32Array(obj); + typedArrays[7] = new Float64Array(obj); + typedArrays[8] = new Uint8ClampedArray(obj); + + return typedArrays; +} + +function CreateTypedArrayInstancesFromArray(obj: number[]) { + var typedArrays = []; + typedArrays[0] = new Int8Array(obj); + typedArrays[1] = new Uint8Array(obj); + typedArrays[2] = new Int16Array(obj); + typedArrays[3] = new Uint16Array(obj); + typedArrays[4] = new Int32Array(obj); + typedArrays[5] = new Uint32Array(obj); + typedArrays[6] = new Float32Array(obj); + typedArrays[7] = new Float64Array(obj); + typedArrays[8] = new Uint8ClampedArray(obj); + + return typedArrays; +} + +function CreateIntegerTypedArraysFromArray2(obj:number[]) { + var typedArrays = []; + typedArrays[0] = Int8Array.from(obj); + typedArrays[1] = Uint8Array.from(obj); + typedArrays[2] = Int16Array.from(obj); + typedArrays[3] = Uint16Array.from(obj); + typedArrays[4] = Int32Array.from(obj); + typedArrays[5] = Uint32Array.from(obj); + typedArrays[6] = Float32Array.from(obj); + typedArrays[7] = Float64Array.from(obj); + typedArrays[8] = Uint8ClampedArray.from(obj); + + return typedArrays; +} + +function CreateIntegerTypedArraysFromArrayLike(obj:ArrayLike) { + var typedArrays = []; + typedArrays[0] = Int8Array.from(obj); + typedArrays[1] = Uint8Array.from(obj); + typedArrays[2] = Int16Array.from(obj); + typedArrays[3] = Uint16Array.from(obj); + typedArrays[4] = Int32Array.from(obj); + typedArrays[5] = Uint32Array.from(obj); + typedArrays[6] = Float32Array.from(obj); + typedArrays[7] = Float64Array.from(obj); + typedArrays[8] = Uint8ClampedArray.from(obj); + + return typedArrays; +} + +/* +function CreateTypedArraysOf(obj) { + var typedArrays = []; + typedArrays[0] = Int8Array.of(...obj); + typedArrays[1] = Uint8Array.of(...obj); + typedArrays[2] = Int16Array.of(...obj); + typedArrays[3] = Uint16Array.of(...obj); + typedArrays[4] = Int32Array.of(...obj); + typedArrays[5] = Uint32Array.of(...obj); + typedArrays[6] = Float32Array.of(...obj); + typedArrays[7] = Float64Array.of(...obj); + typedArrays[8] = Uint8ClampedArray.of(...obj); + + return typedArrays; +} +*/ + +function CreateTypedArraysOf2() { + var typedArrays = []; + typedArrays[0] = Int8Array.of(1,2,3,4); + typedArrays[1] = Uint8Array.of(1,2,3,4); + typedArrays[2] = Int16Array.of(1,2,3,4); + typedArrays[3] = Uint16Array.of(1,2,3,4); + typedArrays[4] = Int32Array.of(1,2,3,4); + typedArrays[5] = Uint32Array.of(1,2,3,4); + typedArrays[6] = Float32Array.of(1,2,3,4); + typedArrays[7] = Float64Array.of(1,2,3,4); + typedArrays[8] = Uint8ClampedArray.of(1,2,3,4); + + return typedArrays; +} + +function CreateTypedArraysFromMapFn(obj:ArrayLike, mapFn: (n:number, v:number)=> number) { + var typedArrays = []; + typedArrays[0] = Int8Array.from(obj, mapFn); + typedArrays[1] = Uint8Array.from(obj, mapFn); + typedArrays[2] = Int16Array.from(obj, mapFn); + typedArrays[3] = Uint16Array.from(obj, mapFn); + typedArrays[4] = Int32Array.from(obj, mapFn); + typedArrays[5] = Uint32Array.from(obj, mapFn); + typedArrays[6] = Float32Array.from(obj, mapFn); + typedArrays[7] = Float64Array.from(obj, mapFn); + typedArrays[8] = Uint8ClampedArray.from(obj, mapFn); + + return typedArrays; +} + +function CreateTypedArraysFromThisObj(obj:ArrayLike, mapFn: (n:number, v:number)=> number, thisArg: {}) { + var typedArrays = []; + typedArrays[0] = Int8Array.from(obj, mapFn, thisArg); + typedArrays[1] = Uint8Array.from(obj, mapFn, thisArg); + typedArrays[2] = Int16Array.from(obj, mapFn, thisArg); + typedArrays[3] = Uint16Array.from(obj, mapFn, thisArg); + typedArrays[4] = Int32Array.from(obj, mapFn, thisArg); + typedArrays[5] = Uint32Array.from(obj, mapFn, thisArg); + typedArrays[6] = Float32Array.from(obj, mapFn, thisArg); + typedArrays[7] = Float64Array.from(obj, mapFn, thisArg); + typedArrays[8] = Uint8ClampedArray.from(obj, mapFn, thisArg); + + return typedArrays; +} + +//// [typedArrays.js] +function CreateTypedArrayTypes() { + var typedArrays = []; + typedArrays[0] = Int8Array; + typedArrays[1] = Uint8Array; + typedArrays[2] = Int16Array; + typedArrays[3] = Uint16Array; + typedArrays[4] = Int32Array; + typedArrays[5] = Uint32Array; + typedArrays[6] = Float32Array; + typedArrays[7] = Float64Array; + typedArrays[8] = Uint8ClampedArray; + return typedArrays; +} +function CreateTypedArrayInstancesFromLength(obj) { + var typedArrays = []; + typedArrays[0] = new Int8Array(obj); + typedArrays[1] = new Uint8Array(obj); + typedArrays[2] = new Int16Array(obj); + typedArrays[3] = new Uint16Array(obj); + typedArrays[4] = new Int32Array(obj); + typedArrays[5] = new Uint32Array(obj); + typedArrays[6] = new Float32Array(obj); + typedArrays[7] = new Float64Array(obj); + typedArrays[8] = new Uint8ClampedArray(obj); + return typedArrays; +} +function CreateTypedArrayInstancesFromArray(obj) { + var typedArrays = []; + typedArrays[0] = new Int8Array(obj); + typedArrays[1] = new Uint8Array(obj); + typedArrays[2] = new Int16Array(obj); + typedArrays[3] = new Uint16Array(obj); + typedArrays[4] = new Int32Array(obj); + typedArrays[5] = new Uint32Array(obj); + typedArrays[6] = new Float32Array(obj); + typedArrays[7] = new Float64Array(obj); + typedArrays[8] = new Uint8ClampedArray(obj); + return typedArrays; +} +function CreateIntegerTypedArraysFromArray2(obj) { + var typedArrays = []; + typedArrays[0] = Int8Array.from(obj); + typedArrays[1] = Uint8Array.from(obj); + typedArrays[2] = Int16Array.from(obj); + typedArrays[3] = Uint16Array.from(obj); + typedArrays[4] = Int32Array.from(obj); + typedArrays[5] = Uint32Array.from(obj); + typedArrays[6] = Float32Array.from(obj); + typedArrays[7] = Float64Array.from(obj); + typedArrays[8] = Uint8ClampedArray.from(obj); + return typedArrays; +} +function CreateIntegerTypedArraysFromArrayLike(obj) { + var typedArrays = []; + typedArrays[0] = Int8Array.from(obj); + typedArrays[1] = Uint8Array.from(obj); + typedArrays[2] = Int16Array.from(obj); + typedArrays[3] = Uint16Array.from(obj); + typedArrays[4] = Int32Array.from(obj); + typedArrays[5] = Uint32Array.from(obj); + typedArrays[6] = Float32Array.from(obj); + typedArrays[7] = Float64Array.from(obj); + typedArrays[8] = Uint8ClampedArray.from(obj); + return typedArrays; +} +/* +function CreateTypedArraysOf(obj) { + var typedArrays = []; + typedArrays[0] = Int8Array.of(...obj); + typedArrays[1] = Uint8Array.of(...obj); + typedArrays[2] = Int16Array.of(...obj); + typedArrays[3] = Uint16Array.of(...obj); + typedArrays[4] = Int32Array.of(...obj); + typedArrays[5] = Uint32Array.of(...obj); + typedArrays[6] = Float32Array.of(...obj); + typedArrays[7] = Float64Array.of(...obj); + typedArrays[8] = Uint8ClampedArray.of(...obj); + + return typedArrays; +} +*/ +function CreateTypedArraysOf2() { + var typedArrays = []; + typedArrays[0] = Int8Array.of(1, 2, 3, 4); + typedArrays[1] = Uint8Array.of(1, 2, 3, 4); + typedArrays[2] = Int16Array.of(1, 2, 3, 4); + typedArrays[3] = Uint16Array.of(1, 2, 3, 4); + typedArrays[4] = Int32Array.of(1, 2, 3, 4); + typedArrays[5] = Uint32Array.of(1, 2, 3, 4); + typedArrays[6] = Float32Array.of(1, 2, 3, 4); + typedArrays[7] = Float64Array.of(1, 2, 3, 4); + typedArrays[8] = Uint8ClampedArray.of(1, 2, 3, 4); + return typedArrays; +} +function CreateTypedArraysFromMapFn(obj, mapFn) { + var typedArrays = []; + typedArrays[0] = Int8Array.from(obj, mapFn); + typedArrays[1] = Uint8Array.from(obj, mapFn); + typedArrays[2] = Int16Array.from(obj, mapFn); + typedArrays[3] = Uint16Array.from(obj, mapFn); + typedArrays[4] = Int32Array.from(obj, mapFn); + typedArrays[5] = Uint32Array.from(obj, mapFn); + typedArrays[6] = Float32Array.from(obj, mapFn); + typedArrays[7] = Float64Array.from(obj, mapFn); + typedArrays[8] = Uint8ClampedArray.from(obj, mapFn); + return typedArrays; +} +function CreateTypedArraysFromThisObj(obj, mapFn, thisArg) { + var typedArrays = []; + typedArrays[0] = Int8Array.from(obj, mapFn, thisArg); + typedArrays[1] = Uint8Array.from(obj, mapFn, thisArg); + typedArrays[2] = Int16Array.from(obj, mapFn, thisArg); + typedArrays[3] = Uint16Array.from(obj, mapFn, thisArg); + typedArrays[4] = Int32Array.from(obj, mapFn, thisArg); + typedArrays[5] = Uint32Array.from(obj, mapFn, thisArg); + typedArrays[6] = Float32Array.from(obj, mapFn, thisArg); + typedArrays[7] = Float64Array.from(obj, mapFn, thisArg); + typedArrays[8] = Uint8ClampedArray.from(obj, mapFn, thisArg); + return typedArrays; +} diff --git a/tests/baselines/reference/typedArrays.types b/tests/baselines/reference/typedArrays.types new file mode 100644 index 00000000000..19980cd8ba0 --- /dev/null +++ b/tests/baselines/reference/typedArrays.types @@ -0,0 +1,788 @@ +=== tests/cases/compiler/typedArrays.ts === + +function CreateTypedArrayTypes() { +>CreateTypedArrayTypes : () => any[] + + var typedArrays = []; +>typedArrays : any[] +>[] : undefined[] + + typedArrays[0] = Int8Array; +>typedArrays[0] = Int8Array : { new (length: number): Int8Array; new (array: Int8Array): Int8Array; new (array: number[]): Int8Array; new (buffer: ArrayBuffer, byteOffset?: number, length?: number): Int8Array; prototype: Int8Array; BYTES_PER_ELEMENT: number; of(...items: number[]): Int8Array; from(arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Int8Array; } +>typedArrays[0] : any +>typedArrays : any[] +>Int8Array : { new (length: number): Int8Array; new (array: Int8Array): Int8Array; new (array: number[]): Int8Array; new (buffer: ArrayBuffer, byteOffset?: number, length?: number): Int8Array; prototype: Int8Array; BYTES_PER_ELEMENT: number; of(...items: number[]): Int8Array; from(arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Int8Array; } + + typedArrays[1] = Uint8Array; +>typedArrays[1] = Uint8Array : { new (length: number): Uint8Array; new (array: Uint8Array): Uint8Array; new (array: number[]): Uint8Array; new (buffer: ArrayBuffer, byteOffset?: number, length?: number): Uint8Array; prototype: Uint8Array; BYTES_PER_ELEMENT: number; of(...items: number[]): Uint8Array; from(arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Uint8Array; } +>typedArrays[1] : any +>typedArrays : any[] +>Uint8Array : { new (length: number): Uint8Array; new (array: Uint8Array): Uint8Array; new (array: number[]): Uint8Array; new (buffer: ArrayBuffer, byteOffset?: number, length?: number): Uint8Array; prototype: Uint8Array; BYTES_PER_ELEMENT: number; of(...items: number[]): Uint8Array; from(arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Uint8Array; } + + typedArrays[2] = Int16Array; +>typedArrays[2] = Int16Array : { new (length: number): Int16Array; new (array: Int16Array): Int16Array; new (array: number[]): Int16Array; new (buffer: ArrayBuffer, byteOffset?: number, length?: number): Int16Array; prototype: Int16Array; BYTES_PER_ELEMENT: number; of(...items: number[]): Int16Array; from(arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Int16Array; } +>typedArrays[2] : any +>typedArrays : any[] +>Int16Array : { new (length: number): Int16Array; new (array: Int16Array): Int16Array; new (array: number[]): Int16Array; new (buffer: ArrayBuffer, byteOffset?: number, length?: number): Int16Array; prototype: Int16Array; BYTES_PER_ELEMENT: number; of(...items: number[]): Int16Array; from(arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Int16Array; } + + typedArrays[3] = Uint16Array; +>typedArrays[3] = Uint16Array : { new (length: number): Uint16Array; new (array: Uint16Array): Uint16Array; new (array: number[]): Uint16Array; new (buffer: ArrayBuffer, byteOffset?: number, length?: number): Uint16Array; prototype: Uint16Array; BYTES_PER_ELEMENT: number; of(...items: number[]): Uint16Array; from(arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Uint16Array; } +>typedArrays[3] : any +>typedArrays : any[] +>Uint16Array : { new (length: number): Uint16Array; new (array: Uint16Array): Uint16Array; new (array: number[]): Uint16Array; new (buffer: ArrayBuffer, byteOffset?: number, length?: number): Uint16Array; prototype: Uint16Array; BYTES_PER_ELEMENT: number; of(...items: number[]): Uint16Array; from(arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Uint16Array; } + + typedArrays[4] = Int32Array; +>typedArrays[4] = Int32Array : { new (length: number): Int32Array; new (array: Int32Array): Int32Array; new (array: number[]): Int32Array; new (buffer: ArrayBuffer, byteOffset?: number, length?: number): Int32Array; prototype: Int32Array; BYTES_PER_ELEMENT: number; of(...items: number[]): Int32Array; from(arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Int32Array; } +>typedArrays[4] : any +>typedArrays : any[] +>Int32Array : { new (length: number): Int32Array; new (array: Int32Array): Int32Array; new (array: number[]): Int32Array; new (buffer: ArrayBuffer, byteOffset?: number, length?: number): Int32Array; prototype: Int32Array; BYTES_PER_ELEMENT: number; of(...items: number[]): Int32Array; from(arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Int32Array; } + + typedArrays[5] = Uint32Array; +>typedArrays[5] = Uint32Array : { new (length: number): Uint32Array; new (array: Uint32Array): Uint32Array; new (array: number[]): Uint32Array; new (buffer: ArrayBuffer, byteOffset?: number, length?: number): Uint32Array; prototype: Uint32Array; BYTES_PER_ELEMENT: number; of(...items: number[]): Uint32Array; from(arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Uint32Array; } +>typedArrays[5] : any +>typedArrays : any[] +>Uint32Array : { new (length: number): Uint32Array; new (array: Uint32Array): Uint32Array; new (array: number[]): Uint32Array; new (buffer: ArrayBuffer, byteOffset?: number, length?: number): Uint32Array; prototype: Uint32Array; BYTES_PER_ELEMENT: number; of(...items: number[]): Uint32Array; from(arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Uint32Array; } + + typedArrays[6] = Float32Array; +>typedArrays[6] = Float32Array : { new (length: number): Float32Array; new (array: Float32Array): Float32Array; new (array: number[]): Float32Array; new (buffer: ArrayBuffer, byteOffset?: number, length?: number): Float32Array; prototype: Float32Array; BYTES_PER_ELEMENT: number; of(...items: number[]): Float32Array; from(arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Float32Array; } +>typedArrays[6] : any +>typedArrays : any[] +>Float32Array : { new (length: number): Float32Array; new (array: Float32Array): Float32Array; new (array: number[]): Float32Array; new (buffer: ArrayBuffer, byteOffset?: number, length?: number): Float32Array; prototype: Float32Array; BYTES_PER_ELEMENT: number; of(...items: number[]): Float32Array; from(arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Float32Array; } + + typedArrays[7] = Float64Array; +>typedArrays[7] = Float64Array : { new (length: number): Float64Array; new (array: Float64Array): Float64Array; new (array: number[]): Float64Array; new (buffer: ArrayBuffer, byteOffset?: number, length?: number): Float64Array; prototype: Float64Array; BYTES_PER_ELEMENT: number; of(...items: number[]): Float64Array; from(arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Float64Array; } +>typedArrays[7] : any +>typedArrays : any[] +>Float64Array : { new (length: number): Float64Array; new (array: Float64Array): Float64Array; new (array: number[]): Float64Array; new (buffer: ArrayBuffer, byteOffset?: number, length?: number): Float64Array; prototype: Float64Array; BYTES_PER_ELEMENT: number; of(...items: number[]): Float64Array; from(arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Float64Array; } + + typedArrays[8] = Uint8ClampedArray; +>typedArrays[8] = Uint8ClampedArray : { new (length: number): Uint8ClampedArray; new (array: Uint8ClampedArray): Uint8ClampedArray; new (array: number[]): Uint8ClampedArray; new (buffer: ArrayBuffer, byteOffset?: number, length?: number): Uint8ClampedArray; prototype: Uint8ClampedArray; BYTES_PER_ELEMENT: number; of(...items: number[]): Uint8ClampedArray; from(arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Uint8ClampedArray; } +>typedArrays[8] : any +>typedArrays : any[] +>Uint8ClampedArray : { new (length: number): Uint8ClampedArray; new (array: Uint8ClampedArray): Uint8ClampedArray; new (array: number[]): Uint8ClampedArray; new (buffer: ArrayBuffer, byteOffset?: number, length?: number): Uint8ClampedArray; prototype: Uint8ClampedArray; BYTES_PER_ELEMENT: number; of(...items: number[]): Uint8ClampedArray; from(arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Uint8ClampedArray; } + + return typedArrays; +>typedArrays : any[] +} + +function CreateTypedArrayInstancesFromLength(obj: number) { +>CreateTypedArrayInstancesFromLength : (obj: number) => any[] +>obj : number + + var typedArrays = []; +>typedArrays : any[] +>[] : undefined[] + + typedArrays[0] = new Int8Array(obj); +>typedArrays[0] = new Int8Array(obj) : Int8Array +>typedArrays[0] : any +>typedArrays : any[] +>new Int8Array(obj) : Int8Array +>Int8Array : { new (length: number): Int8Array; new (array: Int8Array): Int8Array; new (array: number[]): Int8Array; new (buffer: ArrayBuffer, byteOffset?: number, length?: number): Int8Array; prototype: Int8Array; BYTES_PER_ELEMENT: number; of(...items: number[]): Int8Array; from(arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Int8Array; } +>obj : number + + typedArrays[1] = new Uint8Array(obj); +>typedArrays[1] = new Uint8Array(obj) : Uint8Array +>typedArrays[1] : any +>typedArrays : any[] +>new Uint8Array(obj) : Uint8Array +>Uint8Array : { new (length: number): Uint8Array; new (array: Uint8Array): Uint8Array; new (array: number[]): Uint8Array; new (buffer: ArrayBuffer, byteOffset?: number, length?: number): Uint8Array; prototype: Uint8Array; BYTES_PER_ELEMENT: number; of(...items: number[]): Uint8Array; from(arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Uint8Array; } +>obj : number + + typedArrays[2] = new Int16Array(obj); +>typedArrays[2] = new Int16Array(obj) : Int16Array +>typedArrays[2] : any +>typedArrays : any[] +>new Int16Array(obj) : Int16Array +>Int16Array : { new (length: number): Int16Array; new (array: Int16Array): Int16Array; new (array: number[]): Int16Array; new (buffer: ArrayBuffer, byteOffset?: number, length?: number): Int16Array; prototype: Int16Array; BYTES_PER_ELEMENT: number; of(...items: number[]): Int16Array; from(arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Int16Array; } +>obj : number + + typedArrays[3] = new Uint16Array(obj); +>typedArrays[3] = new Uint16Array(obj) : Uint16Array +>typedArrays[3] : any +>typedArrays : any[] +>new Uint16Array(obj) : Uint16Array +>Uint16Array : { new (length: number): Uint16Array; new (array: Uint16Array): Uint16Array; new (array: number[]): Uint16Array; new (buffer: ArrayBuffer, byteOffset?: number, length?: number): Uint16Array; prototype: Uint16Array; BYTES_PER_ELEMENT: number; of(...items: number[]): Uint16Array; from(arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Uint16Array; } +>obj : number + + typedArrays[4] = new Int32Array(obj); +>typedArrays[4] = new Int32Array(obj) : Int32Array +>typedArrays[4] : any +>typedArrays : any[] +>new Int32Array(obj) : Int32Array +>Int32Array : { new (length: number): Int32Array; new (array: Int32Array): Int32Array; new (array: number[]): Int32Array; new (buffer: ArrayBuffer, byteOffset?: number, length?: number): Int32Array; prototype: Int32Array; BYTES_PER_ELEMENT: number; of(...items: number[]): Int32Array; from(arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Int32Array; } +>obj : number + + typedArrays[5] = new Uint32Array(obj); +>typedArrays[5] = new Uint32Array(obj) : Uint32Array +>typedArrays[5] : any +>typedArrays : any[] +>new Uint32Array(obj) : Uint32Array +>Uint32Array : { new (length: number): Uint32Array; new (array: Uint32Array): Uint32Array; new (array: number[]): Uint32Array; new (buffer: ArrayBuffer, byteOffset?: number, length?: number): Uint32Array; prototype: Uint32Array; BYTES_PER_ELEMENT: number; of(...items: number[]): Uint32Array; from(arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Uint32Array; } +>obj : number + + typedArrays[6] = new Float32Array(obj); +>typedArrays[6] = new Float32Array(obj) : Float32Array +>typedArrays[6] : any +>typedArrays : any[] +>new Float32Array(obj) : Float32Array +>Float32Array : { new (length: number): Float32Array; new (array: Float32Array): Float32Array; new (array: number[]): Float32Array; new (buffer: ArrayBuffer, byteOffset?: number, length?: number): Float32Array; prototype: Float32Array; BYTES_PER_ELEMENT: number; of(...items: number[]): Float32Array; from(arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Float32Array; } +>obj : number + + typedArrays[7] = new Float64Array(obj); +>typedArrays[7] = new Float64Array(obj) : Float64Array +>typedArrays[7] : any +>typedArrays : any[] +>new Float64Array(obj) : Float64Array +>Float64Array : { new (length: number): Float64Array; new (array: Float64Array): Float64Array; new (array: number[]): Float64Array; new (buffer: ArrayBuffer, byteOffset?: number, length?: number): Float64Array; prototype: Float64Array; BYTES_PER_ELEMENT: number; of(...items: number[]): Float64Array; from(arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Float64Array; } +>obj : number + + typedArrays[8] = new Uint8ClampedArray(obj); +>typedArrays[8] = new Uint8ClampedArray(obj) : Uint8ClampedArray +>typedArrays[8] : any +>typedArrays : any[] +>new Uint8ClampedArray(obj) : Uint8ClampedArray +>Uint8ClampedArray : { new (length: number): Uint8ClampedArray; new (array: Uint8ClampedArray): Uint8ClampedArray; new (array: number[]): Uint8ClampedArray; new (buffer: ArrayBuffer, byteOffset?: number, length?: number): Uint8ClampedArray; prototype: Uint8ClampedArray; BYTES_PER_ELEMENT: number; of(...items: number[]): Uint8ClampedArray; from(arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Uint8ClampedArray; } +>obj : number + + return typedArrays; +>typedArrays : any[] +} + +function CreateTypedArrayInstancesFromArray(obj: number[]) { +>CreateTypedArrayInstancesFromArray : (obj: number[]) => any[] +>obj : number[] + + var typedArrays = []; +>typedArrays : any[] +>[] : undefined[] + + typedArrays[0] = new Int8Array(obj); +>typedArrays[0] = new Int8Array(obj) : Int8Array +>typedArrays[0] : any +>typedArrays : any[] +>new Int8Array(obj) : Int8Array +>Int8Array : { new (length: number): Int8Array; new (array: Int8Array): Int8Array; new (array: number[]): Int8Array; new (buffer: ArrayBuffer, byteOffset?: number, length?: number): Int8Array; prototype: Int8Array; BYTES_PER_ELEMENT: number; of(...items: number[]): Int8Array; from(arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Int8Array; } +>obj : number[] + + typedArrays[1] = new Uint8Array(obj); +>typedArrays[1] = new Uint8Array(obj) : Uint8Array +>typedArrays[1] : any +>typedArrays : any[] +>new Uint8Array(obj) : Uint8Array +>Uint8Array : { new (length: number): Uint8Array; new (array: Uint8Array): Uint8Array; new (array: number[]): Uint8Array; new (buffer: ArrayBuffer, byteOffset?: number, length?: number): Uint8Array; prototype: Uint8Array; BYTES_PER_ELEMENT: number; of(...items: number[]): Uint8Array; from(arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Uint8Array; } +>obj : number[] + + typedArrays[2] = new Int16Array(obj); +>typedArrays[2] = new Int16Array(obj) : Int16Array +>typedArrays[2] : any +>typedArrays : any[] +>new Int16Array(obj) : Int16Array +>Int16Array : { new (length: number): Int16Array; new (array: Int16Array): Int16Array; new (array: number[]): Int16Array; new (buffer: ArrayBuffer, byteOffset?: number, length?: number): Int16Array; prototype: Int16Array; BYTES_PER_ELEMENT: number; of(...items: number[]): Int16Array; from(arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Int16Array; } +>obj : number[] + + typedArrays[3] = new Uint16Array(obj); +>typedArrays[3] = new Uint16Array(obj) : Uint16Array +>typedArrays[3] : any +>typedArrays : any[] +>new Uint16Array(obj) : Uint16Array +>Uint16Array : { new (length: number): Uint16Array; new (array: Uint16Array): Uint16Array; new (array: number[]): Uint16Array; new (buffer: ArrayBuffer, byteOffset?: number, length?: number): Uint16Array; prototype: Uint16Array; BYTES_PER_ELEMENT: number; of(...items: number[]): Uint16Array; from(arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Uint16Array; } +>obj : number[] + + typedArrays[4] = new Int32Array(obj); +>typedArrays[4] = new Int32Array(obj) : Int32Array +>typedArrays[4] : any +>typedArrays : any[] +>new Int32Array(obj) : Int32Array +>Int32Array : { new (length: number): Int32Array; new (array: Int32Array): Int32Array; new (array: number[]): Int32Array; new (buffer: ArrayBuffer, byteOffset?: number, length?: number): Int32Array; prototype: Int32Array; BYTES_PER_ELEMENT: number; of(...items: number[]): Int32Array; from(arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Int32Array; } +>obj : number[] + + typedArrays[5] = new Uint32Array(obj); +>typedArrays[5] = new Uint32Array(obj) : Uint32Array +>typedArrays[5] : any +>typedArrays : any[] +>new Uint32Array(obj) : Uint32Array +>Uint32Array : { new (length: number): Uint32Array; new (array: Uint32Array): Uint32Array; new (array: number[]): Uint32Array; new (buffer: ArrayBuffer, byteOffset?: number, length?: number): Uint32Array; prototype: Uint32Array; BYTES_PER_ELEMENT: number; of(...items: number[]): Uint32Array; from(arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Uint32Array; } +>obj : number[] + + typedArrays[6] = new Float32Array(obj); +>typedArrays[6] = new Float32Array(obj) : Float32Array +>typedArrays[6] : any +>typedArrays : any[] +>new Float32Array(obj) : Float32Array +>Float32Array : { new (length: number): Float32Array; new (array: Float32Array): Float32Array; new (array: number[]): Float32Array; new (buffer: ArrayBuffer, byteOffset?: number, length?: number): Float32Array; prototype: Float32Array; BYTES_PER_ELEMENT: number; of(...items: number[]): Float32Array; from(arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Float32Array; } +>obj : number[] + + typedArrays[7] = new Float64Array(obj); +>typedArrays[7] = new Float64Array(obj) : Float64Array +>typedArrays[7] : any +>typedArrays : any[] +>new Float64Array(obj) : Float64Array +>Float64Array : { new (length: number): Float64Array; new (array: Float64Array): Float64Array; new (array: number[]): Float64Array; new (buffer: ArrayBuffer, byteOffset?: number, length?: number): Float64Array; prototype: Float64Array; BYTES_PER_ELEMENT: number; of(...items: number[]): Float64Array; from(arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Float64Array; } +>obj : number[] + + typedArrays[8] = new Uint8ClampedArray(obj); +>typedArrays[8] = new Uint8ClampedArray(obj) : Uint8ClampedArray +>typedArrays[8] : any +>typedArrays : any[] +>new Uint8ClampedArray(obj) : Uint8ClampedArray +>Uint8ClampedArray : { new (length: number): Uint8ClampedArray; new (array: Uint8ClampedArray): Uint8ClampedArray; new (array: number[]): Uint8ClampedArray; new (buffer: ArrayBuffer, byteOffset?: number, length?: number): Uint8ClampedArray; prototype: Uint8ClampedArray; BYTES_PER_ELEMENT: number; of(...items: number[]): Uint8ClampedArray; from(arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Uint8ClampedArray; } +>obj : number[] + + return typedArrays; +>typedArrays : any[] +} + +function CreateIntegerTypedArraysFromArray2(obj:number[]) { +>CreateIntegerTypedArraysFromArray2 : (obj: number[]) => any[] +>obj : number[] + + var typedArrays = []; +>typedArrays : any[] +>[] : undefined[] + + typedArrays[0] = Int8Array.from(obj); +>typedArrays[0] = Int8Array.from(obj) : Int8Array +>typedArrays[0] : any +>typedArrays : any[] +>Int8Array.from(obj) : Int8Array +>Int8Array.from : (arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any) => Int8Array +>Int8Array : { new (length: number): Int8Array; new (array: Int8Array): Int8Array; new (array: number[]): Int8Array; new (buffer: ArrayBuffer, byteOffset?: number, length?: number): Int8Array; prototype: Int8Array; BYTES_PER_ELEMENT: number; of(...items: number[]): Int8Array; from(arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Int8Array; } +>from : (arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any) => Int8Array +>obj : number[] + + typedArrays[1] = Uint8Array.from(obj); +>typedArrays[1] = Uint8Array.from(obj) : Uint8Array +>typedArrays[1] : any +>typedArrays : any[] +>Uint8Array.from(obj) : Uint8Array +>Uint8Array.from : (arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any) => Uint8Array +>Uint8Array : { new (length: number): Uint8Array; new (array: Uint8Array): Uint8Array; new (array: number[]): Uint8Array; new (buffer: ArrayBuffer, byteOffset?: number, length?: number): Uint8Array; prototype: Uint8Array; BYTES_PER_ELEMENT: number; of(...items: number[]): Uint8Array; from(arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Uint8Array; } +>from : (arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any) => Uint8Array +>obj : number[] + + typedArrays[2] = Int16Array.from(obj); +>typedArrays[2] = Int16Array.from(obj) : Int16Array +>typedArrays[2] : any +>typedArrays : any[] +>Int16Array.from(obj) : Int16Array +>Int16Array.from : (arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any) => Int16Array +>Int16Array : { new (length: number): Int16Array; new (array: Int16Array): Int16Array; new (array: number[]): Int16Array; new (buffer: ArrayBuffer, byteOffset?: number, length?: number): Int16Array; prototype: Int16Array; BYTES_PER_ELEMENT: number; of(...items: number[]): Int16Array; from(arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Int16Array; } +>from : (arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any) => Int16Array +>obj : number[] + + typedArrays[3] = Uint16Array.from(obj); +>typedArrays[3] = Uint16Array.from(obj) : Uint16Array +>typedArrays[3] : any +>typedArrays : any[] +>Uint16Array.from(obj) : Uint16Array +>Uint16Array.from : (arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any) => Uint16Array +>Uint16Array : { new (length: number): Uint16Array; new (array: Uint16Array): Uint16Array; new (array: number[]): Uint16Array; new (buffer: ArrayBuffer, byteOffset?: number, length?: number): Uint16Array; prototype: Uint16Array; BYTES_PER_ELEMENT: number; of(...items: number[]): Uint16Array; from(arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Uint16Array; } +>from : (arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any) => Uint16Array +>obj : number[] + + typedArrays[4] = Int32Array.from(obj); +>typedArrays[4] = Int32Array.from(obj) : Int32Array +>typedArrays[4] : any +>typedArrays : any[] +>Int32Array.from(obj) : Int32Array +>Int32Array.from : (arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any) => Int32Array +>Int32Array : { new (length: number): Int32Array; new (array: Int32Array): Int32Array; new (array: number[]): Int32Array; new (buffer: ArrayBuffer, byteOffset?: number, length?: number): Int32Array; prototype: Int32Array; BYTES_PER_ELEMENT: number; of(...items: number[]): Int32Array; from(arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Int32Array; } +>from : (arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any) => Int32Array +>obj : number[] + + typedArrays[5] = Uint32Array.from(obj); +>typedArrays[5] = Uint32Array.from(obj) : Uint32Array +>typedArrays[5] : any +>typedArrays : any[] +>Uint32Array.from(obj) : Uint32Array +>Uint32Array.from : (arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any) => Uint32Array +>Uint32Array : { new (length: number): Uint32Array; new (array: Uint32Array): Uint32Array; new (array: number[]): Uint32Array; new (buffer: ArrayBuffer, byteOffset?: number, length?: number): Uint32Array; prototype: Uint32Array; BYTES_PER_ELEMENT: number; of(...items: number[]): Uint32Array; from(arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Uint32Array; } +>from : (arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any) => Uint32Array +>obj : number[] + + typedArrays[6] = Float32Array.from(obj); +>typedArrays[6] = Float32Array.from(obj) : Float32Array +>typedArrays[6] : any +>typedArrays : any[] +>Float32Array.from(obj) : Float32Array +>Float32Array.from : (arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any) => Float32Array +>Float32Array : { new (length: number): Float32Array; new (array: Float32Array): Float32Array; new (array: number[]): Float32Array; new (buffer: ArrayBuffer, byteOffset?: number, length?: number): Float32Array; prototype: Float32Array; BYTES_PER_ELEMENT: number; of(...items: number[]): Float32Array; from(arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Float32Array; } +>from : (arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any) => Float32Array +>obj : number[] + + typedArrays[7] = Float64Array.from(obj); +>typedArrays[7] = Float64Array.from(obj) : Float64Array +>typedArrays[7] : any +>typedArrays : any[] +>Float64Array.from(obj) : Float64Array +>Float64Array.from : (arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any) => Float64Array +>Float64Array : { new (length: number): Float64Array; new (array: Float64Array): Float64Array; new (array: number[]): Float64Array; new (buffer: ArrayBuffer, byteOffset?: number, length?: number): Float64Array; prototype: Float64Array; BYTES_PER_ELEMENT: number; of(...items: number[]): Float64Array; from(arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Float64Array; } +>from : (arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any) => Float64Array +>obj : number[] + + typedArrays[8] = Uint8ClampedArray.from(obj); +>typedArrays[8] = Uint8ClampedArray.from(obj) : Uint8ClampedArray +>typedArrays[8] : any +>typedArrays : any[] +>Uint8ClampedArray.from(obj) : Uint8ClampedArray +>Uint8ClampedArray.from : (arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any) => Uint8ClampedArray +>Uint8ClampedArray : { new (length: number): Uint8ClampedArray; new (array: Uint8ClampedArray): Uint8ClampedArray; new (array: number[]): Uint8ClampedArray; new (buffer: ArrayBuffer, byteOffset?: number, length?: number): Uint8ClampedArray; prototype: Uint8ClampedArray; BYTES_PER_ELEMENT: number; of(...items: number[]): Uint8ClampedArray; from(arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Uint8ClampedArray; } +>from : (arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any) => Uint8ClampedArray +>obj : number[] + + return typedArrays; +>typedArrays : any[] +} + +function CreateIntegerTypedArraysFromArrayLike(obj:ArrayLike) { +>CreateIntegerTypedArraysFromArrayLike : (obj: ArrayLike) => any[] +>obj : ArrayLike +>ArrayLike : ArrayLike + + var typedArrays = []; +>typedArrays : any[] +>[] : undefined[] + + typedArrays[0] = Int8Array.from(obj); +>typedArrays[0] = Int8Array.from(obj) : Int8Array +>typedArrays[0] : any +>typedArrays : any[] +>Int8Array.from(obj) : Int8Array +>Int8Array.from : (arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any) => Int8Array +>Int8Array : { new (length: number): Int8Array; new (array: Int8Array): Int8Array; new (array: number[]): Int8Array; new (buffer: ArrayBuffer, byteOffset?: number, length?: number): Int8Array; prototype: Int8Array; BYTES_PER_ELEMENT: number; of(...items: number[]): Int8Array; from(arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Int8Array; } +>from : (arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any) => Int8Array +>obj : ArrayLike + + typedArrays[1] = Uint8Array.from(obj); +>typedArrays[1] = Uint8Array.from(obj) : Uint8Array +>typedArrays[1] : any +>typedArrays : any[] +>Uint8Array.from(obj) : Uint8Array +>Uint8Array.from : (arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any) => Uint8Array +>Uint8Array : { new (length: number): Uint8Array; new (array: Uint8Array): Uint8Array; new (array: number[]): Uint8Array; new (buffer: ArrayBuffer, byteOffset?: number, length?: number): Uint8Array; prototype: Uint8Array; BYTES_PER_ELEMENT: number; of(...items: number[]): Uint8Array; from(arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Uint8Array; } +>from : (arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any) => Uint8Array +>obj : ArrayLike + + typedArrays[2] = Int16Array.from(obj); +>typedArrays[2] = Int16Array.from(obj) : Int16Array +>typedArrays[2] : any +>typedArrays : any[] +>Int16Array.from(obj) : Int16Array +>Int16Array.from : (arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any) => Int16Array +>Int16Array : { new (length: number): Int16Array; new (array: Int16Array): Int16Array; new (array: number[]): Int16Array; new (buffer: ArrayBuffer, byteOffset?: number, length?: number): Int16Array; prototype: Int16Array; BYTES_PER_ELEMENT: number; of(...items: number[]): Int16Array; from(arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Int16Array; } +>from : (arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any) => Int16Array +>obj : ArrayLike + + typedArrays[3] = Uint16Array.from(obj); +>typedArrays[3] = Uint16Array.from(obj) : Uint16Array +>typedArrays[3] : any +>typedArrays : any[] +>Uint16Array.from(obj) : Uint16Array +>Uint16Array.from : (arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any) => Uint16Array +>Uint16Array : { new (length: number): Uint16Array; new (array: Uint16Array): Uint16Array; new (array: number[]): Uint16Array; new (buffer: ArrayBuffer, byteOffset?: number, length?: number): Uint16Array; prototype: Uint16Array; BYTES_PER_ELEMENT: number; of(...items: number[]): Uint16Array; from(arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Uint16Array; } +>from : (arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any) => Uint16Array +>obj : ArrayLike + + typedArrays[4] = Int32Array.from(obj); +>typedArrays[4] = Int32Array.from(obj) : Int32Array +>typedArrays[4] : any +>typedArrays : any[] +>Int32Array.from(obj) : Int32Array +>Int32Array.from : (arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any) => Int32Array +>Int32Array : { new (length: number): Int32Array; new (array: Int32Array): Int32Array; new (array: number[]): Int32Array; new (buffer: ArrayBuffer, byteOffset?: number, length?: number): Int32Array; prototype: Int32Array; BYTES_PER_ELEMENT: number; of(...items: number[]): Int32Array; from(arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Int32Array; } +>from : (arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any) => Int32Array +>obj : ArrayLike + + typedArrays[5] = Uint32Array.from(obj); +>typedArrays[5] = Uint32Array.from(obj) : Uint32Array +>typedArrays[5] : any +>typedArrays : any[] +>Uint32Array.from(obj) : Uint32Array +>Uint32Array.from : (arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any) => Uint32Array +>Uint32Array : { new (length: number): Uint32Array; new (array: Uint32Array): Uint32Array; new (array: number[]): Uint32Array; new (buffer: ArrayBuffer, byteOffset?: number, length?: number): Uint32Array; prototype: Uint32Array; BYTES_PER_ELEMENT: number; of(...items: number[]): Uint32Array; from(arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Uint32Array; } +>from : (arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any) => Uint32Array +>obj : ArrayLike + + typedArrays[6] = Float32Array.from(obj); +>typedArrays[6] = Float32Array.from(obj) : Float32Array +>typedArrays[6] : any +>typedArrays : any[] +>Float32Array.from(obj) : Float32Array +>Float32Array.from : (arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any) => Float32Array +>Float32Array : { new (length: number): Float32Array; new (array: Float32Array): Float32Array; new (array: number[]): Float32Array; new (buffer: ArrayBuffer, byteOffset?: number, length?: number): Float32Array; prototype: Float32Array; BYTES_PER_ELEMENT: number; of(...items: number[]): Float32Array; from(arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Float32Array; } +>from : (arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any) => Float32Array +>obj : ArrayLike + + typedArrays[7] = Float64Array.from(obj); +>typedArrays[7] = Float64Array.from(obj) : Float64Array +>typedArrays[7] : any +>typedArrays : any[] +>Float64Array.from(obj) : Float64Array +>Float64Array.from : (arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any) => Float64Array +>Float64Array : { new (length: number): Float64Array; new (array: Float64Array): Float64Array; new (array: number[]): Float64Array; new (buffer: ArrayBuffer, byteOffset?: number, length?: number): Float64Array; prototype: Float64Array; BYTES_PER_ELEMENT: number; of(...items: number[]): Float64Array; from(arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Float64Array; } +>from : (arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any) => Float64Array +>obj : ArrayLike + + typedArrays[8] = Uint8ClampedArray.from(obj); +>typedArrays[8] = Uint8ClampedArray.from(obj) : Uint8ClampedArray +>typedArrays[8] : any +>typedArrays : any[] +>Uint8ClampedArray.from(obj) : Uint8ClampedArray +>Uint8ClampedArray.from : (arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any) => Uint8ClampedArray +>Uint8ClampedArray : { new (length: number): Uint8ClampedArray; new (array: Uint8ClampedArray): Uint8ClampedArray; new (array: number[]): Uint8ClampedArray; new (buffer: ArrayBuffer, byteOffset?: number, length?: number): Uint8ClampedArray; prototype: Uint8ClampedArray; BYTES_PER_ELEMENT: number; of(...items: number[]): Uint8ClampedArray; from(arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Uint8ClampedArray; } +>from : (arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any) => Uint8ClampedArray +>obj : ArrayLike + + return typedArrays; +>typedArrays : any[] +} + +/* +function CreateTypedArraysOf(obj) { + var typedArrays = []; + typedArrays[0] = Int8Array.of(...obj); + typedArrays[1] = Uint8Array.of(...obj); + typedArrays[2] = Int16Array.of(...obj); + typedArrays[3] = Uint16Array.of(...obj); + typedArrays[4] = Int32Array.of(...obj); + typedArrays[5] = Uint32Array.of(...obj); + typedArrays[6] = Float32Array.of(...obj); + typedArrays[7] = Float64Array.of(...obj); + typedArrays[8] = Uint8ClampedArray.of(...obj); + + return typedArrays; +} +*/ + +function CreateTypedArraysOf2() { +>CreateTypedArraysOf2 : () => any[] + + var typedArrays = []; +>typedArrays : any[] +>[] : undefined[] + + typedArrays[0] = Int8Array.of(1,2,3,4); +>typedArrays[0] = Int8Array.of(1,2,3,4) : Int8Array +>typedArrays[0] : any +>typedArrays : any[] +>Int8Array.of(1,2,3,4) : Int8Array +>Int8Array.of : (...items: number[]) => Int8Array +>Int8Array : { new (length: number): Int8Array; new (array: Int8Array): Int8Array; new (array: number[]): Int8Array; new (buffer: ArrayBuffer, byteOffset?: number, length?: number): Int8Array; prototype: Int8Array; BYTES_PER_ELEMENT: number; of(...items: number[]): Int8Array; from(arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Int8Array; } +>of : (...items: number[]) => Int8Array + + typedArrays[1] = Uint8Array.of(1,2,3,4); +>typedArrays[1] = Uint8Array.of(1,2,3,4) : Uint8Array +>typedArrays[1] : any +>typedArrays : any[] +>Uint8Array.of(1,2,3,4) : Uint8Array +>Uint8Array.of : (...items: number[]) => Uint8Array +>Uint8Array : { new (length: number): Uint8Array; new (array: Uint8Array): Uint8Array; new (array: number[]): Uint8Array; new (buffer: ArrayBuffer, byteOffset?: number, length?: number): Uint8Array; prototype: Uint8Array; BYTES_PER_ELEMENT: number; of(...items: number[]): Uint8Array; from(arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Uint8Array; } +>of : (...items: number[]) => Uint8Array + + typedArrays[2] = Int16Array.of(1,2,3,4); +>typedArrays[2] = Int16Array.of(1,2,3,4) : Int16Array +>typedArrays[2] : any +>typedArrays : any[] +>Int16Array.of(1,2,3,4) : Int16Array +>Int16Array.of : (...items: number[]) => Int16Array +>Int16Array : { new (length: number): Int16Array; new (array: Int16Array): Int16Array; new (array: number[]): Int16Array; new (buffer: ArrayBuffer, byteOffset?: number, length?: number): Int16Array; prototype: Int16Array; BYTES_PER_ELEMENT: number; of(...items: number[]): Int16Array; from(arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Int16Array; } +>of : (...items: number[]) => Int16Array + + typedArrays[3] = Uint16Array.of(1,2,3,4); +>typedArrays[3] = Uint16Array.of(1,2,3,4) : Uint16Array +>typedArrays[3] : any +>typedArrays : any[] +>Uint16Array.of(1,2,3,4) : Uint16Array +>Uint16Array.of : (...items: number[]) => Uint16Array +>Uint16Array : { new (length: number): Uint16Array; new (array: Uint16Array): Uint16Array; new (array: number[]): Uint16Array; new (buffer: ArrayBuffer, byteOffset?: number, length?: number): Uint16Array; prototype: Uint16Array; BYTES_PER_ELEMENT: number; of(...items: number[]): Uint16Array; from(arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Uint16Array; } +>of : (...items: number[]) => Uint16Array + + typedArrays[4] = Int32Array.of(1,2,3,4); +>typedArrays[4] = Int32Array.of(1,2,3,4) : Int32Array +>typedArrays[4] : any +>typedArrays : any[] +>Int32Array.of(1,2,3,4) : Int32Array +>Int32Array.of : (...items: number[]) => Int32Array +>Int32Array : { new (length: number): Int32Array; new (array: Int32Array): Int32Array; new (array: number[]): Int32Array; new (buffer: ArrayBuffer, byteOffset?: number, length?: number): Int32Array; prototype: Int32Array; BYTES_PER_ELEMENT: number; of(...items: number[]): Int32Array; from(arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Int32Array; } +>of : (...items: number[]) => Int32Array + + typedArrays[5] = Uint32Array.of(1,2,3,4); +>typedArrays[5] = Uint32Array.of(1,2,3,4) : Uint32Array +>typedArrays[5] : any +>typedArrays : any[] +>Uint32Array.of(1,2,3,4) : Uint32Array +>Uint32Array.of : (...items: number[]) => Uint32Array +>Uint32Array : { new (length: number): Uint32Array; new (array: Uint32Array): Uint32Array; new (array: number[]): Uint32Array; new (buffer: ArrayBuffer, byteOffset?: number, length?: number): Uint32Array; prototype: Uint32Array; BYTES_PER_ELEMENT: number; of(...items: number[]): Uint32Array; from(arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Uint32Array; } +>of : (...items: number[]) => Uint32Array + + typedArrays[6] = Float32Array.of(1,2,3,4); +>typedArrays[6] = Float32Array.of(1,2,3,4) : Float32Array +>typedArrays[6] : any +>typedArrays : any[] +>Float32Array.of(1,2,3,4) : Float32Array +>Float32Array.of : (...items: number[]) => Float32Array +>Float32Array : { new (length: number): Float32Array; new (array: Float32Array): Float32Array; new (array: number[]): Float32Array; new (buffer: ArrayBuffer, byteOffset?: number, length?: number): Float32Array; prototype: Float32Array; BYTES_PER_ELEMENT: number; of(...items: number[]): Float32Array; from(arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Float32Array; } +>of : (...items: number[]) => Float32Array + + typedArrays[7] = Float64Array.of(1,2,3,4); +>typedArrays[7] = Float64Array.of(1,2,3,4) : Float64Array +>typedArrays[7] : any +>typedArrays : any[] +>Float64Array.of(1,2,3,4) : Float64Array +>Float64Array.of : (...items: number[]) => Float64Array +>Float64Array : { new (length: number): Float64Array; new (array: Float64Array): Float64Array; new (array: number[]): Float64Array; new (buffer: ArrayBuffer, byteOffset?: number, length?: number): Float64Array; prototype: Float64Array; BYTES_PER_ELEMENT: number; of(...items: number[]): Float64Array; from(arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Float64Array; } +>of : (...items: number[]) => Float64Array + + typedArrays[8] = Uint8ClampedArray.of(1,2,3,4); +>typedArrays[8] = Uint8ClampedArray.of(1,2,3,4) : Uint8ClampedArray +>typedArrays[8] : any +>typedArrays : any[] +>Uint8ClampedArray.of(1,2,3,4) : Uint8ClampedArray +>Uint8ClampedArray.of : (...items: number[]) => Uint8ClampedArray +>Uint8ClampedArray : { new (length: number): Uint8ClampedArray; new (array: Uint8ClampedArray): Uint8ClampedArray; new (array: number[]): Uint8ClampedArray; new (buffer: ArrayBuffer, byteOffset?: number, length?: number): Uint8ClampedArray; prototype: Uint8ClampedArray; BYTES_PER_ELEMENT: number; of(...items: number[]): Uint8ClampedArray; from(arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Uint8ClampedArray; } +>of : (...items: number[]) => Uint8ClampedArray + + return typedArrays; +>typedArrays : any[] +} + +function CreateTypedArraysFromMapFn(obj:ArrayLike, mapFn: (n:number, v:number)=> number) { +>CreateTypedArraysFromMapFn : (obj: ArrayLike, mapFn: (n: number, v: number) => number) => any[] +>obj : ArrayLike +>ArrayLike : ArrayLike +>mapFn : (n: number, v: number) => number +>n : number +>v : number + + var typedArrays = []; +>typedArrays : any[] +>[] : undefined[] + + typedArrays[0] = Int8Array.from(obj, mapFn); +>typedArrays[0] = Int8Array.from(obj, mapFn) : Int8Array +>typedArrays[0] : any +>typedArrays : any[] +>Int8Array.from(obj, mapFn) : Int8Array +>Int8Array.from : (arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any) => Int8Array +>Int8Array : { new (length: number): Int8Array; new (array: Int8Array): Int8Array; new (array: number[]): Int8Array; new (buffer: ArrayBuffer, byteOffset?: number, length?: number): Int8Array; prototype: Int8Array; BYTES_PER_ELEMENT: number; of(...items: number[]): Int8Array; from(arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Int8Array; } +>from : (arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any) => Int8Array +>obj : ArrayLike +>mapFn : (n: number, v: number) => number + + typedArrays[1] = Uint8Array.from(obj, mapFn); +>typedArrays[1] = Uint8Array.from(obj, mapFn) : Uint8Array +>typedArrays[1] : any +>typedArrays : any[] +>Uint8Array.from(obj, mapFn) : Uint8Array +>Uint8Array.from : (arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any) => Uint8Array +>Uint8Array : { new (length: number): Uint8Array; new (array: Uint8Array): Uint8Array; new (array: number[]): Uint8Array; new (buffer: ArrayBuffer, byteOffset?: number, length?: number): Uint8Array; prototype: Uint8Array; BYTES_PER_ELEMENT: number; of(...items: number[]): Uint8Array; from(arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Uint8Array; } +>from : (arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any) => Uint8Array +>obj : ArrayLike +>mapFn : (n: number, v: number) => number + + typedArrays[2] = Int16Array.from(obj, mapFn); +>typedArrays[2] = Int16Array.from(obj, mapFn) : Int16Array +>typedArrays[2] : any +>typedArrays : any[] +>Int16Array.from(obj, mapFn) : Int16Array +>Int16Array.from : (arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any) => Int16Array +>Int16Array : { new (length: number): Int16Array; new (array: Int16Array): Int16Array; new (array: number[]): Int16Array; new (buffer: ArrayBuffer, byteOffset?: number, length?: number): Int16Array; prototype: Int16Array; BYTES_PER_ELEMENT: number; of(...items: number[]): Int16Array; from(arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Int16Array; } +>from : (arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any) => Int16Array +>obj : ArrayLike +>mapFn : (n: number, v: number) => number + + typedArrays[3] = Uint16Array.from(obj, mapFn); +>typedArrays[3] = Uint16Array.from(obj, mapFn) : Uint16Array +>typedArrays[3] : any +>typedArrays : any[] +>Uint16Array.from(obj, mapFn) : Uint16Array +>Uint16Array.from : (arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any) => Uint16Array +>Uint16Array : { new (length: number): Uint16Array; new (array: Uint16Array): Uint16Array; new (array: number[]): Uint16Array; new (buffer: ArrayBuffer, byteOffset?: number, length?: number): Uint16Array; prototype: Uint16Array; BYTES_PER_ELEMENT: number; of(...items: number[]): Uint16Array; from(arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Uint16Array; } +>from : (arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any) => Uint16Array +>obj : ArrayLike +>mapFn : (n: number, v: number) => number + + typedArrays[4] = Int32Array.from(obj, mapFn); +>typedArrays[4] = Int32Array.from(obj, mapFn) : Int32Array +>typedArrays[4] : any +>typedArrays : any[] +>Int32Array.from(obj, mapFn) : Int32Array +>Int32Array.from : (arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any) => Int32Array +>Int32Array : { new (length: number): Int32Array; new (array: Int32Array): Int32Array; new (array: number[]): Int32Array; new (buffer: ArrayBuffer, byteOffset?: number, length?: number): Int32Array; prototype: Int32Array; BYTES_PER_ELEMENT: number; of(...items: number[]): Int32Array; from(arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Int32Array; } +>from : (arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any) => Int32Array +>obj : ArrayLike +>mapFn : (n: number, v: number) => number + + typedArrays[5] = Uint32Array.from(obj, mapFn); +>typedArrays[5] = Uint32Array.from(obj, mapFn) : Uint32Array +>typedArrays[5] : any +>typedArrays : any[] +>Uint32Array.from(obj, mapFn) : Uint32Array +>Uint32Array.from : (arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any) => Uint32Array +>Uint32Array : { new (length: number): Uint32Array; new (array: Uint32Array): Uint32Array; new (array: number[]): Uint32Array; new (buffer: ArrayBuffer, byteOffset?: number, length?: number): Uint32Array; prototype: Uint32Array; BYTES_PER_ELEMENT: number; of(...items: number[]): Uint32Array; from(arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Uint32Array; } +>from : (arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any) => Uint32Array +>obj : ArrayLike +>mapFn : (n: number, v: number) => number + + typedArrays[6] = Float32Array.from(obj, mapFn); +>typedArrays[6] = Float32Array.from(obj, mapFn) : Float32Array +>typedArrays[6] : any +>typedArrays : any[] +>Float32Array.from(obj, mapFn) : Float32Array +>Float32Array.from : (arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any) => Float32Array +>Float32Array : { new (length: number): Float32Array; new (array: Float32Array): Float32Array; new (array: number[]): Float32Array; new (buffer: ArrayBuffer, byteOffset?: number, length?: number): Float32Array; prototype: Float32Array; BYTES_PER_ELEMENT: number; of(...items: number[]): Float32Array; from(arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Float32Array; } +>from : (arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any) => Float32Array +>obj : ArrayLike +>mapFn : (n: number, v: number) => number + + typedArrays[7] = Float64Array.from(obj, mapFn); +>typedArrays[7] = Float64Array.from(obj, mapFn) : Float64Array +>typedArrays[7] : any +>typedArrays : any[] +>Float64Array.from(obj, mapFn) : Float64Array +>Float64Array.from : (arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any) => Float64Array +>Float64Array : { new (length: number): Float64Array; new (array: Float64Array): Float64Array; new (array: number[]): Float64Array; new (buffer: ArrayBuffer, byteOffset?: number, length?: number): Float64Array; prototype: Float64Array; BYTES_PER_ELEMENT: number; of(...items: number[]): Float64Array; from(arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Float64Array; } +>from : (arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any) => Float64Array +>obj : ArrayLike +>mapFn : (n: number, v: number) => number + + typedArrays[8] = Uint8ClampedArray.from(obj, mapFn); +>typedArrays[8] = Uint8ClampedArray.from(obj, mapFn) : Uint8ClampedArray +>typedArrays[8] : any +>typedArrays : any[] +>Uint8ClampedArray.from(obj, mapFn) : Uint8ClampedArray +>Uint8ClampedArray.from : (arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any) => Uint8ClampedArray +>Uint8ClampedArray : { new (length: number): Uint8ClampedArray; new (array: Uint8ClampedArray): Uint8ClampedArray; new (array: number[]): Uint8ClampedArray; new (buffer: ArrayBuffer, byteOffset?: number, length?: number): Uint8ClampedArray; prototype: Uint8ClampedArray; BYTES_PER_ELEMENT: number; of(...items: number[]): Uint8ClampedArray; from(arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Uint8ClampedArray; } +>from : (arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any) => Uint8ClampedArray +>obj : ArrayLike +>mapFn : (n: number, v: number) => number + + return typedArrays; +>typedArrays : any[] +} + +function CreateTypedArraysFromThisObj(obj:ArrayLike, mapFn: (n:number, v:number)=> number, thisArg: {}) { +>CreateTypedArraysFromThisObj : (obj: ArrayLike, mapFn: (n: number, v: number) => number, thisArg: {}) => any[] +>obj : ArrayLike +>ArrayLike : ArrayLike +>mapFn : (n: number, v: number) => number +>n : number +>v : number +>thisArg : {} + + var typedArrays = []; +>typedArrays : any[] +>[] : undefined[] + + typedArrays[0] = Int8Array.from(obj, mapFn, thisArg); +>typedArrays[0] = Int8Array.from(obj, mapFn, thisArg) : Int8Array +>typedArrays[0] : any +>typedArrays : any[] +>Int8Array.from(obj, mapFn, thisArg) : Int8Array +>Int8Array.from : (arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any) => Int8Array +>Int8Array : { new (length: number): Int8Array; new (array: Int8Array): Int8Array; new (array: number[]): Int8Array; new (buffer: ArrayBuffer, byteOffset?: number, length?: number): Int8Array; prototype: Int8Array; BYTES_PER_ELEMENT: number; of(...items: number[]): Int8Array; from(arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Int8Array; } +>from : (arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any) => Int8Array +>obj : ArrayLike +>mapFn : (n: number, v: number) => number +>thisArg : {} + + typedArrays[1] = Uint8Array.from(obj, mapFn, thisArg); +>typedArrays[1] = Uint8Array.from(obj, mapFn, thisArg) : Uint8Array +>typedArrays[1] : any +>typedArrays : any[] +>Uint8Array.from(obj, mapFn, thisArg) : Uint8Array +>Uint8Array.from : (arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any) => Uint8Array +>Uint8Array : { new (length: number): Uint8Array; new (array: Uint8Array): Uint8Array; new (array: number[]): Uint8Array; new (buffer: ArrayBuffer, byteOffset?: number, length?: number): Uint8Array; prototype: Uint8Array; BYTES_PER_ELEMENT: number; of(...items: number[]): Uint8Array; from(arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Uint8Array; } +>from : (arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any) => Uint8Array +>obj : ArrayLike +>mapFn : (n: number, v: number) => number +>thisArg : {} + + typedArrays[2] = Int16Array.from(obj, mapFn, thisArg); +>typedArrays[2] = Int16Array.from(obj, mapFn, thisArg) : Int16Array +>typedArrays[2] : any +>typedArrays : any[] +>Int16Array.from(obj, mapFn, thisArg) : Int16Array +>Int16Array.from : (arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any) => Int16Array +>Int16Array : { new (length: number): Int16Array; new (array: Int16Array): Int16Array; new (array: number[]): Int16Array; new (buffer: ArrayBuffer, byteOffset?: number, length?: number): Int16Array; prototype: Int16Array; BYTES_PER_ELEMENT: number; of(...items: number[]): Int16Array; from(arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Int16Array; } +>from : (arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any) => Int16Array +>obj : ArrayLike +>mapFn : (n: number, v: number) => number +>thisArg : {} + + typedArrays[3] = Uint16Array.from(obj, mapFn, thisArg); +>typedArrays[3] = Uint16Array.from(obj, mapFn, thisArg) : Uint16Array +>typedArrays[3] : any +>typedArrays : any[] +>Uint16Array.from(obj, mapFn, thisArg) : Uint16Array +>Uint16Array.from : (arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any) => Uint16Array +>Uint16Array : { new (length: number): Uint16Array; new (array: Uint16Array): Uint16Array; new (array: number[]): Uint16Array; new (buffer: ArrayBuffer, byteOffset?: number, length?: number): Uint16Array; prototype: Uint16Array; BYTES_PER_ELEMENT: number; of(...items: number[]): Uint16Array; from(arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Uint16Array; } +>from : (arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any) => Uint16Array +>obj : ArrayLike +>mapFn : (n: number, v: number) => number +>thisArg : {} + + typedArrays[4] = Int32Array.from(obj, mapFn, thisArg); +>typedArrays[4] = Int32Array.from(obj, mapFn, thisArg) : Int32Array +>typedArrays[4] : any +>typedArrays : any[] +>Int32Array.from(obj, mapFn, thisArg) : Int32Array +>Int32Array.from : (arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any) => Int32Array +>Int32Array : { new (length: number): Int32Array; new (array: Int32Array): Int32Array; new (array: number[]): Int32Array; new (buffer: ArrayBuffer, byteOffset?: number, length?: number): Int32Array; prototype: Int32Array; BYTES_PER_ELEMENT: number; of(...items: number[]): Int32Array; from(arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Int32Array; } +>from : (arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any) => Int32Array +>obj : ArrayLike +>mapFn : (n: number, v: number) => number +>thisArg : {} + + typedArrays[5] = Uint32Array.from(obj, mapFn, thisArg); +>typedArrays[5] = Uint32Array.from(obj, mapFn, thisArg) : Uint32Array +>typedArrays[5] : any +>typedArrays : any[] +>Uint32Array.from(obj, mapFn, thisArg) : Uint32Array +>Uint32Array.from : (arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any) => Uint32Array +>Uint32Array : { new (length: number): Uint32Array; new (array: Uint32Array): Uint32Array; new (array: number[]): Uint32Array; new (buffer: ArrayBuffer, byteOffset?: number, length?: number): Uint32Array; prototype: Uint32Array; BYTES_PER_ELEMENT: number; of(...items: number[]): Uint32Array; from(arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Uint32Array; } +>from : (arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any) => Uint32Array +>obj : ArrayLike +>mapFn : (n: number, v: number) => number +>thisArg : {} + + typedArrays[6] = Float32Array.from(obj, mapFn, thisArg); +>typedArrays[6] = Float32Array.from(obj, mapFn, thisArg) : Float32Array +>typedArrays[6] : any +>typedArrays : any[] +>Float32Array.from(obj, mapFn, thisArg) : Float32Array +>Float32Array.from : (arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any) => Float32Array +>Float32Array : { new (length: number): Float32Array; new (array: Float32Array): Float32Array; new (array: number[]): Float32Array; new (buffer: ArrayBuffer, byteOffset?: number, length?: number): Float32Array; prototype: Float32Array; BYTES_PER_ELEMENT: number; of(...items: number[]): Float32Array; from(arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Float32Array; } +>from : (arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any) => Float32Array +>obj : ArrayLike +>mapFn : (n: number, v: number) => number +>thisArg : {} + + typedArrays[7] = Float64Array.from(obj, mapFn, thisArg); +>typedArrays[7] = Float64Array.from(obj, mapFn, thisArg) : Float64Array +>typedArrays[7] : any +>typedArrays : any[] +>Float64Array.from(obj, mapFn, thisArg) : Float64Array +>Float64Array.from : (arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any) => Float64Array +>Float64Array : { new (length: number): Float64Array; new (array: Float64Array): Float64Array; new (array: number[]): Float64Array; new (buffer: ArrayBuffer, byteOffset?: number, length?: number): Float64Array; prototype: Float64Array; BYTES_PER_ELEMENT: number; of(...items: number[]): Float64Array; from(arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Float64Array; } +>from : (arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any) => Float64Array +>obj : ArrayLike +>mapFn : (n: number, v: number) => number +>thisArg : {} + + typedArrays[8] = Uint8ClampedArray.from(obj, mapFn, thisArg); +>typedArrays[8] = Uint8ClampedArray.from(obj, mapFn, thisArg) : Uint8ClampedArray +>typedArrays[8] : any +>typedArrays : any[] +>Uint8ClampedArray.from(obj, mapFn, thisArg) : Uint8ClampedArray +>Uint8ClampedArray.from : (arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any) => Uint8ClampedArray +>Uint8ClampedArray : { new (length: number): Uint8ClampedArray; new (array: Uint8ClampedArray): Uint8ClampedArray; new (array: number[]): Uint8ClampedArray; new (buffer: ArrayBuffer, byteOffset?: number, length?: number): Uint8ClampedArray; prototype: Uint8ClampedArray; BYTES_PER_ELEMENT: number; of(...items: number[]): Uint8ClampedArray; from(arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Uint8ClampedArray; } +>from : (arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any) => Uint8ClampedArray +>obj : ArrayLike +>mapFn : (n: number, v: number) => number +>thisArg : {} + + return typedArrays; +>typedArrays : any[] +} diff --git a/tests/cases/compiler/typedArrays.ts b/tests/cases/compiler/typedArrays.ts new file mode 100644 index 00000000000..4508632f6d6 --- /dev/null +++ b/tests/cases/compiler/typedArrays.ts @@ -0,0 +1,138 @@ +// @target: ES6 + +function CreateTypedArrayTypes() { + var typedArrays = []; + typedArrays[0] = Int8Array; + typedArrays[1] = Uint8Array; + typedArrays[2] = Int16Array; + typedArrays[3] = Uint16Array; + typedArrays[4] = Int32Array; + typedArrays[5] = Uint32Array; + typedArrays[6] = Float32Array; + typedArrays[7] = Float64Array; + typedArrays[8] = Uint8ClampedArray; + + return typedArrays; +} + +function CreateTypedArrayInstancesFromLength(obj: number) { + var typedArrays = []; + typedArrays[0] = new Int8Array(obj); + typedArrays[1] = new Uint8Array(obj); + typedArrays[2] = new Int16Array(obj); + typedArrays[3] = new Uint16Array(obj); + typedArrays[4] = new Int32Array(obj); + typedArrays[5] = new Uint32Array(obj); + typedArrays[6] = new Float32Array(obj); + typedArrays[7] = new Float64Array(obj); + typedArrays[8] = new Uint8ClampedArray(obj); + + return typedArrays; +} + +function CreateTypedArrayInstancesFromArray(obj: number[]) { + var typedArrays = []; + typedArrays[0] = new Int8Array(obj); + typedArrays[1] = new Uint8Array(obj); + typedArrays[2] = new Int16Array(obj); + typedArrays[3] = new Uint16Array(obj); + typedArrays[4] = new Int32Array(obj); + typedArrays[5] = new Uint32Array(obj); + typedArrays[6] = new Float32Array(obj); + typedArrays[7] = new Float64Array(obj); + typedArrays[8] = new Uint8ClampedArray(obj); + + return typedArrays; +} + +function CreateIntegerTypedArraysFromArray2(obj:number[]) { + var typedArrays = []; + typedArrays[0] = Int8Array.from(obj); + typedArrays[1] = Uint8Array.from(obj); + typedArrays[2] = Int16Array.from(obj); + typedArrays[3] = Uint16Array.from(obj); + typedArrays[4] = Int32Array.from(obj); + typedArrays[5] = Uint32Array.from(obj); + typedArrays[6] = Float32Array.from(obj); + typedArrays[7] = Float64Array.from(obj); + typedArrays[8] = Uint8ClampedArray.from(obj); + + return typedArrays; +} + +function CreateIntegerTypedArraysFromArrayLike(obj:ArrayLike) { + var typedArrays = []; + typedArrays[0] = Int8Array.from(obj); + typedArrays[1] = Uint8Array.from(obj); + typedArrays[2] = Int16Array.from(obj); + typedArrays[3] = Uint16Array.from(obj); + typedArrays[4] = Int32Array.from(obj); + typedArrays[5] = Uint32Array.from(obj); + typedArrays[6] = Float32Array.from(obj); + typedArrays[7] = Float64Array.from(obj); + typedArrays[8] = Uint8ClampedArray.from(obj); + + return typedArrays; +} + +/* +function CreateTypedArraysOf(obj) { + var typedArrays = []; + typedArrays[0] = Int8Array.of(...obj); + typedArrays[1] = Uint8Array.of(...obj); + typedArrays[2] = Int16Array.of(...obj); + typedArrays[3] = Uint16Array.of(...obj); + typedArrays[4] = Int32Array.of(...obj); + typedArrays[5] = Uint32Array.of(...obj); + typedArrays[6] = Float32Array.of(...obj); + typedArrays[7] = Float64Array.of(...obj); + typedArrays[8] = Uint8ClampedArray.of(...obj); + + return typedArrays; +} +*/ + +function CreateTypedArraysOf2() { + var typedArrays = []; + typedArrays[0] = Int8Array.of(1,2,3,4); + typedArrays[1] = Uint8Array.of(1,2,3,4); + typedArrays[2] = Int16Array.of(1,2,3,4); + typedArrays[3] = Uint16Array.of(1,2,3,4); + typedArrays[4] = Int32Array.of(1,2,3,4); + typedArrays[5] = Uint32Array.of(1,2,3,4); + typedArrays[6] = Float32Array.of(1,2,3,4); + typedArrays[7] = Float64Array.of(1,2,3,4); + typedArrays[8] = Uint8ClampedArray.of(1,2,3,4); + + return typedArrays; +} + +function CreateTypedArraysFromMapFn(obj:ArrayLike, mapFn: (n:number, v:number)=> number) { + var typedArrays = []; + typedArrays[0] = Int8Array.from(obj, mapFn); + typedArrays[1] = Uint8Array.from(obj, mapFn); + typedArrays[2] = Int16Array.from(obj, mapFn); + typedArrays[3] = Uint16Array.from(obj, mapFn); + typedArrays[4] = Int32Array.from(obj, mapFn); + typedArrays[5] = Uint32Array.from(obj, mapFn); + typedArrays[6] = Float32Array.from(obj, mapFn); + typedArrays[7] = Float64Array.from(obj, mapFn); + typedArrays[8] = Uint8ClampedArray.from(obj, mapFn); + + return typedArrays; +} + +function CreateTypedArraysFromThisObj(obj:ArrayLike, mapFn: (n:number, v:number)=> number, thisArg: {}) { + var typedArrays = []; + typedArrays[0] = Int8Array.from(obj, mapFn, thisArg); + typedArrays[1] = Uint8Array.from(obj, mapFn, thisArg); + typedArrays[2] = Int16Array.from(obj, mapFn, thisArg); + typedArrays[3] = Uint16Array.from(obj, mapFn, thisArg); + typedArrays[4] = Int32Array.from(obj, mapFn, thisArg); + typedArrays[5] = Uint32Array.from(obj, mapFn, thisArg); + typedArrays[6] = Float32Array.from(obj, mapFn, thisArg); + typedArrays[7] = Float64Array.from(obj, mapFn, thisArg); + typedArrays[8] = Uint8ClampedArray.from(obj, mapFn, thisArg); + + return typedArrays; +} \ No newline at end of file From 4413dd5084591592f4f14a04ee97cf576efa61ac Mon Sep 17 00:00:00 2001 From: Mohamed Hegazy Date: Mon, 17 Nov 2014 11:35:43 -0800 Subject: [PATCH 043/195] Move the Internationalization API to its own file and include it in ES6 typings --- Jakefile | 8 +- src/lib/extensions.d.ts | 166 --------------------------------------- src/lib/intl.d.ts | 168 ++++++++++++++++++++++++++++++++++++++++ 3 files changed, 172 insertions(+), 170 deletions(-) create mode 100644 src/lib/intl.d.ts diff --git a/Jakefile b/Jakefile index f438c97d625..156e656a977 100644 --- a/Jakefile +++ b/Jakefile @@ -92,11 +92,11 @@ var harnessSources = [ var librarySourceMap = [ { target: "lib.core.d.ts", sources: ["core.d.ts"] }, - { target: "lib.dom.d.ts", sources: ["importcore.d.ts", "extensions.d.ts", "dom.generated.d.ts"], }, - { target: "lib.webworker.d.ts", sources: ["importcore.d.ts", "extensions.d.ts", "webworker.generated.d.ts"], }, + { target: "lib.dom.d.ts", sources: ["importcore.d.ts", "extensions.d.ts", "intl.d.ts", "dom.generated.d.ts"], }, + { target: "lib.webworker.d.ts", sources: ["importcore.d.ts", "extensions.d.ts", "intl.d.ts", "webworker.generated.d.ts"], }, { target: "lib.scriptHost.d.ts", sources: ["importcore.d.ts", "scriptHost.d.ts"], }, - { target: "lib.d.ts", sources: ["core.d.ts", "extensions.d.ts", "dom.generated.d.ts", "webworker.importscripts.d.ts", "scriptHost.d.ts"], }, - { target: "lib.es6.d.ts", sources: ["core.d.ts", "es6.d.ts"]}, + { target: "lib.d.ts", sources: ["core.d.ts", "extensions.d.ts", "intl.d.ts", "dom.generated.d.ts", "webworker.importscripts.d.ts", "scriptHost.d.ts"], }, + { target: "lib.es6.d.ts", sources: ["core.d.ts", "es6.d.ts", "intl.d.ts"]}, ]; var libraryTargets = librarySourceMap.map(function (f) { diff --git a/src/lib/extensions.d.ts b/src/lib/extensions.d.ts index 82cc129ecbc..c8c55cf568f 100644 --- a/src/lib/extensions.d.ts +++ b/src/lib/extensions.d.ts @@ -655,169 +655,3 @@ interface Set { declare var Set: { new (): Set; } - -declare module Intl { - - interface CollatorOptions { - usage?: string; - localeMatcher?: string; - numeric?: boolean; - caseFirst?: string; - sensitivity?: string; - ignorePunctuation?: boolean; - } - - interface ResolvedCollatorOptions { - locale: string; - usage: string; - sensitivity: string; - ignorePunctuation: boolean; - collation: string; - caseFirst: string; - numeric: boolean; - } - - interface Collator { - compare(x: string, y: string): number; - resolvedOptions(): ResolvedCollatorOptions; - } - var Collator: { - new (locales?: string[], options?: CollatorOptions): Collator; - new (locale?: string, options?: CollatorOptions): Collator; - (locales?: string[], options?: CollatorOptions): Collator; - (locale?: string, options?: CollatorOptions): Collator; - supportedLocalesOf(locales: string[], options?: CollatorOptions): string[]; - supportedLocalesOf(locale: string, options?: CollatorOptions): string[]; - } - - interface NumberFormatOptions { - localeMatcher?: string; - style?: string; - currency?: string; - currencyDisplay?: string; - useGrouping?: boolean; - } - - interface ResolvedNumberFormatOptions { - locale: string; - numberingSystem: string; - style: string; - currency?: string; - currencyDisplay?: string; - minimumintegerDigits: number; - minimumFractionDigits: number; - maximumFractionDigits: number; - minimumSignificantDigits?: number; - maximumSignificantDigits?: number; - useGrouping: boolean; - } - - interface NumberFormat { - format(value: number): string; - resolvedOptions(): ResolvedNumberFormatOptions; - } - var NumberFormat: { - new (locales?: string[], options?: NumberFormatOptions): Collator; - new (locale?: string, options?: NumberFormatOptions): Collator; - (locales?: string[], options?: NumberFormatOptions): Collator; - (locale?: string, options?: NumberFormatOptions): Collator; - supportedLocalesOf(locales: string[], options?: NumberFormatOptions): string[]; - supportedLocalesOf(locale: string, options?: NumberFormatOptions): string[]; - } - - interface DateTimeFormatOptions { - localeMatcher?: string; - weekday?: string; - era?: string; - year?: string; - month?: string; - day?: string; - hour?: string; - minute?: string; - second?: string; - timeZoneName?: string; - formatMatcher?: string; - hour12: boolean; - } - - interface ResolvedDateTimeFormatOptions { - locale: string; - calendar: string; - numberingSystem: string; - timeZone: string; - hour12?: boolean; - weekday?: string; - era?: string; - year?: string; - month?: string; - day?: string; - hour?: string; - minute?: string; - second?: string; - timeZoneName?: string; - } - - interface DateTimeFormat { - format(date: number): string; - resolvedOptions(): ResolvedDateTimeFormatOptions; - } - var DateTimeFormat: { - new (locales?: string[], options?: DateTimeFormatOptions): Collator; - new (locale?: string, options?: DateTimeFormatOptions): Collator; - (locales?: string[], options?: DateTimeFormatOptions): Collator; - (locale?: string, options?: DateTimeFormatOptions): Collator; - supportedLocalesOf(locales: string[], options?: DateTimeFormatOptions): string[]; - supportedLocalesOf(locale: string, options?: DateTimeFormatOptions): string[]; - } -} - -interface String { - /** - * Determines whether two strings are equivalent in the current locale. - * @param that String to compare to target string - * @param locales An array of locale strings that contain one or more language or locale tags. If you include more than one locale string, list them in descending order of priority so that the first entry is the preferred locale. If you omit this parameter, the default locale of the JavaScript runtime is used. This parameter must conform to BCP 47 standards; see the Intl.Collator object for details. - * @param options An object that contains one or more properties that specify comparison options. see the Intl.Collator object for details. - */ - localeCompare(that: string, locales: string[], options?: Intl.CollatorOptions): number; - - /** - * Determines whether two strings are equivalent in the current locale. - * @param that String to compare to target string - * @param locale Locale tag. If you omit this parameter, the default locale of the JavaScript runtime is used. This parameter must conform to BCP 47 standards; see the Intl.Collator object for details. - * @param options An object that contains one or more properties that specify comparison options. see the Intl.Collator object for details. - */ - localeCompare(that: string, locale: string, options?: Intl.CollatorOptions): number; -} - -interface Number { - /** - * Converts a number to a string by using the current or specified locale. - * @param locales An array of locale strings that contain one or more language or locale tags. If you include more than one locale string, list them in descending order of priority so that the first entry is the preferred locale. If you omit this parameter, the default locale of the JavaScript runtime is used. - * @param options An object that contains one or more properties that specify comparison options. - */ - toLocaleString(locales?: string[], options?: Intl.NumberFormatOptions): string; - - /** - * Converts a number to a string by using the current or specified locale. - * @param locale Locale tag. If you omit this parameter, the default locale of the JavaScript runtime is used. - * @param options An object that contains one or more properties that specify comparison options. - */ - toLocaleString(locale?: string, options?: Intl.NumberFormatOptions): string; -} - -interface Date { - /** - * Converts a date to a string by using the current or specified locale. - * @param locales An array of locale strings that contain one or more language or locale tags. If you include more than one locale string, list them in descending order of priority so that the first entry is the preferred locale. If you omit this parameter, the default locale of the JavaScript runtime is used. - * @param options An object that contains one or more properties that specify comparison options. - */ - toLocaleString(locales?: string[], options?: Intl.DateTimeFormatOptions): string; - - /** - * Converts a date to a string by using the current or specified locale. - * @param locale Locale tag. If you omit this parameter, the default locale of the JavaScript runtime is used. - * @param options An object that contains one or more properties that specify comparison options. - */ - toLocaleString(locale?: string, options?: Intl.DateTimeFormatOptions): string; -} - diff --git a/src/lib/intl.d.ts b/src/lib/intl.d.ts new file mode 100644 index 00000000000..73672bd8dea --- /dev/null +++ b/src/lib/intl.d.ts @@ -0,0 +1,168 @@ +///////////////////////////// +/// ECMAScript Internationalization API +///////////////////////////// + +declare module Intl { + interface CollatorOptions { + usage?: string; + localeMatcher?: string; + numeric?: boolean; + caseFirst?: string; + sensitivity?: string; + ignorePunctuation?: boolean; + } + + interface ResolvedCollatorOptions { + locale: string; + usage: string; + sensitivity: string; + ignorePunctuation: boolean; + collation: string; + caseFirst: string; + numeric: boolean; + } + + interface Collator { + compare(x: string, y: string): number; + resolvedOptions(): ResolvedCollatorOptions; + } + var Collator: { + new (locales?: string[], options?: CollatorOptions): Collator; + new (locale?: string, options?: CollatorOptions): Collator; + (locales?: string[], options?: CollatorOptions): Collator; + (locale?: string, options?: CollatorOptions): Collator; + supportedLocalesOf(locales: string[], options?: CollatorOptions): string[]; + supportedLocalesOf(locale: string, options?: CollatorOptions): string[]; + } + + interface NumberFormatOptions { + localeMatcher?: string; + style?: string; + currency?: string; + currencyDisplay?: string; + useGrouping?: boolean; + } + + interface ResolvedNumberFormatOptions { + locale: string; + numberingSystem: string; + style: string; + currency?: string; + currencyDisplay?: string; + minimumintegerDigits: number; + minimumFractionDigits: number; + maximumFractionDigits: number; + minimumSignificantDigits?: number; + maximumSignificantDigits?: number; + useGrouping: boolean; + } + + interface NumberFormat { + format(value: number): string; + resolvedOptions(): ResolvedNumberFormatOptions; + } + var NumberFormat: { + new (locales?: string[], options?: NumberFormatOptions): Collator; + new (locale?: string, options?: NumberFormatOptions): Collator; + (locales?: string[], options?: NumberFormatOptions): Collator; + (locale?: string, options?: NumberFormatOptions): Collator; + supportedLocalesOf(locales: string[], options?: NumberFormatOptions): string[]; + supportedLocalesOf(locale: string, options?: NumberFormatOptions): string[]; + } + + interface DateTimeFormatOptions { + localeMatcher?: string; + weekday?: string; + era?: string; + year?: string; + month?: string; + day?: string; + hour?: string; + minute?: string; + second?: string; + timeZoneName?: string; + formatMatcher?: string; + hour12: boolean; + } + + interface ResolvedDateTimeFormatOptions { + locale: string; + calendar: string; + numberingSystem: string; + timeZone: string; + hour12?: boolean; + weekday?: string; + era?: string; + year?: string; + month?: string; + day?: string; + hour?: string; + minute?: string; + second?: string; + timeZoneName?: string; + } + + interface DateTimeFormat { + format(date: number): string; + resolvedOptions(): ResolvedDateTimeFormatOptions; + } + var DateTimeFormat: { + new (locales?: string[], options?: DateTimeFormatOptions): Collator; + new (locale?: string, options?: DateTimeFormatOptions): Collator; + (locales?: string[], options?: DateTimeFormatOptions): Collator; + (locale?: string, options?: DateTimeFormatOptions): Collator; + supportedLocalesOf(locales: string[], options?: DateTimeFormatOptions): string[]; + supportedLocalesOf(locale: string, options?: DateTimeFormatOptions): string[]; + } +} + +interface String { + /** + * Determines whether two strings are equivalent in the current locale. + * @param that String to compare to target string + * @param locales An array of locale strings that contain one or more language or locale tags. If you include more than one locale string, list them in descending order of priority so that the first entry is the preferred locale. If you omit this parameter, the default locale of the JavaScript runtime is used. This parameter must conform to BCP 47 standards; see the Intl.Collator object for details. + * @param options An object that contains one or more properties that specify comparison options. see the Intl.Collator object for details. + */ + localeCompare(that: string, locales: string[], options?: Intl.CollatorOptions): number; + + /** + * Determines whether two strings are equivalent in the current locale. + * @param that String to compare to target string + * @param locale Locale tag. If you omit this parameter, the default locale of the JavaScript runtime is used. This parameter must conform to BCP 47 standards; see the Intl.Collator object for details. + * @param options An object that contains one or more properties that specify comparison options. see the Intl.Collator object for details. + */ + localeCompare(that: string, locale: string, options?: Intl.CollatorOptions): number; +} + +interface Number { + /** + * Converts a number to a string by using the current or specified locale. + * @param locales An array of locale strings that contain one or more language or locale tags. If you include more than one locale string, list them in descending order of priority so that the first entry is the preferred locale. If you omit this parameter, the default locale of the JavaScript runtime is used. + * @param options An object that contains one or more properties that specify comparison options. + */ + toLocaleString(locales?: string[], options?: Intl.NumberFormatOptions): string; + + /** + * Converts a number to a string by using the current or specified locale. + * @param locale Locale tag. If you omit this parameter, the default locale of the JavaScript runtime is used. + * @param options An object that contains one or more properties that specify comparison options. + */ + toLocaleString(locale?: string, options?: Intl.NumberFormatOptions): string; +} + +interface Date { + /** + * Converts a date to a string by using the current or specified locale. + * @param locales An array of locale strings that contain one or more language or locale tags. If you include more than one locale string, list them in descending order of priority so that the first entry is the preferred locale. If you omit this parameter, the default locale of the JavaScript runtime is used. + * @param options An object that contains one or more properties that specify comparison options. + */ + toLocaleString(locales?: string[], options?: Intl.DateTimeFormatOptions): string; + + /** + * Converts a date to a string by using the current or specified locale. + * @param locale Locale tag. If you omit this parameter, the default locale of the JavaScript runtime is used. + * @param options An object that contains one or more properties that specify comparison options. + */ + toLocaleString(locale?: string, options?: Intl.DateTimeFormatOptions): string; +} + From f33c1d524cf373362e58961499abc0e45e307955 Mon Sep 17 00:00:00 2001 From: Mohamed Hegazy Date: Mon, 17 Nov 2014 11:53:28 -0800 Subject: [PATCH 044/195] Add ArrayBufferView definition to ES6 lib --- src/lib/es6.d.ts | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/lib/es6.d.ts b/src/lib/es6.d.ts index c17c0820288..1e5dcdf817c 100644 --- a/src/lib/es6.d.ts +++ b/src/lib/es6.d.ts @@ -1332,4 +1332,10 @@ interface PromiseConstructor { resolve(): Promise; } -declare var Promise: PromiseConstructor; \ No newline at end of file +declare var Promise: PromiseConstructor; + +interface ArrayBufferView { + buffer: ArrayBuffer; + byteOffset: number; + byteLength: number; +} \ No newline at end of file From 1abe1d7e03147bf53496754a96c5fe58295855e3 Mon Sep 17 00:00:00 2001 From: Mohamed Hegazy Date: Mon, 17 Nov 2014 12:47:45 -0800 Subject: [PATCH 045/195] Add dom to es6 lib --- Jakefile | 3 ++- src/harness/harness.ts | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/Jakefile b/Jakefile index 156e656a977..7341a025e11 100644 --- a/Jakefile +++ b/Jakefile @@ -96,7 +96,8 @@ var librarySourceMap = [ { target: "lib.webworker.d.ts", sources: ["importcore.d.ts", "extensions.d.ts", "intl.d.ts", "webworker.generated.d.ts"], }, { target: "lib.scriptHost.d.ts", sources: ["importcore.d.ts", "scriptHost.d.ts"], }, { target: "lib.d.ts", sources: ["core.d.ts", "extensions.d.ts", "intl.d.ts", "dom.generated.d.ts", "webworker.importscripts.d.ts", "scriptHost.d.ts"], }, - { target: "lib.es6.d.ts", sources: ["core.d.ts", "es6.d.ts", "intl.d.ts"]}, + { target: "lib.core.es6.d.ts", sources: ["core.d.ts", "es6.d.ts"]}, + { target: "lib.es6.d.ts", sources: ["core.d.ts", "es6.d.ts", "intl.d.ts", "dom.generated.d.ts", "webworker.importscripts.d.ts", "scriptHost.d.ts"]}, ]; var libraryTargets = librarySourceMap.map(function (f) { diff --git a/src/harness/harness.ts b/src/harness/harness.ts index 267fccd7d20..a2cc84b2a48 100644 --- a/src/harness/harness.ts +++ b/src/harness/harness.ts @@ -539,7 +539,7 @@ module Harness { export var defaultLibFileName = 'lib.d.ts'; export var defaultLibSourceFile = ts.createSourceFile(defaultLibFileName, IO.readFile(libFolder + 'lib.core.d.ts'), /*languageVersion*/ ts.ScriptTarget.Latest, /*version:*/ "0"); - export var defaultES6LibSourceFile = ts.createSourceFile(defaultLibFileName, IO.readFile(libFolder + 'lib.es6.d.ts'), /*languageVersion*/ ts.ScriptTarget.Latest, /*version:*/ "0"); + export var defaultES6LibSourceFile = ts.createSourceFile(defaultLibFileName, IO.readFile(libFolder + 'lib.core.es6.d.ts'), /*languageVersion*/ ts.ScriptTarget.Latest, /*version:*/ "0"); // Cache these between executions so we don't have to re-parse them for every test From bdee1838877e49aab53766c84f1f785bfe97816e Mon Sep 17 00:00:00 2001 From: Mohamed Hegazy Date: Mon, 17 Nov 2014 12:47:58 -0800 Subject: [PATCH 046/195] minor fixes --- src/compiler/tsc.ts | 2 +- src/harness/projectsRunner.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/compiler/tsc.ts b/src/compiler/tsc.ts index 69d54250aac..1c8a696dd0d 100644 --- a/src/compiler/tsc.ts +++ b/src/compiler/tsc.ts @@ -193,7 +193,7 @@ module ts { return { getSourceFile: getSourceFile, - getDefaultLibFilename: (options) => combinePaths(getDirectoryPath(normalizePath(sys.getExecutingFilePath())), options.target === ScriptTarget.ES6 ? "lib.es6.d.ts" : "lib.d.ts"), + getDefaultLibFilename: options => combinePaths(getDirectoryPath(normalizePath(sys.getExecutingFilePath())), options.target === ScriptTarget.ES6 ? "lib.es6.d.ts" : "lib.d.ts"), writeFile: writeFile, getCurrentDirectory: () => currentDirectory || (currentDirectory = sys.getCurrentDirectory()), useCaseSensitiveFileNames: () => sys.useCaseSensitiveFileNames, diff --git a/src/harness/projectsRunner.ts b/src/harness/projectsRunner.ts index 35efbffbd68..592dce5c2ea 100644 --- a/src/harness/projectsRunner.ts +++ b/src/harness/projectsRunner.ts @@ -184,7 +184,7 @@ class ProjectRunner extends RunnerBase { function createCompilerHost(): ts.CompilerHost { return { getSourceFile: getSourceFile, - getDefaultLibFilename: () => "lib.d.ts", + getDefaultLibFilename: options => options.target === ts.ScriptTarget.ES6 ? "lib.es6.d.ts" : "lib.d.ts", writeFile: writeFile, getCurrentDirectory: getCurrentDirectory, getCanonicalFileName: Harness.Compiler.getCanonicalFileName, From 4c2f5d159cd82983ff9b4d9de4495fef9b7fece6 Mon Sep 17 00:00:00 2001 From: Mohamed Hegazy Date: Mon, 17 Nov 2014 13:06:54 -0800 Subject: [PATCH 047/195] Add some more jsdoc comments and ensure everything has a constructor type when possible --- src/lib/es6.d.ts | 2327 ++++++++++++++++++- tests/baselines/reference/typedArrays.types | 162 +- 2 files changed, 2376 insertions(+), 113 deletions(-) diff --git a/src/lib/es6.d.ts b/src/lib/es6.d.ts index 1e5dcdf817c..56c81970a61 100644 --- a/src/lib/es6.d.ts +++ b/src/lib/es6.d.ts @@ -74,10 +74,8 @@ interface SymbolConstructor { */ unscopables: Symbol; } - declare var Symbol: SymbolConstructor; - interface Object { /** * Determines whether an object has a property with the specified name. @@ -634,10 +632,11 @@ interface Map { // [Symbol.toStringTag]: string; } -declare var Map: { +interface MapConstructor { new (): Map; new (iterable: Iterable<[K, V]>): Map; -}; +} +declare var Map: MapConstructor; interface WeakMap { clear(): void; @@ -648,10 +647,11 @@ interface WeakMap { // [Symbol.toStringTag]: string; } -declare var WeakMap: { +interface WeakMapConstructor { new (): WeakMap; new (iterable: Iterable<[K, V]>): WeakMap; } +declare var WeakMap: WeakMapConstructor; interface Set { add(value: T): Set; @@ -667,10 +667,11 @@ interface Set { // [Symbol.toStringTag]: string; } -declare var Set: { +interface SetConstructor { new (): Set; new (iterable: Iterable): Set; -}; +} +declare var Set: SetConstructor; interface WeakSet { add(value: T): WeakSet; @@ -680,10 +681,11 @@ interface WeakSet { // [Symbol.toStringTag]: string; } -declare var WeakSet: { +interface WeakSetConstructor { new (): WeakSet; new (iterable: Iterable): WeakSet; -}; +} +declare var WeakSet: WeakSetConstructor; interface JSON { // [Symbol.toStringTag]: string; @@ -709,506 +711,2757 @@ interface ArrayBuffer { // [Symbol.toStringTag]: string; } -declare var ArrayBuffer: { +interface ArrayBufferConstructor { prototype: ArrayBuffer; new (byteLength: number): ArrayBuffer; isView(arg: any): boolean; } +declare var ArrayBuffer: ArrayBufferConstructor; interface DataView { buffer: ArrayBuffer; byteLength: number; byteOffset: number; + /** + * Gets the Float32 value at the specified byte offset from the start of the view. There is + * no alignment constraint; multi-byte values may be fetched from any offset. + * @param byteOffset The place in the buffer at which the value should be retrieved. + */ getFloat32(byteOffset: number, littleEndian: boolean): number; + + /** + * Gets the Float64 value at the specified byte offset from the start of the view. There is + * no alignment constraint; multi-byte values may be fetched from any offset. + * @param byteOffset The place in the buffer at which the value should be retrieved. + */ getFloat64(byteOffset: number, littleEndian: boolean): number; + + /** + * Gets the Int8 value at the specified byte offset from the start of the view. There is + * no alignment constraint; multi-byte values may be fetched from any offset. + * @param byteOffset The place in the buffer at which the value should be retrieved. + */ getInt8(byteOffset: number): number; + + /** + * Gets the Int16 value at the specified byte offset from the start of the view. There is + * no alignment constraint; multi-byte values may be fetched from any offset. + * @param byteOffset The place in the buffer at which the value should be retrieved. + */ getInt16(byteOffset: number, littleEndian: boolean): number; + /** + * Gets the Int32 value at the specified byte offset from the start of the view. There is + * no alignment constraint; multi-byte values may be fetched from any offset. + * @param byteOffset The place in the buffer at which the value should be retrieved. + */ getInt32(byteOffset: number, littleEndian: boolean): number; + + /** + * Gets the Uint8 value at the specified byte offset from the start of the view. There is + * no alignment constraint; multi-byte values may be fetched from any offset. + * @param byteOffset The place in the buffer at which the value should be retrieved. + */ getUint8(byteOffset: number): number; + + /** + * Gets the Uint16 value at the specified byte offset from the start of the view. There is + * no alignment constraint; multi-byte values may be fetched from any offset. + * @param byteOffset The place in the buffer at which the value should be retrieved. + */ getUint16(byteOffset: number, littleEndian: boolean): number; + + /** + * Gets the Uint32 value at the specified byte offset from the start of the view. There is + * no alignment constraint; multi-byte values may be fetched from any offset. + * @param byteOffset The place in the buffer at which the value should be retrieved. + */ getUint32(byteOffset: number, littleEndian: boolean): number; + + /** + * Stores an Float32 value at the specified byte offset from the start of the view. + * @param byteOffset The place in the buffer at which the value should be set. + * @param value The value to set. + * @param littleEndian If false or undefined, a big-endian value should be written, + * otherwise a little-endian value should be written. + */ setFloat32(byteOffset: number, value: number, littleEndian: boolean): void; + + /** + * Stores an Float64 value at the specified byte offset from the start of the view. + * @param byteOffset The place in the buffer at which the value should be set. + * @param value The value to set. + * @param littleEndian If false or undefined, a big-endian value should be written, + * otherwise a little-endian value should be written. + */ setFloat64(byteOffset: number, value: number, littleEndian: boolean): void; + + /** + * Stores an Int8 value at the specified byte offset from the start of the view. + * @param byteOffset The place in the buffer at which the value should be set. + * @param value The value to set. + */ setInt8(byteOffset: number, value: number): void; + + /** + * Stores an Int16 value at the specified byte offset from the start of the view. + * @param byteOffset The place in the buffer at which the value should be set. + * @param value The value to set. + * @param littleEndian If false or undefined, a big-endian value should be written, + * otherwise a little-endian value should be written. + */ setInt16(byteOffset: number, value: number, littleEndian: boolean): void; + + /** + * Stores an Int32 value at the specified byte offset from the start of the view. + * @param byteOffset The place in the buffer at which the value should be set. + * @param value The value to set. + * @param littleEndian If false or undefined, a big-endian value should be written, + * otherwise a little-endian value should be written. + */ setInt32(byteOffset: number, value: number, littleEndian: boolean): void; + + /** + * Stores an Uint8 value at the specified byte offset from the start of the view. + * @param byteOffset The place in the buffer at which the value should be set. + * @param value The value to set. + */ setUint8(byteOffset: number, value: number): void; + + /** + * Stores an Uint16 value at the specified byte offset from the start of the view. + * @param byteOffset The place in the buffer at which the value should be set. + * @param value The value to set. + * @param littleEndian If false or undefined, a big-endian value should be written, + * otherwise a little-endian value should be written. + */ setUint16(byteOffset: number, value: number, littleEndian: boolean): void; + + /** + * Stores an Uint32 value at the specified byte offset from the start of the view. + * @param byteOffset The place in the buffer at which the value should be set. + * @param value The value to set. + * @param littleEndian If false or undefined, a big-endian value should be written, + * otherwise a little-endian value should be written. + */ setUint32(byteOffset: number, value: number, littleEndian: boolean): void; + // [Symbol.toStringTag]: string; } -declare var DataView: { +interface DataViewConstructor { new (buffer: ArrayBuffer, byteOffset?: number, byteLength?: number); -}; +} +declare var DataView: DataViewConstructor; /** * A typed array of 8-bit integer values. The contents are initialized to 0. If the requested * number of bytes could not be allocated an exception is raised. */ interface Int8Array { + /** + * The size in bytes of each element in the array. + */ BYTES_PER_ELEMENT: number; + + /** + * The ArrayBuffer instance referenced by the array. + */ buffer: ArrayBuffer; + + /** + * The length in bytes of the array. + */ byteLength: number; + + /** + * The offset in bytes of the array. + */ byteOffset: number; + + /** + * Returns the this object after copying a section of the array identified by start and end + * to the same array starting at position target + * @param target If target is negative, it is treated as length+target where length is the + * length of the array. + * @param start If start is negative, it is treated as length+start. If end is negative, it + * is treated as length+end. + * @param end If not specified, length of the this object is used as its default value. + */ copyWithin(target: number, start: number, end?: number): Int8Array; + + /** + * Returns an array of key, value pairs for every entry in the array + */ entries(): Iterator<[number, number]>; + + /** + * Determines whether all the members of an array satisfy the specified test. + * @param callbackfn A function that accepts up to three arguments. The every method calls + * the callbackfn function for each element in array1 until the callbackfn returns false, + * or until the end of the array. + * @param thisArg An object to which the this keyword can refer in the callbackfn function. + * If thisArg is omitted, undefined is used as the this value. + */ every(callbackfn: (value: number, index: number, array: Int8Array) => boolean, thisArg?: any): boolean; + + /** + * Returns the this object after filling the section identified by start and end with value + * @param value value to fill array section with + * @param start index to start filling the array at. If start is negative, it is treated as + * length+start where length is the length of the array. + * @param end index to stop filling the array at. If end is negative, it is treated as + * length+end. + */ fill(value: number, start?: number, end?: number): Int8Array; + + /** + * Returns the elements of an array that meet the condition specified in a callback function. + * @param callbackfn A function that accepts up to three arguments. The filter method calls + * the callbackfn function one time for each element in the array. + * @param thisArg An object to which the this keyword can refer in the callbackfn function. + * If thisArg is omitted, undefined is used as the this value. + */ filter(callbackfn: (value: number, index: number, array: Int8Array) => boolean, thisArg?: any): Int8Array; + + /** + * Returns the value of the first element in the array where predicate is true, and undefined + * otherwise. + * @param predicate find calls predicate once for each element of the array, in ascending + * order, until it finds one where predicate returns true. If such an element is found, find + * immediately returns that element value. Otherwise, find returns undefined. + * @param thisArg If provided, it will be used as the this value for each invocation of + * predicate. If it is not provided, undefined is used instead. + */ find(predicate: (value: number, index: number, obj: Array) => boolean, thisArg?: any): number; + + /** + * Returns the index of the first element in the array where predicate is true, and undefined + * otherwise. + * @param predicate find calls predicate once for each element of the array, in ascending + * order, until it finds one where predicate returns true. If such an element is found, find + * immediately returns that element value. Otherwise, find returns undefined. + * @param thisArg If provided, it will be used as the this value for each invocation of + * predicate. If it is not provided, undefined is used instead. + */ findIndex(predicate: (value: number) => boolean, thisArg?: any): number; + + /** + * Performs the specified action for each element in an array. + * @param callbackfn A function that accepts up to three arguments. forEach calls the + * callbackfn function one time for each element in the array. + * @param thisArg An object to which the this keyword can refer in the callbackfn function. + * If thisArg is omitted, undefined is used as the this value. + */ forEach(callbackfn: (value: number, index: number, array: Int8Array) => void, thisArg?: any): void; + + /** + * Returns the index of the first occurrence of a value in an array. + * @param searchElement The value to locate in the array. + * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the + * search starts at index 0. + */ indexOf(searchElement: number, fromIndex?: number): number; + + /** + * Adds all the elements of an array separated by the specified separator string. + * @param separator A string used to separate one element of an array from the next in the + * resulting String. If omitted, the array elements are separated with a comma. + */ join(separator?: string): string; + + /** + * Returns an list of keys in the array + */ keys(): number[]; + + /** + * Returns the index of the last occurrence of a value in an array. + * @param searchElement The value to locate in the array. + * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the + * search starts at index 0. + */ lastIndexOf(searchElement: number, fromIndex?: number): number; + + /** + * The length of the array. + */ length: number; + + /** + * Calls a defined callback function on each element of an array, and returns an array that + * contains the results. + * @param callbackfn A function that accepts up to three arguments. The map method calls the + * callbackfn function one time for each element in the array. + * @param thisArg An object to which the this keyword can refer in the callbackfn function. + * If thisArg is omitted, undefined is used as the this value. + */ map(callbackfn: (value: number, index: number, array: Int8Array) => number, thisArg?: any): Int8Array; + + /** + * Calls the specified callback function for all the elements in an array. The return value of + * the callback function is the accumulated result, and is provided as an argument in the next + * call to the callback function. + * @param callbackfn A function that accepts up to four arguments. The reduce method calls the + * callbackfn function one time for each element in the array. + * @param initialValue If initialValue is specified, it is used as the initial value to start + * the accumulation. The first call to the callbackfn function provides this value as an argument + * instead of an array value. + */ reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Int8Array) => number, initialValue?: number): number; + + /** + * Calls the specified callback function for all the elements in an array. The return value of + * the callback function is the accumulated result, and is provided as an argument in the next + * call to the callback function. + * @param callbackfn A function that accepts up to four arguments. The reduce method calls the + * callbackfn function one time for each element in the array. + * @param initialValue If initialValue is specified, it is used as the initial value to start + * the accumulation. The first call to the callbackfn function provides this value as an argument + * instead of an array value. + */ reduce(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Int8Array) => U, initialValue: U): U; + + /** + * Calls the specified callback function for all the elements in an array, in descending order. + * The return value of the callback function is the accumulated result, and is provided as an + * argument in the next call to the callback function. + * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls + * the callbackfn function one time for each element in the array. + * @param initialValue If initialValue is specified, it is used as the initial value to start + * the accumulation. The first call to the callbackfn function provides this value as an + * argument instead of an array value. + */ reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Int8Array) => number, initialValue?: number): number; + + /** + * Calls the specified callback function for all the elements in an array, in descending order. + * The return value of the callback function is the accumulated result, and is provided as an + * argument in the next call to the callback function. + * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls + * the callbackfn function one time for each element in the array. + * @param initialValue If initialValue is specified, it is used as the initial value to start + * the accumulation. The first call to the callbackfn function provides this value as an argument + * instead of an array value. + */ reduceRight(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Int8Array) => U, initialValue: U): U; + + /** + * Reverses the elements in an Array. + */ reverse(): Int8Array; + + /** + * Sets a value or an array of values. + * @param index The index of the location to set. + * @param value The value to set. + */ set(index: number, value: number): void; + + /** + * Sets a value or an array of values. + * @param array A typed or untyped array of values to set. + * @param offset The index in the current array at which the values are to be written. + */ set(array: Int8Array, offset?: number): void; + + /** + * Returns a section of an array. + * @param start The beginning of the specified portion of the array. + * @param end The end of the specified portion of the array. + */ slice(start?: number, end?: number): Int8Array; + + /** + * Determines whether the specified callback function returns true for any element of an array. + * @param callbackfn A function that accepts up to three arguments. The some method calls the + * callbackfn function for each element in array1 until the callbackfn returns true, or until + * the end of the array. + * @param thisArg An object to which the this keyword can refer in the callbackfn function. + * If thisArg is omitted, undefined is used as the this value. + */ some(callbackfn: (value: number, index: number, array: Int8Array) => boolean, thisArg?: any): boolean; + + /** + * Sorts an array. + * @param compareFn The name of the function used to determine the order of the elements. If + * omitted, the elements are sorted in ascending, ASCII character order. + */ sort(compareFn?: (a: number, b: number) => number): Int8Array; + + /** + * Gets a new Int8Array view of the ArrayBuffer store for this array, referencing the elements + * at begin, inclusive, up to end, exclusive. + * @param begin The index of the beginning of the array. + * @param end The index of the end of the array. + */ subarray(begin: number, end?: number): Int8Array; + + /** + * Converts a number to a string by using the current locale. + */ toLocaleString(): string; + + /** + * Returns a string representation of an array. + */ toString(): string; + + /** + * Returns an list of values in the array + */ values(): Int8Array; + [index: number]: number; // [Symbol.iterator] (): Iterator; } -declare var Int8Array: { +interface Int8ArrayConstructor { prototype: Int8Array; new (length: number): Int8Array; new (array: Int8Array): Int8Array; new (array: number[]): Int8Array; new (buffer: ArrayBuffer, byteOffset?: number, length?: number): Int8Array; + + /** + * The size in bytes of each element in the array. + */ BYTES_PER_ELEMENT: number; + + /** + * Returns a new array from a set of elements. + * @param items A set of elements to include in the new array object. + */ of(...items: number[]): Int8Array; + + /** + * Creates an array from an array-like or iterable object. + * @param arrayLike An array-like or iterable object to convert to an array. + * @param mapfn A mapping function to call on every element of the array. + * @param thisArg Value of 'this' used to invoke the mapfn. + */ from(arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Int8Array; -}; +} +declare var Int8Array: Int8ArrayConstructor; /** * A typed array of 8-bit unsigned integer values. The contents are initialized to 0. If the * requested number of bytes could not be allocated an exception is raised. */ interface Uint8Array { + /** + * The size in bytes of each element in the array. + */ BYTES_PER_ELEMENT: number; + + /** + * The ArrayBuffer instance referenced by the array. + */ buffer: ArrayBuffer; + + /** + * The length in bytes of the array. + */ byteLength: number; + + /** + * The offset in bytes of the array. + */ byteOffset: number; + + /** + * Returns the this object after copying a section of the array identified by start and end + * to the same array starting at position target + * @param target If target is negative, it is treated as length+target where length is the + * length of the array. + * @param start If start is negative, it is treated as length+start. If end is negative, it + * is treated as length+end. + * @param end If not specified, length of the this object is used as its default value. + */ copyWithin(target: number, start: number, end?: number): Uint8Array; + + /** + * Returns an array of key, value pairs for every entry in the array + */ entries(): Iterator<[number, number]>; + + /** + * Determines whether all the members of an array satisfy the specified test. + * @param callbackfn A function that accepts up to three arguments. The every method calls + * the callbackfn function for each element in array1 until the callbackfn returns false, + * or until the end of the array. + * @param thisArg An object to which the this keyword can refer in the callbackfn function. + * If thisArg is omitted, undefined is used as the this value. + */ every(callbackfn: (value: number, index: number, array: Uint8Array) => boolean, thisArg?: any): boolean; + + /** + * Returns the this object after filling the section identified by start and end with value + * @param value value to fill array section with + * @param start index to start filling the array at. If start is negative, it is treated as + * length+start where length is the length of the array. + * @param end index to stop filling the array at. If end is negative, it is treated as + * length+end. + */ fill(value: number, start?: number, end?: number): Uint8Array; + + /** + * Returns the elements of an array that meet the condition specified in a callback function. + * @param callbackfn A function that accepts up to three arguments. The filter method calls + * the callbackfn function one time for each element in the array. + * @param thisArg An object to which the this keyword can refer in the callbackfn function. + * If thisArg is omitted, undefined is used as the this value. + */ filter(callbackfn: (value: number, index: number, array: Uint8Array) => boolean, thisArg?: any): Uint8Array; + + /** + * Returns the value of the first element in the array where predicate is true, and undefined + * otherwise. + * @param predicate find calls predicate once for each element of the array, in ascending + * order, until it finds one where predicate returns true. If such an element is found, find + * immediately returns that element value. Otherwise, find returns undefined. + * @param thisArg If provided, it will be used as the this value for each invocation of + * predicate. If it is not provided, undefined is used instead. + */ find(predicate: (value: number, index: number, obj: Array) => boolean, thisArg?: any): number; + + /** + * Returns the index of the first element in the array where predicate is true, and undefined + * otherwise. + * @param predicate find calls predicate once for each element of the array, in ascending + * order, until it finds one where predicate returns true. If such an element is found, find + * immediately returns that element value. Otherwise, find returns undefined. + * @param thisArg If provided, it will be used as the this value for each invocation of + * predicate. If it is not provided, undefined is used instead. + */ findIndex(predicate: (value: number) => boolean, thisArg?: any): number; + + /** + * Performs the specified action for each element in an array. + * @param callbackfn A function that accepts up to three arguments. forEach calls the + * callbackfn function one time for each element in the array. + * @param thisArg An object to which the this keyword can refer in the callbackfn function. + * If thisArg is omitted, undefined is used as the this value. + */ forEach(callbackfn: (value: number, index: number, array: Uint8Array) => void, thisArg?: any): void; + + /** + * Returns the index of the first occurrence of a value in an array. + * @param searchElement The value to locate in the array. + * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the + * search starts at index 0. + */ indexOf(searchElement: number, fromIndex?: number): number; + + /** + * Adds all the elements of an array separated by the specified separator string. + * @param separator A string used to separate one element of an array from the next in the + * resulting String. If omitted, the array elements are separated with a comma. + */ join(separator?: string): string; + + /** + * Returns an list of keys in the array + */ keys(): number[]; + + /** + * Returns the index of the last occurrence of a value in an array. + * @param searchElement The value to locate in the array. + * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the + * search starts at index 0. + */ lastIndexOf(searchElement: number, fromIndex?: number): number; + + /** + * The length of the array. + */ length: number; + + /** + * Calls a defined callback function on each element of an array, and returns an array that + * contains the results. + * @param callbackfn A function that accepts up to three arguments. The map method calls the + * callbackfn function one time for each element in the array. + * @param thisArg An object to which the this keyword can refer in the callbackfn function. + * If thisArg is omitted, undefined is used as the this value. + */ map(callbackfn: (value: number, index: number, array: Uint8Array) => number, thisArg?: any): Uint8Array; + + /** + * Calls the specified callback function for all the elements in an array. The return value of + * the callback function is the accumulated result, and is provided as an argument in the next + * call to the callback function. + * @param callbackfn A function that accepts up to four arguments. The reduce method calls the + * callbackfn function one time for each element in the array. + * @param initialValue If initialValue is specified, it is used as the initial value to start + * the accumulation. The first call to the callbackfn function provides this value as an argument + * instead of an array value. + */ reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Uint8Array) => number, initialValue?: number): number; + + /** + * Calls the specified callback function for all the elements in an array. The return value of + * the callback function is the accumulated result, and is provided as an argument in the next + * call to the callback function. + * @param callbackfn A function that accepts up to four arguments. The reduce method calls the + * callbackfn function one time for each element in the array. + * @param initialValue If initialValue is specified, it is used as the initial value to start + * the accumulation. The first call to the callbackfn function provides this value as an argument + * instead of an array value. + */ reduce(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Uint8Array) => U, initialValue: U): U; + + /** + * Calls the specified callback function for all the elements in an array, in descending order. + * The return value of the callback function is the accumulated result, and is provided as an + * argument in the next call to the callback function. + * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls + * the callbackfn function one time for each element in the array. + * @param initialValue If initialValue is specified, it is used as the initial value to start + * the accumulation. The first call to the callbackfn function provides this value as an + * argument instead of an array value. + */ reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Uint8Array) => number, initialValue?: number): number; + + /** + * Calls the specified callback function for all the elements in an array, in descending order. + * The return value of the callback function is the accumulated result, and is provided as an + * argument in the next call to the callback function. + * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls + * the callbackfn function one time for each element in the array. + * @param initialValue If initialValue is specified, it is used as the initial value to start + * the accumulation. The first call to the callbackfn function provides this value as an argument + * instead of an array value. + */ reduceRight(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Uint8Array) => U, initialValue: U): U; + + /** + * Reverses the elements in an Array. + */ reverse(): Uint8Array; + + /** + * Sets a value or an array of values. + * @param index The index of the location to set. + * @param value The value to set. + */ set(index: number, value: number): void; + + /** + * Sets a value or an array of values. + * @param array A typed or untyped array of values to set. + * @param offset The index in the current array at which the values are to be written. + */ set(array: Uint8Array, offset?: number): void; + + /** + * Returns a section of an array. + * @param start The beginning of the specified portion of the array. + * @param end The end of the specified portion of the array. + */ slice(start?: number, end?: number): Uint8Array; + + /** + * Determines whether the specified callback function returns true for any element of an array. + * @param callbackfn A function that accepts up to three arguments. The some method calls the + * callbackfn function for each element in array1 until the callbackfn returns true, or until + * the end of the array. + * @param thisArg An object to which the this keyword can refer in the callbackfn function. + * If thisArg is omitted, undefined is used as the this value. + */ some(callbackfn: (value: number, index: number, array: Uint8Array) => boolean, thisArg?: any): boolean; + + /** + * Sorts an array. + * @param compareFn The name of the function used to determine the order of the elements. If + * omitted, the elements are sorted in ascending, ASCII character order. + */ sort(compareFn?: (a: number, b: number) => number): Uint8Array; + + /** + * Gets a new Uint8Array view of the ArrayBuffer store for this array, referencing the elements + * at begin, inclusive, up to end, exclusive. + * @param begin The index of the beginning of the array. + * @param end The index of the end of the array. + */ subarray(begin: number, end?: number): Uint8Array; + + /** + * Converts a number to a string by using the current locale. + */ toLocaleString(): string; + + /** + * Returns a string representation of an array. + */ toString(): string; + + /** + * Returns an list of values in the array + */ values(): Uint8Array; + [index: number]: number; // [Symbol.iterator] (): Iterator; } -declare var Uint8Array: { +interface Uint8ArrayConstructor { prototype: Uint8Array; new (length: number): Uint8Array; new (array: Uint8Array): Uint8Array; new (array: number[]): Uint8Array; new (buffer: ArrayBuffer, byteOffset?: number, length?: number): Uint8Array; + + /** + * The size in bytes of each element in the array. + */ BYTES_PER_ELEMENT: number; + + /** + * Returns a new array from a set of elements. + * @param items A set of elements to include in the new array object. + */ of(...items: number[]): Uint8Array; + + /** + * Creates an array from an array-like or iterable object. + * @param arrayLike An array-like or iterable object to convert to an array. + * @param mapfn A mapping function to call on every element of the array. + * @param thisArg Value of 'this' used to invoke the mapfn. + */ from(arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Uint8Array; -}; +} +declare var Uint8Array: Uint8ArrayConstructor; /** * A typed array of 8-bit unsigned integer (clamped) values. The contents are initialized to 0. * If the requested number of bytes could not be allocated an exception is raised. */ interface Uint8ClampedArray { + /** + * The size in bytes of each element in the array. + */ BYTES_PER_ELEMENT: number; + + /** + * The ArrayBuffer instance referenced by the array. + */ buffer: ArrayBuffer; + + /** + * The length in bytes of the array. + */ byteLength: number; + + /** + * The offset in bytes of the array. + */ byteOffset: number; + + /** + * Returns the this object after copying a section of the array identified by start and end + * to the same array starting at position target + * @param target If target is negative, it is treated as length+target where length is the + * length of the array. + * @param start If start is negative, it is treated as length+start. If end is negative, it + * is treated as length+end. + * @param end If not specified, length of the this object is used as its default value. + */ copyWithin(target: number, start: number, end?: number): Uint8ClampedArray; + + /** + * Returns an array of key, value pairs for every entry in the array + */ entries(): Iterator<[number, number]>; + + /** + * Determines whether all the members of an array satisfy the specified test. + * @param callbackfn A function that accepts up to three arguments. The every method calls + * the callbackfn function for each element in array1 until the callbackfn returns false, + * or until the end of the array. + * @param thisArg An object to which the this keyword can refer in the callbackfn function. + * If thisArg is omitted, undefined is used as the this value. + */ every(callbackfn: (value: number, index: number, array: Uint8ClampedArray) => boolean, thisArg?: any): boolean; + + /** + * Returns the this object after filling the section identified by start and end with value + * @param value value to fill array section with + * @param start index to start filling the array at. If start is negative, it is treated as + * length+start where length is the length of the array. + * @param end index to stop filling the array at. If end is negative, it is treated as + * length+end. + */ fill(value: number, start?: number, end?: number): Uint8ClampedArray; + + /** + * Returns the elements of an array that meet the condition specified in a callback function. + * @param callbackfn A function that accepts up to three arguments. The filter method calls + * the callbackfn function one time for each element in the array. + * @param thisArg An object to which the this keyword can refer in the callbackfn function. + * If thisArg is omitted, undefined is used as the this value. + */ filter(callbackfn: (value: number, index: number, array: Uint8ClampedArray) => boolean, thisArg?: any): Uint8ClampedArray; + + /** + * Returns the value of the first element in the array where predicate is true, and undefined + * otherwise. + * @param predicate find calls predicate once for each element of the array, in ascending + * order, until it finds one where predicate returns true. If such an element is found, find + * immediately returns that element value. Otherwise, find returns undefined. + * @param thisArg If provided, it will be used as the this value for each invocation of + * predicate. If it is not provided, undefined is used instead. + */ find(predicate: (value: number, index: number, obj: Array) => boolean, thisArg?: any): number; + + /** + * Returns the index of the first element in the array where predicate is true, and undefined + * otherwise. + * @param predicate find calls predicate once for each element of the array, in ascending + * order, until it finds one where predicate returns true. If such an element is found, find + * immediately returns that element value. Otherwise, find returns undefined. + * @param thisArg If provided, it will be used as the this value for each invocation of + * predicate. If it is not provided, undefined is used instead. + */ findIndex(predicate: (value: number) => boolean, thisArg?: any): number; + + /** + * Performs the specified action for each element in an array. + * @param callbackfn A function that accepts up to three arguments. forEach calls the + * callbackfn function one time for each element in the array. + * @param thisArg An object to which the this keyword can refer in the callbackfn function. + * If thisArg is omitted, undefined is used as the this value. + */ forEach(callbackfn: (value: number, index: number, array: Uint8ClampedArray) => void, thisArg?: any): void; + + /** + * Returns the index of the first occurrence of a value in an array. + * @param searchElement The value to locate in the array. + * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the + * search starts at index 0. + */ indexOf(searchElement: number, fromIndex?: number): number; + + /** + * Adds all the elements of an array separated by the specified separator string. + * @param separator A string used to separate one element of an array from the next in the + * resulting String. If omitted, the array elements are separated with a comma. + */ join(separator?: string): string; + + /** + * Returns an list of keys in the array + */ keys(): number[]; + + /** + * Returns the index of the last occurrence of a value in an array. + * @param searchElement The value to locate in the array. + * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the + * search starts at index 0. + */ lastIndexOf(searchElement: number, fromIndex?: number): number; + + /** + * The length of the array. + */ length: number; + + /** + * Calls a defined callback function on each element of an array, and returns an array that + * contains the results. + * @param callbackfn A function that accepts up to three arguments. The map method calls the + * callbackfn function one time for each element in the array. + * @param thisArg An object to which the this keyword can refer in the callbackfn function. + * If thisArg is omitted, undefined is used as the this value. + */ map(callbackfn: (value: number, index: number, array: Uint8ClampedArray) => number, thisArg?: any): Uint8ClampedArray; + + /** + * Calls the specified callback function for all the elements in an array. The return value of + * the callback function is the accumulated result, and is provided as an argument in the next + * call to the callback function. + * @param callbackfn A function that accepts up to four arguments. The reduce method calls the + * callbackfn function one time for each element in the array. + * @param initialValue If initialValue is specified, it is used as the initial value to start + * the accumulation. The first call to the callbackfn function provides this value as an argument + * instead of an array value. + */ reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Uint8ClampedArray) => number, initialValue?: number): number; + + /** + * Calls the specified callback function for all the elements in an array. The return value of + * the callback function is the accumulated result, and is provided as an argument in the next + * call to the callback function. + * @param callbackfn A function that accepts up to four arguments. The reduce method calls the + * callbackfn function one time for each element in the array. + * @param initialValue If initialValue is specified, it is used as the initial value to start + * the accumulation. The first call to the callbackfn function provides this value as an argument + * instead of an array value. + */ reduce(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Uint8ClampedArray) => U, initialValue: U): U; + + /** + * Calls the specified callback function for all the elements in an array, in descending order. + * The return value of the callback function is the accumulated result, and is provided as an + * argument in the next call to the callback function. + * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls + * the callbackfn function one time for each element in the array. + * @param initialValue If initialValue is specified, it is used as the initial value to start + * the accumulation. The first call to the callbackfn function provides this value as an + * argument instead of an array value. + */ reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Uint8ClampedArray) => number, initialValue?: number): number; + + /** + * Calls the specified callback function for all the elements in an array, in descending order. + * The return value of the callback function is the accumulated result, and is provided as an + * argument in the next call to the callback function. + * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls + * the callbackfn function one time for each element in the array. + * @param initialValue If initialValue is specified, it is used as the initial value to start + * the accumulation. The first call to the callbackfn function provides this value as an argument + * instead of an array value. + */ reduceRight(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Uint8ClampedArray) => U, initialValue: U): U; + + /** + * Reverses the elements in an Array. + */ reverse(): Uint8ClampedArray; + + /** + * Sets a value or an array of values. + * @param index The index of the location to set. + * @param value The value to set. + */ set(index: number, value: number): void; + + /** + * Sets a value or an array of values. + * @param array A typed or untyped array of values to set. + * @param offset The index in the current array at which the values are to be written. + */ set(array: Uint8ClampedArray, offset?: number): void; + + /** + * Returns a section of an array. + * @param start The beginning of the specified portion of the array. + * @param end The end of the specified portion of the array. + */ slice(start?: number, end?: number): Uint8ClampedArray; + + /** + * Determines whether the specified callback function returns true for any element of an array. + * @param callbackfn A function that accepts up to three arguments. The some method calls the + * callbackfn function for each element in array1 until the callbackfn returns true, or until + * the end of the array. + * @param thisArg An object to which the this keyword can refer in the callbackfn function. + * If thisArg is omitted, undefined is used as the this value. + */ some(callbackfn: (value: number, index: number, array: Uint8ClampedArray) => boolean, thisArg?: any): boolean; + + /** + * Sorts an array. + * @param compareFn The name of the function used to determine the order of the elements. If + * omitted, the elements are sorted in ascending, ASCII character order. + */ sort(compareFn?: (a: number, b: number) => number): Uint8ClampedArray; + + /** + * Gets a new Uint8ClampedArray view of the ArrayBuffer store for this array, referencing the elements + * at begin, inclusive, up to end, exclusive. + * @param begin The index of the beginning of the array. + * @param end The index of the end of the array. + */ subarray(begin: number, end?: number): Uint8ClampedArray; + + /** + * Converts a number to a string by using the current locale. + */ toLocaleString(): string; + + /** + * Returns a string representation of an array. + */ toString(): string; + + /** + * Returns an list of values in the array + */ values(): Uint8ClampedArray; + [index: number]: number; // [Symbol.iterator] (): Iterator; } -declare var Uint8ClampedArray: { +interface Uint8ClampedArrayConstructor { prototype: Uint8ClampedArray; new (length: number): Uint8ClampedArray; new (array: Uint8ClampedArray): Uint8ClampedArray; new (array: number[]): Uint8ClampedArray; new (buffer: ArrayBuffer, byteOffset?: number, length?: number): Uint8ClampedArray; + + /** + * The size in bytes of each element in the array. + */ BYTES_PER_ELEMENT: number; + + /** + * Returns a new array from a set of elements. + * @param items A set of elements to include in the new array object. + */ of(...items: number[]): Uint8ClampedArray; + + /** + * Creates an array from an array-like or iterable object. + * @param arrayLike An array-like or iterable object to convert to an array. + * @param mapfn A mapping function to call on every element of the array. + * @param thisArg Value of 'this' used to invoke the mapfn. + */ from(arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Uint8ClampedArray; -}; +} +declare var Uint8ClampedArray: Uint8ClampedArrayConstructor; /** * A typed array of 16-bit signed integer values. The contents are initialized to 0. If the * requested number of bytes could not be allocated an exception is raised. */ interface Int16Array { + /** + * The size in bytes of each element in the array. + */ BYTES_PER_ELEMENT: number; + + /** + * The ArrayBuffer instance referenced by the array. + */ buffer: ArrayBuffer; + + /** + * The length in bytes of the array. + */ byteLength: number; + + /** + * The offset in bytes of the array. + */ byteOffset: number; + + /** + * Returns the this object after copying a section of the array identified by start and end + * to the same array starting at position target + * @param target If target is negative, it is treated as length+target where length is the + * length of the array. + * @param start If start is negative, it is treated as length+start. If end is negative, it + * is treated as length+end. + * @param end If not specified, length of the this object is used as its default value. + */ copyWithin(target: number, start: number, end?: number): Int16Array; + + /** + * Returns an array of key, value pairs for every entry in the array + */ entries(): Iterator<[number, number]>; + + /** + * Determines whether all the members of an array satisfy the specified test. + * @param callbackfn A function that accepts up to three arguments. The every method calls + * the callbackfn function for each element in array1 until the callbackfn returns false, + * or until the end of the array. + * @param thisArg An object to which the this keyword can refer in the callbackfn function. + * If thisArg is omitted, undefined is used as the this value. + */ every(callbackfn: (value: number, index: number, array: Int16Array) => boolean, thisArg?: any): boolean; + + /** + * Returns the this object after filling the section identified by start and end with value + * @param value value to fill array section with + * @param start index to start filling the array at. If start is negative, it is treated as + * length+start where length is the length of the array. + * @param end index to stop filling the array at. If end is negative, it is treated as + * length+end. + */ fill(value: number, start?: number, end?: number): Int16Array; + + /** + * Returns the elements of an array that meet the condition specified in a callback function. + * @param callbackfn A function that accepts up to three arguments. The filter method calls + * the callbackfn function one time for each element in the array. + * @param thisArg An object to which the this keyword can refer in the callbackfn function. + * If thisArg is omitted, undefined is used as the this value. + */ filter(callbackfn: (value: number, index: number, array: Int16Array) => boolean, thisArg?: any): Int16Array; + + /** + * Returns the value of the first element in the array where predicate is true, and undefined + * otherwise. + * @param predicate find calls predicate once for each element of the array, in ascending + * order, until it finds one where predicate returns true. If such an element is found, find + * immediately returns that element value. Otherwise, find returns undefined. + * @param thisArg If provided, it will be used as the this value for each invocation of + * predicate. If it is not provided, undefined is used instead. + */ find(predicate: (value: number, index: number, obj: Array) => boolean, thisArg?: any): number; + + /** + * Returns the index of the first element in the array where predicate is true, and undefined + * otherwise. + * @param predicate find calls predicate once for each element of the array, in ascending + * order, until it finds one where predicate returns true. If such an element is found, find + * immediately returns that element value. Otherwise, find returns undefined. + * @param thisArg If provided, it will be used as the this value for each invocation of + * predicate. If it is not provided, undefined is used instead. + */ findIndex(predicate: (value: number) => boolean, thisArg?: any): number; + + /** + * Performs the specified action for each element in an array. + * @param callbackfn A function that accepts up to three arguments. forEach calls the + * callbackfn function one time for each element in the array. + * @param thisArg An object to which the this keyword can refer in the callbackfn function. + * If thisArg is omitted, undefined is used as the this value. + */ forEach(callbackfn: (value: number, index: number, array: Int16Array) => void, thisArg?: any): void; + + /** + * Returns the index of the first occurrence of a value in an array. + * @param searchElement The value to locate in the array. + * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the + * search starts at index 0. + */ indexOf(searchElement: number, fromIndex?: number): number; + + /** + * Adds all the elements of an array separated by the specified separator string. + * @param separator A string used to separate one element of an array from the next in the + * resulting String. If omitted, the array elements are separated with a comma. + */ join(separator?: string): string; + + /** + * Returns an list of keys in the array + */ keys(): number[]; + + /** + * Returns the index of the last occurrence of a value in an array. + * @param searchElement The value to locate in the array. + * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the + * search starts at index 0. + */ lastIndexOf(searchElement: number, fromIndex?: number): number; + + /** + * The length of the array. + */ length: number; + + /** + * Calls a defined callback function on each element of an array, and returns an array that + * contains the results. + * @param callbackfn A function that accepts up to three arguments. The map method calls the + * callbackfn function one time for each element in the array. + * @param thisArg An object to which the this keyword can refer in the callbackfn function. + * If thisArg is omitted, undefined is used as the this value. + */ map(callbackfn: (value: number, index: number, array: Int16Array) => number, thisArg?: any): Int16Array; + + /** + * Calls the specified callback function for all the elements in an array. The return value of + * the callback function is the accumulated result, and is provided as an argument in the next + * call to the callback function. + * @param callbackfn A function that accepts up to four arguments. The reduce method calls the + * callbackfn function one time for each element in the array. + * @param initialValue If initialValue is specified, it is used as the initial value to start + * the accumulation. The first call to the callbackfn function provides this value as an argument + * instead of an array value. + */ reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Int16Array) => number, initialValue?: number): number; + + /** + * Calls the specified callback function for all the elements in an array. The return value of + * the callback function is the accumulated result, and is provided as an argument in the next + * call to the callback function. + * @param callbackfn A function that accepts up to four arguments. The reduce method calls the + * callbackfn function one time for each element in the array. + * @param initialValue If initialValue is specified, it is used as the initial value to start + * the accumulation. The first call to the callbackfn function provides this value as an argument + * instead of an array value. + */ reduce(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Int16Array) => U, initialValue: U): U; + + /** + * Calls the specified callback function for all the elements in an array, in descending order. + * The return value of the callback function is the accumulated result, and is provided as an + * argument in the next call to the callback function. + * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls + * the callbackfn function one time for each element in the array. + * @param initialValue If initialValue is specified, it is used as the initial value to start + * the accumulation. The first call to the callbackfn function provides this value as an + * argument instead of an array value. + */ reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Int16Array) => number, initialValue?: number): number; + + /** + * Calls the specified callback function for all the elements in an array, in descending order. + * The return value of the callback function is the accumulated result, and is provided as an + * argument in the next call to the callback function. + * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls + * the callbackfn function one time for each element in the array. + * @param initialValue If initialValue is specified, it is used as the initial value to start + * the accumulation. The first call to the callbackfn function provides this value as an argument + * instead of an array value. + */ reduceRight(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Int16Array) => U, initialValue: U): U; + + /** + * Reverses the elements in an Array. + */ reverse(): Int16Array; + + /** + * Sets a value or an array of values. + * @param index The index of the location to set. + * @param value The value to set. + */ set(index: number, value: number): void; + + /** + * Sets a value or an array of values. + * @param array A typed or untyped array of values to set. + * @param offset The index in the current array at which the values are to be written. + */ set(array: Int16Array, offset?: number): void; + + /** + * Returns a section of an array. + * @param start The beginning of the specified portion of the array. + * @param end The end of the specified portion of the array. + */ slice(start?: number, end?: number): Int16Array; + + /** + * Determines whether the specified callback function returns true for any element of an array. + * @param callbackfn A function that accepts up to three arguments. The some method calls the + * callbackfn function for each element in array1 until the callbackfn returns true, or until + * the end of the array. + * @param thisArg An object to which the this keyword can refer in the callbackfn function. + * If thisArg is omitted, undefined is used as the this value. + */ some(callbackfn: (value: number, index: number, array: Int16Array) => boolean, thisArg?: any): boolean; + + /** + * Sorts an array. + * @param compareFn The name of the function used to determine the order of the elements. If + * omitted, the elements are sorted in ascending, ASCII character order. + */ sort(compareFn?: (a: number, b: number) => number): Int16Array; + + /** + * Gets a new Int16Array view of the ArrayBuffer store for this array, referencing the elements + * at begin, inclusive, up to end, exclusive. + * @param begin The index of the beginning of the array. + * @param end The index of the end of the array. + */ subarray(begin: number, end?: number): Int16Array; + + /** + * Converts a number to a string by using the current locale. + */ toLocaleString(): string; + + /** + * Returns a string representation of an array. + */ toString(): string; + + /** + * Returns an list of values in the array + */ values(): Int16Array; + [index: number]: number; // [Symbol.iterator] (): Iterator; } -declare var Int16Array: { +interface Int16ArrayConstructor { prototype: Int16Array; new (length: number): Int16Array; new (array: Int16Array): Int16Array; new (array: number[]): Int16Array; new (buffer: ArrayBuffer, byteOffset?: number, length?: number): Int16Array; + + /** + * The size in bytes of each element in the array. + */ BYTES_PER_ELEMENT: number; + + /** + * Returns a new array from a set of elements. + * @param items A set of elements to include in the new array object. + */ of(...items: number[]): Int16Array; + + /** + * Creates an array from an array-like or iterable object. + * @param arrayLike An array-like or iterable object to convert to an array. + * @param mapfn A mapping function to call on every element of the array. + * @param thisArg Value of 'this' used to invoke the mapfn. + */ from(arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Int16Array; -}; +} +declare var Int16Array: Int16ArrayConstructor; /** * A typed array of 16-bit unsigned integer values. The contents are initialized to 0. If the * requested number of bytes could not be allocated an exception is raised. */ interface Uint16Array { + /** + * The size in bytes of each element in the array. + */ BYTES_PER_ELEMENT: number; + + /** + * The ArrayBuffer instance referenced by the array. + */ buffer: ArrayBuffer; + + /** + * The length in bytes of the array. + */ byteLength: number; + + /** + * The offset in bytes of the array. + */ byteOffset: number; + + /** + * Returns the this object after copying a section of the array identified by start and end + * to the same array starting at position target + * @param target If target is negative, it is treated as length+target where length is the + * length of the array. + * @param start If start is negative, it is treated as length+start. If end is negative, it + * is treated as length+end. + * @param end If not specified, length of the this object is used as its default value. + */ copyWithin(target: number, start: number, end?: number): Uint16Array; + + /** + * Returns an array of key, value pairs for every entry in the array + */ entries(): Iterator<[number, number]>; + + /** + * Determines whether all the members of an array satisfy the specified test. + * @param callbackfn A function that accepts up to three arguments. The every method calls + * the callbackfn function for each element in array1 until the callbackfn returns false, + * or until the end of the array. + * @param thisArg An object to which the this keyword can refer in the callbackfn function. + * If thisArg is omitted, undefined is used as the this value. + */ every(callbackfn: (value: number, index: number, array: Uint16Array) => boolean, thisArg?: any): boolean; + + /** + * Returns the this object after filling the section identified by start and end with value + * @param value value to fill array section with + * @param start index to start filling the array at. If start is negative, it is treated as + * length+start where length is the length of the array. + * @param end index to stop filling the array at. If end is negative, it is treated as + * length+end. + */ fill(value: number, start?: number, end?: number): Uint16Array; + + /** + * Returns the elements of an array that meet the condition specified in a callback function. + * @param callbackfn A function that accepts up to three arguments. The filter method calls + * the callbackfn function one time for each element in the array. + * @param thisArg An object to which the this keyword can refer in the callbackfn function. + * If thisArg is omitted, undefined is used as the this value. + */ filter(callbackfn: (value: number, index: number, array: Uint16Array) => boolean, thisArg?: any): Uint16Array; + + /** + * Returns the value of the first element in the array where predicate is true, and undefined + * otherwise. + * @param predicate find calls predicate once for each element of the array, in ascending + * order, until it finds one where predicate returns true. If such an element is found, find + * immediately returns that element value. Otherwise, find returns undefined. + * @param thisArg If provided, it will be used as the this value for each invocation of + * predicate. If it is not provided, undefined is used instead. + */ find(predicate: (value: number, index: number, obj: Array) => boolean, thisArg?: any): number; + + /** + * Returns the index of the first element in the array where predicate is true, and undefined + * otherwise. + * @param predicate find calls predicate once for each element of the array, in ascending + * order, until it finds one where predicate returns true. If such an element is found, find + * immediately returns that element value. Otherwise, find returns undefined. + * @param thisArg If provided, it will be used as the this value for each invocation of + * predicate. If it is not provided, undefined is used instead. + */ findIndex(predicate: (value: number) => boolean, thisArg?: any): number; + + /** + * Performs the specified action for each element in an array. + * @param callbackfn A function that accepts up to three arguments. forEach calls the + * callbackfn function one time for each element in the array. + * @param thisArg An object to which the this keyword can refer in the callbackfn function. + * If thisArg is omitted, undefined is used as the this value. + */ forEach(callbackfn: (value: number, index: number, array: Uint16Array) => void, thisArg?: any): void; + + /** + * Returns the index of the first occurrence of a value in an array. + * @param searchElement The value to locate in the array. + * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the + * search starts at index 0. + */ indexOf(searchElement: number, fromIndex?: number): number; + + /** + * Adds all the elements of an array separated by the specified separator string. + * @param separator A string used to separate one element of an array from the next in the + * resulting String. If omitted, the array elements are separated with a comma. + */ join(separator?: string): string; + + /** + * Returns an list of keys in the array + */ keys(): number[]; + + /** + * Returns the index of the last occurrence of a value in an array. + * @param searchElement The value to locate in the array. + * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the + * search starts at index 0. + */ lastIndexOf(searchElement: number, fromIndex?: number): number; + + /** + * The length of the array. + */ length: number; + + /** + * Calls a defined callback function on each element of an array, and returns an array that + * contains the results. + * @param callbackfn A function that accepts up to three arguments. The map method calls the + * callbackfn function one time for each element in the array. + * @param thisArg An object to which the this keyword can refer in the callbackfn function. + * If thisArg is omitted, undefined is used as the this value. + */ map(callbackfn: (value: number, index: number, array: Uint16Array) => number, thisArg?: any): Uint16Array; + + /** + * Calls the specified callback function for all the elements in an array. The return value of + * the callback function is the accumulated result, and is provided as an argument in the next + * call to the callback function. + * @param callbackfn A function that accepts up to four arguments. The reduce method calls the + * callbackfn function one time for each element in the array. + * @param initialValue If initialValue is specified, it is used as the initial value to start + * the accumulation. The first call to the callbackfn function provides this value as an argument + * instead of an array value. + */ reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Uint16Array) => number, initialValue?: number): number; + + /** + * Calls the specified callback function for all the elements in an array. The return value of + * the callback function is the accumulated result, and is provided as an argument in the next + * call to the callback function. + * @param callbackfn A function that accepts up to four arguments. The reduce method calls the + * callbackfn function one time for each element in the array. + * @param initialValue If initialValue is specified, it is used as the initial value to start + * the accumulation. The first call to the callbackfn function provides this value as an argument + * instead of an array value. + */ reduce(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Uint16Array) => U, initialValue: U): U; + + /** + * Calls the specified callback function for all the elements in an array, in descending order. + * The return value of the callback function is the accumulated result, and is provided as an + * argument in the next call to the callback function. + * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls + * the callbackfn function one time for each element in the array. + * @param initialValue If initialValue is specified, it is used as the initial value to start + * the accumulation. The first call to the callbackfn function provides this value as an + * argument instead of an array value. + */ reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Uint16Array) => number, initialValue?: number): number; + + /** + * Calls the specified callback function for all the elements in an array, in descending order. + * The return value of the callback function is the accumulated result, and is provided as an + * argument in the next call to the callback function. + * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls + * the callbackfn function one time for each element in the array. + * @param initialValue If initialValue is specified, it is used as the initial value to start + * the accumulation. The first call to the callbackfn function provides this value as an argument + * instead of an array value. + */ reduceRight(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Uint16Array) => U, initialValue: U): U; + + /** + * Reverses the elements in an Array. + */ reverse(): Uint16Array; + + /** + * Sets a value or an array of values. + * @param index The index of the location to set. + * @param value The value to set. + */ set(index: number, value: number): void; + + /** + * Sets a value or an array of values. + * @param array A typed or untyped array of values to set. + * @param offset The index in the current array at which the values are to be written. + */ set(array: Uint16Array, offset?: number): void; + + /** + * Returns a section of an array. + * @param start The beginning of the specified portion of the array. + * @param end The end of the specified portion of the array. + */ slice(start?: number, end?: number): Uint16Array; + + /** + * Determines whether the specified callback function returns true for any element of an array. + * @param callbackfn A function that accepts up to three arguments. The some method calls the + * callbackfn function for each element in array1 until the callbackfn returns true, or until + * the end of the array. + * @param thisArg An object to which the this keyword can refer in the callbackfn function. + * If thisArg is omitted, undefined is used as the this value. + */ some(callbackfn: (value: number, index: number, array: Uint16Array) => boolean, thisArg?: any): boolean; + + /** + * Sorts an array. + * @param compareFn The name of the function used to determine the order of the elements. If + * omitted, the elements are sorted in ascending, ASCII character order. + */ sort(compareFn?: (a: number, b: number) => number): Uint16Array; + + /** + * Gets a new Uint16Array view of the ArrayBuffer store for this array, referencing the elements + * at begin, inclusive, up to end, exclusive. + * @param begin The index of the beginning of the array. + * @param end The index of the end of the array. + */ subarray(begin: number, end?: number): Uint16Array; + + /** + * Converts a number to a string by using the current locale. + */ toLocaleString(): string; + + /** + * Returns a string representation of an array. + */ toString(): string; + + /** + * Returns an list of values in the array + */ values(): Uint16Array; + [index: number]: number; // [Symbol.iterator] (): Iterator; } -declare var Uint16Array: { +interface Uint16ArrayConstructor { prototype: Uint16Array; new (length: number): Uint16Array; new (array: Uint16Array): Uint16Array; new (array: number[]): Uint16Array; new (buffer: ArrayBuffer, byteOffset?: number, length?: number): Uint16Array; + + /** + * The size in bytes of each element in the array. + */ BYTES_PER_ELEMENT: number; + + /** + * Returns a new array from a set of elements. + * @param items A set of elements to include in the new array object. + */ of(...items: number[]): Uint16Array; + + /** + * Creates an array from an array-like or iterable object. + * @param arrayLike An array-like or iterable object to convert to an array. + * @param mapfn A mapping function to call on every element of the array. + * @param thisArg Value of 'this' used to invoke the mapfn. + */ from(arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Uint16Array; -}; +} +declare var Uint16Array: Uint16ArrayConstructor; /** * A typed array of 32-bit signed integer values. The contents are initialized to 0. If the * requested number of bytes could not be allocated an exception is raised. */ interface Int32Array { + /** + * The size in bytes of each element in the array. + */ BYTES_PER_ELEMENT: number; + + /** + * The ArrayBuffer instance referenced by the array. + */ buffer: ArrayBuffer; + + /** + * The length in bytes of the array. + */ byteLength: number; + + /** + * The offset in bytes of the array. + */ byteOffset: number; + + /** + * Returns the this object after copying a section of the array identified by start and end + * to the same array starting at position target + * @param target If target is negative, it is treated as length+target where length is the + * length of the array. + * @param start If start is negative, it is treated as length+start. If end is negative, it + * is treated as length+end. + * @param end If not specified, length of the this object is used as its default value. + */ copyWithin(target: number, start: number, end?: number): Int32Array; + + /** + * Returns an array of key, value pairs for every entry in the array + */ entries(): Iterator<[number, number]>; + + /** + * Determines whether all the members of an array satisfy the specified test. + * @param callbackfn A function that accepts up to three arguments. The every method calls + * the callbackfn function for each element in array1 until the callbackfn returns false, + * or until the end of the array. + * @param thisArg An object to which the this keyword can refer in the callbackfn function. + * If thisArg is omitted, undefined is used as the this value. + */ every(callbackfn: (value: number, index: number, array: Int32Array) => boolean, thisArg?: any): boolean; + + /** + * Returns the this object after filling the section identified by start and end with value + * @param value value to fill array section with + * @param start index to start filling the array at. If start is negative, it is treated as + * length+start where length is the length of the array. + * @param end index to stop filling the array at. If end is negative, it is treated as + * length+end. + */ fill(value: number, start?: number, end?: number): Int32Array; + + /** + * Returns the elements of an array that meet the condition specified in a callback function. + * @param callbackfn A function that accepts up to three arguments. The filter method calls + * the callbackfn function one time for each element in the array. + * @param thisArg An object to which the this keyword can refer in the callbackfn function. + * If thisArg is omitted, undefined is used as the this value. + */ filter(callbackfn: (value: number, index: number, array: Int32Array) => boolean, thisArg?: any): Int32Array; + + /** + * Returns the value of the first element in the array where predicate is true, and undefined + * otherwise. + * @param predicate find calls predicate once for each element of the array, in ascending + * order, until it finds one where predicate returns true. If such an element is found, find + * immediately returns that element value. Otherwise, find returns undefined. + * @param thisArg If provided, it will be used as the this value for each invocation of + * predicate. If it is not provided, undefined is used instead. + */ find(predicate: (value: number, index: number, obj: Array) => boolean, thisArg?: any): number; + + /** + * Returns the index of the first element in the array where predicate is true, and undefined + * otherwise. + * @param predicate find calls predicate once for each element of the array, in ascending + * order, until it finds one where predicate returns true. If such an element is found, find + * immediately returns that element value. Otherwise, find returns undefined. + * @param thisArg If provided, it will be used as the this value for each invocation of + * predicate. If it is not provided, undefined is used instead. + */ findIndex(predicate: (value: number) => boolean, thisArg?: any): number; + + /** + * Performs the specified action for each element in an array. + * @param callbackfn A function that accepts up to three arguments. forEach calls the + * callbackfn function one time for each element in the array. + * @param thisArg An object to which the this keyword can refer in the callbackfn function. + * If thisArg is omitted, undefined is used as the this value. + */ forEach(callbackfn: (value: number, index: number, array: Int32Array) => void, thisArg?: any): void; + + /** + * Returns the index of the first occurrence of a value in an array. + * @param searchElement The value to locate in the array. + * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the + * search starts at index 0. + */ indexOf(searchElement: number, fromIndex?: number): number; + + /** + * Adds all the elements of an array separated by the specified separator string. + * @param separator A string used to separate one element of an array from the next in the + * resulting String. If omitted, the array elements are separated with a comma. + */ join(separator?: string): string; + + /** + * Returns an list of keys in the array + */ keys(): number[]; + + /** + * Returns the index of the last occurrence of a value in an array. + * @param searchElement The value to locate in the array. + * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the + * search starts at index 0. + */ lastIndexOf(searchElement: number, fromIndex?: number): number; + + /** + * The length of the array. + */ length: number; + + /** + * Calls a defined callback function on each element of an array, and returns an array that + * contains the results. + * @param callbackfn A function that accepts up to three arguments. The map method calls the + * callbackfn function one time for each element in the array. + * @param thisArg An object to which the this keyword can refer in the callbackfn function. + * If thisArg is omitted, undefined is used as the this value. + */ map(callbackfn: (value: number, index: number, array: Int32Array) => number, thisArg?: any): Int32Array; + + /** + * Calls the specified callback function for all the elements in an array. The return value of + * the callback function is the accumulated result, and is provided as an argument in the next + * call to the callback function. + * @param callbackfn A function that accepts up to four arguments. The reduce method calls the + * callbackfn function one time for each element in the array. + * @param initialValue If initialValue is specified, it is used as the initial value to start + * the accumulation. The first call to the callbackfn function provides this value as an argument + * instead of an array value. + */ reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Int32Array) => number, initialValue?: number): number; + + /** + * Calls the specified callback function for all the elements in an array. The return value of + * the callback function is the accumulated result, and is provided as an argument in the next + * call to the callback function. + * @param callbackfn A function that accepts up to four arguments. The reduce method calls the + * callbackfn function one time for each element in the array. + * @param initialValue If initialValue is specified, it is used as the initial value to start + * the accumulation. The first call to the callbackfn function provides this value as an argument + * instead of an array value. + */ reduce(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Int32Array) => U, initialValue: U): U; + + /** + * Calls the specified callback function for all the elements in an array, in descending order. + * The return value of the callback function is the accumulated result, and is provided as an + * argument in the next call to the callback function. + * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls + * the callbackfn function one time for each element in the array. + * @param initialValue If initialValue is specified, it is used as the initial value to start + * the accumulation. The first call to the callbackfn function provides this value as an + * argument instead of an array value. + */ reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Int32Array) => number, initialValue?: number): number; + + /** + * Calls the specified callback function for all the elements in an array, in descending order. + * The return value of the callback function is the accumulated result, and is provided as an + * argument in the next call to the callback function. + * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls + * the callbackfn function one time for each element in the array. + * @param initialValue If initialValue is specified, it is used as the initial value to start + * the accumulation. The first call to the callbackfn function provides this value as an argument + * instead of an array value. + */ reduceRight(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Int32Array) => U, initialValue: U): U; + + /** + * Reverses the elements in an Array. + */ reverse(): Int32Array; + + /** + * Sets a value or an array of values. + * @param index The index of the location to set. + * @param value The value to set. + */ set(index: number, value: number): void; + + /** + * Sets a value or an array of values. + * @param array A typed or untyped array of values to set. + * @param offset The index in the current array at which the values are to be written. + */ set(array: Int32Array, offset?: number): void; + + /** + * Returns a section of an array. + * @param start The beginning of the specified portion of the array. + * @param end The end of the specified portion of the array. + */ slice(start?: number, end?: number): Int32Array; + + /** + * Determines whether the specified callback function returns true for any element of an array. + * @param callbackfn A function that accepts up to three arguments. The some method calls the + * callbackfn function for each element in array1 until the callbackfn returns true, or until + * the end of the array. + * @param thisArg An object to which the this keyword can refer in the callbackfn function. + * If thisArg is omitted, undefined is used as the this value. + */ some(callbackfn: (value: number, index: number, array: Int32Array) => boolean, thisArg?: any): boolean; + + /** + * Sorts an array. + * @param compareFn The name of the function used to determine the order of the elements. If + * omitted, the elements are sorted in ascending, ASCII character order. + */ sort(compareFn?: (a: number, b: number) => number): Int32Array; + + /** + * Gets a new Int32Array view of the ArrayBuffer store for this array, referencing the elements + * at begin, inclusive, up to end, exclusive. + * @param begin The index of the beginning of the array. + * @param end The index of the end of the array. + */ subarray(begin: number, end?: number): Int32Array; + + /** + * Converts a number to a string by using the current locale. + */ toLocaleString(): string; + + /** + * Returns a string representation of an array. + */ toString(): string; + + /** + * Returns an list of values in the array + */ values(): Int32Array; + [index: number]: number; // [Symbol.iterator] (): Iterator; } -declare var Int32Array: { +interface Int32ArrayConstructor { prototype: Int32Array; new (length: number): Int32Array; new (array: Int32Array): Int32Array; new (array: number[]): Int32Array; new (buffer: ArrayBuffer, byteOffset?: number, length?: number): Int32Array; + + /** + * The size in bytes of each element in the array. + */ BYTES_PER_ELEMENT: number; + + /** + * Returns a new array from a set of elements. + * @param items A set of elements to include in the new array object. + */ of(...items: number[]): Int32Array; + + /** + * Creates an array from an array-like or iterable object. + * @param arrayLike An array-like or iterable object to convert to an array. + * @param mapfn A mapping function to call on every element of the array. + * @param thisArg Value of 'this' used to invoke the mapfn. + */ from(arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Int32Array; -}; +} +declare var Int32Array: Int32ArrayConstructor; /** * A typed array of 32-bit unsigned integer values. The contents are initialized to 0. If the * requested number of bytes could not be allocated an exception is raised. */ interface Uint32Array { + /** + * The size in bytes of each element in the array. + */ BYTES_PER_ELEMENT: number; + + /** + * The ArrayBuffer instance referenced by the array. + */ buffer: ArrayBuffer; + + /** + * The length in bytes of the array. + */ byteLength: number; + + /** + * The offset in bytes of the array. + */ byteOffset: number; + + /** + * Returns the this object after copying a section of the array identified by start and end + * to the same array starting at position target + * @param target If target is negative, it is treated as length+target where length is the + * length of the array. + * @param start If start is negative, it is treated as length+start. If end is negative, it + * is treated as length+end. + * @param end If not specified, length of the this object is used as its default value. + */ copyWithin(target: number, start: number, end?: number): Uint32Array; + + /** + * Returns an array of key, value pairs for every entry in the array + */ entries(): Iterator<[number, number]>; + + /** + * Determines whether all the members of an array satisfy the specified test. + * @param callbackfn A function that accepts up to three arguments. The every method calls + * the callbackfn function for each element in array1 until the callbackfn returns false, + * or until the end of the array. + * @param thisArg An object to which the this keyword can refer in the callbackfn function. + * If thisArg is omitted, undefined is used as the this value. + */ every(callbackfn: (value: number, index: number, array: Uint32Array) => boolean, thisArg?: any): boolean; + + /** + * Returns the this object after filling the section identified by start and end with value + * @param value value to fill array section with + * @param start index to start filling the array at. If start is negative, it is treated as + * length+start where length is the length of the array. + * @param end index to stop filling the array at. If end is negative, it is treated as + * length+end. + */ fill(value: number, start?: number, end?: number): Uint32Array; + + /** + * Returns the elements of an array that meet the condition specified in a callback function. + * @param callbackfn A function that accepts up to three arguments. The filter method calls + * the callbackfn function one time for each element in the array. + * @param thisArg An object to which the this keyword can refer in the callbackfn function. + * If thisArg is omitted, undefined is used as the this value. + */ filter(callbackfn: (value: number, index: number, array: Uint32Array) => boolean, thisArg?: any): Uint32Array; + + /** + * Returns the value of the first element in the array where predicate is true, and undefined + * otherwise. + * @param predicate find calls predicate once for each element of the array, in ascending + * order, until it finds one where predicate returns true. If such an element is found, find + * immediately returns that element value. Otherwise, find returns undefined. + * @param thisArg If provided, it will be used as the this value for each invocation of + * predicate. If it is not provided, undefined is used instead. + */ find(predicate: (value: number, index: number, obj: Array) => boolean, thisArg?: any): number; + + /** + * Returns the index of the first element in the array where predicate is true, and undefined + * otherwise. + * @param predicate find calls predicate once for each element of the array, in ascending + * order, until it finds one where predicate returns true. If such an element is found, find + * immediately returns that element value. Otherwise, find returns undefined. + * @param thisArg If provided, it will be used as the this value for each invocation of + * predicate. If it is not provided, undefined is used instead. + */ findIndex(predicate: (value: number) => boolean, thisArg?: any): number; + + /** + * Performs the specified action for each element in an array. + * @param callbackfn A function that accepts up to three arguments. forEach calls the + * callbackfn function one time for each element in the array. + * @param thisArg An object to which the this keyword can refer in the callbackfn function. + * If thisArg is omitted, undefined is used as the this value. + */ forEach(callbackfn: (value: number, index: number, array: Uint32Array) => void, thisArg?: any): void; + + /** + * Returns the index of the first occurrence of a value in an array. + * @param searchElement The value to locate in the array. + * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the + * search starts at index 0. + */ indexOf(searchElement: number, fromIndex?: number): number; + + /** + * Adds all the elements of an array separated by the specified separator string. + * @param separator A string used to separate one element of an array from the next in the + * resulting String. If omitted, the array elements are separated with a comma. + */ join(separator?: string): string; + + /** + * Returns an list of keys in the array + */ keys(): number[]; + + /** + * Returns the index of the last occurrence of a value in an array. + * @param searchElement The value to locate in the array. + * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the + * search starts at index 0. + */ lastIndexOf(searchElement: number, fromIndex?: number): number; + + /** + * The length of the array. + */ length: number; + + /** + * Calls a defined callback function on each element of an array, and returns an array that + * contains the results. + * @param callbackfn A function that accepts up to three arguments. The map method calls the + * callbackfn function one time for each element in the array. + * @param thisArg An object to which the this keyword can refer in the callbackfn function. + * If thisArg is omitted, undefined is used as the this value. + */ map(callbackfn: (value: number, index: number, array: Uint32Array) => number, thisArg?: any): Uint32Array; + + /** + * Calls the specified callback function for all the elements in an array. The return value of + * the callback function is the accumulated result, and is provided as an argument in the next + * call to the callback function. + * @param callbackfn A function that accepts up to four arguments. The reduce method calls the + * callbackfn function one time for each element in the array. + * @param initialValue If initialValue is specified, it is used as the initial value to start + * the accumulation. The first call to the callbackfn function provides this value as an argument + * instead of an array value. + */ reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Uint32Array) => number, initialValue?: number): number; + + /** + * Calls the specified callback function for all the elements in an array. The return value of + * the callback function is the accumulated result, and is provided as an argument in the next + * call to the callback function. + * @param callbackfn A function that accepts up to four arguments. The reduce method calls the + * callbackfn function one time for each element in the array. + * @param initialValue If initialValue is specified, it is used as the initial value to start + * the accumulation. The first call to the callbackfn function provides this value as an argument + * instead of an array value. + */ reduce(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Uint32Array) => U, initialValue: U): U; + + /** + * Calls the specified callback function for all the elements in an array, in descending order. + * The return value of the callback function is the accumulated result, and is provided as an + * argument in the next call to the callback function. + * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls + * the callbackfn function one time for each element in the array. + * @param initialValue If initialValue is specified, it is used as the initial value to start + * the accumulation. The first call to the callbackfn function provides this value as an + * argument instead of an array value. + */ reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Uint32Array) => number, initialValue?: number): number; + + /** + * Calls the specified callback function for all the elements in an array, in descending order. + * The return value of the callback function is the accumulated result, and is provided as an + * argument in the next call to the callback function. + * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls + * the callbackfn function one time for each element in the array. + * @param initialValue If initialValue is specified, it is used as the initial value to start + * the accumulation. The first call to the callbackfn function provides this value as an argument + * instead of an array value. + */ reduceRight(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Uint32Array) => U, initialValue: U): U; + + /** + * Reverses the elements in an Array. + */ reverse(): Uint32Array; + + /** + * Sets a value or an array of values. + * @param index The index of the location to set. + * @param value The value to set. + */ set(index: number, value: number): void; + + /** + * Sets a value or an array of values. + * @param array A typed or untyped array of values to set. + * @param offset The index in the current array at which the values are to be written. + */ set(array: Uint32Array, offset?: number): void; + + /** + * Returns a section of an array. + * @param start The beginning of the specified portion of the array. + * @param end The end of the specified portion of the array. + */ slice(start?: number, end?: number): Uint32Array; + + /** + * Determines whether the specified callback function returns true for any element of an array. + * @param callbackfn A function that accepts up to three arguments. The some method calls the + * callbackfn function for each element in array1 until the callbackfn returns true, or until + * the end of the array. + * @param thisArg An object to which the this keyword can refer in the callbackfn function. + * If thisArg is omitted, undefined is used as the this value. + */ some(callbackfn: (value: number, index: number, array: Uint32Array) => boolean, thisArg?: any): boolean; + + /** + * Sorts an array. + * @param compareFn The name of the function used to determine the order of the elements. If + * omitted, the elements are sorted in ascending, ASCII character order. + */ sort(compareFn?: (a: number, b: number) => number): Uint32Array; + + /** + * Gets a new Uint32Array view of the ArrayBuffer store for this array, referencing the elements + * at begin, inclusive, up to end, exclusive. + * @param begin The index of the beginning of the array. + * @param end The index of the end of the array. + */ subarray(begin: number, end?: number): Uint32Array; + + /** + * Converts a number to a string by using the current locale. + */ toLocaleString(): string; + + /** + * Returns a string representation of an array. + */ toString(): string; + + /** + * Returns an list of values in the array + */ values(): Uint32Array; + [index: number]: number; // [Symbol.iterator] (): Iterator; } -declare var Uint32Array: { +interface Uint32ArrayConstructor { prototype: Uint32Array; new (length: number): Uint32Array; new (array: Uint32Array): Uint32Array; new (array: number[]): Uint32Array; new (buffer: ArrayBuffer, byteOffset?: number, length?: number): Uint32Array; + + /** + * The size in bytes of each element in the array. + */ BYTES_PER_ELEMENT: number; + + /** + * Returns a new array from a set of elements. + * @param items A set of elements to include in the new array object. + */ of(...items: number[]): Uint32Array; + + /** + * Creates an array from an array-like or iterable object. + * @param arrayLike An array-like or iterable object to convert to an array. + * @param mapfn A mapping function to call on every element of the array. + * @param thisArg Value of 'this' used to invoke the mapfn. + */ from(arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Uint32Array; -}; +} +declare var Uint32Array: Uint32ArrayConstructor; /** * A typed array of 32-bit float values. The contents are initialized to 0. If the requested number * of bytes could not be allocated an exception is raised. */ interface Float32Array { + /** + * The size in bytes of each element in the array. + */ BYTES_PER_ELEMENT: number; + + /** + * The ArrayBuffer instance referenced by the array. + */ buffer: ArrayBuffer; + + /** + * The length in bytes of the array. + */ byteLength: number; + + /** + * The offset in bytes of the array. + */ byteOffset: number; + + /** + * Returns the this object after copying a section of the array identified by start and end + * to the same array starting at position target + * @param target If target is negative, it is treated as length+target where length is the + * length of the array. + * @param start If start is negative, it is treated as length+start. If end is negative, it + * is treated as length+end. + * @param end If not specified, length of the this object is used as its default value. + */ copyWithin(target: number, start: number, end?: number): Float32Array; + + /** + * Returns an array of key, value pairs for every entry in the array + */ entries(): Iterator<[number, number]>; + + /** + * Determines whether all the members of an array satisfy the specified test. + * @param callbackfn A function that accepts up to three arguments. The every method calls + * the callbackfn function for each element in array1 until the callbackfn returns false, + * or until the end of the array. + * @param thisArg An object to which the this keyword can refer in the callbackfn function. + * If thisArg is omitted, undefined is used as the this value. + */ every(callbackfn: (value: number, index: number, array: Float32Array) => boolean, thisArg?: any): boolean; + + /** + * Returns the this object after filling the section identified by start and end with value + * @param value value to fill array section with + * @param start index to start filling the array at. If start is negative, it is treated as + * length+start where length is the length of the array. + * @param end index to stop filling the array at. If end is negative, it is treated as + * length+end. + */ fill(value: number, start?: number, end?: number): Float32Array; + + /** + * Returns the elements of an array that meet the condition specified in a callback function. + * @param callbackfn A function that accepts up to three arguments. The filter method calls + * the callbackfn function one time for each element in the array. + * @param thisArg An object to which the this keyword can refer in the callbackfn function. + * If thisArg is omitted, undefined is used as the this value. + */ filter(callbackfn: (value: number, index: number, array: Float32Array) => boolean, thisArg?: any): Float32Array; + + /** + * Returns the value of the first element in the array where predicate is true, and undefined + * otherwise. + * @param predicate find calls predicate once for each element of the array, in ascending + * order, until it finds one where predicate returns true. If such an element is found, find + * immediately returns that element value. Otherwise, find returns undefined. + * @param thisArg If provided, it will be used as the this value for each invocation of + * predicate. If it is not provided, undefined is used instead. + */ find(predicate: (value: number, index: number, obj: Array) => boolean, thisArg?: any): number; + + /** + * Returns the index of the first element in the array where predicate is true, and undefined + * otherwise. + * @param predicate find calls predicate once for each element of the array, in ascending + * order, until it finds one where predicate returns true. If such an element is found, find + * immediately returns that element value. Otherwise, find returns undefined. + * @param thisArg If provided, it will be used as the this value for each invocation of + * predicate. If it is not provided, undefined is used instead. + */ findIndex(predicate: (value: number) => boolean, thisArg?: any): number; + + /** + * Performs the specified action for each element in an array. + * @param callbackfn A function that accepts up to three arguments. forEach calls the + * callbackfn function one time for each element in the array. + * @param thisArg An object to which the this keyword can refer in the callbackfn function. + * If thisArg is omitted, undefined is used as the this value. + */ forEach(callbackfn: (value: number, index: number, array: Float32Array) => void, thisArg?: any): void; + + /** + * Returns the index of the first occurrence of a value in an array. + * @param searchElement The value to locate in the array. + * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the + * search starts at index 0. + */ indexOf(searchElement: number, fromIndex?: number): number; + + /** + * Adds all the elements of an array separated by the specified separator string. + * @param separator A string used to separate one element of an array from the next in the + * resulting String. If omitted, the array elements are separated with a comma. + */ join(separator?: string): string; + + /** + * Returns an list of keys in the array + */ keys(): number[]; + + /** + * Returns the index of the last occurrence of a value in an array. + * @param searchElement The value to locate in the array. + * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the + * search starts at index 0. + */ lastIndexOf(searchElement: number, fromIndex?: number): number; + + /** + * The length of the array. + */ length: number; + + /** + * Calls a defined callback function on each element of an array, and returns an array that + * contains the results. + * @param callbackfn A function that accepts up to three arguments. The map method calls the + * callbackfn function one time for each element in the array. + * @param thisArg An object to which the this keyword can refer in the callbackfn function. + * If thisArg is omitted, undefined is used as the this value. + */ map(callbackfn: (value: number, index: number, array: Float32Array) => number, thisArg?: any): Float32Array; + + /** + * Calls the specified callback function for all the elements in an array. The return value of + * the callback function is the accumulated result, and is provided as an argument in the next + * call to the callback function. + * @param callbackfn A function that accepts up to four arguments. The reduce method calls the + * callbackfn function one time for each element in the array. + * @param initialValue If initialValue is specified, it is used as the initial value to start + * the accumulation. The first call to the callbackfn function provides this value as an argument + * instead of an array value. + */ reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Float32Array) => number, initialValue?: number): number; + + /** + * Calls the specified callback function for all the elements in an array. The return value of + * the callback function is the accumulated result, and is provided as an argument in the next + * call to the callback function. + * @param callbackfn A function that accepts up to four arguments. The reduce method calls the + * callbackfn function one time for each element in the array. + * @param initialValue If initialValue is specified, it is used as the initial value to start + * the accumulation. The first call to the callbackfn function provides this value as an argument + * instead of an array value. + */ reduce(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Float32Array) => U, initialValue: U): U; + + /** + * Calls the specified callback function for all the elements in an array, in descending order. + * The return value of the callback function is the accumulated result, and is provided as an + * argument in the next call to the callback function. + * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls + * the callbackfn function one time for each element in the array. + * @param initialValue If initialValue is specified, it is used as the initial value to start + * the accumulation. The first call to the callbackfn function provides this value as an + * argument instead of an array value. + */ reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Float32Array) => number, initialValue?: number): number; + + /** + * Calls the specified callback function for all the elements in an array, in descending order. + * The return value of the callback function is the accumulated result, and is provided as an + * argument in the next call to the callback function. + * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls + * the callbackfn function one time for each element in the array. + * @param initialValue If initialValue is specified, it is used as the initial value to start + * the accumulation. The first call to the callbackfn function provides this value as an argument + * instead of an array value. + */ reduceRight(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Float32Array) => U, initialValue: U): U; + + /** + * Reverses the elements in an Array. + */ reverse(): Float32Array; + + /** + * Sets a value or an array of values. + * @param index The index of the location to set. + * @param value The value to set. + */ set(index: number, value: number): void; + + /** + * Sets a value or an array of values. + * @param array A typed or untyped array of values to set. + * @param offset The index in the current array at which the values are to be written. + */ set(array: Float32Array, offset?: number): void; + + /** + * Returns a section of an array. + * @param start The beginning of the specified portion of the array. + * @param end The end of the specified portion of the array. + */ slice(start?: number, end?: number): Float32Array; + + /** + * Determines whether the specified callback function returns true for any element of an array. + * @param callbackfn A function that accepts up to three arguments. The some method calls the + * callbackfn function for each element in array1 until the callbackfn returns true, or until + * the end of the array. + * @param thisArg An object to which the this keyword can refer in the callbackfn function. + * If thisArg is omitted, undefined is used as the this value. + */ some(callbackfn: (value: number, index: number, array: Float32Array) => boolean, thisArg?: any): boolean; + + /** + * Sorts an array. + * @param compareFn The name of the function used to determine the order of the elements. If + * omitted, the elements are sorted in ascending, ASCII character order. + */ sort(compareFn?: (a: number, b: number) => number): Float32Array; + + /** + * Gets a new Float32Array view of the ArrayBuffer store for this array, referencing the elements + * at begin, inclusive, up to end, exclusive. + * @param begin The index of the beginning of the array. + * @param end The index of the end of the array. + */ subarray(begin: number, end?: number): Float32Array; + + /** + * Converts a number to a string by using the current locale. + */ toLocaleString(): string; + + /** + * Returns a string representation of an array. + */ toString(): string; + + /** + * Returns an list of values in the array + */ values(): Float32Array; + [index: number]: number; // [Symbol.iterator] (): Iterator; } -declare var Float32Array: { +interface Float32ArrayConstructor { prototype: Float32Array; new (length: number): Float32Array; new (array: Float32Array): Float32Array; new (array: number[]): Float32Array; new (buffer: ArrayBuffer, byteOffset?: number, length?: number): Float32Array; + + /** + * The size in bytes of each element in the array. + */ BYTES_PER_ELEMENT: number; + + /** + * Returns a new array from a set of elements. + * @param items A set of elements to include in the new array object. + */ of(...items: number[]): Float32Array; + + /** + * Creates an array from an array-like or iterable object. + * @param arrayLike An array-like or iterable object to convert to an array. + * @param mapfn A mapping function to call on every element of the array. + * @param thisArg Value of 'this' used to invoke the mapfn. + */ from(arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Float32Array; -}; +} +declare var Float32Array: Float32ArrayConstructor; /** * A typed array of 64-bit float values. The contents are initialized to 0. If the requested * number of bytes could not be allocated an exception is raised. */ interface Float64Array { + /** + * The size in bytes of each element in the array. + */ BYTES_PER_ELEMENT: number; + + /** + * The ArrayBuffer instance referenced by the array. + */ buffer: ArrayBuffer; + + /** + * The length in bytes of the array. + */ byteLength: number; + + /** + * The offset in bytes of the array. + */ byteOffset: number; + + /** + * Returns the this object after copying a section of the array identified by start and end + * to the same array starting at position target + * @param target If target is negative, it is treated as length+target where length is the + * length of the array. + * @param start If start is negative, it is treated as length+start. If end is negative, it + * is treated as length+end. + * @param end If not specified, length of the this object is used as its default value. + */ copyWithin(target: number, start: number, end?: number): Float64Array; + + /** + * Returns an array of key, value pairs for every entry in the array + */ entries(): Iterator<[number, number]>; + + /** + * Determines whether all the members of an array satisfy the specified test. + * @param callbackfn A function that accepts up to three arguments. The every method calls + * the callbackfn function for each element in array1 until the callbackfn returns false, + * or until the end of the array. + * @param thisArg An object to which the this keyword can refer in the callbackfn function. + * If thisArg is omitted, undefined is used as the this value. + */ every(callbackfn: (value: number, index: number, array: Float64Array) => boolean, thisArg?: any): boolean; + + /** + * Returns the this object after filling the section identified by start and end with value + * @param value value to fill array section with + * @param start index to start filling the array at. If start is negative, it is treated as + * length+start where length is the length of the array. + * @param end index to stop filling the array at. If end is negative, it is treated as + * length+end. + */ fill(value: number, start?: number, end?: number): Float64Array; + + /** + * Returns the elements of an array that meet the condition specified in a callback function. + * @param callbackfn A function that accepts up to three arguments. The filter method calls + * the callbackfn function one time for each element in the array. + * @param thisArg An object to which the this keyword can refer in the callbackfn function. + * If thisArg is omitted, undefined is used as the this value. + */ filter(callbackfn: (value: number, index: number, array: Float64Array) => boolean, thisArg?: any): Float64Array; + + /** + * Returns the value of the first element in the array where predicate is true, and undefined + * otherwise. + * @param predicate find calls predicate once for each element of the array, in ascending + * order, until it finds one where predicate returns true. If such an element is found, find + * immediately returns that element value. Otherwise, find returns undefined. + * @param thisArg If provided, it will be used as the this value for each invocation of + * predicate. If it is not provided, undefined is used instead. + */ find(predicate: (value: number, index: number, obj: Array) => boolean, thisArg?: any): number; + + /** + * Returns the index of the first element in the array where predicate is true, and undefined + * otherwise. + * @param predicate find calls predicate once for each element of the array, in ascending + * order, until it finds one where predicate returns true. If such an element is found, find + * immediately returns that element value. Otherwise, find returns undefined. + * @param thisArg If provided, it will be used as the this value for each invocation of + * predicate. If it is not provided, undefined is used instead. + */ findIndex(predicate: (value: number) => boolean, thisArg?: any): number; + + /** + * Performs the specified action for each element in an array. + * @param callbackfn A function that accepts up to three arguments. forEach calls the + * callbackfn function one time for each element in the array. + * @param thisArg An object to which the this keyword can refer in the callbackfn function. + * If thisArg is omitted, undefined is used as the this value. + */ forEach(callbackfn: (value: number, index: number, array: Float64Array) => void, thisArg?: any): void; + + /** + * Returns the index of the first occurrence of a value in an array. + * @param searchElement The value to locate in the array. + * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the + * search starts at index 0. + */ indexOf(searchElement: number, fromIndex?: number): number; + + /** + * Adds all the elements of an array separated by the specified separator string. + * @param separator A string used to separate one element of an array from the next in the + * resulting String. If omitted, the array elements are separated with a comma. + */ join(separator?: string): string; + + /** + * Returns an list of keys in the array + */ keys(): number[]; + + /** + * Returns the index of the last occurrence of a value in an array. + * @param searchElement The value to locate in the array. + * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the + * search starts at index 0. + */ lastIndexOf(searchElement: number, fromIndex?: number): number; + + /** + * The length of the array. + */ length: number; + + /** + * Calls a defined callback function on each element of an array, and returns an array that + * contains the results. + * @param callbackfn A function that accepts up to three arguments. The map method calls the + * callbackfn function one time for each element in the array. + * @param thisArg An object to which the this keyword can refer in the callbackfn function. + * If thisArg is omitted, undefined is used as the this value. + */ map(callbackfn: (value: number, index: number, array: Float64Array) => number, thisArg?: any): Float64Array; + + /** + * Calls the specified callback function for all the elements in an array. The return value of + * the callback function is the accumulated result, and is provided as an argument in the next + * call to the callback function. + * @param callbackfn A function that accepts up to four arguments. The reduce method calls the + * callbackfn function one time for each element in the array. + * @param initialValue If initialValue is specified, it is used as the initial value to start + * the accumulation. The first call to the callbackfn function provides this value as an argument + * instead of an array value. + */ reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Float64Array) => number, initialValue?: number): number; + + /** + * Calls the specified callback function for all the elements in an array. The return value of + * the callback function is the accumulated result, and is provided as an argument in the next + * call to the callback function. + * @param callbackfn A function that accepts up to four arguments. The reduce method calls the + * callbackfn function one time for each element in the array. + * @param initialValue If initialValue is specified, it is used as the initial value to start + * the accumulation. The first call to the callbackfn function provides this value as an argument + * instead of an array value. + */ reduce(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Float64Array) => U, initialValue: U): U; + + /** + * Calls the specified callback function for all the elements in an array, in descending order. + * The return value of the callback function is the accumulated result, and is provided as an + * argument in the next call to the callback function. + * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls + * the callbackfn function one time for each element in the array. + * @param initialValue If initialValue is specified, it is used as the initial value to start + * the accumulation. The first call to the callbackfn function provides this value as an + * argument instead of an array value. + */ reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Float64Array) => number, initialValue?: number): number; + + /** + * Calls the specified callback function for all the elements in an array, in descending order. + * The return value of the callback function is the accumulated result, and is provided as an + * argument in the next call to the callback function. + * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls + * the callbackfn function one time for each element in the array. + * @param initialValue If initialValue is specified, it is used as the initial value to start + * the accumulation. The first call to the callbackfn function provides this value as an argument + * instead of an array value. + */ reduceRight(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Float64Array) => U, initialValue: U): U; + + /** + * Reverses the elements in an Array. + */ reverse(): Float64Array; + + /** + * Sets a value or an array of values. + * @param index The index of the location to set. + * @param value The value to set. + */ set(index: number, value: number): void; + + /** + * Sets a value or an array of values. + * @param array A typed or untyped array of values to set. + * @param offset The index in the current array at which the values are to be written. + */ set(array: Float64Array, offset?: number): void; + + /** + * Returns a section of an array. + * @param start The beginning of the specified portion of the array. + * @param end The end of the specified portion of the array. + */ slice(start?: number, end?: number): Float64Array; + + /** + * Determines whether the specified callback function returns true for any element of an array. + * @param callbackfn A function that accepts up to three arguments. The some method calls the + * callbackfn function for each element in array1 until the callbackfn returns true, or until + * the end of the array. + * @param thisArg An object to which the this keyword can refer in the callbackfn function. + * If thisArg is omitted, undefined is used as the this value. + */ some(callbackfn: (value: number, index: number, array: Float64Array) => boolean, thisArg?: any): boolean; + + /** + * Sorts an array. + * @param compareFn The name of the function used to determine the order of the elements. If + * omitted, the elements are sorted in ascending, ASCII character order. + */ sort(compareFn?: (a: number, b: number) => number): Float64Array; + + /** + * Gets a new Float64Array view of the ArrayBuffer store for this array, referencing the elements + * at begin, inclusive, up to end, exclusive. + * @param begin The index of the beginning of the array. + * @param end The index of the end of the array. + */ subarray(begin: number, end?: number): Float64Array; + + /** + * Converts a number to a string by using the current locale. + */ toLocaleString(): string; + + /** + * Returns a string representation of an array. + */ toString(): string; + + /** + * Returns an list of values in the array + */ values(): Float64Array; + [index: number]: number; // [Symbol.iterator] (): Iterator; } -declare var Float64Array: { +interface Float64ArrayConstructor { prototype: Float64Array; new (length: number): Float64Array; new (array: Float64Array): Float64Array; new (array: number[]): Float64Array; new (buffer: ArrayBuffer, byteOffset?: number, length?: number): Float64Array; + + /** + * The size in bytes of each element in the array. + */ BYTES_PER_ELEMENT: number; + + /** + * Returns a new array from a set of elements. + * @param items A set of elements to include in the new array object. + */ of(...items: number[]): Float64Array; + + /** + * Creates an array from an array-like or iterable object. + * @param arrayLike An array-like or iterable object to convert to an array. + * @param mapfn A mapping function to call on every element of the array. + * @param thisArg Value of 'this' used to invoke the mapfn. + */ from(arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Float64Array; -}; +} +declare var Float64Array: Float64ArrayConstructor; interface ProxyHandler { getPrototypeOf? (target: T): any; @@ -1250,7 +3503,6 @@ declare var Reflect: { setPrototypeOf(target: any, proto: any): boolean; }; - /** * Represents the completion of an asynchronous operation */ @@ -1335,7 +3587,18 @@ interface PromiseConstructor { declare var Promise: PromiseConstructor; interface ArrayBufferView { + /** + * The ArrayBuffer instance referenced by the array. + */ buffer: ArrayBuffer; - byteOffset: number; + + /** + * The length in bytes of the array. + */ byteLength: number; + + /** + * The offset in bytes of the array. + */ + byteOffset: number; } \ No newline at end of file diff --git a/tests/baselines/reference/typedArrays.types b/tests/baselines/reference/typedArrays.types index 19980cd8ba0..5553aedf51b 100644 --- a/tests/baselines/reference/typedArrays.types +++ b/tests/baselines/reference/typedArrays.types @@ -8,58 +8,58 @@ function CreateTypedArrayTypes() { >[] : undefined[] typedArrays[0] = Int8Array; ->typedArrays[0] = Int8Array : { new (length: number): Int8Array; new (array: Int8Array): Int8Array; new (array: number[]): Int8Array; new (buffer: ArrayBuffer, byteOffset?: number, length?: number): Int8Array; prototype: Int8Array; BYTES_PER_ELEMENT: number; of(...items: number[]): Int8Array; from(arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Int8Array; } +>typedArrays[0] = Int8Array : Int8ArrayConstructor >typedArrays[0] : any >typedArrays : any[] ->Int8Array : { new (length: number): Int8Array; new (array: Int8Array): Int8Array; new (array: number[]): Int8Array; new (buffer: ArrayBuffer, byteOffset?: number, length?: number): Int8Array; prototype: Int8Array; BYTES_PER_ELEMENT: number; of(...items: number[]): Int8Array; from(arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Int8Array; } +>Int8Array : Int8ArrayConstructor typedArrays[1] = Uint8Array; ->typedArrays[1] = Uint8Array : { new (length: number): Uint8Array; new (array: Uint8Array): Uint8Array; new (array: number[]): Uint8Array; new (buffer: ArrayBuffer, byteOffset?: number, length?: number): Uint8Array; prototype: Uint8Array; BYTES_PER_ELEMENT: number; of(...items: number[]): Uint8Array; from(arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Uint8Array; } +>typedArrays[1] = Uint8Array : Uint8ArrayConstructor >typedArrays[1] : any >typedArrays : any[] ->Uint8Array : { new (length: number): Uint8Array; new (array: Uint8Array): Uint8Array; new (array: number[]): Uint8Array; new (buffer: ArrayBuffer, byteOffset?: number, length?: number): Uint8Array; prototype: Uint8Array; BYTES_PER_ELEMENT: number; of(...items: number[]): Uint8Array; from(arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Uint8Array; } +>Uint8Array : Uint8ArrayConstructor typedArrays[2] = Int16Array; ->typedArrays[2] = Int16Array : { new (length: number): Int16Array; new (array: Int16Array): Int16Array; new (array: number[]): Int16Array; new (buffer: ArrayBuffer, byteOffset?: number, length?: number): Int16Array; prototype: Int16Array; BYTES_PER_ELEMENT: number; of(...items: number[]): Int16Array; from(arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Int16Array; } +>typedArrays[2] = Int16Array : Int16ArrayConstructor >typedArrays[2] : any >typedArrays : any[] ->Int16Array : { new (length: number): Int16Array; new (array: Int16Array): Int16Array; new (array: number[]): Int16Array; new (buffer: ArrayBuffer, byteOffset?: number, length?: number): Int16Array; prototype: Int16Array; BYTES_PER_ELEMENT: number; of(...items: number[]): Int16Array; from(arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Int16Array; } +>Int16Array : Int16ArrayConstructor typedArrays[3] = Uint16Array; ->typedArrays[3] = Uint16Array : { new (length: number): Uint16Array; new (array: Uint16Array): Uint16Array; new (array: number[]): Uint16Array; new (buffer: ArrayBuffer, byteOffset?: number, length?: number): Uint16Array; prototype: Uint16Array; BYTES_PER_ELEMENT: number; of(...items: number[]): Uint16Array; from(arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Uint16Array; } +>typedArrays[3] = Uint16Array : Uint16ArrayConstructor >typedArrays[3] : any >typedArrays : any[] ->Uint16Array : { new (length: number): Uint16Array; new (array: Uint16Array): Uint16Array; new (array: number[]): Uint16Array; new (buffer: ArrayBuffer, byteOffset?: number, length?: number): Uint16Array; prototype: Uint16Array; BYTES_PER_ELEMENT: number; of(...items: number[]): Uint16Array; from(arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Uint16Array; } +>Uint16Array : Uint16ArrayConstructor typedArrays[4] = Int32Array; ->typedArrays[4] = Int32Array : { new (length: number): Int32Array; new (array: Int32Array): Int32Array; new (array: number[]): Int32Array; new (buffer: ArrayBuffer, byteOffset?: number, length?: number): Int32Array; prototype: Int32Array; BYTES_PER_ELEMENT: number; of(...items: number[]): Int32Array; from(arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Int32Array; } +>typedArrays[4] = Int32Array : Int32ArrayConstructor >typedArrays[4] : any >typedArrays : any[] ->Int32Array : { new (length: number): Int32Array; new (array: Int32Array): Int32Array; new (array: number[]): Int32Array; new (buffer: ArrayBuffer, byteOffset?: number, length?: number): Int32Array; prototype: Int32Array; BYTES_PER_ELEMENT: number; of(...items: number[]): Int32Array; from(arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Int32Array; } +>Int32Array : Int32ArrayConstructor typedArrays[5] = Uint32Array; ->typedArrays[5] = Uint32Array : { new (length: number): Uint32Array; new (array: Uint32Array): Uint32Array; new (array: number[]): Uint32Array; new (buffer: ArrayBuffer, byteOffset?: number, length?: number): Uint32Array; prototype: Uint32Array; BYTES_PER_ELEMENT: number; of(...items: number[]): Uint32Array; from(arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Uint32Array; } +>typedArrays[5] = Uint32Array : Uint32ArrayConstructor >typedArrays[5] : any >typedArrays : any[] ->Uint32Array : { new (length: number): Uint32Array; new (array: Uint32Array): Uint32Array; new (array: number[]): Uint32Array; new (buffer: ArrayBuffer, byteOffset?: number, length?: number): Uint32Array; prototype: Uint32Array; BYTES_PER_ELEMENT: number; of(...items: number[]): Uint32Array; from(arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Uint32Array; } +>Uint32Array : Uint32ArrayConstructor typedArrays[6] = Float32Array; ->typedArrays[6] = Float32Array : { new (length: number): Float32Array; new (array: Float32Array): Float32Array; new (array: number[]): Float32Array; new (buffer: ArrayBuffer, byteOffset?: number, length?: number): Float32Array; prototype: Float32Array; BYTES_PER_ELEMENT: number; of(...items: number[]): Float32Array; from(arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Float32Array; } +>typedArrays[6] = Float32Array : Float32ArrayConstructor >typedArrays[6] : any >typedArrays : any[] ->Float32Array : { new (length: number): Float32Array; new (array: Float32Array): Float32Array; new (array: number[]): Float32Array; new (buffer: ArrayBuffer, byteOffset?: number, length?: number): Float32Array; prototype: Float32Array; BYTES_PER_ELEMENT: number; of(...items: number[]): Float32Array; from(arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Float32Array; } +>Float32Array : Float32ArrayConstructor typedArrays[7] = Float64Array; ->typedArrays[7] = Float64Array : { new (length: number): Float64Array; new (array: Float64Array): Float64Array; new (array: number[]): Float64Array; new (buffer: ArrayBuffer, byteOffset?: number, length?: number): Float64Array; prototype: Float64Array; BYTES_PER_ELEMENT: number; of(...items: number[]): Float64Array; from(arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Float64Array; } +>typedArrays[7] = Float64Array : Float64ArrayConstructor >typedArrays[7] : any >typedArrays : any[] ->Float64Array : { new (length: number): Float64Array; new (array: Float64Array): Float64Array; new (array: number[]): Float64Array; new (buffer: ArrayBuffer, byteOffset?: number, length?: number): Float64Array; prototype: Float64Array; BYTES_PER_ELEMENT: number; of(...items: number[]): Float64Array; from(arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Float64Array; } +>Float64Array : Float64ArrayConstructor typedArrays[8] = Uint8ClampedArray; ->typedArrays[8] = Uint8ClampedArray : { new (length: number): Uint8ClampedArray; new (array: Uint8ClampedArray): Uint8ClampedArray; new (array: number[]): Uint8ClampedArray; new (buffer: ArrayBuffer, byteOffset?: number, length?: number): Uint8ClampedArray; prototype: Uint8ClampedArray; BYTES_PER_ELEMENT: number; of(...items: number[]): Uint8ClampedArray; from(arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Uint8ClampedArray; } +>typedArrays[8] = Uint8ClampedArray : Uint8ClampedArrayConstructor >typedArrays[8] : any >typedArrays : any[] ->Uint8ClampedArray : { new (length: number): Uint8ClampedArray; new (array: Uint8ClampedArray): Uint8ClampedArray; new (array: number[]): Uint8ClampedArray; new (buffer: ArrayBuffer, byteOffset?: number, length?: number): Uint8ClampedArray; prototype: Uint8ClampedArray; BYTES_PER_ELEMENT: number; of(...items: number[]): Uint8ClampedArray; from(arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Uint8ClampedArray; } +>Uint8ClampedArray : Uint8ClampedArrayConstructor return typedArrays; >typedArrays : any[] @@ -78,7 +78,7 @@ function CreateTypedArrayInstancesFromLength(obj: number) { >typedArrays[0] : any >typedArrays : any[] >new Int8Array(obj) : Int8Array ->Int8Array : { new (length: number): Int8Array; new (array: Int8Array): Int8Array; new (array: number[]): Int8Array; new (buffer: ArrayBuffer, byteOffset?: number, length?: number): Int8Array; prototype: Int8Array; BYTES_PER_ELEMENT: number; of(...items: number[]): Int8Array; from(arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Int8Array; } +>Int8Array : Int8ArrayConstructor >obj : number typedArrays[1] = new Uint8Array(obj); @@ -86,7 +86,7 @@ function CreateTypedArrayInstancesFromLength(obj: number) { >typedArrays[1] : any >typedArrays : any[] >new Uint8Array(obj) : Uint8Array ->Uint8Array : { new (length: number): Uint8Array; new (array: Uint8Array): Uint8Array; new (array: number[]): Uint8Array; new (buffer: ArrayBuffer, byteOffset?: number, length?: number): Uint8Array; prototype: Uint8Array; BYTES_PER_ELEMENT: number; of(...items: number[]): Uint8Array; from(arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Uint8Array; } +>Uint8Array : Uint8ArrayConstructor >obj : number typedArrays[2] = new Int16Array(obj); @@ -94,7 +94,7 @@ function CreateTypedArrayInstancesFromLength(obj: number) { >typedArrays[2] : any >typedArrays : any[] >new Int16Array(obj) : Int16Array ->Int16Array : { new (length: number): Int16Array; new (array: Int16Array): Int16Array; new (array: number[]): Int16Array; new (buffer: ArrayBuffer, byteOffset?: number, length?: number): Int16Array; prototype: Int16Array; BYTES_PER_ELEMENT: number; of(...items: number[]): Int16Array; from(arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Int16Array; } +>Int16Array : Int16ArrayConstructor >obj : number typedArrays[3] = new Uint16Array(obj); @@ -102,7 +102,7 @@ function CreateTypedArrayInstancesFromLength(obj: number) { >typedArrays[3] : any >typedArrays : any[] >new Uint16Array(obj) : Uint16Array ->Uint16Array : { new (length: number): Uint16Array; new (array: Uint16Array): Uint16Array; new (array: number[]): Uint16Array; new (buffer: ArrayBuffer, byteOffset?: number, length?: number): Uint16Array; prototype: Uint16Array; BYTES_PER_ELEMENT: number; of(...items: number[]): Uint16Array; from(arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Uint16Array; } +>Uint16Array : Uint16ArrayConstructor >obj : number typedArrays[4] = new Int32Array(obj); @@ -110,7 +110,7 @@ function CreateTypedArrayInstancesFromLength(obj: number) { >typedArrays[4] : any >typedArrays : any[] >new Int32Array(obj) : Int32Array ->Int32Array : { new (length: number): Int32Array; new (array: Int32Array): Int32Array; new (array: number[]): Int32Array; new (buffer: ArrayBuffer, byteOffset?: number, length?: number): Int32Array; prototype: Int32Array; BYTES_PER_ELEMENT: number; of(...items: number[]): Int32Array; from(arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Int32Array; } +>Int32Array : Int32ArrayConstructor >obj : number typedArrays[5] = new Uint32Array(obj); @@ -118,7 +118,7 @@ function CreateTypedArrayInstancesFromLength(obj: number) { >typedArrays[5] : any >typedArrays : any[] >new Uint32Array(obj) : Uint32Array ->Uint32Array : { new (length: number): Uint32Array; new (array: Uint32Array): Uint32Array; new (array: number[]): Uint32Array; new (buffer: ArrayBuffer, byteOffset?: number, length?: number): Uint32Array; prototype: Uint32Array; BYTES_PER_ELEMENT: number; of(...items: number[]): Uint32Array; from(arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Uint32Array; } +>Uint32Array : Uint32ArrayConstructor >obj : number typedArrays[6] = new Float32Array(obj); @@ -126,7 +126,7 @@ function CreateTypedArrayInstancesFromLength(obj: number) { >typedArrays[6] : any >typedArrays : any[] >new Float32Array(obj) : Float32Array ->Float32Array : { new (length: number): Float32Array; new (array: Float32Array): Float32Array; new (array: number[]): Float32Array; new (buffer: ArrayBuffer, byteOffset?: number, length?: number): Float32Array; prototype: Float32Array; BYTES_PER_ELEMENT: number; of(...items: number[]): Float32Array; from(arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Float32Array; } +>Float32Array : Float32ArrayConstructor >obj : number typedArrays[7] = new Float64Array(obj); @@ -134,7 +134,7 @@ function CreateTypedArrayInstancesFromLength(obj: number) { >typedArrays[7] : any >typedArrays : any[] >new Float64Array(obj) : Float64Array ->Float64Array : { new (length: number): Float64Array; new (array: Float64Array): Float64Array; new (array: number[]): Float64Array; new (buffer: ArrayBuffer, byteOffset?: number, length?: number): Float64Array; prototype: Float64Array; BYTES_PER_ELEMENT: number; of(...items: number[]): Float64Array; from(arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Float64Array; } +>Float64Array : Float64ArrayConstructor >obj : number typedArrays[8] = new Uint8ClampedArray(obj); @@ -142,7 +142,7 @@ function CreateTypedArrayInstancesFromLength(obj: number) { >typedArrays[8] : any >typedArrays : any[] >new Uint8ClampedArray(obj) : Uint8ClampedArray ->Uint8ClampedArray : { new (length: number): Uint8ClampedArray; new (array: Uint8ClampedArray): Uint8ClampedArray; new (array: number[]): Uint8ClampedArray; new (buffer: ArrayBuffer, byteOffset?: number, length?: number): Uint8ClampedArray; prototype: Uint8ClampedArray; BYTES_PER_ELEMENT: number; of(...items: number[]): Uint8ClampedArray; from(arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Uint8ClampedArray; } +>Uint8ClampedArray : Uint8ClampedArrayConstructor >obj : number return typedArrays; @@ -162,7 +162,7 @@ function CreateTypedArrayInstancesFromArray(obj: number[]) { >typedArrays[0] : any >typedArrays : any[] >new Int8Array(obj) : Int8Array ->Int8Array : { new (length: number): Int8Array; new (array: Int8Array): Int8Array; new (array: number[]): Int8Array; new (buffer: ArrayBuffer, byteOffset?: number, length?: number): Int8Array; prototype: Int8Array; BYTES_PER_ELEMENT: number; of(...items: number[]): Int8Array; from(arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Int8Array; } +>Int8Array : Int8ArrayConstructor >obj : number[] typedArrays[1] = new Uint8Array(obj); @@ -170,7 +170,7 @@ function CreateTypedArrayInstancesFromArray(obj: number[]) { >typedArrays[1] : any >typedArrays : any[] >new Uint8Array(obj) : Uint8Array ->Uint8Array : { new (length: number): Uint8Array; new (array: Uint8Array): Uint8Array; new (array: number[]): Uint8Array; new (buffer: ArrayBuffer, byteOffset?: number, length?: number): Uint8Array; prototype: Uint8Array; BYTES_PER_ELEMENT: number; of(...items: number[]): Uint8Array; from(arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Uint8Array; } +>Uint8Array : Uint8ArrayConstructor >obj : number[] typedArrays[2] = new Int16Array(obj); @@ -178,7 +178,7 @@ function CreateTypedArrayInstancesFromArray(obj: number[]) { >typedArrays[2] : any >typedArrays : any[] >new Int16Array(obj) : Int16Array ->Int16Array : { new (length: number): Int16Array; new (array: Int16Array): Int16Array; new (array: number[]): Int16Array; new (buffer: ArrayBuffer, byteOffset?: number, length?: number): Int16Array; prototype: Int16Array; BYTES_PER_ELEMENT: number; of(...items: number[]): Int16Array; from(arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Int16Array; } +>Int16Array : Int16ArrayConstructor >obj : number[] typedArrays[3] = new Uint16Array(obj); @@ -186,7 +186,7 @@ function CreateTypedArrayInstancesFromArray(obj: number[]) { >typedArrays[3] : any >typedArrays : any[] >new Uint16Array(obj) : Uint16Array ->Uint16Array : { new (length: number): Uint16Array; new (array: Uint16Array): Uint16Array; new (array: number[]): Uint16Array; new (buffer: ArrayBuffer, byteOffset?: number, length?: number): Uint16Array; prototype: Uint16Array; BYTES_PER_ELEMENT: number; of(...items: number[]): Uint16Array; from(arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Uint16Array; } +>Uint16Array : Uint16ArrayConstructor >obj : number[] typedArrays[4] = new Int32Array(obj); @@ -194,7 +194,7 @@ function CreateTypedArrayInstancesFromArray(obj: number[]) { >typedArrays[4] : any >typedArrays : any[] >new Int32Array(obj) : Int32Array ->Int32Array : { new (length: number): Int32Array; new (array: Int32Array): Int32Array; new (array: number[]): Int32Array; new (buffer: ArrayBuffer, byteOffset?: number, length?: number): Int32Array; prototype: Int32Array; BYTES_PER_ELEMENT: number; of(...items: number[]): Int32Array; from(arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Int32Array; } +>Int32Array : Int32ArrayConstructor >obj : number[] typedArrays[5] = new Uint32Array(obj); @@ -202,7 +202,7 @@ function CreateTypedArrayInstancesFromArray(obj: number[]) { >typedArrays[5] : any >typedArrays : any[] >new Uint32Array(obj) : Uint32Array ->Uint32Array : { new (length: number): Uint32Array; new (array: Uint32Array): Uint32Array; new (array: number[]): Uint32Array; new (buffer: ArrayBuffer, byteOffset?: number, length?: number): Uint32Array; prototype: Uint32Array; BYTES_PER_ELEMENT: number; of(...items: number[]): Uint32Array; from(arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Uint32Array; } +>Uint32Array : Uint32ArrayConstructor >obj : number[] typedArrays[6] = new Float32Array(obj); @@ -210,7 +210,7 @@ function CreateTypedArrayInstancesFromArray(obj: number[]) { >typedArrays[6] : any >typedArrays : any[] >new Float32Array(obj) : Float32Array ->Float32Array : { new (length: number): Float32Array; new (array: Float32Array): Float32Array; new (array: number[]): Float32Array; new (buffer: ArrayBuffer, byteOffset?: number, length?: number): Float32Array; prototype: Float32Array; BYTES_PER_ELEMENT: number; of(...items: number[]): Float32Array; from(arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Float32Array; } +>Float32Array : Float32ArrayConstructor >obj : number[] typedArrays[7] = new Float64Array(obj); @@ -218,7 +218,7 @@ function CreateTypedArrayInstancesFromArray(obj: number[]) { >typedArrays[7] : any >typedArrays : any[] >new Float64Array(obj) : Float64Array ->Float64Array : { new (length: number): Float64Array; new (array: Float64Array): Float64Array; new (array: number[]): Float64Array; new (buffer: ArrayBuffer, byteOffset?: number, length?: number): Float64Array; prototype: Float64Array; BYTES_PER_ELEMENT: number; of(...items: number[]): Float64Array; from(arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Float64Array; } +>Float64Array : Float64ArrayConstructor >obj : number[] typedArrays[8] = new Uint8ClampedArray(obj); @@ -226,7 +226,7 @@ function CreateTypedArrayInstancesFromArray(obj: number[]) { >typedArrays[8] : any >typedArrays : any[] >new Uint8ClampedArray(obj) : Uint8ClampedArray ->Uint8ClampedArray : { new (length: number): Uint8ClampedArray; new (array: Uint8ClampedArray): Uint8ClampedArray; new (array: number[]): Uint8ClampedArray; new (buffer: ArrayBuffer, byteOffset?: number, length?: number): Uint8ClampedArray; prototype: Uint8ClampedArray; BYTES_PER_ELEMENT: number; of(...items: number[]): Uint8ClampedArray; from(arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Uint8ClampedArray; } +>Uint8ClampedArray : Uint8ClampedArrayConstructor >obj : number[] return typedArrays; @@ -247,7 +247,7 @@ function CreateIntegerTypedArraysFromArray2(obj:number[]) { >typedArrays : any[] >Int8Array.from(obj) : Int8Array >Int8Array.from : (arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any) => Int8Array ->Int8Array : { new (length: number): Int8Array; new (array: Int8Array): Int8Array; new (array: number[]): Int8Array; new (buffer: ArrayBuffer, byteOffset?: number, length?: number): Int8Array; prototype: Int8Array; BYTES_PER_ELEMENT: number; of(...items: number[]): Int8Array; from(arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Int8Array; } +>Int8Array : Int8ArrayConstructor >from : (arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any) => Int8Array >obj : number[] @@ -257,7 +257,7 @@ function CreateIntegerTypedArraysFromArray2(obj:number[]) { >typedArrays : any[] >Uint8Array.from(obj) : Uint8Array >Uint8Array.from : (arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any) => Uint8Array ->Uint8Array : { new (length: number): Uint8Array; new (array: Uint8Array): Uint8Array; new (array: number[]): Uint8Array; new (buffer: ArrayBuffer, byteOffset?: number, length?: number): Uint8Array; prototype: Uint8Array; BYTES_PER_ELEMENT: number; of(...items: number[]): Uint8Array; from(arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Uint8Array; } +>Uint8Array : Uint8ArrayConstructor >from : (arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any) => Uint8Array >obj : number[] @@ -267,7 +267,7 @@ function CreateIntegerTypedArraysFromArray2(obj:number[]) { >typedArrays : any[] >Int16Array.from(obj) : Int16Array >Int16Array.from : (arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any) => Int16Array ->Int16Array : { new (length: number): Int16Array; new (array: Int16Array): Int16Array; new (array: number[]): Int16Array; new (buffer: ArrayBuffer, byteOffset?: number, length?: number): Int16Array; prototype: Int16Array; BYTES_PER_ELEMENT: number; of(...items: number[]): Int16Array; from(arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Int16Array; } +>Int16Array : Int16ArrayConstructor >from : (arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any) => Int16Array >obj : number[] @@ -277,7 +277,7 @@ function CreateIntegerTypedArraysFromArray2(obj:number[]) { >typedArrays : any[] >Uint16Array.from(obj) : Uint16Array >Uint16Array.from : (arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any) => Uint16Array ->Uint16Array : { new (length: number): Uint16Array; new (array: Uint16Array): Uint16Array; new (array: number[]): Uint16Array; new (buffer: ArrayBuffer, byteOffset?: number, length?: number): Uint16Array; prototype: Uint16Array; BYTES_PER_ELEMENT: number; of(...items: number[]): Uint16Array; from(arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Uint16Array; } +>Uint16Array : Uint16ArrayConstructor >from : (arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any) => Uint16Array >obj : number[] @@ -287,7 +287,7 @@ function CreateIntegerTypedArraysFromArray2(obj:number[]) { >typedArrays : any[] >Int32Array.from(obj) : Int32Array >Int32Array.from : (arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any) => Int32Array ->Int32Array : { new (length: number): Int32Array; new (array: Int32Array): Int32Array; new (array: number[]): Int32Array; new (buffer: ArrayBuffer, byteOffset?: number, length?: number): Int32Array; prototype: Int32Array; BYTES_PER_ELEMENT: number; of(...items: number[]): Int32Array; from(arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Int32Array; } +>Int32Array : Int32ArrayConstructor >from : (arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any) => Int32Array >obj : number[] @@ -297,7 +297,7 @@ function CreateIntegerTypedArraysFromArray2(obj:number[]) { >typedArrays : any[] >Uint32Array.from(obj) : Uint32Array >Uint32Array.from : (arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any) => Uint32Array ->Uint32Array : { new (length: number): Uint32Array; new (array: Uint32Array): Uint32Array; new (array: number[]): Uint32Array; new (buffer: ArrayBuffer, byteOffset?: number, length?: number): Uint32Array; prototype: Uint32Array; BYTES_PER_ELEMENT: number; of(...items: number[]): Uint32Array; from(arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Uint32Array; } +>Uint32Array : Uint32ArrayConstructor >from : (arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any) => Uint32Array >obj : number[] @@ -307,7 +307,7 @@ function CreateIntegerTypedArraysFromArray2(obj:number[]) { >typedArrays : any[] >Float32Array.from(obj) : Float32Array >Float32Array.from : (arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any) => Float32Array ->Float32Array : { new (length: number): Float32Array; new (array: Float32Array): Float32Array; new (array: number[]): Float32Array; new (buffer: ArrayBuffer, byteOffset?: number, length?: number): Float32Array; prototype: Float32Array; BYTES_PER_ELEMENT: number; of(...items: number[]): Float32Array; from(arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Float32Array; } +>Float32Array : Float32ArrayConstructor >from : (arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any) => Float32Array >obj : number[] @@ -317,7 +317,7 @@ function CreateIntegerTypedArraysFromArray2(obj:number[]) { >typedArrays : any[] >Float64Array.from(obj) : Float64Array >Float64Array.from : (arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any) => Float64Array ->Float64Array : { new (length: number): Float64Array; new (array: Float64Array): Float64Array; new (array: number[]): Float64Array; new (buffer: ArrayBuffer, byteOffset?: number, length?: number): Float64Array; prototype: Float64Array; BYTES_PER_ELEMENT: number; of(...items: number[]): Float64Array; from(arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Float64Array; } +>Float64Array : Float64ArrayConstructor >from : (arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any) => Float64Array >obj : number[] @@ -327,7 +327,7 @@ function CreateIntegerTypedArraysFromArray2(obj:number[]) { >typedArrays : any[] >Uint8ClampedArray.from(obj) : Uint8ClampedArray >Uint8ClampedArray.from : (arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any) => Uint8ClampedArray ->Uint8ClampedArray : { new (length: number): Uint8ClampedArray; new (array: Uint8ClampedArray): Uint8ClampedArray; new (array: number[]): Uint8ClampedArray; new (buffer: ArrayBuffer, byteOffset?: number, length?: number): Uint8ClampedArray; prototype: Uint8ClampedArray; BYTES_PER_ELEMENT: number; of(...items: number[]): Uint8ClampedArray; from(arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Uint8ClampedArray; } +>Uint8ClampedArray : Uint8ClampedArrayConstructor >from : (arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any) => Uint8ClampedArray >obj : number[] @@ -350,7 +350,7 @@ function CreateIntegerTypedArraysFromArrayLike(obj:ArrayLike) { >typedArrays : any[] >Int8Array.from(obj) : Int8Array >Int8Array.from : (arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any) => Int8Array ->Int8Array : { new (length: number): Int8Array; new (array: Int8Array): Int8Array; new (array: number[]): Int8Array; new (buffer: ArrayBuffer, byteOffset?: number, length?: number): Int8Array; prototype: Int8Array; BYTES_PER_ELEMENT: number; of(...items: number[]): Int8Array; from(arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Int8Array; } +>Int8Array : Int8ArrayConstructor >from : (arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any) => Int8Array >obj : ArrayLike @@ -360,7 +360,7 @@ function CreateIntegerTypedArraysFromArrayLike(obj:ArrayLike) { >typedArrays : any[] >Uint8Array.from(obj) : Uint8Array >Uint8Array.from : (arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any) => Uint8Array ->Uint8Array : { new (length: number): Uint8Array; new (array: Uint8Array): Uint8Array; new (array: number[]): Uint8Array; new (buffer: ArrayBuffer, byteOffset?: number, length?: number): Uint8Array; prototype: Uint8Array; BYTES_PER_ELEMENT: number; of(...items: number[]): Uint8Array; from(arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Uint8Array; } +>Uint8Array : Uint8ArrayConstructor >from : (arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any) => Uint8Array >obj : ArrayLike @@ -370,7 +370,7 @@ function CreateIntegerTypedArraysFromArrayLike(obj:ArrayLike) { >typedArrays : any[] >Int16Array.from(obj) : Int16Array >Int16Array.from : (arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any) => Int16Array ->Int16Array : { new (length: number): Int16Array; new (array: Int16Array): Int16Array; new (array: number[]): Int16Array; new (buffer: ArrayBuffer, byteOffset?: number, length?: number): Int16Array; prototype: Int16Array; BYTES_PER_ELEMENT: number; of(...items: number[]): Int16Array; from(arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Int16Array; } +>Int16Array : Int16ArrayConstructor >from : (arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any) => Int16Array >obj : ArrayLike @@ -380,7 +380,7 @@ function CreateIntegerTypedArraysFromArrayLike(obj:ArrayLike) { >typedArrays : any[] >Uint16Array.from(obj) : Uint16Array >Uint16Array.from : (arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any) => Uint16Array ->Uint16Array : { new (length: number): Uint16Array; new (array: Uint16Array): Uint16Array; new (array: number[]): Uint16Array; new (buffer: ArrayBuffer, byteOffset?: number, length?: number): Uint16Array; prototype: Uint16Array; BYTES_PER_ELEMENT: number; of(...items: number[]): Uint16Array; from(arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Uint16Array; } +>Uint16Array : Uint16ArrayConstructor >from : (arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any) => Uint16Array >obj : ArrayLike @@ -390,7 +390,7 @@ function CreateIntegerTypedArraysFromArrayLike(obj:ArrayLike) { >typedArrays : any[] >Int32Array.from(obj) : Int32Array >Int32Array.from : (arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any) => Int32Array ->Int32Array : { new (length: number): Int32Array; new (array: Int32Array): Int32Array; new (array: number[]): Int32Array; new (buffer: ArrayBuffer, byteOffset?: number, length?: number): Int32Array; prototype: Int32Array; BYTES_PER_ELEMENT: number; of(...items: number[]): Int32Array; from(arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Int32Array; } +>Int32Array : Int32ArrayConstructor >from : (arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any) => Int32Array >obj : ArrayLike @@ -400,7 +400,7 @@ function CreateIntegerTypedArraysFromArrayLike(obj:ArrayLike) { >typedArrays : any[] >Uint32Array.from(obj) : Uint32Array >Uint32Array.from : (arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any) => Uint32Array ->Uint32Array : { new (length: number): Uint32Array; new (array: Uint32Array): Uint32Array; new (array: number[]): Uint32Array; new (buffer: ArrayBuffer, byteOffset?: number, length?: number): Uint32Array; prototype: Uint32Array; BYTES_PER_ELEMENT: number; of(...items: number[]): Uint32Array; from(arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Uint32Array; } +>Uint32Array : Uint32ArrayConstructor >from : (arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any) => Uint32Array >obj : ArrayLike @@ -410,7 +410,7 @@ function CreateIntegerTypedArraysFromArrayLike(obj:ArrayLike) { >typedArrays : any[] >Float32Array.from(obj) : Float32Array >Float32Array.from : (arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any) => Float32Array ->Float32Array : { new (length: number): Float32Array; new (array: Float32Array): Float32Array; new (array: number[]): Float32Array; new (buffer: ArrayBuffer, byteOffset?: number, length?: number): Float32Array; prototype: Float32Array; BYTES_PER_ELEMENT: number; of(...items: number[]): Float32Array; from(arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Float32Array; } +>Float32Array : Float32ArrayConstructor >from : (arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any) => Float32Array >obj : ArrayLike @@ -420,7 +420,7 @@ function CreateIntegerTypedArraysFromArrayLike(obj:ArrayLike) { >typedArrays : any[] >Float64Array.from(obj) : Float64Array >Float64Array.from : (arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any) => Float64Array ->Float64Array : { new (length: number): Float64Array; new (array: Float64Array): Float64Array; new (array: number[]): Float64Array; new (buffer: ArrayBuffer, byteOffset?: number, length?: number): Float64Array; prototype: Float64Array; BYTES_PER_ELEMENT: number; of(...items: number[]): Float64Array; from(arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Float64Array; } +>Float64Array : Float64ArrayConstructor >from : (arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any) => Float64Array >obj : ArrayLike @@ -430,7 +430,7 @@ function CreateIntegerTypedArraysFromArrayLike(obj:ArrayLike) { >typedArrays : any[] >Uint8ClampedArray.from(obj) : Uint8ClampedArray >Uint8ClampedArray.from : (arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any) => Uint8ClampedArray ->Uint8ClampedArray : { new (length: number): Uint8ClampedArray; new (array: Uint8ClampedArray): Uint8ClampedArray; new (array: number[]): Uint8ClampedArray; new (buffer: ArrayBuffer, byteOffset?: number, length?: number): Uint8ClampedArray; prototype: Uint8ClampedArray; BYTES_PER_ELEMENT: number; of(...items: number[]): Uint8ClampedArray; from(arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Uint8ClampedArray; } +>Uint8ClampedArray : Uint8ClampedArrayConstructor >from : (arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any) => Uint8ClampedArray >obj : ArrayLike @@ -468,7 +468,7 @@ function CreateTypedArraysOf2() { >typedArrays : any[] >Int8Array.of(1,2,3,4) : Int8Array >Int8Array.of : (...items: number[]) => Int8Array ->Int8Array : { new (length: number): Int8Array; new (array: Int8Array): Int8Array; new (array: number[]): Int8Array; new (buffer: ArrayBuffer, byteOffset?: number, length?: number): Int8Array; prototype: Int8Array; BYTES_PER_ELEMENT: number; of(...items: number[]): Int8Array; from(arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Int8Array; } +>Int8Array : Int8ArrayConstructor >of : (...items: number[]) => Int8Array typedArrays[1] = Uint8Array.of(1,2,3,4); @@ -477,7 +477,7 @@ function CreateTypedArraysOf2() { >typedArrays : any[] >Uint8Array.of(1,2,3,4) : Uint8Array >Uint8Array.of : (...items: number[]) => Uint8Array ->Uint8Array : { new (length: number): Uint8Array; new (array: Uint8Array): Uint8Array; new (array: number[]): Uint8Array; new (buffer: ArrayBuffer, byteOffset?: number, length?: number): Uint8Array; prototype: Uint8Array; BYTES_PER_ELEMENT: number; of(...items: number[]): Uint8Array; from(arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Uint8Array; } +>Uint8Array : Uint8ArrayConstructor >of : (...items: number[]) => Uint8Array typedArrays[2] = Int16Array.of(1,2,3,4); @@ -486,7 +486,7 @@ function CreateTypedArraysOf2() { >typedArrays : any[] >Int16Array.of(1,2,3,4) : Int16Array >Int16Array.of : (...items: number[]) => Int16Array ->Int16Array : { new (length: number): Int16Array; new (array: Int16Array): Int16Array; new (array: number[]): Int16Array; new (buffer: ArrayBuffer, byteOffset?: number, length?: number): Int16Array; prototype: Int16Array; BYTES_PER_ELEMENT: number; of(...items: number[]): Int16Array; from(arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Int16Array; } +>Int16Array : Int16ArrayConstructor >of : (...items: number[]) => Int16Array typedArrays[3] = Uint16Array.of(1,2,3,4); @@ -495,7 +495,7 @@ function CreateTypedArraysOf2() { >typedArrays : any[] >Uint16Array.of(1,2,3,4) : Uint16Array >Uint16Array.of : (...items: number[]) => Uint16Array ->Uint16Array : { new (length: number): Uint16Array; new (array: Uint16Array): Uint16Array; new (array: number[]): Uint16Array; new (buffer: ArrayBuffer, byteOffset?: number, length?: number): Uint16Array; prototype: Uint16Array; BYTES_PER_ELEMENT: number; of(...items: number[]): Uint16Array; from(arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Uint16Array; } +>Uint16Array : Uint16ArrayConstructor >of : (...items: number[]) => Uint16Array typedArrays[4] = Int32Array.of(1,2,3,4); @@ -504,7 +504,7 @@ function CreateTypedArraysOf2() { >typedArrays : any[] >Int32Array.of(1,2,3,4) : Int32Array >Int32Array.of : (...items: number[]) => Int32Array ->Int32Array : { new (length: number): Int32Array; new (array: Int32Array): Int32Array; new (array: number[]): Int32Array; new (buffer: ArrayBuffer, byteOffset?: number, length?: number): Int32Array; prototype: Int32Array; BYTES_PER_ELEMENT: number; of(...items: number[]): Int32Array; from(arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Int32Array; } +>Int32Array : Int32ArrayConstructor >of : (...items: number[]) => Int32Array typedArrays[5] = Uint32Array.of(1,2,3,4); @@ -513,7 +513,7 @@ function CreateTypedArraysOf2() { >typedArrays : any[] >Uint32Array.of(1,2,3,4) : Uint32Array >Uint32Array.of : (...items: number[]) => Uint32Array ->Uint32Array : { new (length: number): Uint32Array; new (array: Uint32Array): Uint32Array; new (array: number[]): Uint32Array; new (buffer: ArrayBuffer, byteOffset?: number, length?: number): Uint32Array; prototype: Uint32Array; BYTES_PER_ELEMENT: number; of(...items: number[]): Uint32Array; from(arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Uint32Array; } +>Uint32Array : Uint32ArrayConstructor >of : (...items: number[]) => Uint32Array typedArrays[6] = Float32Array.of(1,2,3,4); @@ -522,7 +522,7 @@ function CreateTypedArraysOf2() { >typedArrays : any[] >Float32Array.of(1,2,3,4) : Float32Array >Float32Array.of : (...items: number[]) => Float32Array ->Float32Array : { new (length: number): Float32Array; new (array: Float32Array): Float32Array; new (array: number[]): Float32Array; new (buffer: ArrayBuffer, byteOffset?: number, length?: number): Float32Array; prototype: Float32Array; BYTES_PER_ELEMENT: number; of(...items: number[]): Float32Array; from(arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Float32Array; } +>Float32Array : Float32ArrayConstructor >of : (...items: number[]) => Float32Array typedArrays[7] = Float64Array.of(1,2,3,4); @@ -531,7 +531,7 @@ function CreateTypedArraysOf2() { >typedArrays : any[] >Float64Array.of(1,2,3,4) : Float64Array >Float64Array.of : (...items: number[]) => Float64Array ->Float64Array : { new (length: number): Float64Array; new (array: Float64Array): Float64Array; new (array: number[]): Float64Array; new (buffer: ArrayBuffer, byteOffset?: number, length?: number): Float64Array; prototype: Float64Array; BYTES_PER_ELEMENT: number; of(...items: number[]): Float64Array; from(arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Float64Array; } +>Float64Array : Float64ArrayConstructor >of : (...items: number[]) => Float64Array typedArrays[8] = Uint8ClampedArray.of(1,2,3,4); @@ -540,7 +540,7 @@ function CreateTypedArraysOf2() { >typedArrays : any[] >Uint8ClampedArray.of(1,2,3,4) : Uint8ClampedArray >Uint8ClampedArray.of : (...items: number[]) => Uint8ClampedArray ->Uint8ClampedArray : { new (length: number): Uint8ClampedArray; new (array: Uint8ClampedArray): Uint8ClampedArray; new (array: number[]): Uint8ClampedArray; new (buffer: ArrayBuffer, byteOffset?: number, length?: number): Uint8ClampedArray; prototype: Uint8ClampedArray; BYTES_PER_ELEMENT: number; of(...items: number[]): Uint8ClampedArray; from(arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Uint8ClampedArray; } +>Uint8ClampedArray : Uint8ClampedArrayConstructor >of : (...items: number[]) => Uint8ClampedArray return typedArrays; @@ -565,7 +565,7 @@ function CreateTypedArraysFromMapFn(obj:ArrayLike, mapFn: (n:number, v:n >typedArrays : any[] >Int8Array.from(obj, mapFn) : Int8Array >Int8Array.from : (arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any) => Int8Array ->Int8Array : { new (length: number): Int8Array; new (array: Int8Array): Int8Array; new (array: number[]): Int8Array; new (buffer: ArrayBuffer, byteOffset?: number, length?: number): Int8Array; prototype: Int8Array; BYTES_PER_ELEMENT: number; of(...items: number[]): Int8Array; from(arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Int8Array; } +>Int8Array : Int8ArrayConstructor >from : (arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any) => Int8Array >obj : ArrayLike >mapFn : (n: number, v: number) => number @@ -576,7 +576,7 @@ function CreateTypedArraysFromMapFn(obj:ArrayLike, mapFn: (n:number, v:n >typedArrays : any[] >Uint8Array.from(obj, mapFn) : Uint8Array >Uint8Array.from : (arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any) => Uint8Array ->Uint8Array : { new (length: number): Uint8Array; new (array: Uint8Array): Uint8Array; new (array: number[]): Uint8Array; new (buffer: ArrayBuffer, byteOffset?: number, length?: number): Uint8Array; prototype: Uint8Array; BYTES_PER_ELEMENT: number; of(...items: number[]): Uint8Array; from(arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Uint8Array; } +>Uint8Array : Uint8ArrayConstructor >from : (arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any) => Uint8Array >obj : ArrayLike >mapFn : (n: number, v: number) => number @@ -587,7 +587,7 @@ function CreateTypedArraysFromMapFn(obj:ArrayLike, mapFn: (n:number, v:n >typedArrays : any[] >Int16Array.from(obj, mapFn) : Int16Array >Int16Array.from : (arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any) => Int16Array ->Int16Array : { new (length: number): Int16Array; new (array: Int16Array): Int16Array; new (array: number[]): Int16Array; new (buffer: ArrayBuffer, byteOffset?: number, length?: number): Int16Array; prototype: Int16Array; BYTES_PER_ELEMENT: number; of(...items: number[]): Int16Array; from(arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Int16Array; } +>Int16Array : Int16ArrayConstructor >from : (arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any) => Int16Array >obj : ArrayLike >mapFn : (n: number, v: number) => number @@ -598,7 +598,7 @@ function CreateTypedArraysFromMapFn(obj:ArrayLike, mapFn: (n:number, v:n >typedArrays : any[] >Uint16Array.from(obj, mapFn) : Uint16Array >Uint16Array.from : (arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any) => Uint16Array ->Uint16Array : { new (length: number): Uint16Array; new (array: Uint16Array): Uint16Array; new (array: number[]): Uint16Array; new (buffer: ArrayBuffer, byteOffset?: number, length?: number): Uint16Array; prototype: Uint16Array; BYTES_PER_ELEMENT: number; of(...items: number[]): Uint16Array; from(arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Uint16Array; } +>Uint16Array : Uint16ArrayConstructor >from : (arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any) => Uint16Array >obj : ArrayLike >mapFn : (n: number, v: number) => number @@ -609,7 +609,7 @@ function CreateTypedArraysFromMapFn(obj:ArrayLike, mapFn: (n:number, v:n >typedArrays : any[] >Int32Array.from(obj, mapFn) : Int32Array >Int32Array.from : (arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any) => Int32Array ->Int32Array : { new (length: number): Int32Array; new (array: Int32Array): Int32Array; new (array: number[]): Int32Array; new (buffer: ArrayBuffer, byteOffset?: number, length?: number): Int32Array; prototype: Int32Array; BYTES_PER_ELEMENT: number; of(...items: number[]): Int32Array; from(arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Int32Array; } +>Int32Array : Int32ArrayConstructor >from : (arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any) => Int32Array >obj : ArrayLike >mapFn : (n: number, v: number) => number @@ -620,7 +620,7 @@ function CreateTypedArraysFromMapFn(obj:ArrayLike, mapFn: (n:number, v:n >typedArrays : any[] >Uint32Array.from(obj, mapFn) : Uint32Array >Uint32Array.from : (arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any) => Uint32Array ->Uint32Array : { new (length: number): Uint32Array; new (array: Uint32Array): Uint32Array; new (array: number[]): Uint32Array; new (buffer: ArrayBuffer, byteOffset?: number, length?: number): Uint32Array; prototype: Uint32Array; BYTES_PER_ELEMENT: number; of(...items: number[]): Uint32Array; from(arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Uint32Array; } +>Uint32Array : Uint32ArrayConstructor >from : (arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any) => Uint32Array >obj : ArrayLike >mapFn : (n: number, v: number) => number @@ -631,7 +631,7 @@ function CreateTypedArraysFromMapFn(obj:ArrayLike, mapFn: (n:number, v:n >typedArrays : any[] >Float32Array.from(obj, mapFn) : Float32Array >Float32Array.from : (arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any) => Float32Array ->Float32Array : { new (length: number): Float32Array; new (array: Float32Array): Float32Array; new (array: number[]): Float32Array; new (buffer: ArrayBuffer, byteOffset?: number, length?: number): Float32Array; prototype: Float32Array; BYTES_PER_ELEMENT: number; of(...items: number[]): Float32Array; from(arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Float32Array; } +>Float32Array : Float32ArrayConstructor >from : (arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any) => Float32Array >obj : ArrayLike >mapFn : (n: number, v: number) => number @@ -642,7 +642,7 @@ function CreateTypedArraysFromMapFn(obj:ArrayLike, mapFn: (n:number, v:n >typedArrays : any[] >Float64Array.from(obj, mapFn) : Float64Array >Float64Array.from : (arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any) => Float64Array ->Float64Array : { new (length: number): Float64Array; new (array: Float64Array): Float64Array; new (array: number[]): Float64Array; new (buffer: ArrayBuffer, byteOffset?: number, length?: number): Float64Array; prototype: Float64Array; BYTES_PER_ELEMENT: number; of(...items: number[]): Float64Array; from(arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Float64Array; } +>Float64Array : Float64ArrayConstructor >from : (arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any) => Float64Array >obj : ArrayLike >mapFn : (n: number, v: number) => number @@ -653,7 +653,7 @@ function CreateTypedArraysFromMapFn(obj:ArrayLike, mapFn: (n:number, v:n >typedArrays : any[] >Uint8ClampedArray.from(obj, mapFn) : Uint8ClampedArray >Uint8ClampedArray.from : (arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any) => Uint8ClampedArray ->Uint8ClampedArray : { new (length: number): Uint8ClampedArray; new (array: Uint8ClampedArray): Uint8ClampedArray; new (array: number[]): Uint8ClampedArray; new (buffer: ArrayBuffer, byteOffset?: number, length?: number): Uint8ClampedArray; prototype: Uint8ClampedArray; BYTES_PER_ELEMENT: number; of(...items: number[]): Uint8ClampedArray; from(arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Uint8ClampedArray; } +>Uint8ClampedArray : Uint8ClampedArrayConstructor >from : (arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any) => Uint8ClampedArray >obj : ArrayLike >mapFn : (n: number, v: number) => number @@ -681,7 +681,7 @@ function CreateTypedArraysFromThisObj(obj:ArrayLike, mapFn: (n:number, v >typedArrays : any[] >Int8Array.from(obj, mapFn, thisArg) : Int8Array >Int8Array.from : (arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any) => Int8Array ->Int8Array : { new (length: number): Int8Array; new (array: Int8Array): Int8Array; new (array: number[]): Int8Array; new (buffer: ArrayBuffer, byteOffset?: number, length?: number): Int8Array; prototype: Int8Array; BYTES_PER_ELEMENT: number; of(...items: number[]): Int8Array; from(arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Int8Array; } +>Int8Array : Int8ArrayConstructor >from : (arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any) => Int8Array >obj : ArrayLike >mapFn : (n: number, v: number) => number @@ -693,7 +693,7 @@ function CreateTypedArraysFromThisObj(obj:ArrayLike, mapFn: (n:number, v >typedArrays : any[] >Uint8Array.from(obj, mapFn, thisArg) : Uint8Array >Uint8Array.from : (arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any) => Uint8Array ->Uint8Array : { new (length: number): Uint8Array; new (array: Uint8Array): Uint8Array; new (array: number[]): Uint8Array; new (buffer: ArrayBuffer, byteOffset?: number, length?: number): Uint8Array; prototype: Uint8Array; BYTES_PER_ELEMENT: number; of(...items: number[]): Uint8Array; from(arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Uint8Array; } +>Uint8Array : Uint8ArrayConstructor >from : (arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any) => Uint8Array >obj : ArrayLike >mapFn : (n: number, v: number) => number @@ -705,7 +705,7 @@ function CreateTypedArraysFromThisObj(obj:ArrayLike, mapFn: (n:number, v >typedArrays : any[] >Int16Array.from(obj, mapFn, thisArg) : Int16Array >Int16Array.from : (arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any) => Int16Array ->Int16Array : { new (length: number): Int16Array; new (array: Int16Array): Int16Array; new (array: number[]): Int16Array; new (buffer: ArrayBuffer, byteOffset?: number, length?: number): Int16Array; prototype: Int16Array; BYTES_PER_ELEMENT: number; of(...items: number[]): Int16Array; from(arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Int16Array; } +>Int16Array : Int16ArrayConstructor >from : (arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any) => Int16Array >obj : ArrayLike >mapFn : (n: number, v: number) => number @@ -717,7 +717,7 @@ function CreateTypedArraysFromThisObj(obj:ArrayLike, mapFn: (n:number, v >typedArrays : any[] >Uint16Array.from(obj, mapFn, thisArg) : Uint16Array >Uint16Array.from : (arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any) => Uint16Array ->Uint16Array : { new (length: number): Uint16Array; new (array: Uint16Array): Uint16Array; new (array: number[]): Uint16Array; new (buffer: ArrayBuffer, byteOffset?: number, length?: number): Uint16Array; prototype: Uint16Array; BYTES_PER_ELEMENT: number; of(...items: number[]): Uint16Array; from(arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Uint16Array; } +>Uint16Array : Uint16ArrayConstructor >from : (arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any) => Uint16Array >obj : ArrayLike >mapFn : (n: number, v: number) => number @@ -729,7 +729,7 @@ function CreateTypedArraysFromThisObj(obj:ArrayLike, mapFn: (n:number, v >typedArrays : any[] >Int32Array.from(obj, mapFn, thisArg) : Int32Array >Int32Array.from : (arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any) => Int32Array ->Int32Array : { new (length: number): Int32Array; new (array: Int32Array): Int32Array; new (array: number[]): Int32Array; new (buffer: ArrayBuffer, byteOffset?: number, length?: number): Int32Array; prototype: Int32Array; BYTES_PER_ELEMENT: number; of(...items: number[]): Int32Array; from(arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Int32Array; } +>Int32Array : Int32ArrayConstructor >from : (arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any) => Int32Array >obj : ArrayLike >mapFn : (n: number, v: number) => number @@ -741,7 +741,7 @@ function CreateTypedArraysFromThisObj(obj:ArrayLike, mapFn: (n:number, v >typedArrays : any[] >Uint32Array.from(obj, mapFn, thisArg) : Uint32Array >Uint32Array.from : (arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any) => Uint32Array ->Uint32Array : { new (length: number): Uint32Array; new (array: Uint32Array): Uint32Array; new (array: number[]): Uint32Array; new (buffer: ArrayBuffer, byteOffset?: number, length?: number): Uint32Array; prototype: Uint32Array; BYTES_PER_ELEMENT: number; of(...items: number[]): Uint32Array; from(arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Uint32Array; } +>Uint32Array : Uint32ArrayConstructor >from : (arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any) => Uint32Array >obj : ArrayLike >mapFn : (n: number, v: number) => number @@ -753,7 +753,7 @@ function CreateTypedArraysFromThisObj(obj:ArrayLike, mapFn: (n:number, v >typedArrays : any[] >Float32Array.from(obj, mapFn, thisArg) : Float32Array >Float32Array.from : (arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any) => Float32Array ->Float32Array : { new (length: number): Float32Array; new (array: Float32Array): Float32Array; new (array: number[]): Float32Array; new (buffer: ArrayBuffer, byteOffset?: number, length?: number): Float32Array; prototype: Float32Array; BYTES_PER_ELEMENT: number; of(...items: number[]): Float32Array; from(arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Float32Array; } +>Float32Array : Float32ArrayConstructor >from : (arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any) => Float32Array >obj : ArrayLike >mapFn : (n: number, v: number) => number @@ -765,7 +765,7 @@ function CreateTypedArraysFromThisObj(obj:ArrayLike, mapFn: (n:number, v >typedArrays : any[] >Float64Array.from(obj, mapFn, thisArg) : Float64Array >Float64Array.from : (arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any) => Float64Array ->Float64Array : { new (length: number): Float64Array; new (array: Float64Array): Float64Array; new (array: number[]): Float64Array; new (buffer: ArrayBuffer, byteOffset?: number, length?: number): Float64Array; prototype: Float64Array; BYTES_PER_ELEMENT: number; of(...items: number[]): Float64Array; from(arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Float64Array; } +>Float64Array : Float64ArrayConstructor >from : (arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any) => Float64Array >obj : ArrayLike >mapFn : (n: number, v: number) => number @@ -777,7 +777,7 @@ function CreateTypedArraysFromThisObj(obj:ArrayLike, mapFn: (n:number, v >typedArrays : any[] >Uint8ClampedArray.from(obj, mapFn, thisArg) : Uint8ClampedArray >Uint8ClampedArray.from : (arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any) => Uint8ClampedArray ->Uint8ClampedArray : { new (length: number): Uint8ClampedArray; new (array: Uint8ClampedArray): Uint8ClampedArray; new (array: number[]): Uint8ClampedArray; new (buffer: ArrayBuffer, byteOffset?: number, length?: number): Uint8ClampedArray; prototype: Uint8ClampedArray; BYTES_PER_ELEMENT: number; of(...items: number[]): Uint8ClampedArray; from(arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Uint8ClampedArray; } +>Uint8ClampedArray : Uint8ClampedArrayConstructor >from : (arrayLike: ArrayLike | Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any) => Uint8ClampedArray >obj : ArrayLike >mapFn : (n: number, v: number) => number From ff2e4fa8a74f900ea8a70238302cb93942038a17 Mon Sep 17 00:00:00 2001 From: Mohamed Hegazy Date: Mon, 17 Nov 2014 13:07:17 -0800 Subject: [PATCH 048/195] remove extra call to getSourceFile --- src/services/services.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/services/services.ts b/src/services/services.ts index 9bc965597b9..25e4e9c8862 100644 --- a/src/services/services.ts +++ b/src/services/services.ts @@ -2334,7 +2334,7 @@ module ts { filename = normalizeSlashes(filename); - return program.getDiagnostics(getSourceFile(filename).getSourceFile()); + return program.getDiagnostics(getSourceFile(filename)); } /** From be3c544e9dab01c575a9475e0e76d6e421adbc3b Mon Sep 17 00:00:00 2001 From: Daniel Rosenwasser Date: Thu, 20 Nov 2014 12:29:47 -0800 Subject: [PATCH 049/195] Catch modifiers in sourcefiles. --- src/services/services.ts | 41 ++++++++++++++++++++++------------------ 1 file changed, 23 insertions(+), 18 deletions(-) diff --git a/src/services/services.ts b/src/services/services.ts index 5e5c8b7839e..3dac6bbd5d7 100644 --- a/src/services/services.ts +++ b/src/services/services.ts @@ -3838,27 +3838,32 @@ module ts { var modifierFlag: NodeFlags = getFlagFromModifier(modifier); var nodes: Node[]; - if (container.kind === SyntaxKind.ModuleBlock) { - nodes = (container).statements; - } - else if (container.kind === SyntaxKind.ClassDeclaration) { - nodes = (container).members; + switch (container.kind) { + case SyntaxKind.ModuleBlock: + case SyntaxKind.SourceFile: + nodes = (container).statements; + break; + case SyntaxKind.ClassDeclaration: + nodes = (container).members; - // If we're an accessibility modifier, we should search the constructor's parameter list - // as well (i.e. don't look for 'static' parameters). - if (modifierFlag & NodeFlags.AccessibilityModifier) { - var constructor = forEach((container).members, member => { - return member.kind === SyntaxKind.Constructor && member; - }); + // If we're an accessibility modifier, we should search the constructor's parameter list + // as well (i.e. don't look for 'static' parameters). + if (modifierFlag & NodeFlags.AccessibilityModifier) { + var constructor = forEach((container).members, member => { + return member.kind === SyntaxKind.Constructor && member; + }); - if (constructor) { - nodes = nodes.concat(constructor.parameters); + if (constructor) { + nodes = nodes.concat(constructor.parameters); + } } - } - } - else if (container.kind === SyntaxKind.Constructor) { - nodes = ((container).parameters).concat( - (container.parent).members); + break; + case SyntaxKind.Constructor: + nodes = ((container).parameters).concat( + (container.parent).members); + break; + default: + Debug.fail("Invalid container kind.") } forEach(nodes, node => { From 62ec1fc0bdc9061add975aba9bd96f2abdf4f33b Mon Sep 17 00:00:00 2001 From: Daniel Rosenwasser Date: Thu, 20 Nov 2014 12:30:10 -0800 Subject: [PATCH 050/195] Added more tests. --- .../cases/fourslash/getOccurrencesDeclare3.ts | 72 +++++++++++++++++++ .../cases/fourslash/getOccurrencesExport3.ts | 72 +++++++++++++++++++ .../getOccurrencesModifiersNegatives1.ts | 41 +++++++++++ 3 files changed, 185 insertions(+) create mode 100644 tests/cases/fourslash/getOccurrencesDeclare3.ts create mode 100644 tests/cases/fourslash/getOccurrencesExport3.ts create mode 100644 tests/cases/fourslash/getOccurrencesModifiersNegatives1.ts diff --git a/tests/cases/fourslash/getOccurrencesDeclare3.ts b/tests/cases/fourslash/getOccurrencesDeclare3.ts new file mode 100644 index 00000000000..048dd8efeac --- /dev/null +++ b/tests/cases/fourslash/getOccurrencesDeclare3.ts @@ -0,0 +1,72 @@ +/// + +//// +////[|declare|] var x; +////export [|declare|] var y, z; +//// +////module m { +//// export class C1 { +//// public pub1; +//// public pub2; +//// private priv1; +//// private priv2; +//// protected prot1; +//// protected prot2; +//// +//// public public; +//// private private; +//// protected protected; +//// +//// public constructor(public a, private b, protected c, public d, private e, protected f) { +//// this.public = 10; +//// this.private = 10; +//// this.protected = 10; +//// } +//// +//// public get x() { return 10; } +//// public set x(value) { } +//// +//// public static statPub; +//// private static statPriv; +//// protected static statProt; +//// } +//// +//// export interface I1 { +//// } +//// +//// export declare module ma.m1.m2.m3 { +//// interface I2 { +//// } +//// } +//// +//// export module mb.m1.m2.m3 { +//// declare var foo; +//// +//// export class C2 { +//// public pub1; +//// private priv1; +//// protected prot1; +//// +//// protected constructor(public public, protected protected, private private) { +//// public = private = protected; +//// } +//// } +//// } +//// +//// declare var ambientThing: number; +//// export var exportedThing = 10; +//// declare function foo(): string; +////} +//// +////[|declare|] export var v1, v2; +////[|declare|] module dm { } +////export class EC { } + +test.ranges().forEach(r => { + goTo.position(r.start); + verify.occurrencesAtPositionCount(test.ranges().length); + + test.ranges().forEach(range => { + verify.occurrencesAtPositionContains(range, false); + }); +}); diff --git a/tests/cases/fourslash/getOccurrencesExport3.ts b/tests/cases/fourslash/getOccurrencesExport3.ts new file mode 100644 index 00000000000..009b891992f --- /dev/null +++ b/tests/cases/fourslash/getOccurrencesExport3.ts @@ -0,0 +1,72 @@ +/// + +//// +////declare var x; +////[|export|] declare var y, z; +//// +////module m { +//// export class C1 { +//// public pub1; +//// public pub2; +//// private priv1; +//// private priv2; +//// protected prot1; +//// protected prot2; +//// +//// public public; +//// private private; +//// protected protected; +//// +//// public constructor(public a, private b, protected c, public d, private e, protected f) { +//// this.public = 10; +//// this.private = 10; +//// this.protected = 10; +//// } +//// +//// public get x() { return 10; } +//// public set x(value) { } +//// +//// public static statPub; +//// private static statPriv; +//// protected static statProt; +//// } +//// +//// export interface I1 { +//// } +//// +//// export declare module ma.m1.m2.m3 { +//// interface I2 { +//// } +//// } +//// +//// export module mb.m1.m2.m3 { +//// declare var foo; +//// +//// export class C2 { +//// public pub1; +//// private priv1; +//// protected prot1; +//// +//// protected constructor(public public, protected protected, private private) { +//// public = private = protected; +//// } +//// } +//// } +//// +//// declare var ambientThing: number; +//// export var exportedThing = 10; +//// declare function foo(): string; +////} +//// +////declare [|export|] var v1, v2; +////declare module dm { } +////[|export|] class EC { } + +test.ranges().forEach(r => { + goTo.position(r.start); + verify.occurrencesAtPositionCount(test.ranges().length); + + test.ranges().forEach(range => { + verify.occurrencesAtPositionContains(range, false); + }); +}); diff --git a/tests/cases/fourslash/getOccurrencesModifiersNegatives1.ts b/tests/cases/fourslash/getOccurrencesModifiersNegatives1.ts new file mode 100644 index 00000000000..ac74fc2192f --- /dev/null +++ b/tests/cases/fourslash/getOccurrencesModifiersNegatives1.ts @@ -0,0 +1,41 @@ +/// + +////class C { +//// [|export|] foo; +//// [|declare|] bar; +//// [|export|] [|declare|] foobar; +//// [|declare|] [|export|] barfoo; +//// +//// constructor([|export|] conFoo, +//// [|declare|] conBar, +//// [|export|] [|declare|] conFooBar, +//// [|declare|] [|export|] conBarFoo, +//// [|static|] sue, +//// [|static|] [|export|] [|declare|] sueFooBar, +//// [|static|] [|declare|] [|export|] sueBarFoo, +//// [|declare|] [|static|] [|export|] barSueFoo) { +//// } +////} +//// +////module m { +//// [|static|] a; +//// [|public|] b; +//// [|private|] c; +//// [|protected|] d; +//// [|static|] [|public|] [|private|] [|protected|] e; +//// [|public|] [|static|] [|protected|] [|private|] f; +//// [|protected|] [|static|] [|public|] g; +////} +////[|static|] a; +////[|public|] b; +////[|private|] c; +////[|protected|] d; +////[|static|] [|public|] [|private|] [|protected|] e; +////[|public|] [|static|] [|protected|] [|private|] f; +////[|protected|] [|static|] [|public|] g; + + +test.ranges().forEach(r => { + goTo.position(r.start); + verify.occurrencesAtPositionCount(0); +}); From 1fa08ff132d5de665f0fa1b132933fe30ff9812c Mon Sep 17 00:00:00 2001 From: Daniel Rosenwasser Date: Thu, 20 Nov 2014 12:41:54 -0800 Subject: [PATCH 051/195] Fixed comment. --- src/services/services.ts | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/services/services.ts b/src/services/services.ts index 3dac6bbd5d7..7207ee42b1b 100644 --- a/src/services/services.ts +++ b/src/services/services.ts @@ -3843,11 +3843,15 @@ module ts { case SyntaxKind.SourceFile: nodes = (container).statements; break; + case SyntaxKind.Constructor: + nodes = ((container).parameters).concat( + (container.parent).members); + break; case SyntaxKind.ClassDeclaration: nodes = (container).members; - // If we're an accessibility modifier, we should search the constructor's parameter list - // as well (i.e. don't look for 'static' parameters). + // If we're an accessibility modifier, we're in an instance member and should search + // the constructor's parameter list for instance members as well. if (modifierFlag & NodeFlags.AccessibilityModifier) { var constructor = forEach((container).members, member => { return member.kind === SyntaxKind.Constructor && member; @@ -3858,10 +3862,6 @@ module ts { } } break; - case SyntaxKind.Constructor: - nodes = ((container).parameters).concat( - (container.parent).members); - break; default: Debug.fail("Invalid container kind.") } From ebf4ed8fa9e16e5edf1a8c20503d7b32e8faabbe Mon Sep 17 00:00:00 2001 From: Mohamed Hegazy Date: Thu, 20 Nov 2014 13:25:17 -0800 Subject: [PATCH 052/195] Respond to code review comments --- src/lib/es6.d.ts | 91 +++++++++++++++++++++++++++++++----------------- 1 file changed, 60 insertions(+), 31 deletions(-) diff --git a/src/lib/es6.d.ts b/src/lib/es6.d.ts index 56c81970a61..81d52b7d434 100644 --- a/src/lib/es6.d.ts +++ b/src/lib/es6.d.ts @@ -11,6 +11,11 @@ interface Symbol { } interface SymbolConstructor { + /** + * A reference to the prototype. + */ + prototype: Symbol; + /** * Returns a new unique Symbol value. * @param description Description of the new Symbol object. @@ -35,12 +40,12 @@ interface SymbolConstructor { /** * A method that determines if a constructor object recognizes an object as one of the - * constructor’s instances.Called by the semantics of the instanceof operator. + * constructor’s instances. Called by the semantics of the instanceof operator. */ hasInstance: Symbol; /** - * A Boolean value that if true indicates that an object should be flatten to its array elements + * A Boolean value that if true indicates that an object should flatten to its array elements * by Array.prototype.concat. */ isConcatSpreadable: Symbol; @@ -235,12 +240,12 @@ interface Array { /** * Returns an list of keys in the array */ - keys(): number[]; + keys(): Iterator; /** * Returns an list of values in the array */ - values(): T[]; + values(): Iterator; /** * Returns the value of the first element in the array where predicate is true, and undefined @@ -438,10 +443,11 @@ interface StringConstructor { interface IteratorResult { done: boolean; - value: T; + value?: T; } interface Iterator { + //[Symbol.iterator](): Iterator; next(): IteratorResult; } @@ -449,10 +455,25 @@ interface Iterable { //[Symbol.iterator](): Iterator; } -// Generators +interface GeneratorFunction extends Function { + +} + +interface GeneratorFunctionConstructor { + /** + * Creates a new Generator function. + * @param args A list of arguments the function accepts. + */ + new (...args: string[]): GeneratorFunction; + (...args: string[]): GeneratorFunction; + prototype: GeneratorFunction; +} +declare var GeneratorFunction: GeneratorFunctionConstructor; + interface Generator extends Iterator { next(value?: any): IteratorResult; - throw(exception: any); + throw (exception: any); + return (value: T); // [Symbol.toStringTag]: string; } @@ -624,10 +645,10 @@ interface Map { forEach(callbackfn: (value: V, index: K, map: Map) => void, thisArg?: any): void; get(key: K): V; has(key: K): boolean; - keys(): K[]; + keys(): Iterator; set(key: K, value?: V): Map; size: number; - values(): V[]; + values(): Iterator; // [Symbol.iterator]():Iterator<[K,V]>; // [Symbol.toStringTag]: string; } @@ -660,9 +681,9 @@ interface Set { entries(): Iterator<[T, T]>; forEach(callbackfn: (value: T, index: T, set: Set) => void, thisArg?: any): void; has(value: T): boolean; - keys(): T[]; + keys(): Iterator; size: number; - values(): T[]; + values(): Iterator; // [Symbol.iterator]():Iterator; // [Symbol.toStringTag]: string; } @@ -972,7 +993,7 @@ interface Int8Array { /** * Returns an list of keys in the array */ - keys(): number[]; + keys(): Iterator; /** * Returns the index of the last occurrence of a value in an array. @@ -1109,7 +1130,7 @@ interface Int8Array { /** * Returns an list of values in the array */ - values(): Int8Array; + values(): Iterator; [index: number]: number; // [Symbol.iterator] (): Iterator; @@ -1262,7 +1283,7 @@ interface Uint8Array { /** * Returns an list of keys in the array */ - keys(): number[]; + keys(): Iterator; /** * Returns the index of the last occurrence of a value in an array. @@ -1399,7 +1420,7 @@ interface Uint8Array { /** * Returns an list of values in the array */ - values(): Uint8Array; + values(): Iterator; [index: number]: number; // [Symbol.iterator] (): Iterator; @@ -1552,7 +1573,7 @@ interface Uint8ClampedArray { /** * Returns an list of keys in the array */ - keys(): number[]; + keys(): Iterator; /** * Returns the index of the last occurrence of a value in an array. @@ -1689,7 +1710,7 @@ interface Uint8ClampedArray { /** * Returns an list of values in the array */ - values(): Uint8ClampedArray; + values(): Iterator; [index: number]: number; // [Symbol.iterator] (): Iterator; @@ -1842,7 +1863,7 @@ interface Int16Array { /** * Returns an list of keys in the array */ - keys(): number[]; + keys(): Iterator; /** * Returns the index of the last occurrence of a value in an array. @@ -1979,7 +2000,7 @@ interface Int16Array { /** * Returns an list of values in the array */ - values(): Int16Array; + values(): Iterator; [index: number]: number; // [Symbol.iterator] (): Iterator; @@ -2132,7 +2153,7 @@ interface Uint16Array { /** * Returns an list of keys in the array */ - keys(): number[]; + keys(): Iterator; /** * Returns the index of the last occurrence of a value in an array. @@ -2269,7 +2290,7 @@ interface Uint16Array { /** * Returns an list of values in the array */ - values(): Uint16Array; + values(): Iterator; [index: number]: number; // [Symbol.iterator] (): Iterator; @@ -2422,7 +2443,7 @@ interface Int32Array { /** * Returns an list of keys in the array */ - keys(): number[]; + keys(): Iterator; /** * Returns the index of the last occurrence of a value in an array. @@ -2559,7 +2580,7 @@ interface Int32Array { /** * Returns an list of values in the array */ - values(): Int32Array; + values(): Iterator; [index: number]: number; // [Symbol.iterator] (): Iterator; @@ -2712,7 +2733,7 @@ interface Uint32Array { /** * Returns an list of keys in the array */ - keys(): number[]; + keys(): Iterator; /** * Returns the index of the last occurrence of a value in an array. @@ -2849,7 +2870,7 @@ interface Uint32Array { /** * Returns an list of values in the array */ - values(): Uint32Array; + values(): Iterator; [index: number]: number; // [Symbol.iterator] (): Iterator; @@ -3002,7 +3023,7 @@ interface Float32Array { /** * Returns an list of keys in the array */ - keys(): number[]; + keys(): Iterator; /** * Returns the index of the last occurrence of a value in an array. @@ -3139,7 +3160,7 @@ interface Float32Array { /** * Returns an list of values in the array */ - values(): Float32Array; + values(): Iterator; [index: number]: number; // [Symbol.iterator] (): Iterator; @@ -3292,7 +3313,7 @@ interface Float64Array { /** * Returns an list of keys in the array */ - keys(): number[]; + keys(): Iterator; /** * Returns the index of the last occurrence of a value in an array. @@ -3429,7 +3450,7 @@ interface Float64Array { /** * Returns an list of values in the array */ - values(): Float64Array; + values(): Iterator; [index: number]: number; // [Symbol.iterator] (): Iterator; @@ -3480,10 +3501,11 @@ interface ProxyHandler { construct? (target: T, thisArg: any, argArray?: any): any; } -declare var Proxy: { +interface ProxyConstructor { revocable(target: T, handler: ProxyHandler): { proxy: T; revoke: () => void; }; new (target: T, handeler: ProxyHandler): T -}; +} +declare var Proxy: ProxyConstructor; declare var Reflect: { apply(target: Function, thisArgument: any, argumentsList: ArrayLike): any; @@ -3524,6 +3546,11 @@ interface Promise { } interface PromiseConstructor { + /** + * A reference to the prototype. + */ + prototype: Promise; + /** * Creates a new Promise. * @param init A callback used to initialize the promise. This callback is passed two arguments: @@ -3532,6 +3559,8 @@ interface PromiseConstructor { */ new (init: (resolve: (value?: T | Promise) => void, reject: (reason?: any) => void) => void): Promise; + (init: (resolve: (value?: T | Promise) => void, reject: (reason?: any) => void) => void): Promise; + /** * Creates a Promise that is resolved with an array of results when all of the provided Promises * resolve, or rejected when any Promise is rejected. From 670a8c0a76d077d609f0a7951c4b823ac4f04155 Mon Sep 17 00:00:00 2001 From: Yui T Date: Fri, 21 Nov 2014 18:09:50 -0800 Subject: [PATCH 053/195] Binary and octal integer literal support --- .../diagnosticInformationMap.generated.ts | 4 +- src/compiler/diagnosticMessages.json | 11 ++++- src/compiler/emitter.ts | 6 ++- src/compiler/scanner.ts | 41 +++++++++++++++++++ 4 files changed, 58 insertions(+), 4 deletions(-) diff --git a/src/compiler/diagnosticInformationMap.generated.ts b/src/compiler/diagnosticInformationMap.generated.ts index a87b1f8cc28..13587df29e0 100644 --- a/src/compiler/diagnosticInformationMap.generated.ts +++ b/src/compiler/diagnosticInformationMap.generated.ts @@ -124,7 +124,9 @@ module ts { Tagged_templates_are_only_available_when_targeting_ECMAScript_6_and_higher: { code: 1159, category: DiagnosticCategory.Error, key: "Tagged templates are only available when targeting ECMAScript 6 and higher." }, Unterminated_template_literal: { code: 1160, category: DiagnosticCategory.Error, key: "Unterminated template literal." }, Unterminated_regular_expression_literal: { code: 1161, category: DiagnosticCategory.Error, key: "Unterminated regular expression literal." }, - An_object_member_cannot_be_declared_optional: { code: 1160, category: DiagnosticCategory.Error, key: "An object member cannot be declared optional." }, + An_object_member_cannot_be_declared_optional: { code: 1162, category: DiagnosticCategory.Error, key: "An object member cannot be declared optional." }, + Binary_digits_expected: { code: 1163, category: DiagnosticCategory.Error, key: "Binary digits expected." }, + Octal_digits_expected: { code: 1164, category: DiagnosticCategory.Error, key: "Octal digits expected." }, Duplicate_identifier_0: { code: 2300, category: DiagnosticCategory.Error, key: "Duplicate identifier '{0}'." }, Initializer_of_instance_member_variable_0_cannot_reference_identifier_1_declared_in_the_constructor: { code: 2301, category: 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: DiagnosticCategory.Error, key: "Static members cannot reference class type parameters." }, diff --git a/src/compiler/diagnosticMessages.json b/src/compiler/diagnosticMessages.json index 7c966f7c954..427eba4531d 100644 --- a/src/compiler/diagnosticMessages.json +++ b/src/compiler/diagnosticMessages.json @@ -487,10 +487,17 @@ "category": "Error", "code": 1161 }, - "An object member cannot be declared optional.": { "category": "Error", - "code": 1160 + "code": 1162 + }, + "Binary digits expected.": { + "category": "Error", + "code": 1163 + }, + "Octal digits expected.": { + "category": "Error", + "code": 1164 }, "Duplicate identifier '{0}'.": { diff --git a/src/compiler/emitter.ts b/src/compiler/emitter.ts index bc74f8304df..9e7b831fd2b 100644 --- a/src/compiler/emitter.ts +++ b/src/compiler/emitter.ts @@ -794,6 +794,11 @@ module ts { if (compilerOptions.sourceMap && (node.kind === SyntaxKind.StringLiteral || isTemplateLiteralKind(node.kind))) { writer.writeLiteral(text); } + else if (node.kind === SyntaxKind.NumericLiteral && compilerOptions.target < ScriptTarget.ES6 && + ((text.charCodeAt(1) === CharacterCodes.B || text.charCodeAt(1) === CharacterCodes.b || + text.charCodeAt(1) === CharacterCodes.O || text.charCodeAt(1) === CharacterCodes.o))) { + write(node.text); + } else { write(text); } @@ -802,7 +807,6 @@ module ts { if (compilerOptions.target < ScriptTarget.ES6 && isTemplateLiteralKind(node.kind)) { return getTemplateLiteralAsStringLiteral(node) } - return getSourceTextOfLocalNode(node); } } diff --git a/src/compiler/scanner.ts b/src/compiler/scanner.ts index e08f481ba9c..596155c8137 100644 --- a/src/compiler/scanner.ts +++ b/src/compiler/scanner.ts @@ -520,6 +520,27 @@ module ts { return +(text.substring(start, pos)); } + function scanBinaryOrOctalDigits(base: number): number { + if (base !== 2 && base !== 8) { + return -1; + } + var value = 0; + while (true) { + var ch = text.charCodeAt(pos); + var valueOfCh = ch - CharacterCodes._0; + if (!isDigit(ch)) { + break; + } + // We know at this point that ch must be digit + if (valueOfCh >= base) { + return -1; + } + value = value * base + valueOfCh; + pos++; + } + return value; + } + function scanHexDigits(count: number, mustMatchCount?: boolean): number { var digits = 0; var value = 0; @@ -933,6 +954,26 @@ module ts { tokenValue = "" + value; return SyntaxKind.NumericLiteral; } + else if (pos + 2 < len && (text.charCodeAt(pos + 1) === CharacterCodes.B || text.charCodeAt(pos + 1) === CharacterCodes.b)) { + pos += 2; + var value = scanBinaryOrOctalDigits(/* binary */2); + if (value < 0) { + error(Diagnostics.Binary_digits_expected); + value = 0; + } + tokenValue = "" + value; + return SyntaxKind.NumericLiteral; + } + else if (pos + 2 < len && (text.charCodeAt(pos + 1) === CharacterCodes.O || text.charCodeAt(pos + 1) === CharacterCodes.o)) { + pos += 2; + var value = scanBinaryOrOctalDigits(/* octal */8); + if (value < 0) { + error(Diagnostics.Octal_digits_expected); + value = 0; + } + tokenValue = "" + value; + return SyntaxKind.NumericLiteral; + } // Try to parse as an octal if (pos + 1 < len && isOctalDigit(text.charCodeAt(pos + 1))) { tokenValue = "" + scanOctalDigits(); From 3c962511d73be894d12e253ab5546ec397ef929f Mon Sep 17 00:00:00 2001 From: Jonathan Park Date: Mon, 4 Aug 2014 12:06:50 -0700 Subject: [PATCH 054/195] Adding definitions to build output --- Jakefile | 21 ++++++++------------- 1 file changed, 8 insertions(+), 13 deletions(-) diff --git a/Jakefile b/Jakefile index 0a34de4182b..ba82e9c3f43 100644 --- a/Jakefile +++ b/Jakefile @@ -135,7 +135,6 @@ function concatenateFiles(destinationFile, sourceFiles) { } var useDebugMode = true; -var generateDeclarations = false; var host = (process.env.host || process.env.TYPESCRIPT_HOST || "node"); var compilerFilename = "tsc.js"; /* Compiles a file from a list of sources @@ -146,7 +145,7 @@ var compilerFilename = "tsc.js"; * @param useBuiltCompiler: true to use the built compiler, false to use the LKG * @param noOutFile: true to compile without using --out */ -function compileFile(outFile, sources, prereqs, prefixes, useBuiltCompiler, noOutFile) { +function compileFile(outFile, sources, prereqs, prefixes, useBuiltCompiler, noOutFile, generateDeclarations) { file(outFile, prereqs, function() { var dir = useBuiltCompiler ? builtLocalDirectory : LKGDirectory; var options = "-removeComments --module commonjs -noImplicitAny "; @@ -157,7 +156,7 @@ function compileFile(outFile, sources, prereqs, prefixes, useBuiltCompiler, noOu if (useDebugMode) { options += "--preserveConstEnums "; } - + var cmd = host + " " + dir + compilerFilename + " " + options + " "; cmd = cmd + sources.join(" ") + (!noOutFile ? " -out " + outFile : ""); if (useDebugMode) { @@ -184,7 +183,7 @@ function compileFile(outFile, sources, prereqs, prefixes, useBuiltCompiler, noOu fs.unlinkSync(outFile); console.log("Compilation of " + outFile + " unsuccessful"); }); - ex.run(); + ex.run(); }, {async: true}); } @@ -239,7 +238,7 @@ file(diagnosticInfoMapTs, [processDiagnosticMessagesJs, diagnosticMessagesJson], ex.addListener("cmdEnd", function() { complete(); }); - ex.run(); + ex.run(); }, {async: true}) @@ -252,7 +251,8 @@ var tscFile = path.join(builtLocalDirectory, compilerFilename); compileFile(tscFile, compilerSources, [builtLocalDirectory, copyright].concat(compilerSources), [copyright], /*useBuiltCompiler:*/ false); var servicesFile = path.join(builtLocalDirectory, "typescriptServices.js"); -compileFile(servicesFile, servicesSources, [builtLocalDirectory, copyright].concat(servicesSources), [copyright], /*useBuiltCompiler:*/ true); +var servicesDefinitionsFile = path.join(builtLocalDirectory, "typescriptServices.d.ts"); +compileFile(servicesFile, servicesSources, [builtLocalDirectory, copyright].concat(servicesSources), [copyright], /*useBuiltCompiler:*/ true, /*noOutFile:*/ false, /*generateDeclarations:*/ true); // Local target to build the compiler and services desc("Builds the full compiler and services"); @@ -275,11 +275,6 @@ task("clean", function() { jake.rmRf(builtDirectory); }); -// generate declarations for compiler and services -desc("Generate declarations for compiler and services"); -task("declaration", function() { - generateDeclarations = true; -}); // Generate Markdown spec var word2mdJs = path.join(scriptsDirectory, "word2md.js"); @@ -314,7 +309,7 @@ task("generate-spec", [specMd]) // Makes a new LKG. This target does not build anything, but errors if not all the outputs are present in the built/local directory desc("Makes a new LKG out of the built js files"); task("LKG", ["clean", "release", "local"].concat(libraryTargets), function() { - var expectedFiles = [tscFile, servicesFile].concat(libraryTargets); + var expectedFiles = [tscFile, servicesFile, servicesDefinitionsFile].concat(libraryTargets); var missingFiles = expectedFiles.filter(function (f) { return !fs.existsSync(f); }); @@ -547,7 +542,7 @@ file(loggedIOJsPath, [builtLocalDirectory, loggedIOpath], function() { jake.rmRf(temp); complete(); }); - ex.run(); + ex.run(); }, {async: true}); var instrumenterPath = harnessDirectory + 'instrumenter.ts'; From 2dfdc5ad302b3bf2c89aa8ba88d4f412c33606e4 Mon Sep 17 00:00:00 2001 From: Dick van den Brink Date: Mon, 24 Nov 2014 00:35:10 +0100 Subject: [PATCH 055/195] Remove empty file --- src/services/compiler/ast.ts | 0 src/services/compiler/astHelpers.ts | 0 src/services/compiler/astWalker.ts | 0 src/services/compiler/references.ts | 3 --- src/services/syntax/depthLimitedWalker.ts | 0 src/services/syntax/references.ts | 2 -- 6 files changed, 5 deletions(-) delete mode 100644 src/services/compiler/ast.ts delete mode 100644 src/services/compiler/astHelpers.ts delete mode 100644 src/services/compiler/astWalker.ts delete mode 100644 src/services/syntax/depthLimitedWalker.ts diff --git a/src/services/compiler/ast.ts b/src/services/compiler/ast.ts deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/src/services/compiler/astHelpers.ts b/src/services/compiler/astHelpers.ts deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/src/services/compiler/astWalker.ts b/src/services/compiler/astWalker.ts deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/src/services/compiler/references.ts b/src/services/compiler/references.ts index b2d605d595f..750b7777624 100644 --- a/src/services/compiler/references.ts +++ b/src/services/compiler/references.ts @@ -6,9 +6,6 @@ ///// ///// ///// -///// -///// -///// ///// ///// ///// diff --git a/src/services/syntax/depthLimitedWalker.ts b/src/services/syntax/depthLimitedWalker.ts deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/src/services/syntax/references.ts b/src/services/syntax/references.ts index 5c1a6818ccc..435ae1236d5 100644 --- a/src/services/syntax/references.ts +++ b/src/services/syntax/references.ts @@ -34,8 +34,6 @@ // SyntaxInformationMap depends on SyntaxWalker // /// -// DepthLimitedWalker depends on PositionTrackingWalker -/// /// // Concrete nodes depend on the parser. From 5774e64d92789064c76c126e7b0cb8dbcad2062a Mon Sep 17 00:00:00 2001 From: Yui T Date: Sun, 23 Nov 2014 16:23:24 -0800 Subject: [PATCH 056/195] Add test cases --- .../reference/binaryIntegerLiteral.js | 65 +++++++++++++ .../reference/binaryIntegerLiteral.types | 96 +++++++++++++++++++ .../reference/binaryIntegerLiteralES6.js | 64 +++++++++++++ .../reference/binaryIntegerLiteralES6.types | 95 ++++++++++++++++++ .../binaryIntegerLiteralError.errors.txt | 28 ++++++ ...jectTypesWithOptionalProperties.errors.txt | 4 +- .../reference/octalIntegerLiteral.js | 63 ++++++++++++ .../reference/octalIntegerLiteral.types | 95 ++++++++++++++++++ .../reference/octalIntegerLiteralES6.js | 63 ++++++++++++ .../reference/octalIntegerLiteralES6.types | 95 ++++++++++++++++++ .../octalIntegerLiteralError.errors.txt | 28 ++++++ .../binaryIntegerLiteral.ts | 34 +++++++ .../binaryIntegerLiteralES6.ts | 33 +++++++ .../binaryIntegerLiteralError.ts | 9 ++ .../octalIntegerLiteral.ts | 32 +++++++ .../octalIntegerLiteralES6.ts | 32 +++++++ .../octalIntegerLiteralError.ts | 9 ++ 17 files changed, 843 insertions(+), 2 deletions(-) create mode 100644 tests/baselines/reference/binaryIntegerLiteral.js create mode 100644 tests/baselines/reference/binaryIntegerLiteral.types create mode 100644 tests/baselines/reference/binaryIntegerLiteralES6.js create mode 100644 tests/baselines/reference/binaryIntegerLiteralES6.types create mode 100644 tests/baselines/reference/binaryIntegerLiteralError.errors.txt create mode 100644 tests/baselines/reference/octalIntegerLiteral.js create mode 100644 tests/baselines/reference/octalIntegerLiteral.types create mode 100644 tests/baselines/reference/octalIntegerLiteralES6.js create mode 100644 tests/baselines/reference/octalIntegerLiteralES6.types create mode 100644 tests/baselines/reference/octalIntegerLiteralError.errors.txt create mode 100644 tests/cases/conformance/es6/binaryAndOctalIntegerLiteral/binaryIntegerLiteral.ts create mode 100644 tests/cases/conformance/es6/binaryAndOctalIntegerLiteral/binaryIntegerLiteralES6.ts create mode 100644 tests/cases/conformance/es6/binaryAndOctalIntegerLiteral/binaryIntegerLiteralError.ts create mode 100644 tests/cases/conformance/es6/binaryAndOctalIntegerLiteral/octalIntegerLiteral.ts create mode 100644 tests/cases/conformance/es6/binaryAndOctalIntegerLiteral/octalIntegerLiteralES6.ts create mode 100644 tests/cases/conformance/es6/binaryAndOctalIntegerLiteral/octalIntegerLiteralError.ts diff --git a/tests/baselines/reference/binaryIntegerLiteral.js b/tests/baselines/reference/binaryIntegerLiteral.js new file mode 100644 index 00000000000..7e3245d8036 --- /dev/null +++ b/tests/baselines/reference/binaryIntegerLiteral.js @@ -0,0 +1,65 @@ +//// [binaryIntegerLiteral.ts] +var bin1 = 0b11010; +var bin2 = 0B11010; + +var obj1 = { + 0b11010: "Hello", + a: bin1, + bin1, + b: 0b11010, +} + +var obj2 = { + 0B11010: "World", + a: bin2, + bin2, + b: 0B11010, +} + +obj1[0b11010]; // string +obj1[26]; // string +obj1["26"]; // string +obj1["0b11010"]; // any +obj1["a"]; // number +obj1["b"]; // number +obj1["bin1"]; // number + +obj2[0B11010]; // string +obj2[26]; // string +obj2["26"]; // string +obj2["0B11010"]; // any +obj2["a"]; // number +obj2["b"]; // number +obj2["bin2"]; // number + + + +//// [binaryIntegerLiteral.js] +var bin1 = 26; +var bin2 = 26; +var obj1 = { + 26: "Hello", + a: bin1, + bin1: bin1, + b: 26, +}; +var obj2 = { + 26: "World", + a: bin2, + bin2: bin2, + b: 26, +}; +obj1[26]; // string +obj1[26]; // string +obj1["26"]; // string +obj1["0b11010"]; // any +obj1["a"]; // number +obj1["b"]; // number +obj1["bin1"]; // number +obj2[26]; // string +obj2[26]; // string +obj2["26"]; // string +obj2["0B11010"]; // any +obj2["a"]; // number +obj2["b"]; // number +obj2["bin2"]; // number diff --git a/tests/baselines/reference/binaryIntegerLiteral.types b/tests/baselines/reference/binaryIntegerLiteral.types new file mode 100644 index 00000000000..093cb0c46ee --- /dev/null +++ b/tests/baselines/reference/binaryIntegerLiteral.types @@ -0,0 +1,96 @@ +=== tests/cases/conformance/es6/binaryAndOctalIntegerLiteral/binaryIntegerLiteral.ts === +var bin1 = 0b11010; +>bin1 : number + +var bin2 = 0B11010; +>bin2 : number + +var obj1 = { +>obj1 : { 0b11010: string; a: number; bin1: number; b: number; } +>{ 0b11010: "Hello", a: bin1, bin1, b: 0b11010,} : { 0b11010: string; a: number; bin1: number; b: number; } + + 0b11010: "Hello", + a: bin1, +>a : number +>bin1 : number + + bin1, +>bin1 : number + + b: 0b11010, +>b : number +} + +var obj2 = { +>obj2 : { 0B11010: string; a: number; bin2: number; b: number; } +>{ 0B11010: "World", a: bin2, bin2, b: 0B11010,} : { 0B11010: string; a: number; bin2: number; b: number; } + + 0B11010: "World", + a: bin2, +>a : number +>bin2 : number + + bin2, +>bin2 : number + + b: 0B11010, +>b : number +} + +obj1[0b11010]; // string +>obj1[0b11010] : string +>obj1 : { 0b11010: string; a: number; bin1: number; b: number; } + +obj1[26]; // string +>obj1[26] : string +>obj1 : { 0b11010: string; a: number; bin1: number; b: number; } + +obj1["26"]; // string +>obj1["26"] : string +>obj1 : { 0b11010: string; a: number; bin1: number; b: number; } + +obj1["0b11010"]; // any +>obj1["0b11010"] : any +>obj1 : { 0b11010: string; a: number; bin1: number; b: number; } + +obj1["a"]; // number +>obj1["a"] : number +>obj1 : { 0b11010: string; a: number; bin1: number; b: number; } + +obj1["b"]; // number +>obj1["b"] : number +>obj1 : { 0b11010: string; a: number; bin1: number; b: number; } + +obj1["bin1"]; // number +>obj1["bin1"] : number +>obj1 : { 0b11010: string; a: number; bin1: number; b: number; } + +obj2[0B11010]; // string +>obj2[0B11010] : string +>obj2 : { 0B11010: string; a: number; bin2: number; b: number; } + +obj2[26]; // string +>obj2[26] : string +>obj2 : { 0B11010: string; a: number; bin2: number; b: number; } + +obj2["26"]; // string +>obj2["26"] : string +>obj2 : { 0B11010: string; a: number; bin2: number; b: number; } + +obj2["0B11010"]; // any +>obj2["0B11010"] : any +>obj2 : { 0B11010: string; a: number; bin2: number; b: number; } + +obj2["a"]; // number +>obj2["a"] : number +>obj2 : { 0B11010: string; a: number; bin2: number; b: number; } + +obj2["b"]; // number +>obj2["b"] : number +>obj2 : { 0B11010: string; a: number; bin2: number; b: number; } + +obj2["bin2"]; // number +>obj2["bin2"] : number +>obj2 : { 0B11010: string; a: number; bin2: number; b: number; } + + diff --git a/tests/baselines/reference/binaryIntegerLiteralES6.js b/tests/baselines/reference/binaryIntegerLiteralES6.js new file mode 100644 index 00000000000..c8ec7e50632 --- /dev/null +++ b/tests/baselines/reference/binaryIntegerLiteralES6.js @@ -0,0 +1,64 @@ +//// [binaryIntegerLiteralES6.ts] +var bin1 = 0b11010; +var bin2 = 0B11010; + +var obj1 = { + 0b11010: "Hello", + a: bin1, + bin1, + b: 0b11010, +} + +var obj2 = { + 0B11010: "World", + a: bin2, + bin2, + b: 0B11010, +} + +obj1[0b11010]; // string +obj1[26]; // string +obj1["26"]; // string +obj1["0b11010"]; // any +obj1["a"]; // number +obj1["b"]; // number +obj1["bin1"]; // number + +obj2[0B11010]; // string +obj2[26]; // string +obj2["26"]; // string +obj2["0B11010"]; // any +obj2["a"]; // number +obj2["b"]; // number +obj2["bin2"]; // number + + +//// [binaryIntegerLiteralES6.js] +var bin1 = 0b11010; +var bin2 = 0B11010; +var obj1 = { + 0b11010: "Hello", + a: bin1, + bin1, + b: 0b11010, +}; +var obj2 = { + 0B11010: "World", + a: bin2, + bin2, + b: 0B11010, +}; +obj1[0b11010]; // string +obj1[26]; // string +obj1["26"]; // string +obj1["0b11010"]; // any +obj1["a"]; // number +obj1["b"]; // number +obj1["bin1"]; // number +obj2[0B11010]; // string +obj2[26]; // string +obj2["26"]; // string +obj2["0B11010"]; // any +obj2["a"]; // number +obj2["b"]; // number +obj2["bin2"]; // number diff --git a/tests/baselines/reference/binaryIntegerLiteralES6.types b/tests/baselines/reference/binaryIntegerLiteralES6.types new file mode 100644 index 00000000000..b28b68032f3 --- /dev/null +++ b/tests/baselines/reference/binaryIntegerLiteralES6.types @@ -0,0 +1,95 @@ +=== tests/cases/conformance/es6/binaryAndOctalIntegerLiteral/binaryIntegerLiteralES6.ts === +var bin1 = 0b11010; +>bin1 : number + +var bin2 = 0B11010; +>bin2 : number + +var obj1 = { +>obj1 : { 0b11010: string; a: number; bin1: number; b: number; } +>{ 0b11010: "Hello", a: bin1, bin1, b: 0b11010,} : { 0b11010: string; a: number; bin1: number; b: number; } + + 0b11010: "Hello", + a: bin1, +>a : number +>bin1 : number + + bin1, +>bin1 : number + + b: 0b11010, +>b : number +} + +var obj2 = { +>obj2 : { 0B11010: string; a: number; bin2: number; b: number; } +>{ 0B11010: "World", a: bin2, bin2, b: 0B11010,} : { 0B11010: string; a: number; bin2: number; b: number; } + + 0B11010: "World", + a: bin2, +>a : number +>bin2 : number + + bin2, +>bin2 : number + + b: 0B11010, +>b : number +} + +obj1[0b11010]; // string +>obj1[0b11010] : string +>obj1 : { 0b11010: string; a: number; bin1: number; b: number; } + +obj1[26]; // string +>obj1[26] : string +>obj1 : { 0b11010: string; a: number; bin1: number; b: number; } + +obj1["26"]; // string +>obj1["26"] : string +>obj1 : { 0b11010: string; a: number; bin1: number; b: number; } + +obj1["0b11010"]; // any +>obj1["0b11010"] : any +>obj1 : { 0b11010: string; a: number; bin1: number; b: number; } + +obj1["a"]; // number +>obj1["a"] : number +>obj1 : { 0b11010: string; a: number; bin1: number; b: number; } + +obj1["b"]; // number +>obj1["b"] : number +>obj1 : { 0b11010: string; a: number; bin1: number; b: number; } + +obj1["bin1"]; // number +>obj1["bin1"] : number +>obj1 : { 0b11010: string; a: number; bin1: number; b: number; } + +obj2[0B11010]; // string +>obj2[0B11010] : string +>obj2 : { 0B11010: string; a: number; bin2: number; b: number; } + +obj2[26]; // string +>obj2[26] : string +>obj2 : { 0B11010: string; a: number; bin2: number; b: number; } + +obj2["26"]; // string +>obj2["26"] : string +>obj2 : { 0B11010: string; a: number; bin2: number; b: number; } + +obj2["0B11010"]; // any +>obj2["0B11010"] : any +>obj2 : { 0B11010: string; a: number; bin2: number; b: number; } + +obj2["a"]; // number +>obj2["a"] : number +>obj2 : { 0B11010: string; a: number; bin2: number; b: number; } + +obj2["b"]; // number +>obj2["b"] : number +>obj2 : { 0B11010: string; a: number; bin2: number; b: number; } + +obj2["bin2"]; // number +>obj2["bin2"] : number +>obj2 : { 0B11010: string; a: number; bin2: number; b: number; } + diff --git a/tests/baselines/reference/binaryIntegerLiteralError.errors.txt b/tests/baselines/reference/binaryIntegerLiteralError.errors.txt new file mode 100644 index 00000000000..3346ee33774 --- /dev/null +++ b/tests/baselines/reference/binaryIntegerLiteralError.errors.txt @@ -0,0 +1,28 @@ +tests/cases/conformance/es6/binaryAndOctalIntegerLiteral/binaryIntegerLiteralError.ts(2,17): error TS1163: Binary digits expected. +tests/cases/conformance/es6/binaryAndOctalIntegerLiteral/binaryIntegerLiteralError.ts(3,17): error TS1163: Binary digits expected. +tests/cases/conformance/es6/binaryAndOctalIntegerLiteral/binaryIntegerLiteralError.ts(6,5): error TS2300: Duplicate identifier '0b11010'. +tests/cases/conformance/es6/binaryAndOctalIntegerLiteral/binaryIntegerLiteralError.ts(7,5): error TS2300: Duplicate identifier '26'. +tests/cases/conformance/es6/binaryAndOctalIntegerLiteral/binaryIntegerLiteralError.ts(8,5): error TS2300: Duplicate identifier '"26"'. + + +==== tests/cases/conformance/es6/binaryAndOctalIntegerLiteral/binaryIntegerLiteralError.ts (5 errors) ==== + // error + var bin1 = 0B1102110; + +!!! error TS1163: Binary digits expected. + var bin1 = 0b11023410; + +!!! error TS1163: Binary digits expected. + + var obj1 = { + 0b11010: "hi", + ~~~~~~~ +!!! error TS2300: Duplicate identifier '0b11010'. + 26: "Hello", + ~~ +!!! error TS2300: Duplicate identifier '26'. + "26": "world", + ~~~~ +!!! error TS2300: Duplicate identifier '"26"'. + }; + \ No newline at end of file diff --git a/tests/baselines/reference/objectTypesWithOptionalProperties.errors.txt b/tests/baselines/reference/objectTypesWithOptionalProperties.errors.txt index 14afcebd213..3f5321734d1 100644 --- a/tests/baselines/reference/objectTypesWithOptionalProperties.errors.txt +++ b/tests/baselines/reference/objectTypesWithOptionalProperties.errors.txt @@ -1,6 +1,6 @@ tests/cases/conformance/types/objectTypeLiteral/methodSignatures/objectTypesWithOptionalProperties.ts(12,6): error TS1112: A class member cannot be declared optional. tests/cases/conformance/types/objectTypeLiteral/methodSignatures/objectTypesWithOptionalProperties.ts(20,6): error TS1112: A class member cannot be declared optional. -tests/cases/conformance/types/objectTypeLiteral/methodSignatures/objectTypesWithOptionalProperties.ts(24,6): error TS1160: An object member cannot be declared optional. +tests/cases/conformance/types/objectTypeLiteral/methodSignatures/objectTypesWithOptionalProperties.ts(24,6): error TS1162: An object member cannot be declared optional. ==== tests/cases/conformance/types/objectTypeLiteral/methodSignatures/objectTypesWithOptionalProperties.ts (3 errors) ==== @@ -33,5 +33,5 @@ tests/cases/conformance/types/objectTypeLiteral/methodSignatures/objectTypesWith var b = { x?: 1 // error -!!! error TS1160: An object member cannot be declared optional. +!!! error TS1162: An object member cannot be declared optional. } \ No newline at end of file diff --git a/tests/baselines/reference/octalIntegerLiteral.js b/tests/baselines/reference/octalIntegerLiteral.js new file mode 100644 index 00000000000..5e2dabdeaef --- /dev/null +++ b/tests/baselines/reference/octalIntegerLiteral.js @@ -0,0 +1,63 @@ +//// [octalIntegerLiteral.ts] +var oct1 = 0o45436; +var oct2 = 0O45436; +var obj1 = { + 0o45436: "Hello", + a: 0o45436, + b: oct1, + oct1, +} + +var obj2 = { + 0O45436: "hi", + a: 0O45436, + b: oct2, + oct2, +} + +obj1[0o45436]; // string +obj1["0o45436"]; // any +obj1["19230"]; // string +obj1[19230]; // string +obj1["a"]; // number +obj1["b"]; // number +obj1["oct1"]; // number + +obj2[0O45436]; // string +obj2["0O45436"]; // any +obj2["19230"]; // string +obj2[19230]; // string +obj2["a"]; // number +obj2["b"]; // number +obj2["oct2"]; // number + + +//// [octalIntegerLiteral.js] +var oct1 = 19230; +var oct2 = 19230; +var obj1 = { + 19230: "Hello", + a: 19230, + b: oct1, + oct1: oct1, +}; +var obj2 = { + 19230: "hi", + a: 19230, + b: oct2, + oct2: oct2, +}; +obj1[19230]; // string +obj1["0o45436"]; // any +obj1["19230"]; // string +obj1[19230]; // string +obj1["a"]; // number +obj1["b"]; // number +obj1["oct1"]; // number +obj2[19230]; // string +obj2["0O45436"]; // any +obj2["19230"]; // string +obj2[19230]; // string +obj2["a"]; // number +obj2["b"]; // number +obj2["oct2"]; // number diff --git a/tests/baselines/reference/octalIntegerLiteral.types b/tests/baselines/reference/octalIntegerLiteral.types new file mode 100644 index 00000000000..90cf8c16f1b --- /dev/null +++ b/tests/baselines/reference/octalIntegerLiteral.types @@ -0,0 +1,95 @@ +=== tests/cases/conformance/es6/binaryAndOctalIntegerLiteral/octalIntegerLiteral.ts === +var oct1 = 0o45436; +>oct1 : number + +var oct2 = 0O45436; +>oct2 : number + +var obj1 = { +>obj1 : { 0o45436: string; a: number; b: number; oct1: number; } +>{ 0o45436: "Hello", a: 0o45436, b: oct1, oct1,} : { 0o45436: string; a: number; b: number; oct1: number; } + + 0o45436: "Hello", + a: 0o45436, +>a : number + + b: oct1, +>b : number +>oct1 : number + + oct1, +>oct1 : number +} + +var obj2 = { +>obj2 : { 0O45436: string; a: number; b: number; oct2: number; } +>{ 0O45436: "hi", a: 0O45436, b: oct2, oct2,} : { 0O45436: string; a: number; b: number; oct2: number; } + + 0O45436: "hi", + a: 0O45436, +>a : number + + b: oct2, +>b : number +>oct2 : number + + oct2, +>oct2 : number +} + +obj1[0o45436]; // string +>obj1[0o45436] : string +>obj1 : { 0o45436: string; a: number; b: number; oct1: number; } + +obj1["0o45436"]; // any +>obj1["0o45436"] : any +>obj1 : { 0o45436: string; a: number; b: number; oct1: number; } + +obj1["19230"]; // string +>obj1["19230"] : string +>obj1 : { 0o45436: string; a: number; b: number; oct1: number; } + +obj1[19230]; // string +>obj1[19230] : string +>obj1 : { 0o45436: string; a: number; b: number; oct1: number; } + +obj1["a"]; // number +>obj1["a"] : number +>obj1 : { 0o45436: string; a: number; b: number; oct1: number; } + +obj1["b"]; // number +>obj1["b"] : number +>obj1 : { 0o45436: string; a: number; b: number; oct1: number; } + +obj1["oct1"]; // number +>obj1["oct1"] : number +>obj1 : { 0o45436: string; a: number; b: number; oct1: number; } + +obj2[0O45436]; // string +>obj2[0O45436] : string +>obj2 : { 0O45436: string; a: number; b: number; oct2: number; } + +obj2["0O45436"]; // any +>obj2["0O45436"] : any +>obj2 : { 0O45436: string; a: number; b: number; oct2: number; } + +obj2["19230"]; // string +>obj2["19230"] : string +>obj2 : { 0O45436: string; a: number; b: number; oct2: number; } + +obj2[19230]; // string +>obj2[19230] : string +>obj2 : { 0O45436: string; a: number; b: number; oct2: number; } + +obj2["a"]; // number +>obj2["a"] : number +>obj2 : { 0O45436: string; a: number; b: number; oct2: number; } + +obj2["b"]; // number +>obj2["b"] : number +>obj2 : { 0O45436: string; a: number; b: number; oct2: number; } + +obj2["oct2"]; // number +>obj2["oct2"] : number +>obj2 : { 0O45436: string; a: number; b: number; oct2: number; } + diff --git a/tests/baselines/reference/octalIntegerLiteralES6.js b/tests/baselines/reference/octalIntegerLiteralES6.js new file mode 100644 index 00000000000..b69cd6f457a --- /dev/null +++ b/tests/baselines/reference/octalIntegerLiteralES6.js @@ -0,0 +1,63 @@ +//// [octalIntegerLiteralES6.ts] +var oct1 = 0o45436; +var oct2 = 0O45436; +var obj1 = { + 0o45436: "Hello", + a: 0o45436, + b: oct1, + oct1, +} + +var obj2 = { + 0O45436: "hi", + a: 0O45436, + b: oct2, + oct2, +} + +obj1[0o45436]; // string +obj1["0o45436"]; // any +obj1["19230"]; // string +obj1[19230]; // string +obj1["a"]; // number +obj1["b"]; // number +obj1["oct1"]; // number + +obj2[0O45436]; // string +obj2["0O45436"]; // any +obj2["19230"]; // string +obj2[19230]; // string +obj2["a"]; // number +obj2["b"]; // number +obj2["oct2"]; // number + + +//// [octalIntegerLiteralES6.js] +var oct1 = 0o45436; +var oct2 = 0O45436; +var obj1 = { + 0o45436: "Hello", + a: 0o45436, + b: oct1, + oct1, +}; +var obj2 = { + 0O45436: "hi", + a: 0O45436, + b: oct2, + oct2, +}; +obj1[0o45436]; // string +obj1["0o45436"]; // any +obj1["19230"]; // string +obj1[19230]; // string +obj1["a"]; // number +obj1["b"]; // number +obj1["oct1"]; // number +obj2[0O45436]; // string +obj2["0O45436"]; // any +obj2["19230"]; // string +obj2[19230]; // string +obj2["a"]; // number +obj2["b"]; // number +obj2["oct2"]; // number diff --git a/tests/baselines/reference/octalIntegerLiteralES6.types b/tests/baselines/reference/octalIntegerLiteralES6.types new file mode 100644 index 00000000000..d913109b7f5 --- /dev/null +++ b/tests/baselines/reference/octalIntegerLiteralES6.types @@ -0,0 +1,95 @@ +=== tests/cases/conformance/es6/binaryAndOctalIntegerLiteral/octalIntegerLiteralES6.ts === +var oct1 = 0o45436; +>oct1 : number + +var oct2 = 0O45436; +>oct2 : number + +var obj1 = { +>obj1 : { 0o45436: string; a: number; b: number; oct1: number; } +>{ 0o45436: "Hello", a: 0o45436, b: oct1, oct1,} : { 0o45436: string; a: number; b: number; oct1: number; } + + 0o45436: "Hello", + a: 0o45436, +>a : number + + b: oct1, +>b : number +>oct1 : number + + oct1, +>oct1 : number +} + +var obj2 = { +>obj2 : { 0O45436: string; a: number; b: number; oct2: number; } +>{ 0O45436: "hi", a: 0O45436, b: oct2, oct2,} : { 0O45436: string; a: number; b: number; oct2: number; } + + 0O45436: "hi", + a: 0O45436, +>a : number + + b: oct2, +>b : number +>oct2 : number + + oct2, +>oct2 : number +} + +obj1[0o45436]; // string +>obj1[0o45436] : string +>obj1 : { 0o45436: string; a: number; b: number; oct1: number; } + +obj1["0o45436"]; // any +>obj1["0o45436"] : any +>obj1 : { 0o45436: string; a: number; b: number; oct1: number; } + +obj1["19230"]; // string +>obj1["19230"] : string +>obj1 : { 0o45436: string; a: number; b: number; oct1: number; } + +obj1[19230]; // string +>obj1[19230] : string +>obj1 : { 0o45436: string; a: number; b: number; oct1: number; } + +obj1["a"]; // number +>obj1["a"] : number +>obj1 : { 0o45436: string; a: number; b: number; oct1: number; } + +obj1["b"]; // number +>obj1["b"] : number +>obj1 : { 0o45436: string; a: number; b: number; oct1: number; } + +obj1["oct1"]; // number +>obj1["oct1"] : number +>obj1 : { 0o45436: string; a: number; b: number; oct1: number; } + +obj2[0O45436]; // string +>obj2[0O45436] : string +>obj2 : { 0O45436: string; a: number; b: number; oct2: number; } + +obj2["0O45436"]; // any +>obj2["0O45436"] : any +>obj2 : { 0O45436: string; a: number; b: number; oct2: number; } + +obj2["19230"]; // string +>obj2["19230"] : string +>obj2 : { 0O45436: string; a: number; b: number; oct2: number; } + +obj2[19230]; // string +>obj2[19230] : string +>obj2 : { 0O45436: string; a: number; b: number; oct2: number; } + +obj2["a"]; // number +>obj2["a"] : number +>obj2 : { 0O45436: string; a: number; b: number; oct2: number; } + +obj2["b"]; // number +>obj2["b"] : number +>obj2 : { 0O45436: string; a: number; b: number; oct2: number; } + +obj2["oct2"]; // number +>obj2["oct2"] : number +>obj2 : { 0O45436: string; a: number; b: number; oct2: number; } + diff --git a/tests/baselines/reference/octalIntegerLiteralError.errors.txt b/tests/baselines/reference/octalIntegerLiteralError.errors.txt new file mode 100644 index 00000000000..d0e2531796a --- /dev/null +++ b/tests/baselines/reference/octalIntegerLiteralError.errors.txt @@ -0,0 +1,28 @@ +tests/cases/conformance/es6/binaryAndOctalIntegerLiteral/octalIntegerLiteralError.ts(2,19): error TS1164: Octal digits expected. +tests/cases/conformance/es6/binaryAndOctalIntegerLiteral/octalIntegerLiteralError.ts(3,18): error TS1164: Octal digits expected. +tests/cases/conformance/es6/binaryAndOctalIntegerLiteral/octalIntegerLiteralError.ts(6,5): error TS2300: Duplicate identifier '0O45436'. +tests/cases/conformance/es6/binaryAndOctalIntegerLiteral/octalIntegerLiteralError.ts(7,5): error TS2300: Duplicate identifier '19230'. +tests/cases/conformance/es6/binaryAndOctalIntegerLiteral/octalIntegerLiteralError.ts(8,5): error TS2300: Duplicate identifier '"19230"'. + + +==== tests/cases/conformance/es6/binaryAndOctalIntegerLiteral/octalIntegerLiteralError.ts (5 errors) ==== + // error + var oct1 = 0O13334823; + +!!! error TS1164: Octal digits expected. + var oct2 = 0o34318592; + +!!! error TS1164: Octal digits expected. + + var obj1 = { + 0O45436: "hi", + ~~~~~~~ +!!! error TS2300: Duplicate identifier '0O45436'. + 19230: "Hello", + ~~~~~ +!!! error TS2300: Duplicate identifier '19230'. + "19230": "world", + ~~~~~~~ +!!! error TS2300: Duplicate identifier '"19230"'. + }; + \ No newline at end of file diff --git a/tests/cases/conformance/es6/binaryAndOctalIntegerLiteral/binaryIntegerLiteral.ts b/tests/cases/conformance/es6/binaryAndOctalIntegerLiteral/binaryIntegerLiteral.ts new file mode 100644 index 00000000000..23b1674391e --- /dev/null +++ b/tests/cases/conformance/es6/binaryAndOctalIntegerLiteral/binaryIntegerLiteral.ts @@ -0,0 +1,34 @@ +// @target: es5 +var bin1 = 0b11010; +var bin2 = 0B11010; + +var obj1 = { + 0b11010: "Hello", + a: bin1, + bin1, + b: 0b11010, +} + +var obj2 = { + 0B11010: "World", + a: bin2, + bin2, + b: 0B11010, +} + +obj1[0b11010]; // string +obj1[26]; // string +obj1["26"]; // string +obj1["0b11010"]; // any +obj1["a"]; // number +obj1["b"]; // number +obj1["bin1"]; // number + +obj2[0B11010]; // string +obj2[26]; // string +obj2["26"]; // string +obj2["0B11010"]; // any +obj2["a"]; // number +obj2["b"]; // number +obj2["bin2"]; // number + diff --git a/tests/cases/conformance/es6/binaryAndOctalIntegerLiteral/binaryIntegerLiteralES6.ts b/tests/cases/conformance/es6/binaryAndOctalIntegerLiteral/binaryIntegerLiteralES6.ts new file mode 100644 index 00000000000..9f8de23c0e4 --- /dev/null +++ b/tests/cases/conformance/es6/binaryAndOctalIntegerLiteral/binaryIntegerLiteralES6.ts @@ -0,0 +1,33 @@ +// @target: es6 +var bin1 = 0b11010; +var bin2 = 0B11010; + +var obj1 = { + 0b11010: "Hello", + a: bin1, + bin1, + b: 0b11010, +} + +var obj2 = { + 0B11010: "World", + a: bin2, + bin2, + b: 0B11010, +} + +obj1[0b11010]; // string +obj1[26]; // string +obj1["26"]; // string +obj1["0b11010"]; // any +obj1["a"]; // number +obj1["b"]; // number +obj1["bin1"]; // number + +obj2[0B11010]; // string +obj2[26]; // string +obj2["26"]; // string +obj2["0B11010"]; // any +obj2["a"]; // number +obj2["b"]; // number +obj2["bin2"]; // number diff --git a/tests/cases/conformance/es6/binaryAndOctalIntegerLiteral/binaryIntegerLiteralError.ts b/tests/cases/conformance/es6/binaryAndOctalIntegerLiteral/binaryIntegerLiteralError.ts new file mode 100644 index 00000000000..b889aac5d9c --- /dev/null +++ b/tests/cases/conformance/es6/binaryAndOctalIntegerLiteral/binaryIntegerLiteralError.ts @@ -0,0 +1,9 @@ +// error +var bin1 = 0B1102110; +var bin1 = 0b11023410; + +var obj1 = { + 0b11010: "hi", + 26: "Hello", + "26": "world", +}; diff --git a/tests/cases/conformance/es6/binaryAndOctalIntegerLiteral/octalIntegerLiteral.ts b/tests/cases/conformance/es6/binaryAndOctalIntegerLiteral/octalIntegerLiteral.ts new file mode 100644 index 00000000000..a68531d396a --- /dev/null +++ b/tests/cases/conformance/es6/binaryAndOctalIntegerLiteral/octalIntegerLiteral.ts @@ -0,0 +1,32 @@ +// @target: es5 +var oct1 = 0o45436; +var oct2 = 0O45436; +var obj1 = { + 0o45436: "Hello", + a: 0o45436, + b: oct1, + oct1, +} + +var obj2 = { + 0O45436: "hi", + a: 0O45436, + b: oct2, + oct2, +} + +obj1[0o45436]; // string +obj1["0o45436"]; // any +obj1["19230"]; // string +obj1[19230]; // string +obj1["a"]; // number +obj1["b"]; // number +obj1["oct1"]; // number + +obj2[0O45436]; // string +obj2["0O45436"]; // any +obj2["19230"]; // string +obj2[19230]; // string +obj2["a"]; // number +obj2["b"]; // number +obj2["oct2"]; // number diff --git a/tests/cases/conformance/es6/binaryAndOctalIntegerLiteral/octalIntegerLiteralES6.ts b/tests/cases/conformance/es6/binaryAndOctalIntegerLiteral/octalIntegerLiteralES6.ts new file mode 100644 index 00000000000..22ca686f809 --- /dev/null +++ b/tests/cases/conformance/es6/binaryAndOctalIntegerLiteral/octalIntegerLiteralES6.ts @@ -0,0 +1,32 @@ +// @target: es6 +var oct1 = 0o45436; +var oct2 = 0O45436; +var obj1 = { + 0o45436: "Hello", + a: 0o45436, + b: oct1, + oct1, +} + +var obj2 = { + 0O45436: "hi", + a: 0O45436, + b: oct2, + oct2, +} + +obj1[0o45436]; // string +obj1["0o45436"]; // any +obj1["19230"]; // string +obj1[19230]; // string +obj1["a"]; // number +obj1["b"]; // number +obj1["oct1"]; // number + +obj2[0O45436]; // string +obj2["0O45436"]; // any +obj2["19230"]; // string +obj2[19230]; // string +obj2["a"]; // number +obj2["b"]; // number +obj2["oct2"]; // number diff --git a/tests/cases/conformance/es6/binaryAndOctalIntegerLiteral/octalIntegerLiteralError.ts b/tests/cases/conformance/es6/binaryAndOctalIntegerLiteral/octalIntegerLiteralError.ts new file mode 100644 index 00000000000..06e7b5ddf38 --- /dev/null +++ b/tests/cases/conformance/es6/binaryAndOctalIntegerLiteral/octalIntegerLiteralError.ts @@ -0,0 +1,9 @@ +// error +var oct1 = 0O13334823; +var oct2 = 0o34318592; + +var obj1 = { + 0O45436: "hi", + 19230: "Hello", + "19230": "world", +}; From d04a3c7c23f56d60486c4b4004febff45390a055 Mon Sep 17 00:00:00 2001 From: Yui T Date: Sun, 23 Nov 2014 18:19:10 -0800 Subject: [PATCH 057/195] Add comment --- src/compiler/emitter.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/compiler/emitter.ts b/src/compiler/emitter.ts index 9e7b831fd2b..0bf6c1f635b 100644 --- a/src/compiler/emitter.ts +++ b/src/compiler/emitter.ts @@ -794,7 +794,8 @@ module ts { if (compilerOptions.sourceMap && (node.kind === SyntaxKind.StringLiteral || isTemplateLiteralKind(node.kind))) { writer.writeLiteral(text); } - else if (node.kind === SyntaxKind.NumericLiteral && compilerOptions.target < ScriptTarget.ES6 && + // For version below ES6, emit binary integer literal and octal integer literal as decimal value + else if (compilerOptions.target < ScriptTarget.ES6 && node.kind === SyntaxKind.NumericLiteral && ((text.charCodeAt(1) === CharacterCodes.B || text.charCodeAt(1) === CharacterCodes.b || text.charCodeAt(1) === CharacterCodes.O || text.charCodeAt(1) === CharacterCodes.o))) { write(node.text); From a5800408636e824929abf2523c7b50907e8a2434 Mon Sep 17 00:00:00 2001 From: Yui T Date: Mon, 24 Nov 2014 14:36:05 -0800 Subject: [PATCH 058/195] Address code review --- .../diagnosticInformationMap.generated.ts | 4 +- src/compiler/diagnosticMessages.json | 4 +- src/compiler/emitter.ts | 16 ++++-- src/compiler/scanner.ts | 49 +++++++++---------- .../binaryIntegerLiteralError.errors.txt | 12 ++--- .../octalIntegerLiteralError.errors.txt | 12 ++--- 6 files changed, 53 insertions(+), 44 deletions(-) diff --git a/src/compiler/diagnosticInformationMap.generated.ts b/src/compiler/diagnosticInformationMap.generated.ts index 13587df29e0..e4094b25812 100644 --- a/src/compiler/diagnosticInformationMap.generated.ts +++ b/src/compiler/diagnosticInformationMap.generated.ts @@ -125,8 +125,8 @@ module ts { Unterminated_template_literal: { code: 1160, category: DiagnosticCategory.Error, key: "Unterminated template literal." }, Unterminated_regular_expression_literal: { code: 1161, category: DiagnosticCategory.Error, key: "Unterminated regular expression literal." }, An_object_member_cannot_be_declared_optional: { code: 1162, category: DiagnosticCategory.Error, key: "An object member cannot be declared optional." }, - Binary_digits_expected: { code: 1163, category: DiagnosticCategory.Error, key: "Binary digits expected." }, - Octal_digits_expected: { code: 1164, category: DiagnosticCategory.Error, key: "Octal digits expected." }, + Binary_digit_expected: { code: 1163, category: DiagnosticCategory.Error, key: "Binary digit expected." }, + Octal_digit_expected: { code: 1164, category: DiagnosticCategory.Error, key: "Octal digit expected." }, Duplicate_identifier_0: { code: 2300, category: DiagnosticCategory.Error, key: "Duplicate identifier '{0}'." }, Initializer_of_instance_member_variable_0_cannot_reference_identifier_1_declared_in_the_constructor: { code: 2301, category: 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: DiagnosticCategory.Error, key: "Static members cannot reference class type parameters." }, diff --git a/src/compiler/diagnosticMessages.json b/src/compiler/diagnosticMessages.json index 427eba4531d..1cca0aa130d 100644 --- a/src/compiler/diagnosticMessages.json +++ b/src/compiler/diagnosticMessages.json @@ -491,11 +491,11 @@ "category": "Error", "code": 1162 }, - "Binary digits expected.": { + "Binary digit expected.": { "category": "Error", "code": 1163 }, - "Octal digits expected.": { + "Octal digit expected.": { "category": "Error", "code": 1164 }, diff --git a/src/compiler/emitter.ts b/src/compiler/emitter.ts index 0bf6c1f635b..4b4535616da 100644 --- a/src/compiler/emitter.ts +++ b/src/compiler/emitter.ts @@ -788,6 +788,18 @@ module ts { } } + function isBinaryOrOctalIntegerLiteral(text: string): boolean { + if (text.length <= 0) { + return false; + } + + if (text.charCodeAt(1) === CharacterCodes.B || text.charCodeAt(1) === CharacterCodes.b || + text.charCodeAt(1) === CharacterCodes.O || text.charCodeAt(1) === CharacterCodes.o) { + return true; + } + return false; + } + function emitLiteral(node: LiteralExpression): void { var text = getLiteralText(); @@ -795,9 +807,7 @@ module ts { writer.writeLiteral(text); } // For version below ES6, emit binary integer literal and octal integer literal as decimal value - else if (compilerOptions.target < ScriptTarget.ES6 && node.kind === SyntaxKind.NumericLiteral && - ((text.charCodeAt(1) === CharacterCodes.B || text.charCodeAt(1) === CharacterCodes.b || - text.charCodeAt(1) === CharacterCodes.O || text.charCodeAt(1) === CharacterCodes.o))) { + else if (compilerOptions.target < ScriptTarget.ES6 && node.kind === SyntaxKind.NumericLiteral && isBinaryOrOctalIntegerLiteral(text)) { write(node.text); } else { diff --git a/src/compiler/scanner.ts b/src/compiler/scanner.ts index 596155c8137..3c75580e7e7 100644 --- a/src/compiler/scanner.ts +++ b/src/compiler/scanner.ts @@ -520,27 +520,6 @@ module ts { return +(text.substring(start, pos)); } - function scanBinaryOrOctalDigits(base: number): number { - if (base !== 2 && base !== 8) { - return -1; - } - var value = 0; - while (true) { - var ch = text.charCodeAt(pos); - var valueOfCh = ch - CharacterCodes._0; - if (!isDigit(ch)) { - break; - } - // We know at this point that ch must be digit - if (valueOfCh >= base) { - return -1; - } - value = value * base + valueOfCh; - pos++; - } - return value; - } - function scanHexDigits(count: number, mustMatchCount?: boolean): number { var digits = 0; var value = 0; @@ -774,6 +753,26 @@ module ts { return token = SyntaxKind.Identifier; } + function scanBinaryOrOctalDigits(base: number): number { + Debug.assert(base !== 2 || base !== 8, "Expected either base 2 or base 8"); + + var value = 0; + while (true) { + var ch = text.charCodeAt(pos); + var valueOfCh = ch - CharacterCodes._0; + if (!isDigit(ch)) { + break; + } + // We know at this point that ch must be digit + if (valueOfCh >= base) { + break; + } + value = value * base + valueOfCh; + pos++; + } + return value; + } + function scan(): SyntaxKind { startPos = pos; precedingLineBreak = false; @@ -956,9 +955,9 @@ module ts { } else if (pos + 2 < len && (text.charCodeAt(pos + 1) === CharacterCodes.B || text.charCodeAt(pos + 1) === CharacterCodes.b)) { pos += 2; - var value = scanBinaryOrOctalDigits(/* binary */2); + var value = scanBinaryOrOctalDigits(/* base */ 2); if (value < 0) { - error(Diagnostics.Binary_digits_expected); + error(Diagnostics.Binary_digit_expected); value = 0; } tokenValue = "" + value; @@ -966,9 +965,9 @@ module ts { } else if (pos + 2 < len && (text.charCodeAt(pos + 1) === CharacterCodes.O || text.charCodeAt(pos + 1) === CharacterCodes.o)) { pos += 2; - var value = scanBinaryOrOctalDigits(/* octal */8); + var value = scanBinaryOrOctalDigits(/* base */ 8); if (value < 0) { - error(Diagnostics.Octal_digits_expected); + error(Diagnostics.Octal_digit_expected); value = 0; } tokenValue = "" + value; diff --git a/tests/baselines/reference/binaryIntegerLiteralError.errors.txt b/tests/baselines/reference/binaryIntegerLiteralError.errors.txt index 3346ee33774..20358a8406d 100644 --- a/tests/baselines/reference/binaryIntegerLiteralError.errors.txt +++ b/tests/baselines/reference/binaryIntegerLiteralError.errors.txt @@ -1,5 +1,5 @@ -tests/cases/conformance/es6/binaryAndOctalIntegerLiteral/binaryIntegerLiteralError.ts(2,17): error TS1163: Binary digits expected. -tests/cases/conformance/es6/binaryAndOctalIntegerLiteral/binaryIntegerLiteralError.ts(3,17): error TS1163: Binary digits expected. +tests/cases/conformance/es6/binaryAndOctalIntegerLiteral/binaryIntegerLiteralError.ts(2,17): error TS1005: ',' expected. +tests/cases/conformance/es6/binaryAndOctalIntegerLiteral/binaryIntegerLiteralError.ts(3,17): error TS1005: ',' expected. tests/cases/conformance/es6/binaryAndOctalIntegerLiteral/binaryIntegerLiteralError.ts(6,5): error TS2300: Duplicate identifier '0b11010'. tests/cases/conformance/es6/binaryAndOctalIntegerLiteral/binaryIntegerLiteralError.ts(7,5): error TS2300: Duplicate identifier '26'. tests/cases/conformance/es6/binaryAndOctalIntegerLiteral/binaryIntegerLiteralError.ts(8,5): error TS2300: Duplicate identifier '"26"'. @@ -8,11 +8,11 @@ tests/cases/conformance/es6/binaryAndOctalIntegerLiteral/binaryIntegerLiteralErr ==== tests/cases/conformance/es6/binaryAndOctalIntegerLiteral/binaryIntegerLiteralError.ts (5 errors) ==== // error var bin1 = 0B1102110; - -!!! error TS1163: Binary digits expected. + ~~~~ +!!! error TS1005: ',' expected. var bin1 = 0b11023410; - -!!! error TS1163: Binary digits expected. + ~~~~~ +!!! error TS1005: ',' expected. var obj1 = { 0b11010: "hi", diff --git a/tests/baselines/reference/octalIntegerLiteralError.errors.txt b/tests/baselines/reference/octalIntegerLiteralError.errors.txt index d0e2531796a..f1386f75b87 100644 --- a/tests/baselines/reference/octalIntegerLiteralError.errors.txt +++ b/tests/baselines/reference/octalIntegerLiteralError.errors.txt @@ -1,5 +1,5 @@ -tests/cases/conformance/es6/binaryAndOctalIntegerLiteral/octalIntegerLiteralError.ts(2,19): error TS1164: Octal digits expected. -tests/cases/conformance/es6/binaryAndOctalIntegerLiteral/octalIntegerLiteralError.ts(3,18): error TS1164: Octal digits expected. +tests/cases/conformance/es6/binaryAndOctalIntegerLiteral/octalIntegerLiteralError.ts(2,19): error TS1005: ',' expected. +tests/cases/conformance/es6/binaryAndOctalIntegerLiteral/octalIntegerLiteralError.ts(3,18): error TS1005: ',' expected. tests/cases/conformance/es6/binaryAndOctalIntegerLiteral/octalIntegerLiteralError.ts(6,5): error TS2300: Duplicate identifier '0O45436'. tests/cases/conformance/es6/binaryAndOctalIntegerLiteral/octalIntegerLiteralError.ts(7,5): error TS2300: Duplicate identifier '19230'. tests/cases/conformance/es6/binaryAndOctalIntegerLiteral/octalIntegerLiteralError.ts(8,5): error TS2300: Duplicate identifier '"19230"'. @@ -8,11 +8,11 @@ tests/cases/conformance/es6/binaryAndOctalIntegerLiteral/octalIntegerLiteralErro ==== tests/cases/conformance/es6/binaryAndOctalIntegerLiteral/octalIntegerLiteralError.ts (5 errors) ==== // error var oct1 = 0O13334823; - -!!! error TS1164: Octal digits expected. + ~~~ +!!! error TS1005: ',' expected. var oct2 = 0o34318592; - -!!! error TS1164: Octal digits expected. + ~~~~ +!!! error TS1005: ',' expected. var obj1 = { 0O45436: "hi", From 30d58dd2207e384cdf40826f65bedab4e7e33bb8 Mon Sep 17 00:00:00 2001 From: Yui T Date: Mon, 24 Nov 2014 14:36:05 -0800 Subject: [PATCH 059/195] Address code review --- .../diagnosticInformationMap.generated.ts | 4 +- src/compiler/diagnosticMessages.json | 4 +- src/compiler/emitter.ts | 16 ++++-- src/compiler/scanner.ts | 49 +++++++++---------- .../binaryIntegerLiteralError.errors.txt | 12 ++--- .../octalIntegerLiteralError.errors.txt | 12 ++--- 6 files changed, 53 insertions(+), 44 deletions(-) diff --git a/src/compiler/diagnosticInformationMap.generated.ts b/src/compiler/diagnosticInformationMap.generated.ts index 13587df29e0..e4094b25812 100644 --- a/src/compiler/diagnosticInformationMap.generated.ts +++ b/src/compiler/diagnosticInformationMap.generated.ts @@ -125,8 +125,8 @@ module ts { Unterminated_template_literal: { code: 1160, category: DiagnosticCategory.Error, key: "Unterminated template literal." }, Unterminated_regular_expression_literal: { code: 1161, category: DiagnosticCategory.Error, key: "Unterminated regular expression literal." }, An_object_member_cannot_be_declared_optional: { code: 1162, category: DiagnosticCategory.Error, key: "An object member cannot be declared optional." }, - Binary_digits_expected: { code: 1163, category: DiagnosticCategory.Error, key: "Binary digits expected." }, - Octal_digits_expected: { code: 1164, category: DiagnosticCategory.Error, key: "Octal digits expected." }, + Binary_digit_expected: { code: 1163, category: DiagnosticCategory.Error, key: "Binary digit expected." }, + Octal_digit_expected: { code: 1164, category: DiagnosticCategory.Error, key: "Octal digit expected." }, Duplicate_identifier_0: { code: 2300, category: DiagnosticCategory.Error, key: "Duplicate identifier '{0}'." }, Initializer_of_instance_member_variable_0_cannot_reference_identifier_1_declared_in_the_constructor: { code: 2301, category: 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: DiagnosticCategory.Error, key: "Static members cannot reference class type parameters." }, diff --git a/src/compiler/diagnosticMessages.json b/src/compiler/diagnosticMessages.json index 427eba4531d..1cca0aa130d 100644 --- a/src/compiler/diagnosticMessages.json +++ b/src/compiler/diagnosticMessages.json @@ -491,11 +491,11 @@ "category": "Error", "code": 1162 }, - "Binary digits expected.": { + "Binary digit expected.": { "category": "Error", "code": 1163 }, - "Octal digits expected.": { + "Octal digit expected.": { "category": "Error", "code": 1164 }, diff --git a/src/compiler/emitter.ts b/src/compiler/emitter.ts index 0bf6c1f635b..4b4535616da 100644 --- a/src/compiler/emitter.ts +++ b/src/compiler/emitter.ts @@ -788,6 +788,18 @@ module ts { } } + function isBinaryOrOctalIntegerLiteral(text: string): boolean { + if (text.length <= 0) { + return false; + } + + if (text.charCodeAt(1) === CharacterCodes.B || text.charCodeAt(1) === CharacterCodes.b || + text.charCodeAt(1) === CharacterCodes.O || text.charCodeAt(1) === CharacterCodes.o) { + return true; + } + return false; + } + function emitLiteral(node: LiteralExpression): void { var text = getLiteralText(); @@ -795,9 +807,7 @@ module ts { writer.writeLiteral(text); } // For version below ES6, emit binary integer literal and octal integer literal as decimal value - else if (compilerOptions.target < ScriptTarget.ES6 && node.kind === SyntaxKind.NumericLiteral && - ((text.charCodeAt(1) === CharacterCodes.B || text.charCodeAt(1) === CharacterCodes.b || - text.charCodeAt(1) === CharacterCodes.O || text.charCodeAt(1) === CharacterCodes.o))) { + else if (compilerOptions.target < ScriptTarget.ES6 && node.kind === SyntaxKind.NumericLiteral && isBinaryOrOctalIntegerLiteral(text)) { write(node.text); } else { diff --git a/src/compiler/scanner.ts b/src/compiler/scanner.ts index 596155c8137..3c75580e7e7 100644 --- a/src/compiler/scanner.ts +++ b/src/compiler/scanner.ts @@ -520,27 +520,6 @@ module ts { return +(text.substring(start, pos)); } - function scanBinaryOrOctalDigits(base: number): number { - if (base !== 2 && base !== 8) { - return -1; - } - var value = 0; - while (true) { - var ch = text.charCodeAt(pos); - var valueOfCh = ch - CharacterCodes._0; - if (!isDigit(ch)) { - break; - } - // We know at this point that ch must be digit - if (valueOfCh >= base) { - return -1; - } - value = value * base + valueOfCh; - pos++; - } - return value; - } - function scanHexDigits(count: number, mustMatchCount?: boolean): number { var digits = 0; var value = 0; @@ -774,6 +753,26 @@ module ts { return token = SyntaxKind.Identifier; } + function scanBinaryOrOctalDigits(base: number): number { + Debug.assert(base !== 2 || base !== 8, "Expected either base 2 or base 8"); + + var value = 0; + while (true) { + var ch = text.charCodeAt(pos); + var valueOfCh = ch - CharacterCodes._0; + if (!isDigit(ch)) { + break; + } + // We know at this point that ch must be digit + if (valueOfCh >= base) { + break; + } + value = value * base + valueOfCh; + pos++; + } + return value; + } + function scan(): SyntaxKind { startPos = pos; precedingLineBreak = false; @@ -956,9 +955,9 @@ module ts { } else if (pos + 2 < len && (text.charCodeAt(pos + 1) === CharacterCodes.B || text.charCodeAt(pos + 1) === CharacterCodes.b)) { pos += 2; - var value = scanBinaryOrOctalDigits(/* binary */2); + var value = scanBinaryOrOctalDigits(/* base */ 2); if (value < 0) { - error(Diagnostics.Binary_digits_expected); + error(Diagnostics.Binary_digit_expected); value = 0; } tokenValue = "" + value; @@ -966,9 +965,9 @@ module ts { } else if (pos + 2 < len && (text.charCodeAt(pos + 1) === CharacterCodes.O || text.charCodeAt(pos + 1) === CharacterCodes.o)) { pos += 2; - var value = scanBinaryOrOctalDigits(/* octal */8); + var value = scanBinaryOrOctalDigits(/* base */ 8); if (value < 0) { - error(Diagnostics.Octal_digits_expected); + error(Diagnostics.Octal_digit_expected); value = 0; } tokenValue = "" + value; diff --git a/tests/baselines/reference/binaryIntegerLiteralError.errors.txt b/tests/baselines/reference/binaryIntegerLiteralError.errors.txt index 3346ee33774..20358a8406d 100644 --- a/tests/baselines/reference/binaryIntegerLiteralError.errors.txt +++ b/tests/baselines/reference/binaryIntegerLiteralError.errors.txt @@ -1,5 +1,5 @@ -tests/cases/conformance/es6/binaryAndOctalIntegerLiteral/binaryIntegerLiteralError.ts(2,17): error TS1163: Binary digits expected. -tests/cases/conformance/es6/binaryAndOctalIntegerLiteral/binaryIntegerLiteralError.ts(3,17): error TS1163: Binary digits expected. +tests/cases/conformance/es6/binaryAndOctalIntegerLiteral/binaryIntegerLiteralError.ts(2,17): error TS1005: ',' expected. +tests/cases/conformance/es6/binaryAndOctalIntegerLiteral/binaryIntegerLiteralError.ts(3,17): error TS1005: ',' expected. tests/cases/conformance/es6/binaryAndOctalIntegerLiteral/binaryIntegerLiteralError.ts(6,5): error TS2300: Duplicate identifier '0b11010'. tests/cases/conformance/es6/binaryAndOctalIntegerLiteral/binaryIntegerLiteralError.ts(7,5): error TS2300: Duplicate identifier '26'. tests/cases/conformance/es6/binaryAndOctalIntegerLiteral/binaryIntegerLiteralError.ts(8,5): error TS2300: Duplicate identifier '"26"'. @@ -8,11 +8,11 @@ tests/cases/conformance/es6/binaryAndOctalIntegerLiteral/binaryIntegerLiteralErr ==== tests/cases/conformance/es6/binaryAndOctalIntegerLiteral/binaryIntegerLiteralError.ts (5 errors) ==== // error var bin1 = 0B1102110; - -!!! error TS1163: Binary digits expected. + ~~~~ +!!! error TS1005: ',' expected. var bin1 = 0b11023410; - -!!! error TS1163: Binary digits expected. + ~~~~~ +!!! error TS1005: ',' expected. var obj1 = { 0b11010: "hi", diff --git a/tests/baselines/reference/octalIntegerLiteralError.errors.txt b/tests/baselines/reference/octalIntegerLiteralError.errors.txt index d0e2531796a..f1386f75b87 100644 --- a/tests/baselines/reference/octalIntegerLiteralError.errors.txt +++ b/tests/baselines/reference/octalIntegerLiteralError.errors.txt @@ -1,5 +1,5 @@ -tests/cases/conformance/es6/binaryAndOctalIntegerLiteral/octalIntegerLiteralError.ts(2,19): error TS1164: Octal digits expected. -tests/cases/conformance/es6/binaryAndOctalIntegerLiteral/octalIntegerLiteralError.ts(3,18): error TS1164: Octal digits expected. +tests/cases/conformance/es6/binaryAndOctalIntegerLiteral/octalIntegerLiteralError.ts(2,19): error TS1005: ',' expected. +tests/cases/conformance/es6/binaryAndOctalIntegerLiteral/octalIntegerLiteralError.ts(3,18): error TS1005: ',' expected. tests/cases/conformance/es6/binaryAndOctalIntegerLiteral/octalIntegerLiteralError.ts(6,5): error TS2300: Duplicate identifier '0O45436'. tests/cases/conformance/es6/binaryAndOctalIntegerLiteral/octalIntegerLiteralError.ts(7,5): error TS2300: Duplicate identifier '19230'. tests/cases/conformance/es6/binaryAndOctalIntegerLiteral/octalIntegerLiteralError.ts(8,5): error TS2300: Duplicate identifier '"19230"'. @@ -8,11 +8,11 @@ tests/cases/conformance/es6/binaryAndOctalIntegerLiteral/octalIntegerLiteralErro ==== tests/cases/conformance/es6/binaryAndOctalIntegerLiteral/octalIntegerLiteralError.ts (5 errors) ==== // error var oct1 = 0O13334823; - -!!! error TS1164: Octal digits expected. + ~~~ +!!! error TS1005: ',' expected. var oct2 = 0o34318592; - -!!! error TS1164: Octal digits expected. + ~~~~ +!!! error TS1005: ',' expected. var obj1 = { 0O45436: "hi", From 123b2ebda7207a977a148238e073f240ef515cff Mon Sep 17 00:00:00 2001 From: Yui T Date: Tue, 25 Nov 2014 10:19:29 -0800 Subject: [PATCH 060/195] address code review --- src/compiler/scanner.ts | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/src/compiler/scanner.ts b/src/compiler/scanner.ts index 3c75580e7e7..b55fd53e0cc 100644 --- a/src/compiler/scanner.ts +++ b/src/compiler/scanner.ts @@ -760,11 +760,7 @@ module ts { while (true) { var ch = text.charCodeAt(pos); var valueOfCh = ch - CharacterCodes._0; - if (!isDigit(ch)) { - break; - } - // We know at this point that ch must be digit - if (valueOfCh >= base) { + if (!isDigit(ch) || valueOfCh >= base) { break; } value = value * base + valueOfCh; From 5b539f06361e1ce9cafd9cf3ec06efb350eb8b54 Mon Sep 17 00:00:00 2001 From: Cyrus Najmabadi Date: Tue, 25 Nov 2014 12:16:31 -0800 Subject: [PATCH 061/195] Report errors for using yield/generators right now. --- .../diagnosticInformationMap.generated.ts | 2 ++ src/compiler/diagnosticMessages.json | 8 ++++++++ src/compiler/parser.ts | 19 +++++++++++++++---- .../FunctionDeclaration10_es6.errors.txt | 8 ++++++++ .../reference/FunctionDeclaration10_es6.js | 8 -------- .../reference/FunctionDeclaration10_es6.types | 8 -------- .../FunctionDeclaration11_es6.errors.txt | 8 ++++++++ .../reference/FunctionDeclaration11_es6.js | 7 ------- .../reference/FunctionDeclaration11_es6.types | 4 ---- .../FunctionDeclaration13_es6.errors.txt | 5 ++++- .../reference/FunctionDeclaration13_es6.js | 12 ------------ .../FunctionDeclaration1_es6.errors.txt | 8 ++++++++ .../reference/FunctionDeclaration1_es6.js | 7 ------- .../reference/FunctionDeclaration1_es6.types | 4 ---- .../FunctionDeclaration6_es6.errors.txt | 5 ++++- .../reference/FunctionDeclaration6_es6.js | 8 -------- .../FunctionDeclaration7_es6.errors.txt | 5 ++++- .../reference/FunctionDeclaration7_es6.js | 14 -------------- .../FunctionExpression1_es6.errors.txt | 7 +++++++ .../reference/FunctionExpression1_es6.js | 6 ------ .../reference/FunctionExpression1_es6.types | 5 ----- .../FunctionExpression2_es6.errors.txt | 7 +++++++ .../reference/FunctionExpression2_es6.js | 6 ------ .../reference/FunctionExpression2_es6.types | 6 ------ ...unctionPropertyAssignments1_es6.errors.txt | 7 +++++++ .../FunctionPropertyAssignments1_es6.js | 6 ------ .../FunctionPropertyAssignments1_es6.types | 7 ------- .../MemberFunctionDeclaration1_es6.errors.txt | 9 +++++++++ .../MemberFunctionDeclaration1_es6.js | 13 ------------- .../MemberFunctionDeclaration1_es6.types | 7 ------- .../MemberFunctionDeclaration2_es6.errors.txt | 9 +++++++++ .../MemberFunctionDeclaration2_es6.js | 13 ------------- .../MemberFunctionDeclaration2_es6.types | 7 ------- .../MemberFunctionDeclaration7_es6.errors.txt | 9 +++++++++ .../MemberFunctionDeclaration7_es6.js | 13 ------------- .../MemberFunctionDeclaration7_es6.types | 8 -------- .../YieldExpression10_es6.errors.txt | 11 +++++++++++ .../reference/YieldExpression10_es6.js | 11 ----------- .../reference/YieldExpression10_es6.types | 11 ----------- .../YieldExpression11_es6.errors.txt | 11 +++++++++++ .../reference/YieldExpression11_es6.js | 16 ---------------- .../reference/YieldExpression11_es6.types | 10 ---------- .../YieldExpression13_es6.errors.txt | 7 +++++++ .../reference/YieldExpression13_es6.js | 7 ------- .../reference/YieldExpression13_es6.types | 4 ---- .../YieldExpression16_es6.errors.txt | 6 +++--- .../YieldExpression19_es6.errors.txt | 13 +++++++++++++ .../reference/YieldExpression19_es6.js | 17 ----------------- .../reference/YieldExpression19_es6.types | 14 -------------- .../reference/YieldExpression3_es6.errors.txt | 10 ++++++++++ .../reference/YieldExpression3_es6.js | 11 ----------- .../reference/YieldExpression3_es6.types | 7 ------- .../reference/YieldExpression4_es6.errors.txt | 10 ++++++++++ .../reference/YieldExpression4_es6.js | 11 ----------- .../reference/YieldExpression4_es6.types | 7 ------- .../reference/YieldExpression6_es6.errors.txt | 9 +++++++++ .../reference/YieldExpression6_es6.js | 9 --------- .../reference/YieldExpression6_es6.types | 6 ------ .../reference/YieldExpression7_es6.errors.txt | 9 +++++++++ .../reference/YieldExpression7_es6.js | 9 --------- .../reference/YieldExpression7_es6.types | 6 ------ .../reference/YieldExpression8_es6.errors.txt | 5 ++++- .../reference/YieldExpression8_es6.js | 11 ----------- .../reference/YieldExpression9_es6.errors.txt | 9 +++++++++ .../reference/YieldExpression9_es6.js | 9 --------- .../reference/YieldExpression9_es6.types | 7 ------- .../templateStringInYieldKeyword.errors.txt | 11 +++++++++++ .../reference/templateStringInYieldKeyword.js | 12 ------------ .../templateStringInYieldKeyword.types | 9 --------- ...ringWithEmbeddedYieldKeywordES6.errors.txt | 11 +++++++++++ ...mplateStringWithEmbeddedYieldKeywordES6.js | 12 ------------ ...ateStringWithEmbeddedYieldKeywordES6.types | 9 --------- 72 files changed, 227 insertions(+), 405 deletions(-) create mode 100644 tests/baselines/reference/FunctionDeclaration10_es6.errors.txt delete mode 100644 tests/baselines/reference/FunctionDeclaration10_es6.js delete mode 100644 tests/baselines/reference/FunctionDeclaration10_es6.types create mode 100644 tests/baselines/reference/FunctionDeclaration11_es6.errors.txt delete mode 100644 tests/baselines/reference/FunctionDeclaration11_es6.js delete mode 100644 tests/baselines/reference/FunctionDeclaration11_es6.types delete mode 100644 tests/baselines/reference/FunctionDeclaration13_es6.js create mode 100644 tests/baselines/reference/FunctionDeclaration1_es6.errors.txt delete mode 100644 tests/baselines/reference/FunctionDeclaration1_es6.js delete mode 100644 tests/baselines/reference/FunctionDeclaration1_es6.types delete mode 100644 tests/baselines/reference/FunctionDeclaration6_es6.js delete mode 100644 tests/baselines/reference/FunctionDeclaration7_es6.js create mode 100644 tests/baselines/reference/FunctionExpression1_es6.errors.txt delete mode 100644 tests/baselines/reference/FunctionExpression1_es6.js delete mode 100644 tests/baselines/reference/FunctionExpression1_es6.types create mode 100644 tests/baselines/reference/FunctionExpression2_es6.errors.txt delete mode 100644 tests/baselines/reference/FunctionExpression2_es6.js delete mode 100644 tests/baselines/reference/FunctionExpression2_es6.types create mode 100644 tests/baselines/reference/FunctionPropertyAssignments1_es6.errors.txt delete mode 100644 tests/baselines/reference/FunctionPropertyAssignments1_es6.js delete mode 100644 tests/baselines/reference/FunctionPropertyAssignments1_es6.types create mode 100644 tests/baselines/reference/MemberFunctionDeclaration1_es6.errors.txt delete mode 100644 tests/baselines/reference/MemberFunctionDeclaration1_es6.js delete mode 100644 tests/baselines/reference/MemberFunctionDeclaration1_es6.types create mode 100644 tests/baselines/reference/MemberFunctionDeclaration2_es6.errors.txt delete mode 100644 tests/baselines/reference/MemberFunctionDeclaration2_es6.js delete mode 100644 tests/baselines/reference/MemberFunctionDeclaration2_es6.types create mode 100644 tests/baselines/reference/MemberFunctionDeclaration7_es6.errors.txt delete mode 100644 tests/baselines/reference/MemberFunctionDeclaration7_es6.js delete mode 100644 tests/baselines/reference/MemberFunctionDeclaration7_es6.types create mode 100644 tests/baselines/reference/YieldExpression10_es6.errors.txt delete mode 100644 tests/baselines/reference/YieldExpression10_es6.js delete mode 100644 tests/baselines/reference/YieldExpression10_es6.types create mode 100644 tests/baselines/reference/YieldExpression11_es6.errors.txt delete mode 100644 tests/baselines/reference/YieldExpression11_es6.js delete mode 100644 tests/baselines/reference/YieldExpression11_es6.types create mode 100644 tests/baselines/reference/YieldExpression13_es6.errors.txt delete mode 100644 tests/baselines/reference/YieldExpression13_es6.js delete mode 100644 tests/baselines/reference/YieldExpression13_es6.types create mode 100644 tests/baselines/reference/YieldExpression19_es6.errors.txt delete mode 100644 tests/baselines/reference/YieldExpression19_es6.js delete mode 100644 tests/baselines/reference/YieldExpression19_es6.types create mode 100644 tests/baselines/reference/YieldExpression3_es6.errors.txt delete mode 100644 tests/baselines/reference/YieldExpression3_es6.js delete mode 100644 tests/baselines/reference/YieldExpression3_es6.types create mode 100644 tests/baselines/reference/YieldExpression4_es6.errors.txt delete mode 100644 tests/baselines/reference/YieldExpression4_es6.js delete mode 100644 tests/baselines/reference/YieldExpression4_es6.types create mode 100644 tests/baselines/reference/YieldExpression6_es6.errors.txt delete mode 100644 tests/baselines/reference/YieldExpression6_es6.js delete mode 100644 tests/baselines/reference/YieldExpression6_es6.types create mode 100644 tests/baselines/reference/YieldExpression7_es6.errors.txt delete mode 100644 tests/baselines/reference/YieldExpression7_es6.js delete mode 100644 tests/baselines/reference/YieldExpression7_es6.types delete mode 100644 tests/baselines/reference/YieldExpression8_es6.js create mode 100644 tests/baselines/reference/YieldExpression9_es6.errors.txt delete mode 100644 tests/baselines/reference/YieldExpression9_es6.js delete mode 100644 tests/baselines/reference/YieldExpression9_es6.types create mode 100644 tests/baselines/reference/templateStringInYieldKeyword.errors.txt delete mode 100644 tests/baselines/reference/templateStringInYieldKeyword.js delete mode 100644 tests/baselines/reference/templateStringInYieldKeyword.types create mode 100644 tests/baselines/reference/templateStringWithEmbeddedYieldKeywordES6.errors.txt delete mode 100644 tests/baselines/reference/templateStringWithEmbeddedYieldKeywordES6.js delete mode 100644 tests/baselines/reference/templateStringWithEmbeddedYieldKeywordES6.types diff --git a/src/compiler/diagnosticInformationMap.generated.ts b/src/compiler/diagnosticInformationMap.generated.ts index c877c6f9773..dbc77bb95b7 100644 --- a/src/compiler/diagnosticInformationMap.generated.ts +++ b/src/compiler/diagnosticInformationMap.generated.ts @@ -414,5 +414,7 @@ module ts { _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: 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: 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: DiagnosticCategory.Error, key: "You cannot rename this element." }, + yield_expressions_are_not_currently_supported: { code: 9000, category: DiagnosticCategory.Error, key: "'yield' expressions are not currently supported." }, + generators_are_not_currently_supported: { code: 9001, category: DiagnosticCategory.Error, key: "'generators' are not currently supported." }, }; } \ No newline at end of file diff --git a/src/compiler/diagnosticMessages.json b/src/compiler/diagnosticMessages.json index 5ee797482a9..4a5ce8f6f70 100644 --- a/src/compiler/diagnosticMessages.json +++ b/src/compiler/diagnosticMessages.json @@ -1654,5 +1654,13 @@ "You cannot rename this element.": { "category": "Error", "code": 8000 + }, + "'yield' expressions are not currently supported.": { + "category": "Error", + "code": 9000 + }, + "'generators' are not currently supported.": { + "category": "Error", + "code": 9001 } } diff --git a/src/compiler/parser.ts b/src/compiler/parser.ts index 8d7bf9e4fe7..f0d333ee68e 100644 --- a/src/compiler/parser.ts +++ b/src/compiler/parser.ts @@ -4302,12 +4302,20 @@ module ts { function checkFunctionDeclaration(node: FunctionLikeDeclaration) { return checkAnyParsedSignature(node) || checkFunctionName(node.name) || - checkForBodyInAmbientContext(node.body, /*isConstructor:*/ false); + checkForBodyInAmbientContext(node.body, /*isConstructor:*/ false) || + checkForGenerator(node); + } + + function checkForGenerator(node: Node) { + if (node.flags & NodeFlags.Generator) { + return grammarErrorOnFirstToken(node, Diagnostics.generators_are_not_currently_supported); + } } function checkFunctionExpression(node: FunctionExpression) { return checkAnyParsedSignature(node) || - checkFunctionName(node.name); + checkFunctionName(node.name) || + checkForGenerator(node); } function checkFunctionName(name: Node) { @@ -4386,7 +4394,8 @@ module ts { function checkMethod(node: MethodDeclaration) { return checkAnyParsedSignature(node) || checkForBodyInAmbientContext(node.body, /*isConstructor:*/ false) || - (node.parent.kind === SyntaxKind.ClassDeclaration && checkForInvalidQuestionMark(node, Diagnostics.A_class_member_cannot_be_declared_optional)); + (node.parent.kind === SyntaxKind.ClassDeclaration && checkForInvalidQuestionMark(node, Diagnostics.A_class_member_cannot_be_declared_optional)) || + checkForGenerator(node); } function checkForBodyInAmbientContext(body: Block | Expression, isConstructor: boolean): boolean { @@ -4732,7 +4741,8 @@ module ts { } function checkPropertyAssignment(node: PropertyDeclaration) { - return checkForInvalidQuestionMark(node, Diagnostics.An_object_member_cannot_be_declared_optional); + return checkForInvalidQuestionMark(node, Diagnostics.An_object_member_cannot_be_declared_optional) || + checkForGenerator(node); } function checkForInvalidQuestionMark(node: Declaration, message: DiagnosticMessage) { @@ -4963,6 +4973,7 @@ module ts { if (!(node.parserContextFlags & ParserContextFlags.Yield)) { return grammarErrorOnFirstToken(node, Diagnostics.yield_expression_must_be_contained_within_a_generator_declaration); } + return grammarErrorOnFirstToken(node, Diagnostics.yield_expressions_are_not_currently_supported); } } diff --git a/tests/baselines/reference/FunctionDeclaration10_es6.errors.txt b/tests/baselines/reference/FunctionDeclaration10_es6.errors.txt new file mode 100644 index 00000000000..4d167fbc3ec --- /dev/null +++ b/tests/baselines/reference/FunctionDeclaration10_es6.errors.txt @@ -0,0 +1,8 @@ +tests/cases/conformance/es6/functionDeclarations/FunctionDeclaration10_es6.ts(1,1): error TS9001: 'generators' are not currently supported. + + +==== tests/cases/conformance/es6/functionDeclarations/FunctionDeclaration10_es6.ts (1 errors) ==== + function * foo(a = yield => yield) { + ~~~~~~~~ +!!! error TS9001: 'generators' are not currently supported. + } \ No newline at end of file diff --git a/tests/baselines/reference/FunctionDeclaration10_es6.js b/tests/baselines/reference/FunctionDeclaration10_es6.js deleted file mode 100644 index 51694533964..00000000000 --- a/tests/baselines/reference/FunctionDeclaration10_es6.js +++ /dev/null @@ -1,8 +0,0 @@ -//// [FunctionDeclaration10_es6.ts] -function * foo(a = yield => yield) { -} - -//// [FunctionDeclaration10_es6.js] -function foo(a) { - if (a === void 0) { a = function (yield) { return yield; }; } -} diff --git a/tests/baselines/reference/FunctionDeclaration10_es6.types b/tests/baselines/reference/FunctionDeclaration10_es6.types deleted file mode 100644 index 973de97fab1..00000000000 --- a/tests/baselines/reference/FunctionDeclaration10_es6.types +++ /dev/null @@ -1,8 +0,0 @@ -=== tests/cases/conformance/es6/functionDeclarations/FunctionDeclaration10_es6.ts === -function * foo(a = yield => yield) { ->foo : (a?: (yield: any) => any) => void ->a : (yield: any) => any ->yield => yield : (yield: any) => any ->yield : any ->yield : any -} diff --git a/tests/baselines/reference/FunctionDeclaration11_es6.errors.txt b/tests/baselines/reference/FunctionDeclaration11_es6.errors.txt new file mode 100644 index 00000000000..2b623b33751 --- /dev/null +++ b/tests/baselines/reference/FunctionDeclaration11_es6.errors.txt @@ -0,0 +1,8 @@ +tests/cases/conformance/es6/functionDeclarations/FunctionDeclaration11_es6.ts(1,1): error TS9001: 'generators' are not currently supported. + + +==== tests/cases/conformance/es6/functionDeclarations/FunctionDeclaration11_es6.ts (1 errors) ==== + function * yield() { + ~~~~~~~~ +!!! error TS9001: 'generators' are not currently supported. + } \ No newline at end of file diff --git a/tests/baselines/reference/FunctionDeclaration11_es6.js b/tests/baselines/reference/FunctionDeclaration11_es6.js deleted file mode 100644 index ba497b3e529..00000000000 --- a/tests/baselines/reference/FunctionDeclaration11_es6.js +++ /dev/null @@ -1,7 +0,0 @@ -//// [FunctionDeclaration11_es6.ts] -function * yield() { -} - -//// [FunctionDeclaration11_es6.js] -function yield() { -} diff --git a/tests/baselines/reference/FunctionDeclaration11_es6.types b/tests/baselines/reference/FunctionDeclaration11_es6.types deleted file mode 100644 index f57a385c359..00000000000 --- a/tests/baselines/reference/FunctionDeclaration11_es6.types +++ /dev/null @@ -1,4 +0,0 @@ -=== tests/cases/conformance/es6/functionDeclarations/FunctionDeclaration11_es6.ts === -function * yield() { ->yield : () => void -} diff --git a/tests/baselines/reference/FunctionDeclaration13_es6.errors.txt b/tests/baselines/reference/FunctionDeclaration13_es6.errors.txt index 1f921475fd3..f19e6304188 100644 --- a/tests/baselines/reference/FunctionDeclaration13_es6.errors.txt +++ b/tests/baselines/reference/FunctionDeclaration13_es6.errors.txt @@ -1,8 +1,11 @@ +tests/cases/conformance/es6/functionDeclarations/FunctionDeclaration13_es6.ts(1,1): error TS9001: 'generators' are not currently supported. tests/cases/conformance/es6/functionDeclarations/FunctionDeclaration13_es6.ts(3,11): error TS2304: Cannot find name 'yield'. -==== tests/cases/conformance/es6/functionDeclarations/FunctionDeclaration13_es6.ts (1 errors) ==== +==== tests/cases/conformance/es6/functionDeclarations/FunctionDeclaration13_es6.ts (2 errors) ==== function * foo() { + ~~~~~~~~ +!!! error TS9001: 'generators' are not currently supported. // Legal to use 'yield' in a type context. var v: yield; ~~~~~ diff --git a/tests/baselines/reference/FunctionDeclaration13_es6.js b/tests/baselines/reference/FunctionDeclaration13_es6.js deleted file mode 100644 index 4c82b037569..00000000000 --- a/tests/baselines/reference/FunctionDeclaration13_es6.js +++ /dev/null @@ -1,12 +0,0 @@ -//// [FunctionDeclaration13_es6.ts] -function * foo() { - // Legal to use 'yield' in a type context. - var v: yield; -} - - -//// [FunctionDeclaration13_es6.js] -function foo() { - // Legal to use 'yield' in a type context. - var v; -} diff --git a/tests/baselines/reference/FunctionDeclaration1_es6.errors.txt b/tests/baselines/reference/FunctionDeclaration1_es6.errors.txt new file mode 100644 index 00000000000..8d995aaf6ca --- /dev/null +++ b/tests/baselines/reference/FunctionDeclaration1_es6.errors.txt @@ -0,0 +1,8 @@ +tests/cases/conformance/es6/functionDeclarations/FunctionDeclaration1_es6.ts(1,1): error TS9001: 'generators' are not currently supported. + + +==== tests/cases/conformance/es6/functionDeclarations/FunctionDeclaration1_es6.ts (1 errors) ==== + function * foo() { + ~~~~~~~~ +!!! error TS9001: 'generators' are not currently supported. + } \ No newline at end of file diff --git a/tests/baselines/reference/FunctionDeclaration1_es6.js b/tests/baselines/reference/FunctionDeclaration1_es6.js deleted file mode 100644 index 262c7ea02fb..00000000000 --- a/tests/baselines/reference/FunctionDeclaration1_es6.js +++ /dev/null @@ -1,7 +0,0 @@ -//// [FunctionDeclaration1_es6.ts] -function * foo() { -} - -//// [FunctionDeclaration1_es6.js] -function foo() { -} diff --git a/tests/baselines/reference/FunctionDeclaration1_es6.types b/tests/baselines/reference/FunctionDeclaration1_es6.types deleted file mode 100644 index 69b26e5dd10..00000000000 --- a/tests/baselines/reference/FunctionDeclaration1_es6.types +++ /dev/null @@ -1,4 +0,0 @@ -=== tests/cases/conformance/es6/functionDeclarations/FunctionDeclaration1_es6.ts === -function * foo() { ->foo : () => void -} diff --git a/tests/baselines/reference/FunctionDeclaration6_es6.errors.txt b/tests/baselines/reference/FunctionDeclaration6_es6.errors.txt index 7d5eb768be6..63e4a929ad9 100644 --- a/tests/baselines/reference/FunctionDeclaration6_es6.errors.txt +++ b/tests/baselines/reference/FunctionDeclaration6_es6.errors.txt @@ -1,8 +1,11 @@ +tests/cases/conformance/es6/functionDeclarations/FunctionDeclaration6_es6.ts(1,1): error TS9001: 'generators' are not currently supported. tests/cases/conformance/es6/functionDeclarations/FunctionDeclaration6_es6.ts(1,18): error TS2304: Cannot find name 'yield'. -==== tests/cases/conformance/es6/functionDeclarations/FunctionDeclaration6_es6.ts (1 errors) ==== +==== tests/cases/conformance/es6/functionDeclarations/FunctionDeclaration6_es6.ts (2 errors) ==== function*foo(a = yield) { + ~~~~~~~~ +!!! error TS9001: 'generators' are not currently supported. ~~~~~ !!! error TS2304: Cannot find name 'yield'. } \ No newline at end of file diff --git a/tests/baselines/reference/FunctionDeclaration6_es6.js b/tests/baselines/reference/FunctionDeclaration6_es6.js deleted file mode 100644 index 07b3ff52212..00000000000 --- a/tests/baselines/reference/FunctionDeclaration6_es6.js +++ /dev/null @@ -1,8 +0,0 @@ -//// [FunctionDeclaration6_es6.ts] -function*foo(a = yield) { -} - -//// [FunctionDeclaration6_es6.js] -function foo(a) { - if (a === void 0) { a = yield; } -} diff --git a/tests/baselines/reference/FunctionDeclaration7_es6.errors.txt b/tests/baselines/reference/FunctionDeclaration7_es6.errors.txt index 95ad904bdd9..8f191034350 100644 --- a/tests/baselines/reference/FunctionDeclaration7_es6.errors.txt +++ b/tests/baselines/reference/FunctionDeclaration7_es6.errors.txt @@ -1,8 +1,11 @@ +tests/cases/conformance/es6/functionDeclarations/FunctionDeclaration7_es6.ts(1,1): error TS9001: 'generators' are not currently supported. tests/cases/conformance/es6/functionDeclarations/FunctionDeclaration7_es6.ts(3,20): error TS2304: Cannot find name 'yield'. -==== tests/cases/conformance/es6/functionDeclarations/FunctionDeclaration7_es6.ts (1 errors) ==== +==== tests/cases/conformance/es6/functionDeclarations/FunctionDeclaration7_es6.ts (2 errors) ==== function*bar() { + ~~~~~~~~ +!!! error TS9001: 'generators' are not currently supported. // 'yield' here is an identifier, and not a yield expression. function*foo(a = yield) { ~~~~~ diff --git a/tests/baselines/reference/FunctionDeclaration7_es6.js b/tests/baselines/reference/FunctionDeclaration7_es6.js deleted file mode 100644 index 661e1668e0f..00000000000 --- a/tests/baselines/reference/FunctionDeclaration7_es6.js +++ /dev/null @@ -1,14 +0,0 @@ -//// [FunctionDeclaration7_es6.ts] -function*bar() { - // 'yield' here is an identifier, and not a yield expression. - function*foo(a = yield) { - } -} - -//// [FunctionDeclaration7_es6.js] -function bar() { - // 'yield' here is an identifier, and not a yield expression. - function foo(a) { - if (a === void 0) { a = yield; } - } -} diff --git a/tests/baselines/reference/FunctionExpression1_es6.errors.txt b/tests/baselines/reference/FunctionExpression1_es6.errors.txt new file mode 100644 index 00000000000..3d50ca090b0 --- /dev/null +++ b/tests/baselines/reference/FunctionExpression1_es6.errors.txt @@ -0,0 +1,7 @@ +tests/cases/conformance/es6/functionExpressions/FunctionExpression1_es6.ts(1,9): error TS9001: 'generators' are not currently supported. + + +==== tests/cases/conformance/es6/functionExpressions/FunctionExpression1_es6.ts (1 errors) ==== + var v = function * () { } + ~~~~~~~~ +!!! error TS9001: 'generators' are not currently supported. \ No newline at end of file diff --git a/tests/baselines/reference/FunctionExpression1_es6.js b/tests/baselines/reference/FunctionExpression1_es6.js deleted file mode 100644 index 7c8d82f4ca8..00000000000 --- a/tests/baselines/reference/FunctionExpression1_es6.js +++ /dev/null @@ -1,6 +0,0 @@ -//// [FunctionExpression1_es6.ts] -var v = function * () { } - -//// [FunctionExpression1_es6.js] -var v = function () { -}; diff --git a/tests/baselines/reference/FunctionExpression1_es6.types b/tests/baselines/reference/FunctionExpression1_es6.types deleted file mode 100644 index c857d53baba..00000000000 --- a/tests/baselines/reference/FunctionExpression1_es6.types +++ /dev/null @@ -1,5 +0,0 @@ -=== tests/cases/conformance/es6/functionExpressions/FunctionExpression1_es6.ts === -var v = function * () { } ->v : () => void ->function * () { } : () => void - diff --git a/tests/baselines/reference/FunctionExpression2_es6.errors.txt b/tests/baselines/reference/FunctionExpression2_es6.errors.txt new file mode 100644 index 00000000000..1fa7e2e2a73 --- /dev/null +++ b/tests/baselines/reference/FunctionExpression2_es6.errors.txt @@ -0,0 +1,7 @@ +tests/cases/conformance/es6/functionExpressions/FunctionExpression2_es6.ts(1,9): error TS9001: 'generators' are not currently supported. + + +==== tests/cases/conformance/es6/functionExpressions/FunctionExpression2_es6.ts (1 errors) ==== + var v = function * foo() { } + ~~~~~~~~ +!!! error TS9001: 'generators' are not currently supported. \ No newline at end of file diff --git a/tests/baselines/reference/FunctionExpression2_es6.js b/tests/baselines/reference/FunctionExpression2_es6.js deleted file mode 100644 index 0a2468bcb8c..00000000000 --- a/tests/baselines/reference/FunctionExpression2_es6.js +++ /dev/null @@ -1,6 +0,0 @@ -//// [FunctionExpression2_es6.ts] -var v = function * foo() { } - -//// [FunctionExpression2_es6.js] -var v = function foo() { -}; diff --git a/tests/baselines/reference/FunctionExpression2_es6.types b/tests/baselines/reference/FunctionExpression2_es6.types deleted file mode 100644 index 7bd9f090435..00000000000 --- a/tests/baselines/reference/FunctionExpression2_es6.types +++ /dev/null @@ -1,6 +0,0 @@ -=== tests/cases/conformance/es6/functionExpressions/FunctionExpression2_es6.ts === -var v = function * foo() { } ->v : () => void ->function * foo() { } : () => void ->foo : () => void - diff --git a/tests/baselines/reference/FunctionPropertyAssignments1_es6.errors.txt b/tests/baselines/reference/FunctionPropertyAssignments1_es6.errors.txt new file mode 100644 index 00000000000..53b2a016317 --- /dev/null +++ b/tests/baselines/reference/FunctionPropertyAssignments1_es6.errors.txt @@ -0,0 +1,7 @@ +tests/cases/conformance/es6/functionPropertyAssignments/FunctionPropertyAssignments1_es6.ts(1,11): error TS9001: 'generators' are not currently supported. + + +==== tests/cases/conformance/es6/functionPropertyAssignments/FunctionPropertyAssignments1_es6.ts (1 errors) ==== + var v = { *foo() { } } + ~ +!!! error TS9001: 'generators' are not currently supported. \ No newline at end of file diff --git a/tests/baselines/reference/FunctionPropertyAssignments1_es6.js b/tests/baselines/reference/FunctionPropertyAssignments1_es6.js deleted file mode 100644 index a451dcfb363..00000000000 --- a/tests/baselines/reference/FunctionPropertyAssignments1_es6.js +++ /dev/null @@ -1,6 +0,0 @@ -//// [FunctionPropertyAssignments1_es6.ts] -var v = { *foo() { } } - -//// [FunctionPropertyAssignments1_es6.js] -var v = { foo: function () { -} }; diff --git a/tests/baselines/reference/FunctionPropertyAssignments1_es6.types b/tests/baselines/reference/FunctionPropertyAssignments1_es6.types deleted file mode 100644 index 2dfbf5cb657..00000000000 --- a/tests/baselines/reference/FunctionPropertyAssignments1_es6.types +++ /dev/null @@ -1,7 +0,0 @@ -=== tests/cases/conformance/es6/functionPropertyAssignments/FunctionPropertyAssignments1_es6.ts === -var v = { *foo() { } } ->v : { foo: () => void; } ->{ *foo() { } } : { foo: () => void; } ->foo : () => void ->*foo() { } : () => void - diff --git a/tests/baselines/reference/MemberFunctionDeclaration1_es6.errors.txt b/tests/baselines/reference/MemberFunctionDeclaration1_es6.errors.txt new file mode 100644 index 00000000000..f50934ea705 --- /dev/null +++ b/tests/baselines/reference/MemberFunctionDeclaration1_es6.errors.txt @@ -0,0 +1,9 @@ +tests/cases/conformance/es6/memberFunctionDeclarations/MemberFunctionDeclaration1_es6.ts(2,4): error TS9001: 'generators' are not currently supported. + + +==== tests/cases/conformance/es6/memberFunctionDeclarations/MemberFunctionDeclaration1_es6.ts (1 errors) ==== + class C { + *foo() { } + ~ +!!! error TS9001: 'generators' are not currently supported. + } \ No newline at end of file diff --git a/tests/baselines/reference/MemberFunctionDeclaration1_es6.js b/tests/baselines/reference/MemberFunctionDeclaration1_es6.js deleted file mode 100644 index 86e7c9d418a..00000000000 --- a/tests/baselines/reference/MemberFunctionDeclaration1_es6.js +++ /dev/null @@ -1,13 +0,0 @@ -//// [MemberFunctionDeclaration1_es6.ts] -class C { - *foo() { } -} - -//// [MemberFunctionDeclaration1_es6.js] -var C = (function () { - function C() { - } - C.prototype.foo = function () { - }; - return C; -})(); diff --git a/tests/baselines/reference/MemberFunctionDeclaration1_es6.types b/tests/baselines/reference/MemberFunctionDeclaration1_es6.types deleted file mode 100644 index 265d3fdb291..00000000000 --- a/tests/baselines/reference/MemberFunctionDeclaration1_es6.types +++ /dev/null @@ -1,7 +0,0 @@ -=== tests/cases/conformance/es6/memberFunctionDeclarations/MemberFunctionDeclaration1_es6.ts === -class C { ->C : C - - *foo() { } ->foo : () => void -} diff --git a/tests/baselines/reference/MemberFunctionDeclaration2_es6.errors.txt b/tests/baselines/reference/MemberFunctionDeclaration2_es6.errors.txt new file mode 100644 index 00000000000..73c065f6a92 --- /dev/null +++ b/tests/baselines/reference/MemberFunctionDeclaration2_es6.errors.txt @@ -0,0 +1,9 @@ +tests/cases/conformance/es6/memberFunctionDeclarations/MemberFunctionDeclaration2_es6.ts(2,4): error TS9001: 'generators' are not currently supported. + + +==== tests/cases/conformance/es6/memberFunctionDeclarations/MemberFunctionDeclaration2_es6.ts (1 errors) ==== + class C { + public * foo() { } + ~~~~~~ +!!! error TS9001: 'generators' are not currently supported. + } \ No newline at end of file diff --git a/tests/baselines/reference/MemberFunctionDeclaration2_es6.js b/tests/baselines/reference/MemberFunctionDeclaration2_es6.js deleted file mode 100644 index efd60844dc7..00000000000 --- a/tests/baselines/reference/MemberFunctionDeclaration2_es6.js +++ /dev/null @@ -1,13 +0,0 @@ -//// [MemberFunctionDeclaration2_es6.ts] -class C { - public * foo() { } -} - -//// [MemberFunctionDeclaration2_es6.js] -var C = (function () { - function C() { - } - C.prototype.foo = function () { - }; - return C; -})(); diff --git a/tests/baselines/reference/MemberFunctionDeclaration2_es6.types b/tests/baselines/reference/MemberFunctionDeclaration2_es6.types deleted file mode 100644 index e1e3f9d17e5..00000000000 --- a/tests/baselines/reference/MemberFunctionDeclaration2_es6.types +++ /dev/null @@ -1,7 +0,0 @@ -=== tests/cases/conformance/es6/memberFunctionDeclarations/MemberFunctionDeclaration2_es6.ts === -class C { ->C : C - - public * foo() { } ->foo : () => void -} diff --git a/tests/baselines/reference/MemberFunctionDeclaration7_es6.errors.txt b/tests/baselines/reference/MemberFunctionDeclaration7_es6.errors.txt new file mode 100644 index 00000000000..40afaf5bc65 --- /dev/null +++ b/tests/baselines/reference/MemberFunctionDeclaration7_es6.errors.txt @@ -0,0 +1,9 @@ +tests/cases/conformance/es6/memberFunctionDeclarations/MemberFunctionDeclaration7_es6.ts(2,4): error TS9001: 'generators' are not currently supported. + + +==== tests/cases/conformance/es6/memberFunctionDeclarations/MemberFunctionDeclaration7_es6.ts (1 errors) ==== + class C { + *foo() { } + ~ +!!! error TS9001: 'generators' are not currently supported. + } \ No newline at end of file diff --git a/tests/baselines/reference/MemberFunctionDeclaration7_es6.js b/tests/baselines/reference/MemberFunctionDeclaration7_es6.js deleted file mode 100644 index 211713c6e14..00000000000 --- a/tests/baselines/reference/MemberFunctionDeclaration7_es6.js +++ /dev/null @@ -1,13 +0,0 @@ -//// [MemberFunctionDeclaration7_es6.ts] -class C { - *foo() { } -} - -//// [MemberFunctionDeclaration7_es6.js] -var C = (function () { - function C() { - } - C.prototype.foo = function () { - }; - return C; -})(); diff --git a/tests/baselines/reference/MemberFunctionDeclaration7_es6.types b/tests/baselines/reference/MemberFunctionDeclaration7_es6.types deleted file mode 100644 index e4c864b9422..00000000000 --- a/tests/baselines/reference/MemberFunctionDeclaration7_es6.types +++ /dev/null @@ -1,8 +0,0 @@ -=== tests/cases/conformance/es6/memberFunctionDeclarations/MemberFunctionDeclaration7_es6.ts === -class C { ->C : C - - *foo() { } ->foo : () => void ->T : T -} diff --git a/tests/baselines/reference/YieldExpression10_es6.errors.txt b/tests/baselines/reference/YieldExpression10_es6.errors.txt new file mode 100644 index 00000000000..e2e52a0c5be --- /dev/null +++ b/tests/baselines/reference/YieldExpression10_es6.errors.txt @@ -0,0 +1,11 @@ +tests/cases/conformance/es6/yieldExpressions/YieldExpression10_es6.ts(1,11): error TS9001: 'generators' are not currently supported. + + +==== tests/cases/conformance/es6/yieldExpressions/YieldExpression10_es6.ts (1 errors) ==== + var v = { * foo() { + ~ +!!! error TS9001: 'generators' are not currently supported. + yield(foo); + } + } + \ No newline at end of file diff --git a/tests/baselines/reference/YieldExpression10_es6.js b/tests/baselines/reference/YieldExpression10_es6.js deleted file mode 100644 index f111e6e1bdf..00000000000 --- a/tests/baselines/reference/YieldExpression10_es6.js +++ /dev/null @@ -1,11 +0,0 @@ -//// [YieldExpression10_es6.ts] -var v = { * foo() { - yield(foo); - } -} - - -//// [YieldExpression10_es6.js] -var v = { foo: function () { - ; -} }; diff --git a/tests/baselines/reference/YieldExpression10_es6.types b/tests/baselines/reference/YieldExpression10_es6.types deleted file mode 100644 index e0d3f84c6c8..00000000000 --- a/tests/baselines/reference/YieldExpression10_es6.types +++ /dev/null @@ -1,11 +0,0 @@ -=== tests/cases/conformance/es6/yieldExpressions/YieldExpression10_es6.ts === -var v = { * foo() { ->v : { foo: () => void; } ->{ * foo() { yield(foo); }} : { foo: () => void; } ->foo : () => void ->* foo() { yield(foo); } : () => void - - yield(foo); - } -} - diff --git a/tests/baselines/reference/YieldExpression11_es6.errors.txt b/tests/baselines/reference/YieldExpression11_es6.errors.txt new file mode 100644 index 00000000000..534d8b17bf2 --- /dev/null +++ b/tests/baselines/reference/YieldExpression11_es6.errors.txt @@ -0,0 +1,11 @@ +tests/cases/conformance/es6/yieldExpressions/YieldExpression11_es6.ts(2,3): error TS9001: 'generators' are not currently supported. + + +==== tests/cases/conformance/es6/yieldExpressions/YieldExpression11_es6.ts (1 errors) ==== + class C { + *foo() { + ~ +!!! error TS9001: 'generators' are not currently supported. + yield(foo); + } + } \ No newline at end of file diff --git a/tests/baselines/reference/YieldExpression11_es6.js b/tests/baselines/reference/YieldExpression11_es6.js deleted file mode 100644 index 306cef3051e..00000000000 --- a/tests/baselines/reference/YieldExpression11_es6.js +++ /dev/null @@ -1,16 +0,0 @@ -//// [YieldExpression11_es6.ts] -class C { - *foo() { - yield(foo); - } -} - -//// [YieldExpression11_es6.js] -var C = (function () { - function C() { - } - C.prototype.foo = function () { - ; - }; - return C; -})(); diff --git a/tests/baselines/reference/YieldExpression11_es6.types b/tests/baselines/reference/YieldExpression11_es6.types deleted file mode 100644 index cdb70b3af0d..00000000000 --- a/tests/baselines/reference/YieldExpression11_es6.types +++ /dev/null @@ -1,10 +0,0 @@ -=== tests/cases/conformance/es6/yieldExpressions/YieldExpression11_es6.ts === -class C { ->C : C - - *foo() { ->foo : () => void - - yield(foo); - } -} diff --git a/tests/baselines/reference/YieldExpression13_es6.errors.txt b/tests/baselines/reference/YieldExpression13_es6.errors.txt new file mode 100644 index 00000000000..56a0e385cd0 --- /dev/null +++ b/tests/baselines/reference/YieldExpression13_es6.errors.txt @@ -0,0 +1,7 @@ +tests/cases/conformance/es6/yieldExpressions/YieldExpression13_es6.ts(1,1): error TS9001: 'generators' are not currently supported. + + +==== tests/cases/conformance/es6/yieldExpressions/YieldExpression13_es6.ts (1 errors) ==== + function* foo() { yield } + ~~~~~~~~ +!!! error TS9001: 'generators' are not currently supported. \ No newline at end of file diff --git a/tests/baselines/reference/YieldExpression13_es6.js b/tests/baselines/reference/YieldExpression13_es6.js deleted file mode 100644 index 328fc80dbdd..00000000000 --- a/tests/baselines/reference/YieldExpression13_es6.js +++ /dev/null @@ -1,7 +0,0 @@ -//// [YieldExpression13_es6.ts] -function* foo() { yield } - -//// [YieldExpression13_es6.js] -function foo() { - ; -} diff --git a/tests/baselines/reference/YieldExpression13_es6.types b/tests/baselines/reference/YieldExpression13_es6.types deleted file mode 100644 index 23a9fe6299a..00000000000 --- a/tests/baselines/reference/YieldExpression13_es6.types +++ /dev/null @@ -1,4 +0,0 @@ -=== tests/cases/conformance/es6/yieldExpressions/YieldExpression13_es6.ts === -function* foo() { yield } ->foo : () => void - diff --git a/tests/baselines/reference/YieldExpression16_es6.errors.txt b/tests/baselines/reference/YieldExpression16_es6.errors.txt index e5a9b93eece..4a01a92d290 100644 --- a/tests/baselines/reference/YieldExpression16_es6.errors.txt +++ b/tests/baselines/reference/YieldExpression16_es6.errors.txt @@ -1,11 +1,11 @@ -tests/cases/conformance/es6/yieldExpressions/YieldExpression16_es6.ts(3,5): error TS1163: 'yield' expression must be contained_within a generator declaration. +tests/cases/conformance/es6/yieldExpressions/YieldExpression16_es6.ts(1,1): error TS9001: 'generators' are not currently supported. ==== tests/cases/conformance/es6/yieldExpressions/YieldExpression16_es6.ts (1 errors) ==== function* foo() { + ~~~~~~~~ +!!! error TS9001: 'generators' are not currently supported. function bar() { yield foo; - ~~~~~ -!!! error TS1163: 'yield' expression must be contained_within a generator declaration. } } \ No newline at end of file diff --git a/tests/baselines/reference/YieldExpression19_es6.errors.txt b/tests/baselines/reference/YieldExpression19_es6.errors.txt new file mode 100644 index 00000000000..cce934f5687 --- /dev/null +++ b/tests/baselines/reference/YieldExpression19_es6.errors.txt @@ -0,0 +1,13 @@ +tests/cases/conformance/es6/yieldExpressions/YieldExpression19_es6.ts(1,1): error TS9001: 'generators' are not currently supported. + + +==== tests/cases/conformance/es6/yieldExpressions/YieldExpression19_es6.ts (1 errors) ==== + function*foo() { + ~~~~~~~~ +!!! error TS9001: 'generators' are not currently supported. + function bar() { + function* quux() { + yield(foo); + } + } + } \ No newline at end of file diff --git a/tests/baselines/reference/YieldExpression19_es6.js b/tests/baselines/reference/YieldExpression19_es6.js deleted file mode 100644 index 91643e09b0e..00000000000 --- a/tests/baselines/reference/YieldExpression19_es6.js +++ /dev/null @@ -1,17 +0,0 @@ -//// [YieldExpression19_es6.ts] -function*foo() { - function bar() { - function* quux() { - yield(foo); - } - } -} - -//// [YieldExpression19_es6.js] -function foo() { - function bar() { - function quux() { - ; - } - } -} diff --git a/tests/baselines/reference/YieldExpression19_es6.types b/tests/baselines/reference/YieldExpression19_es6.types deleted file mode 100644 index a8af884c98f..00000000000 --- a/tests/baselines/reference/YieldExpression19_es6.types +++ /dev/null @@ -1,14 +0,0 @@ -=== tests/cases/conformance/es6/yieldExpressions/YieldExpression19_es6.ts === -function*foo() { ->foo : () => void - - function bar() { ->bar : () => void - - function* quux() { ->quux : () => void - - yield(foo); - } - } -} diff --git a/tests/baselines/reference/YieldExpression3_es6.errors.txt b/tests/baselines/reference/YieldExpression3_es6.errors.txt new file mode 100644 index 00000000000..577816f3d7c --- /dev/null +++ b/tests/baselines/reference/YieldExpression3_es6.errors.txt @@ -0,0 +1,10 @@ +tests/cases/conformance/es6/yieldExpressions/YieldExpression3_es6.ts(1,1): error TS9001: 'generators' are not currently supported. + + +==== tests/cases/conformance/es6/yieldExpressions/YieldExpression3_es6.ts (1 errors) ==== + function* foo() { + ~~~~~~~~ +!!! error TS9001: 'generators' are not currently supported. + yield + yield + } \ No newline at end of file diff --git a/tests/baselines/reference/YieldExpression3_es6.js b/tests/baselines/reference/YieldExpression3_es6.js deleted file mode 100644 index cc3716587ea..00000000000 --- a/tests/baselines/reference/YieldExpression3_es6.js +++ /dev/null @@ -1,11 +0,0 @@ -//// [YieldExpression3_es6.ts] -function* foo() { - yield - yield -} - -//// [YieldExpression3_es6.js] -function foo() { - ; - ; -} diff --git a/tests/baselines/reference/YieldExpression3_es6.types b/tests/baselines/reference/YieldExpression3_es6.types deleted file mode 100644 index f9ad4faffdb..00000000000 --- a/tests/baselines/reference/YieldExpression3_es6.types +++ /dev/null @@ -1,7 +0,0 @@ -=== tests/cases/conformance/es6/yieldExpressions/YieldExpression3_es6.ts === -function* foo() { ->foo : () => void - - yield - yield -} diff --git a/tests/baselines/reference/YieldExpression4_es6.errors.txt b/tests/baselines/reference/YieldExpression4_es6.errors.txt new file mode 100644 index 00000000000..10ca8eed8b1 --- /dev/null +++ b/tests/baselines/reference/YieldExpression4_es6.errors.txt @@ -0,0 +1,10 @@ +tests/cases/conformance/es6/yieldExpressions/YieldExpression4_es6.ts(1,1): error TS9001: 'generators' are not currently supported. + + +==== tests/cases/conformance/es6/yieldExpressions/YieldExpression4_es6.ts (1 errors) ==== + function* foo() { + ~~~~~~~~ +!!! error TS9001: 'generators' are not currently supported. + yield; + yield; + } \ No newline at end of file diff --git a/tests/baselines/reference/YieldExpression4_es6.js b/tests/baselines/reference/YieldExpression4_es6.js deleted file mode 100644 index 84b11a03a2c..00000000000 --- a/tests/baselines/reference/YieldExpression4_es6.js +++ /dev/null @@ -1,11 +0,0 @@ -//// [YieldExpression4_es6.ts] -function* foo() { - yield; - yield; -} - -//// [YieldExpression4_es6.js] -function foo() { - ; - ; -} diff --git a/tests/baselines/reference/YieldExpression4_es6.types b/tests/baselines/reference/YieldExpression4_es6.types deleted file mode 100644 index 083d145d06f..00000000000 --- a/tests/baselines/reference/YieldExpression4_es6.types +++ /dev/null @@ -1,7 +0,0 @@ -=== tests/cases/conformance/es6/yieldExpressions/YieldExpression4_es6.ts === -function* foo() { ->foo : () => void - - yield; - yield; -} diff --git a/tests/baselines/reference/YieldExpression6_es6.errors.txt b/tests/baselines/reference/YieldExpression6_es6.errors.txt new file mode 100644 index 00000000000..7184e36156d --- /dev/null +++ b/tests/baselines/reference/YieldExpression6_es6.errors.txt @@ -0,0 +1,9 @@ +tests/cases/conformance/es6/yieldExpressions/YieldExpression6_es6.ts(1,1): error TS9001: 'generators' are not currently supported. + + +==== tests/cases/conformance/es6/yieldExpressions/YieldExpression6_es6.ts (1 errors) ==== + function* foo() { + ~~~~~~~~ +!!! error TS9001: 'generators' are not currently supported. + yield*foo + } \ No newline at end of file diff --git a/tests/baselines/reference/YieldExpression6_es6.js b/tests/baselines/reference/YieldExpression6_es6.js deleted file mode 100644 index 5024e9bbd40..00000000000 --- a/tests/baselines/reference/YieldExpression6_es6.js +++ /dev/null @@ -1,9 +0,0 @@ -//// [YieldExpression6_es6.ts] -function* foo() { - yield*foo -} - -//// [YieldExpression6_es6.js] -function foo() { - ; -} diff --git a/tests/baselines/reference/YieldExpression6_es6.types b/tests/baselines/reference/YieldExpression6_es6.types deleted file mode 100644 index fd410d2c959..00000000000 --- a/tests/baselines/reference/YieldExpression6_es6.types +++ /dev/null @@ -1,6 +0,0 @@ -=== tests/cases/conformance/es6/yieldExpressions/YieldExpression6_es6.ts === -function* foo() { ->foo : () => void - - yield*foo -} diff --git a/tests/baselines/reference/YieldExpression7_es6.errors.txt b/tests/baselines/reference/YieldExpression7_es6.errors.txt new file mode 100644 index 00000000000..28279e24ff8 --- /dev/null +++ b/tests/baselines/reference/YieldExpression7_es6.errors.txt @@ -0,0 +1,9 @@ +tests/cases/conformance/es6/yieldExpressions/YieldExpression7_es6.ts(1,1): error TS9001: 'generators' are not currently supported. + + +==== tests/cases/conformance/es6/yieldExpressions/YieldExpression7_es6.ts (1 errors) ==== + function* foo() { + ~~~~~~~~ +!!! error TS9001: 'generators' are not currently supported. + yield foo + } \ No newline at end of file diff --git a/tests/baselines/reference/YieldExpression7_es6.js b/tests/baselines/reference/YieldExpression7_es6.js deleted file mode 100644 index 96ef5af107e..00000000000 --- a/tests/baselines/reference/YieldExpression7_es6.js +++ /dev/null @@ -1,9 +0,0 @@ -//// [YieldExpression7_es6.ts] -function* foo() { - yield foo -} - -//// [YieldExpression7_es6.js] -function foo() { - ; -} diff --git a/tests/baselines/reference/YieldExpression7_es6.types b/tests/baselines/reference/YieldExpression7_es6.types deleted file mode 100644 index 17e1a3b2bfb..00000000000 --- a/tests/baselines/reference/YieldExpression7_es6.types +++ /dev/null @@ -1,6 +0,0 @@ -=== tests/cases/conformance/es6/yieldExpressions/YieldExpression7_es6.ts === -function* foo() { ->foo : () => void - - yield foo -} diff --git a/tests/baselines/reference/YieldExpression8_es6.errors.txt b/tests/baselines/reference/YieldExpression8_es6.errors.txt index f4dd30b1a19..412a4b6f4bd 100644 --- a/tests/baselines/reference/YieldExpression8_es6.errors.txt +++ b/tests/baselines/reference/YieldExpression8_es6.errors.txt @@ -1,10 +1,13 @@ +tests/cases/conformance/es6/yieldExpressions/YieldExpression8_es6.ts(2,1): error TS9001: 'generators' are not currently supported. tests/cases/conformance/es6/yieldExpressions/YieldExpression8_es6.ts(1,1): error TS2304: Cannot find name 'yield'. -==== tests/cases/conformance/es6/yieldExpressions/YieldExpression8_es6.ts (1 errors) ==== +==== tests/cases/conformance/es6/yieldExpressions/YieldExpression8_es6.ts (2 errors) ==== yield(foo); ~~~~~ !!! error TS2304: Cannot find name 'yield'. function* foo() { + ~~~~~~~~ +!!! error TS9001: 'generators' are not currently supported. yield(foo); } \ No newline at end of file diff --git a/tests/baselines/reference/YieldExpression8_es6.js b/tests/baselines/reference/YieldExpression8_es6.js deleted file mode 100644 index 190c2cc3da5..00000000000 --- a/tests/baselines/reference/YieldExpression8_es6.js +++ /dev/null @@ -1,11 +0,0 @@ -//// [YieldExpression8_es6.ts] -yield(foo); -function* foo() { - yield(foo); -} - -//// [YieldExpression8_es6.js] -yield(foo); -function foo() { - ; -} diff --git a/tests/baselines/reference/YieldExpression9_es6.errors.txt b/tests/baselines/reference/YieldExpression9_es6.errors.txt new file mode 100644 index 00000000000..4d13d02196a --- /dev/null +++ b/tests/baselines/reference/YieldExpression9_es6.errors.txt @@ -0,0 +1,9 @@ +tests/cases/conformance/es6/yieldExpressions/YieldExpression9_es6.ts(1,9): error TS9001: 'generators' are not currently supported. + + +==== tests/cases/conformance/es6/yieldExpressions/YieldExpression9_es6.ts (1 errors) ==== + var v = function*() { + ~~~~~~~~ +!!! error TS9001: 'generators' are not currently supported. + yield(foo); + } \ No newline at end of file diff --git a/tests/baselines/reference/YieldExpression9_es6.js b/tests/baselines/reference/YieldExpression9_es6.js deleted file mode 100644 index 978e0d455bd..00000000000 --- a/tests/baselines/reference/YieldExpression9_es6.js +++ /dev/null @@ -1,9 +0,0 @@ -//// [YieldExpression9_es6.ts] -var v = function*() { - yield(foo); -} - -//// [YieldExpression9_es6.js] -var v = function () { - ; -}; diff --git a/tests/baselines/reference/YieldExpression9_es6.types b/tests/baselines/reference/YieldExpression9_es6.types deleted file mode 100644 index a570d2f09a0..00000000000 --- a/tests/baselines/reference/YieldExpression9_es6.types +++ /dev/null @@ -1,7 +0,0 @@ -=== tests/cases/conformance/es6/yieldExpressions/YieldExpression9_es6.ts === -var v = function*() { ->v : () => void ->function*() { yield(foo);} : () => void - - yield(foo); -} diff --git a/tests/baselines/reference/templateStringInYieldKeyword.errors.txt b/tests/baselines/reference/templateStringInYieldKeyword.errors.txt new file mode 100644 index 00000000000..1d48ebff1d0 --- /dev/null +++ b/tests/baselines/reference/templateStringInYieldKeyword.errors.txt @@ -0,0 +1,11 @@ +tests/cases/conformance/es6/templates/templateStringInYieldKeyword.ts(1,1): error TS9001: 'generators' are not currently supported. + + +==== tests/cases/conformance/es6/templates/templateStringInYieldKeyword.ts (1 errors) ==== + function* gen() { + ~~~~~~~~ +!!! error TS9001: 'generators' are not currently supported. + // Once this is supported, the inner expression does not need to be parenthesized. + var x = yield `abc${ x }def`; + } + \ No newline at end of file diff --git a/tests/baselines/reference/templateStringInYieldKeyword.js b/tests/baselines/reference/templateStringInYieldKeyword.js deleted file mode 100644 index 8e98b269cd0..00000000000 --- a/tests/baselines/reference/templateStringInYieldKeyword.js +++ /dev/null @@ -1,12 +0,0 @@ -//// [templateStringInYieldKeyword.ts] -function* gen() { - // Once this is supported, the inner expression does not need to be parenthesized. - var x = yield `abc${ x }def`; -} - - -//// [templateStringInYieldKeyword.js] -function gen() { - // Once this is supported, the inner expression does not need to be parenthesized. - var x = ; -} diff --git a/tests/baselines/reference/templateStringInYieldKeyword.types b/tests/baselines/reference/templateStringInYieldKeyword.types deleted file mode 100644 index c3d49ddffb7..00000000000 --- a/tests/baselines/reference/templateStringInYieldKeyword.types +++ /dev/null @@ -1,9 +0,0 @@ -=== tests/cases/conformance/es6/templates/templateStringInYieldKeyword.ts === -function* gen() { ->gen : () => void - - // Once this is supported, the inner expression does not need to be parenthesized. - var x = yield `abc${ x }def`; ->x : unknown -} - diff --git a/tests/baselines/reference/templateStringWithEmbeddedYieldKeywordES6.errors.txt b/tests/baselines/reference/templateStringWithEmbeddedYieldKeywordES6.errors.txt new file mode 100644 index 00000000000..f51ff4863d5 --- /dev/null +++ b/tests/baselines/reference/templateStringWithEmbeddedYieldKeywordES6.errors.txt @@ -0,0 +1,11 @@ +tests/cases/conformance/es6/templates/templateStringWithEmbeddedYieldKeywordES6.ts(1,1): error TS9001: 'generators' are not currently supported. + + +==== tests/cases/conformance/es6/templates/templateStringWithEmbeddedYieldKeywordES6.ts (1 errors) ==== + function* gen() { + ~~~~~~~~ +!!! error TS9001: 'generators' are not currently supported. + // Once this is supported, yield *must* be parenthesized. + var x = `abc${ yield 10 }def`; + } + \ No newline at end of file diff --git a/tests/baselines/reference/templateStringWithEmbeddedYieldKeywordES6.js b/tests/baselines/reference/templateStringWithEmbeddedYieldKeywordES6.js deleted file mode 100644 index 80021ecae2e..00000000000 --- a/tests/baselines/reference/templateStringWithEmbeddedYieldKeywordES6.js +++ /dev/null @@ -1,12 +0,0 @@ -//// [templateStringWithEmbeddedYieldKeywordES6.ts] -function* gen() { - // Once this is supported, yield *must* be parenthesized. - var x = `abc${ yield 10 }def`; -} - - -//// [templateStringWithEmbeddedYieldKeywordES6.js] -function gen() { - // Once this is supported, yield *must* be parenthesized. - var x = `abc${}def`; -} diff --git a/tests/baselines/reference/templateStringWithEmbeddedYieldKeywordES6.types b/tests/baselines/reference/templateStringWithEmbeddedYieldKeywordES6.types deleted file mode 100644 index c55b40148b1..00000000000 --- a/tests/baselines/reference/templateStringWithEmbeddedYieldKeywordES6.types +++ /dev/null @@ -1,9 +0,0 @@ -=== tests/cases/conformance/es6/templates/templateStringWithEmbeddedYieldKeywordES6.ts === -function* gen() { ->gen : () => void - - // Once this is supported, yield *must* be parenthesized. - var x = `abc${ yield 10 }def`; ->x : string -} - From d37368e39f68daf18b530efbdbc61b92d290fef1 Mon Sep 17 00:00:00 2001 From: Cyrus Najmabadi Date: Tue, 25 Nov 2014 13:54:26 -0800 Subject: [PATCH 062/195] Report error on asterisk token. --- src/compiler/parser.ts | 80 +++++++++---------- src/compiler/types.ts | 4 +- .../FunctionDeclaration10_es6.errors.txt | 4 +- .../FunctionDeclaration11_es6.errors.txt | 4 +- .../FunctionDeclaration13_es6.errors.txt | 4 +- .../FunctionDeclaration1_es6.errors.txt | 4 +- .../FunctionDeclaration6_es6.errors.txt | 4 +- .../FunctionDeclaration7_es6.errors.txt | 4 +- .../FunctionExpression1_es6.errors.txt | 4 +- .../FunctionExpression2_es6.errors.txt | 4 +- .../MemberFunctionDeclaration2_es6.errors.txt | 4 +- .../YieldExpression13_es6.errors.txt | 4 +- .../YieldExpression16_es6.errors.txt | 4 +- .../YieldExpression19_es6.errors.txt | 4 +- .../reference/YieldExpression3_es6.errors.txt | 4 +- .../reference/YieldExpression4_es6.errors.txt | 4 +- .../reference/YieldExpression6_es6.errors.txt | 4 +- .../reference/YieldExpression7_es6.errors.txt | 4 +- .../reference/YieldExpression8_es6.errors.txt | 4 +- .../reference/YieldExpression9_es6.errors.txt | 4 +- .../templateStringInYieldKeyword.errors.txt | 4 +- ...ringWithEmbeddedYieldKeywordES6.errors.txt | 4 +- 22 files changed, 78 insertions(+), 86 deletions(-) diff --git a/src/compiler/parser.ts b/src/compiler/parser.ts index f0d333ee68e..4dd85715852 100644 --- a/src/compiler/parser.ts +++ b/src/compiler/parser.ts @@ -1155,6 +1155,15 @@ module ts { return false; } + function parseOptionalToken(t: SyntaxKind): Node { + if (token === t) { + var node = createNode(t); + nextToken(); + return finishNode(node); + } + return undefined; + } + function canParseSemicolon() { // If there's a real semicolon, then we can always parse it out. if (token === SyntaxKind.SemicolonToken) { @@ -2202,10 +2211,7 @@ module ts { if (!scanner.hasPrecedingLineBreak() && (token === SyntaxKind.AsteriskToken || isStartOfExpression())) { - if (parseOptional(SyntaxKind.AsteriskToken)) { - node.flags = NodeFlags.YieldStar; - } - + node.asteriskToken = parseOptionalToken(SyntaxKind.AsteriskToken); node.expression = parseAssignmentExpression(); return finishNode(node); } @@ -2255,7 +2261,7 @@ module ts { } else { // If not, we're probably better off bailing out and returning a bogus function expression. - return makeFunctionExpression(SyntaxKind.ArrowFunction, pos, /* name */ undefined, sig, createMissingNode()); + return makeFunctionExpression(SyntaxKind.ArrowFunction, pos, /*asteriskToken:*/ undefined, /*name:*/ undefined, sig, createMissingNode()); } } @@ -2395,7 +2401,7 @@ module ts { body = parseAssignmentExpression(); } - return makeFunctionExpression(SyntaxKind.ArrowFunction, pos, /* name */ undefined, sig, body); + return makeFunctionExpression(SyntaxKind.ArrowFunction, pos, /*asteriskToken:*/ undefined, /*name:*/ undefined, sig, body); } function parseConditionalExpression(): Expression { @@ -2731,26 +2737,23 @@ module ts { function parsePropertyAssignment(): Declaration { var nodePos = scanner.getStartPos(); - var isGenerator = parseOptional(SyntaxKind.AsteriskToken); + var asteriskToken = parseOptionalToken(SyntaxKind.AsteriskToken); var tokenIsIdentifier = isIdentifier(); var nameToken = token; var propertyName = parsePropertyName(); var node: Declaration; - if (isGenerator || token === SyntaxKind.OpenParenToken || token === SyntaxKind.LessThanToken) { + if (asteriskToken || token === SyntaxKind.OpenParenToken || token === SyntaxKind.LessThanToken) { node = createNode(SyntaxKind.PropertyAssignment, nodePos); node.name = propertyName; - if (isGenerator) { - node.flags |= NodeFlags.Generator; - } - var sig = parseSignature(SyntaxKind.CallSignature, SyntaxKind.ColonToken, /* returnTokenRequired */ false, /*yieldAndGeneratorParameterContext:*/ isGenerator); + var sig = parseSignature(SyntaxKind.CallSignature, SyntaxKind.ColonToken, /* returnTokenRequired */ false, /*yieldAndGeneratorParameterContext:*/ !!asteriskToken); - var body = parseFunctionBlock(isGenerator, /* ignoreMissingOpenBrace */ false); + var body = parseFunctionBlock(!!asteriskToken, /* ignoreMissingOpenBrace */ false); // do not propagate property name as name for function expression // for scenarios like // var x = 1; // var y = { x() { } } // otherwise this will bring y.x into the scope of x which is incorrect - (node).initializer = makeFunctionExpression(SyntaxKind.FunctionExpression, node.pos, undefined, sig, body); + (node).initializer = makeFunctionExpression(SyntaxKind.FunctionExpression, node.pos, asteriskToken, undefined, sig, body); return finishNode(node); } @@ -2808,24 +2811,21 @@ module ts { var pos = getNodePos(); parseExpected(SyntaxKind.FunctionKeyword); - var isGenerator = parseOptional(SyntaxKind.AsteriskToken); - var name = isGenerator ? doInYieldContext(parseOptionalIdentifier) : parseOptionalIdentifier(); - var sig = parseSignature(SyntaxKind.CallSignature, SyntaxKind.ColonToken, /* returnTokenRequired */ false, /*yieldAndGeneratorParameterContext:*/ isGenerator); + var asteriskToken = parseOptionalToken(SyntaxKind.AsteriskToken); + var name = asteriskToken ? doInYieldContext(parseOptionalIdentifier) : parseOptionalIdentifier(); + var sig = parseSignature(SyntaxKind.CallSignature, SyntaxKind.ColonToken, /* returnTokenRequired */ false, /*yieldAndGeneratorParameterContext:*/ !!asteriskToken); - var body = parseFunctionBlock(/*allowYield:*/ isGenerator, /* ignoreMissingOpenBrace */ false); - return makeFunctionExpression(SyntaxKind.FunctionExpression, pos, name, sig, body, isGenerator ? NodeFlags.Generator : undefined); + var body = parseFunctionBlock(/*allowYield:*/ !!asteriskToken, /* ignoreMissingOpenBrace */ false); + return makeFunctionExpression(SyntaxKind.FunctionExpression, pos, asteriskToken, name, sig, body); } function parseOptionalIdentifier() { return isIdentifier() ? parseIdentifier() : undefined; } - function makeFunctionExpression(kind: SyntaxKind, pos: number, name: Identifier, sig: ParsedSignature, body: Node, flags?: NodeFlags): FunctionExpression { + function makeFunctionExpression(kind: SyntaxKind, pos: number, asteriskToken: Node, name: Identifier, sig: ParsedSignature, body: Node): FunctionExpression { var node = createNode(kind, pos); - if (flags) { - node.flags = flags; - } - + node.asteriskToken = asteriskToken; node.name = name; node.typeParameters = sig.typeParameters; node.parameters = sig.parameters; @@ -3292,14 +3292,10 @@ module ts { var node = createNode(SyntaxKind.FunctionDeclaration, fullStart); setModifiers(node, modifiers); parseExpected(SyntaxKind.FunctionKeyword); - var isGenerator = parseOptional(SyntaxKind.AsteriskToken); - if (isGenerator) { - node.flags |= NodeFlags.Generator; - } - + node.asteriskToken = parseOptionalToken(SyntaxKind.AsteriskToken); node.name = parseIdentifier(); - fillSignature(SyntaxKind.CallSignature, SyntaxKind.ColonToken, /* returnTokenRequired */ false, /*yieldAndGeneratorParameterContext:*/ isGenerator, node); - node.body = parseFunctionBlockOrSemicolon(isGenerator); + fillSignature(SyntaxKind.CallSignature, SyntaxKind.ColonToken, /* returnTokenRequired */ false, /*yieldAndGeneratorParameterContext:*/ !!node.asteriskToken, node); + node.body = parseFunctionBlockOrSemicolon(!!node.asteriskToken); return finishNode(node); } @@ -3314,11 +3310,7 @@ module ts { function parsePropertyMemberDeclaration(fullStart: number, modifiers: ModifiersArray): Declaration { var flags = modifiers ? modifiers.flags : 0; - var isGenerator = parseOptional(SyntaxKind.AsteriskToken); - if (isGenerator) { - flags |= NodeFlags.Generator; - } - + var asteriskToken = parseOptionalToken(SyntaxKind.AsteriskToken); var name = parsePropertyName(); if (parseOptional(SyntaxKind.QuestionToken)) { // Note: this is not legal as per the grammar. But we allow it in the parser and @@ -3326,15 +3318,16 @@ module ts { flags |= NodeFlags.QuestionMark; } - if (isGenerator || token === SyntaxKind.OpenParenToken || token === SyntaxKind.LessThanToken) { + if (asteriskToken || token === SyntaxKind.OpenParenToken || token === SyntaxKind.LessThanToken) { var method = createNode(SyntaxKind.Method, fullStart); setModifiers(method, modifiers); if (flags) { method.flags = flags; } + method.asteriskToken = asteriskToken; method.name = name; - fillSignature(SyntaxKind.CallSignature, SyntaxKind.ColonToken, /* returnTokenRequired */ false, /*yieldAndGeneratorParameterContext:*/ isGenerator, method); - method.body = parseFunctionBlockOrSemicolon(isGenerator); + fillSignature(SyntaxKind.CallSignature, SyntaxKind.ColonToken, /* returnTokenRequired */ false, /*yieldAndGeneratorParameterContext:*/ !!asteriskToken, method); + method.body = parseFunctionBlockOrSemicolon(!!asteriskToken); return finishNode(method); } else { @@ -4306,9 +4299,9 @@ module ts { checkForGenerator(node); } - function checkForGenerator(node: Node) { - if (node.flags & NodeFlags.Generator) { - return grammarErrorOnFirstToken(node, Diagnostics.generators_are_not_currently_supported); + function checkForGenerator(node: FunctionLikeDeclaration) { + if (node.asteriskToken) { + return grammarErrorOnNode(node.asteriskToken, Diagnostics.generators_are_not_currently_supported); } } @@ -4741,8 +4734,7 @@ module ts { } function checkPropertyAssignment(node: PropertyDeclaration) { - return checkForInvalidQuestionMark(node, Diagnostics.An_object_member_cannot_be_declared_optional) || - checkForGenerator(node); + return checkForInvalidQuestionMark(node, Diagnostics.An_object_member_cannot_be_declared_optional); } function checkForInvalidQuestionMark(node: Declaration, message: DiagnosticMessage) { diff --git a/src/compiler/types.ts b/src/compiler/types.ts index e1654fed409..d88dbfad593 100644 --- a/src/compiler/types.ts +++ b/src/compiler/types.ts @@ -271,8 +271,6 @@ module ts { Let = 0x00000800, // Variable declaration Const = 0x00001000, // Variable declaration OctalLiteral = 0x00002000, - Generator = 0x00004000, - YieldStar = 0x00008000, Modifier = Export | Ambient | Public | Private | Protected | Static, AccessibilityModifier = Public | Private | Protected, @@ -377,6 +375,7 @@ module ts { * FunctionExpression */ export interface FunctionLikeDeclaration extends Declaration, ParsedSignature { + asteriskToken?: Node; body?: Block | Expression; } @@ -442,6 +441,7 @@ module ts { } export interface YieldExpression extends Expression { + asteriskToken?: Node; expression: Expression; } diff --git a/tests/baselines/reference/FunctionDeclaration10_es6.errors.txt b/tests/baselines/reference/FunctionDeclaration10_es6.errors.txt index 4d167fbc3ec..8c1585c2ec6 100644 --- a/tests/baselines/reference/FunctionDeclaration10_es6.errors.txt +++ b/tests/baselines/reference/FunctionDeclaration10_es6.errors.txt @@ -1,8 +1,8 @@ -tests/cases/conformance/es6/functionDeclarations/FunctionDeclaration10_es6.ts(1,1): error TS9001: 'generators' are not currently supported. +tests/cases/conformance/es6/functionDeclarations/FunctionDeclaration10_es6.ts(1,10): error TS9001: 'generators' are not currently supported. ==== tests/cases/conformance/es6/functionDeclarations/FunctionDeclaration10_es6.ts (1 errors) ==== function * foo(a = yield => yield) { - ~~~~~~~~ + ~ !!! error TS9001: 'generators' are not currently supported. } \ No newline at end of file diff --git a/tests/baselines/reference/FunctionDeclaration11_es6.errors.txt b/tests/baselines/reference/FunctionDeclaration11_es6.errors.txt index 2b623b33751..ae307281b75 100644 --- a/tests/baselines/reference/FunctionDeclaration11_es6.errors.txt +++ b/tests/baselines/reference/FunctionDeclaration11_es6.errors.txt @@ -1,8 +1,8 @@ -tests/cases/conformance/es6/functionDeclarations/FunctionDeclaration11_es6.ts(1,1): error TS9001: 'generators' are not currently supported. +tests/cases/conformance/es6/functionDeclarations/FunctionDeclaration11_es6.ts(1,10): error TS9001: 'generators' are not currently supported. ==== tests/cases/conformance/es6/functionDeclarations/FunctionDeclaration11_es6.ts (1 errors) ==== function * yield() { - ~~~~~~~~ + ~ !!! error TS9001: 'generators' are not currently supported. } \ No newline at end of file diff --git a/tests/baselines/reference/FunctionDeclaration13_es6.errors.txt b/tests/baselines/reference/FunctionDeclaration13_es6.errors.txt index f19e6304188..50b6b15d708 100644 --- a/tests/baselines/reference/FunctionDeclaration13_es6.errors.txt +++ b/tests/baselines/reference/FunctionDeclaration13_es6.errors.txt @@ -1,10 +1,10 @@ -tests/cases/conformance/es6/functionDeclarations/FunctionDeclaration13_es6.ts(1,1): error TS9001: 'generators' are not currently supported. +tests/cases/conformance/es6/functionDeclarations/FunctionDeclaration13_es6.ts(1,10): error TS9001: 'generators' are not currently supported. tests/cases/conformance/es6/functionDeclarations/FunctionDeclaration13_es6.ts(3,11): error TS2304: Cannot find name 'yield'. ==== tests/cases/conformance/es6/functionDeclarations/FunctionDeclaration13_es6.ts (2 errors) ==== function * foo() { - ~~~~~~~~ + ~ !!! error TS9001: 'generators' are not currently supported. // Legal to use 'yield' in a type context. var v: yield; diff --git a/tests/baselines/reference/FunctionDeclaration1_es6.errors.txt b/tests/baselines/reference/FunctionDeclaration1_es6.errors.txt index 8d995aaf6ca..b2fdfba350a 100644 --- a/tests/baselines/reference/FunctionDeclaration1_es6.errors.txt +++ b/tests/baselines/reference/FunctionDeclaration1_es6.errors.txt @@ -1,8 +1,8 @@ -tests/cases/conformance/es6/functionDeclarations/FunctionDeclaration1_es6.ts(1,1): error TS9001: 'generators' are not currently supported. +tests/cases/conformance/es6/functionDeclarations/FunctionDeclaration1_es6.ts(1,10): error TS9001: 'generators' are not currently supported. ==== tests/cases/conformance/es6/functionDeclarations/FunctionDeclaration1_es6.ts (1 errors) ==== function * foo() { - ~~~~~~~~ + ~ !!! error TS9001: 'generators' are not currently supported. } \ No newline at end of file diff --git a/tests/baselines/reference/FunctionDeclaration6_es6.errors.txt b/tests/baselines/reference/FunctionDeclaration6_es6.errors.txt index 63e4a929ad9..657a227822d 100644 --- a/tests/baselines/reference/FunctionDeclaration6_es6.errors.txt +++ b/tests/baselines/reference/FunctionDeclaration6_es6.errors.txt @@ -1,10 +1,10 @@ -tests/cases/conformance/es6/functionDeclarations/FunctionDeclaration6_es6.ts(1,1): error TS9001: 'generators' are not currently supported. +tests/cases/conformance/es6/functionDeclarations/FunctionDeclaration6_es6.ts(1,9): error TS9001: 'generators' are not currently supported. tests/cases/conformance/es6/functionDeclarations/FunctionDeclaration6_es6.ts(1,18): error TS2304: Cannot find name 'yield'. ==== tests/cases/conformance/es6/functionDeclarations/FunctionDeclaration6_es6.ts (2 errors) ==== function*foo(a = yield) { - ~~~~~~~~ + ~ !!! error TS9001: 'generators' are not currently supported. ~~~~~ !!! error TS2304: Cannot find name 'yield'. diff --git a/tests/baselines/reference/FunctionDeclaration7_es6.errors.txt b/tests/baselines/reference/FunctionDeclaration7_es6.errors.txt index 8f191034350..f81fd628eb7 100644 --- a/tests/baselines/reference/FunctionDeclaration7_es6.errors.txt +++ b/tests/baselines/reference/FunctionDeclaration7_es6.errors.txt @@ -1,10 +1,10 @@ -tests/cases/conformance/es6/functionDeclarations/FunctionDeclaration7_es6.ts(1,1): error TS9001: 'generators' are not currently supported. +tests/cases/conformance/es6/functionDeclarations/FunctionDeclaration7_es6.ts(1,9): error TS9001: 'generators' are not currently supported. tests/cases/conformance/es6/functionDeclarations/FunctionDeclaration7_es6.ts(3,20): error TS2304: Cannot find name 'yield'. ==== tests/cases/conformance/es6/functionDeclarations/FunctionDeclaration7_es6.ts (2 errors) ==== function*bar() { - ~~~~~~~~ + ~ !!! error TS9001: 'generators' are not currently supported. // 'yield' here is an identifier, and not a yield expression. function*foo(a = yield) { diff --git a/tests/baselines/reference/FunctionExpression1_es6.errors.txt b/tests/baselines/reference/FunctionExpression1_es6.errors.txt index 3d50ca090b0..10ac3379228 100644 --- a/tests/baselines/reference/FunctionExpression1_es6.errors.txt +++ b/tests/baselines/reference/FunctionExpression1_es6.errors.txt @@ -1,7 +1,7 @@ -tests/cases/conformance/es6/functionExpressions/FunctionExpression1_es6.ts(1,9): error TS9001: 'generators' are not currently supported. +tests/cases/conformance/es6/functionExpressions/FunctionExpression1_es6.ts(1,18): error TS9001: 'generators' are not currently supported. ==== tests/cases/conformance/es6/functionExpressions/FunctionExpression1_es6.ts (1 errors) ==== var v = function * () { } - ~~~~~~~~ + ~ !!! error TS9001: 'generators' are not currently supported. \ No newline at end of file diff --git a/tests/baselines/reference/FunctionExpression2_es6.errors.txt b/tests/baselines/reference/FunctionExpression2_es6.errors.txt index 1fa7e2e2a73..a95cffcdbeb 100644 --- a/tests/baselines/reference/FunctionExpression2_es6.errors.txt +++ b/tests/baselines/reference/FunctionExpression2_es6.errors.txt @@ -1,7 +1,7 @@ -tests/cases/conformance/es6/functionExpressions/FunctionExpression2_es6.ts(1,9): error TS9001: 'generators' are not currently supported. +tests/cases/conformance/es6/functionExpressions/FunctionExpression2_es6.ts(1,18): error TS9001: 'generators' are not currently supported. ==== tests/cases/conformance/es6/functionExpressions/FunctionExpression2_es6.ts (1 errors) ==== var v = function * foo() { } - ~~~~~~~~ + ~ !!! error TS9001: 'generators' are not currently supported. \ No newline at end of file diff --git a/tests/baselines/reference/MemberFunctionDeclaration2_es6.errors.txt b/tests/baselines/reference/MemberFunctionDeclaration2_es6.errors.txt index 73c065f6a92..667e0e5e58d 100644 --- a/tests/baselines/reference/MemberFunctionDeclaration2_es6.errors.txt +++ b/tests/baselines/reference/MemberFunctionDeclaration2_es6.errors.txt @@ -1,9 +1,9 @@ -tests/cases/conformance/es6/memberFunctionDeclarations/MemberFunctionDeclaration2_es6.ts(2,4): error TS9001: 'generators' are not currently supported. +tests/cases/conformance/es6/memberFunctionDeclarations/MemberFunctionDeclaration2_es6.ts(2,11): error TS9001: 'generators' are not currently supported. ==== tests/cases/conformance/es6/memberFunctionDeclarations/MemberFunctionDeclaration2_es6.ts (1 errors) ==== class C { public * foo() { } - ~~~~~~ + ~ !!! error TS9001: 'generators' are not currently supported. } \ No newline at end of file diff --git a/tests/baselines/reference/YieldExpression13_es6.errors.txt b/tests/baselines/reference/YieldExpression13_es6.errors.txt index 56a0e385cd0..1d2cd4e3c25 100644 --- a/tests/baselines/reference/YieldExpression13_es6.errors.txt +++ b/tests/baselines/reference/YieldExpression13_es6.errors.txt @@ -1,7 +1,7 @@ -tests/cases/conformance/es6/yieldExpressions/YieldExpression13_es6.ts(1,1): error TS9001: 'generators' are not currently supported. +tests/cases/conformance/es6/yieldExpressions/YieldExpression13_es6.ts(1,9): error TS9001: 'generators' are not currently supported. ==== tests/cases/conformance/es6/yieldExpressions/YieldExpression13_es6.ts (1 errors) ==== function* foo() { yield } - ~~~~~~~~ + ~ !!! error TS9001: 'generators' are not currently supported. \ No newline at end of file diff --git a/tests/baselines/reference/YieldExpression16_es6.errors.txt b/tests/baselines/reference/YieldExpression16_es6.errors.txt index 4a01a92d290..1963539d4a8 100644 --- a/tests/baselines/reference/YieldExpression16_es6.errors.txt +++ b/tests/baselines/reference/YieldExpression16_es6.errors.txt @@ -1,9 +1,9 @@ -tests/cases/conformance/es6/yieldExpressions/YieldExpression16_es6.ts(1,1): error TS9001: 'generators' are not currently supported. +tests/cases/conformance/es6/yieldExpressions/YieldExpression16_es6.ts(1,9): error TS9001: 'generators' are not currently supported. ==== tests/cases/conformance/es6/yieldExpressions/YieldExpression16_es6.ts (1 errors) ==== function* foo() { - ~~~~~~~~ + ~ !!! error TS9001: 'generators' are not currently supported. function bar() { yield foo; diff --git a/tests/baselines/reference/YieldExpression19_es6.errors.txt b/tests/baselines/reference/YieldExpression19_es6.errors.txt index cce934f5687..a427ab18f70 100644 --- a/tests/baselines/reference/YieldExpression19_es6.errors.txt +++ b/tests/baselines/reference/YieldExpression19_es6.errors.txt @@ -1,9 +1,9 @@ -tests/cases/conformance/es6/yieldExpressions/YieldExpression19_es6.ts(1,1): error TS9001: 'generators' are not currently supported. +tests/cases/conformance/es6/yieldExpressions/YieldExpression19_es6.ts(1,9): error TS9001: 'generators' are not currently supported. ==== tests/cases/conformance/es6/yieldExpressions/YieldExpression19_es6.ts (1 errors) ==== function*foo() { - ~~~~~~~~ + ~ !!! error TS9001: 'generators' are not currently supported. function bar() { function* quux() { diff --git a/tests/baselines/reference/YieldExpression3_es6.errors.txt b/tests/baselines/reference/YieldExpression3_es6.errors.txt index 577816f3d7c..9983eefc9a6 100644 --- a/tests/baselines/reference/YieldExpression3_es6.errors.txt +++ b/tests/baselines/reference/YieldExpression3_es6.errors.txt @@ -1,9 +1,9 @@ -tests/cases/conformance/es6/yieldExpressions/YieldExpression3_es6.ts(1,1): error TS9001: 'generators' are not currently supported. +tests/cases/conformance/es6/yieldExpressions/YieldExpression3_es6.ts(1,9): error TS9001: 'generators' are not currently supported. ==== tests/cases/conformance/es6/yieldExpressions/YieldExpression3_es6.ts (1 errors) ==== function* foo() { - ~~~~~~~~ + ~ !!! error TS9001: 'generators' are not currently supported. yield yield diff --git a/tests/baselines/reference/YieldExpression4_es6.errors.txt b/tests/baselines/reference/YieldExpression4_es6.errors.txt index 10ca8eed8b1..58d1326ba59 100644 --- a/tests/baselines/reference/YieldExpression4_es6.errors.txt +++ b/tests/baselines/reference/YieldExpression4_es6.errors.txt @@ -1,9 +1,9 @@ -tests/cases/conformance/es6/yieldExpressions/YieldExpression4_es6.ts(1,1): error TS9001: 'generators' are not currently supported. +tests/cases/conformance/es6/yieldExpressions/YieldExpression4_es6.ts(1,9): error TS9001: 'generators' are not currently supported. ==== tests/cases/conformance/es6/yieldExpressions/YieldExpression4_es6.ts (1 errors) ==== function* foo() { - ~~~~~~~~ + ~ !!! error TS9001: 'generators' are not currently supported. yield; yield; diff --git a/tests/baselines/reference/YieldExpression6_es6.errors.txt b/tests/baselines/reference/YieldExpression6_es6.errors.txt index 7184e36156d..5ef38d249d5 100644 --- a/tests/baselines/reference/YieldExpression6_es6.errors.txt +++ b/tests/baselines/reference/YieldExpression6_es6.errors.txt @@ -1,9 +1,9 @@ -tests/cases/conformance/es6/yieldExpressions/YieldExpression6_es6.ts(1,1): error TS9001: 'generators' are not currently supported. +tests/cases/conformance/es6/yieldExpressions/YieldExpression6_es6.ts(1,9): error TS9001: 'generators' are not currently supported. ==== tests/cases/conformance/es6/yieldExpressions/YieldExpression6_es6.ts (1 errors) ==== function* foo() { - ~~~~~~~~ + ~ !!! error TS9001: 'generators' are not currently supported. yield*foo } \ No newline at end of file diff --git a/tests/baselines/reference/YieldExpression7_es6.errors.txt b/tests/baselines/reference/YieldExpression7_es6.errors.txt index 28279e24ff8..11914f6fbb4 100644 --- a/tests/baselines/reference/YieldExpression7_es6.errors.txt +++ b/tests/baselines/reference/YieldExpression7_es6.errors.txt @@ -1,9 +1,9 @@ -tests/cases/conformance/es6/yieldExpressions/YieldExpression7_es6.ts(1,1): error TS9001: 'generators' are not currently supported. +tests/cases/conformance/es6/yieldExpressions/YieldExpression7_es6.ts(1,9): error TS9001: 'generators' are not currently supported. ==== tests/cases/conformance/es6/yieldExpressions/YieldExpression7_es6.ts (1 errors) ==== function* foo() { - ~~~~~~~~ + ~ !!! error TS9001: 'generators' are not currently supported. yield foo } \ No newline at end of file diff --git a/tests/baselines/reference/YieldExpression8_es6.errors.txt b/tests/baselines/reference/YieldExpression8_es6.errors.txt index 412a4b6f4bd..591c1fade08 100644 --- a/tests/baselines/reference/YieldExpression8_es6.errors.txt +++ b/tests/baselines/reference/YieldExpression8_es6.errors.txt @@ -1,4 +1,4 @@ -tests/cases/conformance/es6/yieldExpressions/YieldExpression8_es6.ts(2,1): error TS9001: 'generators' are not currently supported. +tests/cases/conformance/es6/yieldExpressions/YieldExpression8_es6.ts(2,9): error TS9001: 'generators' are not currently supported. tests/cases/conformance/es6/yieldExpressions/YieldExpression8_es6.ts(1,1): error TS2304: Cannot find name 'yield'. @@ -7,7 +7,7 @@ tests/cases/conformance/es6/yieldExpressions/YieldExpression8_es6.ts(1,1): error ~~~~~ !!! error TS2304: Cannot find name 'yield'. function* foo() { - ~~~~~~~~ + ~ !!! error TS9001: 'generators' are not currently supported. yield(foo); } \ No newline at end of file diff --git a/tests/baselines/reference/YieldExpression9_es6.errors.txt b/tests/baselines/reference/YieldExpression9_es6.errors.txt index 4d13d02196a..108028d2282 100644 --- a/tests/baselines/reference/YieldExpression9_es6.errors.txt +++ b/tests/baselines/reference/YieldExpression9_es6.errors.txt @@ -1,9 +1,9 @@ -tests/cases/conformance/es6/yieldExpressions/YieldExpression9_es6.ts(1,9): error TS9001: 'generators' are not currently supported. +tests/cases/conformance/es6/yieldExpressions/YieldExpression9_es6.ts(1,17): error TS9001: 'generators' are not currently supported. ==== tests/cases/conformance/es6/yieldExpressions/YieldExpression9_es6.ts (1 errors) ==== var v = function*() { - ~~~~~~~~ + ~ !!! error TS9001: 'generators' are not currently supported. yield(foo); } \ No newline at end of file diff --git a/tests/baselines/reference/templateStringInYieldKeyword.errors.txt b/tests/baselines/reference/templateStringInYieldKeyword.errors.txt index 1d48ebff1d0..b12b552d5f0 100644 --- a/tests/baselines/reference/templateStringInYieldKeyword.errors.txt +++ b/tests/baselines/reference/templateStringInYieldKeyword.errors.txt @@ -1,9 +1,9 @@ -tests/cases/conformance/es6/templates/templateStringInYieldKeyword.ts(1,1): error TS9001: 'generators' are not currently supported. +tests/cases/conformance/es6/templates/templateStringInYieldKeyword.ts(1,9): error TS9001: 'generators' are not currently supported. ==== tests/cases/conformance/es6/templates/templateStringInYieldKeyword.ts (1 errors) ==== function* gen() { - ~~~~~~~~ + ~ !!! error TS9001: 'generators' are not currently supported. // Once this is supported, the inner expression does not need to be parenthesized. var x = yield `abc${ x }def`; diff --git a/tests/baselines/reference/templateStringWithEmbeddedYieldKeywordES6.errors.txt b/tests/baselines/reference/templateStringWithEmbeddedYieldKeywordES6.errors.txt index f51ff4863d5..5270e79679e 100644 --- a/tests/baselines/reference/templateStringWithEmbeddedYieldKeywordES6.errors.txt +++ b/tests/baselines/reference/templateStringWithEmbeddedYieldKeywordES6.errors.txt @@ -1,9 +1,9 @@ -tests/cases/conformance/es6/templates/templateStringWithEmbeddedYieldKeywordES6.ts(1,1): error TS9001: 'generators' are not currently supported. +tests/cases/conformance/es6/templates/templateStringWithEmbeddedYieldKeywordES6.ts(1,9): error TS9001: 'generators' are not currently supported. ==== tests/cases/conformance/es6/templates/templateStringWithEmbeddedYieldKeywordES6.ts (1 errors) ==== function* gen() { - ~~~~~~~~ + ~ !!! error TS9001: 'generators' are not currently supported. // Once this is supported, yield *must* be parenthesized. var x = `abc${ yield 10 }def`; From dbc48d222ff897ad0e78e8d6014e6b2add4ced56 Mon Sep 17 00:00:00 2001 From: Jason Freeman Date: Wed, 12 Nov 2014 12:00:46 -0800 Subject: [PATCH 063/195] Parse computed property names --- computed.txt | 12 ++++++ src/compiler/parser.ts | 86 +++++++++++++++++++++++++++++++++--------- src/compiler/types.ts | 7 +++- 3 files changed, 86 insertions(+), 19 deletions(-) create mode 100644 computed.txt diff --git a/computed.txt b/computed.txt new file mode 100644 index 00000000000..a8869ad7d9d --- /dev/null +++ b/computed.txt @@ -0,0 +1,12 @@ +Parse computed expressions and add tests +Disallow computed expressions in class instance properties +Disallow computed expressions in object literal properties, methods, or accessors +Disallow in interfaces + +Emit computed properties for classes and object literals +Discuss down level support for computed properties + +Tests that need to move: +tests\cases\conformance\parser\ecmascript5\IndexSignatures\parserIndexSignature4.ts +tests\cases\conformance\parser\ecmascript5\IndexSignatures\parserIndexSignature5.ts +tests\cases\conformance\parser\ecmascript5\IndexSignatures\parserIndexSignature11.ts \ No newline at end of file diff --git a/src/compiler/parser.ts b/src/compiler/parser.ts index 4dd85715852..0ba246b62e6 100644 --- a/src/compiler/parser.ts +++ b/src/compiler/parser.ts @@ -1242,30 +1242,41 @@ module ts { return createIdentifier(token >= SyntaxKind.Identifier); } - function isPropertyName(): boolean { + function isLiteralPropertyName(): boolean { return token >= SyntaxKind.Identifier || token === SyntaxKind.StringLiteral || token === SyntaxKind.NumericLiteral; } - function parsePropertyName(): Identifier { + function parsePropertyName(): DeclarationName { if (token === SyntaxKind.StringLiteral || token === SyntaxKind.NumericLiteral) { return parseLiteralNode(/*internName:*/ true); } + if (token === SyntaxKind.OpenBracketToken) { + return parseComputedPropertyName(); + } return parseIdentifierName(); } + function parseComputedPropertyName(): ComputedPropertyName { + var node = createNode(SyntaxKind.ComputedPropertyName); + parseExpected(SyntaxKind.OpenBracketToken); + node.expression = parseAssignmentExpression(/*noIn*/ false); + parseExpected(SyntaxKind.CloseBracketToken); + return finishNode(node); + } + function parseContextualModifier(t: SyntaxKind): boolean { return token === t && tryParse(() => { nextToken(); - return token === SyntaxKind.OpenBracketToken || isPropertyName(); + return token === SyntaxKind.OpenBracketToken || isLiteralPropertyName(); }); } function parseAnyContextualModifier(): boolean { return isModifier(token) && tryParse(() => { nextToken(); - return token === SyntaxKind.OpenBracketToken || token === SyntaxKind.AsteriskToken || isPropertyName(); + return token === SyntaxKind.OpenBracketToken || isPropertyName(); }); } @@ -1285,9 +1296,11 @@ module ts { case ParsingContext.ClassMembers: return lookAhead(isClassMemberStart); case ParsingContext.EnumMembers: - return isPropertyName(); + // Include open bracket computed properties. This technically also lets in indexers, + // which would be a candidate for improved error reporting. + return token === SyntaxKind.OpenBracketToken || isLiteralPropertyName(); case ParsingContext.ObjectLiteralMembers: - return token === SyntaxKind.AsteriskToken || isPropertyName(); + return token === SyntaxKind.OpenBracketToken || token === SyntaxKind.AsteriskToken || isLiteralPropertyName(); case ParsingContext.BaseTypeReferences: return isIdentifier() && ((token !== SyntaxKind.ExtendsKeyword && token !== SyntaxKind.ImplementsKeyword) || !lookAhead(() => (nextToken(), isIdentifier()))); case ParsingContext.VariableDeclarations: @@ -1774,6 +1787,42 @@ module ts { return finishNode(node); } + function isIndexSignature(): boolean { + if (token !== SyntaxKind.OpenBracketToken) { + return false; + } + + return lookAhead(() => { + // The only allowed sequence is: + // + // [id: + // + // However, for error recovery, we also check the following cases: + // + // [... + // [id, + // [public id + // [private id + // [protected id + // [] + // + if (nextToken() === SyntaxKind.DotDotDotToken + || token === SyntaxKind.CloseBracketToken + || token === SyntaxKind.PublicKeyword + || token === SyntaxKind.PrivateKeyword + || token === SyntaxKind.ProtectedKeyword) { + + return true; + } + + if (!isIdentifier()) { + return false; + } + + return nextToken() === SyntaxKind.ColonToken || token === SyntaxKind.CommaToken; + }); + } + function parseIndexSignatureMember(fullStart: number, modifiers: ModifiersArray): SignatureDeclaration { var node = createNode(SyntaxKind.IndexSignature, fullStart); setModifiers(node, modifiers); @@ -1817,10 +1866,10 @@ module ts { switch (token) { case SyntaxKind.OpenParenToken: case SyntaxKind.LessThanToken: - case SyntaxKind.OpenBracketToken: + case SyntaxKind.OpenBracketToken: // Both for indexers and computed properties return true; default: - return isPropertyName() && lookAhead(() => nextToken() === SyntaxKind.OpenParenToken || token === SyntaxKind.LessThanToken || token === SyntaxKind.QuestionToken || + return isLiteralPropertyName() && lookAhead(() => nextToken() === SyntaxKind.OpenParenToken || token === SyntaxKind.LessThanToken || token === SyntaxKind.QuestionToken || token === SyntaxKind.ColonToken || canParseSemicolon()); } } @@ -1831,7 +1880,8 @@ module ts { case SyntaxKind.LessThanToken: return parseSignatureMember(SyntaxKind.CallSignature, SyntaxKind.ColonToken); case SyntaxKind.OpenBracketToken: - return parseIndexSignatureMember(scanner.getStartPos(), /*modifiers:*/ undefined); + // Indexer or computed property + return isIndexSignature() ? parseIndexSignatureMember(scanner.getStartPos(), /*modifiers:*/ undefined) : parsePropertyOrMethod(); case SyntaxKind.NewKeyword: if (lookAhead(() => nextToken() === SyntaxKind.OpenParenToken || token === SyntaxKind.LessThanToken)) { return parseSignatureMember(SyntaxKind.ConstructSignature, SyntaxKind.ColonToken); @@ -3368,12 +3418,12 @@ module ts { // Try to get the first property-like token following all modifiers. // This can either be an identifier or the 'get' or 'set' keywords. - if (isPropertyName()) { + if (isLiteralPropertyName()) { idToken = token; nextToken(); } - // Index signatures are class members; we can parse. + // Index signatures and computed properties are class members; we can parse. if (token === SyntaxKind.OpenBracketToken) { return true; } @@ -3442,12 +3492,15 @@ module ts { if (token === SyntaxKind.ConstructorKeyword) { return parseConstructorDeclaration(fullStart, modifiers); } - if (token >= SyntaxKind.Identifier || token === SyntaxKind.StringLiteral || token === SyntaxKind.NumericLiteral || token === SyntaxKind.AsteriskToken) { - return parsePropertyMemberDeclaration(fullStart, modifiers); - } - if (token === SyntaxKind.OpenBracketToken) { + if (isIndexSignature()) { return parseIndexSignatureMember(fullStart, modifiers); } + // It is very important that we check this *after* checking indexers because + // the [ token can start an index signature or a computed property name + if (token >= SyntaxKind.Identifier || token === SyntaxKind.StringLiteral || token === SyntaxKind.NumericLiteral || + token === SyntaxKind.AsteriskToken || token === SyntaxKind.OpenBracketToken) { + return parsePropertyMemberDeclaration(fullStart, modifiers); + } // 'isClassMemberStart' should have hinted not to attempt parsing. Debug.fail("Should not have attempted to parse class member declaration."); @@ -4438,8 +4491,7 @@ module ts { for (var i = 0, n = node.properties.length; i < n; i++) { var prop = node.properties[i]; - // TODO(jfreeman): continue if we have a computed property - if (prop.kind === SyntaxKind.OmittedExpression) { + if (prop.kind === SyntaxKind.OmittedExpression || p.name.kind === SyntaxKind.ComputedPropertyName) { continue; } diff --git a/src/compiler/types.ts b/src/compiler/types.ts index 1cfcf8036cd..108e00e48b4 100644 --- a/src/compiler/types.ts +++ b/src/compiler/types.ts @@ -141,6 +141,7 @@ module ts { Missing, // Names QualifiedName, + ComputedPropertyName, // Signature elements TypeParameter, Parameter, @@ -632,7 +633,9 @@ module ts { } export interface EnumMember extends Declaration { - name: Identifier | LiteralExpression; + // This does include ComputedPropertyName, but the parser will give an error + // if it parses a ComputedPropertyName in an EnumMember + name: DeclarationName; initializer?: Expression; } @@ -1255,7 +1258,7 @@ module ts { export interface CommandLineOption { name: string; type: string | Map; // "string", "number", "boolean", or an object literal mapping named values to actual values - shortName?: string; // A short pneumonic for convenience - for instance, 'h' can be used in place of 'help'. + shortName?: string; // A short mnemonic for convenience - for instance, 'h' can be used in place of 'help'. description?: DiagnosticMessage; // The message describing what the command line switch does paramName?: DiagnosticMessage; // The name to be used for a non-boolean option's parameter. error?: DiagnosticMessage; // The error given when the argument does not fit a customized 'type'. From 9d5c86a11d1b532c98371449f65936123a9106e7 Mon Sep 17 00:00:00 2001 From: Jason Freeman Date: Wed, 12 Nov 2014 18:02:40 -0800 Subject: [PATCH 064/195] Add grammar errors for computed property names --- .../diagnosticInformationMap.generated.ts | 7 +- src/compiler/diagnosticMessages.json | 20 +++++ src/compiler/parser.ts | 79 ++++++++++++++++--- 3 files changed, 96 insertions(+), 10 deletions(-) diff --git a/src/compiler/diagnosticInformationMap.generated.ts b/src/compiler/diagnosticInformationMap.generated.ts index dbc77bb95b7..c8156dff138 100644 --- a/src/compiler/diagnosticInformationMap.generated.ts +++ b/src/compiler/diagnosticInformationMap.generated.ts @@ -124,8 +124,13 @@ module ts { Tagged_templates_are_only_available_when_targeting_ECMAScript_6_and_higher: { code: 1159, category: DiagnosticCategory.Error, key: "Tagged templates are only available when targeting ECMAScript 6 and higher." }, Unterminated_template_literal: { code: 1160, category: DiagnosticCategory.Error, key: "Unterminated template literal." }, Unterminated_regular_expression_literal: { code: 1161, category: DiagnosticCategory.Error, key: "Unterminated regular expression literal." }, - An_object_member_cannot_be_declared_optional: { code: 1162, category: DiagnosticCategory.Error, key: "An object member cannot be declared optional." }, + An_object_member_cannot_be_declared_optional: { code: 1160, category: DiagnosticCategory.Error, key: "An object member cannot be declared optional." }, + Computed_property_names_are_not_allowed_in_interfaces_or_type_literals: { code: 1161, category: DiagnosticCategory.Error, key: "Computed property names are not allowed in interfaces or type literals." }, + Computed_property_names_are_not_allowed_in_enums: { code: 1162, category: DiagnosticCategory.Error, key: "Computed property names are not allowed in enums." }, yield_expression_must_be_contained_within_a_generator_declaration: { code: 1163, category: DiagnosticCategory.Error, key: "'yield' expression must be contained_within a generator declaration." }, + Computed_property_names_are_not_allowed_in_an_ambient_context: { code: 1163, category: DiagnosticCategory.Error, key: "Computed property names are not allowed in an ambient context." }, + Computed_property_names_are_not_allowed_in_class_property_declarations: { code: 1164, category: DiagnosticCategory.Error, key: "Computed property names are not allowed in class property declarations." }, + Computed_property_names_are_only_available_when_targeting_ECMAScript_6_and_higher: { code: 1165, category: DiagnosticCategory.Error, key: "Computed property names are only available when targeting ECMAScript 6 and higher." }, Duplicate_identifier_0: { code: 2300, category: DiagnosticCategory.Error, key: "Duplicate identifier '{0}'." }, Initializer_of_instance_member_variable_0_cannot_reference_identifier_1_declared_in_the_constructor: { code: 2301, category: 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: DiagnosticCategory.Error, key: "Static members cannot reference class type parameters." }, diff --git a/src/compiler/diagnosticMessages.json b/src/compiler/diagnosticMessages.json index 4a5ce8f6f70..5784a427224 100644 --- a/src/compiler/diagnosticMessages.json +++ b/src/compiler/diagnosticMessages.json @@ -488,6 +488,14 @@ "code": 1161 }, "An object member cannot be declared optional.": { + "category": "Error", + "code": 1160 + }, + "Computed property names are not allowed in interfaces or type literals.": { + "category": "Error", + "code": 1161 + }, + "Computed property names are not allowed in enums.": { "category": "Error", "code": 1162 }, @@ -495,6 +503,18 @@ "category": "Error", "code": 1163 }, + "Computed property names are not allowed in an ambient context.": { + "category": "Error", + "code": 1163 + }, + "Computed property names are not allowed in class property declarations.": { + "category": "Error", + "code": 1164 + }, + "Computed property names are only available when targeting ECMAScript 6 and higher.": { + "category": "Error", + "code": 1165 + }, "Duplicate identifier '{0}'.": { "category": "Error", diff --git a/src/compiler/parser.ts b/src/compiler/parser.ts index 0ba246b62e6..d884aef808c 100644 --- a/src/compiler/parser.ts +++ b/src/compiler/parser.ts @@ -1261,7 +1261,7 @@ module ts { function parseComputedPropertyName(): ComputedPropertyName { var node = createNode(SyntaxKind.ComputedPropertyName); parseExpected(SyntaxKind.OpenBracketToken); - node.expression = parseAssignmentExpression(/*noIn*/ false); + node.expression = allowInAnd(parseAssignmentExpression); parseExpected(SyntaxKind.CloseBracketToken); return finishNode(node); } @@ -1276,7 +1276,7 @@ module ts { function parseAnyContextualModifier(): boolean { return isModifier(token) && tryParse(() => { nextToken(); - return token === SyntaxKind.OpenBracketToken || isPropertyName(); + return token === SyntaxKind.OpenBracketToken || isLiteralPropertyName(); }); } @@ -1801,6 +1801,9 @@ module ts { // // [... // [id, + // [id?, + // [id?: + // [id?] // [public id // [private id // [protected id @@ -1819,7 +1822,22 @@ module ts { return false; } - return nextToken() === SyntaxKind.ColonToken || token === SyntaxKind.CommaToken; + // A colon signifies a well formed indexer + // A comma should be a badly formed indexer because comma expressions are not allowed + // in computed properties. + if (nextToken() === SyntaxKind.ColonToken || token === SyntaxKind.CommaToken) { + return true; + } + + // Question mark could be an indexer with an optional property, + // or it could be a conditional expression in a computed property. + if (token !== SyntaxKind.QuestionToken) { + return false; + } + + // If any of the following tokens are after the question mark, it cannot + // be a conditional expression, so treat it as an indexer. + return nextToken() === SyntaxKind.ColonToken || token === SyntaxKind.CommaToken || token === SyntaxKind.CloseBracketToken; }); } @@ -3991,6 +4009,7 @@ module ts { case SyntaxKind.BinaryExpression: return checkBinaryExpression(node); case SyntaxKind.CatchBlock: return checkCatchBlock(node); case SyntaxKind.ClassDeclaration: return checkClassDeclaration(node); + case SyntaxKind.ComputedPropertyName: return checkComputedPropertyName(node); case SyntaxKind.Constructor: return checkConstructor(node); case SyntaxKind.ExportAssignment: return checkExportAssignment(node); case SyntaxKind.ForInStatement: return checkForInStatement(node); @@ -4278,13 +4297,17 @@ module ts { var enumIsConst = (enumDecl.flags & NodeFlags.Const) !== 0; var hasError = false; + // skip checks below for const enums - they allow arbitrary initializers as long as they can be evaluated to constant expressions. // since all values are known in compile time - it is not necessary to check that constant enum section precedes computed enum members. if (!enumIsConst) { var inConstantEnumMemberSection = true; for (var i = 0, n = enumDecl.members.length; i < n; i++) { var node = enumDecl.members[i]; - if (inAmbientContext) { + if (node.name.kind === SyntaxKind.ComputedPropertyName) { + hasError = grammarErrorOnNode(node.name, Diagnostics.Computed_property_names_are_not_allowed_in_enums); + } + else if (inAmbientContext) { if (node.initializer && !isIntegerLiteral(node.initializer)) { hasError = grammarErrorOnNode(node.name, Diagnostics.Ambient_enum_elements_can_only_have_integer_literal_initializers) || hasError; } @@ -4438,10 +4461,25 @@ module ts { } function checkMethod(node: MethodDeclaration) { - return checkAnyParsedSignature(node) || + if (checkAnyParsedSignature(node) || checkForBodyInAmbientContext(node.body, /*isConstructor:*/ false) || - (node.parent.kind === SyntaxKind.ClassDeclaration && checkForInvalidQuestionMark(node, Diagnostics.A_class_member_cannot_be_declared_optional)) || - checkForGenerator(node); + checkForGenerator(node)) { + return true; + } + if (node.parent.kind === SyntaxKind.ClassDeclaration) { + if (checkForInvalidQuestionMark(node, Diagnostics.A_class_member_cannot_be_declared_optional)) { + return true; + } + // Technically, computed properties in ambient contexts is disallowed + // for property declarations and accessors too, not just methods. + // However, property declarations disallow computed names in general, + // and accessors are not allowed in ambient contexts in general, + // so this error only really matters for methods. + return inAmbientContext && checkForDisallowedComputedProperty(node.name, Diagnostics.Computed_property_names_are_not_allowed_in_an_ambient_context); + } + else if (node.parent.kind === SyntaxKind.InterfaceDeclaration || node.parent.kind === SyntaxKind.TypeLiteral) { + return checkForDisallowedComputedProperty(node.name, Diagnostics.Computed_property_names_are_not_allowed_in_interfaces_or_type_literals); + } } function checkForBodyInAmbientContext(body: Block | Expression, isConstructor: boolean): boolean { @@ -4775,8 +4813,31 @@ module ts { } function checkProperty(node: PropertyDeclaration) { - return (node.parent.kind === SyntaxKind.ClassDeclaration && checkForInvalidQuestionMark(node, Diagnostics.A_class_member_cannot_be_declared_optional)) || - checkForInitializerInAmbientContext(node); + if (node.parent.kind === SyntaxKind.ClassDeclaration) { + if (checkForInvalidQuestionMark(node, Diagnostics.A_class_member_cannot_be_declared_optional) || + checkForDisallowedComputedProperty(node.name, Diagnostics.Computed_property_names_are_not_allowed_in_class_property_declarations)) { + return true; + } + } + else if (node.parent.kind === SyntaxKind.InterfaceDeclaration || node.parent.kind === SyntaxKind.TypeLiteral) { + if (checkForDisallowedComputedProperty(node.name, Diagnostics.Computed_property_names_are_not_allowed_in_interfaces_or_type_literals)) { + return true; + } + } + + checkForInitializerInAmbientContext(node); + } + + function checkComputedPropertyName(node: ComputedPropertyName) { + if (languageVersion < ScriptTarget.ES6) { + return grammarErrorOnNode(node, Diagnostics.Computed_property_names_are_only_available_when_targeting_ECMAScript_6_and_higher); + } + } + + function checkForDisallowedComputedProperty(node: DeclarationName, message: DiagnosticMessage) { + if (node.kind === SyntaxKind.ComputedPropertyName) { + return grammarErrorOnNode(node, message); + } } function checkForInitializerInAmbientContext(node: PropertyDeclaration) { From cf4f34c224d2904202c76a8784e38657ee00dbfd Mon Sep 17 00:00:00 2001 From: Jason Freeman Date: Mon, 17 Nov 2014 14:38:35 -0800 Subject: [PATCH 065/195] Add parser tests for computed properties --- src/compiler/parser.ts | 18 ++++--- tests/baselines/reference/giant.errors.txt | 48 +++++++++---------- ...SignatureMustHaveTypeAnnotation.errors.txt | 12 ++--- .../indexSignatureWithInitializer.errors.txt | 20 +++----- .../indexWithoutParamType2.errors.txt | 6 +-- ...objectTypeWithOptionalProperty1.errors.txt | 4 +- ...jectTypesWithOptionalProperties.errors.txt | 4 +- .../parserComputedPropertyName1.errors.txt | 7 +++ .../parserComputedPropertyName10.errors.txt | 9 ++++ .../parserComputedPropertyName11.errors.txt | 9 ++++ .../parserComputedPropertyName13.errors.txt | 7 +++ .../parserComputedPropertyName14.errors.txt | 7 +++ .../parserComputedPropertyName15.errors.txt | 7 +++ .../parserComputedPropertyName16.errors.txt | 9 ++++ .../parserComputedPropertyName18.errors.txt | 7 +++ .../parserComputedPropertyName19.errors.txt | 7 +++ .../parserComputedPropertyName20.errors.txt | 9 ++++ .../parserComputedPropertyName21.errors.txt | 9 ++++ .../parserComputedPropertyName22.errors.txt | 9 ++++ .../parserComputedPropertyName23.errors.txt | 9 ++++ .../parserComputedPropertyName25.errors.txt | 14 ++++++ .../parserComputedPropertyName26.errors.txt | 14 ++++++ .../parserComputedPropertyName27.errors.txt | 14 ++++++ .../parserComputedPropertyName28.errors.txt | 13 +++++ .../parserComputedPropertyName29.errors.txt | 17 +++++++ .../parserComputedPropertyName30.errors.txt | 14 ++++++ .../parserComputedPropertyName31.errors.txt | 14 ++++++ .../parserComputedPropertyName32.errors.txt | 9 ++++ .../parserComputedPropertyName33.errors.txt | 17 +++++++ .../parserComputedPropertyName34.errors.txt | 17 +++++++ .../parserComputedPropertyName5.errors.txt | 19 ++++++++ .../parserComputedPropertyName7.errors.txt | 9 ++++ .../parserComputedPropertyName8.errors.txt | 9 ++++ .../parserComputedPropertyName9.errors.txt | 12 +++++ .../parserES5ComputedPropertyName1.errors.txt | 9 ++++ ...parserES5ComputedPropertyName10.errors.txt | 9 ++++ ...parserES5ComputedPropertyName11.errors.txt | 12 +++++ .../parserES5ComputedPropertyName2.errors.txt | 7 +++ .../parserES5ComputedPropertyName3.errors.txt | 7 +++ .../parserES5ComputedPropertyName4.errors.txt | 7 +++ .../parserES5ComputedPropertyName5.errors.txt | 9 ++++ .../parserES5ComputedPropertyName6.errors.txt | 9 ++++ .../parserES5ComputedPropertyName7.errors.txt | 9 ++++ .../parserES5ComputedPropertyName8.errors.txt | 7 +++ .../parserES5ComputedPropertyName9.errors.txt | 12 +++++ .../parserIndexSignature11.errors.txt | 6 +-- .../parserIndexSignature4.errors.txt | 11 ++--- .../parserIndexSignature5.errors.txt | 6 +-- .../reference/propertyAssignment.errors.txt | 6 +-- ...uestionMarkInPropertyAssignment.errors.txt | 4 +- .../parserES5ComputedPropertyName1.ts | 4 ++ .../parserES5ComputedPropertyName10.ts | 4 ++ .../parserES5ComputedPropertyName11.ts | 4 ++ .../parserES5ComputedPropertyName2.ts | 2 + .../parserES5ComputedPropertyName3.ts | 2 + .../parserES5ComputedPropertyName4.ts | 2 + .../parserES5ComputedPropertyName5.ts | 4 ++ .../parserES5ComputedPropertyName6.ts | 4 ++ .../parserES5ComputedPropertyName7.ts | 4 ++ .../parserES5ComputedPropertyName8.ts | 2 + .../parserES5ComputedPropertyName9.ts | 4 ++ .../parserComputedPropertyName1.ts | 2 + .../parserComputedPropertyName10.ts | 4 ++ .../parserComputedPropertyName11.ts | 4 ++ .../parserComputedPropertyName12.ts | 4 ++ .../parserComputedPropertyName13.ts | 2 + .../parserComputedPropertyName14.ts | 2 + .../parserComputedPropertyName15.ts | 2 + .../parserComputedPropertyName16.ts | 4 ++ .../parserComputedPropertyName17.ts | 2 + .../parserComputedPropertyName18.ts | 2 + .../parserComputedPropertyName19.ts | 2 + .../parserComputedPropertyName2.ts | 2 + .../parserComputedPropertyName20.ts | 4 ++ .../parserComputedPropertyName21.ts | 4 ++ .../parserComputedPropertyName22.ts | 4 ++ .../parserComputedPropertyName23.ts | 4 ++ .../parserComputedPropertyName24.ts | 4 ++ .../parserComputedPropertyName25.ts | 6 +++ .../parserComputedPropertyName26.ts | 6 +++ .../parserComputedPropertyName27.ts | 6 +++ .../parserComputedPropertyName28.ts | 5 ++ .../parserComputedPropertyName29.ts | 6 +++ .../parserComputedPropertyName3.ts | 2 + .../parserComputedPropertyName30.ts | 6 +++ .../parserComputedPropertyName31.ts | 6 +++ .../parserComputedPropertyName32.ts | 4 ++ .../parserComputedPropertyName33.ts | 6 +++ .../parserComputedPropertyName34.ts | 6 +++ .../parserComputedPropertyName4.ts | 2 + .../parserComputedPropertyName5.ts | 2 + .../parserComputedPropertyName6.ts | 2 + .../parserComputedPropertyName7.ts | 4 ++ .../parserComputedPropertyName8.ts | 4 ++ .../parserComputedPropertyName9.ts | 4 ++ 95 files changed, 626 insertions(+), 78 deletions(-) create mode 100644 tests/baselines/reference/parserComputedPropertyName1.errors.txt create mode 100644 tests/baselines/reference/parserComputedPropertyName10.errors.txt create mode 100644 tests/baselines/reference/parserComputedPropertyName11.errors.txt create mode 100644 tests/baselines/reference/parserComputedPropertyName13.errors.txt create mode 100644 tests/baselines/reference/parserComputedPropertyName14.errors.txt create mode 100644 tests/baselines/reference/parserComputedPropertyName15.errors.txt create mode 100644 tests/baselines/reference/parserComputedPropertyName16.errors.txt create mode 100644 tests/baselines/reference/parserComputedPropertyName18.errors.txt create mode 100644 tests/baselines/reference/parserComputedPropertyName19.errors.txt create mode 100644 tests/baselines/reference/parserComputedPropertyName20.errors.txt create mode 100644 tests/baselines/reference/parserComputedPropertyName21.errors.txt create mode 100644 tests/baselines/reference/parserComputedPropertyName22.errors.txt create mode 100644 tests/baselines/reference/parserComputedPropertyName23.errors.txt create mode 100644 tests/baselines/reference/parserComputedPropertyName25.errors.txt create mode 100644 tests/baselines/reference/parserComputedPropertyName26.errors.txt create mode 100644 tests/baselines/reference/parserComputedPropertyName27.errors.txt create mode 100644 tests/baselines/reference/parserComputedPropertyName28.errors.txt create mode 100644 tests/baselines/reference/parserComputedPropertyName29.errors.txt create mode 100644 tests/baselines/reference/parserComputedPropertyName30.errors.txt create mode 100644 tests/baselines/reference/parserComputedPropertyName31.errors.txt create mode 100644 tests/baselines/reference/parserComputedPropertyName32.errors.txt create mode 100644 tests/baselines/reference/parserComputedPropertyName33.errors.txt create mode 100644 tests/baselines/reference/parserComputedPropertyName34.errors.txt create mode 100644 tests/baselines/reference/parserComputedPropertyName5.errors.txt create mode 100644 tests/baselines/reference/parserComputedPropertyName7.errors.txt create mode 100644 tests/baselines/reference/parserComputedPropertyName8.errors.txt create mode 100644 tests/baselines/reference/parserComputedPropertyName9.errors.txt create mode 100644 tests/baselines/reference/parserES5ComputedPropertyName1.errors.txt create mode 100644 tests/baselines/reference/parserES5ComputedPropertyName10.errors.txt create mode 100644 tests/baselines/reference/parserES5ComputedPropertyName11.errors.txt create mode 100644 tests/baselines/reference/parserES5ComputedPropertyName2.errors.txt create mode 100644 tests/baselines/reference/parserES5ComputedPropertyName3.errors.txt create mode 100644 tests/baselines/reference/parserES5ComputedPropertyName4.errors.txt create mode 100644 tests/baselines/reference/parserES5ComputedPropertyName5.errors.txt create mode 100644 tests/baselines/reference/parserES5ComputedPropertyName6.errors.txt create mode 100644 tests/baselines/reference/parserES5ComputedPropertyName7.errors.txt create mode 100644 tests/baselines/reference/parserES5ComputedPropertyName8.errors.txt create mode 100644 tests/baselines/reference/parserES5ComputedPropertyName9.errors.txt create mode 100644 tests/cases/conformance/parser/ecmascript5/ComputedPropertyNames/parserES5ComputedPropertyName1.ts create mode 100644 tests/cases/conformance/parser/ecmascript5/ComputedPropertyNames/parserES5ComputedPropertyName10.ts create mode 100644 tests/cases/conformance/parser/ecmascript5/ComputedPropertyNames/parserES5ComputedPropertyName11.ts create mode 100644 tests/cases/conformance/parser/ecmascript5/ComputedPropertyNames/parserES5ComputedPropertyName2.ts create mode 100644 tests/cases/conformance/parser/ecmascript5/ComputedPropertyNames/parserES5ComputedPropertyName3.ts create mode 100644 tests/cases/conformance/parser/ecmascript5/ComputedPropertyNames/parserES5ComputedPropertyName4.ts create mode 100644 tests/cases/conformance/parser/ecmascript5/ComputedPropertyNames/parserES5ComputedPropertyName5.ts create mode 100644 tests/cases/conformance/parser/ecmascript5/ComputedPropertyNames/parserES5ComputedPropertyName6.ts create mode 100644 tests/cases/conformance/parser/ecmascript5/ComputedPropertyNames/parserES5ComputedPropertyName7.ts create mode 100644 tests/cases/conformance/parser/ecmascript5/ComputedPropertyNames/parserES5ComputedPropertyName8.ts create mode 100644 tests/cases/conformance/parser/ecmascript5/ComputedPropertyNames/parserES5ComputedPropertyName9.ts create mode 100644 tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName1.ts create mode 100644 tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName10.ts create mode 100644 tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName11.ts create mode 100644 tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName12.ts create mode 100644 tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName13.ts create mode 100644 tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName14.ts create mode 100644 tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName15.ts create mode 100644 tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName16.ts create mode 100644 tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName17.ts create mode 100644 tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName18.ts create mode 100644 tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName19.ts create mode 100644 tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName2.ts create mode 100644 tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName20.ts create mode 100644 tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName21.ts create mode 100644 tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName22.ts create mode 100644 tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName23.ts create mode 100644 tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName24.ts create mode 100644 tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName25.ts create mode 100644 tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName26.ts create mode 100644 tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName27.ts create mode 100644 tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName28.ts create mode 100644 tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName29.ts create mode 100644 tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName3.ts create mode 100644 tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName30.ts create mode 100644 tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName31.ts create mode 100644 tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName32.ts create mode 100644 tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName33.ts create mode 100644 tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName34.ts create mode 100644 tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName4.ts create mode 100644 tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName5.ts create mode 100644 tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName6.ts create mode 100644 tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName7.ts create mode 100644 tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName8.ts create mode 100644 tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName9.ts diff --git a/src/compiler/parser.ts b/src/compiler/parser.ts index d884aef808c..99bb1f6f85d 100644 --- a/src/compiler/parser.ts +++ b/src/compiler/parser.ts @@ -4528,14 +4528,12 @@ module ts { var inStrictMode = (node.parserContextFlags & ParserContextFlags.StrictMode) !== 0; for (var i = 0, n = node.properties.length; i < n; i++) { - var prop = node.properties[i]; - if (prop.kind === SyntaxKind.OmittedExpression || p.name.kind === SyntaxKind.ComputedPropertyName) { + var prop = node.properties[i]; + var name = prop.name; + if (prop.kind === SyntaxKind.OmittedExpression || name.kind === SyntaxKind.ComputedPropertyName) { continue; } - var p = prop; - var name = p.name; - // ECMA-262 11.1.5 Object Initialiser // If previous is not undefined then throw a SyntaxError exception if any of the following conditions are true // a.This production is contained in strict code and IsDataDescriptor(previous) is true and @@ -4545,20 +4543,20 @@ module ts { // d.IsAccessorDescriptor(previous) is true and IsAccessorDescriptor(propId.descriptor) is true // and either both previous and propId.descriptor have[[Get]] fields or both previous and propId.descriptor have[[Set]] fields var currentKind: number; - if (p.kind === SyntaxKind.PropertyAssignment) { + if (prop.kind === SyntaxKind.PropertyAssignment) { currentKind = Property; } - else if (p.kind === SyntaxKind.ShorthandPropertyAssignment) { + else if (prop.kind === SyntaxKind.ShorthandPropertyAssignment) { currentKind = Property; } - else if (p.kind === SyntaxKind.GetAccessor) { + else if (prop.kind === SyntaxKind.GetAccessor) { currentKind = GetAccessor; } - else if (p.kind === SyntaxKind.SetAccessor) { + else if (prop.kind === SyntaxKind.SetAccessor) { currentKind = SetAccesor; } else { - Debug.fail("Unexpected syntax kind:" + p.kind); + Debug.fail("Unexpected syntax kind:" + prop.kind); } if (!hasProperty(seen, name.text)) { diff --git a/tests/baselines/reference/giant.errors.txt b/tests/baselines/reference/giant.errors.txt index 767c419952c..5bc00b7cd28 100644 --- a/tests/baselines/reference/giant.errors.txt +++ b/tests/baselines/reference/giant.errors.txt @@ -4,7 +4,7 @@ tests/cases/compiler/giant.ts(28,17): error TS1056: Accessors are only available tests/cases/compiler/giant.ts(30,17): error TS1056: Accessors are only available when targeting ECMAScript 5 and higher. tests/cases/compiler/giant.ts(34,16): error TS1056: Accessors are only available when targeting ECMAScript 5 and higher. tests/cases/compiler/giant.ts(36,16): error TS1056: Accessors are only available when targeting ECMAScript 5 and higher. -tests/cases/compiler/giant.ts(61,6): error TS1022: An index signature parameter must have a type annotation. +tests/cases/compiler/giant.ts(61,5): error TS1161: Computed property names are not allowed in interfaces or type literals. tests/cases/compiler/giant.ts(62,5): error TS1021: An index signature must have a type annotation. tests/cases/compiler/giant.ts(63,6): error TS1096: An index signature must have exactly one parameter. tests/cases/compiler/giant.ts(88,20): error TS1056: Accessors are only available when targeting ECMAScript 5 and higher. @@ -13,7 +13,7 @@ tests/cases/compiler/giant.ts(92,21): error TS1056: Accessors are only available tests/cases/compiler/giant.ts(94,21): error TS1056: Accessors are only available when targeting ECMAScript 5 and higher. tests/cases/compiler/giant.ts(98,20): error TS1056: Accessors are only available when targeting ECMAScript 5 and higher. tests/cases/compiler/giant.ts(100,20): error TS1056: Accessors are only available when targeting ECMAScript 5 and higher. -tests/cases/compiler/giant.ts(125,10): error TS1022: An index signature parameter must have a type annotation. +tests/cases/compiler/giant.ts(125,9): error TS1161: Computed property names are not allowed in interfaces or type literals. tests/cases/compiler/giant.ts(126,9): error TS1021: An index signature must have a type annotation. tests/cases/compiler/giant.ts(127,10): error TS1096: An index signature must have exactly one parameter. tests/cases/compiler/giant.ts(154,39): error TS1037: A function implementation cannot be declared in an ambient context. @@ -23,7 +23,7 @@ tests/cases/compiler/giant.ts(171,21): error TS1056: Accessors are only availabl tests/cases/compiler/giant.ts(173,21): error TS1056: Accessors are only available when targeting ECMAScript 5 and higher. tests/cases/compiler/giant.ts(177,20): error TS1056: Accessors are only available when targeting ECMAScript 5 and higher. tests/cases/compiler/giant.ts(179,20): error TS1056: Accessors are only available when targeting ECMAScript 5 and higher. -tests/cases/compiler/giant.ts(204,10): error TS1022: An index signature parameter must have a type annotation. +tests/cases/compiler/giant.ts(204,9): error TS1161: Computed property names are not allowed in interfaces or type literals. tests/cases/compiler/giant.ts(205,9): error TS1021: An index signature must have a type annotation. tests/cases/compiler/giant.ts(206,10): error TS1096: An index signature must have exactly one parameter. tests/cases/compiler/giant.ts(233,39): error TS1037: A function implementation cannot be declared in an ambient context. @@ -54,7 +54,7 @@ tests/cases/compiler/giant.ts(286,17): error TS1056: Accessors are only availabl tests/cases/compiler/giant.ts(288,17): error TS1056: Accessors are only available when targeting ECMAScript 5 and higher. tests/cases/compiler/giant.ts(292,16): error TS1056: Accessors are only available when targeting ECMAScript 5 and higher. tests/cases/compiler/giant.ts(294,16): error TS1056: Accessors are only available when targeting ECMAScript 5 and higher. -tests/cases/compiler/giant.ts(319,6): error TS1022: An index signature parameter must have a type annotation. +tests/cases/compiler/giant.ts(319,5): error TS1161: Computed property names are not allowed in interfaces or type literals. tests/cases/compiler/giant.ts(320,5): error TS1021: An index signature must have a type annotation. tests/cases/compiler/giant.ts(321,6): error TS1096: An index signature must have exactly one parameter. tests/cases/compiler/giant.ts(346,20): error TS1056: Accessors are only available when targeting ECMAScript 5 and higher. @@ -63,7 +63,7 @@ tests/cases/compiler/giant.ts(350,21): error TS1056: Accessors are only availabl tests/cases/compiler/giant.ts(352,21): error TS1056: Accessors are only available when targeting ECMAScript 5 and higher. tests/cases/compiler/giant.ts(356,20): error TS1056: Accessors are only available when targeting ECMAScript 5 and higher. tests/cases/compiler/giant.ts(358,20): error TS1056: Accessors are only available when targeting ECMAScript 5 and higher. -tests/cases/compiler/giant.ts(383,10): error TS1022: An index signature parameter must have a type annotation. +tests/cases/compiler/giant.ts(383,9): error TS1161: Computed property names are not allowed in interfaces or type literals. tests/cases/compiler/giant.ts(384,9): error TS1021: An index signature must have a type annotation. tests/cases/compiler/giant.ts(385,10): error TS1096: An index signature must have exactly one parameter. tests/cases/compiler/giant.ts(412,39): error TS1037: A function implementation cannot be declared in an ambient context. @@ -73,7 +73,7 @@ tests/cases/compiler/giant.ts(429,21): error TS1056: Accessors are only availabl tests/cases/compiler/giant.ts(431,21): error TS1056: Accessors are only available when targeting ECMAScript 5 and higher. tests/cases/compiler/giant.ts(435,20): error TS1056: Accessors are only available when targeting ECMAScript 5 and higher. tests/cases/compiler/giant.ts(437,20): error TS1056: Accessors are only available when targeting ECMAScript 5 and higher. -tests/cases/compiler/giant.ts(462,10): error TS1022: An index signature parameter must have a type annotation. +tests/cases/compiler/giant.ts(462,9): error TS1161: Computed property names are not allowed in interfaces or type literals. tests/cases/compiler/giant.ts(463,9): error TS1021: An index signature must have a type annotation. tests/cases/compiler/giant.ts(464,10): error TS1096: An index signature must have exactly one parameter. tests/cases/compiler/giant.ts(491,39): error TS1037: A function implementation cannot be declared in an ambient context. @@ -120,7 +120,7 @@ tests/cases/compiler/giant.ts(556,21): error TS1036: Statements are not allowed tests/cases/compiler/giant.ts(558,24): error TS1111: A constructor implementation cannot be declared in an ambient context. tests/cases/compiler/giant.ts(561,21): error TS1037: A function implementation cannot be declared in an ambient context. tests/cases/compiler/giant.ts(563,21): error TS1037: A function implementation cannot be declared in an ambient context. -tests/cases/compiler/giant.ts(587,10): error TS1022: An index signature parameter must have a type annotation. +tests/cases/compiler/giant.ts(587,9): error TS1161: Computed property names are not allowed in interfaces or type literals. tests/cases/compiler/giant.ts(588,9): error TS1021: An index signature must have a type annotation. tests/cases/compiler/giant.ts(589,10): error TS1096: An index signature must have exactly one parameter. tests/cases/compiler/giant.ts(606,22): error TS1037: A function implementation cannot be declared in an ambient context. @@ -137,7 +137,7 @@ tests/cases/compiler/giant.ts(621,29): error TS1036: Statements are not allowed tests/cases/compiler/giant.ts(623,24): error TS1111: A constructor implementation cannot be declared in an ambient context. tests/cases/compiler/giant.ts(626,21): error TS1037: A function implementation cannot be declared in an ambient context. tests/cases/compiler/giant.ts(628,21): error TS1037: A function implementation cannot be declared in an ambient context. -tests/cases/compiler/giant.ts(653,10): error TS1022: An index signature parameter must have a type annotation. +tests/cases/compiler/giant.ts(653,9): error TS1161: Computed property names are not allowed in interfaces or type literals. tests/cases/compiler/giant.ts(654,9): error TS1021: An index signature must have a type annotation. tests/cases/compiler/giant.ts(655,10): error TS1096: An index signature must have exactly one parameter. tests/cases/compiler/giant.ts(672,22): error TS1037: A function implementation cannot be declared in an ambient context. @@ -360,8 +360,8 @@ tests/cases/compiler/giant.ts(668,9): error TS2386: Overload signatures must all //Index Signature [p]; - ~ -!!! error TS1022: An index signature parameter must have a type annotation. + ~~~ +!!! error TS1161: Computed property names are not allowed in interfaces or type literals. [p1: string]; ~~~~~~~~~~~~~ !!! error TS1021: An index signature must have a type annotation. @@ -468,8 +468,8 @@ tests/cases/compiler/giant.ts(668,9): error TS2386: Overload signatures must all //Index Signature [p]; - ~ -!!! error TS1022: An index signature parameter must have a type annotation. + ~~~ +!!! error TS1161: Computed property names are not allowed in interfaces or type literals. [p1: string]; ~~~~~~~~~~~~~ !!! error TS1021: An index signature must have a type annotation. @@ -593,8 +593,8 @@ tests/cases/compiler/giant.ts(668,9): error TS2386: Overload signatures must all //Index Signature [p]; - ~ -!!! error TS1022: An index signature parameter must have a type annotation. + ~~~ +!!! error TS1161: Computed property names are not allowed in interfaces or type literals. [p1: string]; ~~~~~~~~~~~~~ !!! error TS1021: An index signature must have a type annotation. @@ -820,8 +820,8 @@ tests/cases/compiler/giant.ts(668,9): error TS2386: Overload signatures must all //Index Signature [p]; - ~ -!!! error TS1022: An index signature parameter must have a type annotation. + ~~~ +!!! error TS1161: Computed property names are not allowed in interfaces or type literals. [p1: string]; ~~~~~~~~~~~~~ !!! error TS1021: An index signature must have a type annotation. @@ -928,8 +928,8 @@ tests/cases/compiler/giant.ts(668,9): error TS2386: Overload signatures must all //Index Signature [p]; - ~ -!!! error TS1022: An index signature parameter must have a type annotation. + ~~~ +!!! error TS1161: Computed property names are not allowed in interfaces or type literals. [p1: string]; ~~~~~~~~~~~~~ !!! error TS1021: An index signature must have a type annotation. @@ -1053,8 +1053,8 @@ tests/cases/compiler/giant.ts(668,9): error TS2386: Overload signatures must all //Index Signature [p]; - ~ -!!! error TS1022: An index signature parameter must have a type annotation. + ~~~ +!!! error TS1161: Computed property names are not allowed in interfaces or type literals. [p1: string]; ~~~~~~~~~~~~~ !!! error TS1021: An index signature must have a type annotation. @@ -1322,8 +1322,8 @@ tests/cases/compiler/giant.ts(668,9): error TS2386: Overload signatures must all //Index Signature [p]; - ~ -!!! error TS1022: An index signature parameter must have a type annotation. + ~~~ +!!! error TS1161: Computed property names are not allowed in interfaces or type literals. [p1: string]; ~~~~~~~~~~~~~ !!! error TS1021: An index signature must have a type annotation. @@ -1424,8 +1424,8 @@ tests/cases/compiler/giant.ts(668,9): error TS2386: Overload signatures must all //Index Signature [p]; - ~ -!!! error TS1022: An index signature parameter must have a type annotation. + ~~~ +!!! error TS1161: Computed property names are not allowed in interfaces or type literals. [p1: string]; ~~~~~~~~~~~~~ !!! error TS1021: An index signature must have a type annotation. diff --git a/tests/baselines/reference/indexSignatureMustHaveTypeAnnotation.errors.txt b/tests/baselines/reference/indexSignatureMustHaveTypeAnnotation.errors.txt index e7437fcb056..c76acf795ac 100644 --- a/tests/baselines/reference/indexSignatureMustHaveTypeAnnotation.errors.txt +++ b/tests/baselines/reference/indexSignatureMustHaveTypeAnnotation.errors.txt @@ -1,14 +1,14 @@ -tests/cases/compiler/indexSignatureMustHaveTypeAnnotation.ts(2,6): error TS1022: An index signature parameter must have a type annotation. +tests/cases/compiler/indexSignatureMustHaveTypeAnnotation.ts(2,5): error TS1161: Computed property names are not allowed in interfaces or type literals. tests/cases/compiler/indexSignatureMustHaveTypeAnnotation.ts(3,5): error TS1021: An index signature must have a type annotation. -tests/cases/compiler/indexSignatureMustHaveTypeAnnotation.ts(7,6): error TS1022: An index signature parameter must have a type annotation. +tests/cases/compiler/indexSignatureMustHaveTypeAnnotation.ts(7,5): error TS1164: Computed property names are not allowed in class property declarations. tests/cases/compiler/indexSignatureMustHaveTypeAnnotation.ts(12,5): error TS1021: An index signature must have a type annotation. ==== tests/cases/compiler/indexSignatureMustHaveTypeAnnotation.ts (4 errors) ==== interface I { [x]: string; - ~ -!!! error TS1022: An index signature parameter must have a type annotation. + ~~~ +!!! error TS1161: Computed property names are not allowed in interfaces or type literals. [x: string]; ~~~~~~~~~~~~ !!! error TS1021: An index signature must have a type annotation. @@ -16,8 +16,8 @@ tests/cases/compiler/indexSignatureMustHaveTypeAnnotation.ts(12,5): error TS1021 class C { [x]: string - ~ -!!! error TS1022: An index signature parameter must have a type annotation. + ~~~ +!!! error TS1164: Computed property names are not allowed in class property declarations. } diff --git a/tests/baselines/reference/indexSignatureWithInitializer.errors.txt b/tests/baselines/reference/indexSignatureWithInitializer.errors.txt index 9eeff2c5781..414bcdfb84c 100644 --- a/tests/baselines/reference/indexSignatureWithInitializer.errors.txt +++ b/tests/baselines/reference/indexSignatureWithInitializer.errors.txt @@ -1,22 +1,16 @@ -tests/cases/compiler/indexSignatureWithInitializer.ts(2,6): error TS1020: An index signature parameter cannot have an initializer. -tests/cases/compiler/indexSignatureWithInitializer.ts(6,6): error TS1020: An index signature parameter cannot have an initializer. -tests/cases/compiler/indexSignatureWithInitializer.ts(2,6): error TS2371: A parameter initializer is only allowed in a function or constructor implementation. -tests/cases/compiler/indexSignatureWithInitializer.ts(6,6): error TS2371: A parameter initializer is only allowed in a function or constructor implementation. +tests/cases/compiler/indexSignatureWithInitializer.ts(2,5): error TS1161: Computed property names are not allowed in interfaces or type literals. +tests/cases/compiler/indexSignatureWithInitializer.ts(6,5): error TS1164: Computed property names are not allowed in class property declarations. -==== tests/cases/compiler/indexSignatureWithInitializer.ts (4 errors) ==== +==== tests/cases/compiler/indexSignatureWithInitializer.ts (2 errors) ==== interface I { [x = '']: string; - ~ -!!! error TS1020: An index signature parameter cannot have an initializer. - ~~~~~~ -!!! error TS2371: A parameter initializer is only allowed in a function or constructor implementation. + ~~~~~~~~ +!!! error TS1161: Computed property names are not allowed in interfaces or type literals. } class C { [x = 0]: string - ~ -!!! error TS1020: An index signature parameter cannot have an initializer. - ~~~~~ -!!! error TS2371: A parameter initializer is only allowed in a function or constructor implementation. + ~~~~~~~ +!!! error TS1164: Computed property names are not allowed in class property declarations. } \ No newline at end of file diff --git a/tests/baselines/reference/indexWithoutParamType2.errors.txt b/tests/baselines/reference/indexWithoutParamType2.errors.txt index 3e7b9b49223..f9ab6057546 100644 --- a/tests/baselines/reference/indexWithoutParamType2.errors.txt +++ b/tests/baselines/reference/indexWithoutParamType2.errors.txt @@ -1,9 +1,9 @@ -tests/cases/compiler/indexWithoutParamType2.ts(2,6): error TS1022: An index signature parameter must have a type annotation. +tests/cases/compiler/indexWithoutParamType2.ts(2,5): error TS1164: Computed property names are not allowed in class property declarations. ==== tests/cases/compiler/indexWithoutParamType2.ts (1 errors) ==== class C { [x]: string - ~ -!!! error TS1022: An index signature parameter must have a type annotation. + ~~~ +!!! error TS1164: Computed property names are not allowed in class property declarations. } \ No newline at end of file diff --git a/tests/baselines/reference/objectTypeWithOptionalProperty1.errors.txt b/tests/baselines/reference/objectTypeWithOptionalProperty1.errors.txt index e2e1c05ea1e..7e17563873a 100644 --- a/tests/baselines/reference/objectTypeWithOptionalProperty1.errors.txt +++ b/tests/baselines/reference/objectTypeWithOptionalProperty1.errors.txt @@ -1,9 +1,9 @@ -tests/cases/compiler/objectTypeWithOptionalProperty1.ts(2,10): error TS1162: An object member cannot be declared optional. +tests/cases/compiler/objectTypeWithOptionalProperty1.ts(2,10): error TS1160: An object member cannot be declared optional. ==== tests/cases/compiler/objectTypeWithOptionalProperty1.ts (1 errors) ==== var b = { x?: 1 // error ~ -!!! error TS1162: An object member cannot be declared optional. +!!! error TS1160: An object member cannot be declared optional. } \ No newline at end of file diff --git a/tests/baselines/reference/objectTypesWithOptionalProperties.errors.txt b/tests/baselines/reference/objectTypesWithOptionalProperties.errors.txt index a2269c29d11..d33a5e35b63 100644 --- a/tests/baselines/reference/objectTypesWithOptionalProperties.errors.txt +++ b/tests/baselines/reference/objectTypesWithOptionalProperties.errors.txt @@ -1,6 +1,6 @@ tests/cases/conformance/types/objectTypeLiteral/methodSignatures/objectTypesWithOptionalProperties.ts(12,6): error TS1112: A class member cannot be declared optional. tests/cases/conformance/types/objectTypeLiteral/methodSignatures/objectTypesWithOptionalProperties.ts(20,6): error TS1112: A class member cannot be declared optional. -tests/cases/conformance/types/objectTypeLiteral/methodSignatures/objectTypesWithOptionalProperties.ts(24,6): error TS1162: An object member cannot be declared optional. +tests/cases/conformance/types/objectTypeLiteral/methodSignatures/objectTypesWithOptionalProperties.ts(24,6): error TS1160: An object member cannot be declared optional. ==== tests/cases/conformance/types/objectTypeLiteral/methodSignatures/objectTypesWithOptionalProperties.ts (3 errors) ==== @@ -33,5 +33,5 @@ tests/cases/conformance/types/objectTypeLiteral/methodSignatures/objectTypesWith var b = { x?: 1 // error ~ -!!! error TS1162: An object member cannot be declared optional. +!!! error TS1160: An object member cannot be declared optional. } \ No newline at end of file diff --git a/tests/baselines/reference/parserComputedPropertyName1.errors.txt b/tests/baselines/reference/parserComputedPropertyName1.errors.txt new file mode 100644 index 00000000000..508d06a915c --- /dev/null +++ b/tests/baselines/reference/parserComputedPropertyName1.errors.txt @@ -0,0 +1,7 @@ +tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName1.ts(1,15): error TS1005: ':' expected. + + +==== tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName1.ts (1 errors) ==== + var v = { [e] }; + ~ +!!! error TS1005: ':' expected. \ No newline at end of file diff --git a/tests/baselines/reference/parserComputedPropertyName10.errors.txt b/tests/baselines/reference/parserComputedPropertyName10.errors.txt new file mode 100644 index 00000000000..279750d21bd --- /dev/null +++ b/tests/baselines/reference/parserComputedPropertyName10.errors.txt @@ -0,0 +1,9 @@ +tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName10.ts(2,4): error TS1164: Computed property names are not allowed in class property declarations. + + +==== tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName10.ts (1 errors) ==== + class C { + [e] = 1 + ~~~ +!!! error TS1164: Computed property names are not allowed in class property declarations. + } \ No newline at end of file diff --git a/tests/baselines/reference/parserComputedPropertyName11.errors.txt b/tests/baselines/reference/parserComputedPropertyName11.errors.txt new file mode 100644 index 00000000000..2d2edd2b841 --- /dev/null +++ b/tests/baselines/reference/parserComputedPropertyName11.errors.txt @@ -0,0 +1,9 @@ +tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName11.ts(2,4): error TS2391: Function implementation is missing or not immediately following the declaration. + + +==== tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName11.ts (1 errors) ==== + class C { + [e](); + ~~~ +!!! error TS2391: Function implementation is missing or not immediately following the declaration. + } \ No newline at end of file diff --git a/tests/baselines/reference/parserComputedPropertyName13.errors.txt b/tests/baselines/reference/parserComputedPropertyName13.errors.txt new file mode 100644 index 00000000000..eb5eb57d902 --- /dev/null +++ b/tests/baselines/reference/parserComputedPropertyName13.errors.txt @@ -0,0 +1,7 @@ +tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName13.ts(1,10): error TS1161: Computed property names are not allowed in interfaces or type literals. + + +==== tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName13.ts (1 errors) ==== + var v: { [e]: number }; + ~~~ +!!! error TS1161: Computed property names are not allowed in interfaces or type literals. \ No newline at end of file diff --git a/tests/baselines/reference/parserComputedPropertyName14.errors.txt b/tests/baselines/reference/parserComputedPropertyName14.errors.txt new file mode 100644 index 00000000000..ac5fcfff3bd --- /dev/null +++ b/tests/baselines/reference/parserComputedPropertyName14.errors.txt @@ -0,0 +1,7 @@ +tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName14.ts(1,10): error TS1161: Computed property names are not allowed in interfaces or type literals. + + +==== tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName14.ts (1 errors) ==== + var v: { [e](): number }; + ~~~ +!!! error TS1161: Computed property names are not allowed in interfaces or type literals. \ No newline at end of file diff --git a/tests/baselines/reference/parserComputedPropertyName15.errors.txt b/tests/baselines/reference/parserComputedPropertyName15.errors.txt new file mode 100644 index 00000000000..e03c5c1f259 --- /dev/null +++ b/tests/baselines/reference/parserComputedPropertyName15.errors.txt @@ -0,0 +1,7 @@ +tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName15.ts(1,31): error TS1161: Computed property names are not allowed in interfaces or type literals. + + +==== tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName15.ts (1 errors) ==== + var v: { [e: number]: string; [e]: number }; + ~~~ +!!! error TS1161: Computed property names are not allowed in interfaces or type literals. \ No newline at end of file diff --git a/tests/baselines/reference/parserComputedPropertyName16.errors.txt b/tests/baselines/reference/parserComputedPropertyName16.errors.txt new file mode 100644 index 00000000000..8deb137f3af --- /dev/null +++ b/tests/baselines/reference/parserComputedPropertyName16.errors.txt @@ -0,0 +1,9 @@ +tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName16.ts(2,3): error TS1162: Computed property names are not allowed in enums. + + +==== tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName16.ts (1 errors) ==== + enum E { + [e] = 1 + ~~~ +!!! error TS1162: Computed property names are not allowed in enums. + } \ No newline at end of file diff --git a/tests/baselines/reference/parserComputedPropertyName18.errors.txt b/tests/baselines/reference/parserComputedPropertyName18.errors.txt new file mode 100644 index 00000000000..1e09dae76aa --- /dev/null +++ b/tests/baselines/reference/parserComputedPropertyName18.errors.txt @@ -0,0 +1,7 @@ +tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName18.ts(1,10): error TS1161: Computed property names are not allowed in interfaces or type literals. + + +==== tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName18.ts (1 errors) ==== + var v: { [e]?(): number }; + ~~~ +!!! error TS1161: Computed property names are not allowed in interfaces or type literals. \ No newline at end of file diff --git a/tests/baselines/reference/parserComputedPropertyName19.errors.txt b/tests/baselines/reference/parserComputedPropertyName19.errors.txt new file mode 100644 index 00000000000..3ee3ed84d7b --- /dev/null +++ b/tests/baselines/reference/parserComputedPropertyName19.errors.txt @@ -0,0 +1,7 @@ +tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName19.ts(1,10): error TS1161: Computed property names are not allowed in interfaces or type literals. + + +==== tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName19.ts (1 errors) ==== + var v: { [e]? }; + ~~~ +!!! error TS1161: Computed property names are not allowed in interfaces or type literals. \ No newline at end of file diff --git a/tests/baselines/reference/parserComputedPropertyName20.errors.txt b/tests/baselines/reference/parserComputedPropertyName20.errors.txt new file mode 100644 index 00000000000..2b77f033d9e --- /dev/null +++ b/tests/baselines/reference/parserComputedPropertyName20.errors.txt @@ -0,0 +1,9 @@ +tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName20.ts(2,5): error TS1161: Computed property names are not allowed in interfaces or type literals. + + +==== tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName20.ts (1 errors) ==== + interface I { + [e](): number + ~~~ +!!! error TS1161: Computed property names are not allowed in interfaces or type literals. + } \ No newline at end of file diff --git a/tests/baselines/reference/parserComputedPropertyName21.errors.txt b/tests/baselines/reference/parserComputedPropertyName21.errors.txt new file mode 100644 index 00000000000..f472afd93ee --- /dev/null +++ b/tests/baselines/reference/parserComputedPropertyName21.errors.txt @@ -0,0 +1,9 @@ +tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName21.ts(2,5): error TS1161: Computed property names are not allowed in interfaces or type literals. + + +==== tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName21.ts (1 errors) ==== + interface I { + [e]: number + ~~~ +!!! error TS1161: Computed property names are not allowed in interfaces or type literals. + } \ No newline at end of file diff --git a/tests/baselines/reference/parserComputedPropertyName22.errors.txt b/tests/baselines/reference/parserComputedPropertyName22.errors.txt new file mode 100644 index 00000000000..dae871108f0 --- /dev/null +++ b/tests/baselines/reference/parserComputedPropertyName22.errors.txt @@ -0,0 +1,9 @@ +tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName22.ts(2,5): error TS1164: Computed property names are not allowed in class property declarations. + + +==== tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName22.ts (1 errors) ==== + declare class C { + [e]: number + ~~~ +!!! error TS1164: Computed property names are not allowed in class property declarations. + } \ No newline at end of file diff --git a/tests/baselines/reference/parserComputedPropertyName23.errors.txt b/tests/baselines/reference/parserComputedPropertyName23.errors.txt new file mode 100644 index 00000000000..2018032ef94 --- /dev/null +++ b/tests/baselines/reference/parserComputedPropertyName23.errors.txt @@ -0,0 +1,9 @@ +tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName23.ts(2,9): error TS1086: An accessor cannot be declared in an ambient context. + + +==== tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName23.ts (1 errors) ==== + declare class C { + get [e](): number + ~~~ +!!! error TS1086: An accessor cannot be declared in an ambient context. + } \ No newline at end of file diff --git a/tests/baselines/reference/parserComputedPropertyName25.errors.txt b/tests/baselines/reference/parserComputedPropertyName25.errors.txt new file mode 100644 index 00000000000..7e0d3abdd37 --- /dev/null +++ b/tests/baselines/reference/parserComputedPropertyName25.errors.txt @@ -0,0 +1,14 @@ +tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName25.ts(3,5): error TS1164: Computed property names are not allowed in class property declarations. +tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName25.ts(4,6): error TS2304: Cannot find name 'e2'. + + +==== tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName25.ts (2 errors) ==== + class C { + // No ASI + [e] = 0 + ~~~ +!!! error TS1164: Computed property names are not allowed in class property declarations. + [e2] = 1 + ~~ +!!! error TS2304: Cannot find name 'e2'. + } \ No newline at end of file diff --git a/tests/baselines/reference/parserComputedPropertyName26.errors.txt b/tests/baselines/reference/parserComputedPropertyName26.errors.txt new file mode 100644 index 00000000000..85d0729e73f --- /dev/null +++ b/tests/baselines/reference/parserComputedPropertyName26.errors.txt @@ -0,0 +1,14 @@ +tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName26.ts(3,5): error TS1162: Computed property names are not allowed in enums. +tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName26.ts(4,6): error TS2304: Cannot find name 'e2'. + + +==== tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName26.ts (2 errors) ==== + enum E { + // No ASI + [e] = 0 + ~~~ +!!! error TS1162: Computed property names are not allowed in enums. + [e2] = 1 + ~~ +!!! error TS2304: Cannot find name 'e2'. + } \ No newline at end of file diff --git a/tests/baselines/reference/parserComputedPropertyName27.errors.txt b/tests/baselines/reference/parserComputedPropertyName27.errors.txt new file mode 100644 index 00000000000..ee13c5878c7 --- /dev/null +++ b/tests/baselines/reference/parserComputedPropertyName27.errors.txt @@ -0,0 +1,14 @@ +tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName27.ts(4,9): error TS1005: ';' expected. +tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName27.ts(4,6): error TS2304: Cannot find name 'e2'. + + +==== tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName27.ts (2 errors) ==== + class C { + // No ASI + [e]: number = 0 + [e2]: number + ~ +!!! error TS1005: ';' expected. + ~~ +!!! error TS2304: Cannot find name 'e2'. + } \ No newline at end of file diff --git a/tests/baselines/reference/parserComputedPropertyName28.errors.txt b/tests/baselines/reference/parserComputedPropertyName28.errors.txt new file mode 100644 index 00000000000..f36b15b61b6 --- /dev/null +++ b/tests/baselines/reference/parserComputedPropertyName28.errors.txt @@ -0,0 +1,13 @@ +tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName28.ts(2,5): error TS1164: Computed property names are not allowed in class property declarations. +tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName28.ts(3,5): error TS1164: Computed property names are not allowed in class property declarations. + + +==== tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName28.ts (2 errors) ==== + class C { + [e]: number = 0; + ~~~ +!!! error TS1164: Computed property names are not allowed in class property declarations. + [e2]: number + ~~~~ +!!! error TS1164: Computed property names are not allowed in class property declarations. + } \ No newline at end of file diff --git a/tests/baselines/reference/parserComputedPropertyName29.errors.txt b/tests/baselines/reference/parserComputedPropertyName29.errors.txt new file mode 100644 index 00000000000..0b832d1b68f --- /dev/null +++ b/tests/baselines/reference/parserComputedPropertyName29.errors.txt @@ -0,0 +1,17 @@ +tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName29.ts(3,5): error TS1164: Computed property names are not allowed in class property declarations. +tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName29.ts(4,5): error TS1164: Computed property names are not allowed in class property declarations. +tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName29.ts(3,11): error TS2304: Cannot find name 'id'. + + +==== tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName29.ts (3 errors) ==== + class C { + // yes ASI + [e] = id++ + ~~~ +!!! error TS1164: Computed property names are not allowed in class property declarations. + ~~ +!!! error TS2304: Cannot find name 'id'. + [e2]: number + ~~~~ +!!! error TS1164: Computed property names are not allowed in class property declarations. + } \ No newline at end of file diff --git a/tests/baselines/reference/parserComputedPropertyName30.errors.txt b/tests/baselines/reference/parserComputedPropertyName30.errors.txt new file mode 100644 index 00000000000..0058f0ef698 --- /dev/null +++ b/tests/baselines/reference/parserComputedPropertyName30.errors.txt @@ -0,0 +1,14 @@ +tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName30.ts(4,5): error TS1005: ',' expected. +tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName30.ts(3,11): error TS2304: Cannot find name 'id'. + + +==== tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName30.ts (2 errors) ==== + enum E { + // no ASI, comma expected + [e] = id++ + ~~ +!!! error TS2304: Cannot find name 'id'. + [e2] = 1 + ~ +!!! error TS1005: ',' expected. + } \ No newline at end of file diff --git a/tests/baselines/reference/parserComputedPropertyName31.errors.txt b/tests/baselines/reference/parserComputedPropertyName31.errors.txt new file mode 100644 index 00000000000..21f96dcbf5d --- /dev/null +++ b/tests/baselines/reference/parserComputedPropertyName31.errors.txt @@ -0,0 +1,14 @@ +tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName31.ts(3,5): error TS1164: Computed property names are not allowed in class property declarations. +tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName31.ts(4,5): error TS1164: Computed property names are not allowed in class property declarations. + + +==== tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName31.ts (2 errors) ==== + class C { + // yes ASI + [e]: number + ~~~ +!!! error TS1164: Computed property names are not allowed in class property declarations. + [e2]: number + ~~~~ +!!! error TS1164: Computed property names are not allowed in class property declarations. + } \ No newline at end of file diff --git a/tests/baselines/reference/parserComputedPropertyName32.errors.txt b/tests/baselines/reference/parserComputedPropertyName32.errors.txt new file mode 100644 index 00000000000..88d738421e2 --- /dev/null +++ b/tests/baselines/reference/parserComputedPropertyName32.errors.txt @@ -0,0 +1,9 @@ +tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName32.ts(2,5): error TS1163: Computed property names are not allowed in an ambient context. + + +==== tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName32.ts (1 errors) ==== + declare class C { + [e](): number + ~~~ +!!! error TS1163: Computed property names are not allowed in an ambient context. + } \ No newline at end of file diff --git a/tests/baselines/reference/parserComputedPropertyName33.errors.txt b/tests/baselines/reference/parserComputedPropertyName33.errors.txt new file mode 100644 index 00000000000..bea498036f8 --- /dev/null +++ b/tests/baselines/reference/parserComputedPropertyName33.errors.txt @@ -0,0 +1,17 @@ +tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName33.ts(4,12): error TS1005: ';' expected. +tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName33.ts(5,1): error TS1128: Declaration or statement expected. +tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName33.ts(4,6): error TS2304: Cannot find name 'e2'. + + +==== tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName33.ts (3 errors) ==== + class C { + // No ASI + [e] = 0 + [e2]() { } + ~ +!!! error TS1005: ';' expected. + ~~ +!!! error TS2304: Cannot find name 'e2'. + } + ~ +!!! error TS1128: Declaration or statement expected. \ No newline at end of file diff --git a/tests/baselines/reference/parserComputedPropertyName34.errors.txt b/tests/baselines/reference/parserComputedPropertyName34.errors.txt new file mode 100644 index 00000000000..b1cc4b91533 --- /dev/null +++ b/tests/baselines/reference/parserComputedPropertyName34.errors.txt @@ -0,0 +1,17 @@ +tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName34.ts(3,5): error TS1162: Computed property names are not allowed in enums. +tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName34.ts(4,5): error TS1162: Computed property names are not allowed in enums. +tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName34.ts(3,11): error TS2304: Cannot find name 'id'. + + +==== tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName34.ts (3 errors) ==== + enum E { + // no ASI, comma expected + [e] = id++, + ~~~ +!!! error TS1162: Computed property names are not allowed in enums. + ~~ +!!! error TS2304: Cannot find name 'id'. + [e2] = 1 + ~~~~ +!!! error TS1162: Computed property names are not allowed in enums. + } \ No newline at end of file diff --git a/tests/baselines/reference/parserComputedPropertyName5.errors.txt b/tests/baselines/reference/parserComputedPropertyName5.errors.txt new file mode 100644 index 00000000000..149550c93ff --- /dev/null +++ b/tests/baselines/reference/parserComputedPropertyName5.errors.txt @@ -0,0 +1,19 @@ +tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName5.ts(1,18): error TS1005: ':' expected. +tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName5.ts(1,28): error TS1005: ',' expected. +tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName5.ts(1,32): error TS1128: Declaration or statement expected. +tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName5.ts(1,18): error TS2304: Cannot find name 'get'. +tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName5.ts(1,23): error TS2304: Cannot find name 'e'. + + +==== tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName5.ts (5 errors) ==== + var v = { public get [e]() { } }; + ~~~ +!!! error TS1005: ':' expected. + ~ +!!! error TS1005: ',' expected. + ~ +!!! error TS1128: Declaration or statement expected. + ~~~ +!!! error TS2304: Cannot find name 'get'. + ~ +!!! error TS2304: Cannot find name 'e'. \ No newline at end of file diff --git a/tests/baselines/reference/parserComputedPropertyName7.errors.txt b/tests/baselines/reference/parserComputedPropertyName7.errors.txt new file mode 100644 index 00000000000..6c46fc343a8 --- /dev/null +++ b/tests/baselines/reference/parserComputedPropertyName7.errors.txt @@ -0,0 +1,9 @@ +tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName7.ts(2,4): error TS1164: Computed property names are not allowed in class property declarations. + + +==== tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName7.ts (1 errors) ==== + class C { + [e] + ~~~ +!!! error TS1164: Computed property names are not allowed in class property declarations. + } \ No newline at end of file diff --git a/tests/baselines/reference/parserComputedPropertyName8.errors.txt b/tests/baselines/reference/parserComputedPropertyName8.errors.txt new file mode 100644 index 00000000000..07f5ec5dee1 --- /dev/null +++ b/tests/baselines/reference/parserComputedPropertyName8.errors.txt @@ -0,0 +1,9 @@ +tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName8.ts(2,11): error TS1164: Computed property names are not allowed in class property declarations. + + +==== tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName8.ts (1 errors) ==== + class C { + public [e] + ~~~ +!!! error TS1164: Computed property names are not allowed in class property declarations. + } \ No newline at end of file diff --git a/tests/baselines/reference/parserComputedPropertyName9.errors.txt b/tests/baselines/reference/parserComputedPropertyName9.errors.txt new file mode 100644 index 00000000000..a93da2261c8 --- /dev/null +++ b/tests/baselines/reference/parserComputedPropertyName9.errors.txt @@ -0,0 +1,12 @@ +tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName9.ts(2,4): error TS1164: Computed property names are not allowed in class property declarations. +tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName9.ts(2,9): error TS2304: Cannot find name 'Type'. + + +==== tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName9.ts (2 errors) ==== + class C { + [e]: Type + ~~~ +!!! error TS1164: Computed property names are not allowed in class property declarations. + ~~~~ +!!! error TS2304: Cannot find name 'Type'. + } \ No newline at end of file diff --git a/tests/baselines/reference/parserES5ComputedPropertyName1.errors.txt b/tests/baselines/reference/parserES5ComputedPropertyName1.errors.txt new file mode 100644 index 00000000000..75e5d505696 --- /dev/null +++ b/tests/baselines/reference/parserES5ComputedPropertyName1.errors.txt @@ -0,0 +1,9 @@ +tests/cases/conformance/parser/ecmascript5/ComputedPropertyNames/parserES5ComputedPropertyName1.ts(2,5): error TS1164: Computed property names are not allowed in class property declarations. + + +==== tests/cases/conformance/parser/ecmascript5/ComputedPropertyNames/parserES5ComputedPropertyName1.ts (1 errors) ==== + declare class C { + [e]: number + ~~~ +!!! error TS1164: Computed property names are not allowed in class property declarations. + } \ No newline at end of file diff --git a/tests/baselines/reference/parserES5ComputedPropertyName10.errors.txt b/tests/baselines/reference/parserES5ComputedPropertyName10.errors.txt new file mode 100644 index 00000000000..c2e53b50818 --- /dev/null +++ b/tests/baselines/reference/parserES5ComputedPropertyName10.errors.txt @@ -0,0 +1,9 @@ +tests/cases/conformance/parser/ecmascript5/ComputedPropertyNames/parserES5ComputedPropertyName10.ts(2,4): error TS1164: Computed property names are not allowed in class property declarations. + + +==== tests/cases/conformance/parser/ecmascript5/ComputedPropertyNames/parserES5ComputedPropertyName10.ts (1 errors) ==== + class C { + [e] = 1 + ~~~ +!!! error TS1164: Computed property names are not allowed in class property declarations. + } \ No newline at end of file diff --git a/tests/baselines/reference/parserES5ComputedPropertyName11.errors.txt b/tests/baselines/reference/parserES5ComputedPropertyName11.errors.txt new file mode 100644 index 00000000000..cfd2ba4c3f8 --- /dev/null +++ b/tests/baselines/reference/parserES5ComputedPropertyName11.errors.txt @@ -0,0 +1,12 @@ +tests/cases/conformance/parser/ecmascript5/ComputedPropertyNames/parserES5ComputedPropertyName11.ts(2,4): error TS1165: Computed property names are only available when targeting ECMAScript 6 and higher. +tests/cases/conformance/parser/ecmascript5/ComputedPropertyNames/parserES5ComputedPropertyName11.ts(2,4): error TS2391: Function implementation is missing or not immediately following the declaration. + + +==== tests/cases/conformance/parser/ecmascript5/ComputedPropertyNames/parserES5ComputedPropertyName11.ts (2 errors) ==== + class C { + [e](); + ~~~ +!!! error TS1165: Computed property names are only available when targeting ECMAScript 6 and higher. + ~~~ +!!! error TS2391: Function implementation is missing or not immediately following the declaration. + } \ No newline at end of file diff --git a/tests/baselines/reference/parserES5ComputedPropertyName2.errors.txt b/tests/baselines/reference/parserES5ComputedPropertyName2.errors.txt new file mode 100644 index 00000000000..9b2d920f53f --- /dev/null +++ b/tests/baselines/reference/parserES5ComputedPropertyName2.errors.txt @@ -0,0 +1,7 @@ +tests/cases/conformance/parser/ecmascript5/ComputedPropertyNames/parserES5ComputedPropertyName2.ts(1,11): error TS1165: Computed property names are only available when targeting ECMAScript 6 and higher. + + +==== tests/cases/conformance/parser/ecmascript5/ComputedPropertyNames/parserES5ComputedPropertyName2.ts (1 errors) ==== + var v = { [e]: 1 }; + ~~~ +!!! error TS1165: Computed property names are only available when targeting ECMAScript 6 and higher. \ No newline at end of file diff --git a/tests/baselines/reference/parserES5ComputedPropertyName3.errors.txt b/tests/baselines/reference/parserES5ComputedPropertyName3.errors.txt new file mode 100644 index 00000000000..da346e98bae --- /dev/null +++ b/tests/baselines/reference/parserES5ComputedPropertyName3.errors.txt @@ -0,0 +1,7 @@ +tests/cases/conformance/parser/ecmascript5/ComputedPropertyNames/parserES5ComputedPropertyName3.ts(1,11): error TS1165: Computed property names are only available when targeting ECMAScript 6 and higher. + + +==== tests/cases/conformance/parser/ecmascript5/ComputedPropertyNames/parserES5ComputedPropertyName3.ts (1 errors) ==== + var v = { [e]() { } }; + ~~~ +!!! error TS1165: Computed property names are only available when targeting ECMAScript 6 and higher. \ No newline at end of file diff --git a/tests/baselines/reference/parserES5ComputedPropertyName4.errors.txt b/tests/baselines/reference/parserES5ComputedPropertyName4.errors.txt new file mode 100644 index 00000000000..b99115f8d1e --- /dev/null +++ b/tests/baselines/reference/parserES5ComputedPropertyName4.errors.txt @@ -0,0 +1,7 @@ +tests/cases/conformance/parser/ecmascript5/ComputedPropertyNames/parserES5ComputedPropertyName4.ts(1,15): error TS1165: Computed property names are only available when targeting ECMAScript 6 and higher. + + +==== tests/cases/conformance/parser/ecmascript5/ComputedPropertyNames/parserES5ComputedPropertyName4.ts (1 errors) ==== + var v = { get [e]() { } }; + ~~~ +!!! error TS1165: Computed property names are only available when targeting ECMAScript 6 and higher. \ No newline at end of file diff --git a/tests/baselines/reference/parserES5ComputedPropertyName5.errors.txt b/tests/baselines/reference/parserES5ComputedPropertyName5.errors.txt new file mode 100644 index 00000000000..fc7a67e729b --- /dev/null +++ b/tests/baselines/reference/parserES5ComputedPropertyName5.errors.txt @@ -0,0 +1,9 @@ +tests/cases/conformance/parser/ecmascript5/ComputedPropertyNames/parserES5ComputedPropertyName5.ts(2,5): error TS1161: Computed property names are not allowed in interfaces or type literals. + + +==== tests/cases/conformance/parser/ecmascript5/ComputedPropertyNames/parserES5ComputedPropertyName5.ts (1 errors) ==== + interface I { + [e]: number + ~~~ +!!! error TS1161: Computed property names are not allowed in interfaces or type literals. + } \ No newline at end of file diff --git a/tests/baselines/reference/parserES5ComputedPropertyName6.errors.txt b/tests/baselines/reference/parserES5ComputedPropertyName6.errors.txt new file mode 100644 index 00000000000..ce3592b08e0 --- /dev/null +++ b/tests/baselines/reference/parserES5ComputedPropertyName6.errors.txt @@ -0,0 +1,9 @@ +tests/cases/conformance/parser/ecmascript5/ComputedPropertyNames/parserES5ComputedPropertyName6.ts(2,3): error TS1162: Computed property names are not allowed in enums. + + +==== tests/cases/conformance/parser/ecmascript5/ComputedPropertyNames/parserES5ComputedPropertyName6.ts (1 errors) ==== + enum E { + [e] = 1 + ~~~ +!!! error TS1162: Computed property names are not allowed in enums. + } \ No newline at end of file diff --git a/tests/baselines/reference/parserES5ComputedPropertyName7.errors.txt b/tests/baselines/reference/parserES5ComputedPropertyName7.errors.txt new file mode 100644 index 00000000000..5bc1a94da3b --- /dev/null +++ b/tests/baselines/reference/parserES5ComputedPropertyName7.errors.txt @@ -0,0 +1,9 @@ +tests/cases/conformance/parser/ecmascript5/ComputedPropertyNames/parserES5ComputedPropertyName7.ts(2,4): error TS1164: Computed property names are not allowed in class property declarations. + + +==== tests/cases/conformance/parser/ecmascript5/ComputedPropertyNames/parserES5ComputedPropertyName7.ts (1 errors) ==== + class C { + [e] + ~~~ +!!! error TS1164: Computed property names are not allowed in class property declarations. + } \ No newline at end of file diff --git a/tests/baselines/reference/parserES5ComputedPropertyName8.errors.txt b/tests/baselines/reference/parserES5ComputedPropertyName8.errors.txt new file mode 100644 index 00000000000..e5312829ab6 --- /dev/null +++ b/tests/baselines/reference/parserES5ComputedPropertyName8.errors.txt @@ -0,0 +1,7 @@ +tests/cases/conformance/parser/ecmascript5/ComputedPropertyNames/parserES5ComputedPropertyName8.ts(1,10): error TS1161: Computed property names are not allowed in interfaces or type literals. + + +==== tests/cases/conformance/parser/ecmascript5/ComputedPropertyNames/parserES5ComputedPropertyName8.ts (1 errors) ==== + var v: { [e]: number }; + ~~~ +!!! error TS1161: Computed property names are not allowed in interfaces or type literals. \ No newline at end of file diff --git a/tests/baselines/reference/parserES5ComputedPropertyName9.errors.txt b/tests/baselines/reference/parserES5ComputedPropertyName9.errors.txt new file mode 100644 index 00000000000..af78dcc3e4e --- /dev/null +++ b/tests/baselines/reference/parserES5ComputedPropertyName9.errors.txt @@ -0,0 +1,12 @@ +tests/cases/conformance/parser/ecmascript5/ComputedPropertyNames/parserES5ComputedPropertyName9.ts(2,4): error TS1164: Computed property names are not allowed in class property declarations. +tests/cases/conformance/parser/ecmascript5/ComputedPropertyNames/parserES5ComputedPropertyName9.ts(2,9): error TS2304: Cannot find name 'Type'. + + +==== tests/cases/conformance/parser/ecmascript5/ComputedPropertyNames/parserES5ComputedPropertyName9.ts (2 errors) ==== + class C { + [e]: Type + ~~~ +!!! error TS1164: Computed property names are not allowed in class property declarations. + ~~~~ +!!! error TS2304: Cannot find name 'Type'. + } \ No newline at end of file diff --git a/tests/baselines/reference/parserIndexSignature11.errors.txt b/tests/baselines/reference/parserIndexSignature11.errors.txt index 585e72a3516..427d3090e48 100644 --- a/tests/baselines/reference/parserIndexSignature11.errors.txt +++ b/tests/baselines/reference/parserIndexSignature11.errors.txt @@ -1,4 +1,4 @@ -tests/cases/conformance/parser/ecmascript5/IndexSignatures/parserIndexSignature11.ts(2,10): error TS1022: An index signature parameter must have a type annotation. +tests/cases/conformance/parser/ecmascript5/IndexSignatures/parserIndexSignature11.ts(2,9): error TS1161: Computed property names are not allowed in interfaces or type literals. tests/cases/conformance/parser/ecmascript5/IndexSignatures/parserIndexSignature11.ts(3,9): error TS1021: An index signature must have a type annotation. tests/cases/conformance/parser/ecmascript5/IndexSignatures/parserIndexSignature11.ts(4,10): error TS1096: An index signature must have exactly one parameter. @@ -6,8 +6,8 @@ tests/cases/conformance/parser/ecmascript5/IndexSignatures/parserIndexSignature1 ==== tests/cases/conformance/parser/ecmascript5/IndexSignatures/parserIndexSignature11.ts (3 errors) ==== interface I { [p]; - ~ -!!! error TS1022: An index signature parameter must have a type annotation. + ~~~ +!!! error TS1161: Computed property names are not allowed in interfaces or type literals. [p1: string]; ~~~~~~~~~~~~~ !!! error TS1021: An index signature must have a type annotation. diff --git a/tests/baselines/reference/parserIndexSignature4.errors.txt b/tests/baselines/reference/parserIndexSignature4.errors.txt index cf4bbad234b..f93d8aed249 100644 --- a/tests/baselines/reference/parserIndexSignature4.errors.txt +++ b/tests/baselines/reference/parserIndexSignature4.errors.txt @@ -1,12 +1,9 @@ -tests/cases/conformance/parser/ecmascript5/IndexSignatures/parserIndexSignature4.ts(2,4): error TS1020: An index signature parameter cannot have an initializer. -tests/cases/conformance/parser/ecmascript5/IndexSignatures/parserIndexSignature4.ts(2,4): error TS2371: A parameter initializer is only allowed in a function or constructor implementation. +tests/cases/conformance/parser/ecmascript5/IndexSignatures/parserIndexSignature4.ts(2,3): error TS1161: Computed property names are not allowed in interfaces or type literals. -==== tests/cases/conformance/parser/ecmascript5/IndexSignatures/parserIndexSignature4.ts (2 errors) ==== +==== tests/cases/conformance/parser/ecmascript5/IndexSignatures/parserIndexSignature4.ts (1 errors) ==== interface I { [a = 0] - ~ -!!! error TS1020: An index signature parameter cannot have an initializer. - ~~~~~ -!!! error TS2371: A parameter initializer is only allowed in a function or constructor implementation. + ~~~~~~~ +!!! error TS1161: Computed property names are not allowed in interfaces or type literals. } \ No newline at end of file diff --git a/tests/baselines/reference/parserIndexSignature5.errors.txt b/tests/baselines/reference/parserIndexSignature5.errors.txt index 5c33bb583b6..dc6bd18d773 100644 --- a/tests/baselines/reference/parserIndexSignature5.errors.txt +++ b/tests/baselines/reference/parserIndexSignature5.errors.txt @@ -1,9 +1,9 @@ -tests/cases/conformance/parser/ecmascript5/IndexSignatures/parserIndexSignature5.ts(2,4): error TS1022: An index signature parameter must have a type annotation. +tests/cases/conformance/parser/ecmascript5/IndexSignatures/parserIndexSignature5.ts(2,3): error TS1161: Computed property names are not allowed in interfaces or type literals. ==== tests/cases/conformance/parser/ecmascript5/IndexSignatures/parserIndexSignature5.ts (1 errors) ==== interface I { [a] - ~ -!!! error TS1022: An index signature parameter must have a type annotation. + ~~~ +!!! error TS1161: Computed property names are not allowed in interfaces or type literals. } \ No newline at end of file diff --git a/tests/baselines/reference/propertyAssignment.errors.txt b/tests/baselines/reference/propertyAssignment.errors.txt index 20894f159e0..41bc7cb6065 100644 --- a/tests/baselines/reference/propertyAssignment.errors.txt +++ b/tests/baselines/reference/propertyAssignment.errors.txt @@ -1,4 +1,4 @@ -tests/cases/compiler/propertyAssignment.ts(6,14): error TS1022: An index signature parameter must have a type annotation. +tests/cases/compiler/propertyAssignment.ts(6,13): error TS1161: Computed property names are not allowed in interfaces or type literals. tests/cases/compiler/propertyAssignment.ts(14,1): error TS2322: Type '{ x: number; }' is not assignable to type 'new () => any'. tests/cases/compiler/propertyAssignment.ts(16,1): error TS2322: Type '{ x: number; }' is not assignable to type '() => void'. @@ -10,8 +10,8 @@ tests/cases/compiler/propertyAssignment.ts(16,1): error TS2322: Type '{ x: numbe var bar1: { x : number; } var foo2: { [index]; } // should be an error - ~~~~~ -!!! error TS1022: An index signature parameter must have a type annotation. + ~~~~~~~ +!!! error TS1161: Computed property names are not allowed in interfaces or type literals. var bar2: { x : number; } var foo3: { ():void; } diff --git a/tests/baselines/reference/spaceBeforeQuestionMarkInPropertyAssignment.errors.txt b/tests/baselines/reference/spaceBeforeQuestionMarkInPropertyAssignment.errors.txt index d51b97546d4..f89252523ef 100644 --- a/tests/baselines/reference/spaceBeforeQuestionMarkInPropertyAssignment.errors.txt +++ b/tests/baselines/reference/spaceBeforeQuestionMarkInPropertyAssignment.errors.txt @@ -1,7 +1,7 @@ -tests/cases/compiler/spaceBeforeQuestionMarkInPropertyAssignment.ts(1,12): error TS1162: An object member cannot be declared optional. +tests/cases/compiler/spaceBeforeQuestionMarkInPropertyAssignment.ts(1,12): error TS1160: An object member cannot be declared optional. ==== tests/cases/compiler/spaceBeforeQuestionMarkInPropertyAssignment.ts (1 errors) ==== var x = {x ?: 1} // should not crash ~ -!!! error TS1162: An object member cannot be declared optional. \ No newline at end of file +!!! error TS1160: An object member cannot be declared optional. \ No newline at end of file diff --git a/tests/cases/conformance/parser/ecmascript5/ComputedPropertyNames/parserES5ComputedPropertyName1.ts b/tests/cases/conformance/parser/ecmascript5/ComputedPropertyNames/parserES5ComputedPropertyName1.ts new file mode 100644 index 00000000000..8316cdfbc0e --- /dev/null +++ b/tests/cases/conformance/parser/ecmascript5/ComputedPropertyNames/parserES5ComputedPropertyName1.ts @@ -0,0 +1,4 @@ +//@target: ES5 +declare class C { + [e]: number +} \ No newline at end of file diff --git a/tests/cases/conformance/parser/ecmascript5/ComputedPropertyNames/parserES5ComputedPropertyName10.ts b/tests/cases/conformance/parser/ecmascript5/ComputedPropertyNames/parserES5ComputedPropertyName10.ts new file mode 100644 index 00000000000..777c44e0185 --- /dev/null +++ b/tests/cases/conformance/parser/ecmascript5/ComputedPropertyNames/parserES5ComputedPropertyName10.ts @@ -0,0 +1,4 @@ +//@target: ES5 +class C { + [e] = 1 +} \ No newline at end of file diff --git a/tests/cases/conformance/parser/ecmascript5/ComputedPropertyNames/parserES5ComputedPropertyName11.ts b/tests/cases/conformance/parser/ecmascript5/ComputedPropertyNames/parserES5ComputedPropertyName11.ts new file mode 100644 index 00000000000..b5e27ecc71b --- /dev/null +++ b/tests/cases/conformance/parser/ecmascript5/ComputedPropertyNames/parserES5ComputedPropertyName11.ts @@ -0,0 +1,4 @@ +//@target: ES5 +class C { + [e](); +} \ No newline at end of file diff --git a/tests/cases/conformance/parser/ecmascript5/ComputedPropertyNames/parserES5ComputedPropertyName2.ts b/tests/cases/conformance/parser/ecmascript5/ComputedPropertyNames/parserES5ComputedPropertyName2.ts new file mode 100644 index 00000000000..2f37b0f2cad --- /dev/null +++ b/tests/cases/conformance/parser/ecmascript5/ComputedPropertyNames/parserES5ComputedPropertyName2.ts @@ -0,0 +1,2 @@ +//@target: ES5 +var v = { [e]: 1 }; \ No newline at end of file diff --git a/tests/cases/conformance/parser/ecmascript5/ComputedPropertyNames/parserES5ComputedPropertyName3.ts b/tests/cases/conformance/parser/ecmascript5/ComputedPropertyNames/parserES5ComputedPropertyName3.ts new file mode 100644 index 00000000000..5091ee0b98c --- /dev/null +++ b/tests/cases/conformance/parser/ecmascript5/ComputedPropertyNames/parserES5ComputedPropertyName3.ts @@ -0,0 +1,2 @@ +//@target: ES5 +var v = { [e]() { } }; \ No newline at end of file diff --git a/tests/cases/conformance/parser/ecmascript5/ComputedPropertyNames/parserES5ComputedPropertyName4.ts b/tests/cases/conformance/parser/ecmascript5/ComputedPropertyNames/parserES5ComputedPropertyName4.ts new file mode 100644 index 00000000000..67b97a6a0bb --- /dev/null +++ b/tests/cases/conformance/parser/ecmascript5/ComputedPropertyNames/parserES5ComputedPropertyName4.ts @@ -0,0 +1,2 @@ +//@target: ES5 +var v = { get [e]() { } }; \ No newline at end of file diff --git a/tests/cases/conformance/parser/ecmascript5/ComputedPropertyNames/parserES5ComputedPropertyName5.ts b/tests/cases/conformance/parser/ecmascript5/ComputedPropertyNames/parserES5ComputedPropertyName5.ts new file mode 100644 index 00000000000..05072071410 --- /dev/null +++ b/tests/cases/conformance/parser/ecmascript5/ComputedPropertyNames/parserES5ComputedPropertyName5.ts @@ -0,0 +1,4 @@ +//@target: ES5 +interface I { + [e]: number +} \ No newline at end of file diff --git a/tests/cases/conformance/parser/ecmascript5/ComputedPropertyNames/parserES5ComputedPropertyName6.ts b/tests/cases/conformance/parser/ecmascript5/ComputedPropertyNames/parserES5ComputedPropertyName6.ts new file mode 100644 index 00000000000..622bd43e465 --- /dev/null +++ b/tests/cases/conformance/parser/ecmascript5/ComputedPropertyNames/parserES5ComputedPropertyName6.ts @@ -0,0 +1,4 @@ +//@target: ES5 +enum E { + [e] = 1 +} \ No newline at end of file diff --git a/tests/cases/conformance/parser/ecmascript5/ComputedPropertyNames/parserES5ComputedPropertyName7.ts b/tests/cases/conformance/parser/ecmascript5/ComputedPropertyNames/parserES5ComputedPropertyName7.ts new file mode 100644 index 00000000000..280dc1a5a0d --- /dev/null +++ b/tests/cases/conformance/parser/ecmascript5/ComputedPropertyNames/parserES5ComputedPropertyName7.ts @@ -0,0 +1,4 @@ +//@target: ES5 +class C { + [e] +} \ No newline at end of file diff --git a/tests/cases/conformance/parser/ecmascript5/ComputedPropertyNames/parserES5ComputedPropertyName8.ts b/tests/cases/conformance/parser/ecmascript5/ComputedPropertyNames/parserES5ComputedPropertyName8.ts new file mode 100644 index 00000000000..48abbd6fe95 --- /dev/null +++ b/tests/cases/conformance/parser/ecmascript5/ComputedPropertyNames/parserES5ComputedPropertyName8.ts @@ -0,0 +1,2 @@ +//@target: ES5 +var v: { [e]: number }; \ No newline at end of file diff --git a/tests/cases/conformance/parser/ecmascript5/ComputedPropertyNames/parserES5ComputedPropertyName9.ts b/tests/cases/conformance/parser/ecmascript5/ComputedPropertyNames/parserES5ComputedPropertyName9.ts new file mode 100644 index 00000000000..de00d6f8245 --- /dev/null +++ b/tests/cases/conformance/parser/ecmascript5/ComputedPropertyNames/parserES5ComputedPropertyName9.ts @@ -0,0 +1,4 @@ +//@target: ES5 +class C { + [e]: Type +} \ No newline at end of file diff --git a/tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName1.ts b/tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName1.ts new file mode 100644 index 00000000000..e6fbccb8e1f --- /dev/null +++ b/tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName1.ts @@ -0,0 +1,2 @@ +//@target: ES6 +var v = { [e] }; \ No newline at end of file diff --git a/tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName10.ts b/tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName10.ts new file mode 100644 index 00000000000..6f87e04e3f5 --- /dev/null +++ b/tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName10.ts @@ -0,0 +1,4 @@ +//@target: ES6 +class C { + [e] = 1 +} \ No newline at end of file diff --git a/tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName11.ts b/tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName11.ts new file mode 100644 index 00000000000..17af42fcca3 --- /dev/null +++ b/tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName11.ts @@ -0,0 +1,4 @@ +//@target: ES6 +class C { + [e](); +} \ No newline at end of file diff --git a/tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName12.ts b/tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName12.ts new file mode 100644 index 00000000000..b9b870a9ec9 --- /dev/null +++ b/tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName12.ts @@ -0,0 +1,4 @@ +//@target: ES6 +class C { + [e]() { } +} \ No newline at end of file diff --git a/tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName13.ts b/tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName13.ts new file mode 100644 index 00000000000..809e258d2d4 --- /dev/null +++ b/tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName13.ts @@ -0,0 +1,2 @@ +//@target: ES6 +var v: { [e]: number }; \ No newline at end of file diff --git a/tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName14.ts b/tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName14.ts new file mode 100644 index 00000000000..3d9fb800d70 --- /dev/null +++ b/tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName14.ts @@ -0,0 +1,2 @@ +//@target: ES6 +var v: { [e](): number }; \ No newline at end of file diff --git a/tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName15.ts b/tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName15.ts new file mode 100644 index 00000000000..ba0a7b84b90 --- /dev/null +++ b/tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName15.ts @@ -0,0 +1,2 @@ +//@target: ES6 +var v: { [e: number]: string; [e]: number }; \ No newline at end of file diff --git a/tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName16.ts b/tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName16.ts new file mode 100644 index 00000000000..4da898ea68f --- /dev/null +++ b/tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName16.ts @@ -0,0 +1,4 @@ +//@target: ES6 +enum E { + [e] = 1 +} \ No newline at end of file diff --git a/tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName17.ts b/tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName17.ts new file mode 100644 index 00000000000..6e6485ea85f --- /dev/null +++ b/tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName17.ts @@ -0,0 +1,2 @@ +//@target: ES6 +var v = { set [e](v) { } } \ No newline at end of file diff --git a/tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName18.ts b/tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName18.ts new file mode 100644 index 00000000000..dd05fcac482 --- /dev/null +++ b/tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName18.ts @@ -0,0 +1,2 @@ +//@target: ES6 +var v: { [e]?(): number }; \ No newline at end of file diff --git a/tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName19.ts b/tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName19.ts new file mode 100644 index 00000000000..f190dadb92c --- /dev/null +++ b/tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName19.ts @@ -0,0 +1,2 @@ +//@target: ES6 +var v: { [e]? }; \ No newline at end of file diff --git a/tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName2.ts b/tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName2.ts new file mode 100644 index 00000000000..4efacefce9b --- /dev/null +++ b/tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName2.ts @@ -0,0 +1,2 @@ +//@target: ES6 +var v = { [e]: 1 }; \ No newline at end of file diff --git a/tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName20.ts b/tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName20.ts new file mode 100644 index 00000000000..148f07becc1 --- /dev/null +++ b/tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName20.ts @@ -0,0 +1,4 @@ +//@target: ES6 +interface I { + [e](): number +} \ No newline at end of file diff --git a/tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName21.ts b/tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName21.ts new file mode 100644 index 00000000000..f9ec2669ae3 --- /dev/null +++ b/tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName21.ts @@ -0,0 +1,4 @@ +//@target: ES6 +interface I { + [e]: number +} \ No newline at end of file diff --git a/tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName22.ts b/tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName22.ts new file mode 100644 index 00000000000..237a4f4e12c --- /dev/null +++ b/tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName22.ts @@ -0,0 +1,4 @@ +//@target: ES6 +declare class C { + [e]: number +} \ No newline at end of file diff --git a/tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName23.ts b/tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName23.ts new file mode 100644 index 00000000000..633931ad368 --- /dev/null +++ b/tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName23.ts @@ -0,0 +1,4 @@ +//@target: ES6 +declare class C { + get [e](): number +} \ No newline at end of file diff --git a/tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName24.ts b/tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName24.ts new file mode 100644 index 00000000000..8ff0f753e1f --- /dev/null +++ b/tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName24.ts @@ -0,0 +1,4 @@ +//@target: ES6 +class C { + set [e](v) { } +} \ No newline at end of file diff --git a/tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName25.ts b/tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName25.ts new file mode 100644 index 00000000000..3bf29e66bae --- /dev/null +++ b/tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName25.ts @@ -0,0 +1,6 @@ +//@target: ES6 +class C { + // No ASI + [e] = 0 + [e2] = 1 +} \ No newline at end of file diff --git a/tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName26.ts b/tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName26.ts new file mode 100644 index 00000000000..e6eaa682b59 --- /dev/null +++ b/tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName26.ts @@ -0,0 +1,6 @@ +//@target: ES6 +enum E { + // No ASI + [e] = 0 + [e2] = 1 +} \ No newline at end of file diff --git a/tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName27.ts b/tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName27.ts new file mode 100644 index 00000000000..d52b7d43cfc --- /dev/null +++ b/tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName27.ts @@ -0,0 +1,6 @@ +//@target: ES6 +class C { + // No ASI + [e]: number = 0 + [e2]: number +} \ No newline at end of file diff --git a/tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName28.ts b/tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName28.ts new file mode 100644 index 00000000000..2cae79f1934 --- /dev/null +++ b/tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName28.ts @@ -0,0 +1,5 @@ +//@target: ES6 +class C { + [e]: number = 0; + [e2]: number +} \ No newline at end of file diff --git a/tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName29.ts b/tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName29.ts new file mode 100644 index 00000000000..c3e42731ab9 --- /dev/null +++ b/tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName29.ts @@ -0,0 +1,6 @@ +//@target: ES6 +class C { + // yes ASI + [e] = id++ + [e2]: number +} \ No newline at end of file diff --git a/tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName3.ts b/tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName3.ts new file mode 100644 index 00000000000..0988e19a1ef --- /dev/null +++ b/tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName3.ts @@ -0,0 +1,2 @@ +//@target: ES6 +var v = { [e]() { } }; \ No newline at end of file diff --git a/tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName30.ts b/tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName30.ts new file mode 100644 index 00000000000..f7eb547332b --- /dev/null +++ b/tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName30.ts @@ -0,0 +1,6 @@ +//@target: ES6 +enum E { + // no ASI, comma expected + [e] = id++ + [e2] = 1 +} \ No newline at end of file diff --git a/tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName31.ts b/tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName31.ts new file mode 100644 index 00000000000..30e511fa91b --- /dev/null +++ b/tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName31.ts @@ -0,0 +1,6 @@ +//@target: ES6 +class C { + // yes ASI + [e]: number + [e2]: number +} \ No newline at end of file diff --git a/tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName32.ts b/tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName32.ts new file mode 100644 index 00000000000..f1a50fe108d --- /dev/null +++ b/tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName32.ts @@ -0,0 +1,4 @@ +//@target: ES6 +declare class C { + [e](): number +} \ No newline at end of file diff --git a/tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName33.ts b/tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName33.ts new file mode 100644 index 00000000000..2ca7ac84af7 --- /dev/null +++ b/tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName33.ts @@ -0,0 +1,6 @@ +//@target: ES6 +class C { + // No ASI + [e] = 0 + [e2]() { } +} \ No newline at end of file diff --git a/tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName34.ts b/tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName34.ts new file mode 100644 index 00000000000..c83710593a0 --- /dev/null +++ b/tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName34.ts @@ -0,0 +1,6 @@ +//@target: ES6 +enum E { + // no ASI, comma expected + [e] = id++, + [e2] = 1 +} \ No newline at end of file diff --git a/tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName4.ts b/tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName4.ts new file mode 100644 index 00000000000..e36773105fe --- /dev/null +++ b/tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName4.ts @@ -0,0 +1,2 @@ +//@target: ES6 +var v = { get [e]() { } }; \ No newline at end of file diff --git a/tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName5.ts b/tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName5.ts new file mode 100644 index 00000000000..869f340929b --- /dev/null +++ b/tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName5.ts @@ -0,0 +1,2 @@ +//@target: ES6 +var v = { public get [e]() { } }; \ No newline at end of file diff --git a/tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName6.ts b/tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName6.ts new file mode 100644 index 00000000000..aaf4131d158 --- /dev/null +++ b/tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName6.ts @@ -0,0 +1,2 @@ +//@target: ES6 +var v = { [e]: 1, [e + e]: 2 }; \ No newline at end of file diff --git a/tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName7.ts b/tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName7.ts new file mode 100644 index 00000000000..8f918c61160 --- /dev/null +++ b/tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName7.ts @@ -0,0 +1,4 @@ +//@target: ES6 +class C { + [e] +} \ No newline at end of file diff --git a/tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName8.ts b/tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName8.ts new file mode 100644 index 00000000000..6e55c04b7a1 --- /dev/null +++ b/tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName8.ts @@ -0,0 +1,4 @@ +//@target: ES6 +class C { + public [e] +} \ No newline at end of file diff --git a/tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName9.ts b/tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName9.ts new file mode 100644 index 00000000000..0c60d35fb90 --- /dev/null +++ b/tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName9.ts @@ -0,0 +1,4 @@ +//@target: ES6 +class C { + [e]: Type +} \ No newline at end of file From 17a09d1d3642868de097b6bce1efa5fc9af7b287 Mon Sep 17 00:00:00 2001 From: Jason Freeman Date: Mon, 17 Nov 2014 15:53:03 -0800 Subject: [PATCH 066/195] Emit for computed properties --- src/compiler/emitter.ts | 68 ++++++++++++++++++++++++++++------------- src/compiler/parser.ts | 2 ++ 2 files changed, 49 insertions(+), 21 deletions(-) diff --git a/src/compiler/emitter.ts b/src/compiler/emitter.ts index 5cdf98aa63e..9896fa598e6 100644 --- a/src/compiler/emitter.ts +++ b/src/compiler/emitter.ts @@ -277,24 +277,37 @@ module ts { var firstAccessor: AccessorDeclaration; var getAccessor: AccessorDeclaration; var setAccessor: AccessorDeclaration; - forEach(node.members, (member: Declaration) => { - // TODO(jfreeman): Handle computed names for accessor matching - if ((member.kind === SyntaxKind.GetAccessor || member.kind === SyntaxKind.SetAccessor) && - (member.name).text === (accessor.name).text && - (member.flags & NodeFlags.Static) === (accessor.flags & NodeFlags.Static)) { - if (!firstAccessor) { - firstAccessor = member; - } - - if (member.kind === SyntaxKind.GetAccessor && !getAccessor) { - getAccessor = member; - } - - if (member.kind === SyntaxKind.SetAccessor && !setAccessor) { - setAccessor = member; - } + if (accessor.name.kind === SyntaxKind.ComputedPropertyName) { + firstAccessor = accessor; + if (accessor.kind === SyntaxKind.GetAccessor) { + getAccessor = accessor; } - }); + else if (accessor.kind === SyntaxKind.SetAccessor) { + setAccessor = accessor; + } + else { + Debug.fail("Accessor has wrong kind"); + } + } + else { + forEach(node.members,(member: Declaration) => { + if ((member.kind === SyntaxKind.GetAccessor || member.kind === SyntaxKind.SetAccessor) && + (member.name).text === (accessor.name).text && + (member.flags & NodeFlags.Static) === (accessor.flags & NodeFlags.Static)) { + if (!firstAccessor) { + firstAccessor = member; + } + + if (member.kind === SyntaxKind.GetAccessor && !getAccessor) { + getAccessor = member; + } + + if (member.kind === SyntaxKind.SetAccessor && !setAccessor) { + setAccessor = member; + } + } + }); + } return { firstAccessor, getAccessor, @@ -2069,6 +2082,9 @@ module ts { if (node.kind === SyntaxKind.StringLiteral) { emitLiteral(node); } + else if (node.kind === SyntaxKind.ComputedPropertyName) { + emit((node).expression); + } else { write("\""); @@ -2189,6 +2205,12 @@ module ts { } } + function emitComputedPropertyName(node: ComputedPropertyName) { + write("["); + emit(node.expression); + write("]"); + } + function emitPropertyAssignment(node: PropertyDeclaration) { emitLeadingComments(node); emit(node.name); @@ -2864,13 +2886,15 @@ module ts { }); } - // TODO(jfreeman): Account for computed property name - function emitMemberAccess(memberName: DeclarationName) { + function emitMemberAccessForPropertyName(memberName: DeclarationName) { if (memberName.kind === SyntaxKind.StringLiteral || memberName.kind === SyntaxKind.NumericLiteral) { write("["); emitNode(memberName); write("]"); } + else if (memberName.kind === SyntaxKind.ComputedPropertyName) { + emitComputedPropertyName(memberName); + } else { write("."); emitNode(memberName); @@ -2890,7 +2914,7 @@ module ts { else { write("this"); } - emitMemberAccess((member).name); + emitMemberAccessForPropertyName((member).name); emitEnd((member).name); write(" = "); emit((member).initializer); @@ -2916,7 +2940,7 @@ module ts { if (!(member.flags & NodeFlags.Static)) { write(".prototype"); } - emitMemberAccess((member).name); + emitMemberAccessForPropertyName((member).name); emitEnd((member).name); write(" = "); emitStart(member); @@ -3453,6 +3477,8 @@ module ts { return emitPropertyAssignment(node); case SyntaxKind.ShorthandPropertyAssignment: return emitShortHandPropertyAssignment(node); + case SyntaxKind.ComputedPropertyName: + return emitComputedPropertyName(node); case SyntaxKind.PropertyAccess: return emitPropertyAccess(node); case SyntaxKind.IndexedAccess: diff --git a/src/compiler/parser.ts b/src/compiler/parser.ts index 99bb1f6f85d..ed85ba711d3 100644 --- a/src/compiler/parser.ts +++ b/src/compiler/parser.ts @@ -383,6 +383,8 @@ module ts { return child((node).head) || children((node).templateSpans); case SyntaxKind.TemplateSpan: return child((node).expression) || child((node).literal); + case SyntaxKind.ComputedPropertyName: + return child((node).expression); } } From 0e864143deb02caaceed46331c8deb54726b0802 Mon Sep 17 00:00:00 2001 From: Jason Freeman Date: Mon, 17 Nov 2014 16:36:30 -0800 Subject: [PATCH 067/195] Emit tests for computed properties --- .../reference/computedPropertyNames1.js | 14 ++++++ .../computedPropertyNames2.errors.txt | 19 ++++++++ .../reference/computedPropertyNames2.js | 48 +++++++++++++++++++ .../computedPropertyNames3.errors.txt | 18 +++++++ .../reference/computedPropertyNames3.js | 47 ++++++++++++++++++ .../reference/parserComputedPropertyName12.js | 13 +++++ .../reference/parserComputedPropertyName17.js | 6 +++ .../reference/parserComputedPropertyName2.js | 5 ++ .../reference/parserComputedPropertyName24.js | 17 +++++++ .../reference/parserComputedPropertyName3.js | 6 +++ .../reference/parserComputedPropertyName4.js | 6 +++ .../reference/parserComputedPropertyName6.js | 5 ++ .../computedPropertyNames1.ts | 5 ++ .../computedPropertyNames2.ts | 11 +++++ .../computedPropertyNames3.ts | 10 ++++ .../computedPropertyNamesOnOverloads.ts | 8 ++++ 16 files changed, 238 insertions(+) create mode 100644 tests/baselines/reference/computedPropertyNames1.js create mode 100644 tests/baselines/reference/computedPropertyNames2.errors.txt create mode 100644 tests/baselines/reference/computedPropertyNames2.js create mode 100644 tests/baselines/reference/computedPropertyNames3.errors.txt create mode 100644 tests/baselines/reference/computedPropertyNames3.js create mode 100644 tests/baselines/reference/parserComputedPropertyName12.js create mode 100644 tests/baselines/reference/parserComputedPropertyName17.js create mode 100644 tests/baselines/reference/parserComputedPropertyName2.js create mode 100644 tests/baselines/reference/parserComputedPropertyName24.js create mode 100644 tests/baselines/reference/parserComputedPropertyName3.js create mode 100644 tests/baselines/reference/parserComputedPropertyName4.js create mode 100644 tests/baselines/reference/parserComputedPropertyName6.js create mode 100644 tests/cases/conformance/es6/computedProperties/computedPropertyNames1.ts create mode 100644 tests/cases/conformance/es6/computedProperties/computedPropertyNames2.ts create mode 100644 tests/cases/conformance/es6/computedProperties/computedPropertyNames3.ts create mode 100644 tests/cases/conformance/es6/computedProperties/computedPropertyNamesOnOverloads.ts diff --git a/tests/baselines/reference/computedPropertyNames1.js b/tests/baselines/reference/computedPropertyNames1.js new file mode 100644 index 00000000000..d5e3f3e0392 --- /dev/null +++ b/tests/baselines/reference/computedPropertyNames1.js @@ -0,0 +1,14 @@ +//// [computedPropertyNames1.ts] +var v = { + get [0 + 1]() { return 0 }, + set [0 + 1](v) { } +} + +//// [computedPropertyNames1.js] +var v = { + get [0 + 1]() { + return 0; + }, + set [0 + 1](v) { + } +}; diff --git a/tests/baselines/reference/computedPropertyNames2.errors.txt b/tests/baselines/reference/computedPropertyNames2.errors.txt new file mode 100644 index 00000000000..d0fd1de4576 --- /dev/null +++ b/tests/baselines/reference/computedPropertyNames2.errors.txt @@ -0,0 +1,19 @@ +tests/cases/conformance/es6/computedProperties/computedPropertyNames2.ts(6,9): error TS2378: A 'get' accessor must return a value or consist of a single 'throw' statement. +tests/cases/conformance/es6/computedProperties/computedPropertyNames2.ts(8,16): error TS2378: A 'get' accessor must return a value or consist of a single 'throw' statement. + + +==== tests/cases/conformance/es6/computedProperties/computedPropertyNames2.ts (2 errors) ==== + var methodName = "method"; + var accessorName = "accessor"; + class C { + [methodName]() { } + static [methodName]() { } + get [accessorName]() { } + ~~~~~~~~~~~~~~ +!!! error TS2378: A 'get' accessor must return a value or consist of a single 'throw' statement. + set [accessorName](v) { } + static get [accessorName]() { } + ~~~~~~~~~~~~~~ +!!! error TS2378: A 'get' accessor must return a value or consist of a single 'throw' statement. + static set [accessorName](v) { } + } \ No newline at end of file diff --git a/tests/baselines/reference/computedPropertyNames2.js b/tests/baselines/reference/computedPropertyNames2.js new file mode 100644 index 00000000000..78d53ef94fc --- /dev/null +++ b/tests/baselines/reference/computedPropertyNames2.js @@ -0,0 +1,48 @@ +//// [computedPropertyNames2.ts] +var methodName = "method"; +var accessorName = "accessor"; +class C { + [methodName]() { } + static [methodName]() { } + get [accessorName]() { } + set [accessorName](v) { } + static get [accessorName]() { } + static set [accessorName](v) { } +} + +//// [computedPropertyNames2.js] +var methodName = "method"; +var accessorName = "accessor"; +var C = (function () { + function C() { + } + C.prototype[methodName] = function () { + }; + C[methodName] = function () { + }; + Object.defineProperty(C.prototype, accessorName, { + get: function () { + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(C.prototype, accessorName, { + set: function (v) { + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(C, accessorName, { + get: function () { + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(C, accessorName, { + set: function (v) { + }, + enumerable: true, + configurable: true + }); + return C; +})(); diff --git a/tests/baselines/reference/computedPropertyNames3.errors.txt b/tests/baselines/reference/computedPropertyNames3.errors.txt new file mode 100644 index 00000000000..37a4ddaf1c0 --- /dev/null +++ b/tests/baselines/reference/computedPropertyNames3.errors.txt @@ -0,0 +1,18 @@ +tests/cases/conformance/es6/computedProperties/computedPropertyNames3.ts(5,9): error TS2378: A 'get' accessor must return a value or consist of a single 'throw' statement. +tests/cases/conformance/es6/computedProperties/computedPropertyNames3.ts(7,16): error TS2378: A 'get' accessor must return a value or consist of a single 'throw' statement. + + +==== tests/cases/conformance/es6/computedProperties/computedPropertyNames3.ts (2 errors) ==== + var id; + class C { + [0 + 1]() { } + static [() => { }]() { } + get [delete id]() { } + ~~~~~~~~~~~ +!!! error TS2378: A 'get' accessor must return a value or consist of a single 'throw' statement. + set [[0, 1]](v) { } + static get [""]() { } + ~~~~~~~~~~~~ +!!! error TS2378: A 'get' accessor must return a value or consist of a single 'throw' statement. + static set [id.toString()](v) { } + } \ No newline at end of file diff --git a/tests/baselines/reference/computedPropertyNames3.js b/tests/baselines/reference/computedPropertyNames3.js new file mode 100644 index 00000000000..fbd76bf48fc --- /dev/null +++ b/tests/baselines/reference/computedPropertyNames3.js @@ -0,0 +1,47 @@ +//// [computedPropertyNames3.ts] +var id; +class C { + [0 + 1]() { } + static [() => { }]() { } + get [delete id]() { } + set [[0, 1]](v) { } + static get [""]() { } + static set [id.toString()](v) { } +} + +//// [computedPropertyNames3.js] +var id; +var C = (function () { + function C() { + } + C.prototype[0 + 1] = function () { + }; + C[function () { + }] = function () { + }; + Object.defineProperty(C.prototype, delete id, { + get: function () { + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(C.prototype, [0, 1], { + set: function (v) { + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(C, "", { + get: function () { + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(C, id.toString(), { + set: function (v) { + }, + enumerable: true, + configurable: true + }); + return C; +})(); diff --git a/tests/baselines/reference/parserComputedPropertyName12.js b/tests/baselines/reference/parserComputedPropertyName12.js new file mode 100644 index 00000000000..96e62b626e7 --- /dev/null +++ b/tests/baselines/reference/parserComputedPropertyName12.js @@ -0,0 +1,13 @@ +//// [parserComputedPropertyName12.ts] +class C { + [e]() { } +} + +//// [parserComputedPropertyName12.js] +var C = (function () { + function C() { + } + C.prototype[e] = function () { + }; + return C; +})(); diff --git a/tests/baselines/reference/parserComputedPropertyName17.js b/tests/baselines/reference/parserComputedPropertyName17.js new file mode 100644 index 00000000000..98d61ab8bca --- /dev/null +++ b/tests/baselines/reference/parserComputedPropertyName17.js @@ -0,0 +1,6 @@ +//// [parserComputedPropertyName17.ts] +var v = { set [e](v) { } } + +//// [parserComputedPropertyName17.js] +var v = { set [e](v) { +} }; diff --git a/tests/baselines/reference/parserComputedPropertyName2.js b/tests/baselines/reference/parserComputedPropertyName2.js new file mode 100644 index 00000000000..f3c41f963f5 --- /dev/null +++ b/tests/baselines/reference/parserComputedPropertyName2.js @@ -0,0 +1,5 @@ +//// [parserComputedPropertyName2.ts] +var v = { [e]: 1 }; + +//// [parserComputedPropertyName2.js] +var v = { [e]: 1 }; diff --git a/tests/baselines/reference/parserComputedPropertyName24.js b/tests/baselines/reference/parserComputedPropertyName24.js new file mode 100644 index 00000000000..0b9467fb26d --- /dev/null +++ b/tests/baselines/reference/parserComputedPropertyName24.js @@ -0,0 +1,17 @@ +//// [parserComputedPropertyName24.ts] +class C { + set [e](v) { } +} + +//// [parserComputedPropertyName24.js] +var C = (function () { + function C() { + } + Object.defineProperty(C.prototype, e, { + set: function (v) { + }, + enumerable: true, + configurable: true + }); + return C; +})(); diff --git a/tests/baselines/reference/parserComputedPropertyName3.js b/tests/baselines/reference/parserComputedPropertyName3.js new file mode 100644 index 00000000000..edb8533ad81 --- /dev/null +++ b/tests/baselines/reference/parserComputedPropertyName3.js @@ -0,0 +1,6 @@ +//// [parserComputedPropertyName3.ts] +var v = { [e]() { } }; + +//// [parserComputedPropertyName3.js] +var v = { [e]: function () { +} }; diff --git a/tests/baselines/reference/parserComputedPropertyName4.js b/tests/baselines/reference/parserComputedPropertyName4.js new file mode 100644 index 00000000000..a88545566e6 --- /dev/null +++ b/tests/baselines/reference/parserComputedPropertyName4.js @@ -0,0 +1,6 @@ +//// [parserComputedPropertyName4.ts] +var v = { get [e]() { } }; + +//// [parserComputedPropertyName4.js] +var v = { get [e]() { +} }; diff --git a/tests/baselines/reference/parserComputedPropertyName6.js b/tests/baselines/reference/parserComputedPropertyName6.js new file mode 100644 index 00000000000..b60ad66a9d8 --- /dev/null +++ b/tests/baselines/reference/parserComputedPropertyName6.js @@ -0,0 +1,5 @@ +//// [parserComputedPropertyName6.ts] +var v = { [e]: 1, [e + e]: 2 }; + +//// [parserComputedPropertyName6.js] +var v = { [e]: 1, [e + e]: 2 }; diff --git a/tests/cases/conformance/es6/computedProperties/computedPropertyNames1.ts b/tests/cases/conformance/es6/computedProperties/computedPropertyNames1.ts new file mode 100644 index 00000000000..b35ab29b129 --- /dev/null +++ b/tests/cases/conformance/es6/computedProperties/computedPropertyNames1.ts @@ -0,0 +1,5 @@ +// @target: es6 +var v = { + get [0 + 1]() { return 0 }, + set [0 + 1](v) { } +} \ No newline at end of file diff --git a/tests/cases/conformance/es6/computedProperties/computedPropertyNames2.ts b/tests/cases/conformance/es6/computedProperties/computedPropertyNames2.ts new file mode 100644 index 00000000000..c63ec81d4e6 --- /dev/null +++ b/tests/cases/conformance/es6/computedProperties/computedPropertyNames2.ts @@ -0,0 +1,11 @@ +// @target: es6 +var methodName = "method"; +var accessorName = "accessor"; +class C { + [methodName]() { } + static [methodName]() { } + get [accessorName]() { } + set [accessorName](v) { } + static get [accessorName]() { } + static set [accessorName](v) { } +} \ No newline at end of file diff --git a/tests/cases/conformance/es6/computedProperties/computedPropertyNames3.ts b/tests/cases/conformance/es6/computedProperties/computedPropertyNames3.ts new file mode 100644 index 00000000000..45db2c02fe2 --- /dev/null +++ b/tests/cases/conformance/es6/computedProperties/computedPropertyNames3.ts @@ -0,0 +1,10 @@ +// @target: es6 +var id; +class C { + [0 + 1]() { } + static [() => { }]() { } + get [delete id]() { } + set [[0, 1]](v) { } + static get [""]() { } + static set [id.toString()](v) { } +} \ No newline at end of file diff --git a/tests/cases/conformance/es6/computedProperties/computedPropertyNamesOnOverloads.ts b/tests/cases/conformance/es6/computedProperties/computedPropertyNamesOnOverloads.ts new file mode 100644 index 00000000000..4d6fe09b80a --- /dev/null +++ b/tests/cases/conformance/es6/computedProperties/computedPropertyNamesOnOverloads.ts @@ -0,0 +1,8 @@ +// @target: es6 +var methodName = "method"; +var accessorName = "accessor"; +class C { + [methodName](v: string); + [methodName](); + [methodName](v?: string) { } +} \ No newline at end of file From 98eda2bf5cba36278bfcccf28377ecdd96f751f0 Mon Sep 17 00:00:00 2001 From: Jason Freeman Date: Tue, 18 Nov 2014 10:53:22 -0800 Subject: [PATCH 068/195] Syntax error for computed properties on method overloads --- src/compiler/diagnosticInformationMap.generated.ts | 1 + src/compiler/diagnosticMessages.json | 4 ++++ .../reference/parserComputedPropertyName11.errors.txt | 5 ++++- 3 files changed, 9 insertions(+), 1 deletion(-) diff --git a/src/compiler/diagnosticInformationMap.generated.ts b/src/compiler/diagnosticInformationMap.generated.ts index c8156dff138..4fbc864b3c5 100644 --- a/src/compiler/diagnosticInformationMap.generated.ts +++ b/src/compiler/diagnosticInformationMap.generated.ts @@ -131,6 +131,7 @@ module ts { Computed_property_names_are_not_allowed_in_an_ambient_context: { code: 1163, category: DiagnosticCategory.Error, key: "Computed property names are not allowed in an ambient context." }, Computed_property_names_are_not_allowed_in_class_property_declarations: { code: 1164, category: DiagnosticCategory.Error, key: "Computed property names are not allowed in class property declarations." }, Computed_property_names_are_only_available_when_targeting_ECMAScript_6_and_higher: { code: 1165, category: DiagnosticCategory.Error, key: "Computed property names are only available when targeting ECMAScript 6 and higher." }, + Computed_property_names_are_not_allowed_in_method_overloads: { code: 1166, category: DiagnosticCategory.Error, key: "Computed property names are not allowed in method overloads." }, Duplicate_identifier_0: { code: 2300, category: DiagnosticCategory.Error, key: "Duplicate identifier '{0}'." }, Initializer_of_instance_member_variable_0_cannot_reference_identifier_1_declared_in_the_constructor: { code: 2301, category: 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: DiagnosticCategory.Error, key: "Static members cannot reference class type parameters." }, diff --git a/src/compiler/diagnosticMessages.json b/src/compiler/diagnosticMessages.json index 5784a427224..ba4fb052094 100644 --- a/src/compiler/diagnosticMessages.json +++ b/src/compiler/diagnosticMessages.json @@ -515,6 +515,10 @@ "category": "Error", "code": 1165 }, + "Computed property names are not allowed in method overloads.": { + "category": "Error", + "code": 1166 + }, "Duplicate identifier '{0}'.": { "category": "Error", diff --git a/tests/baselines/reference/parserComputedPropertyName11.errors.txt b/tests/baselines/reference/parserComputedPropertyName11.errors.txt index 2d2edd2b841..fe2e82b54ee 100644 --- a/tests/baselines/reference/parserComputedPropertyName11.errors.txt +++ b/tests/baselines/reference/parserComputedPropertyName11.errors.txt @@ -1,9 +1,12 @@ +tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName11.ts(2,4): error TS1166: Computed property names are not allowed in method overloads. tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName11.ts(2,4): error TS2391: Function implementation is missing or not immediately following the declaration. -==== tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName11.ts (1 errors) ==== +==== tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName11.ts (2 errors) ==== class C { [e](); ~~~ +!!! error TS1166: Computed property names are not allowed in method overloads. + ~~~ !!! error TS2391: Function implementation is missing or not immediately following the declaration. } \ No newline at end of file From 2bc1f4f4faba14d7ed82bd0d7db34fb158c0f6e0 Mon Sep 17 00:00:00 2001 From: Jason Freeman Date: Tue, 18 Nov 2014 14:34:04 -0800 Subject: [PATCH 069/195] Update error codes --- .../diagnosticInformationMap.generated.ts | 14 ++++---- src/compiler/diagnosticMessages.json | 30 ++++++++--------- src/compiler/parser.ts | 7 +++- .../ComputedPropertyName10_es6.errors.txt | 9 ------ .../ComputedPropertyName11_es6.errors.txt | 15 --------- .../ComputedPropertyName12_es6.errors.txt | 15 --------- .../ComputedPropertyName13_es6.errors.txt | 7 ---- .../ComputedPropertyName14_es6.errors.txt | 7 ---- .../ComputedPropertyName15_es6.errors.txt | 7 ---- .../ComputedPropertyName16_es6.errors.txt | 18 ----------- .../ComputedPropertyName17_es6.errors.txt | 16 ---------- .../ComputedPropertyName18_es6.errors.txt | 7 ---- .../ComputedPropertyName19_es6.errors.txt | 7 ---- .../ComputedPropertyName1_es6.errors.txt | 13 -------- .../ComputedPropertyName2_es6.errors.txt | 19 ----------- .../ComputedPropertyName3_es6.errors.txt | 16 ---------- .../ComputedPropertyName4_es6.errors.txt | 16 ---------- .../ComputedPropertyName5_es6.errors.txt | 19 ----------- .../ComputedPropertyName6_es6.errors.txt | 28 ---------------- .../ComputedPropertyName7_es6.errors.txt | 9 ------ .../ComputedPropertyName8_es6.errors.txt | 9 ------ .../ComputedPropertyName9_es6.errors.txt | 12 ------- tests/baselines/reference/giant.errors.txt | 32 +++++++++---------- ...SignatureMustHaveTypeAnnotation.errors.txt | 8 ++--- .../indexSignatureWithInitializer.errors.txt | 8 ++--- .../indexWithoutParamType2.errors.txt | 4 +-- ...objectTypeWithOptionalProperty1.errors.txt | 4 +-- ...jectTypesWithOptionalProperties.errors.txt | 4 +-- .../parserComputedPropertyName10.errors.txt | 4 +-- .../parserComputedPropertyName11.errors.txt | 4 +-- .../parserComputedPropertyName13.errors.txt | 4 +-- .../parserComputedPropertyName14.errors.txt | 4 +-- .../parserComputedPropertyName15.errors.txt | 4 +-- .../parserComputedPropertyName16.errors.txt | 4 +-- .../parserComputedPropertyName18.errors.txt | 4 +-- .../parserComputedPropertyName19.errors.txt | 4 +-- .../parserComputedPropertyName20.errors.txt | 4 +-- .../parserComputedPropertyName21.errors.txt | 4 +-- .../parserComputedPropertyName22.errors.txt | 4 +-- .../parserComputedPropertyName25.errors.txt | 4 +-- .../parserComputedPropertyName26.errors.txt | 4 +-- .../parserComputedPropertyName28.errors.txt | 8 ++--- .../parserComputedPropertyName29.errors.txt | 8 ++--- .../parserComputedPropertyName31.errors.txt | 8 ++--- .../parserComputedPropertyName32.errors.txt | 4 +-- .../parserComputedPropertyName34.errors.txt | 8 ++--- .../parserComputedPropertyName7.errors.txt | 4 +-- .../parserComputedPropertyName8.errors.txt | 4 +-- .../parserComputedPropertyName9.errors.txt | 4 +-- .../parserES5ComputedPropertyName1.errors.txt | 4 +-- ...parserES5ComputedPropertyName10.errors.txt | 4 +-- ...parserES5ComputedPropertyName11.errors.txt | 4 +-- .../parserES5ComputedPropertyName2.errors.txt | 4 +-- .../parserES5ComputedPropertyName3.errors.txt | 4 +-- .../parserES5ComputedPropertyName4.errors.txt | 4 +-- .../parserES5ComputedPropertyName5.errors.txt | 4 +-- .../parserES5ComputedPropertyName6.errors.txt | 4 +-- .../parserES5ComputedPropertyName7.errors.txt | 4 +-- .../parserES5ComputedPropertyName8.errors.txt | 4 +-- .../parserES5ComputedPropertyName9.errors.txt | 4 +-- .../parserIndexSignature11.errors.txt | 4 +-- .../parserIndexSignature4.errors.txt | 4 +-- .../parserIndexSignature5.errors.txt | 4 +-- .../reference/propertyAssignment.errors.txt | 4 +-- ...uestionMarkInPropertyAssignment.errors.txt | 4 +-- .../ComputedPropertyName10_es6.ts | 3 -- .../ComputedPropertyName11_es6.ts | 3 -- .../ComputedPropertyName12_es6.ts | 3 -- .../ComputedPropertyName13_es6.ts | 1 - .../ComputedPropertyName14_es6.ts | 1 - .../ComputedPropertyName15_es6.ts | 1 - .../ComputedPropertyName16_es6.ts | 3 -- .../ComputedPropertyName17_es6.ts | 1 - .../ComputedPropertyName18_es6.ts | 1 - .../ComputedPropertyName19_es6.ts | 1 - .../ComputedPropertyName1_es6.ts | 1 - .../ComputedPropertyName2_es6.ts | 1 - .../ComputedPropertyName3_es6.ts | 1 - .../ComputedPropertyName4_es6.ts | 1 - .../ComputedPropertyName5_es6.ts | 1 - .../ComputedPropertyName6_es6.ts | 1 - .../ComputedPropertyName7_es6.ts | 3 -- .../ComputedPropertyName8_es6.ts | 3 -- .../ComputedPropertyName9_es6.ts | 3 -- 84 files changed, 140 insertions(+), 417 deletions(-) delete mode 100644 tests/baselines/reference/ComputedPropertyName10_es6.errors.txt delete mode 100644 tests/baselines/reference/ComputedPropertyName11_es6.errors.txt delete mode 100644 tests/baselines/reference/ComputedPropertyName12_es6.errors.txt delete mode 100644 tests/baselines/reference/ComputedPropertyName13_es6.errors.txt delete mode 100644 tests/baselines/reference/ComputedPropertyName14_es6.errors.txt delete mode 100644 tests/baselines/reference/ComputedPropertyName15_es6.errors.txt delete mode 100644 tests/baselines/reference/ComputedPropertyName16_es6.errors.txt delete mode 100644 tests/baselines/reference/ComputedPropertyName17_es6.errors.txt delete mode 100644 tests/baselines/reference/ComputedPropertyName18_es6.errors.txt delete mode 100644 tests/baselines/reference/ComputedPropertyName19_es6.errors.txt delete mode 100644 tests/baselines/reference/ComputedPropertyName1_es6.errors.txt delete mode 100644 tests/baselines/reference/ComputedPropertyName2_es6.errors.txt delete mode 100644 tests/baselines/reference/ComputedPropertyName3_es6.errors.txt delete mode 100644 tests/baselines/reference/ComputedPropertyName4_es6.errors.txt delete mode 100644 tests/baselines/reference/ComputedPropertyName5_es6.errors.txt delete mode 100644 tests/baselines/reference/ComputedPropertyName6_es6.errors.txt delete mode 100644 tests/baselines/reference/ComputedPropertyName7_es6.errors.txt delete mode 100644 tests/baselines/reference/ComputedPropertyName8_es6.errors.txt delete mode 100644 tests/baselines/reference/ComputedPropertyName9_es6.errors.txt delete mode 100644 tests/cases/conformance/es6/computedPropertyNames/ComputedPropertyName10_es6.ts delete mode 100644 tests/cases/conformance/es6/computedPropertyNames/ComputedPropertyName11_es6.ts delete mode 100644 tests/cases/conformance/es6/computedPropertyNames/ComputedPropertyName12_es6.ts delete mode 100644 tests/cases/conformance/es6/computedPropertyNames/ComputedPropertyName13_es6.ts delete mode 100644 tests/cases/conformance/es6/computedPropertyNames/ComputedPropertyName14_es6.ts delete mode 100644 tests/cases/conformance/es6/computedPropertyNames/ComputedPropertyName15_es6.ts delete mode 100644 tests/cases/conformance/es6/computedPropertyNames/ComputedPropertyName16_es6.ts delete mode 100644 tests/cases/conformance/es6/computedPropertyNames/ComputedPropertyName17_es6.ts delete mode 100644 tests/cases/conformance/es6/computedPropertyNames/ComputedPropertyName18_es6.ts delete mode 100644 tests/cases/conformance/es6/computedPropertyNames/ComputedPropertyName19_es6.ts delete mode 100644 tests/cases/conformance/es6/computedPropertyNames/ComputedPropertyName1_es6.ts delete mode 100644 tests/cases/conformance/es6/computedPropertyNames/ComputedPropertyName2_es6.ts delete mode 100644 tests/cases/conformance/es6/computedPropertyNames/ComputedPropertyName3_es6.ts delete mode 100644 tests/cases/conformance/es6/computedPropertyNames/ComputedPropertyName4_es6.ts delete mode 100644 tests/cases/conformance/es6/computedPropertyNames/ComputedPropertyName5_es6.ts delete mode 100644 tests/cases/conformance/es6/computedPropertyNames/ComputedPropertyName6_es6.ts delete mode 100644 tests/cases/conformance/es6/computedPropertyNames/ComputedPropertyName7_es6.ts delete mode 100644 tests/cases/conformance/es6/computedPropertyNames/ComputedPropertyName8_es6.ts delete mode 100644 tests/cases/conformance/es6/computedPropertyNames/ComputedPropertyName9_es6.ts diff --git a/src/compiler/diagnosticInformationMap.generated.ts b/src/compiler/diagnosticInformationMap.generated.ts index 4fbc864b3c5..5187fc2512b 100644 --- a/src/compiler/diagnosticInformationMap.generated.ts +++ b/src/compiler/diagnosticInformationMap.generated.ts @@ -124,14 +124,14 @@ module ts { Tagged_templates_are_only_available_when_targeting_ECMAScript_6_and_higher: { code: 1159, category: DiagnosticCategory.Error, key: "Tagged templates are only available when targeting ECMAScript 6 and higher." }, Unterminated_template_literal: { code: 1160, category: DiagnosticCategory.Error, key: "Unterminated template literal." }, Unterminated_regular_expression_literal: { code: 1161, category: DiagnosticCategory.Error, key: "Unterminated regular expression literal." }, - An_object_member_cannot_be_declared_optional: { code: 1160, category: DiagnosticCategory.Error, key: "An object member cannot be declared optional." }, - Computed_property_names_are_not_allowed_in_interfaces_or_type_literals: { code: 1161, category: DiagnosticCategory.Error, key: "Computed property names are not allowed in interfaces or type literals." }, - Computed_property_names_are_not_allowed_in_enums: { code: 1162, category: DiagnosticCategory.Error, key: "Computed property names are not allowed in enums." }, + An_object_member_cannot_be_declared_optional: { code: 1162, category: DiagnosticCategory.Error, key: "An object member cannot be declared optional." }, yield_expression_must_be_contained_within_a_generator_declaration: { code: 1163, category: DiagnosticCategory.Error, key: "'yield' expression must be contained_within a generator declaration." }, - Computed_property_names_are_not_allowed_in_an_ambient_context: { code: 1163, category: DiagnosticCategory.Error, key: "Computed property names are not allowed in an ambient context." }, - Computed_property_names_are_not_allowed_in_class_property_declarations: { code: 1164, category: DiagnosticCategory.Error, key: "Computed property names are not allowed in class property declarations." }, - Computed_property_names_are_only_available_when_targeting_ECMAScript_6_and_higher: { code: 1165, category: DiagnosticCategory.Error, key: "Computed property names are only available when targeting ECMAScript 6 and higher." }, - Computed_property_names_are_not_allowed_in_method_overloads: { code: 1166, category: DiagnosticCategory.Error, key: "Computed property names are not allowed in method overloads." }, + Computed_property_names_are_not_allowed_in_enums: { code: 1164, category: DiagnosticCategory.Error, key: "Computed property names are not allowed in enums." }, + Computed_property_names_are_not_allowed_in_an_ambient_context: { code: 1165, category: DiagnosticCategory.Error, key: "Computed property names are not allowed in an ambient context." }, + Computed_property_names_are_not_allowed_in_class_property_declarations: { code: 1166, category: DiagnosticCategory.Error, key: "Computed property names are not allowed in class property declarations." }, + Computed_property_names_are_only_available_when_targeting_ECMAScript_6_and_higher: { code: 1167, category: DiagnosticCategory.Error, key: "Computed property names are only available when targeting ECMAScript 6 and higher." }, + Computed_property_names_are_not_allowed_in_method_overloads: { code: 1168, category: DiagnosticCategory.Error, key: "Computed property names are not allowed in method overloads." }, + Computed_property_names_are_not_allowed_in_interfaces_or_type_literals: { code: 1169, category: DiagnosticCategory.Error, key: "Computed property names are not allowed in interfaces or type literals." }, Duplicate_identifier_0: { code: 2300, category: DiagnosticCategory.Error, key: "Duplicate identifier '{0}'." }, Initializer_of_instance_member_variable_0_cannot_reference_identifier_1_declared_in_the_constructor: { code: 2301, category: 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: DiagnosticCategory.Error, key: "Static members cannot reference class type parameters." }, diff --git a/src/compiler/diagnosticMessages.json b/src/compiler/diagnosticMessages.json index ba4fb052094..8b3cd797c63 100644 --- a/src/compiler/diagnosticMessages.json +++ b/src/compiler/diagnosticMessages.json @@ -488,14 +488,6 @@ "code": 1161 }, "An object member cannot be declared optional.": { - "category": "Error", - "code": 1160 - }, - "Computed property names are not allowed in interfaces or type literals.": { - "category": "Error", - "code": 1161 - }, - "Computed property names are not allowed in enums.": { "category": "Error", "code": 1162 }, @@ -503,22 +495,30 @@ "category": "Error", "code": 1163 }, - "Computed property names are not allowed in an ambient context.": { - "category": "Error", - "code": 1163 - }, - "Computed property names are not allowed in class property declarations.": { + "Computed property names are not allowed in enums.": { "category": "Error", "code": 1164 }, - "Computed property names are only available when targeting ECMAScript 6 and higher.": { + "Computed property names are not allowed in an ambient context.": { "category": "Error", "code": 1165 }, - "Computed property names are not allowed in method overloads.": { + "Computed property names are not allowed in class property declarations.": { "category": "Error", "code": 1166 }, + "Computed property names are only available when targeting ECMAScript 6 and higher.": { + "category": "Error", + "code": 1167 + }, + "Computed property names are not allowed in method overloads.": { + "category": "Error", + "code": 1168 + }, + "Computed property names are not allowed in interfaces or type literals.": { + "category": "Error", + "code": 1169 + }, "Duplicate identifier '{0}'.": { "category": "Error", diff --git a/src/compiler/parser.ts b/src/compiler/parser.ts index ed85ba711d3..76cabe94e2e 100644 --- a/src/compiler/parser.ts +++ b/src/compiler/parser.ts @@ -4477,7 +4477,12 @@ module ts { // However, property declarations disallow computed names in general, // and accessors are not allowed in ambient contexts in general, // so this error only really matters for methods. - return inAmbientContext && checkForDisallowedComputedProperty(node.name, Diagnostics.Computed_property_names_are_not_allowed_in_an_ambient_context); + if (inAmbientContext) { + return checkForDisallowedComputedProperty(node.name, Diagnostics.Computed_property_names_are_not_allowed_in_an_ambient_context); + } + else if (!node.body) { + return checkForDisallowedComputedProperty(node.name, Diagnostics.Computed_property_names_are_not_allowed_in_method_overloads); + } } else if (node.parent.kind === SyntaxKind.InterfaceDeclaration || node.parent.kind === SyntaxKind.TypeLiteral) { return checkForDisallowedComputedProperty(node.name, Diagnostics.Computed_property_names_are_not_allowed_in_interfaces_or_type_literals); diff --git a/tests/baselines/reference/ComputedPropertyName10_es6.errors.txt b/tests/baselines/reference/ComputedPropertyName10_es6.errors.txt deleted file mode 100644 index ba7154a9298..00000000000 --- a/tests/baselines/reference/ComputedPropertyName10_es6.errors.txt +++ /dev/null @@ -1,9 +0,0 @@ -tests/cases/conformance/es6/computedPropertyNames/ComputedPropertyName10_es6.ts(2,8): error TS1005: ';' expected. - - -==== tests/cases/conformance/es6/computedPropertyNames/ComputedPropertyName10_es6.ts (1 errors) ==== - class C { - [e] = 1 - ~ -!!! error TS1005: ';' expected. - } \ No newline at end of file diff --git a/tests/baselines/reference/ComputedPropertyName11_es6.errors.txt b/tests/baselines/reference/ComputedPropertyName11_es6.errors.txt deleted file mode 100644 index 3f96913c1d5..00000000000 --- a/tests/baselines/reference/ComputedPropertyName11_es6.errors.txt +++ /dev/null @@ -1,15 +0,0 @@ -tests/cases/conformance/es6/computedPropertyNames/ComputedPropertyName11_es6.ts(2,7): error TS1005: ';' expected. -tests/cases/conformance/es6/computedPropertyNames/ComputedPropertyName11_es6.ts(2,8): error TS1109: Expression expected. -tests/cases/conformance/es6/computedPropertyNames/ComputedPropertyName11_es6.ts(3,1): error TS1128: Declaration or statement expected. - - -==== tests/cases/conformance/es6/computedPropertyNames/ComputedPropertyName11_es6.ts (3 errors) ==== - class C { - [e](); - ~ -!!! error TS1005: ';' expected. - ~ -!!! error TS1109: Expression expected. - } - ~ -!!! error TS1128: Declaration or statement expected. \ No newline at end of file diff --git a/tests/baselines/reference/ComputedPropertyName12_es6.errors.txt b/tests/baselines/reference/ComputedPropertyName12_es6.errors.txt deleted file mode 100644 index fefff058fe1..00000000000 --- a/tests/baselines/reference/ComputedPropertyName12_es6.errors.txt +++ /dev/null @@ -1,15 +0,0 @@ -tests/cases/conformance/es6/computedPropertyNames/ComputedPropertyName12_es6.ts(2,7): error TS1005: ';' expected. -tests/cases/conformance/es6/computedPropertyNames/ComputedPropertyName12_es6.ts(2,10): error TS1005: '=>' expected. -tests/cases/conformance/es6/computedPropertyNames/ComputedPropertyName12_es6.ts(3,1): error TS1128: Declaration or statement expected. - - -==== tests/cases/conformance/es6/computedPropertyNames/ComputedPropertyName12_es6.ts (3 errors) ==== - class C { - [e]() { } - ~ -!!! error TS1005: ';' expected. - ~ -!!! error TS1005: '=>' expected. - } - ~ -!!! error TS1128: Declaration or statement expected. \ No newline at end of file diff --git a/tests/baselines/reference/ComputedPropertyName13_es6.errors.txt b/tests/baselines/reference/ComputedPropertyName13_es6.errors.txt deleted file mode 100644 index 3f8c10fc643..00000000000 --- a/tests/baselines/reference/ComputedPropertyName13_es6.errors.txt +++ /dev/null @@ -1,7 +0,0 @@ -tests/cases/conformance/es6/computedPropertyNames/ComputedPropertyName13_es6.ts(1,11): error TS1022: An index signature parameter must have a type annotation. - - -==== tests/cases/conformance/es6/computedPropertyNames/ComputedPropertyName13_es6.ts (1 errors) ==== - var v: { [e]: number }; - ~ -!!! error TS1022: An index signature parameter must have a type annotation. \ No newline at end of file diff --git a/tests/baselines/reference/ComputedPropertyName14_es6.errors.txt b/tests/baselines/reference/ComputedPropertyName14_es6.errors.txt deleted file mode 100644 index 7d6052b4179..00000000000 --- a/tests/baselines/reference/ComputedPropertyName14_es6.errors.txt +++ /dev/null @@ -1,7 +0,0 @@ -tests/cases/conformance/es6/computedPropertyNames/ComputedPropertyName14_es6.ts(1,13): error TS1005: ';' expected. - - -==== tests/cases/conformance/es6/computedPropertyNames/ComputedPropertyName14_es6.ts (1 errors) ==== - var v: { [e](): number }; - ~ -!!! error TS1005: ';' expected. \ No newline at end of file diff --git a/tests/baselines/reference/ComputedPropertyName15_es6.errors.txt b/tests/baselines/reference/ComputedPropertyName15_es6.errors.txt deleted file mode 100644 index 689df40f985..00000000000 --- a/tests/baselines/reference/ComputedPropertyName15_es6.errors.txt +++ /dev/null @@ -1,7 +0,0 @@ -tests/cases/conformance/es6/computedPropertyNames/ComputedPropertyName15_es6.ts(1,32): error TS1022: An index signature parameter must have a type annotation. - - -==== tests/cases/conformance/es6/computedPropertyNames/ComputedPropertyName15_es6.ts (1 errors) ==== - var v: { [e: number]: string; [e]: number }; - ~ -!!! error TS1022: An index signature parameter must have a type annotation. \ No newline at end of file diff --git a/tests/baselines/reference/ComputedPropertyName16_es6.errors.txt b/tests/baselines/reference/ComputedPropertyName16_es6.errors.txt deleted file mode 100644 index c3de61ddf07..00000000000 --- a/tests/baselines/reference/ComputedPropertyName16_es6.errors.txt +++ /dev/null @@ -1,18 +0,0 @@ -tests/cases/conformance/es6/computedPropertyNames/ComputedPropertyName16_es6.ts(2,3): error TS1132: Enum member expected. -tests/cases/conformance/es6/computedPropertyNames/ComputedPropertyName16_es6.ts(3,1): error TS1128: Declaration or statement expected. -tests/cases/conformance/es6/computedPropertyNames/ComputedPropertyName16_es6.ts(2,3): error TS2364: Invalid left-hand side of assignment expression. -tests/cases/conformance/es6/computedPropertyNames/ComputedPropertyName16_es6.ts(2,4): error TS2304: Cannot find name 'e'. - - -==== tests/cases/conformance/es6/computedPropertyNames/ComputedPropertyName16_es6.ts (4 errors) ==== - enum E { - [e] = 1 - ~ -!!! error TS1132: Enum member expected. - ~~~ -!!! error TS2364: Invalid left-hand side of assignment expression. - ~ -!!! error TS2304: Cannot find name 'e'. - } - ~ -!!! error TS1128: Declaration or statement expected. \ No newline at end of file diff --git a/tests/baselines/reference/ComputedPropertyName17_es6.errors.txt b/tests/baselines/reference/ComputedPropertyName17_es6.errors.txt deleted file mode 100644 index 4b8caf1e62d..00000000000 --- a/tests/baselines/reference/ComputedPropertyName17_es6.errors.txt +++ /dev/null @@ -1,16 +0,0 @@ -tests/cases/conformance/es6/computedPropertyNames/ComputedPropertyName17_es6.ts(1,15): error TS1003: Identifier expected. -tests/cases/conformance/es6/computedPropertyNames/ComputedPropertyName17_es6.ts(1,22): error TS1005: ',' expected. -tests/cases/conformance/es6/computedPropertyNames/ComputedPropertyName17_es6.ts(1,26): error TS1128: Declaration or statement expected. -tests/cases/conformance/es6/computedPropertyNames/ComputedPropertyName17_es6.ts(1,16): error TS2304: Cannot find name 'e'. - - -==== tests/cases/conformance/es6/computedPropertyNames/ComputedPropertyName17_es6.ts (4 errors) ==== - var v = { set [e](v) { } } - ~ -!!! error TS1003: Identifier expected. - ~ -!!! error TS1005: ',' expected. - ~ -!!! error TS1128: Declaration or statement expected. - ~ -!!! error TS2304: Cannot find name 'e'. \ No newline at end of file diff --git a/tests/baselines/reference/ComputedPropertyName18_es6.errors.txt b/tests/baselines/reference/ComputedPropertyName18_es6.errors.txt deleted file mode 100644 index 8e409750b5c..00000000000 --- a/tests/baselines/reference/ComputedPropertyName18_es6.errors.txt +++ /dev/null @@ -1,7 +0,0 @@ -tests/cases/conformance/es6/computedPropertyNames/ComputedPropertyName18_es6.ts(1,13): error TS1005: ';' expected. - - -==== tests/cases/conformance/es6/computedPropertyNames/ComputedPropertyName18_es6.ts (1 errors) ==== - var v: { [e]?(): number }; - ~ -!!! error TS1005: ';' expected. \ No newline at end of file diff --git a/tests/baselines/reference/ComputedPropertyName19_es6.errors.txt b/tests/baselines/reference/ComputedPropertyName19_es6.errors.txt deleted file mode 100644 index 1833deef789..00000000000 --- a/tests/baselines/reference/ComputedPropertyName19_es6.errors.txt +++ /dev/null @@ -1,7 +0,0 @@ -tests/cases/conformance/es6/computedPropertyNames/ComputedPropertyName19_es6.ts(1,13): error TS1005: ';' expected. - - -==== tests/cases/conformance/es6/computedPropertyNames/ComputedPropertyName19_es6.ts (1 errors) ==== - var v: { [e]? }; - ~ -!!! error TS1005: ';' expected. \ No newline at end of file diff --git a/tests/baselines/reference/ComputedPropertyName1_es6.errors.txt b/tests/baselines/reference/ComputedPropertyName1_es6.errors.txt deleted file mode 100644 index 260ff20dc36..00000000000 --- a/tests/baselines/reference/ComputedPropertyName1_es6.errors.txt +++ /dev/null @@ -1,13 +0,0 @@ -tests/cases/conformance/es6/computedPropertyNames/ComputedPropertyName1_es6.ts(1,11): error TS1136: Property assignment expected. -tests/cases/conformance/es6/computedPropertyNames/ComputedPropertyName1_es6.ts(1,15): error TS1128: Declaration or statement expected. -tests/cases/conformance/es6/computedPropertyNames/ComputedPropertyName1_es6.ts(1,12): error TS2304: Cannot find name 'e'. - - -==== tests/cases/conformance/es6/computedPropertyNames/ComputedPropertyName1_es6.ts (3 errors) ==== - var v = { [e] }; - ~ -!!! error TS1136: Property assignment expected. - ~ -!!! error TS1128: Declaration or statement expected. - ~ -!!! error TS2304: Cannot find name 'e'. \ No newline at end of file diff --git a/tests/baselines/reference/ComputedPropertyName2_es6.errors.txt b/tests/baselines/reference/ComputedPropertyName2_es6.errors.txt deleted file mode 100644 index f0a06ef84bc..00000000000 --- a/tests/baselines/reference/ComputedPropertyName2_es6.errors.txt +++ /dev/null @@ -1,19 +0,0 @@ -tests/cases/conformance/es6/computedPropertyNames/ComputedPropertyName2_es6.ts(1,11): error TS1136: Property assignment expected. -tests/cases/conformance/es6/computedPropertyNames/ComputedPropertyName2_es6.ts(1,14): error TS1005: ',' expected. -tests/cases/conformance/es6/computedPropertyNames/ComputedPropertyName2_es6.ts(1,16): error TS1134: Variable declaration expected. -tests/cases/conformance/es6/computedPropertyNames/ComputedPropertyName2_es6.ts(1,18): error TS1128: Declaration or statement expected. -tests/cases/conformance/es6/computedPropertyNames/ComputedPropertyName2_es6.ts(1,12): error TS2304: Cannot find name 'e'. - - -==== tests/cases/conformance/es6/computedPropertyNames/ComputedPropertyName2_es6.ts (5 errors) ==== - var v = { [e]: 1 }; - ~ -!!! error TS1136: Property assignment expected. - ~ -!!! error TS1005: ',' expected. - ~ -!!! error TS1134: Variable declaration expected. - ~ -!!! error TS1128: Declaration or statement expected. - ~ -!!! error TS2304: Cannot find name 'e'. \ No newline at end of file diff --git a/tests/baselines/reference/ComputedPropertyName3_es6.errors.txt b/tests/baselines/reference/ComputedPropertyName3_es6.errors.txt deleted file mode 100644 index 3f1e5d707a8..00000000000 --- a/tests/baselines/reference/ComputedPropertyName3_es6.errors.txt +++ /dev/null @@ -1,16 +0,0 @@ -tests/cases/conformance/es6/computedPropertyNames/ComputedPropertyName3_es6.ts(1,11): error TS1136: Property assignment expected. -tests/cases/conformance/es6/computedPropertyNames/ComputedPropertyName3_es6.ts(1,17): error TS1005: ',' expected. -tests/cases/conformance/es6/computedPropertyNames/ComputedPropertyName3_es6.ts(1,21): error TS1128: Declaration or statement expected. -tests/cases/conformance/es6/computedPropertyNames/ComputedPropertyName3_es6.ts(1,12): error TS2304: Cannot find name 'e'. - - -==== tests/cases/conformance/es6/computedPropertyNames/ComputedPropertyName3_es6.ts (4 errors) ==== - var v = { [e]() { } }; - ~ -!!! error TS1136: Property assignment expected. - ~ -!!! error TS1005: ',' expected. - ~ -!!! error TS1128: Declaration or statement expected. - ~ -!!! error TS2304: Cannot find name 'e'. \ No newline at end of file diff --git a/tests/baselines/reference/ComputedPropertyName4_es6.errors.txt b/tests/baselines/reference/ComputedPropertyName4_es6.errors.txt deleted file mode 100644 index a1f22f611f9..00000000000 --- a/tests/baselines/reference/ComputedPropertyName4_es6.errors.txt +++ /dev/null @@ -1,16 +0,0 @@ -tests/cases/conformance/es6/computedPropertyNames/ComputedPropertyName4_es6.ts(1,15): error TS1003: Identifier expected. -tests/cases/conformance/es6/computedPropertyNames/ComputedPropertyName4_es6.ts(1,21): error TS1005: ',' expected. -tests/cases/conformance/es6/computedPropertyNames/ComputedPropertyName4_es6.ts(1,25): error TS1128: Declaration or statement expected. -tests/cases/conformance/es6/computedPropertyNames/ComputedPropertyName4_es6.ts(1,16): error TS2304: Cannot find name 'e'. - - -==== tests/cases/conformance/es6/computedPropertyNames/ComputedPropertyName4_es6.ts (4 errors) ==== - var v = { get [e]() { } }; - ~ -!!! error TS1003: Identifier expected. - ~ -!!! error TS1005: ',' expected. - ~ -!!! error TS1128: Declaration or statement expected. - ~ -!!! error TS2304: Cannot find name 'e'. \ No newline at end of file diff --git a/tests/baselines/reference/ComputedPropertyName5_es6.errors.txt b/tests/baselines/reference/ComputedPropertyName5_es6.errors.txt deleted file mode 100644 index 2ce2faaee62..00000000000 --- a/tests/baselines/reference/ComputedPropertyName5_es6.errors.txt +++ /dev/null @@ -1,19 +0,0 @@ -tests/cases/conformance/es6/computedPropertyNames/ComputedPropertyName5_es6.ts(1,18): error TS1005: ':' expected. -tests/cases/conformance/es6/computedPropertyNames/ComputedPropertyName5_es6.ts(1,28): error TS1005: ',' expected. -tests/cases/conformance/es6/computedPropertyNames/ComputedPropertyName5_es6.ts(1,32): error TS1128: Declaration or statement expected. -tests/cases/conformance/es6/computedPropertyNames/ComputedPropertyName5_es6.ts(1,18): error TS2304: Cannot find name 'get'. -tests/cases/conformance/es6/computedPropertyNames/ComputedPropertyName5_es6.ts(1,23): error TS2304: Cannot find name 'e'. - - -==== tests/cases/conformance/es6/computedPropertyNames/ComputedPropertyName5_es6.ts (5 errors) ==== - var v = { public get [e]() { } }; - ~~~ -!!! error TS1005: ':' expected. - ~ -!!! error TS1005: ',' expected. - ~ -!!! error TS1128: Declaration or statement expected. - ~~~ -!!! error TS2304: Cannot find name 'get'. - ~ -!!! error TS2304: Cannot find name 'e'. \ No newline at end of file diff --git a/tests/baselines/reference/ComputedPropertyName6_es6.errors.txt b/tests/baselines/reference/ComputedPropertyName6_es6.errors.txt deleted file mode 100644 index ca6bce48295..00000000000 --- a/tests/baselines/reference/ComputedPropertyName6_es6.errors.txt +++ /dev/null @@ -1,28 +0,0 @@ -tests/cases/conformance/es6/computedPropertyNames/ComputedPropertyName6_es6.ts(1,11): error TS1136: Property assignment expected. -tests/cases/conformance/es6/computedPropertyNames/ComputedPropertyName6_es6.ts(1,14): error TS1005: ',' expected. -tests/cases/conformance/es6/computedPropertyNames/ComputedPropertyName6_es6.ts(1,16): error TS1134: Variable declaration expected. -tests/cases/conformance/es6/computedPropertyNames/ComputedPropertyName6_es6.ts(1,26): error TS1005: ';' expected. -tests/cases/conformance/es6/computedPropertyNames/ComputedPropertyName6_es6.ts(1,30): error TS1128: Declaration or statement expected. -tests/cases/conformance/es6/computedPropertyNames/ComputedPropertyName6_es6.ts(1,12): error TS2304: Cannot find name 'e'. -tests/cases/conformance/es6/computedPropertyNames/ComputedPropertyName6_es6.ts(1,20): error TS2304: Cannot find name 'e'. -tests/cases/conformance/es6/computedPropertyNames/ComputedPropertyName6_es6.ts(1,24): error TS2304: Cannot find name 'e'. - - -==== tests/cases/conformance/es6/computedPropertyNames/ComputedPropertyName6_es6.ts (8 errors) ==== - var v = { [e]: 1, [e + e]: 2 }; - ~ -!!! error TS1136: Property assignment expected. - ~ -!!! error TS1005: ',' expected. - ~ -!!! error TS1134: Variable declaration expected. - ~ -!!! error TS1005: ';' expected. - ~ -!!! error TS1128: Declaration or statement expected. - ~ -!!! error TS2304: Cannot find name 'e'. - ~ -!!! error TS2304: Cannot find name 'e'. - ~ -!!! error TS2304: Cannot find name 'e'. \ No newline at end of file diff --git a/tests/baselines/reference/ComputedPropertyName7_es6.errors.txt b/tests/baselines/reference/ComputedPropertyName7_es6.errors.txt deleted file mode 100644 index 00be8f610e0..00000000000 --- a/tests/baselines/reference/ComputedPropertyName7_es6.errors.txt +++ /dev/null @@ -1,9 +0,0 @@ -tests/cases/conformance/es6/computedPropertyNames/ComputedPropertyName7_es6.ts(2,5): error TS1022: An index signature parameter must have a type annotation. - - -==== tests/cases/conformance/es6/computedPropertyNames/ComputedPropertyName7_es6.ts (1 errors) ==== - class C { - [e] - ~ -!!! error TS1022: An index signature parameter must have a type annotation. - } \ No newline at end of file diff --git a/tests/baselines/reference/ComputedPropertyName8_es6.errors.txt b/tests/baselines/reference/ComputedPropertyName8_es6.errors.txt deleted file mode 100644 index 58386bbe177..00000000000 --- a/tests/baselines/reference/ComputedPropertyName8_es6.errors.txt +++ /dev/null @@ -1,9 +0,0 @@ -tests/cases/conformance/es6/computedPropertyNames/ComputedPropertyName8_es6.ts(2,12): error TS1022: An index signature parameter must have a type annotation. - - -==== tests/cases/conformance/es6/computedPropertyNames/ComputedPropertyName8_es6.ts (1 errors) ==== - class C { - public [e] - ~ -!!! error TS1022: An index signature parameter must have a type annotation. - } \ No newline at end of file diff --git a/tests/baselines/reference/ComputedPropertyName9_es6.errors.txt b/tests/baselines/reference/ComputedPropertyName9_es6.errors.txt deleted file mode 100644 index 0872f69aebe..00000000000 --- a/tests/baselines/reference/ComputedPropertyName9_es6.errors.txt +++ /dev/null @@ -1,12 +0,0 @@ -tests/cases/conformance/es6/computedPropertyNames/ComputedPropertyName9_es6.ts(2,5): error TS1022: An index signature parameter must have a type annotation. -tests/cases/conformance/es6/computedPropertyNames/ComputedPropertyName9_es6.ts(2,9): error TS2304: Cannot find name 'Type'. - - -==== tests/cases/conformance/es6/computedPropertyNames/ComputedPropertyName9_es6.ts (2 errors) ==== - class C { - [e]: Type - ~ -!!! error TS1022: An index signature parameter must have a type annotation. - ~~~~ -!!! error TS2304: Cannot find name 'Type'. - } \ No newline at end of file diff --git a/tests/baselines/reference/giant.errors.txt b/tests/baselines/reference/giant.errors.txt index 5bc00b7cd28..bd2e2fa6935 100644 --- a/tests/baselines/reference/giant.errors.txt +++ b/tests/baselines/reference/giant.errors.txt @@ -4,7 +4,7 @@ tests/cases/compiler/giant.ts(28,17): error TS1056: Accessors are only available tests/cases/compiler/giant.ts(30,17): error TS1056: Accessors are only available when targeting ECMAScript 5 and higher. tests/cases/compiler/giant.ts(34,16): error TS1056: Accessors are only available when targeting ECMAScript 5 and higher. tests/cases/compiler/giant.ts(36,16): error TS1056: Accessors are only available when targeting ECMAScript 5 and higher. -tests/cases/compiler/giant.ts(61,5): error TS1161: Computed property names are not allowed in interfaces or type literals. +tests/cases/compiler/giant.ts(61,5): error TS1169: Computed property names are not allowed in interfaces or type literals. tests/cases/compiler/giant.ts(62,5): error TS1021: An index signature must have a type annotation. tests/cases/compiler/giant.ts(63,6): error TS1096: An index signature must have exactly one parameter. tests/cases/compiler/giant.ts(88,20): error TS1056: Accessors are only available when targeting ECMAScript 5 and higher. @@ -13,7 +13,7 @@ tests/cases/compiler/giant.ts(92,21): error TS1056: Accessors are only available tests/cases/compiler/giant.ts(94,21): error TS1056: Accessors are only available when targeting ECMAScript 5 and higher. tests/cases/compiler/giant.ts(98,20): error TS1056: Accessors are only available when targeting ECMAScript 5 and higher. tests/cases/compiler/giant.ts(100,20): error TS1056: Accessors are only available when targeting ECMAScript 5 and higher. -tests/cases/compiler/giant.ts(125,9): error TS1161: Computed property names are not allowed in interfaces or type literals. +tests/cases/compiler/giant.ts(125,9): error TS1169: Computed property names are not allowed in interfaces or type literals. tests/cases/compiler/giant.ts(126,9): error TS1021: An index signature must have a type annotation. tests/cases/compiler/giant.ts(127,10): error TS1096: An index signature must have exactly one parameter. tests/cases/compiler/giant.ts(154,39): error TS1037: A function implementation cannot be declared in an ambient context. @@ -23,7 +23,7 @@ tests/cases/compiler/giant.ts(171,21): error TS1056: Accessors are only availabl tests/cases/compiler/giant.ts(173,21): error TS1056: Accessors are only available when targeting ECMAScript 5 and higher. tests/cases/compiler/giant.ts(177,20): error TS1056: Accessors are only available when targeting ECMAScript 5 and higher. tests/cases/compiler/giant.ts(179,20): error TS1056: Accessors are only available when targeting ECMAScript 5 and higher. -tests/cases/compiler/giant.ts(204,9): error TS1161: Computed property names are not allowed in interfaces or type literals. +tests/cases/compiler/giant.ts(204,9): error TS1169: Computed property names are not allowed in interfaces or type literals. tests/cases/compiler/giant.ts(205,9): error TS1021: An index signature must have a type annotation. tests/cases/compiler/giant.ts(206,10): error TS1096: An index signature must have exactly one parameter. tests/cases/compiler/giant.ts(233,39): error TS1037: A function implementation cannot be declared in an ambient context. @@ -54,7 +54,7 @@ tests/cases/compiler/giant.ts(286,17): error TS1056: Accessors are only availabl tests/cases/compiler/giant.ts(288,17): error TS1056: Accessors are only available when targeting ECMAScript 5 and higher. tests/cases/compiler/giant.ts(292,16): error TS1056: Accessors are only available when targeting ECMAScript 5 and higher. tests/cases/compiler/giant.ts(294,16): error TS1056: Accessors are only available when targeting ECMAScript 5 and higher. -tests/cases/compiler/giant.ts(319,5): error TS1161: Computed property names are not allowed in interfaces or type literals. +tests/cases/compiler/giant.ts(319,5): error TS1169: Computed property names are not allowed in interfaces or type literals. tests/cases/compiler/giant.ts(320,5): error TS1021: An index signature must have a type annotation. tests/cases/compiler/giant.ts(321,6): error TS1096: An index signature must have exactly one parameter. tests/cases/compiler/giant.ts(346,20): error TS1056: Accessors are only available when targeting ECMAScript 5 and higher. @@ -63,7 +63,7 @@ tests/cases/compiler/giant.ts(350,21): error TS1056: Accessors are only availabl tests/cases/compiler/giant.ts(352,21): error TS1056: Accessors are only available when targeting ECMAScript 5 and higher. tests/cases/compiler/giant.ts(356,20): error TS1056: Accessors are only available when targeting ECMAScript 5 and higher. tests/cases/compiler/giant.ts(358,20): error TS1056: Accessors are only available when targeting ECMAScript 5 and higher. -tests/cases/compiler/giant.ts(383,9): error TS1161: Computed property names are not allowed in interfaces or type literals. +tests/cases/compiler/giant.ts(383,9): error TS1169: Computed property names are not allowed in interfaces or type literals. tests/cases/compiler/giant.ts(384,9): error TS1021: An index signature must have a type annotation. tests/cases/compiler/giant.ts(385,10): error TS1096: An index signature must have exactly one parameter. tests/cases/compiler/giant.ts(412,39): error TS1037: A function implementation cannot be declared in an ambient context. @@ -73,7 +73,7 @@ tests/cases/compiler/giant.ts(429,21): error TS1056: Accessors are only availabl tests/cases/compiler/giant.ts(431,21): error TS1056: Accessors are only available when targeting ECMAScript 5 and higher. tests/cases/compiler/giant.ts(435,20): error TS1056: Accessors are only available when targeting ECMAScript 5 and higher. tests/cases/compiler/giant.ts(437,20): error TS1056: Accessors are only available when targeting ECMAScript 5 and higher. -tests/cases/compiler/giant.ts(462,9): error TS1161: Computed property names are not allowed in interfaces or type literals. +tests/cases/compiler/giant.ts(462,9): error TS1169: Computed property names are not allowed in interfaces or type literals. tests/cases/compiler/giant.ts(463,9): error TS1021: An index signature must have a type annotation. tests/cases/compiler/giant.ts(464,10): error TS1096: An index signature must have exactly one parameter. tests/cases/compiler/giant.ts(491,39): error TS1037: A function implementation cannot be declared in an ambient context. @@ -120,7 +120,7 @@ tests/cases/compiler/giant.ts(556,21): error TS1036: Statements are not allowed tests/cases/compiler/giant.ts(558,24): error TS1111: A constructor implementation cannot be declared in an ambient context. tests/cases/compiler/giant.ts(561,21): error TS1037: A function implementation cannot be declared in an ambient context. tests/cases/compiler/giant.ts(563,21): error TS1037: A function implementation cannot be declared in an ambient context. -tests/cases/compiler/giant.ts(587,9): error TS1161: Computed property names are not allowed in interfaces or type literals. +tests/cases/compiler/giant.ts(587,9): error TS1169: Computed property names are not allowed in interfaces or type literals. tests/cases/compiler/giant.ts(588,9): error TS1021: An index signature must have a type annotation. tests/cases/compiler/giant.ts(589,10): error TS1096: An index signature must have exactly one parameter. tests/cases/compiler/giant.ts(606,22): error TS1037: A function implementation cannot be declared in an ambient context. @@ -137,7 +137,7 @@ tests/cases/compiler/giant.ts(621,29): error TS1036: Statements are not allowed tests/cases/compiler/giant.ts(623,24): error TS1111: A constructor implementation cannot be declared in an ambient context. tests/cases/compiler/giant.ts(626,21): error TS1037: A function implementation cannot be declared in an ambient context. tests/cases/compiler/giant.ts(628,21): error TS1037: A function implementation cannot be declared in an ambient context. -tests/cases/compiler/giant.ts(653,9): error TS1161: Computed property names are not allowed in interfaces or type literals. +tests/cases/compiler/giant.ts(653,9): error TS1169: Computed property names are not allowed in interfaces or type literals. tests/cases/compiler/giant.ts(654,9): error TS1021: An index signature must have a type annotation. tests/cases/compiler/giant.ts(655,10): error TS1096: An index signature must have exactly one parameter. tests/cases/compiler/giant.ts(672,22): error TS1037: A function implementation cannot be declared in an ambient context. @@ -361,7 +361,7 @@ tests/cases/compiler/giant.ts(668,9): error TS2386: Overload signatures must all //Index Signature [p]; ~~~ -!!! error TS1161: Computed property names are not allowed in interfaces or type literals. +!!! error TS1169: Computed property names are not allowed in interfaces or type literals. [p1: string]; ~~~~~~~~~~~~~ !!! error TS1021: An index signature must have a type annotation. @@ -469,7 +469,7 @@ tests/cases/compiler/giant.ts(668,9): error TS2386: Overload signatures must all //Index Signature [p]; ~~~ -!!! error TS1161: Computed property names are not allowed in interfaces or type literals. +!!! error TS1169: Computed property names are not allowed in interfaces or type literals. [p1: string]; ~~~~~~~~~~~~~ !!! error TS1021: An index signature must have a type annotation. @@ -594,7 +594,7 @@ tests/cases/compiler/giant.ts(668,9): error TS2386: Overload signatures must all //Index Signature [p]; ~~~ -!!! error TS1161: Computed property names are not allowed in interfaces or type literals. +!!! error TS1169: Computed property names are not allowed in interfaces or type literals. [p1: string]; ~~~~~~~~~~~~~ !!! error TS1021: An index signature must have a type annotation. @@ -821,7 +821,7 @@ tests/cases/compiler/giant.ts(668,9): error TS2386: Overload signatures must all //Index Signature [p]; ~~~ -!!! error TS1161: Computed property names are not allowed in interfaces or type literals. +!!! error TS1169: Computed property names are not allowed in interfaces or type literals. [p1: string]; ~~~~~~~~~~~~~ !!! error TS1021: An index signature must have a type annotation. @@ -929,7 +929,7 @@ tests/cases/compiler/giant.ts(668,9): error TS2386: Overload signatures must all //Index Signature [p]; ~~~ -!!! error TS1161: Computed property names are not allowed in interfaces or type literals. +!!! error TS1169: Computed property names are not allowed in interfaces or type literals. [p1: string]; ~~~~~~~~~~~~~ !!! error TS1021: An index signature must have a type annotation. @@ -1054,7 +1054,7 @@ tests/cases/compiler/giant.ts(668,9): error TS2386: Overload signatures must all //Index Signature [p]; ~~~ -!!! error TS1161: Computed property names are not allowed in interfaces or type literals. +!!! error TS1169: Computed property names are not allowed in interfaces or type literals. [p1: string]; ~~~~~~~~~~~~~ !!! error TS1021: An index signature must have a type annotation. @@ -1323,7 +1323,7 @@ tests/cases/compiler/giant.ts(668,9): error TS2386: Overload signatures must all //Index Signature [p]; ~~~ -!!! error TS1161: Computed property names are not allowed in interfaces or type literals. +!!! error TS1169: Computed property names are not allowed in interfaces or type literals. [p1: string]; ~~~~~~~~~~~~~ !!! error TS1021: An index signature must have a type annotation. @@ -1425,7 +1425,7 @@ tests/cases/compiler/giant.ts(668,9): error TS2386: Overload signatures must all //Index Signature [p]; ~~~ -!!! error TS1161: Computed property names are not allowed in interfaces or type literals. +!!! error TS1169: Computed property names are not allowed in interfaces or type literals. [p1: string]; ~~~~~~~~~~~~~ !!! error TS1021: An index signature must have a type annotation. diff --git a/tests/baselines/reference/indexSignatureMustHaveTypeAnnotation.errors.txt b/tests/baselines/reference/indexSignatureMustHaveTypeAnnotation.errors.txt index c76acf795ac..f0bd02524c8 100644 --- a/tests/baselines/reference/indexSignatureMustHaveTypeAnnotation.errors.txt +++ b/tests/baselines/reference/indexSignatureMustHaveTypeAnnotation.errors.txt @@ -1,6 +1,6 @@ -tests/cases/compiler/indexSignatureMustHaveTypeAnnotation.ts(2,5): error TS1161: Computed property names are not allowed in interfaces or type literals. +tests/cases/compiler/indexSignatureMustHaveTypeAnnotation.ts(2,5): error TS1169: Computed property names are not allowed in interfaces or type literals. tests/cases/compiler/indexSignatureMustHaveTypeAnnotation.ts(3,5): error TS1021: An index signature must have a type annotation. -tests/cases/compiler/indexSignatureMustHaveTypeAnnotation.ts(7,5): error TS1164: Computed property names are not allowed in class property declarations. +tests/cases/compiler/indexSignatureMustHaveTypeAnnotation.ts(7,5): error TS1166: Computed property names are not allowed in class property declarations. tests/cases/compiler/indexSignatureMustHaveTypeAnnotation.ts(12,5): error TS1021: An index signature must have a type annotation. @@ -8,7 +8,7 @@ tests/cases/compiler/indexSignatureMustHaveTypeAnnotation.ts(12,5): error TS1021 interface I { [x]: string; ~~~ -!!! error TS1161: Computed property names are not allowed in interfaces or type literals. +!!! error TS1169: Computed property names are not allowed in interfaces or type literals. [x: string]; ~~~~~~~~~~~~ !!! error TS1021: An index signature must have a type annotation. @@ -17,7 +17,7 @@ tests/cases/compiler/indexSignatureMustHaveTypeAnnotation.ts(12,5): error TS1021 class C { [x]: string ~~~ -!!! error TS1164: Computed property names are not allowed in class property declarations. +!!! error TS1166: Computed property names are not allowed in class property declarations. } diff --git a/tests/baselines/reference/indexSignatureWithInitializer.errors.txt b/tests/baselines/reference/indexSignatureWithInitializer.errors.txt index 414bcdfb84c..cc4e4a9bf4d 100644 --- a/tests/baselines/reference/indexSignatureWithInitializer.errors.txt +++ b/tests/baselines/reference/indexSignatureWithInitializer.errors.txt @@ -1,16 +1,16 @@ -tests/cases/compiler/indexSignatureWithInitializer.ts(2,5): error TS1161: Computed property names are not allowed in interfaces or type literals. -tests/cases/compiler/indexSignatureWithInitializer.ts(6,5): error TS1164: Computed property names are not allowed in class property declarations. +tests/cases/compiler/indexSignatureWithInitializer.ts(2,5): error TS1169: Computed property names are not allowed in interfaces or type literals. +tests/cases/compiler/indexSignatureWithInitializer.ts(6,5): error TS1166: Computed property names are not allowed in class property declarations. ==== tests/cases/compiler/indexSignatureWithInitializer.ts (2 errors) ==== interface I { [x = '']: string; ~~~~~~~~ -!!! error TS1161: Computed property names are not allowed in interfaces or type literals. +!!! error TS1169: Computed property names are not allowed in interfaces or type literals. } class C { [x = 0]: string ~~~~~~~ -!!! error TS1164: Computed property names are not allowed in class property declarations. +!!! error TS1166: Computed property names are not allowed in class property declarations. } \ No newline at end of file diff --git a/tests/baselines/reference/indexWithoutParamType2.errors.txt b/tests/baselines/reference/indexWithoutParamType2.errors.txt index f9ab6057546..41527d0859f 100644 --- a/tests/baselines/reference/indexWithoutParamType2.errors.txt +++ b/tests/baselines/reference/indexWithoutParamType2.errors.txt @@ -1,9 +1,9 @@ -tests/cases/compiler/indexWithoutParamType2.ts(2,5): error TS1164: Computed property names are not allowed in class property declarations. +tests/cases/compiler/indexWithoutParamType2.ts(2,5): error TS1166: Computed property names are not allowed in class property declarations. ==== tests/cases/compiler/indexWithoutParamType2.ts (1 errors) ==== class C { [x]: string ~~~ -!!! error TS1164: Computed property names are not allowed in class property declarations. +!!! error TS1166: Computed property names are not allowed in class property declarations. } \ No newline at end of file diff --git a/tests/baselines/reference/objectTypeWithOptionalProperty1.errors.txt b/tests/baselines/reference/objectTypeWithOptionalProperty1.errors.txt index 7e17563873a..e2e1c05ea1e 100644 --- a/tests/baselines/reference/objectTypeWithOptionalProperty1.errors.txt +++ b/tests/baselines/reference/objectTypeWithOptionalProperty1.errors.txt @@ -1,9 +1,9 @@ -tests/cases/compiler/objectTypeWithOptionalProperty1.ts(2,10): error TS1160: An object member cannot be declared optional. +tests/cases/compiler/objectTypeWithOptionalProperty1.ts(2,10): error TS1162: An object member cannot be declared optional. ==== tests/cases/compiler/objectTypeWithOptionalProperty1.ts (1 errors) ==== var b = { x?: 1 // error ~ -!!! error TS1160: An object member cannot be declared optional. +!!! error TS1162: An object member cannot be declared optional. } \ No newline at end of file diff --git a/tests/baselines/reference/objectTypesWithOptionalProperties.errors.txt b/tests/baselines/reference/objectTypesWithOptionalProperties.errors.txt index d33a5e35b63..a2269c29d11 100644 --- a/tests/baselines/reference/objectTypesWithOptionalProperties.errors.txt +++ b/tests/baselines/reference/objectTypesWithOptionalProperties.errors.txt @@ -1,6 +1,6 @@ tests/cases/conformance/types/objectTypeLiteral/methodSignatures/objectTypesWithOptionalProperties.ts(12,6): error TS1112: A class member cannot be declared optional. tests/cases/conformance/types/objectTypeLiteral/methodSignatures/objectTypesWithOptionalProperties.ts(20,6): error TS1112: A class member cannot be declared optional. -tests/cases/conformance/types/objectTypeLiteral/methodSignatures/objectTypesWithOptionalProperties.ts(24,6): error TS1160: An object member cannot be declared optional. +tests/cases/conformance/types/objectTypeLiteral/methodSignatures/objectTypesWithOptionalProperties.ts(24,6): error TS1162: An object member cannot be declared optional. ==== tests/cases/conformance/types/objectTypeLiteral/methodSignatures/objectTypesWithOptionalProperties.ts (3 errors) ==== @@ -33,5 +33,5 @@ tests/cases/conformance/types/objectTypeLiteral/methodSignatures/objectTypesWith var b = { x?: 1 // error ~ -!!! error TS1160: An object member cannot be declared optional. +!!! error TS1162: An object member cannot be declared optional. } \ No newline at end of file diff --git a/tests/baselines/reference/parserComputedPropertyName10.errors.txt b/tests/baselines/reference/parserComputedPropertyName10.errors.txt index 279750d21bd..704c37ebf45 100644 --- a/tests/baselines/reference/parserComputedPropertyName10.errors.txt +++ b/tests/baselines/reference/parserComputedPropertyName10.errors.txt @@ -1,9 +1,9 @@ -tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName10.ts(2,4): error TS1164: Computed property names are not allowed in class property declarations. +tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName10.ts(2,4): error TS1166: Computed property names are not allowed in class property declarations. ==== tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName10.ts (1 errors) ==== class C { [e] = 1 ~~~ -!!! error TS1164: Computed property names are not allowed in class property declarations. +!!! error TS1166: Computed property names are not allowed in class property declarations. } \ No newline at end of file diff --git a/tests/baselines/reference/parserComputedPropertyName11.errors.txt b/tests/baselines/reference/parserComputedPropertyName11.errors.txt index fe2e82b54ee..a47865ba3f8 100644 --- a/tests/baselines/reference/parserComputedPropertyName11.errors.txt +++ b/tests/baselines/reference/parserComputedPropertyName11.errors.txt @@ -1,4 +1,4 @@ -tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName11.ts(2,4): error TS1166: Computed property names are not allowed in method overloads. +tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName11.ts(2,4): error TS1168: Computed property names are not allowed in method overloads. tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName11.ts(2,4): error TS2391: Function implementation is missing or not immediately following the declaration. @@ -6,7 +6,7 @@ tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedP class C { [e](); ~~~ -!!! error TS1166: Computed property names are not allowed in method overloads. +!!! error TS1168: Computed property names are not allowed in method overloads. ~~~ !!! error TS2391: Function implementation is missing or not immediately following the declaration. } \ No newline at end of file diff --git a/tests/baselines/reference/parserComputedPropertyName13.errors.txt b/tests/baselines/reference/parserComputedPropertyName13.errors.txt index eb5eb57d902..38ad6c1c74c 100644 --- a/tests/baselines/reference/parserComputedPropertyName13.errors.txt +++ b/tests/baselines/reference/parserComputedPropertyName13.errors.txt @@ -1,7 +1,7 @@ -tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName13.ts(1,10): error TS1161: Computed property names are not allowed in interfaces or type literals. +tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName13.ts(1,10): error TS1169: Computed property names are not allowed in interfaces or type literals. ==== tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName13.ts (1 errors) ==== var v: { [e]: number }; ~~~ -!!! error TS1161: Computed property names are not allowed in interfaces or type literals. \ No newline at end of file +!!! error TS1169: Computed property names are not allowed in interfaces or type literals. \ No newline at end of file diff --git a/tests/baselines/reference/parserComputedPropertyName14.errors.txt b/tests/baselines/reference/parserComputedPropertyName14.errors.txt index ac5fcfff3bd..fe26de08c9d 100644 --- a/tests/baselines/reference/parserComputedPropertyName14.errors.txt +++ b/tests/baselines/reference/parserComputedPropertyName14.errors.txt @@ -1,7 +1,7 @@ -tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName14.ts(1,10): error TS1161: Computed property names are not allowed in interfaces or type literals. +tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName14.ts(1,10): error TS1169: Computed property names are not allowed in interfaces or type literals. ==== tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName14.ts (1 errors) ==== var v: { [e](): number }; ~~~ -!!! error TS1161: Computed property names are not allowed in interfaces or type literals. \ No newline at end of file +!!! error TS1169: Computed property names are not allowed in interfaces or type literals. \ No newline at end of file diff --git a/tests/baselines/reference/parserComputedPropertyName15.errors.txt b/tests/baselines/reference/parserComputedPropertyName15.errors.txt index e03c5c1f259..eaa86105727 100644 --- a/tests/baselines/reference/parserComputedPropertyName15.errors.txt +++ b/tests/baselines/reference/parserComputedPropertyName15.errors.txt @@ -1,7 +1,7 @@ -tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName15.ts(1,31): error TS1161: Computed property names are not allowed in interfaces or type literals. +tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName15.ts(1,31): error TS1169: Computed property names are not allowed in interfaces or type literals. ==== tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName15.ts (1 errors) ==== var v: { [e: number]: string; [e]: number }; ~~~ -!!! error TS1161: Computed property names are not allowed in interfaces or type literals. \ No newline at end of file +!!! error TS1169: Computed property names are not allowed in interfaces or type literals. \ No newline at end of file diff --git a/tests/baselines/reference/parserComputedPropertyName16.errors.txt b/tests/baselines/reference/parserComputedPropertyName16.errors.txt index 8deb137f3af..23361b4ce7e 100644 --- a/tests/baselines/reference/parserComputedPropertyName16.errors.txt +++ b/tests/baselines/reference/parserComputedPropertyName16.errors.txt @@ -1,9 +1,9 @@ -tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName16.ts(2,3): error TS1162: Computed property names are not allowed in enums. +tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName16.ts(2,3): error TS1164: Computed property names are not allowed in enums. ==== tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName16.ts (1 errors) ==== enum E { [e] = 1 ~~~ -!!! error TS1162: Computed property names are not allowed in enums. +!!! error TS1164: Computed property names are not allowed in enums. } \ No newline at end of file diff --git a/tests/baselines/reference/parserComputedPropertyName18.errors.txt b/tests/baselines/reference/parserComputedPropertyName18.errors.txt index 1e09dae76aa..c8241febfe4 100644 --- a/tests/baselines/reference/parserComputedPropertyName18.errors.txt +++ b/tests/baselines/reference/parserComputedPropertyName18.errors.txt @@ -1,7 +1,7 @@ -tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName18.ts(1,10): error TS1161: Computed property names are not allowed in interfaces or type literals. +tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName18.ts(1,10): error TS1169: Computed property names are not allowed in interfaces or type literals. ==== tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName18.ts (1 errors) ==== var v: { [e]?(): number }; ~~~ -!!! error TS1161: Computed property names are not allowed in interfaces or type literals. \ No newline at end of file +!!! error TS1169: Computed property names are not allowed in interfaces or type literals. \ No newline at end of file diff --git a/tests/baselines/reference/parserComputedPropertyName19.errors.txt b/tests/baselines/reference/parserComputedPropertyName19.errors.txt index 3ee3ed84d7b..fd17b02724d 100644 --- a/tests/baselines/reference/parserComputedPropertyName19.errors.txt +++ b/tests/baselines/reference/parserComputedPropertyName19.errors.txt @@ -1,7 +1,7 @@ -tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName19.ts(1,10): error TS1161: Computed property names are not allowed in interfaces or type literals. +tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName19.ts(1,10): error TS1169: Computed property names are not allowed in interfaces or type literals. ==== tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName19.ts (1 errors) ==== var v: { [e]? }; ~~~ -!!! error TS1161: Computed property names are not allowed in interfaces or type literals. \ No newline at end of file +!!! error TS1169: Computed property names are not allowed in interfaces or type literals. \ No newline at end of file diff --git a/tests/baselines/reference/parserComputedPropertyName20.errors.txt b/tests/baselines/reference/parserComputedPropertyName20.errors.txt index 2b77f033d9e..12a82cc6f68 100644 --- a/tests/baselines/reference/parserComputedPropertyName20.errors.txt +++ b/tests/baselines/reference/parserComputedPropertyName20.errors.txt @@ -1,9 +1,9 @@ -tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName20.ts(2,5): error TS1161: Computed property names are not allowed in interfaces or type literals. +tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName20.ts(2,5): error TS1169: Computed property names are not allowed in interfaces or type literals. ==== tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName20.ts (1 errors) ==== interface I { [e](): number ~~~ -!!! error TS1161: Computed property names are not allowed in interfaces or type literals. +!!! error TS1169: Computed property names are not allowed in interfaces or type literals. } \ No newline at end of file diff --git a/tests/baselines/reference/parserComputedPropertyName21.errors.txt b/tests/baselines/reference/parserComputedPropertyName21.errors.txt index f472afd93ee..b25b1484a90 100644 --- a/tests/baselines/reference/parserComputedPropertyName21.errors.txt +++ b/tests/baselines/reference/parserComputedPropertyName21.errors.txt @@ -1,9 +1,9 @@ -tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName21.ts(2,5): error TS1161: Computed property names are not allowed in interfaces or type literals. +tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName21.ts(2,5): error TS1169: Computed property names are not allowed in interfaces or type literals. ==== tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName21.ts (1 errors) ==== interface I { [e]: number ~~~ -!!! error TS1161: Computed property names are not allowed in interfaces or type literals. +!!! error TS1169: Computed property names are not allowed in interfaces or type literals. } \ No newline at end of file diff --git a/tests/baselines/reference/parserComputedPropertyName22.errors.txt b/tests/baselines/reference/parserComputedPropertyName22.errors.txt index dae871108f0..5149c937108 100644 --- a/tests/baselines/reference/parserComputedPropertyName22.errors.txt +++ b/tests/baselines/reference/parserComputedPropertyName22.errors.txt @@ -1,9 +1,9 @@ -tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName22.ts(2,5): error TS1164: Computed property names are not allowed in class property declarations. +tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName22.ts(2,5): error TS1166: Computed property names are not allowed in class property declarations. ==== tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName22.ts (1 errors) ==== declare class C { [e]: number ~~~ -!!! error TS1164: Computed property names are not allowed in class property declarations. +!!! error TS1166: Computed property names are not allowed in class property declarations. } \ No newline at end of file diff --git a/tests/baselines/reference/parserComputedPropertyName25.errors.txt b/tests/baselines/reference/parserComputedPropertyName25.errors.txt index 7e0d3abdd37..c8dd6b3bc7c 100644 --- a/tests/baselines/reference/parserComputedPropertyName25.errors.txt +++ b/tests/baselines/reference/parserComputedPropertyName25.errors.txt @@ -1,4 +1,4 @@ -tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName25.ts(3,5): error TS1164: Computed property names are not allowed in class property declarations. +tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName25.ts(3,5): error TS1166: Computed property names are not allowed in class property declarations. tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName25.ts(4,6): error TS2304: Cannot find name 'e2'. @@ -7,7 +7,7 @@ tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedP // No ASI [e] = 0 ~~~ -!!! error TS1164: Computed property names are not allowed in class property declarations. +!!! error TS1166: Computed property names are not allowed in class property declarations. [e2] = 1 ~~ !!! error TS2304: Cannot find name 'e2'. diff --git a/tests/baselines/reference/parserComputedPropertyName26.errors.txt b/tests/baselines/reference/parserComputedPropertyName26.errors.txt index 85d0729e73f..9b1cf1d53f4 100644 --- a/tests/baselines/reference/parserComputedPropertyName26.errors.txt +++ b/tests/baselines/reference/parserComputedPropertyName26.errors.txt @@ -1,4 +1,4 @@ -tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName26.ts(3,5): error TS1162: Computed property names are not allowed in enums. +tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName26.ts(3,5): error TS1164: Computed property names are not allowed in enums. tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName26.ts(4,6): error TS2304: Cannot find name 'e2'. @@ -7,7 +7,7 @@ tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedP // No ASI [e] = 0 ~~~ -!!! error TS1162: Computed property names are not allowed in enums. +!!! error TS1164: Computed property names are not allowed in enums. [e2] = 1 ~~ !!! error TS2304: Cannot find name 'e2'. diff --git a/tests/baselines/reference/parserComputedPropertyName28.errors.txt b/tests/baselines/reference/parserComputedPropertyName28.errors.txt index f36b15b61b6..bc32f34c151 100644 --- a/tests/baselines/reference/parserComputedPropertyName28.errors.txt +++ b/tests/baselines/reference/parserComputedPropertyName28.errors.txt @@ -1,13 +1,13 @@ -tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName28.ts(2,5): error TS1164: Computed property names are not allowed in class property declarations. -tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName28.ts(3,5): error TS1164: Computed property names are not allowed in class property declarations. +tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName28.ts(2,5): error TS1166: Computed property names are not allowed in class property declarations. +tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName28.ts(3,5): error TS1166: Computed property names are not allowed in class property declarations. ==== tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName28.ts (2 errors) ==== class C { [e]: number = 0; ~~~ -!!! error TS1164: Computed property names are not allowed in class property declarations. +!!! error TS1166: Computed property names are not allowed in class property declarations. [e2]: number ~~~~ -!!! error TS1164: Computed property names are not allowed in class property declarations. +!!! error TS1166: Computed property names are not allowed in class property declarations. } \ No newline at end of file diff --git a/tests/baselines/reference/parserComputedPropertyName29.errors.txt b/tests/baselines/reference/parserComputedPropertyName29.errors.txt index 0b832d1b68f..13a15bf5f9d 100644 --- a/tests/baselines/reference/parserComputedPropertyName29.errors.txt +++ b/tests/baselines/reference/parserComputedPropertyName29.errors.txt @@ -1,5 +1,5 @@ -tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName29.ts(3,5): error TS1164: Computed property names are not allowed in class property declarations. -tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName29.ts(4,5): error TS1164: Computed property names are not allowed in class property declarations. +tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName29.ts(3,5): error TS1166: Computed property names are not allowed in class property declarations. +tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName29.ts(4,5): error TS1166: Computed property names are not allowed in class property declarations. tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName29.ts(3,11): error TS2304: Cannot find name 'id'. @@ -8,10 +8,10 @@ tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedP // yes ASI [e] = id++ ~~~ -!!! error TS1164: Computed property names are not allowed in class property declarations. +!!! error TS1166: Computed property names are not allowed in class property declarations. ~~ !!! error TS2304: Cannot find name 'id'. [e2]: number ~~~~ -!!! error TS1164: Computed property names are not allowed in class property declarations. +!!! error TS1166: Computed property names are not allowed in class property declarations. } \ No newline at end of file diff --git a/tests/baselines/reference/parserComputedPropertyName31.errors.txt b/tests/baselines/reference/parserComputedPropertyName31.errors.txt index 21f96dcbf5d..6dddbd859c9 100644 --- a/tests/baselines/reference/parserComputedPropertyName31.errors.txt +++ b/tests/baselines/reference/parserComputedPropertyName31.errors.txt @@ -1,5 +1,5 @@ -tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName31.ts(3,5): error TS1164: Computed property names are not allowed in class property declarations. -tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName31.ts(4,5): error TS1164: Computed property names are not allowed in class property declarations. +tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName31.ts(3,5): error TS1166: Computed property names are not allowed in class property declarations. +tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName31.ts(4,5): error TS1166: Computed property names are not allowed in class property declarations. ==== tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName31.ts (2 errors) ==== @@ -7,8 +7,8 @@ tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedP // yes ASI [e]: number ~~~ -!!! error TS1164: Computed property names are not allowed in class property declarations. +!!! error TS1166: Computed property names are not allowed in class property declarations. [e2]: number ~~~~ -!!! error TS1164: Computed property names are not allowed in class property declarations. +!!! error TS1166: Computed property names are not allowed in class property declarations. } \ No newline at end of file diff --git a/tests/baselines/reference/parserComputedPropertyName32.errors.txt b/tests/baselines/reference/parserComputedPropertyName32.errors.txt index 88d738421e2..4407014cf99 100644 --- a/tests/baselines/reference/parserComputedPropertyName32.errors.txt +++ b/tests/baselines/reference/parserComputedPropertyName32.errors.txt @@ -1,9 +1,9 @@ -tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName32.ts(2,5): error TS1163: Computed property names are not allowed in an ambient context. +tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName32.ts(2,5): error TS1165: Computed property names are not allowed in an ambient context. ==== tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName32.ts (1 errors) ==== declare class C { [e](): number ~~~ -!!! error TS1163: Computed property names are not allowed in an ambient context. +!!! error TS1165: Computed property names are not allowed in an ambient context. } \ No newline at end of file diff --git a/tests/baselines/reference/parserComputedPropertyName34.errors.txt b/tests/baselines/reference/parserComputedPropertyName34.errors.txt index b1cc4b91533..05d7375f132 100644 --- a/tests/baselines/reference/parserComputedPropertyName34.errors.txt +++ b/tests/baselines/reference/parserComputedPropertyName34.errors.txt @@ -1,5 +1,5 @@ -tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName34.ts(3,5): error TS1162: Computed property names are not allowed in enums. -tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName34.ts(4,5): error TS1162: Computed property names are not allowed in enums. +tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName34.ts(3,5): error TS1164: Computed property names are not allowed in enums. +tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName34.ts(4,5): error TS1164: Computed property names are not allowed in enums. tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName34.ts(3,11): error TS2304: Cannot find name 'id'. @@ -8,10 +8,10 @@ tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedP // no ASI, comma expected [e] = id++, ~~~ -!!! error TS1162: Computed property names are not allowed in enums. +!!! error TS1164: Computed property names are not allowed in enums. ~~ !!! error TS2304: Cannot find name 'id'. [e2] = 1 ~~~~ -!!! error TS1162: Computed property names are not allowed in enums. +!!! error TS1164: Computed property names are not allowed in enums. } \ No newline at end of file diff --git a/tests/baselines/reference/parserComputedPropertyName7.errors.txt b/tests/baselines/reference/parserComputedPropertyName7.errors.txt index 6c46fc343a8..21147be3074 100644 --- a/tests/baselines/reference/parserComputedPropertyName7.errors.txt +++ b/tests/baselines/reference/parserComputedPropertyName7.errors.txt @@ -1,9 +1,9 @@ -tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName7.ts(2,4): error TS1164: Computed property names are not allowed in class property declarations. +tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName7.ts(2,4): error TS1166: Computed property names are not allowed in class property declarations. ==== tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName7.ts (1 errors) ==== class C { [e] ~~~ -!!! error TS1164: Computed property names are not allowed in class property declarations. +!!! error TS1166: Computed property names are not allowed in class property declarations. } \ No newline at end of file diff --git a/tests/baselines/reference/parserComputedPropertyName8.errors.txt b/tests/baselines/reference/parserComputedPropertyName8.errors.txt index 07f5ec5dee1..75352ec9e51 100644 --- a/tests/baselines/reference/parserComputedPropertyName8.errors.txt +++ b/tests/baselines/reference/parserComputedPropertyName8.errors.txt @@ -1,9 +1,9 @@ -tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName8.ts(2,11): error TS1164: Computed property names are not allowed in class property declarations. +tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName8.ts(2,11): error TS1166: Computed property names are not allowed in class property declarations. ==== tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName8.ts (1 errors) ==== class C { public [e] ~~~ -!!! error TS1164: Computed property names are not allowed in class property declarations. +!!! error TS1166: Computed property names are not allowed in class property declarations. } \ No newline at end of file diff --git a/tests/baselines/reference/parserComputedPropertyName9.errors.txt b/tests/baselines/reference/parserComputedPropertyName9.errors.txt index a93da2261c8..eb5cfd28d73 100644 --- a/tests/baselines/reference/parserComputedPropertyName9.errors.txt +++ b/tests/baselines/reference/parserComputedPropertyName9.errors.txt @@ -1,4 +1,4 @@ -tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName9.ts(2,4): error TS1164: Computed property names are not allowed in class property declarations. +tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName9.ts(2,4): error TS1166: Computed property names are not allowed in class property declarations. tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName9.ts(2,9): error TS2304: Cannot find name 'Type'. @@ -6,7 +6,7 @@ tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedP class C { [e]: Type ~~~ -!!! error TS1164: Computed property names are not allowed in class property declarations. +!!! error TS1166: Computed property names are not allowed in class property declarations. ~~~~ !!! error TS2304: Cannot find name 'Type'. } \ No newline at end of file diff --git a/tests/baselines/reference/parserES5ComputedPropertyName1.errors.txt b/tests/baselines/reference/parserES5ComputedPropertyName1.errors.txt index 75e5d505696..5bae79b95aa 100644 --- a/tests/baselines/reference/parserES5ComputedPropertyName1.errors.txt +++ b/tests/baselines/reference/parserES5ComputedPropertyName1.errors.txt @@ -1,9 +1,9 @@ -tests/cases/conformance/parser/ecmascript5/ComputedPropertyNames/parserES5ComputedPropertyName1.ts(2,5): error TS1164: Computed property names are not allowed in class property declarations. +tests/cases/conformance/parser/ecmascript5/ComputedPropertyNames/parserES5ComputedPropertyName1.ts(2,5): error TS1166: Computed property names are not allowed in class property declarations. ==== tests/cases/conformance/parser/ecmascript5/ComputedPropertyNames/parserES5ComputedPropertyName1.ts (1 errors) ==== declare class C { [e]: number ~~~ -!!! error TS1164: Computed property names are not allowed in class property declarations. +!!! error TS1166: Computed property names are not allowed in class property declarations. } \ No newline at end of file diff --git a/tests/baselines/reference/parserES5ComputedPropertyName10.errors.txt b/tests/baselines/reference/parserES5ComputedPropertyName10.errors.txt index c2e53b50818..40bec1b4f38 100644 --- a/tests/baselines/reference/parserES5ComputedPropertyName10.errors.txt +++ b/tests/baselines/reference/parserES5ComputedPropertyName10.errors.txt @@ -1,9 +1,9 @@ -tests/cases/conformance/parser/ecmascript5/ComputedPropertyNames/parserES5ComputedPropertyName10.ts(2,4): error TS1164: Computed property names are not allowed in class property declarations. +tests/cases/conformance/parser/ecmascript5/ComputedPropertyNames/parserES5ComputedPropertyName10.ts(2,4): error TS1166: Computed property names are not allowed in class property declarations. ==== tests/cases/conformance/parser/ecmascript5/ComputedPropertyNames/parserES5ComputedPropertyName10.ts (1 errors) ==== class C { [e] = 1 ~~~ -!!! error TS1164: Computed property names are not allowed in class property declarations. +!!! error TS1166: Computed property names are not allowed in class property declarations. } \ No newline at end of file diff --git a/tests/baselines/reference/parserES5ComputedPropertyName11.errors.txt b/tests/baselines/reference/parserES5ComputedPropertyName11.errors.txt index cfd2ba4c3f8..f37cf910a15 100644 --- a/tests/baselines/reference/parserES5ComputedPropertyName11.errors.txt +++ b/tests/baselines/reference/parserES5ComputedPropertyName11.errors.txt @@ -1,4 +1,4 @@ -tests/cases/conformance/parser/ecmascript5/ComputedPropertyNames/parserES5ComputedPropertyName11.ts(2,4): error TS1165: Computed property names are only available when targeting ECMAScript 6 and higher. +tests/cases/conformance/parser/ecmascript5/ComputedPropertyNames/parserES5ComputedPropertyName11.ts(2,4): error TS1168: Computed property names are not allowed in method overloads. tests/cases/conformance/parser/ecmascript5/ComputedPropertyNames/parserES5ComputedPropertyName11.ts(2,4): error TS2391: Function implementation is missing or not immediately following the declaration. @@ -6,7 +6,7 @@ tests/cases/conformance/parser/ecmascript5/ComputedPropertyNames/parserES5Comput class C { [e](); ~~~ -!!! error TS1165: Computed property names are only available when targeting ECMAScript 6 and higher. +!!! error TS1168: Computed property names are not allowed in method overloads. ~~~ !!! error TS2391: Function implementation is missing or not immediately following the declaration. } \ No newline at end of file diff --git a/tests/baselines/reference/parserES5ComputedPropertyName2.errors.txt b/tests/baselines/reference/parserES5ComputedPropertyName2.errors.txt index 9b2d920f53f..dc7d7e7ba30 100644 --- a/tests/baselines/reference/parserES5ComputedPropertyName2.errors.txt +++ b/tests/baselines/reference/parserES5ComputedPropertyName2.errors.txt @@ -1,7 +1,7 @@ -tests/cases/conformance/parser/ecmascript5/ComputedPropertyNames/parserES5ComputedPropertyName2.ts(1,11): error TS1165: Computed property names are only available when targeting ECMAScript 6 and higher. +tests/cases/conformance/parser/ecmascript5/ComputedPropertyNames/parserES5ComputedPropertyName2.ts(1,11): error TS1167: Computed property names are only available when targeting ECMAScript 6 and higher. ==== tests/cases/conformance/parser/ecmascript5/ComputedPropertyNames/parserES5ComputedPropertyName2.ts (1 errors) ==== var v = { [e]: 1 }; ~~~ -!!! error TS1165: Computed property names are only available when targeting ECMAScript 6 and higher. \ No newline at end of file +!!! error TS1167: Computed property names are only available when targeting ECMAScript 6 and higher. \ No newline at end of file diff --git a/tests/baselines/reference/parserES5ComputedPropertyName3.errors.txt b/tests/baselines/reference/parserES5ComputedPropertyName3.errors.txt index da346e98bae..376c1a29ae4 100644 --- a/tests/baselines/reference/parserES5ComputedPropertyName3.errors.txt +++ b/tests/baselines/reference/parserES5ComputedPropertyName3.errors.txt @@ -1,7 +1,7 @@ -tests/cases/conformance/parser/ecmascript5/ComputedPropertyNames/parserES5ComputedPropertyName3.ts(1,11): error TS1165: Computed property names are only available when targeting ECMAScript 6 and higher. +tests/cases/conformance/parser/ecmascript5/ComputedPropertyNames/parserES5ComputedPropertyName3.ts(1,11): error TS1167: Computed property names are only available when targeting ECMAScript 6 and higher. ==== tests/cases/conformance/parser/ecmascript5/ComputedPropertyNames/parserES5ComputedPropertyName3.ts (1 errors) ==== var v = { [e]() { } }; ~~~ -!!! error TS1165: Computed property names are only available when targeting ECMAScript 6 and higher. \ No newline at end of file +!!! error TS1167: Computed property names are only available when targeting ECMAScript 6 and higher. \ No newline at end of file diff --git a/tests/baselines/reference/parserES5ComputedPropertyName4.errors.txt b/tests/baselines/reference/parserES5ComputedPropertyName4.errors.txt index b99115f8d1e..e0b816f157c 100644 --- a/tests/baselines/reference/parserES5ComputedPropertyName4.errors.txt +++ b/tests/baselines/reference/parserES5ComputedPropertyName4.errors.txt @@ -1,7 +1,7 @@ -tests/cases/conformance/parser/ecmascript5/ComputedPropertyNames/parserES5ComputedPropertyName4.ts(1,15): error TS1165: Computed property names are only available when targeting ECMAScript 6 and higher. +tests/cases/conformance/parser/ecmascript5/ComputedPropertyNames/parserES5ComputedPropertyName4.ts(1,15): error TS1167: Computed property names are only available when targeting ECMAScript 6 and higher. ==== tests/cases/conformance/parser/ecmascript5/ComputedPropertyNames/parserES5ComputedPropertyName4.ts (1 errors) ==== var v = { get [e]() { } }; ~~~ -!!! error TS1165: Computed property names are only available when targeting ECMAScript 6 and higher. \ No newline at end of file +!!! error TS1167: Computed property names are only available when targeting ECMAScript 6 and higher. \ No newline at end of file diff --git a/tests/baselines/reference/parserES5ComputedPropertyName5.errors.txt b/tests/baselines/reference/parserES5ComputedPropertyName5.errors.txt index fc7a67e729b..1cc70551961 100644 --- a/tests/baselines/reference/parserES5ComputedPropertyName5.errors.txt +++ b/tests/baselines/reference/parserES5ComputedPropertyName5.errors.txt @@ -1,9 +1,9 @@ -tests/cases/conformance/parser/ecmascript5/ComputedPropertyNames/parserES5ComputedPropertyName5.ts(2,5): error TS1161: Computed property names are not allowed in interfaces or type literals. +tests/cases/conformance/parser/ecmascript5/ComputedPropertyNames/parserES5ComputedPropertyName5.ts(2,5): error TS1169: Computed property names are not allowed in interfaces or type literals. ==== tests/cases/conformance/parser/ecmascript5/ComputedPropertyNames/parserES5ComputedPropertyName5.ts (1 errors) ==== interface I { [e]: number ~~~ -!!! error TS1161: Computed property names are not allowed in interfaces or type literals. +!!! error TS1169: Computed property names are not allowed in interfaces or type literals. } \ No newline at end of file diff --git a/tests/baselines/reference/parserES5ComputedPropertyName6.errors.txt b/tests/baselines/reference/parserES5ComputedPropertyName6.errors.txt index ce3592b08e0..7f43220fc0d 100644 --- a/tests/baselines/reference/parserES5ComputedPropertyName6.errors.txt +++ b/tests/baselines/reference/parserES5ComputedPropertyName6.errors.txt @@ -1,9 +1,9 @@ -tests/cases/conformance/parser/ecmascript5/ComputedPropertyNames/parserES5ComputedPropertyName6.ts(2,3): error TS1162: Computed property names are not allowed in enums. +tests/cases/conformance/parser/ecmascript5/ComputedPropertyNames/parserES5ComputedPropertyName6.ts(2,3): error TS1164: Computed property names are not allowed in enums. ==== tests/cases/conformance/parser/ecmascript5/ComputedPropertyNames/parserES5ComputedPropertyName6.ts (1 errors) ==== enum E { [e] = 1 ~~~ -!!! error TS1162: Computed property names are not allowed in enums. +!!! error TS1164: Computed property names are not allowed in enums. } \ No newline at end of file diff --git a/tests/baselines/reference/parserES5ComputedPropertyName7.errors.txt b/tests/baselines/reference/parserES5ComputedPropertyName7.errors.txt index 5bc1a94da3b..6aefd27ef58 100644 --- a/tests/baselines/reference/parserES5ComputedPropertyName7.errors.txt +++ b/tests/baselines/reference/parserES5ComputedPropertyName7.errors.txt @@ -1,9 +1,9 @@ -tests/cases/conformance/parser/ecmascript5/ComputedPropertyNames/parserES5ComputedPropertyName7.ts(2,4): error TS1164: Computed property names are not allowed in class property declarations. +tests/cases/conformance/parser/ecmascript5/ComputedPropertyNames/parserES5ComputedPropertyName7.ts(2,4): error TS1166: Computed property names are not allowed in class property declarations. ==== tests/cases/conformance/parser/ecmascript5/ComputedPropertyNames/parserES5ComputedPropertyName7.ts (1 errors) ==== class C { [e] ~~~ -!!! error TS1164: Computed property names are not allowed in class property declarations. +!!! error TS1166: Computed property names are not allowed in class property declarations. } \ No newline at end of file diff --git a/tests/baselines/reference/parserES5ComputedPropertyName8.errors.txt b/tests/baselines/reference/parserES5ComputedPropertyName8.errors.txt index e5312829ab6..6a6964849a1 100644 --- a/tests/baselines/reference/parserES5ComputedPropertyName8.errors.txt +++ b/tests/baselines/reference/parserES5ComputedPropertyName8.errors.txt @@ -1,7 +1,7 @@ -tests/cases/conformance/parser/ecmascript5/ComputedPropertyNames/parserES5ComputedPropertyName8.ts(1,10): error TS1161: Computed property names are not allowed in interfaces or type literals. +tests/cases/conformance/parser/ecmascript5/ComputedPropertyNames/parserES5ComputedPropertyName8.ts(1,10): error TS1169: Computed property names are not allowed in interfaces or type literals. ==== tests/cases/conformance/parser/ecmascript5/ComputedPropertyNames/parserES5ComputedPropertyName8.ts (1 errors) ==== var v: { [e]: number }; ~~~ -!!! error TS1161: Computed property names are not allowed in interfaces or type literals. \ No newline at end of file +!!! error TS1169: Computed property names are not allowed in interfaces or type literals. \ No newline at end of file diff --git a/tests/baselines/reference/parserES5ComputedPropertyName9.errors.txt b/tests/baselines/reference/parserES5ComputedPropertyName9.errors.txt index af78dcc3e4e..6d035a7c610 100644 --- a/tests/baselines/reference/parserES5ComputedPropertyName9.errors.txt +++ b/tests/baselines/reference/parserES5ComputedPropertyName9.errors.txt @@ -1,4 +1,4 @@ -tests/cases/conformance/parser/ecmascript5/ComputedPropertyNames/parserES5ComputedPropertyName9.ts(2,4): error TS1164: Computed property names are not allowed in class property declarations. +tests/cases/conformance/parser/ecmascript5/ComputedPropertyNames/parserES5ComputedPropertyName9.ts(2,4): error TS1166: Computed property names are not allowed in class property declarations. tests/cases/conformance/parser/ecmascript5/ComputedPropertyNames/parserES5ComputedPropertyName9.ts(2,9): error TS2304: Cannot find name 'Type'. @@ -6,7 +6,7 @@ tests/cases/conformance/parser/ecmascript5/ComputedPropertyNames/parserES5Comput class C { [e]: Type ~~~ -!!! error TS1164: Computed property names are not allowed in class property declarations. +!!! error TS1166: Computed property names are not allowed in class property declarations. ~~~~ !!! error TS2304: Cannot find name 'Type'. } \ No newline at end of file diff --git a/tests/baselines/reference/parserIndexSignature11.errors.txt b/tests/baselines/reference/parserIndexSignature11.errors.txt index 427d3090e48..dfdd9955daa 100644 --- a/tests/baselines/reference/parserIndexSignature11.errors.txt +++ b/tests/baselines/reference/parserIndexSignature11.errors.txt @@ -1,4 +1,4 @@ -tests/cases/conformance/parser/ecmascript5/IndexSignatures/parserIndexSignature11.ts(2,9): error TS1161: Computed property names are not allowed in interfaces or type literals. +tests/cases/conformance/parser/ecmascript5/IndexSignatures/parserIndexSignature11.ts(2,9): error TS1169: Computed property names are not allowed in interfaces or type literals. tests/cases/conformance/parser/ecmascript5/IndexSignatures/parserIndexSignature11.ts(3,9): error TS1021: An index signature must have a type annotation. tests/cases/conformance/parser/ecmascript5/IndexSignatures/parserIndexSignature11.ts(4,10): error TS1096: An index signature must have exactly one parameter. @@ -7,7 +7,7 @@ tests/cases/conformance/parser/ecmascript5/IndexSignatures/parserIndexSignature1 interface I { [p]; ~~~ -!!! error TS1161: Computed property names are not allowed in interfaces or type literals. +!!! error TS1169: Computed property names are not allowed in interfaces or type literals. [p1: string]; ~~~~~~~~~~~~~ !!! error TS1021: An index signature must have a type annotation. diff --git a/tests/baselines/reference/parserIndexSignature4.errors.txt b/tests/baselines/reference/parserIndexSignature4.errors.txt index f93d8aed249..b658dfdd69e 100644 --- a/tests/baselines/reference/parserIndexSignature4.errors.txt +++ b/tests/baselines/reference/parserIndexSignature4.errors.txt @@ -1,9 +1,9 @@ -tests/cases/conformance/parser/ecmascript5/IndexSignatures/parserIndexSignature4.ts(2,3): error TS1161: Computed property names are not allowed in interfaces or type literals. +tests/cases/conformance/parser/ecmascript5/IndexSignatures/parserIndexSignature4.ts(2,3): error TS1169: Computed property names are not allowed in interfaces or type literals. ==== tests/cases/conformance/parser/ecmascript5/IndexSignatures/parserIndexSignature4.ts (1 errors) ==== interface I { [a = 0] ~~~~~~~ -!!! error TS1161: Computed property names are not allowed in interfaces or type literals. +!!! error TS1169: Computed property names are not allowed in interfaces or type literals. } \ No newline at end of file diff --git a/tests/baselines/reference/parserIndexSignature5.errors.txt b/tests/baselines/reference/parserIndexSignature5.errors.txt index dc6bd18d773..b4d5c5534d0 100644 --- a/tests/baselines/reference/parserIndexSignature5.errors.txt +++ b/tests/baselines/reference/parserIndexSignature5.errors.txt @@ -1,9 +1,9 @@ -tests/cases/conformance/parser/ecmascript5/IndexSignatures/parserIndexSignature5.ts(2,3): error TS1161: Computed property names are not allowed in interfaces or type literals. +tests/cases/conformance/parser/ecmascript5/IndexSignatures/parserIndexSignature5.ts(2,3): error TS1169: Computed property names are not allowed in interfaces or type literals. ==== tests/cases/conformance/parser/ecmascript5/IndexSignatures/parserIndexSignature5.ts (1 errors) ==== interface I { [a] ~~~ -!!! error TS1161: Computed property names are not allowed in interfaces or type literals. +!!! error TS1169: Computed property names are not allowed in interfaces or type literals. } \ No newline at end of file diff --git a/tests/baselines/reference/propertyAssignment.errors.txt b/tests/baselines/reference/propertyAssignment.errors.txt index 41bc7cb6065..37df97d5d42 100644 --- a/tests/baselines/reference/propertyAssignment.errors.txt +++ b/tests/baselines/reference/propertyAssignment.errors.txt @@ -1,4 +1,4 @@ -tests/cases/compiler/propertyAssignment.ts(6,13): error TS1161: Computed property names are not allowed in interfaces or type literals. +tests/cases/compiler/propertyAssignment.ts(6,13): error TS1169: Computed property names are not allowed in interfaces or type literals. tests/cases/compiler/propertyAssignment.ts(14,1): error TS2322: Type '{ x: number; }' is not assignable to type 'new () => any'. tests/cases/compiler/propertyAssignment.ts(16,1): error TS2322: Type '{ x: number; }' is not assignable to type '() => void'. @@ -11,7 +11,7 @@ tests/cases/compiler/propertyAssignment.ts(16,1): error TS2322: Type '{ x: numbe var foo2: { [index]; } // should be an error ~~~~~~~ -!!! error TS1161: Computed property names are not allowed in interfaces or type literals. +!!! error TS1169: Computed property names are not allowed in interfaces or type literals. var bar2: { x : number; } var foo3: { ():void; } diff --git a/tests/baselines/reference/spaceBeforeQuestionMarkInPropertyAssignment.errors.txt b/tests/baselines/reference/spaceBeforeQuestionMarkInPropertyAssignment.errors.txt index f89252523ef..d51b97546d4 100644 --- a/tests/baselines/reference/spaceBeforeQuestionMarkInPropertyAssignment.errors.txt +++ b/tests/baselines/reference/spaceBeforeQuestionMarkInPropertyAssignment.errors.txt @@ -1,7 +1,7 @@ -tests/cases/compiler/spaceBeforeQuestionMarkInPropertyAssignment.ts(1,12): error TS1160: An object member cannot be declared optional. +tests/cases/compiler/spaceBeforeQuestionMarkInPropertyAssignment.ts(1,12): error TS1162: An object member cannot be declared optional. ==== tests/cases/compiler/spaceBeforeQuestionMarkInPropertyAssignment.ts (1 errors) ==== var x = {x ?: 1} // should not crash ~ -!!! error TS1160: An object member cannot be declared optional. \ No newline at end of file +!!! error TS1162: An object member cannot be declared optional. \ No newline at end of file diff --git a/tests/cases/conformance/es6/computedPropertyNames/ComputedPropertyName10_es6.ts b/tests/cases/conformance/es6/computedPropertyNames/ComputedPropertyName10_es6.ts deleted file mode 100644 index 64f8b999003..00000000000 --- a/tests/cases/conformance/es6/computedPropertyNames/ComputedPropertyName10_es6.ts +++ /dev/null @@ -1,3 +0,0 @@ -class C { - [e] = 1 -} \ No newline at end of file diff --git a/tests/cases/conformance/es6/computedPropertyNames/ComputedPropertyName11_es6.ts b/tests/cases/conformance/es6/computedPropertyNames/ComputedPropertyName11_es6.ts deleted file mode 100644 index cfb1c736b40..00000000000 --- a/tests/cases/conformance/es6/computedPropertyNames/ComputedPropertyName11_es6.ts +++ /dev/null @@ -1,3 +0,0 @@ -class C { - [e](); -} \ No newline at end of file diff --git a/tests/cases/conformance/es6/computedPropertyNames/ComputedPropertyName12_es6.ts b/tests/cases/conformance/es6/computedPropertyNames/ComputedPropertyName12_es6.ts deleted file mode 100644 index 7e030263fcc..00000000000 --- a/tests/cases/conformance/es6/computedPropertyNames/ComputedPropertyName12_es6.ts +++ /dev/null @@ -1,3 +0,0 @@ -class C { - [e]() { } -} \ No newline at end of file diff --git a/tests/cases/conformance/es6/computedPropertyNames/ComputedPropertyName13_es6.ts b/tests/cases/conformance/es6/computedPropertyNames/ComputedPropertyName13_es6.ts deleted file mode 100644 index 2783955e804..00000000000 --- a/tests/cases/conformance/es6/computedPropertyNames/ComputedPropertyName13_es6.ts +++ /dev/null @@ -1 +0,0 @@ -var v: { [e]: number }; \ No newline at end of file diff --git a/tests/cases/conformance/es6/computedPropertyNames/ComputedPropertyName14_es6.ts b/tests/cases/conformance/es6/computedPropertyNames/ComputedPropertyName14_es6.ts deleted file mode 100644 index 534b418854b..00000000000 --- a/tests/cases/conformance/es6/computedPropertyNames/ComputedPropertyName14_es6.ts +++ /dev/null @@ -1 +0,0 @@ -var v: { [e](): number }; \ No newline at end of file diff --git a/tests/cases/conformance/es6/computedPropertyNames/ComputedPropertyName15_es6.ts b/tests/cases/conformance/es6/computedPropertyNames/ComputedPropertyName15_es6.ts deleted file mode 100644 index 7b9965e8177..00000000000 --- a/tests/cases/conformance/es6/computedPropertyNames/ComputedPropertyName15_es6.ts +++ /dev/null @@ -1 +0,0 @@ -var v: { [e: number]: string; [e]: number }; \ No newline at end of file diff --git a/tests/cases/conformance/es6/computedPropertyNames/ComputedPropertyName16_es6.ts b/tests/cases/conformance/es6/computedPropertyNames/ComputedPropertyName16_es6.ts deleted file mode 100644 index a088319bf94..00000000000 --- a/tests/cases/conformance/es6/computedPropertyNames/ComputedPropertyName16_es6.ts +++ /dev/null @@ -1,3 +0,0 @@ -enum E { - [e] = 1 -} \ No newline at end of file diff --git a/tests/cases/conformance/es6/computedPropertyNames/ComputedPropertyName17_es6.ts b/tests/cases/conformance/es6/computedPropertyNames/ComputedPropertyName17_es6.ts deleted file mode 100644 index 2d002e9ca43..00000000000 --- a/tests/cases/conformance/es6/computedPropertyNames/ComputedPropertyName17_es6.ts +++ /dev/null @@ -1 +0,0 @@ -var v = { set [e](v) { } } \ No newline at end of file diff --git a/tests/cases/conformance/es6/computedPropertyNames/ComputedPropertyName18_es6.ts b/tests/cases/conformance/es6/computedPropertyNames/ComputedPropertyName18_es6.ts deleted file mode 100644 index 0659070d643..00000000000 --- a/tests/cases/conformance/es6/computedPropertyNames/ComputedPropertyName18_es6.ts +++ /dev/null @@ -1 +0,0 @@ -var v: { [e]?(): number }; \ No newline at end of file diff --git a/tests/cases/conformance/es6/computedPropertyNames/ComputedPropertyName19_es6.ts b/tests/cases/conformance/es6/computedPropertyNames/ComputedPropertyName19_es6.ts deleted file mode 100644 index b6c1756d097..00000000000 --- a/tests/cases/conformance/es6/computedPropertyNames/ComputedPropertyName19_es6.ts +++ /dev/null @@ -1 +0,0 @@ -var v: { [e]? }; \ No newline at end of file diff --git a/tests/cases/conformance/es6/computedPropertyNames/ComputedPropertyName1_es6.ts b/tests/cases/conformance/es6/computedPropertyNames/ComputedPropertyName1_es6.ts deleted file mode 100644 index 0703648cf0b..00000000000 --- a/tests/cases/conformance/es6/computedPropertyNames/ComputedPropertyName1_es6.ts +++ /dev/null @@ -1 +0,0 @@ -var v = { [e] }; \ No newline at end of file diff --git a/tests/cases/conformance/es6/computedPropertyNames/ComputedPropertyName2_es6.ts b/tests/cases/conformance/es6/computedPropertyNames/ComputedPropertyName2_es6.ts deleted file mode 100644 index 34c9d6d918a..00000000000 --- a/tests/cases/conformance/es6/computedPropertyNames/ComputedPropertyName2_es6.ts +++ /dev/null @@ -1 +0,0 @@ -var v = { [e]: 1 }; \ No newline at end of file diff --git a/tests/cases/conformance/es6/computedPropertyNames/ComputedPropertyName3_es6.ts b/tests/cases/conformance/es6/computedPropertyNames/ComputedPropertyName3_es6.ts deleted file mode 100644 index 08ad781e2ba..00000000000 --- a/tests/cases/conformance/es6/computedPropertyNames/ComputedPropertyName3_es6.ts +++ /dev/null @@ -1 +0,0 @@ -var v = { [e]() { } }; \ No newline at end of file diff --git a/tests/cases/conformance/es6/computedPropertyNames/ComputedPropertyName4_es6.ts b/tests/cases/conformance/es6/computedPropertyNames/ComputedPropertyName4_es6.ts deleted file mode 100644 index d5a331ebb4c..00000000000 --- a/tests/cases/conformance/es6/computedPropertyNames/ComputedPropertyName4_es6.ts +++ /dev/null @@ -1 +0,0 @@ -var v = { get [e]() { } }; \ No newline at end of file diff --git a/tests/cases/conformance/es6/computedPropertyNames/ComputedPropertyName5_es6.ts b/tests/cases/conformance/es6/computedPropertyNames/ComputedPropertyName5_es6.ts deleted file mode 100644 index a254f65ee67..00000000000 --- a/tests/cases/conformance/es6/computedPropertyNames/ComputedPropertyName5_es6.ts +++ /dev/null @@ -1 +0,0 @@ -var v = { public get [e]() { } }; \ No newline at end of file diff --git a/tests/cases/conformance/es6/computedPropertyNames/ComputedPropertyName6_es6.ts b/tests/cases/conformance/es6/computedPropertyNames/ComputedPropertyName6_es6.ts deleted file mode 100644 index c09627a0d46..00000000000 --- a/tests/cases/conformance/es6/computedPropertyNames/ComputedPropertyName6_es6.ts +++ /dev/null @@ -1 +0,0 @@ -var v = { [e]: 1, [e + e]: 2 }; \ No newline at end of file diff --git a/tests/cases/conformance/es6/computedPropertyNames/ComputedPropertyName7_es6.ts b/tests/cases/conformance/es6/computedPropertyNames/ComputedPropertyName7_es6.ts deleted file mode 100644 index b23944da796..00000000000 --- a/tests/cases/conformance/es6/computedPropertyNames/ComputedPropertyName7_es6.ts +++ /dev/null @@ -1,3 +0,0 @@ -class C { - [e] -} \ No newline at end of file diff --git a/tests/cases/conformance/es6/computedPropertyNames/ComputedPropertyName8_es6.ts b/tests/cases/conformance/es6/computedPropertyNames/ComputedPropertyName8_es6.ts deleted file mode 100644 index 18f1fd61276..00000000000 --- a/tests/cases/conformance/es6/computedPropertyNames/ComputedPropertyName8_es6.ts +++ /dev/null @@ -1,3 +0,0 @@ -class C { - public [e] -} \ No newline at end of file diff --git a/tests/cases/conformance/es6/computedPropertyNames/ComputedPropertyName9_es6.ts b/tests/cases/conformance/es6/computedPropertyNames/ComputedPropertyName9_es6.ts deleted file mode 100644 index 18e290722aa..00000000000 --- a/tests/cases/conformance/es6/computedPropertyNames/ComputedPropertyName9_es6.ts +++ /dev/null @@ -1,3 +0,0 @@ -class C { - [e]: Type -} \ No newline at end of file From f6266fc99ed5462d0f3702d029d2bf33aee62b5d Mon Sep 17 00:00:00 2001 From: Jason Freeman Date: Wed, 19 Nov 2014 15:19:18 -0800 Subject: [PATCH 070/195] Checker refactor for FunctionLike and VariableOrProperty --- src/compiler/binder.ts | 15 +- src/compiler/checker.ts | 152 ++++++++++-------- src/compiler/parser.ts | 3 +- src/compiler/types.ts | 8 +- .../reference/computedPropertyNames1.js | 4 +- .../reference/computedPropertyNames1.types | 12 ++ ...omputedPropertyNamesOnOverloads.errors.txt | 16 ++ .../parserComputedPropertyName11.errors.txt | 5 +- ...parserES5ComputedPropertyName11.errors.txt | 5 +- .../computedPropertyNames1.ts | 2 +- 10 files changed, 134 insertions(+), 88 deletions(-) create mode 100644 tests/baselines/reference/computedPropertyNames1.types create mode 100644 tests/baselines/reference/computedPropertyNamesOnOverloads.errors.txt diff --git a/src/compiler/binder.ts b/src/compiler/binder.ts index 1a1075d9d9e..195782a9e1f 100644 --- a/src/compiler/binder.ts +++ b/src/compiler/binder.ts @@ -53,6 +53,10 @@ module ts { } } + export function hasUnknownComputedName(declaration: Declaration): boolean { + return declaration.name && declaration.name.kind === SyntaxKind.ComputedPropertyName; + } + export function bindSourceFile(file: SourceFile) { var parent: Node; @@ -84,13 +88,14 @@ module ts { if (symbolKind & SymbolFlags.Value && !symbol.valueDeclaration) symbol.valueDeclaration = node; } - // TODO(jfreeman): Implement getDeclarationName for property name + // Should not be called on a declaration with a computed property name. function getDeclarationName(node: Declaration): string { if (node.name) { if (node.kind === SyntaxKind.ModuleDeclaration && node.name.kind === SyntaxKind.StringLiteral) { return '"' + (node.name).text + '"'; } - return (node.name).text; + Debug.assert(node.name.kind !== SyntaxKind.ComputedPropertyName); + return (node.name).text; } switch (node.kind) { case SyntaxKind.ConstructorType: @@ -111,6 +116,12 @@ module ts { } function declareSymbol(symbols: SymbolTable, parent: Symbol, node: Declaration, includes: SymbolFlags, excludes: SymbolFlags): Symbol { + // Nodes with computed property names will not get symbols, because the type checker + // does not make properties for them. + if (node.name && node.name.kind === SyntaxKind.ComputedPropertyName) { + return undefined; + } + var name = getDeclarationName(node); if (name !== undefined) { var symbol = hasProperty(symbols, name) ? symbols[name] : (symbols[name] = createSymbol(0, name)); diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index 5ee9fa4ab3e..f4a94f854f7 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -1663,7 +1663,7 @@ module ts { if (declaration.kind === SyntaxKind.Parameter) { var func = declaration.parent; // For a parameter of a set accessor, use the type of the get accessor if one is present - if (func.kind === SyntaxKind.SetAccessor) { + if (func.kind === SyntaxKind.SetAccessor && !hasUnknownComputedName(func)) { var getter = getDeclarationOfKind(declaration.parent.symbol, SyntaxKind.GetAccessor); if (getter) { return getReturnTypeOfSignature(getSignatureFromDeclaration(getter)); @@ -2531,7 +2531,7 @@ module ts { else { // TypeScript 1.0 spec (April 2014): // If only one accessor includes a type annotation, the other behaves as if it had the same type annotation. - if (declaration.kind === SyntaxKind.GetAccessor) { + if (declaration.kind === SyntaxKind.GetAccessor && !hasUnknownComputedName(declaration)) { var setter = getDeclarationOfKind(declaration.symbol, SyntaxKind.SetAccessor); returnType = getAnnotatedAccessorType(setter); } @@ -6648,9 +6648,6 @@ module ts { checkSourceElement(node.type); } if (fullTypeCheck) { - checkCollisionWithCapturedSuperVariable(node, node.name); - checkCollisionWithCapturedThisVariable(node, node.name); - checkCollisionWithRequireExportsInGeneratedCode(node, node.name); checkCollisionWithArgumentsInGeneratedCode(node); if (compilerOptions.noImplicitAny && !node.type) { switch (node.kind) { @@ -6711,17 +6708,14 @@ module ts { } function checkPropertyDeclaration(node: PropertyDeclaration) { - // TODO - checkVariableDeclaration(node); + checkVariableOrPropertyCommon(node); } function checkMethodDeclaration(node: MethodDeclaration) { - // TODO - checkFunctionDeclaration(node); + checkFunctionLikeDeclaration(node); } function checkConstructorDeclaration(node: ConstructorDeclaration) { - // TODO checkSignatureDeclaration(node); checkSourceElement(node.body); @@ -6812,29 +6806,32 @@ module ts { } } - // TypeScript 1.0 spec (April 2014): 8.4.3 - // Accessors for the same member name must specify the same accessibility. - var otherKind = node.kind === SyntaxKind.GetAccessor ? SyntaxKind.SetAccessor : SyntaxKind.GetAccessor; - var otherAccessor = getDeclarationOfKind(node.symbol, otherKind); - if (otherAccessor) { - if (((node.flags & NodeFlags.AccessibilityModifier) !== (otherAccessor.flags & NodeFlags.AccessibilityModifier))) { - error(node.name, Diagnostics.Getter_and_setter_accessors_do_not_agree_in_visibility); - } + if (!hasUnknownComputedName(node)) { + // TypeScript 1.0 spec (April 2014): 8.4.3 + // Accessors for the same member name must specify the same accessibility. + var otherKind = node.kind === SyntaxKind.GetAccessor ? SyntaxKind.SetAccessor : SyntaxKind.GetAccessor; + var otherAccessor = getDeclarationOfKind(node.symbol, otherKind); + if (otherAccessor) { + if (((node.flags & NodeFlags.AccessibilityModifier) !== (otherAccessor.flags & NodeFlags.AccessibilityModifier))) { + error(node.name, Diagnostics.Getter_and_setter_accessors_do_not_agree_in_visibility); + } - var thisType = getAnnotatedAccessorType(node); - var otherType = getAnnotatedAccessorType(otherAccessor); - // TypeScript 1.0 spec (April 2014): 4.5 - // If both accessors include type annotations, the specified types must be identical. - if (thisType && otherType) { - if (!isTypeIdenticalTo(thisType, otherType)) { - error(node, Diagnostics.get_and_set_accessor_must_have_the_same_type); + var thisType = getAnnotatedAccessorType(node); + var otherType = getAnnotatedAccessorType(otherAccessor); + // TypeScript 1.0 spec (April 2014): 4.5 + // If both accessors include type annotations, the specified types must be identical. + if (thisType && otherType) { + if (!isTypeIdenticalTo(thisType, otherType)) { + error(node, Diagnostics.get_and_set_accessor_must_have_the_same_type); + } } } + + checkAndStoreTypeOfAccessors(getSymbolOfNode(node)); } } - checkFunctionDeclaration(node); - checkAndStoreTypeOfAccessors(getSymbolOfNode(node)); + checkFunctionLikeDeclaration(node); } function checkTypeReference(node: TypeReferenceNode) { @@ -7088,7 +7085,7 @@ module ts { } if (duplicateFunctionDeclaration) { - forEach( declarations, declaration => { + forEach(declarations, declaration => { error(declaration.name, Diagnostics.Duplicate_function_implementation); }); } @@ -7204,26 +7201,37 @@ module ts { } } - function checkFunctionDeclaration(node: FunctionLikeDeclaration): void { + function checkFunctionDeclaration(node: FunctionDeclaration): void { + checkFunctionLikeDeclaration(node); + if (fullTypeCheck) { + checkCollisionWithCapturedSuperVariable(node, node.name); + checkCollisionWithCapturedThisVariable(node, node.name); + checkCollisionWithRequireExportsInGeneratedCode(node, node.name); + } + } + + function checkFunctionLikeDeclaration(node: FunctionLikeDeclaration): void { checkSignatureDeclaration(node); - var symbol = getSymbolOfNode(node); - // first we want to check the local symbol that contain this declaration - // - if node.localSymbol !== undefined - this is current declaration is exported and localSymbol points to the local symbol - // - if node.localSymbol === undefined - this node is non-exported so we can just pick the result of getSymbolOfNode - var localSymbol = node.localSymbol || symbol; + if (!hasUnknownComputedName(node)) { + // first we want to check the local symbol that contain this declaration + // - if node.localSymbol !== undefined - this is current declaration is exported and localSymbol points to the local symbol + // - if node.localSymbol === undefined - this node is non-exported so we can just pick the result of getSymbolOfNode + var symbol = getSymbolOfNode(node); + var localSymbol = node.localSymbol || symbol; - var firstDeclaration = getDeclarationOfKind(localSymbol, node.kind); - // Only type check the symbol once - if (node === firstDeclaration) { - checkFunctionOrConstructorSymbol(localSymbol); - } + var firstDeclaration = getDeclarationOfKind(localSymbol, node.kind); + // Only type check the symbol once + if (node === firstDeclaration) { + checkFunctionOrConstructorSymbol(localSymbol); + } - if (symbol.parent) { - // run check once for the first declaration - if (getDeclarationOfKind(symbol, node.kind) === node) { - // run check on export symbol to check that modifiers agree across all exported declarations - checkFunctionOrConstructorSymbol(symbol); + if (symbol.parent) { + // run check once for the first declaration + if (getDeclarationOfKind(symbol, node.kind) === node) { + // run check on export symbol to check that modifiers agree across all exported declarations + checkFunctionOrConstructorSymbol(symbol); + } } } @@ -7344,9 +7352,8 @@ module ts { } } - // TODO(jfreeman): Decide what to do for computed properties - function needCollisionCheckForIdentifier(node: Node, identifier: DeclarationName, name: string): boolean { - if (!(identifier && (identifier).text === name)) { + function needCollisionCheckForIdentifier(node: Node, identifier: Identifier, name: string): boolean { + if (!(identifier && identifier.text === name)) { return false; } @@ -7371,8 +7378,7 @@ module ts { return true; } - // TODO(jfreeman): Decide what to do for computed properties - function checkCollisionWithCapturedThisVariable(node: Node, name: DeclarationName): void { + function checkCollisionWithCapturedThisVariable(node: Node, name: Identifier): void { if (!needCollisionCheckForIdentifier(node, name, "_this")) { return; } @@ -7397,7 +7403,7 @@ module ts { } } - function checkCollisionWithCapturedSuperVariable(node: Node, name: DeclarationName) { + function checkCollisionWithCapturedSuperVariable(node: Node, name: Identifier) { if (!needCollisionCheckForIdentifier(node, name, "_super")) { return; } @@ -7420,8 +7426,7 @@ module ts { } } - // TODO(jfreeman): Decide what to do for computed properties - function checkCollisionWithRequireExportsInGeneratedCode(node: Node, name: DeclarationName) { + function checkCollisionWithRequireExportsInGeneratedCode(node: Node, name: Identifier) { if (!needCollisionCheckForIdentifier(node, name, "require") && !needCollisionCheckForIdentifier(node, name, "exports")) { return; } @@ -7472,40 +7477,49 @@ module ts { } } - function checkVariableDeclaration(node: VariableDeclaration | PropertyDeclaration) { + function checkVariableOrPropertyCommon(node: VariableDeclaration | PropertyDeclaration) { checkSourceElement(node.type); - checkExportsOnMergedDeclarations(node); if (fullTypeCheck) { var symbol = getSymbolOfNode(node); - - var typeOfValueDeclaration = getTypeOfVariableOrParameterOrProperty(symbol); var type: Type; - var useTypeFromValueDeclaration = node === symbol.valueDeclaration; - if (useTypeFromValueDeclaration) { - type = typeOfValueDeclaration; - } - else { + if (hasUnknownComputedName(node) || symbol.valueDeclaration !== node) { type = getTypeOfVariableOrPropertyDeclaration(node); } + else { + type = getTypeOfVariableOrParameterOrProperty(symbol); + } + if (node.initializer && !(getNodeLinks(node.initializer).flags & NodeCheckFlags.TypeChecked)) { + // Use default messages + checkTypeAssignableTo(checkAndMarkExpression(node.initializer), type, node, /*headMessage*/ undefined); + } + return type; + } + + // All callers who expect a value to be returned are in fullTypeCheck mode. + // If we are not in type check mode, no need to get the type. + return undefined; + } + + function checkVariableDeclaration(node: VariableDeclaration) { + var type = checkVariableOrPropertyCommon(node); + if (fullTypeCheck) { + checkExportsOnMergedDeclarations(node); if (node.initializer) { - if (!(getNodeLinks(node.initializer).flags & NodeCheckFlags.TypeChecked)) { - // Use default messages - checkTypeAssignableTo(checkAndMarkExpression(node.initializer), type, node, /*headMessage*/ undefined); - } - //TODO(jfreeman): Check that it is not a computed property - checkCollisionWithConstDeclarations(node); + checkCollisionWithConstDeclarations(node); } checkCollisionWithCapturedSuperVariable(node, node.name); checkCollisionWithCapturedThisVariable(node, node.name); checkCollisionWithRequireExportsInGeneratedCode(node, node.name); - if (!useTypeFromValueDeclaration) { + var symbol = getSymbolOfNode(node); + if (node !== symbol.valueDeclaration) { // TypeScript 1.0 spec (April 2014): 5.1 // Multiple declarations for the same variable name in the same declaration space are permitted, // provided that each declaration associates the same type with the variable. + var typeOfValueDeclaration = getTypeOfVariableOrParameterOrProperty(symbol); if (typeOfValueDeclaration !== unknownType && type !== unknownType && !isTypeIdenticalTo(typeOfValueDeclaration, type)) { error(node.name, Diagnostics.Subsequent_variable_declarations_must_have_the_same_type_Variable_0_must_be_of_type_1_but_here_has_type_2, declarationNameToString(node.name), typeToString(typeOfValueDeclaration), typeToString(type)); } @@ -8365,7 +8379,7 @@ module ts { case SyntaxKind.ParenType: return checkSourceElement((node).type); case SyntaxKind.FunctionDeclaration: - return checkFunctionDeclaration(node); + return checkFunctionDeclaration(node); case SyntaxKind.Block: return checkBlock(node); case SyntaxKind.FunctionBlock: diff --git a/src/compiler/parser.ts b/src/compiler/parser.ts index 76cabe94e2e..5b3d5de82ba 100644 --- a/src/compiler/parser.ts +++ b/src/compiler/parser.ts @@ -71,8 +71,9 @@ module ts { return identifier.length >= 3 && identifier.charCodeAt(0) === CharacterCodes._ && identifier.charCodeAt(1) === CharacterCodes._ && identifier.charCodeAt(2) === CharacterCodes._ ? identifier.substr(1) : identifier; } - // TODO(jfreeman): Implement declarationNameToString for computed properties // Return display name of an identifier + // Computed property names will just be emitted as "[]", where is the source + // text of the expression in the computed property. export function declarationNameToString(name: DeclarationName) { return name.kind === SyntaxKind.Missing ? "(Missing)" : getTextOfNode(name); } diff --git a/src/compiler/types.ts b/src/compiler/types.ts index 108e00e48b4..687adb5f119 100644 --- a/src/compiler/types.ts +++ b/src/compiler/types.ts @@ -371,11 +371,9 @@ module ts { * Examples: * FunctionDeclaration * MethodDeclaration - * ConstructorDeclaration * AccessorDeclaration - * FunctionExpression */ - export interface FunctionLikeDeclaration extends Declaration, ParsedSignature { + export interface FunctionLikeDeclaration extends SignatureDeclaration { asteriskToken?: Node; body?: Block | Expression; } @@ -389,7 +387,7 @@ module ts { body?: Block; } - export interface ConstructorDeclaration extends FunctionLikeDeclaration { + export interface ConstructorDeclaration extends Node, ParsedSignature { body?: Block; } @@ -458,7 +456,7 @@ module ts { whenFalse: Expression; } - export interface FunctionExpression extends Expression, FunctionLikeDeclaration { + export interface FunctionExpression extends Expression, SignatureDeclaration { name?: Identifier; body: Block | Expression; // Required, whereas the member inherited from FunctionDeclaration is optional } diff --git a/tests/baselines/reference/computedPropertyNames1.js b/tests/baselines/reference/computedPropertyNames1.js index d5e3f3e0392..8f3e448d698 100644 --- a/tests/baselines/reference/computedPropertyNames1.js +++ b/tests/baselines/reference/computedPropertyNames1.js @@ -1,7 +1,7 @@ //// [computedPropertyNames1.ts] var v = { get [0 + 1]() { return 0 }, - set [0 + 1](v) { } + set [0 + 1](v: string) { } //No error } //// [computedPropertyNames1.js] @@ -10,5 +10,5 @@ var v = { return 0; }, set [0 + 1](v) { - } + } //No error }; diff --git a/tests/baselines/reference/computedPropertyNames1.types b/tests/baselines/reference/computedPropertyNames1.types new file mode 100644 index 00000000000..b44aa3c69d0 --- /dev/null +++ b/tests/baselines/reference/computedPropertyNames1.types @@ -0,0 +1,12 @@ +=== tests/cases/conformance/es6/computedProperties/computedPropertyNames1.ts === +var v = { +>v : {} +>{ get [0 + 1]() { return 0 }, set [0 + 1](v: string) { } //No error} : {} + + get [0 + 1]() { return 0 }, +>0 + 1 : number + + set [0 + 1](v: string) { } //No error +>0 + 1 : number +>v : string +} diff --git a/tests/baselines/reference/computedPropertyNamesOnOverloads.errors.txt b/tests/baselines/reference/computedPropertyNamesOnOverloads.errors.txt new file mode 100644 index 00000000000..b3c2957a13f --- /dev/null +++ b/tests/baselines/reference/computedPropertyNamesOnOverloads.errors.txt @@ -0,0 +1,16 @@ +tests/cases/conformance/es6/computedProperties/computedPropertyNamesOnOverloads.ts(4,5): error TS1168: Computed property names are not allowed in method overloads. +tests/cases/conformance/es6/computedProperties/computedPropertyNamesOnOverloads.ts(5,5): error TS1168: Computed property names are not allowed in method overloads. + + +==== tests/cases/conformance/es6/computedProperties/computedPropertyNamesOnOverloads.ts (2 errors) ==== + var methodName = "method"; + var accessorName = "accessor"; + class C { + [methodName](v: string); + ~~~~~~~~~~~~ +!!! error TS1168: Computed property names are not allowed in method overloads. + [methodName](); + ~~~~~~~~~~~~ +!!! error TS1168: Computed property names are not allowed in method overloads. + [methodName](v?: string) { } + } \ No newline at end of file diff --git a/tests/baselines/reference/parserComputedPropertyName11.errors.txt b/tests/baselines/reference/parserComputedPropertyName11.errors.txt index a47865ba3f8..f47aa75031d 100644 --- a/tests/baselines/reference/parserComputedPropertyName11.errors.txt +++ b/tests/baselines/reference/parserComputedPropertyName11.errors.txt @@ -1,12 +1,9 @@ tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName11.ts(2,4): error TS1168: Computed property names are not allowed in method overloads. -tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName11.ts(2,4): error TS2391: Function implementation is missing or not immediately following the declaration. -==== tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName11.ts (2 errors) ==== +==== tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName11.ts (1 errors) ==== class C { [e](); ~~~ !!! error TS1168: Computed property names are not allowed in method overloads. - ~~~ -!!! error TS2391: Function implementation is missing or not immediately following the declaration. } \ No newline at end of file diff --git a/tests/baselines/reference/parserES5ComputedPropertyName11.errors.txt b/tests/baselines/reference/parserES5ComputedPropertyName11.errors.txt index f37cf910a15..124db7da75a 100644 --- a/tests/baselines/reference/parserES5ComputedPropertyName11.errors.txt +++ b/tests/baselines/reference/parserES5ComputedPropertyName11.errors.txt @@ -1,12 +1,9 @@ tests/cases/conformance/parser/ecmascript5/ComputedPropertyNames/parserES5ComputedPropertyName11.ts(2,4): error TS1168: Computed property names are not allowed in method overloads. -tests/cases/conformance/parser/ecmascript5/ComputedPropertyNames/parserES5ComputedPropertyName11.ts(2,4): error TS2391: Function implementation is missing or not immediately following the declaration. -==== tests/cases/conformance/parser/ecmascript5/ComputedPropertyNames/parserES5ComputedPropertyName11.ts (2 errors) ==== +==== tests/cases/conformance/parser/ecmascript5/ComputedPropertyNames/parserES5ComputedPropertyName11.ts (1 errors) ==== class C { [e](); ~~~ !!! error TS1168: Computed property names are not allowed in method overloads. - ~~~ -!!! error TS2391: Function implementation is missing or not immediately following the declaration. } \ No newline at end of file diff --git a/tests/cases/conformance/es6/computedProperties/computedPropertyNames1.ts b/tests/cases/conformance/es6/computedProperties/computedPropertyNames1.ts index b35ab29b129..b260bd8c539 100644 --- a/tests/cases/conformance/es6/computedProperties/computedPropertyNames1.ts +++ b/tests/cases/conformance/es6/computedProperties/computedPropertyNames1.ts @@ -1,5 +1,5 @@ // @target: es6 var v = { get [0 + 1]() { return 0 }, - set [0 + 1](v) { } + set [0 + 1](v: string) { } //No error } \ No newline at end of file From d43ed2f10ea2167a90850088418f0a46c4c8d4cf Mon Sep 17 00:00:00 2001 From: Jason Freeman Date: Tue, 25 Nov 2014 12:03:55 -0800 Subject: [PATCH 071/195] Fix merge issues --- src/compiler/parser.ts | 8 ++++++-- .../FunctionDeclaration8_es6.errors.txt | 17 ++++------------- .../FunctionDeclaration9_es6.errors.txt | 16 +++++----------- ...unctionPropertyAssignments5_es6.errors.txt | 17 ++++------------- .../MemberFunctionDeclaration3_es6.errors.txt | 19 +++++-------------- 5 files changed, 24 insertions(+), 53 deletions(-) diff --git a/src/compiler/parser.ts b/src/compiler/parser.ts index 5b3d5de82ba..d3c179b5381 100644 --- a/src/compiler/parser.ts +++ b/src/compiler/parser.ts @@ -1272,17 +1272,21 @@ module ts { function parseContextualModifier(t: SyntaxKind): boolean { return token === t && tryParse(() => { nextToken(); - return token === SyntaxKind.OpenBracketToken || isLiteralPropertyName(); + return canFollowModifier(); }); } function parseAnyContextualModifier(): boolean { return isModifier(token) && tryParse(() => { nextToken(); - return token === SyntaxKind.OpenBracketToken || isLiteralPropertyName(); + return canFollowModifier(); }); } + function canFollowModifier(): boolean { + return token === SyntaxKind.OpenBracketToken || token === SyntaxKind.AsteriskToken || isLiteralPropertyName(); + } + // True if positioned at the start of a list element function isListElement(kind: ParsingContext, inErrorRecovery: boolean): boolean { switch (kind) { diff --git a/tests/baselines/reference/FunctionDeclaration8_es6.errors.txt b/tests/baselines/reference/FunctionDeclaration8_es6.errors.txt index a30b8d80310..5232c8f1608 100644 --- a/tests/baselines/reference/FunctionDeclaration8_es6.errors.txt +++ b/tests/baselines/reference/FunctionDeclaration8_es6.errors.txt @@ -1,16 +1,7 @@ -tests/cases/conformance/es6/functionDeclarations/FunctionDeclaration8_es6.ts(1,11): error TS1136: Property assignment expected. -tests/cases/conformance/es6/functionDeclarations/FunctionDeclaration8_es6.ts(1,18): error TS1005: ',' expected. -tests/cases/conformance/es6/functionDeclarations/FunctionDeclaration8_es6.ts(1,24): error TS1128: Declaration or statement expected. -tests/cases/conformance/es6/functionDeclarations/FunctionDeclaration8_es6.ts(1,12): error TS2304: Cannot find name 'yield'. +tests/cases/conformance/es6/functionDeclarations/FunctionDeclaration8_es6.ts(1,11): error TS1167: Computed property names are only available when targeting ECMAScript 6 and higher. -==== tests/cases/conformance/es6/functionDeclarations/FunctionDeclaration8_es6.ts (4 errors) ==== +==== tests/cases/conformance/es6/functionDeclarations/FunctionDeclaration8_es6.ts (1 errors) ==== var v = { [yield]: foo } - ~ -!!! error TS1136: Property assignment expected. - ~ -!!! error TS1005: ',' expected. - ~ -!!! error TS1128: Declaration or statement expected. - ~~~~~ -!!! error TS2304: Cannot find name 'yield'. \ No newline at end of file + ~~~~~~~ +!!! error TS1167: Computed property names are only available when targeting ECMAScript 6 and higher. \ No newline at end of file diff --git a/tests/baselines/reference/FunctionDeclaration9_es6.errors.txt b/tests/baselines/reference/FunctionDeclaration9_es6.errors.txt index b4cf83a7b6c..1288a09e47f 100644 --- a/tests/baselines/reference/FunctionDeclaration9_es6.errors.txt +++ b/tests/baselines/reference/FunctionDeclaration9_es6.errors.txt @@ -1,15 +1,9 @@ -tests/cases/conformance/es6/functionDeclarations/FunctionDeclaration9_es6.ts(2,13): error TS1136: Property assignment expected. -tests/cases/conformance/es6/functionDeclarations/FunctionDeclaration9_es6.ts(2,20): error TS1005: ',' expected. -tests/cases/conformance/es6/functionDeclarations/FunctionDeclaration9_es6.ts(3,1): error TS1128: Declaration or statement expected. +tests/cases/conformance/es6/functionDeclarations/FunctionDeclaration9_es6.ts(2,13): error TS1167: Computed property names are only available when targeting ECMAScript 6 and higher. -==== tests/cases/conformance/es6/functionDeclarations/FunctionDeclaration9_es6.ts (3 errors) ==== +==== tests/cases/conformance/es6/functionDeclarations/FunctionDeclaration9_es6.ts (1 errors) ==== function * foo() { var v = { [yield]: foo } - ~ -!!! error TS1136: Property assignment expected. - ~ -!!! error TS1005: ',' expected. - } - ~ -!!! error TS1128: Declaration or statement expected. \ No newline at end of file + ~~~~~~~ +!!! error TS1167: Computed property names are only available when targeting ECMAScript 6 and higher. + } \ No newline at end of file diff --git a/tests/baselines/reference/FunctionPropertyAssignments5_es6.errors.txt b/tests/baselines/reference/FunctionPropertyAssignments5_es6.errors.txt index 961dabaa996..430dd503667 100644 --- a/tests/baselines/reference/FunctionPropertyAssignments5_es6.errors.txt +++ b/tests/baselines/reference/FunctionPropertyAssignments5_es6.errors.txt @@ -1,16 +1,7 @@ -tests/cases/conformance/es6/functionPropertyAssignments/FunctionPropertyAssignments5_es6.ts(1,12): error TS1003: Identifier expected. -tests/cases/conformance/es6/functionPropertyAssignments/FunctionPropertyAssignments5_es6.ts(1,22): error TS1005: ',' expected. -tests/cases/conformance/es6/functionPropertyAssignments/FunctionPropertyAssignments5_es6.ts(1,26): error TS1128: Declaration or statement expected. -tests/cases/conformance/es6/functionPropertyAssignments/FunctionPropertyAssignments5_es6.ts(1,13): error TS2304: Cannot find name 'foo'. +tests/cases/conformance/es6/functionPropertyAssignments/FunctionPropertyAssignments5_es6.ts(1,12): error TS1167: Computed property names are only available when targeting ECMAScript 6 and higher. -==== tests/cases/conformance/es6/functionPropertyAssignments/FunctionPropertyAssignments5_es6.ts (4 errors) ==== +==== tests/cases/conformance/es6/functionPropertyAssignments/FunctionPropertyAssignments5_es6.ts (1 errors) ==== var v = { *[foo()]() { } } - ~ -!!! error TS1003: Identifier expected. - ~ -!!! error TS1005: ',' expected. - ~ -!!! error TS1128: Declaration or statement expected. - ~~~ -!!! error TS2304: Cannot find name 'foo'. \ No newline at end of file + ~~~~~~~ +!!! error TS1167: Computed property names are only available when targeting ECMAScript 6 and higher. \ No newline at end of file diff --git a/tests/baselines/reference/MemberFunctionDeclaration3_es6.errors.txt b/tests/baselines/reference/MemberFunctionDeclaration3_es6.errors.txt index b3a2de4eec6..d1d3c3c1223 100644 --- a/tests/baselines/reference/MemberFunctionDeclaration3_es6.errors.txt +++ b/tests/baselines/reference/MemberFunctionDeclaration3_es6.errors.txt @@ -1,18 +1,9 @@ -tests/cases/conformance/es6/memberFunctionDeclarations/MemberFunctionDeclaration3_es6.ts(2,5): error TS1003: Identifier expected. -tests/cases/conformance/es6/memberFunctionDeclarations/MemberFunctionDeclaration3_es6.ts(2,10): error TS1005: ';' expected. -tests/cases/conformance/es6/memberFunctionDeclarations/MemberFunctionDeclaration3_es6.ts(2,13): error TS1005: '=>' expected. -tests/cases/conformance/es6/memberFunctionDeclarations/MemberFunctionDeclaration3_es6.ts(3,1): error TS1128: Declaration or statement expected. +tests/cases/conformance/es6/memberFunctionDeclarations/MemberFunctionDeclaration3_es6.ts(2,5): error TS1167: Computed property names are only available when targeting ECMAScript 6 and higher. -==== tests/cases/conformance/es6/memberFunctionDeclarations/MemberFunctionDeclaration3_es6.ts (4 errors) ==== +==== tests/cases/conformance/es6/memberFunctionDeclarations/MemberFunctionDeclaration3_es6.ts (1 errors) ==== class C { *[foo]() { } - ~ -!!! error TS1003: Identifier expected. - ~ -!!! error TS1005: ';' expected. - ~ -!!! error TS1005: '=>' expected. - } - ~ -!!! error TS1128: Declaration or statement expected. \ No newline at end of file + ~~~~~ +!!! error TS1167: Computed property names are only available when targeting ECMAScript 6 and higher. + } \ No newline at end of file From 480883b227c2cdebd138c56ff2160d8310272f07 Mon Sep 17 00:00:00 2001 From: Jason Freeman Date: Tue, 25 Nov 2014 14:08:21 -0800 Subject: [PATCH 072/195] Skip computed properties in the nav bar --- computed.txt | 12 ----------- src/services/navigationBar.ts | 15 +++++++++----- .../navigationItemsComputedProperties.ts | 20 +++++++++++++++++++ ...iptLexicalStructureItemsModuleVariables.ts | 1 - 4 files changed, 30 insertions(+), 18 deletions(-) delete mode 100644 computed.txt create mode 100644 tests/cases/fourslash/navigationItemsComputedProperties.ts diff --git a/computed.txt b/computed.txt deleted file mode 100644 index a8869ad7d9d..00000000000 --- a/computed.txt +++ /dev/null @@ -1,12 +0,0 @@ -Parse computed expressions and add tests -Disallow computed expressions in class instance properties -Disallow computed expressions in object literal properties, methods, or accessors -Disallow in interfaces - -Emit computed properties for classes and object literals -Discuss down level support for computed properties - -Tests that need to move: -tests\cases\conformance\parser\ecmascript5\IndexSignatures\parserIndexSignature4.ts -tests\cases\conformance\parser\ecmascript5\IndexSignatures\parserIndexSignature5.ts -tests\cases\conformance\parser\ecmascript5\IndexSignatures\parserIndexSignature11.ts \ No newline at end of file diff --git a/src/services/navigationBar.ts b/src/services/navigationBar.ts index 6e4303d0cd8..deb779bea2c 100644 --- a/src/services/navigationBar.ts +++ b/src/services/navigationBar.ts @@ -377,9 +377,10 @@ module ts.NavigationBar { // Add the constructor parameters in as children of the class (for property parameters). // Note that *all* parameters will be added to the nodes array, but parameters that // are not properties will be filtered out later by createChildItem. - var nodes: Node[] = constructor - ? node.members.concat(constructor.parameters) - : node.members; + var nodes: Node[] = removeComputedProperties(node); + if (constructor) { + nodes.push.apply(nodes, constructor.parameters); + } var childItems = getItemsWorker(sortNodes(nodes), createChildItem); } @@ -394,7 +395,7 @@ module ts.NavigationBar { } function createEnumItem(node: EnumDeclaration): ts.NavigationBarItem { - var childItems = getItemsWorker(sortNodes(node.members), createChildItem); + var childItems = getItemsWorker(sortNodes(removeComputedProperties(node)), createChildItem); return getNavigationBarItem( node.name.text, ts.ScriptElementKind.enumElement, @@ -405,7 +406,7 @@ module ts.NavigationBar { } function createIterfaceItem(node: InterfaceDeclaration): ts.NavigationBarItem { - var childItems = getItemsWorker(sortNodes(node.members), createChildItem); + var childItems = getItemsWorker(sortNodes(removeComputedProperties(node)), createChildItem); return getNavigationBarItem( node.name.text, ts.ScriptElementKind.interfaceElement, @@ -416,6 +417,10 @@ module ts.NavigationBar { } } + function removeComputedProperties(node: ClassDeclaration | InterfaceDeclaration | EnumDeclaration): Declaration[] { + return filter(node.members, member => member.name === undefined || member.name.kind !== SyntaxKind.ComputedPropertyName); + } + function getInnermostModule(node: ModuleDeclaration): ModuleDeclaration { while (node.body.kind === SyntaxKind.ModuleDeclaration) { node = node.body; diff --git a/tests/cases/fourslash/navigationItemsComputedProperties.ts b/tests/cases/fourslash/navigationItemsComputedProperties.ts new file mode 100644 index 00000000000..8a88966b2ef --- /dev/null +++ b/tests/cases/fourslash/navigationItemsComputedProperties.ts @@ -0,0 +1,20 @@ +/// + +////{| "itemName": "C", "kind": "class", "parentName": "" |} +////class C { +//// {| "itemName": "foo", "kind": "method", "parentName": "C" |} +//// foo() { } +//// ["hi" + "bye"]() { } +//// {| "itemName": "bar", "kind": "method", "parentName": "C" |} +//// bar() { } +////} + +test.markers().forEach(marker => { + verify.navigationItemsListContains( + marker.data.itemName, + marker.data.kind, + marker.data.itemName, + "exact", + marker.fileName, + marker.data.parentName); +}); \ No newline at end of file diff --git a/tests/cases/fourslash/scriptLexicalStructureItemsModuleVariables.ts b/tests/cases/fourslash/scriptLexicalStructureItemsModuleVariables.ts index 481d67a4e28..85bf609105c 100644 --- a/tests/cases/fourslash/scriptLexicalStructureItemsModuleVariables.ts +++ b/tests/cases/fourslash/scriptLexicalStructureItemsModuleVariables.ts @@ -18,7 +18,6 @@ ////module Module1 { //// export var z = 0; ////} -debugger; goTo.marker("file1"); verify.getScriptLexicalStructureListContains("Module1", "module"); verify.getScriptLexicalStructureListContains("x", "var"); From 05668cede70e40178a1dd17b6f00adddf7239d6f Mon Sep 17 00:00:00 2001 From: Cyrus Najmabadi Date: Tue, 25 Nov 2014 17:13:16 -0800 Subject: [PATCH 073/195] Add support for parsing async/await in fidelity. Conflicts: src/services/syntax/SyntaxGenerator.js.map --- .../resources/diagnosticCode.generated.ts | 6 +- .../diagnosticInformationMap.generated.ts | 6 +- .../resources/diagnosticMessages.json | 18 +- src/services/syntax/SyntaxGenerator.js | 581 +++++++++-------- src/services/syntax/SyntaxGenerator.js.map | 4 + src/services/syntax/constants.ts | 18 +- src/services/syntax/parser.ts | 611 ++++++++++++------ src/services/syntax/prettyPrinter.ts | 8 + src/services/syntax/references.ts | 2 +- src/services/syntax/scanner.ts | 6 +- .../syntax/scannerUtilities.generated.ts | 9 +- src/services/syntax/syntaxElement.ts | 4 + src/services/syntax/syntaxFacts.ts | 2 + src/services/syntax/syntaxGenerator.ts | 57 +- .../syntax/syntaxInterfaces.generated.ts | 18 +- src/services/syntax/syntaxKind.ts | 3 + .../syntax/syntaxNodes.concrete.generated.ts | 74 ++- src/services/syntax/syntaxToken.ts | 6 +- src/services/syntax/syntaxTree.ts | 172 +++-- .../syntax/syntaxVisitor.generated.ts | 2 + src/services/syntax/syntaxWalker.generated.ts | 9 + src/services/syntax/utilities.generated.ts | 4 - 22 files changed, 1026 insertions(+), 594 deletions(-) diff --git a/src/services/resources/diagnosticCode.generated.ts b/src/services/resources/diagnosticCode.generated.ts index e5878978fcc..445aa48d5ec 100644 --- a/src/services/resources/diagnosticCode.generated.ts +++ b/src/services/resources/diagnosticCode.generated.ts @@ -20,7 +20,7 @@ module TypeScript { Parameter_cannot_have_question_mark_and_initializer: "Parameter cannot have question mark and initializer.", A_required_parameter_cannot_follow_an_optional_parameter: "A required parameter cannot follow an optional parameter.", Index_signatures_cannot_have_rest_parameters: "Index signatures cannot have rest parameters.", - Index_signature_parameter_cannot_have_accessibility_modifiers: "Index signature parameter cannot have accessibility modifiers.", + Index_signature_parameter_cannot_have_modifiers: "Index signature parameter cannot have modifiers.", Index_signature_parameter_cannot_have_a_question_mark: "Index signature parameter cannot have a question mark.", Index_signature_parameter_cannot_have_an_initializer: "Index signature parameter cannot have an initializer.", Index_signature_must_have_a_type_annotation: "Index signature must have a type annotation.", @@ -99,6 +99,10 @@ module TypeScript { yield_expression_must_be_contained_within_a_generator_declaration: "'yield' expression must be contained within a generator declaration.", Unterminated_regular_expression_literal: "Unterminated regular expression literal.", Unterminated_template_literal: "Unterminated template literal.", + await_expression_must_be_contained_within_an_async_declaration: "'await' expression must be contained within an async declaration.", + async_arrow_function_parameters_must_be_parenthesized: "'async' arrow function parameters must be parenthesized.", + A_generator_declaration_cannot_have_the_async_modifier: "A generator declaration cannot have the 'async' modifier.", + async_modifier_cannot_appear_here: "'async' modifier cannot appear here.", Duplicate_identifier_0: "Duplicate identifier '{0}'.", The_name_0_does_not_exist_in_the_current_scope: "The name '{0}' does not exist in the current scope.", The_name_0_does_not_refer_to_a_value: "The name '{0}' does not refer to a value.", diff --git a/src/services/resources/diagnosticInformationMap.generated.ts b/src/services/resources/diagnosticInformationMap.generated.ts index d6597a008df..3aea88053d3 100644 --- a/src/services/resources/diagnosticInformationMap.generated.ts +++ b/src/services/resources/diagnosticInformationMap.generated.ts @@ -22,7 +22,7 @@ module TypeScript { "Parameter cannot have question mark and initializer.": { "code": 1015, "category": DiagnosticCategory.Error }, "A required parameter cannot follow an optional parameter.": { "code": 1016, "category": DiagnosticCategory.Error }, "Index signatures cannot have rest parameters.": { "code": 1017, "category": DiagnosticCategory.Error }, - "Index signature parameter cannot have accessibility modifiers.": { "code": 1018, "category": DiagnosticCategory.Error }, + "Index signature parameter cannot have modifiers.": { "code": 1018, "category": DiagnosticCategory.Error }, "Index signature parameter cannot have a question mark.": { "code": 1019, "category": DiagnosticCategory.Error }, "Index signature parameter cannot have an initializer.": { "code": 1020, "category": DiagnosticCategory.Error }, "Index signature must have a type annotation.": { "code": 1021, "category": DiagnosticCategory.Error }, @@ -101,6 +101,10 @@ module TypeScript { "'yield' expression must be contained within a generator declaration.": { "code": 1113, "category": DiagnosticCategory.Error }, "Unterminated regular expression literal.": { "code": 1114, "category": DiagnosticCategory.Error }, "Unterminated template literal.": { "code": 1115, "category": DiagnosticCategory.Error }, + "'await' expression must be contained within an 'async' declaration.": { "code": 1116, "category": DiagnosticCategory.Error }, + "'async' arrow function parameters must be parenthesized.": { "code": 1117, "category": DiagnosticCategory.Error }, + "A generator declaration cannot have the 'async' modifier.": { "code": 1118, "category": DiagnosticCategory.Error }, + "'async' modifier cannot appear here.": { "code": 1119, "category": DiagnosticCategory.Error }, "Duplicate identifier '{0}'.": { "code": 2000, "category": DiagnosticCategory.Error }, "The name '{0}' does not exist in the current scope.": { "code": 2001, "category": DiagnosticCategory.Error }, "The name '{0}' does not refer to a value.": { "code": 2002, "category": DiagnosticCategory.Error }, diff --git a/src/services/resources/diagnosticMessages.json b/src/services/resources/diagnosticMessages.json index 724edbd8f3b..4a8c1e23ec7 100644 --- a/src/services/resources/diagnosticMessages.json +++ b/src/services/resources/diagnosticMessages.json @@ -75,7 +75,7 @@ "category": "Error", "code": 1017 }, - "Index signature parameter cannot have accessibility modifiers.": { + "Index signature parameter cannot have modifiers.": { "category": "Error", "code": 1018 }, @@ -391,6 +391,22 @@ "category": "Error", "code": 1115 }, + "'await' expression must be contained within an 'async' declaration.": { + "category": "Error", + "code": 1116 + }, + "'async' arrow function parameters must be parenthesized.": { + "category": "Error", + "code": 1117 + }, + "A generator declaration cannot have the 'async' modifier.": { + "category": "Error", + "code": 1118 + }, + "'async' modifier cannot appear here.": { + "category": "Error", + "code": 1119 + }, "Duplicate identifier '{0}'.": { "category": "Error", "code": 2000 diff --git a/src/services/syntax/SyntaxGenerator.js b/src/services/syntax/SyntaxGenerator.js index 6e1039cb8b0..b4b32899381 100644 --- a/src/services/syntax/SyntaxGenerator.js +++ b/src/services/syntax/SyntaxGenerator.js @@ -472,159 +472,162 @@ var TypeScript; SyntaxKind[SyntaxKind["StaticKeyword"] = 60] = "StaticKeyword"; SyntaxKind[SyntaxKind["YieldKeyword"] = 61] = "YieldKeyword"; SyntaxKind[SyntaxKind["AnyKeyword"] = 62] = "AnyKeyword"; - SyntaxKind[SyntaxKind["BooleanKeyword"] = 63] = "BooleanKeyword"; - SyntaxKind[SyntaxKind["ConstructorKeyword"] = 64] = "ConstructorKeyword"; - SyntaxKind[SyntaxKind["DeclareKeyword"] = 65] = "DeclareKeyword"; - SyntaxKind[SyntaxKind["GetKeyword"] = 66] = "GetKeyword"; - SyntaxKind[SyntaxKind["ModuleKeyword"] = 67] = "ModuleKeyword"; - SyntaxKind[SyntaxKind["RequireKeyword"] = 68] = "RequireKeyword"; - SyntaxKind[SyntaxKind["NumberKeyword"] = 69] = "NumberKeyword"; - SyntaxKind[SyntaxKind["SetKeyword"] = 70] = "SetKeyword"; - SyntaxKind[SyntaxKind["StringKeyword"] = 71] = "StringKeyword"; - SyntaxKind[SyntaxKind["OpenBraceToken"] = 72] = "OpenBraceToken"; - SyntaxKind[SyntaxKind["CloseBraceToken"] = 73] = "CloseBraceToken"; - SyntaxKind[SyntaxKind["OpenParenToken"] = 74] = "OpenParenToken"; - SyntaxKind[SyntaxKind["CloseParenToken"] = 75] = "CloseParenToken"; - SyntaxKind[SyntaxKind["OpenBracketToken"] = 76] = "OpenBracketToken"; - SyntaxKind[SyntaxKind["CloseBracketToken"] = 77] = "CloseBracketToken"; - SyntaxKind[SyntaxKind["DotToken"] = 78] = "DotToken"; - SyntaxKind[SyntaxKind["DotDotDotToken"] = 79] = "DotDotDotToken"; - SyntaxKind[SyntaxKind["SemicolonToken"] = 80] = "SemicolonToken"; - SyntaxKind[SyntaxKind["CommaToken"] = 81] = "CommaToken"; - SyntaxKind[SyntaxKind["LessThanToken"] = 82] = "LessThanToken"; - SyntaxKind[SyntaxKind["GreaterThanToken"] = 83] = "GreaterThanToken"; - SyntaxKind[SyntaxKind["LessThanEqualsToken"] = 84] = "LessThanEqualsToken"; - SyntaxKind[SyntaxKind["GreaterThanEqualsToken"] = 85] = "GreaterThanEqualsToken"; - SyntaxKind[SyntaxKind["EqualsEqualsToken"] = 86] = "EqualsEqualsToken"; - SyntaxKind[SyntaxKind["EqualsGreaterThanToken"] = 87] = "EqualsGreaterThanToken"; - SyntaxKind[SyntaxKind["ExclamationEqualsToken"] = 88] = "ExclamationEqualsToken"; - SyntaxKind[SyntaxKind["EqualsEqualsEqualsToken"] = 89] = "EqualsEqualsEqualsToken"; - SyntaxKind[SyntaxKind["ExclamationEqualsEqualsToken"] = 90] = "ExclamationEqualsEqualsToken"; - SyntaxKind[SyntaxKind["PlusToken"] = 91] = "PlusToken"; - SyntaxKind[SyntaxKind["MinusToken"] = 92] = "MinusToken"; - SyntaxKind[SyntaxKind["AsteriskToken"] = 93] = "AsteriskToken"; - SyntaxKind[SyntaxKind["PercentToken"] = 94] = "PercentToken"; - SyntaxKind[SyntaxKind["PlusPlusToken"] = 95] = "PlusPlusToken"; - SyntaxKind[SyntaxKind["MinusMinusToken"] = 96] = "MinusMinusToken"; - SyntaxKind[SyntaxKind["LessThanLessThanToken"] = 97] = "LessThanLessThanToken"; - SyntaxKind[SyntaxKind["GreaterThanGreaterThanToken"] = 98] = "GreaterThanGreaterThanToken"; - SyntaxKind[SyntaxKind["GreaterThanGreaterThanGreaterThanToken"] = 99] = "GreaterThanGreaterThanGreaterThanToken"; - SyntaxKind[SyntaxKind["AmpersandToken"] = 100] = "AmpersandToken"; - SyntaxKind[SyntaxKind["BarToken"] = 101] = "BarToken"; - SyntaxKind[SyntaxKind["CaretToken"] = 102] = "CaretToken"; - SyntaxKind[SyntaxKind["ExclamationToken"] = 103] = "ExclamationToken"; - SyntaxKind[SyntaxKind["TildeToken"] = 104] = "TildeToken"; - SyntaxKind[SyntaxKind["AmpersandAmpersandToken"] = 105] = "AmpersandAmpersandToken"; - SyntaxKind[SyntaxKind["BarBarToken"] = 106] = "BarBarToken"; - SyntaxKind[SyntaxKind["QuestionToken"] = 107] = "QuestionToken"; - SyntaxKind[SyntaxKind["ColonToken"] = 108] = "ColonToken"; - SyntaxKind[SyntaxKind["EqualsToken"] = 109] = "EqualsToken"; - SyntaxKind[SyntaxKind["PlusEqualsToken"] = 110] = "PlusEqualsToken"; - SyntaxKind[SyntaxKind["MinusEqualsToken"] = 111] = "MinusEqualsToken"; - SyntaxKind[SyntaxKind["AsteriskEqualsToken"] = 112] = "AsteriskEqualsToken"; - SyntaxKind[SyntaxKind["PercentEqualsToken"] = 113] = "PercentEqualsToken"; - SyntaxKind[SyntaxKind["LessThanLessThanEqualsToken"] = 114] = "LessThanLessThanEqualsToken"; - SyntaxKind[SyntaxKind["GreaterThanGreaterThanEqualsToken"] = 115] = "GreaterThanGreaterThanEqualsToken"; - SyntaxKind[SyntaxKind["GreaterThanGreaterThanGreaterThanEqualsToken"] = 116] = "GreaterThanGreaterThanGreaterThanEqualsToken"; - SyntaxKind[SyntaxKind["AmpersandEqualsToken"] = 117] = "AmpersandEqualsToken"; - SyntaxKind[SyntaxKind["BarEqualsToken"] = 118] = "BarEqualsToken"; - SyntaxKind[SyntaxKind["CaretEqualsToken"] = 119] = "CaretEqualsToken"; - SyntaxKind[SyntaxKind["SlashToken"] = 120] = "SlashToken"; - SyntaxKind[SyntaxKind["SlashEqualsToken"] = 121] = "SlashEqualsToken"; - SyntaxKind[SyntaxKind["SourceUnit"] = 122] = "SourceUnit"; - SyntaxKind[SyntaxKind["QualifiedName"] = 123] = "QualifiedName"; - SyntaxKind[SyntaxKind["ObjectType"] = 124] = "ObjectType"; - SyntaxKind[SyntaxKind["FunctionType"] = 125] = "FunctionType"; - SyntaxKind[SyntaxKind["ArrayType"] = 126] = "ArrayType"; - SyntaxKind[SyntaxKind["ConstructorType"] = 127] = "ConstructorType"; - SyntaxKind[SyntaxKind["GenericType"] = 128] = "GenericType"; - SyntaxKind[SyntaxKind["TypeQuery"] = 129] = "TypeQuery"; - SyntaxKind[SyntaxKind["TupleType"] = 130] = "TupleType"; - SyntaxKind[SyntaxKind["UnionType"] = 131] = "UnionType"; - SyntaxKind[SyntaxKind["ParenthesizedType"] = 132] = "ParenthesizedType"; - SyntaxKind[SyntaxKind["InterfaceDeclaration"] = 133] = "InterfaceDeclaration"; - SyntaxKind[SyntaxKind["FunctionDeclaration"] = 134] = "FunctionDeclaration"; - SyntaxKind[SyntaxKind["ModuleDeclaration"] = 135] = "ModuleDeclaration"; - SyntaxKind[SyntaxKind["ClassDeclaration"] = 136] = "ClassDeclaration"; - SyntaxKind[SyntaxKind["EnumDeclaration"] = 137] = "EnumDeclaration"; - SyntaxKind[SyntaxKind["ImportDeclaration"] = 138] = "ImportDeclaration"; - SyntaxKind[SyntaxKind["ExportAssignment"] = 139] = "ExportAssignment"; - SyntaxKind[SyntaxKind["MemberFunctionDeclaration"] = 140] = "MemberFunctionDeclaration"; - SyntaxKind[SyntaxKind["MemberVariableDeclaration"] = 141] = "MemberVariableDeclaration"; - SyntaxKind[SyntaxKind["ConstructorDeclaration"] = 142] = "ConstructorDeclaration"; - SyntaxKind[SyntaxKind["IndexMemberDeclaration"] = 143] = "IndexMemberDeclaration"; - SyntaxKind[SyntaxKind["GetAccessor"] = 144] = "GetAccessor"; - SyntaxKind[SyntaxKind["SetAccessor"] = 145] = "SetAccessor"; - SyntaxKind[SyntaxKind["PropertySignature"] = 146] = "PropertySignature"; - SyntaxKind[SyntaxKind["CallSignature"] = 147] = "CallSignature"; - SyntaxKind[SyntaxKind["ConstructSignature"] = 148] = "ConstructSignature"; - SyntaxKind[SyntaxKind["IndexSignature"] = 149] = "IndexSignature"; - SyntaxKind[SyntaxKind["MethodSignature"] = 150] = "MethodSignature"; - SyntaxKind[SyntaxKind["Block"] = 151] = "Block"; - SyntaxKind[SyntaxKind["IfStatement"] = 152] = "IfStatement"; - SyntaxKind[SyntaxKind["VariableStatement"] = 153] = "VariableStatement"; - SyntaxKind[SyntaxKind["ExpressionStatement"] = 154] = "ExpressionStatement"; - SyntaxKind[SyntaxKind["ReturnStatement"] = 155] = "ReturnStatement"; - SyntaxKind[SyntaxKind["SwitchStatement"] = 156] = "SwitchStatement"; - SyntaxKind[SyntaxKind["BreakStatement"] = 157] = "BreakStatement"; - SyntaxKind[SyntaxKind["ContinueStatement"] = 158] = "ContinueStatement"; - SyntaxKind[SyntaxKind["ForStatement"] = 159] = "ForStatement"; - SyntaxKind[SyntaxKind["ForInStatement"] = 160] = "ForInStatement"; - SyntaxKind[SyntaxKind["EmptyStatement"] = 161] = "EmptyStatement"; - SyntaxKind[SyntaxKind["ThrowStatement"] = 162] = "ThrowStatement"; - SyntaxKind[SyntaxKind["WhileStatement"] = 163] = "WhileStatement"; - SyntaxKind[SyntaxKind["TryStatement"] = 164] = "TryStatement"; - SyntaxKind[SyntaxKind["LabeledStatement"] = 165] = "LabeledStatement"; - SyntaxKind[SyntaxKind["DoStatement"] = 166] = "DoStatement"; - SyntaxKind[SyntaxKind["DebuggerStatement"] = 167] = "DebuggerStatement"; - SyntaxKind[SyntaxKind["WithStatement"] = 168] = "WithStatement"; - SyntaxKind[SyntaxKind["PrefixUnaryExpression"] = 169] = "PrefixUnaryExpression"; - SyntaxKind[SyntaxKind["DeleteExpression"] = 170] = "DeleteExpression"; - SyntaxKind[SyntaxKind["TypeOfExpression"] = 171] = "TypeOfExpression"; - SyntaxKind[SyntaxKind["VoidExpression"] = 172] = "VoidExpression"; - SyntaxKind[SyntaxKind["ConditionalExpression"] = 173] = "ConditionalExpression"; - SyntaxKind[SyntaxKind["BinaryExpression"] = 174] = "BinaryExpression"; - SyntaxKind[SyntaxKind["PostfixUnaryExpression"] = 175] = "PostfixUnaryExpression"; - SyntaxKind[SyntaxKind["MemberAccessExpression"] = 176] = "MemberAccessExpression"; - SyntaxKind[SyntaxKind["InvocationExpression"] = 177] = "InvocationExpression"; - SyntaxKind[SyntaxKind["ArrayLiteralExpression"] = 178] = "ArrayLiteralExpression"; - SyntaxKind[SyntaxKind["ObjectLiteralExpression"] = 179] = "ObjectLiteralExpression"; - SyntaxKind[SyntaxKind["ObjectCreationExpression"] = 180] = "ObjectCreationExpression"; - SyntaxKind[SyntaxKind["ParenthesizedExpression"] = 181] = "ParenthesizedExpression"; - SyntaxKind[SyntaxKind["ParenthesizedArrowFunctionExpression"] = 182] = "ParenthesizedArrowFunctionExpression"; - SyntaxKind[SyntaxKind["SimpleArrowFunctionExpression"] = 183] = "SimpleArrowFunctionExpression"; - SyntaxKind[SyntaxKind["CastExpression"] = 184] = "CastExpression"; - SyntaxKind[SyntaxKind["ElementAccessExpression"] = 185] = "ElementAccessExpression"; - SyntaxKind[SyntaxKind["FunctionExpression"] = 186] = "FunctionExpression"; - SyntaxKind[SyntaxKind["OmittedExpression"] = 187] = "OmittedExpression"; - SyntaxKind[SyntaxKind["TemplateExpression"] = 188] = "TemplateExpression"; - SyntaxKind[SyntaxKind["TemplateAccessExpression"] = 189] = "TemplateAccessExpression"; - SyntaxKind[SyntaxKind["YieldExpression"] = 190] = "YieldExpression"; - SyntaxKind[SyntaxKind["VariableDeclaration"] = 191] = "VariableDeclaration"; - SyntaxKind[SyntaxKind["VariableDeclarator"] = 192] = "VariableDeclarator"; - SyntaxKind[SyntaxKind["ArgumentList"] = 193] = "ArgumentList"; - SyntaxKind[SyntaxKind["ParameterList"] = 194] = "ParameterList"; - SyntaxKind[SyntaxKind["TypeArgumentList"] = 195] = "TypeArgumentList"; - SyntaxKind[SyntaxKind["TypeParameterList"] = 196] = "TypeParameterList"; - SyntaxKind[SyntaxKind["HeritageClause"] = 197] = "HeritageClause"; - SyntaxKind[SyntaxKind["EqualsValueClause"] = 198] = "EqualsValueClause"; - SyntaxKind[SyntaxKind["CaseSwitchClause"] = 199] = "CaseSwitchClause"; - SyntaxKind[SyntaxKind["DefaultSwitchClause"] = 200] = "DefaultSwitchClause"; - SyntaxKind[SyntaxKind["ElseClause"] = 201] = "ElseClause"; - SyntaxKind[SyntaxKind["CatchClause"] = 202] = "CatchClause"; - SyntaxKind[SyntaxKind["FinallyClause"] = 203] = "FinallyClause"; - SyntaxKind[SyntaxKind["TemplateClause"] = 204] = "TemplateClause"; - SyntaxKind[SyntaxKind["TypeParameter"] = 205] = "TypeParameter"; - SyntaxKind[SyntaxKind["Constraint"] = 206] = "Constraint"; - SyntaxKind[SyntaxKind["SimplePropertyAssignment"] = 207] = "SimplePropertyAssignment"; - SyntaxKind[SyntaxKind["FunctionPropertyAssignment"] = 208] = "FunctionPropertyAssignment"; - SyntaxKind[SyntaxKind["Parameter"] = 209] = "Parameter"; - SyntaxKind[SyntaxKind["EnumElement"] = 210] = "EnumElement"; - SyntaxKind[SyntaxKind["TypeAnnotation"] = 211] = "TypeAnnotation"; - SyntaxKind[SyntaxKind["ExpressionBody"] = 212] = "ExpressionBody"; - SyntaxKind[SyntaxKind["ComputedPropertyName"] = 213] = "ComputedPropertyName"; - SyntaxKind[SyntaxKind["ExternalModuleReference"] = 214] = "ExternalModuleReference"; - SyntaxKind[SyntaxKind["ModuleNameModuleReference"] = 215] = "ModuleNameModuleReference"; + SyntaxKind[SyntaxKind["AsyncKeyword"] = 63] = "AsyncKeyword"; + SyntaxKind[SyntaxKind["AwaitKeyword"] = 64] = "AwaitKeyword"; + SyntaxKind[SyntaxKind["BooleanKeyword"] = 65] = "BooleanKeyword"; + SyntaxKind[SyntaxKind["ConstructorKeyword"] = 66] = "ConstructorKeyword"; + SyntaxKind[SyntaxKind["DeclareKeyword"] = 67] = "DeclareKeyword"; + SyntaxKind[SyntaxKind["GetKeyword"] = 68] = "GetKeyword"; + SyntaxKind[SyntaxKind["ModuleKeyword"] = 69] = "ModuleKeyword"; + SyntaxKind[SyntaxKind["RequireKeyword"] = 70] = "RequireKeyword"; + SyntaxKind[SyntaxKind["NumberKeyword"] = 71] = "NumberKeyword"; + SyntaxKind[SyntaxKind["SetKeyword"] = 72] = "SetKeyword"; + SyntaxKind[SyntaxKind["StringKeyword"] = 73] = "StringKeyword"; + SyntaxKind[SyntaxKind["OpenBraceToken"] = 74] = "OpenBraceToken"; + SyntaxKind[SyntaxKind["CloseBraceToken"] = 75] = "CloseBraceToken"; + SyntaxKind[SyntaxKind["OpenParenToken"] = 76] = "OpenParenToken"; + SyntaxKind[SyntaxKind["CloseParenToken"] = 77] = "CloseParenToken"; + SyntaxKind[SyntaxKind["OpenBracketToken"] = 78] = "OpenBracketToken"; + SyntaxKind[SyntaxKind["CloseBracketToken"] = 79] = "CloseBracketToken"; + SyntaxKind[SyntaxKind["DotToken"] = 80] = "DotToken"; + SyntaxKind[SyntaxKind["DotDotDotToken"] = 81] = "DotDotDotToken"; + SyntaxKind[SyntaxKind["SemicolonToken"] = 82] = "SemicolonToken"; + SyntaxKind[SyntaxKind["CommaToken"] = 83] = "CommaToken"; + SyntaxKind[SyntaxKind["LessThanToken"] = 84] = "LessThanToken"; + SyntaxKind[SyntaxKind["GreaterThanToken"] = 85] = "GreaterThanToken"; + SyntaxKind[SyntaxKind["LessThanEqualsToken"] = 86] = "LessThanEqualsToken"; + SyntaxKind[SyntaxKind["GreaterThanEqualsToken"] = 87] = "GreaterThanEqualsToken"; + SyntaxKind[SyntaxKind["EqualsEqualsToken"] = 88] = "EqualsEqualsToken"; + SyntaxKind[SyntaxKind["EqualsGreaterThanToken"] = 89] = "EqualsGreaterThanToken"; + SyntaxKind[SyntaxKind["ExclamationEqualsToken"] = 90] = "ExclamationEqualsToken"; + SyntaxKind[SyntaxKind["EqualsEqualsEqualsToken"] = 91] = "EqualsEqualsEqualsToken"; + SyntaxKind[SyntaxKind["ExclamationEqualsEqualsToken"] = 92] = "ExclamationEqualsEqualsToken"; + SyntaxKind[SyntaxKind["PlusToken"] = 93] = "PlusToken"; + SyntaxKind[SyntaxKind["MinusToken"] = 94] = "MinusToken"; + SyntaxKind[SyntaxKind["AsteriskToken"] = 95] = "AsteriskToken"; + SyntaxKind[SyntaxKind["PercentToken"] = 96] = "PercentToken"; + SyntaxKind[SyntaxKind["PlusPlusToken"] = 97] = "PlusPlusToken"; + SyntaxKind[SyntaxKind["MinusMinusToken"] = 98] = "MinusMinusToken"; + SyntaxKind[SyntaxKind["LessThanLessThanToken"] = 99] = "LessThanLessThanToken"; + SyntaxKind[SyntaxKind["GreaterThanGreaterThanToken"] = 100] = "GreaterThanGreaterThanToken"; + SyntaxKind[SyntaxKind["GreaterThanGreaterThanGreaterThanToken"] = 101] = "GreaterThanGreaterThanGreaterThanToken"; + SyntaxKind[SyntaxKind["AmpersandToken"] = 102] = "AmpersandToken"; + SyntaxKind[SyntaxKind["BarToken"] = 103] = "BarToken"; + SyntaxKind[SyntaxKind["CaretToken"] = 104] = "CaretToken"; + SyntaxKind[SyntaxKind["ExclamationToken"] = 105] = "ExclamationToken"; + SyntaxKind[SyntaxKind["TildeToken"] = 106] = "TildeToken"; + SyntaxKind[SyntaxKind["AmpersandAmpersandToken"] = 107] = "AmpersandAmpersandToken"; + SyntaxKind[SyntaxKind["BarBarToken"] = 108] = "BarBarToken"; + SyntaxKind[SyntaxKind["QuestionToken"] = 109] = "QuestionToken"; + SyntaxKind[SyntaxKind["ColonToken"] = 110] = "ColonToken"; + SyntaxKind[SyntaxKind["EqualsToken"] = 111] = "EqualsToken"; + SyntaxKind[SyntaxKind["PlusEqualsToken"] = 112] = "PlusEqualsToken"; + SyntaxKind[SyntaxKind["MinusEqualsToken"] = 113] = "MinusEqualsToken"; + SyntaxKind[SyntaxKind["AsteriskEqualsToken"] = 114] = "AsteriskEqualsToken"; + SyntaxKind[SyntaxKind["PercentEqualsToken"] = 115] = "PercentEqualsToken"; + SyntaxKind[SyntaxKind["LessThanLessThanEqualsToken"] = 116] = "LessThanLessThanEqualsToken"; + SyntaxKind[SyntaxKind["GreaterThanGreaterThanEqualsToken"] = 117] = "GreaterThanGreaterThanEqualsToken"; + SyntaxKind[SyntaxKind["GreaterThanGreaterThanGreaterThanEqualsToken"] = 118] = "GreaterThanGreaterThanGreaterThanEqualsToken"; + SyntaxKind[SyntaxKind["AmpersandEqualsToken"] = 119] = "AmpersandEqualsToken"; + SyntaxKind[SyntaxKind["BarEqualsToken"] = 120] = "BarEqualsToken"; + SyntaxKind[SyntaxKind["CaretEqualsToken"] = 121] = "CaretEqualsToken"; + SyntaxKind[SyntaxKind["SlashToken"] = 122] = "SlashToken"; + SyntaxKind[SyntaxKind["SlashEqualsToken"] = 123] = "SlashEqualsToken"; + SyntaxKind[SyntaxKind["SourceUnit"] = 124] = "SourceUnit"; + SyntaxKind[SyntaxKind["QualifiedName"] = 125] = "QualifiedName"; + SyntaxKind[SyntaxKind["ObjectType"] = 126] = "ObjectType"; + SyntaxKind[SyntaxKind["FunctionType"] = 127] = "FunctionType"; + SyntaxKind[SyntaxKind["ArrayType"] = 128] = "ArrayType"; + SyntaxKind[SyntaxKind["ConstructorType"] = 129] = "ConstructorType"; + SyntaxKind[SyntaxKind["GenericType"] = 130] = "GenericType"; + SyntaxKind[SyntaxKind["TypeQuery"] = 131] = "TypeQuery"; + SyntaxKind[SyntaxKind["TupleType"] = 132] = "TupleType"; + SyntaxKind[SyntaxKind["UnionType"] = 133] = "UnionType"; + SyntaxKind[SyntaxKind["ParenthesizedType"] = 134] = "ParenthesizedType"; + SyntaxKind[SyntaxKind["InterfaceDeclaration"] = 135] = "InterfaceDeclaration"; + SyntaxKind[SyntaxKind["FunctionDeclaration"] = 136] = "FunctionDeclaration"; + SyntaxKind[SyntaxKind["ModuleDeclaration"] = 137] = "ModuleDeclaration"; + SyntaxKind[SyntaxKind["ClassDeclaration"] = 138] = "ClassDeclaration"; + SyntaxKind[SyntaxKind["EnumDeclaration"] = 139] = "EnumDeclaration"; + SyntaxKind[SyntaxKind["ImportDeclaration"] = 140] = "ImportDeclaration"; + SyntaxKind[SyntaxKind["ExportAssignment"] = 141] = "ExportAssignment"; + SyntaxKind[SyntaxKind["MemberFunctionDeclaration"] = 142] = "MemberFunctionDeclaration"; + SyntaxKind[SyntaxKind["MemberVariableDeclaration"] = 143] = "MemberVariableDeclaration"; + SyntaxKind[SyntaxKind["ConstructorDeclaration"] = 144] = "ConstructorDeclaration"; + SyntaxKind[SyntaxKind["IndexMemberDeclaration"] = 145] = "IndexMemberDeclaration"; + SyntaxKind[SyntaxKind["GetAccessor"] = 146] = "GetAccessor"; + SyntaxKind[SyntaxKind["SetAccessor"] = 147] = "SetAccessor"; + SyntaxKind[SyntaxKind["PropertySignature"] = 148] = "PropertySignature"; + SyntaxKind[SyntaxKind["CallSignature"] = 149] = "CallSignature"; + SyntaxKind[SyntaxKind["ConstructSignature"] = 150] = "ConstructSignature"; + SyntaxKind[SyntaxKind["IndexSignature"] = 151] = "IndexSignature"; + SyntaxKind[SyntaxKind["MethodSignature"] = 152] = "MethodSignature"; + SyntaxKind[SyntaxKind["Block"] = 153] = "Block"; + SyntaxKind[SyntaxKind["IfStatement"] = 154] = "IfStatement"; + SyntaxKind[SyntaxKind["VariableStatement"] = 155] = "VariableStatement"; + SyntaxKind[SyntaxKind["ExpressionStatement"] = 156] = "ExpressionStatement"; + SyntaxKind[SyntaxKind["ReturnStatement"] = 157] = "ReturnStatement"; + SyntaxKind[SyntaxKind["SwitchStatement"] = 158] = "SwitchStatement"; + SyntaxKind[SyntaxKind["BreakStatement"] = 159] = "BreakStatement"; + SyntaxKind[SyntaxKind["ContinueStatement"] = 160] = "ContinueStatement"; + SyntaxKind[SyntaxKind["ForStatement"] = 161] = "ForStatement"; + SyntaxKind[SyntaxKind["ForInStatement"] = 162] = "ForInStatement"; + SyntaxKind[SyntaxKind["EmptyStatement"] = 163] = "EmptyStatement"; + SyntaxKind[SyntaxKind["ThrowStatement"] = 164] = "ThrowStatement"; + SyntaxKind[SyntaxKind["WhileStatement"] = 165] = "WhileStatement"; + SyntaxKind[SyntaxKind["TryStatement"] = 166] = "TryStatement"; + SyntaxKind[SyntaxKind["LabeledStatement"] = 167] = "LabeledStatement"; + SyntaxKind[SyntaxKind["DoStatement"] = 168] = "DoStatement"; + SyntaxKind[SyntaxKind["DebuggerStatement"] = 169] = "DebuggerStatement"; + SyntaxKind[SyntaxKind["WithStatement"] = 170] = "WithStatement"; + SyntaxKind[SyntaxKind["PrefixUnaryExpression"] = 171] = "PrefixUnaryExpression"; + SyntaxKind[SyntaxKind["DeleteExpression"] = 172] = "DeleteExpression"; + SyntaxKind[SyntaxKind["TypeOfExpression"] = 173] = "TypeOfExpression"; + SyntaxKind[SyntaxKind["VoidExpression"] = 174] = "VoidExpression"; + SyntaxKind[SyntaxKind["ConditionalExpression"] = 175] = "ConditionalExpression"; + SyntaxKind[SyntaxKind["BinaryExpression"] = 176] = "BinaryExpression"; + SyntaxKind[SyntaxKind["PostfixUnaryExpression"] = 177] = "PostfixUnaryExpression"; + SyntaxKind[SyntaxKind["MemberAccessExpression"] = 178] = "MemberAccessExpression"; + SyntaxKind[SyntaxKind["InvocationExpression"] = 179] = "InvocationExpression"; + SyntaxKind[SyntaxKind["ArrayLiteralExpression"] = 180] = "ArrayLiteralExpression"; + SyntaxKind[SyntaxKind["ObjectLiteralExpression"] = 181] = "ObjectLiteralExpression"; + SyntaxKind[SyntaxKind["ObjectCreationExpression"] = 182] = "ObjectCreationExpression"; + SyntaxKind[SyntaxKind["ParenthesizedExpression"] = 183] = "ParenthesizedExpression"; + SyntaxKind[SyntaxKind["ParenthesizedArrowFunctionExpression"] = 184] = "ParenthesizedArrowFunctionExpression"; + SyntaxKind[SyntaxKind["SimpleArrowFunctionExpression"] = 185] = "SimpleArrowFunctionExpression"; + SyntaxKind[SyntaxKind["CastExpression"] = 186] = "CastExpression"; + SyntaxKind[SyntaxKind["ElementAccessExpression"] = 187] = "ElementAccessExpression"; + SyntaxKind[SyntaxKind["FunctionExpression"] = 188] = "FunctionExpression"; + SyntaxKind[SyntaxKind["OmittedExpression"] = 189] = "OmittedExpression"; + SyntaxKind[SyntaxKind["TemplateExpression"] = 190] = "TemplateExpression"; + SyntaxKind[SyntaxKind["TemplateAccessExpression"] = 191] = "TemplateAccessExpression"; + SyntaxKind[SyntaxKind["YieldExpression"] = 192] = "YieldExpression"; + SyntaxKind[SyntaxKind["AwaitExpression"] = 193] = "AwaitExpression"; + SyntaxKind[SyntaxKind["VariableDeclaration"] = 194] = "VariableDeclaration"; + SyntaxKind[SyntaxKind["VariableDeclarator"] = 195] = "VariableDeclarator"; + SyntaxKind[SyntaxKind["ArgumentList"] = 196] = "ArgumentList"; + SyntaxKind[SyntaxKind["ParameterList"] = 197] = "ParameterList"; + SyntaxKind[SyntaxKind["TypeArgumentList"] = 198] = "TypeArgumentList"; + SyntaxKind[SyntaxKind["TypeParameterList"] = 199] = "TypeParameterList"; + SyntaxKind[SyntaxKind["HeritageClause"] = 200] = "HeritageClause"; + SyntaxKind[SyntaxKind["EqualsValueClause"] = 201] = "EqualsValueClause"; + SyntaxKind[SyntaxKind["CaseSwitchClause"] = 202] = "CaseSwitchClause"; + SyntaxKind[SyntaxKind["DefaultSwitchClause"] = 203] = "DefaultSwitchClause"; + SyntaxKind[SyntaxKind["ElseClause"] = 204] = "ElseClause"; + SyntaxKind[SyntaxKind["CatchClause"] = 205] = "CatchClause"; + SyntaxKind[SyntaxKind["FinallyClause"] = 206] = "FinallyClause"; + SyntaxKind[SyntaxKind["TemplateClause"] = 207] = "TemplateClause"; + SyntaxKind[SyntaxKind["TypeParameter"] = 208] = "TypeParameter"; + SyntaxKind[SyntaxKind["Constraint"] = 209] = "Constraint"; + SyntaxKind[SyntaxKind["SimplePropertyAssignment"] = 210] = "SimplePropertyAssignment"; + SyntaxKind[SyntaxKind["FunctionPropertyAssignment"] = 211] = "FunctionPropertyAssignment"; + SyntaxKind[SyntaxKind["Parameter"] = 212] = "Parameter"; + SyntaxKind[SyntaxKind["EnumElement"] = 213] = "EnumElement"; + SyntaxKind[SyntaxKind["TypeAnnotation"] = 214] = "TypeAnnotation"; + SyntaxKind[SyntaxKind["ExpressionBody"] = 215] = "ExpressionBody"; + SyntaxKind[SyntaxKind["ComputedPropertyName"] = 216] = "ComputedPropertyName"; + SyntaxKind[SyntaxKind["ExternalModuleReference"] = 217] = "ExternalModuleReference"; + SyntaxKind[SyntaxKind["ModuleNameModuleReference"] = 218] = "ModuleNameModuleReference"; SyntaxKind[SyntaxKind["FirstStandardKeyword"] = SyntaxKind.BreakKeyword] = "FirstStandardKeyword"; SyntaxKind[SyntaxKind["LastStandardKeyword"] = SyntaxKind.WithKeyword] = "LastStandardKeyword"; SyntaxKind[SyntaxKind["FirstFutureReservedKeyword"] = SyntaxKind.ClassKeyword] = "FirstFutureReservedKeyword"; @@ -654,16 +657,18 @@ var TypeScript; (function (SyntaxFacts) { var textToKeywordKind = { "any": 62 /* AnyKeyword */, - "boolean": 63 /* BooleanKeyword */, + "async": 63 /* AsyncKeyword */, + "await": 64 /* AwaitKeyword */, + "boolean": 65 /* BooleanKeyword */, "break": 17 /* BreakKeyword */, "case": 18 /* CaseKeyword */, "catch": 19 /* CatchKeyword */, "class": 46 /* ClassKeyword */, "continue": 20 /* ContinueKeyword */, "const": 47 /* ConstKeyword */, - "constructor": 64 /* ConstructorKeyword */, + "constructor": 66 /* ConstructorKeyword */, "debugger": 21 /* DebuggerKeyword */, - "declare": 65 /* DeclareKeyword */, + "declare": 67 /* DeclareKeyword */, "default": 22 /* DefaultKeyword */, "delete": 23 /* DeleteKeyword */, "do": 24 /* DoKeyword */, @@ -675,7 +680,7 @@ var TypeScript; "finally": 27 /* FinallyKeyword */, "for": 28 /* ForKeyword */, "function": 29 /* FunctionKeyword */, - "get": 66 /* GetKeyword */, + "get": 68 /* GetKeyword */, "if": 30 /* IfKeyword */, "implements": 53 /* ImplementsKeyword */, "import": 51 /* ImportKeyword */, @@ -683,19 +688,19 @@ var TypeScript; "instanceof": 32 /* InstanceOfKeyword */, "interface": 54 /* InterfaceKeyword */, "let": 55 /* LetKeyword */, - "module": 67 /* ModuleKeyword */, + "module": 69 /* ModuleKeyword */, "new": 33 /* NewKeyword */, "null": 34 /* NullKeyword */, - "number": 69 /* NumberKeyword */, + "number": 71 /* NumberKeyword */, "package": 56 /* PackageKeyword */, "private": 57 /* PrivateKeyword */, "protected": 58 /* ProtectedKeyword */, "public": 59 /* PublicKeyword */, - "require": 68 /* RequireKeyword */, + "require": 70 /* RequireKeyword */, "return": 35 /* ReturnKeyword */, - "set": 70 /* SetKeyword */, + "set": 72 /* SetKeyword */, "static": 60 /* StaticKeyword */, - "string": 71 /* StringKeyword */, + "string": 73 /* StringKeyword */, "super": 52 /* SuperKeyword */, "switch": 36 /* SwitchKeyword */, "this": 37 /* ThisKeyword */, @@ -708,56 +713,56 @@ var TypeScript; "while": 44 /* WhileKeyword */, "with": 45 /* WithKeyword */, "yield": 61 /* YieldKeyword */, - "{": 72 /* OpenBraceToken */, - "}": 73 /* CloseBraceToken */, - "(": 74 /* OpenParenToken */, - ")": 75 /* CloseParenToken */, - "[": 76 /* OpenBracketToken */, - "]": 77 /* CloseBracketToken */, - ".": 78 /* DotToken */, - "...": 79 /* DotDotDotToken */, - ";": 80 /* SemicolonToken */, - ",": 81 /* CommaToken */, - "<": 82 /* LessThanToken */, - ">": 83 /* GreaterThanToken */, - "<=": 84 /* LessThanEqualsToken */, - ">=": 85 /* GreaterThanEqualsToken */, - "==": 86 /* EqualsEqualsToken */, - "=>": 87 /* EqualsGreaterThanToken */, - "!=": 88 /* ExclamationEqualsToken */, - "===": 89 /* EqualsEqualsEqualsToken */, - "!==": 90 /* ExclamationEqualsEqualsToken */, - "+": 91 /* PlusToken */, - "-": 92 /* MinusToken */, - "*": 93 /* AsteriskToken */, - "%": 94 /* PercentToken */, - "++": 95 /* PlusPlusToken */, - "--": 96 /* MinusMinusToken */, - "<<": 97 /* LessThanLessThanToken */, - ">>": 98 /* GreaterThanGreaterThanToken */, - ">>>": 99 /* GreaterThanGreaterThanGreaterThanToken */, - "&": 100 /* AmpersandToken */, - "|": 101 /* BarToken */, - "^": 102 /* CaretToken */, - "!": 103 /* ExclamationToken */, - "~": 104 /* TildeToken */, - "&&": 105 /* AmpersandAmpersandToken */, - "||": 106 /* BarBarToken */, - "?": 107 /* QuestionToken */, - ":": 108 /* ColonToken */, - "=": 109 /* EqualsToken */, - "+=": 110 /* PlusEqualsToken */, - "-=": 111 /* MinusEqualsToken */, - "*=": 112 /* AsteriskEqualsToken */, - "%=": 113 /* PercentEqualsToken */, - "<<=": 114 /* LessThanLessThanEqualsToken */, - ">>=": 115 /* GreaterThanGreaterThanEqualsToken */, - ">>>=": 116 /* GreaterThanGreaterThanGreaterThanEqualsToken */, - "&=": 117 /* AmpersandEqualsToken */, - "|=": 118 /* BarEqualsToken */, - "^=": 119 /* CaretEqualsToken */, - "/": 120 /* SlashToken */, - "/=": 121 /* SlashEqualsToken */ + "{": 74 /* OpenBraceToken */, + "}": 75 /* CloseBraceToken */, + "(": 76 /* OpenParenToken */, + ")": 77 /* CloseParenToken */, + "[": 78 /* OpenBracketToken */, + "]": 79 /* CloseBracketToken */, + ".": 80 /* DotToken */, + "...": 81 /* DotDotDotToken */, + ";": 82 /* SemicolonToken */, + ",": 83 /* CommaToken */, + "<": 84 /* LessThanToken */, + ">": 85 /* GreaterThanToken */, + "<=": 86 /* LessThanEqualsToken */, + ">=": 87 /* GreaterThanEqualsToken */, + "==": 88 /* EqualsEqualsToken */, + "=>": 89 /* EqualsGreaterThanToken */, + "!=": 90 /* ExclamationEqualsToken */, + "===": 91 /* EqualsEqualsEqualsToken */, + "!==": 92 /* ExclamationEqualsEqualsToken */, + "+": 93 /* PlusToken */, + "-": 94 /* MinusToken */, + "*": 95 /* AsteriskToken */, + "%": 96 /* PercentToken */, + "++": 97 /* PlusPlusToken */, + "--": 98 /* MinusMinusToken */, + "<<": 99 /* LessThanLessThanToken */, + ">>": 100 /* GreaterThanGreaterThanToken */, + ">>>": 101 /* GreaterThanGreaterThanGreaterThanToken */, + "&": 102 /* AmpersandToken */, + "|": 103 /* BarToken */, + "^": 104 /* CaretToken */, + "!": 105 /* ExclamationToken */, + "~": 106 /* TildeToken */, + "&&": 107 /* AmpersandAmpersandToken */, + "||": 108 /* BarBarToken */, + "?": 109 /* QuestionToken */, + ":": 110 /* ColonToken */, + "=": 111 /* EqualsToken */, + "+=": 112 /* PlusEqualsToken */, + "-=": 113 /* MinusEqualsToken */, + "*=": 114 /* AsteriskEqualsToken */, + "%=": 115 /* PercentEqualsToken */, + "<<=": 116 /* LessThanLessThanEqualsToken */, + ">>=": 117 /* GreaterThanGreaterThanEqualsToken */, + ">>>=": 118 /* GreaterThanGreaterThanGreaterThanEqualsToken */, + "&=": 119 /* AmpersandEqualsToken */, + "|=": 120 /* BarEqualsToken */, + "^=": 121 /* CaretEqualsToken */, + "/": 122 /* SlashToken */, + "/=": 123 /* SlashEqualsToken */ }; var kindToText = new Array(); for (var name in textToKeywordKind) { @@ -765,7 +770,7 @@ var TypeScript; kindToText[textToKeywordKind[name]] = name; } } - kindToText[64 /* ConstructorKeyword */] = "constructor"; + kindToText[66 /* ConstructorKeyword */] = "constructor"; function getTokenKind(text) { if (textToKeywordKind.hasOwnProperty(text)) { return textToKeywordKind[text]; @@ -788,12 +793,12 @@ var TypeScript; SyntaxFacts.isAnyPunctuation = isAnyPunctuation; function isPrefixUnaryExpressionOperatorToken(tokenKind) { switch (tokenKind) { - case 91 /* PlusToken */: - case 92 /* MinusToken */: - case 104 /* TildeToken */: - case 103 /* ExclamationToken */: - case 95 /* PlusPlusToken */: - case 96 /* MinusMinusToken */: + case 93 /* PlusToken */: + case 94 /* MinusToken */: + case 106 /* TildeToken */: + case 105 /* ExclamationToken */: + case 97 /* PlusPlusToken */: + case 98 /* MinusMinusToken */: return true; default: return false; @@ -802,42 +807,42 @@ var TypeScript; SyntaxFacts.isPrefixUnaryExpressionOperatorToken = isPrefixUnaryExpressionOperatorToken; function isBinaryExpressionOperatorToken(tokenKind) { switch (tokenKind) { - case 93 /* AsteriskToken */: - case 120 /* SlashToken */: - case 94 /* PercentToken */: - case 91 /* PlusToken */: - case 92 /* MinusToken */: - case 97 /* LessThanLessThanToken */: - case 98 /* GreaterThanGreaterThanToken */: - case 99 /* GreaterThanGreaterThanGreaterThanToken */: - case 82 /* LessThanToken */: - case 83 /* GreaterThanToken */: - case 84 /* LessThanEqualsToken */: - case 85 /* GreaterThanEqualsToken */: + case 95 /* AsteriskToken */: + case 122 /* SlashToken */: + case 96 /* PercentToken */: + case 93 /* PlusToken */: + case 94 /* MinusToken */: + case 99 /* LessThanLessThanToken */: + case 100 /* GreaterThanGreaterThanToken */: + case 101 /* GreaterThanGreaterThanGreaterThanToken */: + case 84 /* LessThanToken */: + case 85 /* GreaterThanToken */: + case 86 /* LessThanEqualsToken */: + case 87 /* GreaterThanEqualsToken */: case 32 /* InstanceOfKeyword */: case 31 /* InKeyword */: - case 86 /* EqualsEqualsToken */: - case 88 /* ExclamationEqualsToken */: - case 89 /* EqualsEqualsEqualsToken */: - case 90 /* ExclamationEqualsEqualsToken */: - case 100 /* AmpersandToken */: - case 102 /* CaretToken */: - case 101 /* BarToken */: - case 105 /* AmpersandAmpersandToken */: - case 106 /* BarBarToken */: - case 118 /* BarEqualsToken */: - case 117 /* AmpersandEqualsToken */: - case 119 /* CaretEqualsToken */: - case 114 /* LessThanLessThanEqualsToken */: - case 115 /* GreaterThanGreaterThanEqualsToken */: - case 116 /* GreaterThanGreaterThanGreaterThanEqualsToken */: - case 110 /* PlusEqualsToken */: - case 111 /* MinusEqualsToken */: - case 112 /* AsteriskEqualsToken */: - case 121 /* SlashEqualsToken */: - case 113 /* PercentEqualsToken */: - case 109 /* EqualsToken */: - case 81 /* CommaToken */: + case 88 /* EqualsEqualsToken */: + case 90 /* ExclamationEqualsToken */: + case 91 /* EqualsEqualsEqualsToken */: + case 92 /* ExclamationEqualsEqualsToken */: + case 102 /* AmpersandToken */: + case 104 /* CaretToken */: + case 103 /* BarToken */: + case 107 /* AmpersandAmpersandToken */: + case 108 /* BarBarToken */: + case 120 /* BarEqualsToken */: + case 119 /* AmpersandEqualsToken */: + case 121 /* CaretEqualsToken */: + case 116 /* LessThanLessThanEqualsToken */: + case 117 /* GreaterThanGreaterThanEqualsToken */: + case 118 /* GreaterThanGreaterThanGreaterThanEqualsToken */: + case 112 /* PlusEqualsToken */: + case 113 /* MinusEqualsToken */: + case 114 /* AsteriskEqualsToken */: + case 123 /* SlashEqualsToken */: + case 115 /* PercentEqualsToken */: + case 111 /* EqualsToken */: + case 83 /* CommaToken */: return true; default: return false; @@ -846,18 +851,18 @@ var TypeScript; SyntaxFacts.isBinaryExpressionOperatorToken = isBinaryExpressionOperatorToken; function isAssignmentOperatorToken(tokenKind) { switch (tokenKind) { - case 118 /* BarEqualsToken */: - case 117 /* AmpersandEqualsToken */: - case 119 /* CaretEqualsToken */: - case 114 /* LessThanLessThanEqualsToken */: - case 115 /* GreaterThanGreaterThanEqualsToken */: - case 116 /* GreaterThanGreaterThanGreaterThanEqualsToken */: - case 110 /* PlusEqualsToken */: - case 111 /* MinusEqualsToken */: - case 112 /* AsteriskEqualsToken */: - case 121 /* SlashEqualsToken */: - case 113 /* PercentEqualsToken */: - case 109 /* EqualsToken */: + case 120 /* BarEqualsToken */: + case 119 /* AmpersandEqualsToken */: + case 121 /* CaretEqualsToken */: + case 116 /* LessThanLessThanEqualsToken */: + case 117 /* GreaterThanGreaterThanEqualsToken */: + case 118 /* GreaterThanGreaterThanGreaterThanEqualsToken */: + case 112 /* PlusEqualsToken */: + case 113 /* MinusEqualsToken */: + case 114 /* AsteriskEqualsToken */: + case 123 /* SlashEqualsToken */: + case 115 /* PercentEqualsToken */: + case 111 /* EqualsToken */: return true; default: return false; @@ -866,18 +871,18 @@ var TypeScript; SyntaxFacts.isAssignmentOperatorToken = isAssignmentOperatorToken; function isType(kind) { switch (kind) { - case 126 /* ArrayType */: + case 128 /* ArrayType */: case 62 /* AnyKeyword */: - case 69 /* NumberKeyword */: - case 63 /* BooleanKeyword */: - case 71 /* StringKeyword */: + case 71 /* NumberKeyword */: + case 65 /* BooleanKeyword */: + case 73 /* StringKeyword */: case 43 /* VoidKeyword */: - case 125 /* FunctionType */: - case 124 /* ObjectType */: - case 127 /* ConstructorType */: - case 129 /* TypeQuery */: - case 128 /* GenericType */: - case 123 /* QualifiedName */: + case 127 /* FunctionType */: + case 126 /* ObjectType */: + case 129 /* ConstructorType */: + case 131 /* TypeQuery */: + case 130 /* GenericType */: + case 125 /* QualifiedName */: case 9 /* IdentifierName */: return true; } @@ -1103,6 +1108,7 @@ var definitions = [ baseType: 'ISyntaxNode', interfaces: ['IUnaryExpressionSyntax'], children: [ + { name: 'asyncKeyword', isToken: true, isOptional: true }, { name: 'parameter', type: 'ParameterSyntax' }, { name: 'equalsGreaterThanToken', isToken: true, excludeFromAST: true }, { name: 'body', type: 'BlockSyntax | IExpressionSyntax' } @@ -1114,6 +1120,7 @@ var definitions = [ baseType: 'ISyntaxNode', interfaces: ['IUnaryExpressionSyntax'], children: [ + { name: 'asyncKeyword', isToken: true, isOptional: true }, { name: 'callSignature', type: 'CallSignatureSyntax' }, { name: 'equalsGreaterThanToken', isToken: true, excludeFromAST: true }, { name: 'body', type: 'BlockSyntax | IExpressionSyntax' } @@ -1770,6 +1777,7 @@ var definitions = [ baseType: 'ISyntaxNode', interfaces: ['IPropertyAssignmentSyntax'], children: [ + { name: 'asyncKeyword', isToken: true, isOptional: true }, { name: 'asterixToken', isToken: true, isOptional: true }, { name: 'propertyName', type: 'IPropertyNameSyntax' }, { name: 'callSignature', type: 'CallSignatureSyntax' }, @@ -1781,6 +1789,7 @@ var definitions = [ baseType: 'ISyntaxNode', interfaces: ['IPrimaryExpressionSyntax'], children: [ + { name: 'asyncKeyword', isToken: true, isOptional: true }, { name: 'functionKeyword', isToken: true, excludeFromAST: true }, { name: 'asterixToken', isToken: true, isOptional: true }, { name: 'identifier', isToken: true, isOptional: true }, @@ -1888,6 +1897,15 @@ var definitions = [ { name: 'expression', type: 'IExpressionSyntax', isOptional: true } ] }, + { + name: 'AwaitExpressionSyntax', + baseType: 'ISyntaxNode', + interfaces: ['IUnaryExpressionSyntax'], + children: [ + { name: 'awaitKeyword', isToken: true }, + { name: 'expression', type: 'IExpressionSyntax', isOptional: true } + ] + }, { name: 'DebuggerStatementSyntax', baseType: 'ISyntaxNode', @@ -2160,7 +2178,11 @@ function max(array, func) { } function generateUtilities() { var result = ""; - result += " var fixedWidthArray = ["; + return result; +} +function generateScannerUtilities() { + var result = "///\r\n" + "\r\n" + "module TypeScript {\r\n" + " export module ScannerUtilities {\r\n"; + result += " export var fixedWidthArray = ["; for (var i = 0; i <= TypeScript.SyntaxKind.LastFixedWidth; i++) { if (i) { result += ", "; @@ -2173,13 +2195,6 @@ function generateUtilities() { } } result += "];\r\n"; - result += " function fixedWidthTokenLength(kind: SyntaxKind) {\r\n"; - result += " return fixedWidthArray[kind];\r\n"; - result += " }\r\n"; - return result; -} -function generateScannerUtilities() { - var result = "///\r\n" + "\r\n" + "module TypeScript {\r\n" + " export module ScannerUtilities {\r\n"; var i; var keywords = []; for (i = TypeScript.SyntaxKind.FirstKeyword; i <= TypeScript.SyntaxKind.LastKeyword; i++) { diff --git a/src/services/syntax/SyntaxGenerator.js.map b/src/services/syntax/SyntaxGenerator.js.map index 662350f9032..b269df1331f 100644 --- a/src/services/syntax/SyntaxGenerator.js.map +++ b/src/services/syntax/SyntaxGenerator.js.map @@ -10,6 +10,7 @@ <<<<<<< HEAD <<<<<<< HEAD <<<<<<< HEAD +<<<<<<< HEAD <<<<<<< Updated upstream {"version":3,"file":"SyntaxGenerator.js","sourceRoot":"","sources":["file:///C:/VSPro_1/src/typescript/public_cyrusn/src/compiler/sys.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/core/errors.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/core/arrayUtilities.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/core/stringUtilities.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/syntax/syntaxKind.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/syntax/syntaxFacts.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/syntax/SyntaxGenerator.ts"],"names":["getWScriptSystem","getWScriptSystem.readFile","getWScriptSystem.writeFile","getNodeSystem","getNodeSystem.readFile","getNodeSystem.writeFile","getNodeSystem.fileChanged","TypeScript","TypeScript.Errors","TypeScript.Errors.constructor","TypeScript.Errors.argument","TypeScript.Errors.argumentOutOfRange","TypeScript.Errors.argumentNull","TypeScript.Errors.abstract","TypeScript.Errors.notYetImplemented","TypeScript.Errors.invalidOperation","TypeScript.ArrayUtilities","TypeScript.ArrayUtilities.constructor","TypeScript.ArrayUtilities.sequenceEquals","TypeScript.ArrayUtilities.contains","TypeScript.ArrayUtilities.distinct","TypeScript.ArrayUtilities.last","TypeScript.ArrayUtilities.lastOrDefault","TypeScript.ArrayUtilities.firstOrDefault","TypeScript.ArrayUtilities.first","TypeScript.ArrayUtilities.sum","TypeScript.ArrayUtilities.select","TypeScript.ArrayUtilities.where","TypeScript.ArrayUtilities.any","TypeScript.ArrayUtilities.all","TypeScript.ArrayUtilities.binarySearch","TypeScript.ArrayUtilities.createArray","TypeScript.ArrayUtilities.grow","TypeScript.ArrayUtilities.copy","TypeScript.ArrayUtilities.indexOf","TypeScript.StringUtilities","TypeScript.StringUtilities.constructor","TypeScript.StringUtilities.isString","TypeScript.StringUtilities.endsWith","TypeScript.StringUtilities.startsWith","TypeScript.StringUtilities.repeat","TypeScript.SyntaxKind","TypeScript.SyntaxFacts","TypeScript.SyntaxFacts.getTokenKind","TypeScript.SyntaxFacts.getText","TypeScript.SyntaxFacts.isAnyKeyword","TypeScript.SyntaxFacts.isAnyPunctuation","TypeScript.SyntaxFacts.isPrefixUnaryExpressionOperatorToken","TypeScript.SyntaxFacts.isBinaryExpressionOperatorToken","TypeScript.SyntaxFacts.isAssignmentOperatorToken","TypeScript.SyntaxFacts.isType","firstKind","getStringWithoutSuffix","getNameWithoutSuffix","getType","camelCase","getSafeName","generateConstructorFunction","generateSyntaxInterfaces","generateSyntaxInterface","generateNodes","isInterface","generateWalker","firstEnumName","groupBy","generateKeywordCondition","min","max","generateUtilities","generateScannerUtilities","syntaxKindName","generateVisitor"],"mappings":"AA4BA,IAAI,GAAG,GAAW,CAAC;IAEf,SAAS,gBAAgB;QAErBA,IAAIA,GAAGA,GAAGA,IAAIA,aAAaA,CAACA,4BAA4BA,CAACA,CAACA;QAE1DA,IAAIA,UAAUA,GAAGA,IAAIA,aAAaA,CAACA,cAAcA,CAACA,CAACA;QACnDA,UAAUA,CAACA,IAAIA,GAAGA,CAACA,CAAUA;QAE7BA,IAAIA,YAAYA,GAAGA,IAAIA,aAAaA,CAACA,cAAcA,CAACA,CAACA;QACrDA,YAAYA,CAACA,IAAIA,GAAGA,CAACA,CAAYA;QAEjCA,IAAIA,IAAIA,GAAaA,EAAEA,CAACA;QACxBA,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,OAAOA,CAACA,SAASA,CAACA,MAAMA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;YAChDA,IAAIA,CAACA,CAACA,CAACA,GAAGA,OAAOA,CAACA,SAASA,CAACA,IAAIA,CAACA,CAACA,CAACA,CAACA;QACxCA,CAACA;QAEDA,SAASA,QAAQA,CAACA,QAAgBA,EAAEA,QAAiBA;YACjDC,EAAEA,CAACA,CAACA,CAACA,GAAGA,CAACA,UAAUA,CAACA,QAAQA,CAACA,CAACA,CAACA,CAACA;gBAC5BA,MAAMA,CAACA,SAASA,CAACA;YACrBA,CAACA;YACDA,UAAUA,CAACA,IAAIA,EAAEA,CAACA;YAClBA,IAAAA,CAACA;gBACGA,EAAEA,CAACA,CAACA,QAAQA,CAACA,CAACA,CAACA;oBACXA,UAAUA,CAACA,OAAOA,GAAGA,QAAQA,CAACA;oBAC9BA,UAAUA,CAACA,YAAYA,CAACA,QAAQA,CAACA,CAACA;gBACtCA,CAACA;gBACDA,IAAIA,CAACA,CAACA;oBAEFA,UAAUA,CAACA,OAAOA,GAAGA,QAAQA,CAACA;oBAC9BA,UAAUA,CAACA,YAAYA,CAACA,QAAQA,CAACA,CAACA;oBAClCA,IAAIA,GAAGA,GAAGA,UAAUA,CAACA,QAAQA,CAACA,CAACA,CAACA,IAAIA,EAAEA,CAACA;oBAEvCA,UAAUA,CAACA,QAAQA,GAAGA,CAACA,CAACA;oBAExBA,UAAUA,CAACA,OAAOA,GAAGA,GAAGA,CAACA,MAAMA,IAAIA,CAACA,IAAIA,CAACA,GAAGA,CAACA,UAAUA,CAACA,CAACA,CAACA,KAAKA,IAAIA,IAAIA,GAAGA,CAACA,UAAUA,CAACA,CAACA,CAACA,KAAKA,IAAIA,IAAIA,GAAGA,CAACA,UAAUA,CAACA,CAACA,CAACA,KAAKA,IAAIA,IAAIA,GAAGA,CAACA,UAAUA,CAACA,CAACA,CAACA,KAAKA,IAAIA,CAACA,GAAGA,SAASA,GAAGA,OAAOA,CAACA;gBACzLA,CAACA;gBAEDA,MAAMA,CAACA,UAAUA,CAACA,QAAQA,EAAEA,CAACA;YACjCA,CACAA;YAAAA,KAAKA,CAACA,CAACA,CAACA,CAACA,CAATA,CAACA;gBACGA,MAAMA,CAACA,CAACA;YACZA,CAACA;oBACDA,CAACA;gBACGA,UAAUA,CAACA,KAAKA,EAAEA,CAACA;YACvBA,CAACA;QACLA,CAACA;QAEDD,SAASA,SAASA,CAACA,QAAgBA,EAAEA,IAAYA,EAAEA,kBAA4BA;YAC3EE,UAAUA,CAACA,IAAIA,EAAEA,CAACA;YAClBA,YAAYA,CAACA,IAAIA,EAAEA,CAACA;YACpBA,IAAAA,CAACA;gBAEGA,UAAUA,CAACA,OAAOA,GAAGA,OAAOA,CAACA;gBAC7BA,UAAUA,CAACA,SAASA,CAACA,IAAIA,CAACA,CAACA;gBAG3BA,EAAEA,CAACA,CAACA,kBAAkBA,CAACA,CAACA,CAACA;oBACrBA,UAAUA,CAACA,QAAQA,GAAGA,CAACA,CAACA;gBAC5BA,CAACA;gBACDA,IAAIA,CAACA,CAACA;oBACFA,UAAUA,CAACA,QAAQA,GAAGA,CAACA,CAACA;gBAC5BA,CAACA;gBACDA,UAAUA,CAACA,MAAMA,CAACA,YAAYA,CAACA,CAACA;gBAChCA,YAAYA,CAACA,UAAUA,CAACA,QAAQA,EAAEA,CAACA,CAAeA,CAACA;YACvDA,CAACA;oBACDA,CAACA;gBACGA,YAAYA,CAACA,KAAKA,EAAEA,CAACA;gBACrBA,UAAUA,CAACA,KAAKA,EAAEA,CAACA;YACvBA,CAACA;QACLA,CAACA;QAEDF,MAAMA,CAACA;YACHA,IAAIA,EAAEA,IAAIA;YACVA,OAAOA,EAAEA,MAAMA;YACfA,yBAAyBA,EAAEA,KAAKA;YAChCA,KAAKA,EAALA,UAAMA,CAASA;gBACX,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAC5B,CAAC;YACDA,QAAQA,EAAEA,QAAQA;YAClBA,SAASA,EAAEA,SAASA;YACpBA,WAAWA,EAAXA,UAAYA,IAAYA;gBACpB,MAAM,CAAC,GAAG,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;YACzC,CAAC;YACDA,UAAUA,EAAVA,UAAWA,IAAYA;gBACnB,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YAChC,CAAC;YACDA,eAAeA,EAAfA,UAAgBA,IAAYA;gBACxB,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;YAClC,CAAC;YACDA,eAAeA,EAAfA,UAAgBA,aAAqBA;gBACjC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;oBACvC,GAAG,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC;gBACpC,CAAC;YACL,CAAC;YACDA,oBAAoBA,EAApBA;gBACI,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC;YAClC,CAAC;YACDA,mBAAmBA,EAAnBA;gBACI,MAAM,CAAC,IAAI,aAAa,CAAC,eAAe,CAAC,CAAC,gBAAgB,CAAC;YAC/D,CAAC;YACDA,IAAIA,EAAJA,UAAKA,QAAiBA;gBAClB,IAAA,CAAC;oBACG,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBAC3B,CACA;gBAAA,KAAK,CAAC,CAAC,CAAC,CAAC,CAAT,CAAC;gBACD,CAAC;YACL,CAAC;SACJA,CAACA;IACNA,CAACA;IACD,SAAS,aAAa;QAClBG,IAAIA,GAAGA,GAAGA,OAAOA,CAACA,IAAIA,CAACA,CAACA;QACxBA,IAAIA,KAAKA,GAAGA,OAAOA,CAACA,MAAMA,CAACA,CAACA;QAC5BA,IAAIA,GAAGA,GAAGA,OAAOA,CAACA,IAAIA,CAACA,CAACA;QAExBA,IAAIA,QAAQA,GAAWA,GAAGA,CAACA,QAAQA,EAAEA,CAACA;QAEtCA,IAAIA,yBAAyBA,GAAGA,QAAQA,KAAKA,OAAOA,IAAIA,QAAQA,KAAKA,OAAOA,IAAIA,QAAQA,KAAKA,QAAQA,CAACA;QAEtGA,SAASA,QAAQA,CAACA,QAAgBA,EAAEA,QAAiBA;YACjDC,EAAEA,CAACA,CAACA,CAACA,GAAGA,CAACA,UAAUA,CAACA,QAAQA,CAACA,CAACA,CAACA,CAACA;gBAC5BA,MAAMA,CAACA,SAASA,CAACA;YACrBA,CAACA;YACDA,IAAIA,MAAMA,GAAGA,GAAGA,CAACA,YAAYA,CAACA,QAAQA,CAACA,CAACA;YACxCA,IAAIA,GAAGA,GAAGA,MAAMA,CAACA,MAAMA,CAACA;YACxBA,EAAEA,CAACA,CAACA,GAAGA,IAAIA,CAACA,IAAIA,MAAMA,CAACA,CAACA,CAACA,KAAKA,IAAIA,IAAIA,MAAMA,CAACA,CAACA,CAACA,KAAKA,IAAIA,CAACA,CAACA,CAACA;gBAGvDA,GAAGA,IAAIA,CAACA,CAACA,CAACA;gBACVA,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,GAAGA,EAAEA,CAACA,IAAIA,CAACA,EAAEA,CAACA;oBAC9BA,IAAIA,IAAIA,GAAGA,MAAMA,CAACA,CAACA,CAACA,CAACA;oBACrBA,MAAMA,CAACA,CAACA,CAACA,GAAGA,MAAMA,CAACA,CAACA,GAAGA,CAACA,CAACA,CAACA;oBAC1BA,MAAMA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,IAAIA,CAACA;gBACzBA,CAACA;gBACDA,MAAMA,CAACA,MAAMA,CAACA,QAAQA,CAACA,SAASA,EAAEA,CAACA,CAACA,CAACA;YACzCA,CAACA;YACDA,EAAEA,CAACA,CAACA,GAAGA,IAAIA,CAACA,IAAIA,MAAMA,CAACA,CAACA,CAACA,KAAKA,IAAIA,IAAIA,MAAMA,CAACA,CAACA,CAACA,KAAKA,IAAIA,CAACA,CAACA,CAACA;gBAEvDA,MAAMA,CAACA,MAAMA,CAACA,QAAQA,CAACA,SAASA,EAAEA,CAACA,CAACA,CAACA;YACzCA,CAACA;YACDA,EAAEA,CAACA,CAACA,GAAGA,IAAIA,CAACA,IAAIA,MAAMA,CAACA,CAACA,CAACA,KAAKA,IAAIA,IAAIA,MAAMA,CAACA,CAACA,CAACA,KAAKA,IAAIA,IAAIA,MAAMA,CAACA,CAACA,CAACA,KAAKA,IAAIA,CAACA,CAACA,CAACA;gBAE7EA,MAAMA,CAACA,MAAMA,CAACA,QAAQA,CAACA,MAAMA,EAAEA,CAACA,CAACA,CAACA;YACtCA,CAACA;YAEDA,MAAMA,CAACA,MAAMA,CAACA,QAAQA,CAACA,MAAMA,CAACA,CAACA;QACnCA,CAACA;QAEDD,SAASA,SAASA,CAACA,QAAgBA,EAAEA,IAAYA,EAAEA,kBAA4BA;YAE3EE,EAAEA,CAACA,CAACA,kBAAkBA,CAACA,CAACA,CAACA;gBACrBA,IAAIA,GAAGA,QAAQA,GAAGA,IAAIA,CAACA;YAC3BA,CAACA;YAEDA,GAAGA,CAACA,aAAaA,CAACA,QAAQA,EAAEA,IAAIA,EAAEA,MAAMA,CAACA,CAACA;QAC9CA,CAACA;QAEDF,MAAMA,CAACA;YACHA,IAAIA,EAAEA,OAAOA,CAACA,IAAIA,CAACA,KAAKA,CAACA,CAACA,CAACA;YAC3BA,OAAOA,EAAEA,GAAGA,CAACA,GAAGA;YAChBA,yBAAyBA,EAAEA,yBAAyBA;YACpDA,KAAKA,EAALA,UAAMA,CAASA;gBAEZ,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YACvB,CAAC;YACDA,QAAQA,EAAEA,QAAQA;YAClBA,SAASA,EAAEA,SAASA;YACpBA,SAASA,EAAEA,UAACA,QAAQA,EAAEA,QAAQA;gBAE1BA,GAAGA,CAACA,SAASA,CAACA,QAAQA,EAAEA,EAAEA,UAAUA,EAAEA,IAAIA,EAAEA,QAAQA,EAAEA,GAAGA,EAAEA,EAAEA,WAAWA,CAACA,CAACA;gBAE1EA,MAAMA,CAACA;oBACHA,KAAKA,EAALA;wBAAU,GAAG,CAAC,WAAW,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;oBAAC,CAAC;iBACtDA,CAACA;gBAEFA,SAASA,WAAWA,CAACA,IAASA,EAAEA,IAASA;oBACrCG,EAAEA,CAACA,CAACA,CAACA,IAAIA,CAACA,KAAKA,IAAIA,CAACA,IAAIA,CAACA,KAAKA,CAACA,CAACA,CAACA;wBAC7BA,MAAMA,CAACA;oBACXA,CAACA;oBAEDA,QAAQA,CAACA,QAAQA,CAACA,CAACA;gBACvBA,CAACA;gBAAAH,CAACA;YACNA,CAACA;YACDA,WAAWA,EAAEA,UAAUA,IAAYA;gBAC/B,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAC/B,CAAC;YACDA,UAAUA,EAAVA,UAAWA,IAAYA;gBACnB,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YAChC,CAAC;YACDA,eAAeA,EAAfA,UAAgBA,IAAYA;gBACxB,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC;YACpE,CAAC;YACDA,eAAeA,EAAfA,UAAgBA,aAAqBA;gBACjC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;oBACvC,GAAG,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;gBACjC,CAAC;YACL,CAAC;YACDA,oBAAoBA,EAApBA;gBACI,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC;YACvC,CAAC;YACDA,mBAAmBA,EAAnBA;gBACI,MAAM,CAAO,OAAQ,CAAC,GAAG,EAAE,CAAC;YAChC,CAAC;YACDA,cAAcA,EAAdA;gBACI,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;oBACZ,MAAM,CAAC,EAAE,EAAE,CAAC;gBAChB,CAAC;gBACD,MAAM,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC;YAC1C,CAAC;YACDA,IAAIA,EAAJA,UAAKA,QAAiBA;gBAClB,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC3B,CAAC;SACJA,CAACA;IACNA,CAACA;IACD,EAAE,CAAC,CAAC,OAAO,OAAO,KAAK,WAAW,IAAI,OAAO,aAAa,KAAK,UAAU,CAAC,CAAC,CAAC;QACxE,MAAM,CAAC,gBAAgB,EAAE,CAAC;IAC9B,CAAC;IACD,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,KAAK,WAAW,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;QACvD,MAAM,CAAC,aAAa,EAAE,CAAC;IAC3B,CAAC;IACD,IAAI,CAAC,CAAC;QACF,MAAM,CAAC,SAAS,CAAC;IACrB,CAAC;AACL,CAAC,CAAC,EAAE,CAAC;ACzPL,IAAO,UAAU,CA0BhB;AA1BD,WAAO,UAAU,EAAC,CAAC;IACfI,IAAaA,MAAMA;QAAnBC,SAAaA,MAAMA;QAwBnBC,CAACA;QAvBiBD,eAAQA,GAAtBA,UAAuBA,QAAgBA,EAAEA,OAAgBA;YACrDE,MAAMA,CAACA,IAAIA,KAAKA,CAACA,oBAAoBA,GAAGA,QAAQA,GAAGA,IAAIA,GAAGA,OAAOA,CAACA,CAACA;QACvEA,CAACA;QAEaF,yBAAkBA,GAAhCA,UAAiCA,QAAgBA;YAC7CG,MAAMA,CAACA,IAAIA,KAAKA,CAACA,yBAAyBA,GAAGA,QAAQA,CAACA,CAACA;QAC3DA,CAACA;QAEaH,mBAAYA,GAA1BA,UAA2BA,QAAgBA;YACvCI,MAAMA,CAACA,IAAIA,KAAKA,CAACA,iBAAiBA,GAAGA,QAAQA,CAACA,CAACA;QACnDA,CAACA;QAEaJ,eAAQA,GAAtBA;YACIK,MAAMA,CAACA,IAAIA,KAAKA,CAACA,iDAAiDA,CAACA,CAACA;QACxEA,CAACA;QAEaL,wBAAiBA,GAA/BA;YACIM,MAAMA,CAACA,IAAIA,KAAKA,CAACA,sBAAsBA,CAACA,CAACA;QAC7CA,CAACA;QAEaN,uBAAgBA,GAA9BA,UAA+BA,OAAgBA;YAC3CO,MAAMA,CAACA,IAAIA,KAAKA,CAACA,qBAAqBA,GAAGA,OAAOA,CAACA,CAACA;QACtDA,CAACA;QACLP,aAACA;IAADA,CAACA,AAxBDD,IAwBCA;IAxBYA,iBAAMA,GAANA,MAwBZA,CAAAA;AACLA,CAACA,EA1BM,UAAU,KAAV,UAAU,QA0BhB;AC1BD,IAAO,UAAU,CA0MhB;AA1MD,WAAO,UAAU,EAAC,CAAC;IACfA,IAAaA,cAAcA;QAA3BS,SAAaA,cAAcA;QAwM3BC,CAACA;QAvMiBD,6BAAcA,GAA5BA,UAAgCA,MAAWA,EAAEA,MAAWA,EAAEA,MAAiCA;YACvFE,EAAEA,CAACA,CAACA,MAAMA,KAAKA,MAAMA,CAACA,CAACA,CAACA;gBACpBA,MAAMA,CAACA,IAAIA,CAACA;YAChBA,CAACA;YAEDA,EAAEA,CAACA,CAACA,CAACA,MAAMA,IAAIA,CAACA,MAAMA,CAACA,CAACA,CAACA;gBACrBA,MAAMA,CAACA,KAAKA,CAACA;YACjBA,CAACA;YAEDA,EAAEA,CAACA,CAACA,MAAMA,CAACA,MAAMA,KAAKA,MAAMA,CAACA,MAAMA,CAACA,CAACA,CAACA;gBAClCA,MAAMA,CAACA,KAAKA,CAACA;YACjBA,CAACA;YAEDA,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,MAAMA,CAACA,MAAMA,EAAEA,CAACA,GAAGA,CAACA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;gBAC5CA,EAAEA,CAACA,CAACA,CAACA,MAAMA,CAACA,MAAMA,CAACA,CAACA,CAACA,EAAEA,MAAMA,CAACA,CAACA,CAACA,CAACA,CAACA,CAACA,CAACA;oBAChCA,MAAMA,CAACA,KAAKA,CAACA;gBACjBA,CAACA;YACLA,CAACA;YAEDA,MAAMA,CAACA,IAAIA,CAACA;QAChBA,CAACA;QAEaF,uBAAQA,GAAtBA,UAA0BA,KAAUA,EAAEA,KAAQA;YAC1CG,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,KAAKA,CAACA,MAAMA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;gBACpCA,EAAEA,CAACA,CAACA,KAAKA,CAACA,CAACA,CAACA,KAAKA,KAAKA,CAACA,CAACA,CAACA;oBACrBA,MAAMA,CAACA,IAAIA,CAACA;gBAChBA,CAACA;YACLA,CAACA;YAEDA,MAAMA,CAACA,KAAKA,CAACA;QACjBA,CAACA;QAGaH,uBAAQA,GAAtBA,UAA0BA,KAAUA,EAAEA,QAAkCA;YACpEI,IAAIA,MAAMA,GAAQA,EAAEA,CAACA;YAGrBA,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,KAAKA,CAACA,MAAMA,EAAEA,CAACA,GAAGA,CAACA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;gBAC3CA,IAAIA,OAAOA,GAAGA,KAAKA,CAACA,CAACA,CAACA,CAACA;gBACvBA,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,MAAMA,CAACA,MAAMA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;oBACrCA,EAAEA,CAACA,CAACA,QAAQA,CAACA,MAAMA,CAACA,CAACA,CAACA,EAAEA,OAAOA,CAACA,CAACA,CAACA,CAACA;wBAC/BA,KAAKA,CAACA;oBACVA,CAACA;gBACLA,CAACA;gBAEDA,EAAEA,CAACA,CAACA,CAACA,KAAKA,MAAMA,CAACA,MAAMA,CAACA,CAACA,CAACA;oBACtBA,MAAMA,CAACA,IAAIA,CAACA,OAAOA,CAACA,CAACA;gBACzBA,CAACA;YACLA,CAACA;YAEDA,MAAMA,CAACA,MAAMA,CAACA;QAClBA,CAACA;QAEaJ,mBAAIA,GAAlBA,UAAsBA,KAAUA;YAC5BK,EAAEA,CAACA,CAACA,KAAKA,CAACA,MAAMA,KAAKA,CAACA,CAACA,CAACA,CAACA;gBACrBA,MAAMA,iBAAMA,CAACA,kBAAkBA,CAACA,OAAOA,CAACA,CAACA;YAC7CA,CAACA;YAEDA,MAAMA,CAACA,KAAKA,CAACA,KAAKA,CAACA,MAAMA,GAAGA,CAACA,CAACA,CAACA;QACnCA,CAACA;QAEaL,4BAAaA,GAA3BA,UAA+BA,KAAUA,EAAEA,SAA2CA;YAClFM,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,KAAKA,CAACA,MAAMA,GAAGA,CAACA,EAAEA,CAACA,IAAIA,CAACA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;gBACzCA,IAAIA,CAACA,GAAGA,KAAKA,CAACA,CAACA,CAACA,CAACA;gBACjBA,EAAEA,CAACA,CAACA,SAASA,CAACA,CAACA,EAAEA,CAACA,CAACA,CAACA,CAACA,CAACA;oBAClBA,MAAMA,CAACA,CAACA,CAACA;gBACbA,CAACA;YACLA,CAACA;YAEDA,MAAMA,CAACA,SAASA,CAACA;QACrBA,CAACA;QAEaN,6BAAcA,GAA5BA,UAAgCA,KAAUA,EAAEA,IAAsCA;YAC9EO,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,KAAKA,CAACA,MAAMA,EAAEA,CAACA,GAAGA,CAACA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;gBAC3CA,IAAIA,KAAKA,GAAGA,KAAKA,CAACA,CAACA,CAACA,CAACA;gBACrBA,EAAEA,CAACA,CAACA,IAAIA,CAACA,KAAKA,EAAEA,CAACA,CAACA,CAACA,CAACA,CAACA;oBACjBA,MAAMA,CAACA,KAAKA,CAACA;gBACjBA,CAACA;YACLA,CAACA;YAEDA,MAAMA,CAACA,SAASA,CAACA;QACrBA,CAACA;QAEaP,oBAAKA,GAAnBA,UAAuBA,KAAUA,EAAEA,IAAuCA;YACtEQ,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,KAAKA,CAACA,MAAMA,EAAEA,CAACA,GAAGA,CAACA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;gBAC3CA,IAAIA,KAAKA,GAAGA,KAAKA,CAACA,CAACA,CAACA,CAACA;gBACrBA,EAAEA,CAACA,CAACA,CAACA,IAAIA,IAAIA,IAAIA,CAACA,KAAKA,EAAEA,CAACA,CAACA,CAACA,CAACA,CAACA;oBAC1BA,MAAMA,CAACA,KAAKA,CAACA;gBACjBA,CAACA;YACLA,CAACA;YAEDA,MAAMA,iBAAMA,CAACA,gBAAgBA,EAAEA,CAACA;QACpCA,CAACA;QAEaR,kBAAGA,GAAjBA,UAAqBA,KAAUA,EAAEA,IAAsBA;YACnDS,IAAIA,MAAMA,GAAGA,CAACA,CAACA;YAEfA,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,KAAKA,CAACA,MAAMA,EAAEA,CAACA,GAAGA,CAACA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;gBAC3CA,MAAMA,IAAIA,IAAIA,CAACA,KAAKA,CAACA,CAACA,CAACA,CAACA,CAACA;YAC7BA,CAACA;YAEDA,MAAMA,CAACA,MAAMA,CAACA;QAClBA,CAACA;QAEaT,qBAAMA,GAApBA,UAA0BA,MAAWA,EAAEA,IAAiBA;YACpDU,IAAIA,MAAMA,GAAQA,IAAIA,KAAKA,CAAIA,MAAMA,CAACA,MAAMA,CAACA,CAACA;YAE9CA,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,MAAMA,CAACA,MAAMA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;gBACrCA,MAAMA,CAACA,CAACA,CAACA,GAAGA,IAAIA,CAACA,MAAMA,CAACA,CAACA,CAACA,CAACA,CAACA;YAChCA,CAACA;YAEDA,MAAMA,CAACA,MAAMA,CAACA;QAClBA,CAACA;QAEaV,oBAAKA,GAAnBA,UAAuBA,MAAWA,EAAEA,IAAuBA;YACvDW,IAAIA,MAAMA,GAAGA,IAAIA,KAAKA,EAAKA,CAACA;YAE5BA,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,MAAMA,CAACA,MAAMA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;gBACrCA,EAAEA,CAACA,CAACA,IAAIA,CAACA,MAAMA,CAACA,CAACA,CAACA,CAACA,CAACA,CAACA,CAACA;oBAClBA,MAAMA,CAACA,IAAIA,CAACA,MAAMA,CAACA,CAACA,CAACA,CAACA,CAACA;gBAC3BA,CAACA;YACLA,CAACA;YAEDA,MAAMA,CAACA,MAAMA,CAACA;QAClBA,CAACA;QAEaX,kBAAGA,GAAjBA,UAAqBA,KAAUA,EAAEA,IAAuBA;YACpDY,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,KAAKA,CAACA,MAAMA,EAAEA,CAACA,GAAGA,CAACA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;gBAC3CA,EAAEA,CAACA,CAACA,IAAIA,CAACA,KAAKA,CAACA,CAACA,CAACA,CAACA,CAACA,CAACA,CAACA;oBACjBA,MAAMA,CAACA,IAAIA,CAACA;gBAChBA,CAACA;YACLA,CAACA;YAEDA,MAAMA,CAACA,KAAKA,CAACA;QACjBA,CAACA;QAEaZ,kBAAGA,GAAjBA,UAAqBA,KAAUA,EAAEA,IAAuBA;YACpDa,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,KAAKA,CAACA,MAAMA,EAAEA,CAACA,GAAGA,CAACA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;gBAC3CA,EAAEA,CAACA,CAACA,CAACA,IAAIA,CAACA,KAAKA,CAACA,CAACA,CAACA,CAACA,CAACA,CAACA,CAACA;oBAClBA,MAAMA,CAACA,KAAKA,CAACA;gBACjBA,CAACA;YACLA,CAACA;YAEDA,MAAMA,CAACA,IAAIA,CAACA;QAChBA,CAACA;QAEab,2BAAYA,GAA1BA,UAA2BA,KAAeA,EAAEA,KAAaA;YACrDc,IAAIA,GAAGA,GAAGA,CAACA,CAACA;YACZA,IAAIA,IAAIA,GAAGA,KAAKA,CAACA,MAAMA,GAAGA,CAACA,CAACA;YAE5BA,OAAOA,GAAGA,IAAIA,IAAIA,EAAEA,CAACA;gBACjBA,IAAIA,MAAMA,GAAGA,GAAGA,GAAGA,CAACA,CAACA,IAAIA,GAAGA,GAAGA,CAACA,IAAIA,CAACA,CAACA,CAACA;gBACvCA,IAAIA,QAAQA,GAAGA,KAAKA,CAACA,MAAMA,CAACA,CAACA;gBAE7BA,EAAEA,CAACA,CAACA,QAAQA,KAAKA,KAAKA,CAACA,CAACA,CAACA;oBACrBA,MAAMA,CAACA,MAAMA,CAACA;gBAClBA,CAACA;gBACDA,IAAIA,CAACA,EAAEA,CAACA,CAACA,QAAQA,GAAGA,KAAKA,CAACA,CAACA,CAACA;oBACxBA,IAAIA,GAAGA,MAAMA,GAAGA,CAACA,CAACA;gBACtBA,CAACA;gBACDA,IAAIA,CAACA,CAACA;oBACFA,GAAGA,GAAGA,MAAMA,GAAGA,CAACA,CAACA;gBACrBA,CAACA;YACLA,CAACA;YAEDA,MAAMA,CAACA,CAACA,GAAGA,CAACA;QAChBA,CAACA;QAEad,0BAAWA,GAAzBA,UAA6BA,MAAcA,EAAEA,YAAiBA;YAC1De,IAAIA,MAAMA,GAAGA,IAAIA,KAAKA,CAAIA,MAAMA,CAACA,CAACA;YAClCA,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,MAAMA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;gBAC9BA,MAAMA,CAACA,CAACA,CAACA,GAAGA,YAAYA,CAACA;YAC7BA,CAACA;YAEDA,MAAMA,CAACA,MAAMA,CAACA;QAClBA,CAACA;QAEaf,mBAAIA,GAAlBA,UAAsBA,KAAUA,EAAEA,MAAcA,EAAEA,YAAeA;YAC7DgB,IAAIA,KAAKA,GAAGA,MAAMA,GAAGA,KAAKA,CAACA,MAAMA,CAACA;YAClCA,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,KAAKA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;gBAC7BA,KAAKA,CAACA,IAAIA,CAACA,YAAYA,CAACA,CAACA;YAC7BA,CAACA;QACLA,CAACA;QAEahB,mBAAIA,GAAlBA,UAAsBA,WAAgBA,EAAEA,WAAmBA,EAAEA,gBAAqBA,EAAEA,gBAAwBA,EAAEA,MAAcA;YACxHiB,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,MAAMA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;gBAC9BA,gBAAgBA,CAACA,gBAAgBA,GAAGA,CAACA,CAACA,GAAGA,WAAWA,CAACA,WAAWA,GAAGA,CAACA,CAACA,CAACA;YAC1EA,CAACA;QACLA,CAACA;QAEajB,sBAAOA,GAArBA,UAAyBA,KAAUA,EAAEA,SAA4BA;YAC7DkB,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,KAAKA,CAACA,MAAMA,EAAEA,CAACA,GAAGA,CAACA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;gBAC3CA,EAAEA,CAACA,CAACA,SAASA,CAACA,KAAKA,CAACA,CAACA,CAACA,CAACA,CAACA,CAACA,CAACA;oBACtBA,MAAMA,CAACA,CAACA,CAACA;gBACbA,CAACA;YACLA,CAACA;YAEDA,MAAMA,CAACA,CAACA,CAACA,CAACA;QACdA,CAACA;QACLlB,qBAACA;IAADA,CAACA,AAxMDT,IAwMCA;IAxMYA,yBAAcA,GAAdA,cAwMZA,CAAAA;AACLA,CAACA,EA1MM,UAAU,KAAV,UAAU,QA0MhB;AC1MD,IAAO,UAAU,CAkBhB;AAlBD,WAAO,UAAU,EAAC,CAAC;IACfA,IAAaA,eAAeA;QAA5B4B,SAAaA,eAAeA;QAgB5BC,CAACA;QAfiBD,wBAAQA,GAAtBA,UAAuBA,KAAUA;YAC7BE,MAAMA,CAACA,MAAMA,CAACA,SAASA,CAACA,QAAQA,CAACA,KAAKA,CAACA,KAAKA,EAAEA,EAAEA,CAACA,KAAKA,iBAAiBA,CAACA;QAC5EA,CAACA;QAEaF,wBAAQA,GAAtBA,UAAuBA,MAAcA,EAAEA,KAAaA;YAChDG,MAAMA,CAACA,MAAMA,CAACA,SAASA,CAACA,MAAMA,CAACA,MAAMA,GAAGA,KAAKA,CAACA,MAAMA,EAAEA,MAAMA,CAACA,MAAMA,CAACA,KAAKA,KAAKA,CAACA;QACnFA,CAACA;QAEaH,0BAAUA,GAAxBA,UAAyBA,MAAcA,EAAEA,KAAaA;YAClDI,MAAMA,CAACA,MAAMA,CAACA,MAAMA,CAACA,CAACA,EAAEA,KAAKA,CAACA,MAAMA,CAACA,KAAKA,KAAKA,CAACA;QACpDA,CAACA;QAEaJ,sBAAMA,GAApBA,UAAqBA,KAAaA,EAAEA,KAAaA;YAC7CK,MAAMA,CAACA,KAAKA,CAACA,KAAKA,GAAGA,CAACA,CAACA,CAACA,IAAIA,CAACA,KAAKA,CAACA,CAACA;QACxCA,CAACA;QACLL,sBAACA;IAADA,CAACA,AAhBD5B,IAgBCA;IAhBYA,0BAAeA,GAAfA,eAgBZA,CAAAA;AACLA,CAACA,EAlBM,UAAU,KAAV,UAAU,QAkBhB;AClBD,IAAO,UAAU,CA4ShB;AA5SD,WAAO,UAAU,EAAC,CAAC;IACfA,WAAYA,UAAUA;QAElBkC,2CAAIA;QACJA,2CAAIA;QAGJA,mEAAgBA;QAChBA,6DAAaA;QACbA,+EAAsBA;QACtBA,iFAAuBA;QACvBA,uEAAkBA;QAIlBA,uDAAUA;QACVA,+DAAcA;QAGdA,+DAAcA;QAGdA,oFAAwBA;QACxBA,gEAAcA;QACdA,8DAAaA;QAGbA,0FAA2BA;QAC3BA,wEAAkBA;QAClBA,0EAAmBA;QACnBA,oEAAgBA;QAKhBA,4DAAYA;QACZA,0DAAWA;QACXA,4DAAYA;QACZA,kEAAeA;QACfA,kEAAeA;QACfA,gEAAcA;QACdA,8DAAaA;QACbA,sDAASA;QACTA,0DAAWA;QACXA,4DAAYA;QACZA,gEAAcA;QACdA,wDAAUA;QACVA,kEAAeA;QACfA,sDAASA;QACTA,sDAASA;QACTA,sEAAiBA;QACjBA,wDAAUA;QACVA,0DAAWA;QACXA,8DAAaA;QACbA,8DAAaA;QACbA,0DAAWA;QACXA,4DAAYA;QACZA,0DAAWA;QACXA,wDAAUA;QACVA,8DAAaA;QACbA,wDAAUA;QACVA,0DAAWA;QACXA,4DAAYA;QACZA,0DAAWA;QAGXA,4DAAYA;QACZA,4DAAYA;QACZA,0DAAWA;QACXA,8DAAaA;QACbA,gEAAcA;QACdA,8DAAaA;QACbA,4DAAYA;QAGZA,sEAAiBA;QACjBA,oEAAgBA;QAChBA,wDAAUA;QACVA,gEAAcA;QACdA,gEAAcA;QACdA,oEAAgBA;QAChBA,8DAAaA;QACbA,8DAAaA;QACbA,4DAAYA;QAGZA,wDAAUA;QACVA,gEAAcA;QACdA,wEAAkBA;QAClBA,gEAAcA;QACdA,wDAAUA;QACVA,8DAAaA;QACbA,gEAAcA;QACdA,8DAAaA;QACbA,wDAAUA;QACVA,8DAAaA;QAGbA,gEAAcA;QACdA,kEAAeA;QACfA,gEAAcA;QACdA,kEAAeA;QACfA,oEAAgBA;QAChBA,sEAAiBA;QACjBA,oDAAQA;QACRA,gEAAcA;QACdA,gEAAcA;QACdA,wDAAUA;QACVA,8DAAaA;QACbA,oEAAgBA;QAChBA,0EAAmBA;QACnBA,gFAAsBA;QACtBA,sEAAiBA;QACjBA,gFAAsBA;QACtBA,gFAAsBA;QACtBA,kFAAuBA;QACvBA,4FAA4BA;QAC5BA,sDAASA;QACTA,wDAAUA;QACVA,8DAAaA;QACbA,4DAAYA;QACZA,8DAAaA;QACbA,kEAAeA;QACfA,8EAAqBA;QACrBA,0FAA2BA;QAC3BA,gHAAsCA;QACtCA,iEAAcA;QACdA,qDAAQA;QACRA,yDAAUA;QACVA,qEAAgBA;QAChBA,yDAAUA;QACVA,mFAAuBA;QACvBA,2DAAWA;QACXA,+DAAaA;QACbA,yDAAUA;QACVA,2DAAWA;QACXA,mEAAeA;QACfA,qEAAgBA;QAChBA,2EAAmBA;QACnBA,yEAAkBA;QAClBA,2FAA2BA;QAC3BA,uGAAiCA;QACjCA,6HAA4CA;QAC5CA,6EAAoBA;QACpBA,iEAAcA;QACdA,qEAAgBA;QAChBA,yDAAUA;QACVA,qEAAgBA;QAGhBA,yDAAUA;QAGVA,+DAAaA;QAGbA,yDAAUA;QACVA,6DAAYA;QACZA,uDAASA;QACTA,mEAAeA;QACfA,2DAAWA;QACXA,uDAASA;QACTA,uDAASA;QACTA,uDAASA;QACTA,uEAAiBA;QAGjBA,6EAAoBA;QACpBA,2EAAmBA;QACnBA,uEAAiBA;QACjBA,qEAAgBA;QAChBA,mEAAeA;QACfA,uEAAiBA;QACjBA,qEAAgBA;QAGhBA,uFAAyBA;QACzBA,uFAAyBA;QACzBA,iFAAsBA;QACtBA,iFAAsBA;QAGtBA,2DAAWA;QACXA,2DAAWA;QAGXA,uEAAiBA;QACjBA,+DAAaA;QACbA,yEAAkBA;QAClBA,iEAAcA;QACdA,mEAAeA;QAGfA,+CAAKA;QACLA,2DAAWA;QACXA,uEAAiBA;QACjBA,2EAAmBA;QACnBA,mEAAeA;QACfA,mEAAeA;QACfA,iEAAcA;QACdA,uEAAiBA;QACjBA,6DAAYA;QACZA,iEAAcA;QACdA,iEAAcA;QACdA,iEAAcA;QACdA,iEAAcA;QACdA,6DAAYA;QACZA,qEAAgBA;QAChBA,2DAAWA;QACXA,uEAAiBA;QACjBA,+DAAaA;QAGbA,+EAAqBA;QACrBA,qEAAgBA;QAChBA,qEAAgBA;QAChBA,iEAAcA;QACdA,+EAAqBA;QACrBA,qEAAgBA;QAChBA,iFAAsBA;QACtBA,iFAAsBA;QACtBA,6EAAoBA;QACpBA,iFAAsBA;QACtBA,mFAAuBA;QACvBA,qFAAwBA;QACxBA,mFAAuBA;QACvBA,6GAAoCA;QACpCA,+FAA6BA;QAC7BA,iEAAcA;QACdA,mFAAuBA;QACvBA,yEAAkBA;QAClBA,uEAAiBA;QACjBA,yEAAkBA;QAClBA,qFAAwBA;QAGxBA,2EAAmBA;QACnBA,yEAAkBA;QAGlBA,6DAAYA;QACZA,+DAAaA;QACbA,qEAAgBA;QAChBA,uEAAiBA;QAGjBA,iEAAcA;QACdA,uEAAiBA;QACjBA,qEAAgBA;QAChBA,2EAAmBA;QACnBA,yDAAUA;QACVA,2DAAWA;QACXA,+DAAaA;QACbA,iEAAcA;QAGdA,+DAAaA;QACbA,yDAAUA;QAGVA,qFAAwBA;QACxBA,yFAA0BA;QAG1BA,uDAASA;QACTA,2DAAWA;QACXA,iEAAcA;QACdA,mFAAuBA;QACvBA,uFAAyBA;QAEzBA,gDAAuBA,uBAAYA,0BAAAA;QACnCA,+CAAsBA,sBAAWA,yBAAAA;QAEjCA,sDAA6BA,uBAAYA,gCAAAA;QACzCA,qDAA4BA,uBAAYA,+BAAAA;QAExCA,4DAAmCA,4BAAiBA,sCAAAA;QACpDA,2DAAkCA,uBAAYA,qCAAAA;QAE9CA,kDAAyBA,qBAAUA,4BAAAA;QACnCA,iDAAwBA,wBAAaA,2BAAAA;QAErCA,wCAAeA,+BAAoBA,kBAAAA;QACnCA,uCAAcA,gCAAqBA,iBAAAA;QAEnCA,sCAAaA,qBAAUA,gBAAAA;QACvBA,qCAAYA,2BAAgBA,eAAAA;QAE5BA,4CAAmBA,yBAAcA,sBAAAA;QACjCA,2CAAkBA,2BAAgBA,qBAAAA;QAElCA,2CAAkBA,uBAAYA,qBAAAA;QAC9BA,0CAAiBA,0BAAeA,oBAAAA;QAEhCA,uCAAcA,2BAAgBA,iBAAAA;QAC9BA,sCAAaA,6BAAkBA,gBAAAA;QAE/BA,qCAAYA,qBAAUA,eAAAA;QACtBA,oCAAWA,oCAAyBA,cAAAA;IACxCA,CAACA,EA1SWlC,qBAAUA,KAAVA,qBAAUA,QA0SrBA;IA1SDA,IAAYA,UAAUA,GAAVA,qBA0SXA,CAAAA;AACLA,CAACA,EA5SM,UAAU,KAAV,UAAU,QA4ShB;AC5SD,IAAO,UAAU,CAoPhB;AApPD,WAAO,UAAU;IAACA,IAAAA,WAAWA,CAoP5BA;IApPiBA,WAAAA,WAAWA,EAACA,CAACA;QAC3BmC,IAAIA,iBAAiBA,GAAQA;YACzBA,KAAKA,EAAEA,mBAAqBA;YAC5BA,SAASA,EAAEA,uBAAyBA;YACpCA,OAAOA,EAAEA,qBAAuBA;YAChCA,MAAMA,EAAEA,oBAAsBA;YAC9BA,OAAOA,EAAEA,qBAAuBA;YAChCA,OAAOA,EAAEA,qBAAuBA;YAChCA,UAAUA,EAAEA,wBAA0BA;YACtCA,OAAOA,EAAEA,qBAAuBA;YAChCA,aAAaA,EAAEA,2BAA6BA;YAC5CA,UAAUA,EAAEA,wBAA0BA;YACtCA,SAASA,EAAEA,uBAAyBA;YACpCA,SAASA,EAAEA,uBAAyBA;YACpCA,QAAQA,EAAEA,sBAAwBA;YAClCA,IAAIA,EAAEA,kBAAoBA;YAC1BA,MAAMA,EAAEA,oBAAsBA;YAC9BA,MAAMA,EAAEA,oBAAsBA;YAC9BA,QAAQA,EAAEA,sBAAwBA;YAClCA,SAASA,EAAEA,uBAAyBA;YACpCA,OAAOA,EAAEA,qBAAuBA;YAChCA,SAASA,EAAEA,uBAAyBA;YACpCA,KAAKA,EAAEA,mBAAqBA;YAC5BA,UAAUA,EAAEA,wBAA0BA;YACtCA,KAAKA,EAAEA,mBAAqBA;YAC5BA,IAAIA,EAAEA,kBAAoBA;YAC1BA,YAAYA,EAAEA,0BAA4BA;YAC1CA,QAAQA,EAAEA,sBAAwBA;YAClCA,IAAIA,EAAEA,kBAAoBA;YAC1BA,YAAYA,EAAEA,0BAA4BA;YAC1CA,WAAWA,EAAEA,yBAA2BA;YACxCA,KAAKA,EAAEA,mBAAqBA;YAC5BA,QAAQA,EAAEA,sBAAwBA;YAClCA,KAAKA,EAAEA,mBAAqBA;YAC5BA,MAAMA,EAAEA,oBAAsBA;YAC9BA,QAAQA,EAACA,sBAAwBA;YACjCA,SAASA,EAAEA,uBAAyBA;YACpCA,SAASA,EAAEA,uBAAyBA;YACpCA,WAAWA,EAAEA,yBAA2BA;YACxCA,QAAQA,EAAEA,sBAAwBA;YAClCA,SAASA,EAAEA,uBAAyBA;YACpCA,QAAQA,EAAEA,sBAAwBA;YAClCA,KAAKA,EAAEA,mBAAqBA;YAC5BA,QAAQA,EAAEA,sBAAwBA;YAClCA,QAAQA,EAAEA,sBAAwBA;YAClCA,OAAOA,EAAEA,qBAAuBA;YAChCA,QAAQA,EAAEA,sBAAwBA;YAClCA,MAAMA,EAAEA,oBAAsBA;YAC9BA,OAAOA,EAAEA,qBAAuBA;YAChCA,MAAMA,EAAEA,oBAAsBA;YAC9BA,KAAKA,EAAEA,mBAAqBA;YAC5BA,QAAQA,EAAEA,sBAAwBA;YAClCA,KAAKA,EAAEA,mBAAqBA;YAC5BA,MAAMA,EAAEA,oBAAsBA;YAC9BA,OAAOA,EAAEA,qBAAuBA;YAChCA,MAAMA,EAAEA,oBAAsBA;YAC9BA,OAAOA,EAAEA,qBAAuBA;YAEhCA,GAAGA,EAAEA,uBAAyBA;YAC9BA,GAAGA,EAAEA,wBAA0BA;YAC/BA,GAAGA,EAAEA,uBAAyBA;YAC9BA,GAAGA,EAAEA,wBAA0BA;YAC/BA,GAAGA,EAAEA,yBAA2BA;YAChCA,GAAGA,EAAEA,0BAA4BA;YACjCA,GAAGA,EAAEA,iBAAmBA;YACxBA,KAAKA,EAAEA,uBAAyBA;YAChCA,GAAGA,EAAEA,uBAAyBA;YAC9BA,GAAGA,EAAEA,mBAAqBA;YAC1BA,GAAGA,EAAEA,sBAAwBA;YAC7BA,GAAGA,EAAEA,yBAA2BA;YAChCA,IAAIA,EAAEA,4BAA8BA;YACpCA,IAAIA,EAAEA,+BAAiCA;YACvCA,IAAIA,EAAEA,0BAA4BA;YAClCA,IAAIA,EAAEA,+BAAiCA;YACvCA,IAAIA,EAAEA,+BAAiCA;YACvCA,KAAKA,EAAEA,gCAAkCA;YACzCA,KAAKA,EAAEA,qCAAuCA;YAC9CA,GAAGA,EAAEA,kBAAoBA;YACzBA,GAAGA,EAAEA,mBAAqBA;YAC1BA,GAAGA,EAAEA,sBAAwBA;YAC7BA,GAAGA,EAAEA,qBAAuBA;YAC5BA,IAAIA,EAAEA,sBAAwBA;YAC9BA,IAAIA,EAAEA,wBAA0BA;YAChCA,IAAIA,EAAEA,8BAAgCA;YACtCA,IAAIA,EAAEA,oCAAsCA;YAC5CA,KAAKA,EAAEA,+CAAiDA;YACxDA,GAAGA,EAAEA,wBAAyBA;YAC9BA,GAAGA,EAAEA,kBAAmBA;YACxBA,GAAGA,EAAEA,oBAAqBA;YAC1BA,GAAGA,EAAEA,0BAA2BA;YAChCA,GAAGA,EAAEA,oBAAqBA;YAC1BA,IAAIA,EAAEA,iCAAkCA;YACxCA,IAAIA,EAAEA,qBAAsBA;YAC5BA,GAAGA,EAAEA,uBAAwBA;YAC7BA,GAAGA,EAAEA,oBAAqBA;YAC1BA,GAAGA,EAAEA,qBAAsBA;YAC3BA,IAAIA,EAAEA,yBAA0BA;YAChCA,IAAIA,EAAEA,0BAA2BA;YACjCA,IAAIA,EAAEA,6BAA8BA;YACpCA,IAAIA,EAAEA,4BAA6BA;YACnCA,KAAKA,EAAEA,qCAAsCA;YAC7CA,KAAKA,EAAEA,2CAA4CA;YACnDA,MAAMA,EAAEA,sDAAuDA;YAC/DA,IAAIA,EAAEA,8BAA+BA;YACrCA,IAAIA,EAAEA,wBAAyBA;YAC/BA,IAAIA,EAAEA,0BAA2BA;YACjCA,GAAGA,EAAEA,oBAAqBA;YAC1BA,IAAIA,EAAEA,0BAA2BA;SACpCA,CAACA;QAEFA,IAAIA,UAAUA,GAAGA,IAAIA,KAAKA,EAAUA,CAACA;QAErCA,GAAGA,CAACA,CAACA,GAAGA,CAACA,IAAIA,IAAIA,iBAAiBA,CAACA,CAACA,CAACA;YACjCA,EAAEA,CAACA,CAACA,iBAAiBA,CAACA,cAAcA,CAACA,IAAIA,CAACA,CAACA,CAACA,CAACA;gBAEzCA,UAAUA,CAACA,iBAAiBA,CAACA,IAAIA,CAACA,CAACA,GAAGA,IAAIA,CAACA;YAC/CA,CAACA;QACLA,CAACA;QAKDA,UAAUA,CAACA,2BAA6BA,CAACA,GAAGA,aAAaA,CAACA;QAE1DA,SAAgBA,YAAYA,CAACA,IAAYA;YACrCC,EAAEA,CAACA,CAACA,iBAAiBA,CAACA,cAAcA,CAACA,IAAIA,CAACA,CAACA,CAACA,CAACA;gBACzCA,MAAMA,CAACA,iBAAiBA,CAACA,IAAIA,CAACA,CAACA;YACnCA,CAACA;YAEDA,MAAMA,CAACA,YAAeA,CAACA;QAC3BA,CAACA;QANeD,wBAAYA,GAAZA,YAMfA,CAAAA;QAEDA,SAAgBA,OAAOA,CAACA,IAAgBA;YACpCE,IAAIA,MAAMA,GAAGA,UAAUA,CAACA,IAAIA,CAACA,CAACA;YAC9BA,MAAMA,CAACA,MAAMA,CAACA;QAClBA,CAACA;QAHeF,mBAAOA,GAAPA,OAGfA,CAAAA;QAEDA,SAAgBA,YAAYA,CAACA,IAAgBA;YACzCG,MAAMA,CAACA,IAAIA,IAAIA,qBAAUA,CAACA,YAAYA,IAAIA,IAAIA,IAAIA,qBAAUA,CAACA,WAAWA,CAACA;QAC7EA,CAACA;QAFeH,wBAAYA,GAAZA,YAEfA,CAAAA;QAEDA,SAAgBA,gBAAgBA,CAACA,IAAgBA;YAC7CI,MAAMA,CAACA,IAAIA,IAAIA,qBAAUA,CAACA,gBAAgBA,IAAIA,IAAIA,IAAIA,qBAAUA,CAACA,eAAeA,CAACA;QACrFA,CAACA;QAFeJ,4BAAgBA,GAAhBA,gBAEfA,CAAAA;QAEDA,SAAgBA,oCAAoCA,CAACA,SAAqBA;YACtEK,MAAMA,CAACA,CAACA,SAASA,CAACA,CAACA,CAACA;gBAChBA,KAAKA,kBAAoBA,CAACA;gBAC1BA,KAAKA,mBAAqBA,CAACA;gBAC3BA,KAAKA,oBAAqBA,CAACA;gBAC3BA,KAAKA,0BAA2BA,CAACA;gBACjCA,KAAKA,sBAAwBA,CAACA;gBAC9BA,KAAKA,wBAA0BA;oBAC3BA,MAAMA,CAACA,IAAIA,CAACA;gBAChBA;oBACIA,MAAMA,CAACA,KAAKA,CAACA;YACrBA,CAACA;QACLA,CAACA;QAZeL,gDAAoCA,GAApCA,oCAYfA,CAAAA;QAEDA,SAAgBA,+BAA+BA,CAACA,SAAqBA;YACjEM,MAAMA,CAACA,CAACA,SAASA,CAACA,CAACA,CAACA;gBAChBA,KAAKA,sBAAwBA,CAACA;gBAC9BA,KAAKA,oBAAqBA,CAACA;gBAC3BA,KAAKA,qBAAuBA,CAACA;gBAC7BA,KAAKA,kBAAoBA,CAACA;gBAC1BA,KAAKA,mBAAqBA,CAACA;gBAC3BA,KAAKA,8BAAgCA,CAACA;gBACtCA,KAAKA,oCAAsCA,CAACA;gBAC5CA,KAAKA,+CAAiDA,CAACA;gBACvDA,KAAKA,sBAAwBA,CAACA;gBAC9BA,KAAKA,yBAA2BA,CAACA;gBACjCA,KAAKA,4BAA8BA,CAACA;gBACpCA,KAAKA,+BAAiCA,CAACA;gBACvCA,KAAKA,0BAA4BA,CAACA;gBAClCA,KAAKA,kBAAoBA,CAACA;gBAC1BA,KAAKA,0BAA4BA,CAACA;gBAClCA,KAAKA,+BAAiCA,CAACA;gBACvCA,KAAKA,gCAAkCA,CAACA;gBACxCA,KAAKA,qCAAuCA,CAACA;gBAC7CA,KAAKA,wBAAyBA,CAACA;gBAC/BA,KAAKA,oBAAqBA,CAACA;gBAC3BA,KAAKA,kBAAmBA,CAACA;gBACzBA,KAAKA,iCAAkCA,CAACA;gBACxCA,KAAKA,qBAAsBA,CAACA;gBAC5BA,KAAKA,wBAAyBA,CAACA;gBAC/BA,KAAKA,8BAA+BA,CAACA;gBACrCA,KAAKA,0BAA2BA,CAACA;gBACjCA,KAAKA,qCAAsCA,CAACA;gBAC5CA,KAAKA,2CAA4CA,CAACA;gBAClDA,KAAKA,sDAAuDA,CAACA;gBAC7DA,KAAKA,yBAA0BA,CAACA;gBAChCA,KAAKA,0BAA2BA,CAACA;gBACjCA,KAAKA,6BAA8BA,CAACA;gBACpCA,KAAKA,0BAA2BA,CAACA;gBACjCA,KAAKA,4BAA6BA,CAACA;gBACnCA,KAAKA,qBAAsBA,CAACA;gBAC5BA,KAAKA,mBAAqBA;oBACtBA,MAAMA,CAACA,IAAIA,CAACA;gBAChBA;oBACIA,MAAMA,CAACA,KAAKA,CAACA;YACrBA,CAACA;QACLA,CAACA;QA1CeN,2CAA+BA,GAA/BA,+BA0CfA,CAAAA;QAEDA,SAAgBA,yBAAyBA,CAACA,SAAqBA;YAC3DO,MAAMA,CAACA,CAACA,SAASA,CAACA,CAACA,CAACA;gBAChBA,KAAKA,wBAAyBA,CAACA;gBAC/BA,KAAKA,8BAA+BA,CAACA;gBACrCA,KAAKA,0BAA2BA,CAACA;gBACjCA,KAAKA,qCAAsCA,CAACA;gBAC5CA,KAAKA,2CAA4CA,CAACA;gBAClDA,KAAKA,sDAAuDA,CAACA;gBAC7DA,KAAKA,yBAA0BA,CAACA;gBAChCA,KAAKA,0BAA2BA,CAACA;gBACjCA,KAAKA,6BAA8BA,CAACA;gBACpCA,KAAKA,0BAA2BA,CAACA;gBACjCA,KAAKA,4BAA6BA,CAACA;gBACnCA,KAAKA,qBAAsBA;oBACvBA,MAAMA,CAACA,IAAIA,CAACA;gBAEhBA;oBACIA,MAAMA,CAACA,KAAKA,CAACA;YACrBA,CAACA;QACLA,CAACA;QAnBeP,qCAAyBA,GAAzBA,yBAmBfA,CAAAA;QAEDA,SAAgBA,MAAMA,CAACA,IAAgBA;YACnCQ,MAAMA,CAACA,CAACA,IAAIA,CAACA,CAACA,CAACA;gBACXA,KAAKA,mBAAoBA,CAACA;gBAC1BA,KAAKA,mBAAqBA,CAACA;gBAC3BA,KAAKA,sBAAwBA,CAACA;gBAC9BA,KAAKA,uBAAyBA,CAACA;gBAC/BA,KAAKA,sBAAwBA,CAACA;gBAC9BA,KAAKA,oBAAsBA,CAACA;gBAC5BA,KAAKA,sBAAuBA,CAACA;gBAC7BA,KAAKA,oBAAqBA,CAACA;gBAC3BA,KAAKA,yBAA0BA,CAACA;gBAChCA,KAAKA,mBAAoBA,CAACA;gBAC1BA,KAAKA,qBAAsBA,CAACA;gBAC5BA,KAAKA,uBAAwBA,CAACA;gBAC9BA,KAAKA,sBAAyBA;oBAC1BA,MAAMA,CAACA,IAAIA,CAACA;YACpBA,CAACA;YAEDA,MAAMA,CAACA,KAAKA,CAACA;QACjBA,CAACA;QAnBeR,kBAAMA,GAANA,MAmBfA,CAAAA;IACLA,CAACA,EApPiBnC,WAAWA,GAAXA,sBAAWA,KAAXA,sBAAWA,QAoP5BA;AAADA,CAACA,EApPM,UAAU,KAAV,UAAU,QAoPhB;AC/OD,IAAI,gBAAgB,GAAG,KAAK,CAAC;AAuB7B,IAAI,UAAU,GAAQ;IAClB,wBAAwB,EAAE,qBAAqB;IAC/C,gBAAgB,EAAE,sBAAsB;IACxC,WAAW,EAAE,aAAa;IAC1B,sBAAsB,EAAE,mBAAmB;IAC3C,wBAAwB,EAAE,wBAAwB;IAClD,6BAA6B,EAAE,0BAA0B;IAGzD,uBAAuB,EAAE,+BAA+B;IACxD,qBAAqB,EAAE,+BAA+B;IACtD,wBAAwB,EAAE,yBAAyB;CACtD,CAAC;AAEF,IAAI,WAAW,GAAqB;IAC3B;QACD,IAAI,EAAE,kBAAkB;QACxB,QAAQ,EAAE,aAAa;QACvB,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,gBAAgB,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,sBAAsB,EAAE;YAC7E,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE;SACjD;KACJ;IACI;QACD,IAAI,EAAE,+BAA+B;QACrC,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,wBAAwB,CAAC;QACtC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,gBAAgB,CAAC,EAAE,cAAc,EAAE,IAAI,EAAE;YAC/F,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC/D,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,eAAe,CAAC,EAAE;YACvE,EAAE,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;SACxE;QACD,oBAAoB,EAAE,IAAI;KAC7B;IACI;QACD,IAAI,EAAE,iCAAiC;QACvC,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,wBAAwB,CAAC;QACtC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,aAAa,EAAE;SACnD;QACD,oBAAoB,EAAE,IAAI;KAC7B;IACI;QACD,IAAI,EAAE,yBAAyB;QAC/B,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,sBAAsB,CAAC;QACpC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,cAAc,EAAE;YAChE,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC9D,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,gBAAgB,CAAC,EAAE;YACrE,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC5D,EAAE,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,wBAAwB,EAAE;YAC3D,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;SACzF;QACD,oBAAoB,EAAE,IAAI;KAC7B;IACI;QACD,IAAI,EAAE,wBAAwB;QAC9B,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,sBAAsB,CAAC;QACpC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC9D,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC5D,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,gBAAgB,CAAC,EAAE;YACrE,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;SACzF;QACD,oBAAoB,EAAE,IAAI;KAC7B;IACI;QACD,IAAI,EAAE,wBAAwB;QAC9B,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,sBAAsB,CAAC;QACpC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,cAAc,EAAE;YAChE,EAAE,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC7D,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,gBAAgB,CAAC,EAAE;YACrE,EAAE,IAAI,EAAE,mBAAmB,EAAE,IAAI,EAAE,yBAAyB,EAAE,UAAU,EAAE,IAAI,EAAE;YAChF,EAAE,IAAI,EAAE,iBAAiB,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,sBAAsB,EAAE;YAC9E,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC/D,EAAE,IAAI,EAAE,eAAe,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,qBAAqB,EAAE;YAC3E,EAAE,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;SACxE;QACD,oBAAoB,EAAE,IAAI;KAC7B;IACI;QACD,IAAI,EAAE,4BAA4B;QAClC,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,sBAAsB,CAAC;QACpC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,cAAc,EAAE;YAChE,EAAE,IAAI,EAAE,kBAAkB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YACjE,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,gBAAgB,CAAC,EAAE;YACrE,EAAE,IAAI,EAAE,mBAAmB,EAAE,IAAI,EAAE,yBAAyB,EAAE,UAAU,EAAE,IAAI,EAAE;YAChF,EAAE,IAAI,EAAE,iBAAiB,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,sBAAsB,EAAE;YAC9E,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,kBAAkB,EAAE;SAClD;QACD,oBAAoB,EAAE,IAAI;KAC7B;IACK;QACF,IAAI,EAAE,sBAAsB;QAC5B,QAAQ,EAAE,aAAa;QACvB,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,4BAA4B,EAAE,OAAO,EAAE,IAAI,EAAE;YACrD,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,IAAI,EAAE,sBAAsB,EAAE,IAAI,EAAE,WAAW,EAAE,aAAa,EAAE;SAC9G;QACD,oBAAoB,EAAE,IAAI;KAC7B;IACI;QACD,IAAI,EAAE,yBAAyB;QAC/B,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,sBAAsB,CAAC;QACpC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,cAAc,EAAE;YAChE,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC9D,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE,UAAU,EAAE,IAAI,EAAE;YACvD,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,eAAe,CAAC,EAAE;YACzF,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC/D,EAAE,IAAI,EAAE,gBAAgB,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,sBAAsB,EAAE;YAC7E,EAAE,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;SACxE;QACD,oBAAoB,EAAE,IAAI;KAC7B;IACI;QACD,IAAI,EAAE,2BAA2B;QACjC,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,kBAAkB,CAAC;QAChC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,cAAc,EAAE,oBAAoB,EAAE,IAAI,EAAE;YAC5F,EAAE,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAChE,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,gBAAgB,CAAC,EAAE;YACrE,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,qBAAqB,EAAE;YACtD,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,UAAU,EAAE,IAAI,EAAE;YACxD,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;SACzF;KACJ;IACI;QACD,IAAI,EAAE,yBAAyB;QAC/B,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,kBAAkB,CAAC;QAChC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,cAAc,EAAE,oBAAoB,EAAE,IAAI,EAAE;YAC5F,EAAE,IAAI,EAAE,qBAAqB,EAAE,IAAI,EAAE,2BAA2B,EAAE;YAClE,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;SACzF;KACJ;IACI;QACD,IAAI,EAAE,2BAA2B;QACjC,QAAQ,EAAE,aAAa;QACvB,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE;YACrC,EAAE,IAAI,EAAE,qBAAqB,EAAE,eAAe,EAAE,IAAI,EAAE,sBAAsB,EAAE,IAAI,EAAE,WAAW,EAAE,0BAA0B,EAAE;SACrI;KACJ;IACI;QACD,IAAI,EAAE,0BAA0B;QAChC,QAAQ,EAAE,aAAa;QACvB,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,qBAAqB,EAAE;YACrD,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,sBAAsB,EAAE,UAAU,EAAE,IAAI,EAAE,oBAAoB,EAAE,IAAI,EAAE;YACtG,EAAE,IAAI,EAAE,mBAAmB,EAAE,IAAI,EAAE,yBAAyB,EAAE,UAAU,EAAE,IAAI,EAAE;SACxF;KACJ;IACI;QACD,IAAI,EAAE,yBAAyB;QAC/B,QAAQ,EAAE,aAAa;QACvB,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC5D,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,mBAAmB,EAAE;SACpD;KACJ;IACI;QACD,IAAI,EAAE,6BAA6B;QACnC,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,wBAAwB,CAAC;QACtC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,IAAI,EAAE;YACxC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,wBAAwB,EAAE;SAC3D;KACJ;IACI;QACD,IAAI,EAAE,8BAA8B;QACpC,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,0BAA0B,CAAC;QACxC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,kBAAkB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YACjE,EAAE,IAAI,EAAE,aAAa,EAAE,eAAe,EAAE,IAAI,EAAE,WAAW,EAAE,mBAAmB,EAAE;YAChF,EAAE,IAAI,EAAE,mBAAmB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;SAC1E;KACJ;IACI;QACD,IAAI,EAAE,yBAAyB;QAC/B,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,mBAAmB,CAAC;QACjC,QAAQ,EAAO,EAAE;KACpB;IACI;QACD,IAAI,EAAE,+BAA+B;QACrC,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,0BAA0B,CAAC;QACxC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC/D,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,mBAAmB,EAAE;YACjD,EAAE,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;SACxE;KACJ;IACI;QACD,IAAI,EAAE,qCAAqC;QAC3C,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,wBAAwB,CAAC;QACtC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,iBAAiB,EAAE;YAC9C,EAAE,IAAI,EAAE,wBAAwB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YACvE,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,UAAU,EAAE,IAAI,EAAE;YACxD,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,mBAAmB,EAAE,UAAU,EAAE,IAAI,EAAE;SAC3E;QACD,oBAAoB,EAAE,IAAI;KAC7B;IACI;QACD,IAAI,EAAE,4CAA4C;QAClD,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,wBAAwB,CAAC;QACtC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,qBAAqB,EAAE;YACtD,EAAE,IAAI,EAAE,wBAAwB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YACvE,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,UAAU,EAAE,IAAI,EAAE;YACxD,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,mBAAmB,EAAE,UAAU,EAAE,IAAI,EAAE;SAC3E;QACD,oBAAoB,EAAE,IAAI;KAC7B;IACI;QACD,IAAI,EAAE,qBAAqB;QAC3B,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,aAAa,CAAC;QAC3B,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE;YACrC,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YACzD,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAC,CAAC,gBAAgB,CAAC,EAAE;SACvE;QAGD,oBAAoB,EAAE,IAAI;KAC7B;IACI;QACD,IAAI,EAAE,wBAAwB;QAC9B,QAAQ,EAAE,aAAa;QACvB,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,IAAI,EAAE;YACxC,EAAE,IAAI,EAAE,eAAe,EAAE,eAAe,EAAE,IAAI,EAAE,WAAW,EAAE,aAAa,EAAE;YAC5E,EAAE,IAAI,EAAE,kBAAkB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;SACzE;QACD,oBAAoB,EAAE,IAAI;KAC7B;IACI;QACD,IAAI,EAAE,uBAAuB;QAC7B,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,aAAa,CAAC;QAC3B,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC3D,EAAE,IAAI,EAAE,mBAAmB,EAAE,IAAI,EAAE,yBAAyB,EAAE,UAAU,EAAE,IAAI,EAAE;YAChF,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,qBAAqB,EAAE;YACtD,EAAE,IAAI,EAAE,wBAAwB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YACvE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE;SAC7C;QACD,oBAAoB,EAAE,IAAI;KAC7B;IACI;QACD,IAAI,EAAE,oBAAoB;QAC1B,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,aAAa,CAAC;QAC3B,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,mBAAmB,EAAE,IAAI,EAAE,yBAAyB,EAAE,UAAU,EAAE,IAAI,EAAE;YAChF,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,qBAAqB,EAAE;YACtD,EAAE,IAAI,EAAE,wBAAwB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YACvE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE;SAC7C;QACD,oBAAoB,EAAE,IAAI;KAC7B;IACI;QACD,IAAI,EAAE,kBAAkB;QACxB,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,aAAa,CAAC;QAC3B,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC/D,EAAE,IAAI,EAAE,aAAa,EAAE,eAAe,EAAE,IAAI,EAAE,WAAW,EAAE,mBAAmB,EAAE;YAChF,EAAE,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;SACxE;QACD,oBAAoB,EAAE,IAAI;KAC7B;IACI;QACD,IAAI,EAAE,iBAAiB;QACvB,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,aAAa,CAAC;QAC3B,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE;YACrC,EAAE,IAAI,EAAE,kBAAkB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YACjE,EAAE,IAAI,EAAE,mBAAmB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;SAC1E;QACD,oBAAoB,EAAE,IAAI;KAC7B;IACI;QACD,IAAI,EAAE,mBAAmB;QACzB,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,aAAa,CAAC;QAC3B,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE;YACrC,EAAE,IAAI,EAAE,kBAAkB,EAAE,IAAI,EAAE,wBAAwB,EAAE;SACpE;QACD,oBAAoB,EAAE,IAAI;KAC7B;IACK;QACF,IAAI,EAAE,iBAAiB;QACvB,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,aAAa,CAAC;QAC3B,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC9D,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE;SAC7C;QACD,oBAAoB,EAAE,IAAI;KAC7B;IACK;QACF,IAAI,EAAE,iBAAiB;QACvB,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,aAAa,CAAC;QAC3B,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,kBAAkB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YACjE,EAAE,IAAI,EAAE,OAAO,EAAE,eAAe,EAAE,IAAI,EAAE,WAAW,EAAE,aAAa,EAAE;YACpE,EAAE,IAAI,EAAE,mBAAmB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;SAC1E;QACD,oBAAoB,EAAE,IAAI;KAC7B;IACK;QACF,IAAI,EAAE,iBAAiB;QACvB,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,aAAa,CAAC;QAC3B,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE;YACrC,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YACzD,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE;SAC9C;QACD,oBAAoB,EAAE,IAAI;KAC7B;IACK;QACF,IAAI,EAAE,yBAAyB;QAC/B,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,aAAa,CAAC;QAC3B,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC/D,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE;YACrC,EAAE,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;SACxE;QACD,oBAAoB,EAAE,IAAI;KAC7B;IACI;QACD,IAAI,EAAE,sBAAsB;QAC5B,QAAQ,EAAE,aAAa;QACvB,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC3D,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE;SAC7C;QACD,oBAAoB,EAAE,IAAI;KAC7B;IACI;QACD,IAAI,EAAE,aAAa;QACnB,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,kBAAkB,CAAC;QAChC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE;YACzC,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,kBAAkB,EAAE;YACrE,EAAE,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;SACxE;KACJ;IACI;QACD,IAAI,EAAE,iBAAiB;QACvB,QAAQ,EAAE,aAAa;QACvB,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,oBAAoB,EAAE,IAAI,EAAE;YACvF,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,cAAc,EAAE;YAChE,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,gBAAgB,CAAC,EAAE;YACrE,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,oBAAoB,EAAE,IAAI,EAAE;YACtF,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,sBAAsB,EAAE,UAAU,EAAE,IAAI,EAAE,oBAAoB,EAAE,IAAI,EAAE;YACtG,EAAE,IAAI,EAAE,mBAAmB,EAAE,IAAI,EAAE,yBAAyB,EAAE,UAAU,EAAE,IAAI,EAAE,oBAAoB,EAAE,IAAI,EAAE;SACpH;KACJ;IACI;QACD,IAAI,EAAE,8BAA8B;QACpC,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,yBAAyB,EAAE,uBAAuB,CAAC;QAChE,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,+BAA+B,EAAE;YAC7D,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YACzD,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,gBAAgB,CAAC,EAAE;SACvE;KACJ;IACI;QACD,IAAI,EAAE,8BAA8B;QACpC,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,0BAA0B,CAAC;QACxC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,+BAA+B,EAAE;YAC1D,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,IAAI,EAAE;SAChD;KACJ;IACI;QACD,IAAI,EAAE,+BAA+B;QACrC,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,yBAAyB,EAAE,uBAAuB,CAAC;QAChE,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,+BAA+B,EAAE;YAC7D,EAAE,IAAI,EAAE,kBAAkB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YACjE,EAAE,IAAI,EAAE,oBAAoB,EAAE,IAAI,EAAE,mBAAmB,EAAE;YACzD,EAAE,IAAI,EAAE,mBAAmB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;SAC1E;KACJ;IACI;QACD,IAAI,EAAE,gCAAgC;QACtC,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,yBAAyB,EAAE,uBAAuB,CAAC;QAChE,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,+BAA+B,EAAE;YAC7D,EAAE,IAAI,EAAE,oBAAoB,EAAE,IAAI,EAAE,0BAA0B,EAAE;SACxE;KACJ;IACI;QACD,IAAI,EAAE,0BAA0B;QAChC,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,0BAA0B,CAAC;QACxC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,oBAAoB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YACnE,EAAE,IAAI,EAAE,iBAAiB,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,sBAAsB,EAAE;SACtF;KACJ;IACI;QACD,IAAI,EAAE,sBAAsB;QAC5B,QAAQ,EAAE,aAAa;QACvB,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,mBAAmB,EAAE;YACjD,EAAE,IAAI,EAAE,0BAA0B,EAAE,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,oBAAoB,EAAE;SAC9F;KACJ;IACI;QACD,IAAI,EAAE,4BAA4B;QAClC,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,uBAAuB,CAAC;QACrC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,+BAA+B,EAAE;YAC7D,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,oBAAoB,EAAE;SAC5D;KACJ;IACI;QACD,IAAI,EAAE,oBAAoB;QAC1B,QAAQ,EAAE,aAAa;QACvB,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,kBAAkB,EAAE,IAAI,EAAE,wBAAwB,EAAE,UAAU,EAAE,IAAI,EAAE;YAC9E,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC/D,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,IAAI,EAAE,WAAW,EAAE,mBAAmB,EAAE;YAC9E,EAAE,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;SACxE;KACJ;IACI;QACD,IAAI,EAAE,wBAAwB;QAC9B,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,mBAAmB,CAAC;QACjC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,mBAAmB,EAAE;YAC3C,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,IAAI,EAAE;YACxC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,mBAAmB,EAAE;SACpD;KACJ;IACI;QACD,IAAI,EAAE,6BAA6B;QACnC,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,mBAAmB,CAAC;QACjC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,mBAAmB,EAAE;YAChD,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC9D,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,mBAAmB,EAAE;YAC/C,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC3D,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,mBAAmB,EAAE;SACxD;KACJ;IACI;QACD,IAAI,EAAE,0BAA0B;QAChC,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,mBAAmB,CAAC;QACjC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC3D,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,qBAAqB,EAAE;SAC9D;QACD,oBAAoB,EAAE,IAAI;KAC7B;IACI;QACD,IAAI,EAAE,uBAAuB;QAC7B,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,mBAAmB,CAAC;QACjC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,qBAAqB,EAAE;YACrD,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,oBAAoB,EAAE,IAAI,EAAE;YACtF,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,qBAAqB,EAAE;SAC9D;KACJ;IACI;QACD,IAAI,EAAE,sBAAsB;QAC5B,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,mBAAmB,CAAC;QACjC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,kBAAkB,EAAE,OAAO,EAAE,IAAI,EAAE;YAC3C,EAAE,IAAI,EAAE,YAAY,EAAE,eAAe,EAAE,IAAI,EAAE,WAAW,EAAE,iBAAiB,EAAE;YAC7E,EAAE,IAAI,EAAE,mBAAmB,EAAE,OAAO,EAAE,IAAI,EAAE;YAC5C,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,sBAAsB,EAAE,UAAU,EAAE,IAAI,EAAE;SAClF;QACD,oBAAoB,EAAE,IAAI;KAC7B;IACI;QACD,IAAI,EAAE,yBAAyB;QAC/B,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,mBAAmB,CAAC;QACjC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,qBAAqB,EAAE;YACrD,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE;YAC1D,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,sBAAsB,EAAE,UAAU,EAAE,IAAI,EAAE;SAClF;QACD,oBAAoB,EAAE,IAAI;KAC7B;IACI;QACD,IAAI,EAAE,qBAAqB;QAC3B,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,mBAAmB,CAAC;QACjC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,mBAAmB,EAAE,IAAI,EAAE,yBAAyB,EAAE,UAAU,EAAE,IAAI,EAAE,oBAAoB,EAAE,IAAI,EAAE;YAC5G,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,qBAAqB,EAAE;YACtD,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,sBAAsB,EAAE,UAAU,EAAE,IAAI,EAAE,oBAAoB,EAAE,IAAI,EAAE;SAC9G;KACJ;IACI;QACD,IAAI,EAAE,qBAAqB;QAC3B,QAAQ,EAAE,aAAa;QACvB,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC/D,EAAE,IAAI,EAAE,YAAY,EAAE,eAAe,EAAE,IAAI,EAAE,WAAW,EAAE,iBAAiB,EAAE;YAC7E,EAAE,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;SACxE;KACJ;IACI;QACD,IAAI,EAAE,yBAAyB;QAC/B,QAAQ,EAAE,aAAa;QACvB,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,IAAI,EAAE;YACxC,EAAE,IAAI,EAAE,gBAAgB,EAAE,eAAe,EAAE,IAAI,EAAE,WAAW,EAAE,qBAAqB,EAAE;YACrF,EAAE,IAAI,EAAE,kBAAkB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;SACzE;QACD,oBAAoB,EAAE,IAAI;KAC7B;IACI;QACD,IAAI,EAAE,qBAAqB;QAC3B,QAAQ,EAAE,aAAa;QACvB,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,gBAAgB,CAAC,EAAE;YACrE,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,kBAAkB,EAAE,UAAU,EAAE,IAAI,EAAE;SAC1E;QACD,oBAAoB,EAAE,IAAI;KAC7B;IACI;QACD,IAAI,EAAE,kBAAkB;QACxB,QAAQ,EAAE,aAAa;QACvB,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAE/D,EAAE,IAAI,EAAE,kBAAkB,EAAE,IAAI,EAAE,oBAAoB,EAAE;SAChE;QACD,oBAAoB,EAAE,IAAI;KAC7B;IACI;QACD,IAAI,EAAE,kBAAkB;QACxB,QAAQ,EAAE,aAAa;QACvB,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC5D,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,kBAAkB,EAAE;SACvD;KACJ;IACI;QACD,IAAI,EAAE,mBAAmB;QACzB,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,kBAAkB,CAAC;QAChC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC1D,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC/D,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,mBAAmB,EAAE;YAChD,EAAE,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAChE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,kBAAkB,EAAE;YAC/C,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,kBAAkB,EAAE,UAAU,EAAE,IAAI,EAAE;SAC1E;KACJ;IACI;QACD,IAAI,EAAE,2BAA2B;QACjC,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,kBAAkB,CAAC;QAChC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,mBAAmB,EAAE;YACjD,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;SACzF;KACJ;IACI;QACD,IAAI,EAAE,8BAA8B;QACpC,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,qBAAqB,CAAC;QACnC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,cAAc,EAAE;YAChE,EAAE,IAAI,EAAE,oBAAoB,EAAE,OAAO,EAAE,IAAI,EAAE;YAC7C,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,qBAAqB,EAAE;YACtD,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,UAAU,EAAE,IAAI,EAAE;YACxD,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;SACzF;QACD,oBAAoB,EAAE,IAAI;KAC7B;IACI;QACD,IAAI,EAAE,iCAAiC;QACvC,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,0BAA0B,CAAC;QACxC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,cAAc,EAAE;YAChE,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,qBAAqB,EAAE;YACrD,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,qBAAqB,EAAE;YACtD,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,UAAU,EAAE,IAAI,EAAE;YACxD,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;SACzF;QACD,oBAAoB,EAAE,IAAI;KAC7B;IACI;QACD,IAAI,EAAE,mBAAmB;QACzB,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,iBAAiB,CAAE;QAChC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,cAAc,EAAE,oBAAoB,EAAE,IAAI,EAAE;YAC5F,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC3D,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,qBAAqB,EAAE;YACrD,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,qBAAqB,EAAE;YACtD,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE;SAC9C;KACJ;IACI;QACD,IAAI,EAAE,mBAAmB;QACzB,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,iBAAiB,CAAC;QAC/B,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,cAAc,EAAE,oBAAoB,EAAE,IAAI,EAAE;YAC5F,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC3D,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,qBAAqB,EAAE;YACrD,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,qBAAqB,EAAE;YACtD,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE;SAC9C;QACD,oBAAoB,EAAE,IAAI;KAC7B;IACI;QACD,IAAI,EAAE,iCAAiC;QACvC,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,0BAA0B,CAAC;QACxC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,cAAc,EAAE;YAChE,EAAE,IAAI,EAAE,oBAAoB,EAAE,IAAI,EAAE,0BAA0B,EAAE;YAChE,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;SACzF;QACD,oBAAoB,EAAE,IAAI;KAC7B;IACI;QACD,IAAI,EAAE,8BAA8B;QACpC,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,qBAAqB,CAAC;QACnC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,cAAc,EAAE;YAChE,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,sBAAsB,EAAE;YACxD,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;SACzF;QACD,oBAAoB,EAAE,IAAI;KAC7B;IACI;QACD,IAAI,EAAE,sBAAsB;QAC5B,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,kBAAkB,CAAC;QAChC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC7D,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,mBAAmB,EAAE;YACjD,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;SACzF;KACJ;IACI;QACD,IAAI,EAAE,uBAAuB;QAC7B,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,kBAAkB,CAAC;QAChC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,IAAI,EAAE;YACxC,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,mBAAmB,EAAE,UAAU,EAAE,IAAI,EAAE;YACnE,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;SACzF;KACJ;IACI;QACD,IAAI,EAAE,gCAAgC;QACtC,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,0BAA0B,CAAC;QACxC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC3D,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,yBAAyB,EAAE;YACvD,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,oBAAoB,EAAE,UAAU,EAAE,IAAI,EAAE;SAC9E;KACJ;IACI;QACD,IAAI,EAAE,uBAAuB;QAC7B,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,kBAAkB,CAAC;QAChC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC9D,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC/D,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,mBAAmB,EAAE;YACjD,EAAE,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAChE,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC/D,EAAE,IAAI,EAAE,eAAe,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,qBAAqB,EAAE;YAC3E,EAAE,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;SACxE;KACJ;IACI;QACD,IAAI,EAAE,wBAAwB;QAC9B,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,qBAAqB,CAAC;QACnC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC5D,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,mBAAmB,EAAE;YACjD,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAC;YAC1D,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,kBAAkB,EAAE;SAC7E;KACJ;IACI;QACD,IAAI,EAAE,2BAA2B;QACjC,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,qBAAqB,CAAC;QACnC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC/D,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC3D,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,kBAAkB,EAAE;SAC7E;KACJ;IACI;QACD,IAAI,EAAE,sBAAsB;QAC5B,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,kBAAkB,CAAC;QAChC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,IAAI,EAAE;YACvC,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,gBAAgB,CAAC,EAAE;YACvF,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;SACzF;KACJ;IACI;QACD,IAAI,EAAE,yBAAyB;QAC/B,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,kBAAkB,CAAC;QAChC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,IAAI,EAAE;YAC1C,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,gBAAgB,CAAC,EAAE;YACvF,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;SACzF;KACJ;IACI;QACD,IAAI,EAAE,oBAAoB;QAC1B,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,kBAAkB,CAAC;QAChC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC3D,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC/D,EAAE,IAAI,EAAE,qBAAqB,EAAE,IAAI,EAAE,2BAA2B,EAAE,UAAU,EAAE,IAAI,EAAE;YACpF,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,mBAAmB,EAAE,UAAU,EAAE,IAAI,EAAE;YACpE,EAAE,IAAI,EAAE,qBAAqB,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,gBAAgB,CAAC,EAAE,cAAc,EAAE,IAAI,EAAE;YACpG,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,mBAAmB,EAAE,UAAU,EAAE,IAAI,EAAE;YAClE,EAAE,IAAI,EAAE,sBAAsB,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,gBAAgB,CAAC,EAAE,cAAc,EAAE,IAAI,EAAE;YACrG,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,mBAAmB,EAAE,UAAU,EAAE,IAAI,EAAE;YACpE,EAAE,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAChE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,kBAAkB,EAAE;SACvD;KACJ;IACI;QACD,IAAI,EAAE,sBAAsB;QAC5B,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,kBAAkB,CAAC;QAChC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC3D,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC/D,EAAE,IAAI,EAAE,qBAAqB,EAAE,IAAI,EAAE,2BAA2B,EAAE,UAAU,EAAE,IAAI,EAAE;YACpF,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,mBAAmB,EAAE,UAAU,EAAE,IAAI,EAAE;YAC7D,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC1D,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,mBAAmB,EAAE;YACjD,EAAE,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAChE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,kBAAkB,EAAE;SACvD;KACJ;IACI;QACD,IAAI,EAAE,sBAAsB;QAC5B,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,kBAAkB,CAAC;QAChC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC7D,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC/D,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,mBAAmB,EAAE;YAChD,EAAE,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAChE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,kBAAkB,EAAE;SACvD;KACJ;IACI;QACD,IAAI,EAAE,qBAAqB;QAC3B,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,kBAAkB,CAAC;QAChC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC5D,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC/D,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,mBAAmB,EAAE;YAChD,EAAE,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAChE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,kBAAkB,EAAE;SACvD;KACJ;IACI;QACD,IAAI,EAAE,uBAAuB;QAC7B,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,sBAAsB,CAAC;QACpC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,cAAc,EAAE;YAChE,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC5D,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,gBAAgB,CAAC,EAAE;YACrE,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC/D,EAAE,IAAI,EAAE,cAAc,EAAE,eAAe,EAAE,IAAI,EAAE,WAAW,EAAE,mBAAmB,EAAE;YACjF,EAAE,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;SACxE;QACD,oBAAoB,EAAE,IAAI;KAC7B;IACI;QACD,IAAI,EAAE,mBAAmB;QACzB,QAAQ,EAAE,aAAa;QACvB,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,qBAAqB,EAAE;YACrD,EAAE,IAAI,EAAE,mBAAmB,EAAE,IAAI,EAAE,yBAAyB,EAAE,UAAU,EAAE,IAAI,EAAE;SACxF;KACJ;IACI;QACD,IAAI,EAAE,sBAAsB;QAC5B,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,wBAAwB,CAAC;QACtC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC9D,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE;YACrC,EAAE,IAAI,EAAE,kBAAkB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YACjE,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,wBAAwB,EAAE;SAC9D;QACD,oBAAoB,EAAE,IAAI;KAC7B;IACI;QACD,IAAI,EAAE,+BAA+B;QACrC,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,0BAA0B,CAAC;QACxC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC/D,EAAE,IAAI,EAAE,qBAAqB,EAAE,eAAe,EAAE,IAAI,EAAE,WAAW,EAAE,2BAA2B,EAAE;YAChG,EAAE,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;SACxE;KACJ;IACI;QACD,IAAI,EAAE,gCAAgC;QACtC,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,2BAA2B,CAAC;QACzC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,qBAAqB,EAAE;YACrD,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC3D,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,mBAAmB,EAAE;SACzD;KACJ;IACK;QACF,IAAI,EAAE,kCAAkC;QACxC,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,2BAA2B,CAAC;QACzC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,qBAAqB,EAAE;YACrD,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,qBAAqB,EAAE;YACtD,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE;SAC9C;KACJ;IACI;QACD,IAAI,EAAE,0BAA0B;QAChC,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,0BAA0B,CAAC;QACxC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAChE,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,gBAAgB,CAAC,EAAE;YACvF,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,qBAAqB,EAAE;YACtD,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE;SAAC;KACnD;IACI;QACD,IAAI,EAAE,sBAAsB;QAC5B,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,kBAAkB,CAAC;QAChC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE;SAAC;KACtD;IACI;QACD,IAAI,EAAE,oBAAoB;QAC1B,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,kBAAkB,CAAC;QAChC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC3D,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE;YACtC,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,mBAAmB,EAAE,UAAU,EAAE,IAAI,EAAE;YACpE,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,qBAAqB,EAAE,UAAU,EAAE,IAAI,EAAE;SAAC;KACrF;IACI;QACD,IAAI,EAAE,mBAAmB;QACzB,QAAQ,EAAE,aAAa;QACvB,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC7D,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC/D,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,gBAAgB,CAAC,EAAE;YACrE,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,sBAAsB,EAAE,UAAU,EAAE,IAAI,EAAE,qBAAqB,EAAE,IAAI,EAAE;YACvG,EAAE,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAChE,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE;SAAC;KACnD;IACI;QACD,IAAI,EAAE,qBAAqB;QAC3B,QAAQ,EAAE,aAAa;QACvB,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC/D,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE;SAAC;KACnD;IACI;QACD,IAAI,EAAE,wBAAwB;QAC9B,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,kBAAkB,CAAC;QAChC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,gBAAgB,CAAC,EAAE;YACrE,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC3D,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,kBAAkB,EAAE;SAAC;KAC5D;IACI;QACD,IAAI,EAAE,mBAAmB;QACzB,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,kBAAkB,CAAC;QAChC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC1D,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,kBAAkB,EAAE;YAC/C,EAAE,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC7D,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC/D,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,mBAAmB,EAAE;YAChD,EAAE,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAChE,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;SAAC;KAC9F;IACI;QACD,IAAI,EAAE,wBAAwB;QAC9B,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,wBAAwB,CAAC;QACtC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC9D,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,wBAAwB,EAAE;SAAC;KACnE;IACI;QACD,IAAI,EAAE,wBAAwB;QAC9B,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,wBAAwB,CAAC;QACtC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC9D,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,wBAAwB,EAAE;SAAC;KACnE;IACI;QACD,IAAI,EAAE,sBAAsB;QAC5B,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,wBAAwB,CAAC;QACtC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC5D,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,wBAAwB,EAAE;SAAC;KACnE;IACI;QACD,IAAI,EAAE,yBAAyB;QAC/B,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,kBAAkB,CAAC;QAChC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,IAAI,EAAE;YAC1C,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;SAAC;KAC9F;CAAC,CAAC;AAEP,SAAS,SAAS,CAAC,UAA2B;IAC1C4C,IAAIA,QAAQA,GAAGA,oBAAoBA,CAACA,UAAUA,CAACA,CAACA;IAChDA,MAAMA,CAAOA,UAAUA,CAACA,UAAWA,CAACA,QAAQA,CAACA,CAACA;AAClDA,CAACA;AAED,WAAW,CAAC,IAAI,CAAC,UAAC,EAAE,EAAE,EAAE,IAAK,OAAA,SAAS,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,EAAE,CAAC,EAA7B,CAA6B,CAAC,CAAC;AAE5D,SAAS,sBAAsB,CAAC,UAAkB;IAC9CC,EAAEA,CAACA,CAACA,UAAUA,CAACA,eAAeA,CAACA,QAAQA,CAACA,UAAUA,EAAEA,QAAQA,CAACA,CAACA,CAACA,CAACA;QAC5DA,MAAMA,CAACA,UAAUA,CAACA,SAASA,CAACA,CAACA,EAAEA,UAAUA,CAACA,MAAMA,GAAGA,QAAQA,CAACA,MAAMA,CAACA,CAACA;IACxEA,CAACA;IAEDA,MAAMA,CAACA,UAAUA,CAACA;AACtBA,CAACA;AAED,SAAS,oBAAoB,CAAC,UAA2B;IACrDC,MAAMA,CAACA,sBAAsBA,CAACA,UAAUA,CAACA,IAAIA,CAACA,CAACA;AACnDA,CAACA;AAED,SAAS,OAAO,CAAC,KAAwB;IACrCC,EAAEA,CAACA,CAACA,KAAKA,CAACA,OAAOA,CAACA,CAACA,CAACA;QAChBA,MAAMA,CAACA,cAAcA,CAACA;IAC1BA,CAACA;IACDA,IAAIA,CAACA,EAAEA,CAACA,CAACA,KAAKA,CAACA,eAAeA,CAACA,CAACA,CAACA;QAC7BA,MAAMA,CAACA,uBAAuBA,GAAGA,KAAKA,CAACA,WAAWA,GAAGA,GAAGA,CAACA;IAC7DA,CAACA;IACDA,IAAIA,CAACA,EAAEA,CAACA,CAACA,KAAKA,CAACA,MAAMA,CAACA,CAACA,CAACA;QACpBA,MAAMA,CAACA,KAAKA,CAACA,WAAWA,GAAGA,IAAIA,CAACA;IACpCA,CAACA;IACDA,IAAIA,CAACA,CAACA;QACFA,MAAMA,CAACA,KAAKA,CAACA,IAAIA,CAACA;IACtBA,CAACA;AACLA,CAACA;AAED,SAAS,SAAS,CAAC,KAAa;IAC5BC,MAAMA,CAACA,KAAKA,CAACA,MAAMA,CAACA,CAACA,EAAEA,CAACA,CAACA,CAACA,WAAWA,EAAEA,GAAGA,KAAKA,CAACA,MAAMA,CAACA,CAACA,CAACA,CAACA;AAC9DA,CAACA;AAED,SAAS,WAAW,CAAC,KAAwB;IACzCC,EAAEA,CAACA,CAACA,KAAKA,CAACA,IAAIA,KAAKA,WAAWA,CAACA,CAACA,CAACA;QAC7BA,MAAMA,CAACA,GAAGA,GAAGA,KAAKA,CAACA,IAAIA,CAACA;IAC5BA,CAACA;IAEDA,MAAMA,CAACA,KAAKA,CAACA,IAAIA,CAACA;AACtBA,CAACA;AAED,SAAS,2BAA2B,CAAC,UAA2B;IAC5DC,IAAIA,MAAMA,GAAGA,iBAAiBA,GAAGA,UAAUA,CAACA,IAAIA,GAAGA,IAAIA,GAAGA,oBAAoBA,CAACA,UAAUA,CAACA,GAAGA,0CAA0CA,CAACA;IAExIA,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,UAAUA,CAACA,QAAQA,CAACA,MAAMA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;QAClDA,IAAIA,KAAKA,GAAGA,UAAUA,CAACA,QAAQA,CAACA,CAACA,CAACA,CAACA;QACnCA,MAAMA,IAAIA,IAAIA,CAACA;QACfA,MAAMA,IAAIA,WAAWA,CAACA,KAAKA,CAACA,CAACA;QAC7BA,MAAMA,IAAIA,IAAIA,GAAGA,OAAOA,CAACA,KAAKA,CAACA,CAACA;IACpCA,CAACA;IAEDA,MAAMA,IAAIA,SAASA,CAACA;IAEpBA,MAAMA,IAAIA,+CAA+CA,CAACA;IAE1DA,EAAEA,CAACA,CAACA,UAAUA,CAACA,QAAQA,CAACA,MAAMA,CAACA,CAACA,CAACA;QAC7BA,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,UAAUA,CAACA,QAAQA,CAACA,MAAMA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;YAClDA,EAAEA,CAACA,CAACA,CAACA,CAACA,CAACA,CAACA;gBACJA,MAAMA,IAAIA,OAAOA,CAACA;YACtBA,CAACA;YAEDA,IAAIA,KAAKA,GAAGA,UAAUA,CAACA,QAAQA,CAACA,CAACA,CAACA,CAACA;YACnCA,MAAMA,IAAIA,eAAeA,GAAGA,KAAKA,CAACA,IAAIA,GAAGA,KAAKA,GAAGA,WAAWA,CAACA,KAAKA,CAACA,CAACA;QACxEA,CAACA;IACLA,CAACA;IAEDA,EAAEA,CAACA,CAACA,UAAUA,CAACA,QAAQA,CAACA,MAAMA,GAAGA,CAACA,CAACA,CAACA,CAACA;QACjCA,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,UAAUA,CAACA,QAAQA,CAACA,MAAMA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;YAClDA,MAAMA,IAAIA,eAAeA,CAACA;YAE1BA,IAAIA,KAAKA,GAAGA,UAAUA,CAACA,QAAQA,CAACA,CAACA,CAACA,CAACA;YAEnCA,EAAEA,CAACA,CAACA,KAAKA,CAACA,UAAUA,CAACA,CAACA,CAACA;gBACnBA,MAAMA,IAAIA,WAAWA,CAACA,KAAKA,CAACA,GAAGA,OAAOA,GAAGA,WAAWA,CAACA,KAAKA,CAACA,GAAGA,iBAAiBA,CAACA;YACpFA,CAACA;YACDA,IAAIA,CAACA,CAACA;gBACFA,MAAMA,IAAIA,WAAWA,CAACA,KAAKA,CAACA,GAAGA,gBAAgBA,CAACA;YACpDA,CAACA;QACLA,CAACA;QACDA,MAAMA,IAAIA,OAAOA,CAACA;IACtBA,CAACA;IAEDA,MAAMA,IAAIA,YAAYA,CAACA;IACvBA,MAAMA,IAAIA,MAAMA,GAAGA,UAAUA,CAACA,IAAIA,GAAGA,+BAA+BA,GAAGA,oBAAoBA,CAACA,UAAUA,CAACA,GAAGA,OAAOA,CAACA;IAClHA,MAAMA,IAAIA,MAAMA,GAAGA,UAAUA,CAACA,IAAIA,GAAGA,0BAA0BA,GAAGA,UAAUA,CAACA,QAAQA,CAACA,MAAMA,GAAGA,OAAOA,CAACA;IACvGA,MAAMA,IAAIA,MAAMA,GAAGA,UAAUA,CAACA,IAAIA,GAAGA,oEAAoEA,CAACA;IAC1GA,EAAEA,CAACA,CAACA,UAAUA,CAACA,QAAQA,CAACA,MAAMA,CAACA,CAACA,CAACA;QAC7BA,MAAMA,IAAIA,8BAA8BA,CAACA;QAEzCA,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,UAAUA,CAACA,QAAQA,CAACA,MAAMA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;YAClDA,MAAMA,IAAIA,mBAAmBA,GAAGA,CAACA,GAAGA,gBAAgBA,GAAGA,UAAUA,CAACA,QAAQA,CAACA,CAACA,CAACA,CAACA,IAAIA,GAAGA,OAAOA,CAACA;QACjGA,CAACA;QAEDA,MAAMA,IAAIA,eAAeA,CAACA;IAC9BA,CAACA;IACDA,IAAIA,CAACA,CAACA;QACFA,MAAMA,IAAIA,8CAA8CA,CAACA;IAC7DA,CAACA;IACDA,MAAMA,IAAIA,WAAWA,CAACA;IAEtBA,MAAMA,CAACA,MAAMA,CAACA;AAClBA,CAACA;AAED,SAAS,wBAAwB;IAC7BC,IAAIA,MAAMA,GAAGA,+CAA+CA,CAACA;IAE7DA,MAAMA,IAAIA,yBAAyBA,CAACA;IAEpCA,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,WAAWA,CAACA,MAAMA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;QAC1CA,IAAIA,UAAUA,GAAGA,WAAWA,CAACA,CAACA,CAACA,CAACA;QAEhCA,EAAEA,CAACA,CAACA,CAACA,GAAGA,CAACA,CAACA,CAACA,CAACA;YACRA,MAAMA,IAAIA,MAAMA,CAACA;QACrBA,CAACA;QAEDA,MAAMA,IAAIA,uBAAuBA,CAACA,UAAUA,CAACA,CAACA;IAClDA,CAACA;IAEDA,MAAMA,IAAIA,GAAGA,CAACA;IACdA,MAAMA,CAACA,MAAMA,CAACA;AAClBA,CAACA;AAED,SAAS,uBAAuB,CAAC,UAA2B;IACxDC,IAAIA,MAAMA,GAAGA,uBAAuBA,GAAGA,UAAUA,CAACA,IAAIA,GAAGA,sBAAsBA,CAAAA;IAE/EA,EAAEA,CAACA,CAACA,UAAUA,CAACA,UAAUA,CAACA,CAACA,CAACA;QACxBA,MAAMA,IAAIA,IAAIA,CAACA;QACfA,MAAMA,IAAIA,UAAUA,CAACA,UAAUA,CAACA,IAAIA,CAACA,IAAIA,CAACA,CAACA;IAC/CA,CAACA;IAEDA,MAAMA,IAAIA,QAAQA,CAACA;IAEnBA,EAAEA,CAACA,CAACA,UAAUA,CAACA,IAAIA,KAAKA,kBAAkBA,CAACA,CAACA,CAACA;QACzCA,MAAMA,IAAIA,qCAAqCA,CAACA;IACpDA,CAACA;IAEDA,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,UAAUA,CAACA,QAAQA,CAACA,MAAMA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;QAClDA,IAAIA,KAAKA,GAAGA,UAAUA,CAACA,QAAQA,CAACA,CAACA,CAACA,CAACA;QACnCA,MAAMA,IAAIA,UAAUA,GAAGA,KAAKA,CAACA,IAAIA,GAAGA,IAAIA,GAAGA,OAAOA,CAACA,KAAKA,CAACA,GAAGA,OAAOA,CAACA;IACxEA,CAACA;IAEDA,MAAMA,IAAIA,WAAWA,CAACA;IACtBA,MAAMA,IAAIA,uBAAuBA,GAAGA,oBAAoBA,CAACA,UAAUA,CAACA,GAAGA,eAAeA,CAACA;IACvFA,MAAMA,IAAIA,oBAAoBA,CAACA;IAE/BA,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,UAAUA,CAACA,QAAQA,CAACA,MAAMA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;QAClDA,IAAIA,KAAKA,GAAGA,UAAUA,CAACA,QAAQA,CAACA,CAACA,CAACA,CAACA;QACnCA,MAAMA,IAAIA,IAAIA,CAACA;QACfA,MAAMA,IAAIA,WAAWA,CAACA,KAAKA,CAACA,CAACA;QAC7BA,MAAMA,IAAIA,IAAIA,GAAGA,OAAOA,CAACA,KAAKA,CAACA,CAACA;IACpCA,CAACA;IAEDA,MAAMA,IAAIA,KAAKA,GAAGA,UAAUA,CAACA,IAAIA,CAACA;IAClCA,MAAMA,IAAIA,QAAQA,CAACA;IAEnBA,MAAMA,CAACA,MAAMA,CAACA;AAClBA,CAACA;AAED,SAAS,aAAa;IAClBC,IAAIA,MAAMA,GAAGA,+CAA+CA,CAACA;IAE7DA,MAAMA,IAAIA,mBAAmBA,CAACA;IAE9BA,MAAMA,IAAIA,QAAQA,CAACA;IAEnBA,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,WAAWA,CAACA,MAAMA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;QAC1CA,IAAIA,UAAUA,GAAGA,WAAWA,CAACA,CAACA,CAACA,CAACA;QAEhCA,EAAEA,CAACA,CAACA,CAACA,CAACA,CAACA,CAACA;YACJA,MAAMA,IAAIA,MAAMA,CAACA;QACrBA,CAACA;QAEDA,MAAMA,IAAIA,2BAA2BA,CAACA,UAAUA,CAACA,CAACA;IACtDA,CAACA;IAEDA,MAAMA,IAAIA,GAAGA,CAACA;IACdA,MAAMA,CAACA,MAAMA,CAACA;AAClBA,CAACA;AAED,SAAS,WAAW,CAAC,IAAY;IAC7BC,MAAMA,CAACA,IAAIA,CAACA,MAAMA,CAACA,CAACA,EAAEA,CAACA,CAACA,KAAKA,GAAGA,IAAIA,IAAIA,CAACA,MAAMA,CAACA,CAACA,EAAEA,CAACA,CAACA,CAACA,WAAWA,EAAEA,KAAKA,IAAIA,CAACA,MAAMA,CAACA,CAACA,EAAEA,CAACA,CAACA,CAAAA;AAC7FA,CAACA;AAED,SAAS,cAAc;IACnBC,IAAIA,MAAMA,GAAGA,EAAEA,CAACA;IAEhBA,MAAMA,IACNA,2CAA2CA,GAC3CA,MAAMA,GACNA,yBAAyBA,GACzBA,+DAA+DA,GAC/DA,4DAA4DA,GAC5DA,eAAeA,GACfA,MAAMA,GACNA,qEAAqEA,GACrEA,4CAA4CA,GAC5CA,6BAA6BA,GAC7BA,mBAAmBA,GACnBA,MAAMA,GACNA,yCAAyCA,GACzCA,eAAeA,GACfA,MAAMA,GACNA,kEAAkEA,GAClEA,gEAAgEA,GAChEA,sDAAsDA,GACtDA,mBAAmBA,GACnBA,eAAeA,CAACA;IAEhBA,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,WAAWA,CAACA,MAAMA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;QAC1CA,IAAIA,UAAUA,GAAGA,WAAWA,CAACA,CAACA,CAACA,CAACA;QAEhCA,MAAMA,IAAIA,MAAMA,CAACA;QACjBA,MAAMA,IAAIA,sBAAsBA,GAAGA,oBAAoBA,CAACA,UAAUA,CAACA,GAAGA,SAASA,GAAGA,UAAUA,CAACA,IAAIA,GAAGA,eAAeA,CAACA;QAEpHA,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,UAAUA,CAACA,QAAQA,CAACA,MAAMA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;YAClDA,IAAIA,KAAKA,GAAGA,UAAUA,CAACA,QAAQA,CAACA,CAACA,CAACA,CAACA;YAEnCA,EAAEA,CAACA,CAACA,KAAKA,CAACA,OAAOA,CAACA,CAACA,CAACA;gBAChBA,EAAEA,CAACA,CAACA,KAAKA,CAACA,UAAUA,CAACA,CAACA,CAACA;oBACnBA,MAAMA,IAAIA,2CAA2CA,GAAGA,KAAKA,CAACA,IAAIA,GAAGA,QAAQA,CAACA;gBAClFA,CAACA;gBACDA,IAAIA,CAACA,CAACA;oBACFA,MAAMA,IAAIA,mCAAmCA,GAAGA,KAAKA,CAACA,IAAIA,GAAGA,QAAQA,CAACA;gBAC1EA,CAACA;YACLA,CAACA;YACDA,IAAIA,CAACA,EAAEA,CAACA,CAACA,KAAKA,CAACA,MAAMA,IAAIA,KAAKA,CAACA,eAAeA,CAACA,CAACA,CAACA;gBAC7CA,MAAMA,IAAIA,kCAAkCA,GAAGA,KAAKA,CAACA,IAAIA,GAAGA,QAAQA,CAACA;YACzEA,CAACA;YACDA,IAAIA,CAACA,EAAEA,CAACA,CAACA,KAAKA,CAACA,OAAOA,CAACA,CAACA,CAACA;gBACrBA,EAAEA,CAACA,CAACA,KAAKA,CAACA,UAAUA,CAACA,CAACA,CAACA;oBACnBA,MAAMA,IAAIA,2CAA2CA,GAAGA,KAAKA,CAACA,IAAIA,GAAGA,QAAQA,CAACA;gBAClFA,CAACA;gBACDA,IAAIA,CAACA,CAACA;oBACFA,MAAMA,IAAIA,mCAAmCA,GAAGA,KAAKA,CAACA,IAAIA,GAAGA,QAAQA,CAACA;gBAC1EA,CAACA;YACLA,CAACA;YACDA,IAAIA,CAACA,CAACA;gBACFA,MAAMA,IAAIA,0CAA0CA,GAAGA,KAAKA,CAACA,IAAIA,GAAGA,QAAQA,CAACA;YACjFA,CAACA;QACLA,CAACA;QAEDA,MAAMA,IAAIA,eAAeA,CAACA;IAC9BA,CAACA;IAEDA,MAAMA,IAAIA,OAAOA,CAACA;IAClBA,MAAMA,IAAIA,OAAOA,CAACA;IAClBA,MAAMA,CAACA,MAAMA,CAACA;AAClBA,CAACA;AAED,SAAS,aAAa,CAAC,CAAM,EAAE,KAAa;IACxCC,GAAGA,CAACA,CAACA,GAAGA,CAACA,IAAIA,IAAIA,CAACA,CAACA,CAACA,CAACA;QACjBA,EAAEA,CAACA,CAACA,CAACA,CAACA,IAAIA,CAACA,KAAKA,KAAKA,CAACA,CAACA,CAACA;YACpBA,MAAMA,CAACA,IAAIA,CAACA;QAChBA,CAACA;IACLA,CAACA;AACLA,CAACA;AAED,SAAS,OAAO,CAAI,KAAU,EAAE,IAAsB;IAClDC,IAAIA,MAAMA,GAAQA,EAAEA,CAACA;IAErBA,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,KAAKA,CAACA,MAAMA,EAAEA,CAACA,GAAGA,CAACA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;QAC3CA,IAAIA,CAACA,GAAQA,KAAKA,CAACA,CAACA,CAACA,CAACA;QACtBA,IAAIA,CAACA,GAAGA,IAAIA,CAACA,CAACA,CAACA,CAACA;QAEhBA,IAAIA,IAAIA,GAAQA,MAAMA,CAACA,CAACA,CAACA,IAAIA,EAAEA,CAACA;QAChCA,IAAIA,CAACA,IAAIA,CAACA,CAACA,CAACA,CAACA;QACbA,MAAMA,CAACA,CAACA,CAACA,GAAGA,IAAIA,CAACA;IACrBA,CAACA;IAEDA,MAAMA,CAACA,MAAMA,CAACA;AAClBA,CAACA;AAED,SAAS,wBAAwB,CAAC,QAA0D,EAAE,gBAAwB,EAAE,MAAc;IAClIC,IAAIA,MAAMA,GAAGA,QAAQA,CAACA,CAACA,CAACA,CAACA,IAAIA,CAACA,MAAMA,CAACA;IAErCA,IAAIA,MAAMA,GAAGA,EAAEA,CAACA;IAChBA,IAAIA,KAAaA,CAACA;IAElBA,EAAEA,CAACA,CAACA,QAAQA,CAACA,MAAMA,KAAKA,CAACA,CAACA,CAACA,CAACA;QACxBA,IAAIA,OAAOA,GAAGA,QAAQA,CAACA,CAACA,CAACA,CAACA;QAE1BA,EAAEA,CAACA,CAACA,gBAAgBA,KAAKA,MAAMA,CAACA,CAACA,CAACA;YAC9BA,MAAMA,CAACA,qBAAqBA,GAAGA,aAAaA,CAACA,UAAUA,CAACA,UAAUA,EAAEA,OAAOA,CAACA,IAAIA,CAACA,GAAGA,OAAOA,CAACA;QAChGA,CAACA;QAEDA,IAAIA,WAAWA,GAAGA,QAAQA,CAACA,CAACA,CAACA,CAACA,IAAIA,CAACA;QACnCA,MAAMA,GAAGA,WAAWA,CAAAA;QAEpBA,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,gBAAgBA,EAAEA,CAACA,GAAGA,MAAMA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;YAC7CA,EAAEA,CAACA,CAACA,CAACA,GAAGA,gBAAgBA,CAACA,CAACA,CAACA;gBACvBA,MAAMA,IAAIA,MAAMA,CAACA;YACrBA,CAACA;YAEDA,KAAKA,GAAGA,CAACA,KAAKA,CAACA,GAAGA,OAAOA,GAAGA,CAACA,UAAUA,GAAGA,CAACA,CAACA,CAACA;YAC7CA,MAAMA,IAAIA,iBAAiBA,GAAGA,KAAKA,GAAGA,uBAAuBA,GAAGA,WAAWA,CAACA,MAAMA,CAACA,CAACA,EAAEA,CAACA,CAACA,CAACA;QAC7FA,CAACA;QAEDA,MAAMA,IAAIA,iBAAiBA,GAAGA,aAAaA,CAACA,UAAUA,CAACA,UAAUA,EAAEA,OAAOA,CAACA,IAAIA,CAACA,GAAGA,mCAAmCA,CAACA;IAC3HA,CAACA;IACDA,IAAIA,CAACA,CAACA;QACFA,MAAMA,IAAIA,MAAMA,GAAGA,UAAUA,CAACA,cAAcA,CAACA,MAAMA,CAACA,QAAQA,EAAEA,UAAAA,CAAIA,IAACA,OAAAA,CAACA,CAACA,IAAIA,EAANA,CAAMA,CAACA,CAACA,IAAIA,CAACA,IAAIA,CAACA,GAAGA,MAAMA,CAAAA;QAC9FA,KAAKA,GAAGA,gBAAgBA,KAAKA,CAACA,GAAGA,OAAOA,GAAGA,CAACA,UAAUA,GAAGA,gBAAgBA,CAACA,CAACA;QAC3EA,MAAMA,IAAIA,MAAMA,GAAGA,wBAAwBA,GAAGA,KAAKA,GAAGA,UAAUA,CAAAA;QAEhEA,IAAIA,eAAeA,GAAGA,OAAOA,CAACA,QAAQA,EAAEA,UAAAA,CAAIA,IAACA,OAAAA,CAACA,CAACA,IAAIA,CAACA,MAAMA,CAACA,gBAAgBA,EAAEA,CAACA,CAACA,EAAlCA,CAAkCA,CAACA,CAACA;QAEjFA,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,IAAIA,eAAeA,CAACA,CAACA,CAACA;YAC5BA,EAAEA,CAACA,CAACA,eAAeA,CAACA,cAAcA,CAACA,CAACA,CAACA,CAACA,CAACA,CAACA;gBACpCA,MAAMA,IAAIA,MAAMA,GAAGA,wBAAwBA,GAAGA,CAACA,GAAGA,GAAGA,CAACA;gBACtDA,MAAMA,IAAIA,wBAAwBA,CAACA,eAAeA,CAACA,CAACA,CAACA,EAAEA,gBAAgBA,GAAGA,CAACA,EAAEA,MAAMA,GAAGA,MAAMA,CAACA,CAACA;YAClGA,CAACA;QACLA,CAACA;QAEDA,MAAMA,IAAIA,MAAMA,GAAGA,kDAAkDA,CAACA;QACtEA,MAAMA,IAAIA,MAAMA,GAAGA,OAAOA,CAACA;IAC/BA,CAACA;IAEDA,MAAMA,CAACA,MAAMA,CAACA;AAClBA,CAACA;AAED,SAAS,GAAG,CAAI,KAAU,EAAE,IAAsB;IAC9CC,IAAIA,GAAGA,GAAGA,IAAIA,CAACA,KAAKA,CAACA,CAACA,CAACA,CAACA,CAACA;IAEzBA,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,KAAKA,CAACA,MAAMA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;QACpCA,IAAIA,IAAIA,GAAGA,IAAIA,CAACA,KAAKA,CAACA,CAACA,CAACA,CAACA,CAACA;QAC1BA,EAAEA,CAACA,CAACA,IAAIA,GAAGA,GAAGA,CAACA,CAACA,CAACA;YACbA,GAAGA,GAAGA,IAAIA,CAACA;QACfA,CAACA;IACLA,CAACA;IAEDA,MAAMA,CAACA,GAAGA,CAACA;AACfA,CAACA;AAED,SAAS,GAAG,CAAI,KAAU,EAAE,IAAsB;IAC9CC,IAAIA,GAAGA,GAAGA,IAAIA,CAACA,KAAKA,CAACA,CAACA,CAACA,CAACA,CAACA;IAEzBA,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,KAAKA,CAACA,MAAMA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;QACpCA,IAAIA,IAAIA,GAAGA,IAAIA,CAACA,KAAKA,CAACA,CAACA,CAACA,CAACA,CAACA;QAC1BA,EAAEA,CAACA,CAACA,IAAIA,GAAGA,GAAGA,CAACA,CAACA,CAACA;YACbA,GAAGA,GAAGA,IAAIA,CAACA;QACfA,CAACA;IACLA,CAACA;IAEDA,MAAMA,CAACA,GAAGA,CAACA;AACfA,CAACA;AAED,SAAS,iBAAiB;IACtBC,IAAIA,MAAMA,GAAGA,EAAEA,CAACA;IAChBA,MAAMA,IAAIA,iCAAiCA,CAACA;IAC5CA,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,IAAIA,UAAUA,CAACA,UAAUA,CAACA,cAAcA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;QAC7DA,EAAEA,CAACA,CAACA,CAACA,CAACA,CAACA,CAACA;YACJA,MAAMA,IAAIA,IAAIA,CAACA;QACnBA,CAACA;QAEDA,EAAEA,CAACA,CAACA,CAACA,GAAGA,UAAUA,CAACA,UAAUA,CAACA,eAAeA,CAACA,CAACA,CAACA;YAC5CA,MAAMA,IAAIA,GAAGA,CAACA;QAClBA,CAACA;QACDA,IAAIA,CAACA,CAACA;YACFA,MAAMA,IAAIA,UAAUA,CAACA,WAAWA,CAACA,OAAOA,CAACA,CAACA,CAACA,CAACA,MAAMA,CAACA;QACvDA,CAACA;IACLA,CAACA;IACDA,MAAMA,IAAIA,QAAQA,CAACA;IAEnBA,MAAMA,IAAIA,gEAAgEA,CAACA;IAC3EA,MAAMA,IAAIA,+CAA+CA,CAACA;IAS1DA,MAAMA,IAAIA,eAAeA,CAACA;IAE1BA,MAAMA,CAACA,MAAMA,CAACA;AAClBA,CAACA;AAED,SAAS,wBAAwB;IAC7BC,IAAIA,MAAMA,GAAGA,2CAA2CA,GACpDA,MAAMA,GACNA,yBAAyBA,GACzBA,0CAA0CA,CAACA;IAE/CA,IAAIA,CAASA,CAACA;IACdA,IAAIA,QAAQA,GAAqDA,EAAEA,CAACA;IAEpEA,GAAGA,CAACA,CAACA,CAACA,GAAGA,UAAUA,CAACA,UAAUA,CAACA,YAAYA,EAAEA,CAACA,IAAIA,UAAUA,CAACA,UAAUA,CAACA,WAAWA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;QACvFA,QAAQA,CAACA,IAAIA,CAACA,EAAEA,IAAIA,EAAEA,CAACA,EAAEA,IAAIA,EAAEA,UAAUA,CAACA,WAAWA,CAACA,OAAOA,CAACA,CAACA,CAACA,EAAEA,CAACA,CAACA;IACxEA,CAACA;IAEDA,QAAQA,CAACA,IAAIA,CAACA,UAACA,CAACA,EAAEA,CAACA,IAAKA,OAAAA,CAACA,CAACA,IAAIA,CAACA,aAAaA,CAACA,CAACA,CAACA,IAAIA,CAACA,EAA5BA,CAA4BA,CAACA,CAACA;IAEtDA,MAAMA,IAAIA,sGAAsGA,CAACA;IAEjHA,IAAIA,cAAcA,GAAGA,GAAGA,CAACA,QAAQA,EAAEA,UAAAA,CAAIA,IAACA,OAAAA,CAACA,CAACA,IAAIA,CAACA,MAAMA,EAAbA,CAAaA,CAACA,CAACA;IACvDA,IAAIA,cAAcA,GAAGA,GAAGA,CAACA,QAAQA,EAAEA,UAAAA,CAAIA,IAACA,OAAAA,CAACA,CAACA,IAAIA,CAACA,MAAMA,EAAbA,CAAaA,CAACA,CAACA;IACvDA,MAAMA,IAAIA,mCAAmCA,CAACA;IAG9CA,GAAGA,CAACA,CAACA,CAACA,GAAGA,cAAcA,EAAEA,CAACA,IAAIA,cAAcA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;QAChDA,IAAIA,iBAAiBA,GAAGA,UAAUA,CAACA,cAAcA,CAACA,KAAKA,CAACA,QAAQA,EAAEA,UAAAA,CAAIA,IAACA,OAAAA,CAACA,CAACA,IAAIA,CAACA,MAAMA,KAAKA,CAACA,EAAnBA,CAAmBA,CAACA,CAACA;QAC5FA,EAAEA,CAACA,CAACA,iBAAiBA,CAACA,MAAMA,GAAGA,CAACA,CAACA,CAACA,CAACA;YAC/BA,MAAMA,IAAIA,qBAAqBA,GAAGA,CAACA,GAAGA,GAAGA,CAACA;YAC1CA,MAAMA,IAAIA,wBAAwBA,CAACA,iBAAiBA,EAAEA,CAACA,EAAEA,kBAAkBA,CAACA,CAACA;QACjFA,CAACA;IACLA,CAACA;IAEDA,MAAMA,IAAIA,8DAA8DA,CAACA;IACzEA,MAAMA,IAAIA,mBAAmBA,CAACA;IAC9BA,MAAMA,IAAIA,eAAeA,CAACA;IAE1BA,MAAMA,IAAIA,WAAWA,CAACA;IACtBA,MAAMA,IAAIA,GAAGA,CAACA;IAEdA,MAAMA,CAACA,MAAMA,CAACA;AAClBA,CAACA;AAED,SAAS,cAAc,CAAC,IAA2B;IAC/CC,GAAGA,CAACA,CAACA,GAAGA,CAACA,IAAIA,IAAIA,UAAUA,CAACA,UAAUA,CAACA,CAACA,CAACA;QACrCA,EAAEA,CAACA,CAAMA,UAAUA,CAACA,UAAUA,CAACA,IAAIA,CAACA,KAAKA,IAAIA,CAACA,CAACA,CAACA;YAC5CA,MAAMA,CAACA,IAAIA,CAACA;QAChBA,CAACA;IACLA,CAACA;IAEDA,MAAMA,IAAIA,KAAKA,EAAEA,CAACA;AACtBA,CAACA;AAED,SAAS,eAAe;IACpBC,IAAIA,MAAMA,GAAGA,EAAEA,CAACA;IAEhBA,MAAMA,IAAIA,+CAA+CA,CAACA;IAE1DA,MAAMA,IAAIA,yBAAyBA,CAACA;IACpCA,MAAMA,IAAIA,uGAAuGA,CAACA;IAClHA,MAAMA,IAAIA,8DAA8DA,CAACA;IAEzEA,MAAMA,IAAIA,qCAAqCA,CAACA;IAEhDA,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,WAAWA,CAACA,MAAMA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;QAC1CA,IAAIA,UAAUA,GAAGA,WAAWA,CAACA,CAACA,CAACA,CAACA;QAEhCA,MAAMA,IAAIA,8BAA8BA,GAAGA,oBAAoBA,CAACA,UAAUA,CAACA,GAAGA,IAAIA,CAACA;QACnFA,MAAMA,IAAIA,sBAAsBA,GAAGA,oBAAoBA,CAACA,UAAUA,CAACA,GAAGA,IAAIA,GAAGA,UAAUA,CAACA,IAAIA,GAAGA,gBAAgBA,CAACA;IACpHA,CAACA;IAEDA,MAAMA,IAAIA,4EAA4EA,CAACA;IACvFA,MAAMA,IAAIA,eAAeA,CAACA;IAC1BA,MAAMA,IAAIA,eAAeA,CAACA;IAE1BA,MAAMA,IAAIA,2CAA2CA,CAACA;IACtDA,MAAMA,IAAIA,mDAAmDA,CAACA;IAE9DA,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,WAAWA,CAACA,MAAMA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;QAC1CA,IAAIA,UAAUA,GAAGA,WAAWA,CAACA,CAACA,CAACA,CAACA;QAChCA,MAAMA,IAAIA,eAAeA,GAAGA,oBAAoBA,CAACA,UAAUA,CAACA,GAAGA,SAASA,GAAGA,UAAUA,CAACA,IAAIA,GAAGA,aAAaA,CAACA;IAC/GA,CAACA;IAEDA,MAAMA,IAAIA,OAAOA,CAACA;IAElBA,MAAMA,IAAIA,OAAOA,CAACA;IAElBA,MAAMA,CAACA,MAAMA,CAACA;AAClBA,CAACA;AAED,IAAI,mBAAmB,GAAG,aAAa,EAAE,CAAC;AAC1C,IAAI,gBAAgB,GAAG,wBAAwB,EAAE,CAAC;AAClD,IAAI,MAAM,GAAG,cAAc,EAAE,CAAC;AAC9B,IAAI,gBAAgB,GAAG,wBAAwB,EAAE,CAAC;AAClD,IAAI,OAAO,GAAG,eAAe,EAAE,CAAC;AAChC,IAAI,SAAS,GAAG,iBAAiB,EAAE,CAAC;AAEpC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,mBAAmB,EAAE,GAAG,4DAA4D,EAAE,mBAAmB,EAAE,KAAK,CAAC,CAAC;AACpI,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,mBAAmB,EAAE,GAAG,wDAAwD,EAAE,gBAAgB,EAAE,KAAK,CAAC,CAAC;AAC7H,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,mBAAmB,EAAE,GAAG,oDAAoD,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;AAC/G,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,mBAAmB,EAAE,GAAG,wDAAwD,EAAE,gBAAgB,EAAE,KAAK,CAAC,CAAC;AAC7H,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,mBAAmB,EAAE,GAAG,qDAAqD,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;AACjH,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,mBAAmB,EAAE,GAAG,iDAAiD,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC"} ======= @@ -51,3 +52,6 @@ ======= {"version":3,"file":"SyntaxGenerator.js","sourceRoot":"","sources":["file:///C:/VSPro_1/src/typescript/public_cyrusn/src/compiler/sys.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/core/errors.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/core/arrayUtilities.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/core/stringUtilities.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/syntax/syntaxKind.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/syntax/syntaxFacts.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/syntax/SyntaxGenerator.ts"],"names":["getWScriptSystem","getWScriptSystem.readFile","getWScriptSystem.writeFile","getNodeSystem","getNodeSystem.readFile","getNodeSystem.writeFile","getNodeSystem.fileChanged","TypeScript","TypeScript.Errors","TypeScript.Errors.constructor","TypeScript.Errors.argument","TypeScript.Errors.argumentOutOfRange","TypeScript.Errors.argumentNull","TypeScript.Errors.abstract","TypeScript.Errors.notYetImplemented","TypeScript.Errors.invalidOperation","TypeScript.ArrayUtilities","TypeScript.ArrayUtilities.constructor","TypeScript.ArrayUtilities.sequenceEquals","TypeScript.ArrayUtilities.contains","TypeScript.ArrayUtilities.distinct","TypeScript.ArrayUtilities.last","TypeScript.ArrayUtilities.lastOrDefault","TypeScript.ArrayUtilities.firstOrDefault","TypeScript.ArrayUtilities.first","TypeScript.ArrayUtilities.sum","TypeScript.ArrayUtilities.select","TypeScript.ArrayUtilities.where","TypeScript.ArrayUtilities.any","TypeScript.ArrayUtilities.all","TypeScript.ArrayUtilities.binarySearch","TypeScript.ArrayUtilities.createArray","TypeScript.ArrayUtilities.grow","TypeScript.ArrayUtilities.copy","TypeScript.ArrayUtilities.indexOf","TypeScript.StringUtilities","TypeScript.StringUtilities.constructor","TypeScript.StringUtilities.isString","TypeScript.StringUtilities.endsWith","TypeScript.StringUtilities.startsWith","TypeScript.StringUtilities.repeat","TypeScript.SyntaxKind","TypeScript.SyntaxFacts","TypeScript.SyntaxFacts.getTokenKind","TypeScript.SyntaxFacts.getText","TypeScript.SyntaxFacts.isAnyKeyword","TypeScript.SyntaxFacts.isAnyPunctuation","TypeScript.SyntaxFacts.isPrefixUnaryExpressionOperatorToken","TypeScript.SyntaxFacts.isBinaryExpressionOperatorToken","TypeScript.SyntaxFacts.isAssignmentOperatorToken","TypeScript.SyntaxFacts.isType","firstKind","getStringWithoutSuffix","getNameWithoutSuffix","getType","camelCase","getSafeName","generateConstructorFunction","generateSyntaxInterfaces","generateSyntaxInterface","generateNodes","isInterface","generateWalker","firstEnumName","groupBy","generateKeywordCondition","min","max","generateUtilities","generateScannerUtilities","syntaxKindName","generateVisitor"],"mappings":"AA4BA,IAAI,GAAG,GAAW,CAAC;IAEf,SAAS,gBAAgB;QAErBA,IAAIA,GAAGA,GAAGA,IAAIA,aAAaA,CAACA,4BAA4BA,CAACA,CAACA;QAE1DA,IAAIA,UAAUA,GAAGA,IAAIA,aAAaA,CAACA,cAAcA,CAACA,CAACA;QACnDA,UAAUA,CAACA,IAAIA,GAAGA,CAACA,CAAUA;QAE7BA,IAAIA,YAAYA,GAAGA,IAAIA,aAAaA,CAACA,cAAcA,CAACA,CAACA;QACrDA,YAAYA,CAACA,IAAIA,GAAGA,CAACA,CAAYA;QAEjCA,IAAIA,IAAIA,GAAaA,EAAEA,CAACA;QACxBA,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,OAAOA,CAACA,SAASA,CAACA,MAAMA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;YAChDA,IAAIA,CAACA,CAACA,CAACA,GAAGA,OAAOA,CAACA,SAASA,CAACA,IAAIA,CAACA,CAACA,CAACA,CAACA;QACxCA,CAACA;QAEDA,SAASA,QAAQA,CAACA,QAAgBA,EAAEA,QAAiBA;YACjDC,EAAEA,CAACA,CAACA,CAACA,GAAGA,CAACA,UAAUA,CAACA,QAAQA,CAACA,CAACA,CAACA,CAACA;gBAC5BA,MAAMA,CAACA,SAASA,CAACA;YACrBA,CAACA;YACDA,UAAUA,CAACA,IAAIA,EAAEA,CAACA;YAClBA,IAAAA,CAACA;gBACGA,EAAEA,CAACA,CAACA,QAAQA,CAACA,CAACA,CAACA;oBACXA,UAAUA,CAACA,OAAOA,GAAGA,QAAQA,CAACA;oBAC9BA,UAAUA,CAACA,YAAYA,CAACA,QAAQA,CAACA,CAACA;gBACtCA,CAACA;gBACDA,IAAIA,CAACA,CAACA;oBAEFA,UAAUA,CAACA,OAAOA,GAAGA,QAAQA,CAACA;oBAC9BA,UAAUA,CAACA,YAAYA,CAACA,QAAQA,CAACA,CAACA;oBAClCA,IAAIA,GAAGA,GAAGA,UAAUA,CAACA,QAAQA,CAACA,CAACA,CAACA,IAAIA,EAAEA,CAACA;oBAEvCA,UAAUA,CAACA,QAAQA,GAAGA,CAACA,CAACA;oBAExBA,UAAUA,CAACA,OAAOA,GAAGA,GAAGA,CAACA,MAAMA,IAAIA,CAACA,IAAIA,CAACA,GAAGA,CAACA,UAAUA,CAACA,CAACA,CAACA,KAAKA,IAAIA,IAAIA,GAAGA,CAACA,UAAUA,CAACA,CAACA,CAACA,KAAKA,IAAIA,IAAIA,GAAGA,CAACA,UAAUA,CAACA,CAACA,CAACA,KAAKA,IAAIA,IAAIA,GAAGA,CAACA,UAAUA,CAACA,CAACA,CAACA,KAAKA,IAAIA,CAACA,GAAGA,SAASA,GAAGA,OAAOA,CAACA;gBACzLA,CAACA;gBAEDA,MAAMA,CAACA,UAAUA,CAACA,QAAQA,EAAEA,CAACA;YACjCA,CACAA;YAAAA,KAAKA,CAACA,CAACA,CAACA,CAACA,CAATA,CAACA;gBACGA,MAAMA,CAACA,CAACA;YACZA,CAACA;oBACDA,CAACA;gBACGA,UAAUA,CAACA,KAAKA,EAAEA,CAACA;YACvBA,CAACA;QACLA,CAACA;QAEDD,SAASA,SAASA,CAACA,QAAgBA,EAAEA,IAAYA,EAAEA,kBAA4BA;YAC3EE,UAAUA,CAACA,IAAIA,EAAEA,CAACA;YAClBA,YAAYA,CAACA,IAAIA,EAAEA,CAACA;YACpBA,IAAAA,CAACA;gBAEGA,UAAUA,CAACA,OAAOA,GAAGA,OAAOA,CAACA;gBAC7BA,UAAUA,CAACA,SAASA,CAACA,IAAIA,CAACA,CAACA;gBAG3BA,EAAEA,CAACA,CAACA,kBAAkBA,CAACA,CAACA,CAACA;oBACrBA,UAAUA,CAACA,QAAQA,GAAGA,CAACA,CAACA;gBAC5BA,CAACA;gBACDA,IAAIA,CAACA,CAACA;oBACFA,UAAUA,CAACA,QAAQA,GAAGA,CAACA,CAACA;gBAC5BA,CAACA;gBACDA,UAAUA,CAACA,MAAMA,CAACA,YAAYA,CAACA,CAACA;gBAChCA,YAAYA,CAACA,UAAUA,CAACA,QAAQA,EAAEA,CAACA,CAAeA,CAACA;YACvDA,CAACA;oBACDA,CAACA;gBACGA,YAAYA,CAACA,KAAKA,EAAEA,CAACA;gBACrBA,UAAUA,CAACA,KAAKA,EAAEA,CAACA;YACvBA,CAACA;QACLA,CAACA;QAEDF,MAAMA,CAACA;YACHA,IAAIA,MAAAA;YACJA,OAAOA,EAAEA,MAAMA;YACfA,yBAAyBA,EAAEA,KAAKA;YAChCA,KAAKA,EAALA,UAAMA,CAASA;gBACX,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAC5B,CAAC;YACDA,QAAQA,UAAAA;YACRA,SAASA,WAAAA;YACTA,WAAWA,EAAXA,UAAYA,IAAYA;gBACpB,MAAM,CAAC,GAAG,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;YACzC,CAAC;YACDA,UAAUA,EAAVA,UAAWA,IAAYA;gBACnB,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YAChC,CAAC;YACDA,eAAeA,EAAfA,UAAgBA,IAAYA;gBACxB,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;YAClC,CAAC;YACDA,eAAeA,EAAfA,UAAgBA,aAAqBA;gBACjC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;oBACvC,GAAG,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC;gBACpC,CAAC;YACL,CAAC;YACDA,oBAAoBA,EAApBA;gBACI,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC;YAClC,CAAC;YACDA,mBAAmBA,EAAnBA;gBACI,MAAM,CAAC,IAAI,aAAa,CAAC,eAAe,CAAC,CAAC,gBAAgB,CAAC;YAC/D,CAAC;YACDA,IAAIA,EAAJA,UAAKA,QAAiBA;gBAClB,IAAA,CAAC;oBACG,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBAC3B,CACA;gBAAA,KAAK,CAAC,CAAC,CAAC,CAAC,CAAT,CAAC;gBACD,CAAC;YACL,CAAC;SACJA,CAACA;IACNA,CAACA;IACD,SAAS,aAAa;QAClBG,IAAIA,GAAGA,GAAGA,OAAOA,CAACA,IAAIA,CAACA,CAACA;QACxBA,IAAIA,KAAKA,GAAGA,OAAOA,CAACA,MAAMA,CAACA,CAACA;QAC5BA,IAAIA,GAAGA,GAAGA,OAAOA,CAACA,IAAIA,CAACA,CAACA;QAExBA,IAAIA,QAAQA,GAAWA,GAAGA,CAACA,QAAQA,EAAEA,CAACA;QAEtCA,IAAIA,yBAAyBA,GAAGA,QAAQA,KAAKA,OAAOA,IAAIA,QAAQA,KAAKA,OAAOA,IAAIA,QAAQA,KAAKA,QAAQA,CAACA;QAEtGA,SAASA,QAAQA,CAACA,QAAgBA,EAAEA,QAAiBA;YACjDC,EAAEA,CAACA,CAACA,CAACA,GAAGA,CAACA,UAAUA,CAACA,QAAQA,CAACA,CAACA,CAACA,CAACA;gBAC5BA,MAAMA,CAACA,SAASA,CAACA;YACrBA,CAACA;YACDA,IAAIA,MAAMA,GAAGA,GAAGA,CAACA,YAAYA,CAACA,QAAQA,CAACA,CAACA;YACxCA,IAAIA,GAAGA,GAAGA,MAAMA,CAACA,MAAMA,CAACA;YACxBA,EAAEA,CAACA,CAACA,GAAGA,IAAIA,CAACA,IAAIA,MAAMA,CAACA,CAACA,CAACA,KAAKA,IAAIA,IAAIA,MAAMA,CAACA,CAACA,CAACA,KAAKA,IAAIA,CAACA,CAACA,CAACA;gBAGvDA,GAAGA,IAAIA,CAACA,CAACA,CAACA;gBACVA,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,GAAGA,EAAEA,CAACA,IAAIA,CAACA,EAAEA,CAACA;oBAC9BA,IAAIA,IAAIA,GAAGA,MAAMA,CAACA,CAACA,CAACA,CAACA;oBACrBA,MAAMA,CAACA,CAACA,CAACA,GAAGA,MAAMA,CAACA,CAACA,GAAGA,CAACA,CAACA,CAACA;oBAC1BA,MAAMA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,IAAIA,CAACA;gBACzBA,CAACA;gBACDA,MAAMA,CAACA,MAAMA,CAACA,QAAQA,CAACA,SAASA,EAAEA,CAACA,CAACA,CAACA;YACzCA,CAACA;YACDA,EAAEA,CAACA,CAACA,GAAGA,IAAIA,CAACA,IAAIA,MAAMA,CAACA,CAACA,CAACA,KAAKA,IAAIA,IAAIA,MAAMA,CAACA,CAACA,CAACA,KAAKA,IAAIA,CAACA,CAACA,CAACA;gBAEvDA,MAAMA,CAACA,MAAMA,CAACA,QAAQA,CAACA,SAASA,EAAEA,CAACA,CAACA,CAACA;YACzCA,CAACA;YACDA,EAAEA,CAACA,CAACA,GAAGA,IAAIA,CAACA,IAAIA,MAAMA,CAACA,CAACA,CAACA,KAAKA,IAAIA,IAAIA,MAAMA,CAACA,CAACA,CAACA,KAAKA,IAAIA,IAAIA,MAAMA,CAACA,CAACA,CAACA,KAAKA,IAAIA,CAACA,CAACA,CAACA;gBAE7EA,MAAMA,CAACA,MAAMA,CAACA,QAAQA,CAACA,MAAMA,EAAEA,CAACA,CAACA,CAACA;YACtCA,CAACA;YAEDA,MAAMA,CAACA,MAAMA,CAACA,QAAQA,CAACA,MAAMA,CAACA,CAACA;QACnCA,CAACA;QAEDD,SAASA,SAASA,CAACA,QAAgBA,EAAEA,IAAYA,EAAEA,kBAA4BA;YAE3EE,EAAEA,CAACA,CAACA,kBAAkBA,CAACA,CAACA,CAACA;gBACrBA,IAAIA,GAAGA,QAAQA,GAAGA,IAAIA,CAACA;YAC3BA,CAACA;YAEDA,GAAGA,CAACA,aAAaA,CAACA,QAAQA,EAAEA,IAAIA,EAAEA,MAAMA,CAACA,CAACA;QAC9CA,CAACA;QAEDF,MAAMA,CAACA;YACHA,IAAIA,EAAEA,OAAOA,CAACA,IAAIA,CAACA,KAAKA,CAACA,CAACA,CAACA;YAC3BA,OAAOA,EAAEA,GAAGA,CAACA,GAAGA;YAChBA,yBAAyBA,EAAEA,yBAAyBA;YACpDA,KAAKA,EAALA,UAAMA,CAASA;gBAEZ,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YACvB,CAAC;YACDA,QAAQA,UAAAA;YACRA,SAASA,WAAAA;YACTA,SAASA,EAAEA,UAACA,QAAQA,EAAEA,QAAQA;gBAE1BA,GAAGA,CAACA,SAASA,CAACA,QAAQA,EAAEA,EAAEA,UAAUA,EAAEA,IAAIA,EAAEA,QAAQA,EAAEA,GAAGA,EAAEA,EAAEA,WAAWA,CAACA,CAACA;gBAE1EA,MAAMA,CAACA;oBACHA,KAAKA,EAALA;wBAAU,GAAG,CAAC,WAAW,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;oBAAC,CAAC;iBACtDA,CAACA;gBAEFA,SAASA,WAAWA,CAACA,IAASA,EAAEA,IAASA;oBACrCG,EAAEA,CAACA,CAACA,CAACA,IAAIA,CAACA,KAAKA,IAAIA,CAACA,IAAIA,CAACA,KAAKA,CAACA,CAACA,CAACA;wBAC7BA,MAAMA,CAACA;oBACXA,CAACA;oBAEDA,QAAQA,CAACA,QAAQA,CAACA,CAACA;gBACvBA,CAACA;gBAAAH,CAACA;YACNA,CAACA;YACDA,WAAWA,EAAEA,UAAUA,IAAYA;gBAC/B,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAC/B,CAAC;YACDA,UAAUA,EAAVA,UAAWA,IAAYA;gBACnB,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YAChC,CAAC;YACDA,eAAeA,EAAfA,UAAgBA,IAAYA;gBACxB,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC;YACpE,CAAC;YACDA,eAAeA,EAAfA,UAAgBA,aAAqBA;gBACjC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;oBACvC,GAAG,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;gBACjC,CAAC;YACL,CAAC;YACDA,oBAAoBA,EAApBA;gBACI,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC;YACvC,CAAC;YACDA,mBAAmBA,EAAnBA;gBACI,MAAM,CAAO,OAAQ,CAAC,GAAG,EAAE,CAAC;YAChC,CAAC;YACDA,cAAcA,EAAdA;gBACI,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;oBACZ,MAAM,CAAC,EAAE,EAAE,CAAC;gBAChB,CAAC;gBACD,MAAM,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC;YAC1C,CAAC;YACDA,IAAIA,EAAJA,UAAKA,QAAiBA;gBAClB,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC3B,CAAC;SACJA,CAACA;IACNA,CAACA;IACD,EAAE,CAAC,CAAC,OAAO,OAAO,KAAK,WAAW,IAAI,OAAO,aAAa,KAAK,UAAU,CAAC,CAAC,CAAC;QACxE,MAAM,CAAC,gBAAgB,EAAE,CAAC;IAC9B,CAAC;IACD,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,KAAK,WAAW,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;QACvD,MAAM,CAAC,aAAa,EAAE,CAAC;IAC3B,CAAC;IACD,IAAI,CAAC,CAAC;QACF,MAAM,CAAC,SAAS,CAAC;IACrB,CAAC;AACL,CAAC,CAAC,EAAE,CAAC;ACzPL,IAAO,UAAU,CA0BhB;AA1BD,WAAO,UAAU,EAAC,CAAC;IACfI,IAAaA,MAAMA;QAAnBC,SAAaA,MAAMA;QAwBnBC,CAACA;QAvBiBD,eAAQA,GAAtBA,UAAuBA,QAAgBA,EAAEA,OAAgBA;YACrDE,MAAMA,CAACA,IAAIA,KAAKA,CAACA,oBAAoBA,GAAGA,QAAQA,GAAGA,IAAIA,GAAGA,OAAOA,CAACA,CAACA;QACvEA,CAACA;QAEaF,yBAAkBA,GAAhCA,UAAiCA,QAAgBA;YAC7CG,MAAMA,CAACA,IAAIA,KAAKA,CAACA,yBAAyBA,GAAGA,QAAQA,CAACA,CAACA;QAC3DA,CAACA;QAEaH,mBAAYA,GAA1BA,UAA2BA,QAAgBA;YACvCI,MAAMA,CAACA,IAAIA,KAAKA,CAACA,iBAAiBA,GAAGA,QAAQA,CAACA,CAACA;QACnDA,CAACA;QAEaJ,eAAQA,GAAtBA;YACIK,MAAMA,CAACA,IAAIA,KAAKA,CAACA,iDAAiDA,CAACA,CAACA;QACxEA,CAACA;QAEaL,wBAAiBA,GAA/BA;YACIM,MAAMA,CAACA,IAAIA,KAAKA,CAACA,sBAAsBA,CAACA,CAACA;QAC7CA,CAACA;QAEaN,uBAAgBA,GAA9BA,UAA+BA,OAAgBA;YAC3CO,MAAMA,CAACA,IAAIA,KAAKA,CAACA,qBAAqBA,GAAGA,OAAOA,CAACA,CAACA;QACtDA,CAACA;QACLP,aAACA;IAADA,CAACA,AAxBDD,IAwBCA;IAxBYA,iBAAMA,GAANA,MAwBZA,CAAAA;AACLA,CAACA,EA1BM,UAAU,KAAV,UAAU,QA0BhB;AC1BD,IAAO,UAAU,CA0MhB;AA1MD,WAAO,UAAU,EAAC,CAAC;IACfA,IAAaA,cAAcA;QAA3BS,SAAaA,cAAcA;QAwM3BC,CAACA;QAvMiBD,6BAAcA,GAA5BA,UAAgCA,MAAWA,EAAEA,MAAWA,EAAEA,MAAiCA;YACvFE,EAAEA,CAACA,CAACA,MAAMA,KAAKA,MAAMA,CAACA,CAACA,CAACA;gBACpBA,MAAMA,CAACA,IAAIA,CAACA;YAChBA,CAACA;YAEDA,EAAEA,CAACA,CAACA,CAACA,MAAMA,IAAIA,CAACA,MAAMA,CAACA,CAACA,CAACA;gBACrBA,MAAMA,CAACA,KAAKA,CAACA;YACjBA,CAACA;YAEDA,EAAEA,CAACA,CAACA,MAAMA,CAACA,MAAMA,KAAKA,MAAMA,CAACA,MAAMA,CAACA,CAACA,CAACA;gBAClCA,MAAMA,CAACA,KAAKA,CAACA;YACjBA,CAACA;YAEDA,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,MAAMA,CAACA,MAAMA,EAAEA,CAACA,GAAGA,CAACA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;gBAC5CA,EAAEA,CAACA,CAACA,CAACA,MAAMA,CAACA,MAAMA,CAACA,CAACA,CAACA,EAAEA,MAAMA,CAACA,CAACA,CAACA,CAACA,CAACA,CAACA,CAACA;oBAChCA,MAAMA,CAACA,KAAKA,CAACA;gBACjBA,CAACA;YACLA,CAACA;YAEDA,MAAMA,CAACA,IAAIA,CAACA;QAChBA,CAACA;QAEaF,uBAAQA,GAAtBA,UAA0BA,KAAUA,EAAEA,KAAQA;YAC1CG,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,KAAKA,CAACA,MAAMA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;gBACpCA,EAAEA,CAACA,CAACA,KAAKA,CAACA,CAACA,CAACA,KAAKA,KAAKA,CAACA,CAACA,CAACA;oBACrBA,MAAMA,CAACA,IAAIA,CAACA;gBAChBA,CAACA;YACLA,CAACA;YAEDA,MAAMA,CAACA,KAAKA,CAACA;QACjBA,CAACA;QAGaH,uBAAQA,GAAtBA,UAA0BA,KAAUA,EAAEA,QAAkCA;YACpEI,IAAIA,MAAMA,GAAQA,EAAEA,CAACA;YAGrBA,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,KAAKA,CAACA,MAAMA,EAAEA,CAACA,GAAGA,CAACA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;gBAC3CA,IAAIA,OAAOA,GAAGA,KAAKA,CAACA,CAACA,CAACA,CAACA;gBACvBA,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,MAAMA,CAACA,MAAMA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;oBACrCA,EAAEA,CAACA,CAACA,QAAQA,CAACA,MAAMA,CAACA,CAACA,CAACA,EAAEA,OAAOA,CAACA,CAACA,CAACA,CAACA;wBAC/BA,KAAKA,CAACA;oBACVA,CAACA;gBACLA,CAACA;gBAEDA,EAAEA,CAACA,CAACA,CAACA,KAAKA,MAAMA,CAACA,MAAMA,CAACA,CAACA,CAACA;oBACtBA,MAAMA,CAACA,IAAIA,CAACA,OAAOA,CAACA,CAACA;gBACzBA,CAACA;YACLA,CAACA;YAEDA,MAAMA,CAACA,MAAMA,CAACA;QAClBA,CAACA;QAEaJ,mBAAIA,GAAlBA,UAAsBA,KAAUA;YAC5BK,EAAEA,CAACA,CAACA,KAAKA,CAACA,MAAMA,KAAKA,CAACA,CAACA,CAACA,CAACA;gBACrBA,MAAMA,iBAAMA,CAACA,kBAAkBA,CAACA,OAAOA,CAACA,CAACA;YAC7CA,CAACA;YAEDA,MAAMA,CAACA,KAAKA,CAACA,KAAKA,CAACA,MAAMA,GAAGA,CAACA,CAACA,CAACA;QACnCA,CAACA;QAEaL,4BAAaA,GAA3BA,UAA+BA,KAAUA,EAAEA,SAA2CA;YAClFM,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,KAAKA,CAACA,MAAMA,GAAGA,CAACA,EAAEA,CAACA,IAAIA,CAACA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;gBACzCA,IAAIA,CAACA,GAAGA,KAAKA,CAACA,CAACA,CAACA,CAACA;gBACjBA,EAAEA,CAACA,CAACA,SAASA,CAACA,CAACA,EAAEA,CAACA,CAACA,CAACA,CAACA,CAACA;oBAClBA,MAAMA,CAACA,CAACA,CAACA;gBACbA,CAACA;YACLA,CAACA;YAEDA,MAAMA,CAACA,SAASA,CAACA;QACrBA,CAACA;QAEaN,6BAAcA,GAA5BA,UAAgCA,KAAUA,EAAEA,IAAsCA;YAC9EO,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,KAAKA,CAACA,MAAMA,EAAEA,CAACA,GAAGA,CAACA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;gBAC3CA,IAAIA,KAAKA,GAAGA,KAAKA,CAACA,CAACA,CAACA,CAACA;gBACrBA,EAAEA,CAACA,CAACA,IAAIA,CAACA,KAAKA,EAAEA,CAACA,CAACA,CAACA,CAACA,CAACA;oBACjBA,MAAMA,CAACA,KAAKA,CAACA;gBACjBA,CAACA;YACLA,CAACA;YAEDA,MAAMA,CAACA,SAASA,CAACA;QACrBA,CAACA;QAEaP,oBAAKA,GAAnBA,UAAuBA,KAAUA,EAAEA,IAAuCA;YACtEQ,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,KAAKA,CAACA,MAAMA,EAAEA,CAACA,GAAGA,CAACA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;gBAC3CA,IAAIA,KAAKA,GAAGA,KAAKA,CAACA,CAACA,CAACA,CAACA;gBACrBA,EAAEA,CAACA,CAACA,CAACA,IAAIA,IAAIA,IAAIA,CAACA,KAAKA,EAAEA,CAACA,CAACA,CAACA,CAACA,CAACA;oBAC1BA,MAAMA,CAACA,KAAKA,CAACA;gBACjBA,CAACA;YACLA,CAACA;YAEDA,MAAMA,iBAAMA,CAACA,gBAAgBA,EAAEA,CAACA;QACpCA,CAACA;QAEaR,kBAAGA,GAAjBA,UAAqBA,KAAUA,EAAEA,IAAsBA;YACnDS,IAAIA,MAAMA,GAAGA,CAACA,CAACA;YAEfA,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,KAAKA,CAACA,MAAMA,EAAEA,CAACA,GAAGA,CAACA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;gBAC3CA,MAAMA,IAAIA,IAAIA,CAACA,KAAKA,CAACA,CAACA,CAACA,CAACA,CAACA;YAC7BA,CAACA;YAEDA,MAAMA,CAACA,MAAMA,CAACA;QAClBA,CAACA;QAEaT,qBAAMA,GAApBA,UAA0BA,MAAWA,EAAEA,IAAiBA;YACpDU,IAAIA,MAAMA,GAAQA,IAAIA,KAAKA,CAAIA,MAAMA,CAACA,MAAMA,CAACA,CAACA;YAE9CA,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,MAAMA,CAACA,MAAMA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;gBACrCA,MAAMA,CAACA,CAACA,CAACA,GAAGA,IAAIA,CAACA,MAAMA,CAACA,CAACA,CAACA,CAACA,CAACA;YAChCA,CAACA;YAEDA,MAAMA,CAACA,MAAMA,CAACA;QAClBA,CAACA;QAEaV,oBAAKA,GAAnBA,UAAuBA,MAAWA,EAAEA,IAAuBA;YACvDW,IAAIA,MAAMA,GAAGA,IAAIA,KAAKA,EAAKA,CAACA;YAE5BA,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,MAAMA,CAACA,MAAMA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;gBACrCA,EAAEA,CAACA,CAACA,IAAIA,CAACA,MAAMA,CAACA,CAACA,CAACA,CAACA,CAACA,CAACA,CAACA;oBAClBA,MAAMA,CAACA,IAAIA,CAACA,MAAMA,CAACA,CAACA,CAACA,CAACA,CAACA;gBAC3BA,CAACA;YACLA,CAACA;YAEDA,MAAMA,CAACA,MAAMA,CAACA;QAClBA,CAACA;QAEaX,kBAAGA,GAAjBA,UAAqBA,KAAUA,EAAEA,IAAuBA;YACpDY,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,KAAKA,CAACA,MAAMA,EAAEA,CAACA,GAAGA,CAACA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;gBAC3CA,EAAEA,CAACA,CAACA,IAAIA,CAACA,KAAKA,CAACA,CAACA,CAACA,CAACA,CAACA,CAACA,CAACA;oBACjBA,MAAMA,CAACA,IAAIA,CAACA;gBAChBA,CAACA;YACLA,CAACA;YAEDA,MAAMA,CAACA,KAAKA,CAACA;QACjBA,CAACA;QAEaZ,kBAAGA,GAAjBA,UAAqBA,KAAUA,EAAEA,IAAuBA;YACpDa,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,KAAKA,CAACA,MAAMA,EAAEA,CAACA,GAAGA,CAACA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;gBAC3CA,EAAEA,CAACA,CAACA,CAACA,IAAIA,CAACA,KAAKA,CAACA,CAACA,CAACA,CAACA,CAACA,CAACA,CAACA;oBAClBA,MAAMA,CAACA,KAAKA,CAACA;gBACjBA,CAACA;YACLA,CAACA;YAEDA,MAAMA,CAACA,IAAIA,CAACA;QAChBA,CAACA;QAEab,2BAAYA,GAA1BA,UAA2BA,KAAeA,EAAEA,KAAaA;YACrDc,IAAIA,GAAGA,GAAGA,CAACA,CAACA;YACZA,IAAIA,IAAIA,GAAGA,KAAKA,CAACA,MAAMA,GAAGA,CAACA,CAACA;YAE5BA,OAAOA,GAAGA,IAAIA,IAAIA,EAAEA,CAACA;gBACjBA,IAAIA,MAAMA,GAAGA,GAAGA,GAAGA,CAACA,CAACA,IAAIA,GAAGA,GAAGA,CAACA,IAAIA,CAACA,CAACA,CAACA;gBACvCA,IAAIA,QAAQA,GAAGA,KAAKA,CAACA,MAAMA,CAACA,CAACA;gBAE7BA,EAAEA,CAACA,CAACA,QAAQA,KAAKA,KAAKA,CAACA,CAACA,CAACA;oBACrBA,MAAMA,CAACA,MAAMA,CAACA;gBAClBA,CAACA;gBACDA,IAAIA,CAACA,EAAEA,CAACA,CAACA,QAAQA,GAAGA,KAAKA,CAACA,CAACA,CAACA;oBACxBA,IAAIA,GAAGA,MAAMA,GAAGA,CAACA,CAACA;gBACtBA,CAACA;gBACDA,IAAIA,CAACA,CAACA;oBACFA,GAAGA,GAAGA,MAAMA,GAAGA,CAACA,CAACA;gBACrBA,CAACA;YACLA,CAACA;YAEDA,MAAMA,CAACA,CAACA,GAAGA,CAACA;QAChBA,CAACA;QAEad,0BAAWA,GAAzBA,UAA6BA,MAAcA,EAAEA,YAAiBA;YAC1De,IAAIA,MAAMA,GAAGA,IAAIA,KAAKA,CAAIA,MAAMA,CAACA,CAACA;YAClCA,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,MAAMA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;gBAC9BA,MAAMA,CAACA,CAACA,CAACA,GAAGA,YAAYA,CAACA;YAC7BA,CAACA;YAEDA,MAAMA,CAACA,MAAMA,CAACA;QAClBA,CAACA;QAEaf,mBAAIA,GAAlBA,UAAsBA,KAAUA,EAAEA,MAAcA,EAAEA,YAAeA;YAC7DgB,IAAIA,KAAKA,GAAGA,MAAMA,GAAGA,KAAKA,CAACA,MAAMA,CAACA;YAClCA,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,KAAKA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;gBAC7BA,KAAKA,CAACA,IAAIA,CAACA,YAAYA,CAACA,CAACA;YAC7BA,CAACA;QACLA,CAACA;QAEahB,mBAAIA,GAAlBA,UAAsBA,WAAgBA,EAAEA,WAAmBA,EAAEA,gBAAqBA,EAAEA,gBAAwBA,EAAEA,MAAcA;YACxHiB,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,MAAMA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;gBAC9BA,gBAAgBA,CAACA,gBAAgBA,GAAGA,CAACA,CAACA,GAAGA,WAAWA,CAACA,WAAWA,GAAGA,CAACA,CAACA,CAACA;YAC1EA,CAACA;QACLA,CAACA;QAEajB,sBAAOA,GAArBA,UAAyBA,KAAUA,EAAEA,SAA4BA;YAC7DkB,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,KAAKA,CAACA,MAAMA,EAAEA,CAACA,GAAGA,CAACA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;gBAC3CA,EAAEA,CAACA,CAACA,SAASA,CAACA,KAAKA,CAACA,CAACA,CAACA,CAACA,CAACA,CAACA,CAACA;oBACtBA,MAAMA,CAACA,CAACA,CAACA;gBACbA,CAACA;YACLA,CAACA;YAEDA,MAAMA,CAACA,CAACA,CAACA,CAACA;QACdA,CAACA;QACLlB,qBAACA;IAADA,CAACA,AAxMDT,IAwMCA;IAxMYA,yBAAcA,GAAdA,cAwMZA,CAAAA;AACLA,CAACA,EA1MM,UAAU,KAAV,UAAU,QA0MhB;AC1MD,IAAO,UAAU,CAkBhB;AAlBD,WAAO,UAAU,EAAC,CAAC;IACfA,IAAaA,eAAeA;QAA5B4B,SAAaA,eAAeA;QAgB5BC,CAACA;QAfiBD,wBAAQA,GAAtBA,UAAuBA,KAAUA;YAC7BE,MAAMA,CAACA,MAAMA,CAACA,SAASA,CAACA,QAAQA,CAACA,KAAKA,CAACA,KAAKA,EAAEA,EAAEA,CAACA,KAAKA,iBAAiBA,CAACA;QAC5EA,CAACA;QAEaF,wBAAQA,GAAtBA,UAAuBA,MAAcA,EAAEA,KAAaA;YAChDG,MAAMA,CAACA,MAAMA,CAACA,SAASA,CAACA,MAAMA,CAACA,MAAMA,GAAGA,KAAKA,CAACA,MAAMA,EAAEA,MAAMA,CAACA,MAAMA,CAACA,KAAKA,KAAKA,CAACA;QACnFA,CAACA;QAEaH,0BAAUA,GAAxBA,UAAyBA,MAAcA,EAAEA,KAAaA;YAClDI,MAAMA,CAACA,MAAMA,CAACA,MAAMA,CAACA,CAACA,EAAEA,KAAKA,CAACA,MAAMA,CAACA,KAAKA,KAAKA,CAACA;QACpDA,CAACA;QAEaJ,sBAAMA,GAApBA,UAAqBA,KAAaA,EAAEA,KAAaA;YAC7CK,MAAMA,CAACA,KAAKA,CAACA,KAAKA,GAAGA,CAACA,CAACA,CAACA,IAAIA,CAACA,KAAKA,CAACA,CAACA;QACxCA,CAACA;QACLL,sBAACA;IAADA,CAACA,AAhBD5B,IAgBCA;IAhBYA,0BAAeA,GAAfA,eAgBZA,CAAAA;AACLA,CAACA,EAlBM,UAAU,KAAV,UAAU,QAkBhB;AClBD,IAAO,UAAU,CA+ShB;AA/SD,WAAO,UAAU,EAAC,CAAC;IACfA,WAAYA,UAAUA;QAElBkC,2CAAIA;QACJA,2CAAIA;QAGJA,mEAAgBA;QAChBA,6DAAaA;QACbA,+EAAsBA;QACtBA,iFAAuBA;QACvBA,uEAAkBA;QAIlBA,uDAAUA;QACVA,+DAAcA;QAGdA,+DAAcA;QAGdA,oFAAwBA;QACxBA,gEAAcA;QACdA,8DAAaA;QAGbA,0FAA2BA;QAC3BA,wEAAkBA;QAClBA,0EAAmBA;QACnBA,oEAAgBA;QAKhBA,4DAAYA;QACZA,0DAAWA;QACXA,4DAAYA;QACZA,kEAAeA;QACfA,kEAAeA;QACfA,gEAAcA;QACdA,8DAAaA;QACbA,sDAASA;QACTA,0DAAWA;QACXA,4DAAYA;QACZA,gEAAcA;QACdA,wDAAUA;QACVA,kEAAeA;QACfA,sDAASA;QACTA,sDAASA;QACTA,sEAAiBA;QACjBA,wDAAUA;QACVA,0DAAWA;QACXA,8DAAaA;QACbA,8DAAaA;QACbA,0DAAWA;QACXA,4DAAYA;QACZA,0DAAWA;QACXA,wDAAUA;QACVA,8DAAaA;QACbA,wDAAUA;QACVA,0DAAWA;QACXA,4DAAYA;QACZA,0DAAWA;QAGXA,4DAAYA;QACZA,4DAAYA;QACZA,0DAAWA;QACXA,8DAAaA;QACbA,gEAAcA;QACdA,8DAAaA;QACbA,4DAAYA;QAGZA,sEAAiBA;QACjBA,oEAAgBA;QAChBA,wDAAUA;QACVA,gEAAcA;QACdA,gEAAcA;QACdA,oEAAgBA;QAChBA,8DAAaA;QACbA,8DAAaA;QACbA,4DAAYA;QAGZA,wDAAUA;QACVA,gEAAcA;QACdA,wEAAkBA;QAClBA,gEAAcA;QACdA,wDAAUA;QACVA,8DAAaA;QACbA,gEAAcA;QACdA,8DAAaA;QACbA,wDAAUA;QACVA,8DAAaA;QAGbA,gEAAcA;QACdA,kEAAeA;QACfA,gEAAcA;QACdA,kEAAeA;QACfA,oEAAgBA;QAChBA,sEAAiBA;QACjBA,oDAAQA;QACRA,gEAAcA;QACdA,gEAAcA;QACdA,wDAAUA;QACVA,8DAAaA;QACbA,oEAAgBA;QAChBA,0EAAmBA;QACnBA,gFAAsBA;QACtBA,sEAAiBA;QACjBA,gFAAsBA;QACtBA,gFAAsBA;QACtBA,kFAAuBA;QACvBA,4FAA4BA;QAC5BA,sDAASA;QACTA,wDAAUA;QACVA,8DAAaA;QACbA,4DAAYA;QACZA,8DAAaA;QACbA,kEAAeA;QACfA,8EAAqBA;QACrBA,0FAA2BA;QAC3BA,gHAAsCA;QACtCA,iEAAcA;QACdA,qDAAQA;QACRA,yDAAUA;QACVA,qEAAgBA;QAChBA,yDAAUA;QACVA,mFAAuBA;QACvBA,2DAAWA;QACXA,+DAAaA;QACbA,yDAAUA;QACVA,2DAAWA;QACXA,mEAAeA;QACfA,qEAAgBA;QAChBA,2EAAmBA;QACnBA,yEAAkBA;QAClBA,2FAA2BA;QAC3BA,uGAAiCA;QACjCA,6HAA4CA;QAC5CA,6EAAoBA;QACpBA,iEAAcA;QACdA,qEAAgBA;QAChBA,yDAAUA;QACVA,qEAAgBA;QAGhBA,yDAAUA;QAGVA,+DAAaA;QAGbA,yDAAUA;QACVA,6DAAYA;QACZA,uDAASA;QACTA,mEAAeA;QACfA,2DAAWA;QACXA,uDAASA;QACTA,uDAASA;QACTA,uDAASA;QACTA,uEAAiBA;QAGjBA,6EAAoBA;QACpBA,2EAAmBA;QACnBA,uEAAiBA;QACjBA,qEAAgBA;QAChBA,mEAAeA;QACfA,uEAAiBA;QACjBA,qEAAgBA;QAGhBA,uFAAyBA;QACzBA,uFAAyBA;QACzBA,iFAAsBA;QACtBA,iFAAsBA;QAGtBA,2DAAWA;QACXA,2DAAWA;QAGXA,uEAAiBA;QACjBA,+DAAaA;QACbA,yEAAkBA;QAClBA,iEAAcA;QACdA,mEAAeA;QAGfA,+CAAKA;QACLA,2DAAWA;QACXA,uEAAiBA;QACjBA,2EAAmBA;QACnBA,mEAAeA;QACfA,mEAAeA;QACfA,iEAAcA;QACdA,uEAAiBA;QACjBA,6DAAYA;QACZA,iEAAcA;QACdA,iEAAcA;QACdA,iEAAcA;QACdA,iEAAcA;QACdA,6DAAYA;QACZA,qEAAgBA;QAChBA,2DAAWA;QACXA,uEAAiBA;QACjBA,+DAAaA;QAGbA,+EAAqBA;QACrBA,qEAAgBA;QAChBA,qEAAgBA;QAChBA,iEAAcA;QACdA,+EAAqBA;QACrBA,qEAAgBA;QAChBA,iFAAsBA;QACtBA,iFAAsBA;QACtBA,6EAAoBA;QACpBA,iFAAsBA;QACtBA,mFAAuBA;QACvBA,qFAAwBA;QACxBA,mFAAuBA;QACvBA,6GAAoCA;QACpCA,+FAA6BA;QAC7BA,iEAAcA;QACdA,mFAAuBA;QACvBA,yEAAkBA;QAClBA,uEAAiBA;QACjBA,yEAAkBA;QAClBA,qFAAwBA;QACxBA,mEAAeA;QAGfA,2EAAmBA;QACnBA,yEAAkBA;QAGlBA,6DAAYA;QACZA,+DAAaA;QACbA,qEAAgBA;QAChBA,uEAAiBA;QAGjBA,iEAAcA;QACdA,uEAAiBA;QACjBA,qEAAgBA;QAChBA,2EAAmBA;QACnBA,yDAAUA;QACVA,2DAAWA;QACXA,+DAAaA;QACbA,iEAAcA;QAGdA,+DAAaA;QACbA,yDAAUA;QAGVA,qFAAwBA;QACxBA,yFAA0BA;QAG1BA,uDAASA;QACTA,2DAAWA;QACXA,iEAAcA;QACdA,iEAAcA;QACdA,6EAAoBA;QACpBA,mFAAuBA;QACvBA,uFAAyBA;QAEzBA,gDAAuBA,uBAAYA,0BAAAA;QACnCA,+CAAsBA,sBAAWA,yBAAAA;QAEjCA,sDAA6BA,uBAAYA,gCAAAA;QACzCA,qDAA4BA,uBAAYA,+BAAAA;QAExCA,4DAAmCA,4BAAiBA,sCAAAA;QACpDA,2DAAkCA,uBAAYA,qCAAAA;QAE9CA,kDAAyBA,qBAAUA,4BAAAA;QACnCA,iDAAwBA,wBAAaA,2BAAAA;QAErCA,wCAAeA,+BAAoBA,kBAAAA;QACnCA,uCAAcA,gCAAqBA,iBAAAA;QAEnCA,sCAAaA,qBAAUA,gBAAAA;QACvBA,qCAAYA,2BAAgBA,eAAAA;QAE5BA,4CAAmBA,yBAAcA,sBAAAA;QACjCA,2CAAkBA,2BAAgBA,qBAAAA;QAElCA,2CAAkBA,uBAAYA,qBAAAA;QAC9BA,0CAAiBA,0BAAeA,oBAAAA;QAEhCA,uCAAcA,2BAAgBA,iBAAAA;QAC9BA,sCAAaA,6BAAkBA,gBAAAA;QAE/BA,qCAAYA,qBAAUA,eAAAA;QACtBA,oCAAWA,oCAAyBA,cAAAA;IACxCA,CAACA,EA7SWlC,qBAAUA,KAAVA,qBAAUA,QA6SrBA;IA7SDA,IAAYA,UAAUA,GAAVA,qBA6SXA,CAAAA;AACLA,CAACA,EA/SM,UAAU,KAAV,UAAU,QA+ShB;AC/SD,IAAO,UAAU,CAoPhB;AApPD,WAAO,UAAU;IAACA,IAAAA,WAAWA,CAoP5BA;IApPiBA,WAAAA,WAAWA,EAACA,CAACA;QAC3BmC,IAAIA,iBAAiBA,GAAQA;YACzBA,KAAKA,EAAEA,mBAAqBA;YAC5BA,SAASA,EAAEA,uBAAyBA;YACpCA,OAAOA,EAAEA,qBAAuBA;YAChCA,MAAMA,EAAEA,oBAAsBA;YAC9BA,OAAOA,EAAEA,qBAAuBA;YAChCA,OAAOA,EAAEA,qBAAuBA;YAChCA,UAAUA,EAAEA,wBAA0BA;YACtCA,OAAOA,EAAEA,qBAAuBA;YAChCA,aAAaA,EAAEA,2BAA6BA;YAC5CA,UAAUA,EAAEA,wBAA0BA;YACtCA,SAASA,EAAEA,uBAAyBA;YACpCA,SAASA,EAAEA,uBAAyBA;YACpCA,QAAQA,EAAEA,sBAAwBA;YAClCA,IAAIA,EAAEA,kBAAoBA;YAC1BA,MAAMA,EAAEA,oBAAsBA;YAC9BA,MAAMA,EAAEA,oBAAsBA;YAC9BA,QAAQA,EAAEA,sBAAwBA;YAClCA,SAASA,EAAEA,uBAAyBA;YACpCA,OAAOA,EAAEA,qBAAuBA;YAChCA,SAASA,EAAEA,uBAAyBA;YACpCA,KAAKA,EAAEA,mBAAqBA;YAC5BA,UAAUA,EAAEA,wBAA0BA;YACtCA,KAAKA,EAAEA,mBAAqBA;YAC5BA,IAAIA,EAAEA,kBAAoBA;YAC1BA,YAAYA,EAAEA,0BAA4BA;YAC1CA,QAAQA,EAAEA,sBAAwBA;YAClCA,IAAIA,EAAEA,kBAAoBA;YAC1BA,YAAYA,EAAEA,0BAA4BA;YAC1CA,WAAWA,EAAEA,yBAA2BA;YACxCA,KAAKA,EAAEA,mBAAqBA;YAC5BA,QAAQA,EAAEA,sBAAwBA;YAClCA,KAAKA,EAAEA,mBAAqBA;YAC5BA,MAAMA,EAAEA,oBAAsBA;YAC9BA,QAAQA,EAACA,sBAAwBA;YACjCA,SAASA,EAAEA,uBAAyBA;YACpCA,SAASA,EAAEA,uBAAyBA;YACpCA,WAAWA,EAAEA,yBAA2BA;YACxCA,QAAQA,EAAEA,sBAAwBA;YAClCA,SAASA,EAAEA,uBAAyBA;YACpCA,QAAQA,EAAEA,sBAAwBA;YAClCA,KAAKA,EAAEA,mBAAqBA;YAC5BA,QAAQA,EAAEA,sBAAwBA;YAClCA,QAAQA,EAAEA,sBAAwBA;YAClCA,OAAOA,EAAEA,qBAAuBA;YAChCA,QAAQA,EAAEA,sBAAwBA;YAClCA,MAAMA,EAAEA,oBAAsBA;YAC9BA,OAAOA,EAAEA,qBAAuBA;YAChCA,MAAMA,EAAEA,oBAAsBA;YAC9BA,KAAKA,EAAEA,mBAAqBA;YAC5BA,QAAQA,EAAEA,sBAAwBA;YAClCA,KAAKA,EAAEA,mBAAqBA;YAC5BA,MAAMA,EAAEA,oBAAsBA;YAC9BA,OAAOA,EAAEA,qBAAuBA;YAChCA,MAAMA,EAAEA,oBAAsBA;YAC9BA,OAAOA,EAAEA,qBAAuBA;YAEhCA,GAAGA,EAAEA,uBAAyBA;YAC9BA,GAAGA,EAAEA,wBAA0BA;YAC/BA,GAAGA,EAAEA,uBAAyBA;YAC9BA,GAAGA,EAAEA,wBAA0BA;YAC/BA,GAAGA,EAAEA,yBAA2BA;YAChCA,GAAGA,EAAEA,0BAA4BA;YACjCA,GAAGA,EAAEA,iBAAmBA;YACxBA,KAAKA,EAAEA,uBAAyBA;YAChCA,GAAGA,EAAEA,uBAAyBA;YAC9BA,GAAGA,EAAEA,mBAAqBA;YAC1BA,GAAGA,EAAEA,sBAAwBA;YAC7BA,GAAGA,EAAEA,yBAA2BA;YAChCA,IAAIA,EAAEA,4BAA8BA;YACpCA,IAAIA,EAAEA,+BAAiCA;YACvCA,IAAIA,EAAEA,0BAA4BA;YAClCA,IAAIA,EAAEA,+BAAiCA;YACvCA,IAAIA,EAAEA,+BAAiCA;YACvCA,KAAKA,EAAEA,gCAAkCA;YACzCA,KAAKA,EAAEA,qCAAuCA;YAC9CA,GAAGA,EAAEA,kBAAoBA;YACzBA,GAAGA,EAAEA,mBAAqBA;YAC1BA,GAAGA,EAAEA,sBAAwBA;YAC7BA,GAAGA,EAAEA,qBAAuBA;YAC5BA,IAAIA,EAAEA,sBAAwBA;YAC9BA,IAAIA,EAAEA,wBAA0BA;YAChCA,IAAIA,EAAEA,8BAAgCA;YACtCA,IAAIA,EAAEA,oCAAsCA;YAC5CA,KAAKA,EAAEA,+CAAiDA;YACxDA,GAAGA,EAAEA,wBAAyBA;YAC9BA,GAAGA,EAAEA,kBAAmBA;YACxBA,GAAGA,EAAEA,oBAAqBA;YAC1BA,GAAGA,EAAEA,0BAA2BA;YAChCA,GAAGA,EAAEA,oBAAqBA;YAC1BA,IAAIA,EAAEA,iCAAkCA;YACxCA,IAAIA,EAAEA,qBAAsBA;YAC5BA,GAAGA,EAAEA,uBAAwBA;YAC7BA,GAAGA,EAAEA,oBAAqBA;YAC1BA,GAAGA,EAAEA,qBAAsBA;YAC3BA,IAAIA,EAAEA,yBAA0BA;YAChCA,IAAIA,EAAEA,0BAA2BA;YACjCA,IAAIA,EAAEA,6BAA8BA;YACpCA,IAAIA,EAAEA,4BAA6BA;YACnCA,KAAKA,EAAEA,qCAAsCA;YAC7CA,KAAKA,EAAEA,2CAA4CA;YACnDA,MAAMA,EAAEA,sDAAuDA;YAC/DA,IAAIA,EAAEA,8BAA+BA;YACrCA,IAAIA,EAAEA,wBAAyBA;YAC/BA,IAAIA,EAAEA,0BAA2BA;YACjCA,GAAGA,EAAEA,oBAAqBA;YAC1BA,IAAIA,EAAEA,0BAA2BA;SACpCA,CAACA;QAEFA,IAAIA,UAAUA,GAAGA,IAAIA,KAAKA,EAAUA,CAACA;QAErCA,GAAGA,CAACA,CAACA,GAAGA,CAACA,IAAIA,IAAIA,iBAAiBA,CAACA,CAACA,CAACA;YACjCA,EAAEA,CAACA,CAACA,iBAAiBA,CAACA,cAAcA,CAACA,IAAIA,CAACA,CAACA,CAACA,CAACA;gBAEzCA,UAAUA,CAACA,iBAAiBA,CAACA,IAAIA,CAACA,CAACA,GAAGA,IAAIA,CAACA;YAC/CA,CAACA;QACLA,CAACA;QAKDA,UAAUA,CAACA,2BAA6BA,CAACA,GAAGA,aAAaA,CAACA;QAE1DA,SAAgBA,YAAYA,CAACA,IAAYA;YACrCC,EAAEA,CAACA,CAACA,iBAAiBA,CAACA,cAAcA,CAACA,IAAIA,CAACA,CAACA,CAACA,CAACA;gBACzCA,MAAMA,CAACA,iBAAiBA,CAACA,IAAIA,CAACA,CAACA;YACnCA,CAACA;YAEDA,MAAMA,CAACA,YAAeA,CAACA;QAC3BA,CAACA;QANeD,wBAAYA,GAAZA,YAMfA,CAAAA;QAEDA,SAAgBA,OAAOA,CAACA,IAAgBA;YACpCE,IAAIA,MAAMA,GAAGA,UAAUA,CAACA,IAAIA,CAACA,CAACA;YAC9BA,MAAMA,CAACA,MAAMA,CAACA;QAClBA,CAACA;QAHeF,mBAAOA,GAAPA,OAGfA,CAAAA;QAEDA,SAAgBA,YAAYA,CAACA,IAAgBA;YACzCG,MAAMA,CAACA,IAAIA,IAAIA,qBAAUA,CAACA,YAAYA,IAAIA,IAAIA,IAAIA,qBAAUA,CAACA,WAAWA,CAACA;QAC7EA,CAACA;QAFeH,wBAAYA,GAAZA,YAEfA,CAAAA;QAEDA,SAAgBA,gBAAgBA,CAACA,IAAgBA;YAC7CI,MAAMA,CAACA,IAAIA,IAAIA,qBAAUA,CAACA,gBAAgBA,IAAIA,IAAIA,IAAIA,qBAAUA,CAACA,eAAeA,CAACA;QACrFA,CAACA;QAFeJ,4BAAgBA,GAAhBA,gBAEfA,CAAAA;QAEDA,SAAgBA,oCAAoCA,CAACA,SAAqBA;YACtEK,MAAMA,CAACA,CAACA,SAASA,CAACA,CAACA,CAACA;gBAChBA,KAAKA,kBAAoBA,CAACA;gBAC1BA,KAAKA,mBAAqBA,CAACA;gBAC3BA,KAAKA,oBAAqBA,CAACA;gBAC3BA,KAAKA,0BAA2BA,CAACA;gBACjCA,KAAKA,sBAAwBA,CAACA;gBAC9BA,KAAKA,wBAA0BA;oBAC3BA,MAAMA,CAACA,IAAIA,CAACA;gBAChBA;oBACIA,MAAMA,CAACA,KAAKA,CAACA;YACrBA,CAACA;QACLA,CAACA;QAZeL,gDAAoCA,GAApCA,oCAYfA,CAAAA;QAEDA,SAAgBA,+BAA+BA,CAACA,SAAqBA;YACjEM,MAAMA,CAACA,CAACA,SAASA,CAACA,CAACA,CAACA;gBAChBA,KAAKA,sBAAwBA,CAACA;gBAC9BA,KAAKA,oBAAqBA,CAACA;gBAC3BA,KAAKA,qBAAuBA,CAACA;gBAC7BA,KAAKA,kBAAoBA,CAACA;gBAC1BA,KAAKA,mBAAqBA,CAACA;gBAC3BA,KAAKA,8BAAgCA,CAACA;gBACtCA,KAAKA,oCAAsCA,CAACA;gBAC5CA,KAAKA,+CAAiDA,CAACA;gBACvDA,KAAKA,sBAAwBA,CAACA;gBAC9BA,KAAKA,yBAA2BA,CAACA;gBACjCA,KAAKA,4BAA8BA,CAACA;gBACpCA,KAAKA,+BAAiCA,CAACA;gBACvCA,KAAKA,0BAA4BA,CAACA;gBAClCA,KAAKA,kBAAoBA,CAACA;gBAC1BA,KAAKA,0BAA4BA,CAACA;gBAClCA,KAAKA,+BAAiCA,CAACA;gBACvCA,KAAKA,gCAAkCA,CAACA;gBACxCA,KAAKA,qCAAuCA,CAACA;gBAC7CA,KAAKA,wBAAyBA,CAACA;gBAC/BA,KAAKA,oBAAqBA,CAACA;gBAC3BA,KAAKA,kBAAmBA,CAACA;gBACzBA,KAAKA,iCAAkCA,CAACA;gBACxCA,KAAKA,qBAAsBA,CAACA;gBAC5BA,KAAKA,wBAAyBA,CAACA;gBAC/BA,KAAKA,8BAA+BA,CAACA;gBACrCA,KAAKA,0BAA2BA,CAACA;gBACjCA,KAAKA,qCAAsCA,CAACA;gBAC5CA,KAAKA,2CAA4CA,CAACA;gBAClDA,KAAKA,sDAAuDA,CAACA;gBAC7DA,KAAKA,yBAA0BA,CAACA;gBAChCA,KAAKA,0BAA2BA,CAACA;gBACjCA,KAAKA,6BAA8BA,CAACA;gBACpCA,KAAKA,0BAA2BA,CAACA;gBACjCA,KAAKA,4BAA6BA,CAACA;gBACnCA,KAAKA,qBAAsBA,CAACA;gBAC5BA,KAAKA,mBAAqBA;oBACtBA,MAAMA,CAACA,IAAIA,CAACA;gBAChBA;oBACIA,MAAMA,CAACA,KAAKA,CAACA;YACrBA,CAACA;QACLA,CAACA;QA1CeN,2CAA+BA,GAA/BA,+BA0CfA,CAAAA;QAEDA,SAAgBA,yBAAyBA,CAACA,SAAqBA;YAC3DO,MAAMA,CAACA,CAACA,SAASA,CAACA,CAACA,CAACA;gBAChBA,KAAKA,wBAAyBA,CAACA;gBAC/BA,KAAKA,8BAA+BA,CAACA;gBACrCA,KAAKA,0BAA2BA,CAACA;gBACjCA,KAAKA,qCAAsCA,CAACA;gBAC5CA,KAAKA,2CAA4CA,CAACA;gBAClDA,KAAKA,sDAAuDA,CAACA;gBAC7DA,KAAKA,yBAA0BA,CAACA;gBAChCA,KAAKA,0BAA2BA,CAACA;gBACjCA,KAAKA,6BAA8BA,CAACA;gBACpCA,KAAKA,0BAA2BA,CAACA;gBACjCA,KAAKA,4BAA6BA,CAACA;gBACnCA,KAAKA,qBAAsBA;oBACvBA,MAAMA,CAACA,IAAIA,CAACA;gBAEhBA;oBACIA,MAAMA,CAACA,KAAKA,CAACA;YACrBA,CAACA;QACLA,CAACA;QAnBeP,qCAAyBA,GAAzBA,yBAmBfA,CAAAA;QAEDA,SAAgBA,MAAMA,CAACA,IAAgBA;YACnCQ,MAAMA,CAACA,CAACA,IAAIA,CAACA,CAACA,CAACA;gBACXA,KAAKA,mBAAoBA,CAACA;gBAC1BA,KAAKA,mBAAqBA,CAACA;gBAC3BA,KAAKA,sBAAwBA,CAACA;gBAC9BA,KAAKA,uBAAyBA,CAACA;gBAC/BA,KAAKA,sBAAwBA,CAACA;gBAC9BA,KAAKA,oBAAsBA,CAACA;gBAC5BA,KAAKA,sBAAuBA,CAACA;gBAC7BA,KAAKA,oBAAqBA,CAACA;gBAC3BA,KAAKA,yBAA0BA,CAACA;gBAChCA,KAAKA,mBAAoBA,CAACA;gBAC1BA,KAAKA,qBAAsBA,CAACA;gBAC5BA,KAAKA,uBAAwBA,CAACA;gBAC9BA,KAAKA,sBAAyBA;oBAC1BA,MAAMA,CAACA,IAAIA,CAACA;YACpBA,CAACA;YAEDA,MAAMA,CAACA,KAAKA,CAACA;QACjBA,CAACA;QAnBeR,kBAAMA,GAANA,MAmBfA,CAAAA;IACLA,CAACA,EApPiBnC,WAAWA,GAAXA,sBAAWA,KAAXA,sBAAWA,QAoP5BA;AAADA,CAACA,EApPM,UAAU,KAAV,UAAU,QAoPhB;AC/OD,IAAI,gBAAgB,GAAG,KAAK,CAAC;AAsB7B,IAAI,UAAU,GAAQ;IAClB,wBAAwB,EAAE,qBAAqB;IAC/C,gBAAgB,EAAE,sBAAsB;IACxC,WAAW,EAAE,aAAa;IAC1B,sBAAsB,EAAE,mBAAmB;IAC3C,wBAAwB,EAAE,wBAAwB;IAClD,6BAA6B,EAAE,0BAA0B;IAGzD,uBAAuB,EAAE,+BAA+B;IACxD,qBAAqB,EAAE,+BAA+B;IACtD,wBAAwB,EAAE,yBAAyB;CACtD,CAAC;AAEF,IAAI,WAAW,GAAqB;IAC3B;QACD,IAAI,EAAE,kBAAkB;QACxB,QAAQ,EAAE,aAAa;QACvB,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,gBAAgB,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,sBAAsB,EAAE;YAC7E,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE;SACjD;KACJ;IACI;QACD,IAAI,EAAE,+BAA+B;QACrC,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,wBAAwB,CAAC;QACtC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC/D,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC/D,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,IAAI,EAAE;YACxC,EAAE,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;SACxE;QACD,oBAAoB,EAAE,IAAI;KAC7B;IACI;QACD,IAAI,EAAE,iCAAiC;QACvC,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,wBAAwB,CAAC;QACtC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,aAAa,EAAE;SACnD;QACD,oBAAoB,EAAE,IAAI;KAC7B;IACI;QACD,IAAI,EAAE,yBAAyB;QAC/B,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,sBAAsB,CAAC;QACpC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,cAAc,EAAE;YAChE,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC9D,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE;YACrC,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC5D,EAAE,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,wBAAwB,EAAE;YAC3D,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;SACzF;QACD,oBAAoB,EAAE,IAAI;KAC7B;IACI;QACD,IAAI,EAAE,wBAAwB;QAC9B,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,sBAAsB,CAAC;QACpC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC9D,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC5D,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE;YACrC,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;SACzF;QACD,oBAAoB,EAAE,IAAI;KAC7B;IACI;QACD,IAAI,EAAE,wBAAwB;QAC9B,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,sBAAsB,CAAC;QACpC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,cAAc,EAAE;YAChE,EAAE,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC7D,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE;YACrC,EAAE,IAAI,EAAE,mBAAmB,EAAE,IAAI,EAAE,yBAAyB,EAAE,UAAU,EAAE,IAAI,EAAE;YAChF,EAAE,IAAI,EAAE,iBAAiB,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,sBAAsB,EAAE;YAC9E,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC/D,EAAE,IAAI,EAAE,eAAe,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,qBAAqB,EAAE;YAC3E,EAAE,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;SACxE;QACD,oBAAoB,EAAE,IAAI;KAC7B;IACI;QACD,IAAI,EAAE,4BAA4B;QAClC,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,sBAAsB,CAAC;QACpC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,cAAc,EAAE;YAChE,EAAE,IAAI,EAAE,kBAAkB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YACjE,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE;YACrC,EAAE,IAAI,EAAE,mBAAmB,EAAE,IAAI,EAAE,yBAAyB,EAAE,UAAU,EAAE,IAAI,EAAE;YAChF,EAAE,IAAI,EAAE,iBAAiB,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,sBAAsB,EAAE;YAC9E,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,kBAAkB,EAAE;SAClD;QACD,oBAAoB,EAAE,IAAI;KAC7B;IACK;QACF,IAAI,EAAE,sBAAsB;QAC5B,QAAQ,EAAE,aAAa;QACvB,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,4BAA4B,EAAE,OAAO,EAAE,IAAI,EAAE;YACrD,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,IAAI,EAAE,sBAAsB,EAAE,IAAI,EAAE,WAAW,EAAE,aAAa,EAAE;SAC9G;QACD,oBAAoB,EAAE,IAAI;KAC7B;IACI;QACD,IAAI,EAAE,yBAAyB;QAC/B,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,sBAAsB,CAAC;QACpC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,cAAc,EAAE;YAChE,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC9D,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE;YACrC,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC/D,EAAE,IAAI,EAAE,gBAAgB,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,sBAAsB,EAAE;YAC7E,EAAE,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;SACxE;QACD,oBAAoB,EAAE,IAAI;KAC7B;IACI;QACD,IAAI,EAAE,2BAA2B;QACjC,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,kBAAkB,CAAC;QAChC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,cAAc,EAAE,oBAAoB,EAAE,IAAI,EAAE;YAC5F,EAAE,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAChE,EAAE,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE;YACzD,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE;YACrC,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,qBAAqB,EAAE;YACtD,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,6CAA6C,EAAE,UAAU,EAAE,IAAI,EAAE;SAC/F;KACJ;IACK;QACF,IAAI,EAAE,gBAAgB;QACtB,QAAQ,EAAE,aAAa;QACvB,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,wBAAwB,EAAE,OAAO,EAAE,IAAI,EAAG;YAClD,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,mBAAmB,EAAE;SACzD;KACJ;IACI;QACD,IAAI,EAAE,yBAAyB;QAC/B,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,kBAAkB,CAAC;QAChC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,cAAc,EAAE,oBAAoB,EAAE,IAAI,EAAE;YAC5F,EAAE,IAAI,EAAE,qBAAqB,EAAE,IAAI,EAAE,2BAA2B,EAAE;YAClE,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;SACzF;KACJ;IACI;QACD,IAAI,EAAE,2BAA2B;QACjC,QAAQ,EAAE,aAAa;QACvB,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE;YACrC,EAAE,IAAI,EAAE,qBAAqB,EAAE,eAAe,EAAE,IAAI,EAAE,sBAAsB,EAAE,IAAI,EAAE,WAAW,EAAE,0BAA0B,EAAE;SACrI;KACJ;IACI;QACD,IAAI,EAAE,0BAA0B;QAChC,QAAQ,EAAE,aAAa;QACvB,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,qBAAqB,EAAE;YACrD,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,sBAAsB,EAAE,UAAU,EAAE,IAAI,EAAE,oBAAoB,EAAE,IAAI,EAAE;YACtG,EAAE,IAAI,EAAE,mBAAmB,EAAE,IAAI,EAAE,yBAAyB,EAAE,UAAU,EAAE,IAAI,EAAE;SACxF;KACJ;IACI;QACD,IAAI,EAAE,yBAAyB;QAC/B,QAAQ,EAAE,aAAa;QACvB,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC5D,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,mBAAmB,EAAE;SACpD;KACJ;IACI;QACD,IAAI,EAAE,6BAA6B;QACnC,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,wBAAwB,CAAC;QACtC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,IAAI,EAAE;YACxC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,wBAAwB,EAAE;SAC3D;KACJ;IACI;QACD,IAAI,EAAE,8BAA8B;QACpC,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,0BAA0B,CAAC;QACxC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,kBAAkB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YACjE,EAAE,IAAI,EAAE,aAAa,EAAE,eAAe,EAAE,IAAI,EAAE,WAAW,EAAE,mBAAmB,EAAE;YAChF,EAAE,IAAI,EAAE,mBAAmB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;SAC1E;KACJ;IACI;QACD,IAAI,EAAE,yBAAyB;QAC/B,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,mBAAmB,CAAC;QACjC,QAAQ,EAAO,EAAE;KACpB;IACI;QACD,IAAI,EAAE,+BAA+B;QACrC,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,0BAA0B,CAAC;QACxC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC/D,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,mBAAmB,EAAE;YACjD,EAAE,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;SACxE;KACJ;IACI;QACD,IAAI,EAAE,qCAAqC;QAC3C,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,wBAAwB,CAAC;QACtC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,iBAAiB,EAAE;YAC9C,EAAE,IAAI,EAAE,wBAAwB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YACvE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,iCAAiC,EAAE;SACjE;QACD,oBAAoB,EAAE,IAAI;KAC7B;IACI;QACD,IAAI,EAAE,4CAA4C;QAClD,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,wBAAwB,CAAC;QACtC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,qBAAqB,EAAE;YACtD,EAAE,IAAI,EAAE,wBAAwB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YACvE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,iCAAiC,EAAE;SACjE;QACD,oBAAoB,EAAE,IAAI;KAC7B;IACI;QACD,IAAI,EAAE,qBAAqB;QAC3B,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,aAAa,CAAC;QAC3B,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE;YACrC,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YACzD,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE;SACxC;QAGD,oBAAoB,EAAE,IAAI;KAC7B;IACI;QACD,IAAI,EAAE,wBAAwB;QAC9B,QAAQ,EAAE,aAAa;QACvB,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,IAAI,EAAE;YACxC,EAAE,IAAI,EAAE,eAAe,EAAE,eAAe,EAAE,IAAI,EAAE,WAAW,EAAE,aAAa,EAAE;YAC5E,EAAE,IAAI,EAAE,kBAAkB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;SACzE;QACD,oBAAoB,EAAE,IAAI;KAC7B;IACI;QACD,IAAI,EAAE,uBAAuB;QAC7B,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,aAAa,CAAC;QAC3B,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC3D,EAAE,IAAI,EAAE,mBAAmB,EAAE,IAAI,EAAE,yBAAyB,EAAE,UAAU,EAAE,IAAI,EAAE;YAChF,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,qBAAqB,EAAE;YACtD,EAAE,IAAI,EAAE,wBAAwB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YACvE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE;SAC7C;QACD,oBAAoB,EAAE,IAAI;KAC7B;IACI;QACD,IAAI,EAAE,oBAAoB;QAC1B,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,aAAa,CAAC;QAC3B,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,mBAAmB,EAAE,IAAI,EAAE,yBAAyB,EAAE,UAAU,EAAE,IAAI,EAAE;YAChF,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,qBAAqB,EAAE;YACtD,EAAE,IAAI,EAAE,wBAAwB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YACvE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE;SAC7C;QACD,oBAAoB,EAAE,IAAI;KAC7B;IACI;QACD,IAAI,EAAE,kBAAkB;QACxB,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,aAAa,CAAC;QAC3B,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC/D,EAAE,IAAI,EAAE,aAAa,EAAE,eAAe,EAAE,IAAI,EAAE,WAAW,EAAE,mBAAmB,EAAE;YAChF,EAAE,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;SACxE;QACD,oBAAoB,EAAE,IAAI;KAC7B;IACI;QACD,IAAI,EAAE,iBAAiB;QACvB,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,aAAa,CAAC;QAC3B,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE;YACrC,EAAE,IAAI,EAAE,kBAAkB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YACjE,EAAE,IAAI,EAAE,mBAAmB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;SAC1E;QACD,oBAAoB,EAAE,IAAI;KAC7B;IACI;QACD,IAAI,EAAE,mBAAmB;QACzB,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,aAAa,CAAC;QAC3B,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE;YACrC,EAAE,IAAI,EAAE,kBAAkB,EAAE,IAAI,EAAE,wBAAwB,EAAE;SACpE;QACD,oBAAoB,EAAE,IAAI;KAC7B;IACK;QACF,IAAI,EAAE,iBAAiB;QACvB,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,aAAa,CAAC;QAC3B,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC9D,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE;SAC7C;QACD,oBAAoB,EAAE,IAAI;KAC7B;IACK;QACF,IAAI,EAAE,iBAAiB;QACvB,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,aAAa,CAAC;QAC3B,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,kBAAkB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YACjE,EAAE,IAAI,EAAE,OAAO,EAAE,eAAe,EAAE,IAAI,EAAE,WAAW,EAAE,aAAa,EAAE;YACpE,EAAE,IAAI,EAAE,mBAAmB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;SAC1E;QACD,oBAAoB,EAAE,IAAI;KAC7B;IACK;QACF,IAAI,EAAE,iBAAiB;QACvB,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,aAAa,CAAC;QAC3B,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE;YACrC,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YACzD,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE;SAC9C;QACD,oBAAoB,EAAE,IAAI;KAC7B;IACK;QACF,IAAI,EAAE,yBAAyB;QAC/B,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,aAAa,CAAC;QAC3B,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC/D,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE;YACrC,EAAE,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;SACxE;QACD,oBAAoB,EAAE,IAAI;KAC7B;IACI;QACD,IAAI,EAAE,sBAAsB;QAC5B,QAAQ,EAAE,aAAa;QACvB,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC3D,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE;SAC7C;QACD,oBAAoB,EAAE,IAAI;KAC7B;IACI;QACD,IAAI,EAAE,aAAa;QACnB,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,kBAAkB,CAAC;QAChC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,wBAAwB,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE;YACrE,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAG;YAC1C,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,kBAAkB,EAAE;YACrE,EAAE,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;SACxE;KACJ;IACI;QACD,IAAI,EAAE,iBAAiB;QACvB,QAAQ,EAAE,aAAa;QACvB,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,oBAAoB,EAAE,IAAI,EAAE;YACvF,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,cAAc,EAAE;YAChE,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE;YACrC,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,oBAAoB,EAAE,IAAI,EAAE;YACtF,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,sBAAsB,EAAE,UAAU,EAAE,IAAI,EAAE,oBAAoB,EAAE,IAAI,EAAE;YACtG,EAAE,IAAI,EAAE,mBAAmB,EAAE,IAAI,EAAE,yBAAyB,EAAE,UAAU,EAAE,IAAI,EAAE,oBAAoB,EAAE,IAAI,EAAE;SACpH;KACJ;IACI;QACD,IAAI,EAAE,8BAA8B;QACpC,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,yBAAyB,EAAE,uBAAuB,CAAC;QAChE,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,+BAA+B,EAAE;YAC7D,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YACzD,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE;SACvC;KACJ;IACI;QACD,IAAI,EAAE,8BAA8B;QACpC,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,0BAA0B,CAAC;QACxC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,+BAA+B,EAAE;YAC1D,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,IAAI,EAAE;SAChD;KACJ;IACI;QACD,IAAI,EAAE,+BAA+B;QACrC,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,yBAAyB,EAAE,uBAAuB,CAAC;QAChE,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,+BAA+B,EAAE;YAC7D,EAAE,IAAI,EAAE,kBAAkB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YACjE,EAAE,IAAI,EAAE,oBAAoB,EAAE,IAAI,EAAE,mBAAmB,EAAE,UAAU,EAAE,IAAI,EAAE;YAC3E,EAAE,IAAI,EAAE,mBAAmB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;SAC1E;KACJ;IACI;QACD,IAAI,EAAE,gCAAgC;QACtC,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,yBAAyB,EAAE,uBAAuB,CAAC;QAChE,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,+BAA+B,EAAE;YAC7D,EAAE,IAAI,EAAE,oBAAoB,EAAE,IAAI,EAAE,0BAA0B,EAAE;SACxE;KACJ;IACI;QACD,IAAI,EAAE,0BAA0B;QAChC,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,0BAA0B,CAAC;QACxC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,oBAAoB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YACnE,EAAE,IAAI,EAAE,iBAAiB,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,sBAAsB,EAAE;SACtF;KACJ;IACI;QACD,IAAI,EAAE,sBAAsB;QAC5B,QAAQ,EAAE,aAAa;QACvB,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,mBAAmB,EAAE;YACjD,EAAE,IAAI,EAAE,0BAA0B,EAAE,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,oBAAoB,EAAE;SAC9F;KACJ;IACI;QACD,IAAI,EAAE,4BAA4B;QAClC,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,uBAAuB,CAAC;QACrC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,+BAA+B,EAAE;YAC7D,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,oBAAoB,EAAE;SAC5D;KACJ;IACI;QACD,IAAI,EAAE,oBAAoB;QAC1B,QAAQ,EAAE,aAAa;QACvB,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,kBAAkB,EAAE,IAAI,EAAE,wBAAwB,EAAE,UAAU,EAAE,IAAI,EAAE;YAC9E,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC/D,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,IAAI,EAAE,WAAW,EAAE,mBAAmB,EAAE;YAC9E,EAAE,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;SACxE;KACJ;IACI;QACD,IAAI,EAAE,wBAAwB;QAC9B,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,mBAAmB,CAAC;QACjC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,mBAAmB,EAAE;YAC3C,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,IAAI,EAAE;YACxC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,mBAAmB,EAAE;SACpD;KACJ;IACI;QACD,IAAI,EAAE,6BAA6B;QACnC,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,mBAAmB,CAAC;QACjC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,mBAAmB,EAAE;YAChD,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC9D,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,mBAAmB,EAAE;YAC/C,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC3D,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,mBAAmB,EAAE;SACxD;KACJ;IACI;QACD,IAAI,EAAE,0BAA0B;QAChC,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,mBAAmB,CAAC;QACjC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC3D,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,qBAAqB,EAAE;SAC9D;QACD,oBAAoB,EAAE,IAAI;KAC7B;IACI;QACD,IAAI,EAAE,uBAAuB;QAC7B,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,mBAAmB,CAAC;QACjC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,qBAAqB,EAAE;YACrD,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,oBAAoB,EAAE,IAAI,EAAE;YACtF,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,qBAAqB,EAAE;SAC9D;KACJ;IACI;QACD,IAAI,EAAE,sBAAsB;QAC5B,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,mBAAmB,CAAC;QACjC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,kBAAkB,EAAE,OAAO,EAAE,IAAI,EAAE;YAC3C,EAAE,IAAI,EAAE,YAAY,EAAE,eAAe,EAAE,IAAI,EAAE,WAAW,EAAE,iBAAiB,EAAE;YAC7E,EAAE,IAAI,EAAE,mBAAmB,EAAE,OAAO,EAAE,IAAI,EAAE;YAC5C,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,sBAAsB,EAAE,UAAU,EAAE,IAAI,EAAE;SAClF;QACD,oBAAoB,EAAE,IAAI;KAC7B;IACI;QACD,IAAI,EAAE,yBAAyB;QAC/B,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,mBAAmB,CAAC;QACjC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,qBAAqB,EAAE;YACrD,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE;YAC1D,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,sBAAsB,EAAE,UAAU,EAAE,IAAI,EAAE;SAClF;QACD,oBAAoB,EAAE,IAAI;KAC7B;IACI;QACD,IAAI,EAAE,qBAAqB;QAC3B,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,mBAAmB,CAAC;QACjC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,mBAAmB,EAAE,IAAI,EAAE,yBAAyB,EAAE,UAAU,EAAE,IAAI,EAAE,oBAAoB,EAAE,IAAI,EAAE;YAC5G,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,qBAAqB,EAAE;YACtD,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,sBAAsB,EAAE,UAAU,EAAE,IAAI,EAAE,oBAAoB,EAAE,IAAI,EAAE;SAC9G;KACJ;IACI;QACD,IAAI,EAAE,qBAAqB;QAC3B,QAAQ,EAAE,aAAa;QACvB,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC/D,EAAE,IAAI,EAAE,YAAY,EAAE,eAAe,EAAE,IAAI,EAAE,WAAW,EAAE,iBAAiB,EAAE;YAC7E,EAAE,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;SACxE;KACJ;IACI;QACD,IAAI,EAAE,yBAAyB;QAC/B,QAAQ,EAAE,aAAa;QACvB,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,IAAI,EAAE;YACxC,EAAE,IAAI,EAAE,gBAAgB,EAAE,eAAe,EAAE,IAAI,EAAE,WAAW,EAAE,qBAAqB,EAAE;YACrF,EAAE,IAAI,EAAE,kBAAkB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;SACzE;QACD,oBAAoB,EAAE,IAAI;KAC7B;IACI;QACD,IAAI,EAAE,qBAAqB;QAC3B,QAAQ,EAAE,aAAa;QACvB,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE;YACrC,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,kBAAkB,EAAE,UAAU,EAAE,IAAI,EAAE;SAC1E;QACD,oBAAoB,EAAE,IAAI;KAC7B;IACI;QACD,IAAI,EAAE,kBAAkB;QACxB,QAAQ,EAAE,aAAa;QACvB,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAE/D,EAAE,IAAI,EAAE,kBAAkB,EAAE,IAAI,EAAE,oBAAoB,EAAE;SAChE;QACD,oBAAoB,EAAE,IAAI;KAC7B;IACI;QACD,IAAI,EAAE,kBAAkB;QACxB,QAAQ,EAAE,aAAa;QACvB,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC5D,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,kBAAkB,EAAE;SACvD;KACJ;IACI;QACD,IAAI,EAAE,mBAAmB;QACzB,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,kBAAkB,CAAC;QAChC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC1D,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC/D,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,mBAAmB,EAAE;YAChD,EAAE,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAChE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,kBAAkB,EAAE;YAC/C,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,kBAAkB,EAAE,UAAU,EAAE,IAAI,EAAE;SAC1E;KACJ;IACI;QACD,IAAI,EAAE,2BAA2B;QACjC,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,kBAAkB,CAAC;QAChC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,mBAAmB,EAAE;YACjD,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;SACzF;KACJ;IACI;QACD,IAAI,EAAE,8BAA8B;QACpC,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,qBAAqB,CAAC;QACnC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,cAAc,EAAE;YAChE,EAAE,IAAI,EAAE,oBAAoB,EAAE,OAAO,EAAE,IAAI,EAAE;YAC7C,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,qBAAqB,EAAE;YACtD,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,6CAA6C,EAAE,UAAU,EAAE,IAAI,EAAG;SAChG;QACD,oBAAoB,EAAE,IAAI;KAC7B;IACI;QACD,IAAI,EAAE,iCAAiC;QACvC,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,0BAA0B,CAAC;QACxC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,cAAc,EAAE;YAChE,EAAE,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE;YACzD,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,qBAAqB,EAAE;YACrD,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,qBAAqB,EAAE;YACtD,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,6CAA6C,EAAE,UAAU,EAAE,IAAI,EAAG;SAChG;QACD,oBAAoB,EAAE,IAAI;KAC7B;IACI;QACD,IAAI,EAAE,mBAAmB;QACzB,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,iBAAiB,CAAE;QAChC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,cAAc,EAAE,oBAAoB,EAAE,IAAI,EAAE;YAC5F,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC3D,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,qBAAqB,EAAE;YACrD,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,qBAAqB,EAAE;YACtD,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,6CAA6C,EAAE,UAAU,EAAE,IAAI,EAAG;SAChG;KACJ;IACI;QACD,IAAI,EAAE,mBAAmB;QACzB,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,iBAAiB,CAAC;QAC/B,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,cAAc,EAAE,oBAAoB,EAAE,IAAI,EAAE;YAC5F,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC3D,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,qBAAqB,EAAE;YACrD,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,qBAAqB,EAAE;YACtD,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,6CAA6C,EAAE,UAAU,EAAE,IAAI,EAAG;SAChG;QACD,oBAAoB,EAAE,IAAI;KAC7B;IACI;QACD,IAAI,EAAE,iCAAiC;QACvC,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,0BAA0B,CAAC;QACxC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,cAAc,EAAE;YAChE,EAAE,IAAI,EAAE,oBAAoB,EAAE,IAAI,EAAE,0BAA0B,EAAE;YAChE,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;SACzF;QACD,oBAAoB,EAAE,IAAI;KAC7B;IACI;QACD,IAAI,EAAE,8BAA8B;QACpC,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,qBAAqB,CAAC;QACnC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,cAAc,EAAE;YAChE,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,sBAAsB,EAAE;YACxD,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;SACzF;QACD,oBAAoB,EAAE,IAAI;KAC7B;IACI;QACD,IAAI,EAAE,sBAAsB;QAC5B,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,kBAAkB,CAAC;QAChC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC7D,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,mBAAmB,EAAE,UAAU,EAAE,IAAI,EAAE;YACnE,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;SACzF;KACJ;IACI;QACD,IAAI,EAAE,uBAAuB;QAC7B,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,kBAAkB,CAAC;QAChC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,IAAI,EAAE;YACxC,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,mBAAmB,EAAE,UAAU,EAAE,IAAI,EAAE;YACnE,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;SACzF;KACJ;IACI;QACD,IAAI,EAAE,gCAAgC;QACtC,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,0BAA0B,CAAC;QACxC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC3D,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,yBAAyB,EAAE;YACvD,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,oBAAoB,EAAE,UAAU,EAAE,IAAI,EAAE;SAC9E;KACJ;IACI;QACD,IAAI,EAAE,uBAAuB;QAC7B,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,kBAAkB,CAAC;QAChC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC9D,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC/D,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,mBAAmB,EAAE;YACjD,EAAE,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAChE,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC/D,EAAE,IAAI,EAAE,eAAe,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,qBAAqB,EAAE;YAC3E,EAAE,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;SACxE;KACJ;IACI;QACD,IAAI,EAAE,wBAAwB;QAC9B,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,qBAAqB,CAAC;QACnC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC5D,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,mBAAmB,EAAE;YACjD,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAC;YAC1D,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,kBAAkB,EAAE;SAC7E;KACJ;IACI;QACD,IAAI,EAAE,2BAA2B;QACjC,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,qBAAqB,CAAC;QACnC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC/D,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC3D,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,kBAAkB,EAAE;SAC7E;KACJ;IACI;QACD,IAAI,EAAE,sBAAsB;QAC5B,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,kBAAkB,CAAC;QAChC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,IAAI,EAAE;YACvC,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE;YACvD,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;SACzF;KACJ;IACI;QACD,IAAI,EAAE,yBAAyB;QAC/B,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,kBAAkB,CAAC;QAChC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,IAAI,EAAE;YAC1C,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE;YACvD,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;SACzF;KACJ;IACI;QACD,IAAI,EAAE,oBAAoB;QAC1B,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,kBAAkB,CAAC;QAChC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC3D,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC/D,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,+CAA+C,EAAE,UAAU,EAAE,IAAI,EAAE;YAChG,EAAE,IAAI,EAAE,qBAAqB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YACpE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,mBAAmB,EAAE,UAAU,EAAE,IAAI,EAAE;YAClE,EAAE,IAAI,EAAE,sBAAsB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YACrE,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,mBAAmB,EAAE,UAAU,EAAE,IAAI,EAAE;YACpE,EAAE,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAChE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,kBAAkB,EAAE;SACvD;KACJ;IACI;QACD,IAAI,EAAE,sBAAsB;QAC5B,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,kBAAkB,CAAC;QAChC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC3D,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC/D,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,+CAA+C,EAAE;YACvE,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC1D,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,mBAAmB,EAAE;YAC5C,EAAE,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAChE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,kBAAkB,EAAE;SACvD;KACJ;IACI;QACD,IAAI,EAAE,sBAAsB;QAC5B,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,kBAAkB,CAAC;QAChC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC7D,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC/D,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,mBAAmB,EAAE;YAChD,EAAE,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAChE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,kBAAkB,EAAE;SACvD;KACJ;IACI;QACD,IAAI,EAAE,qBAAqB;QAC3B,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,kBAAkB,CAAC;QAChC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC5D,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC/D,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,mBAAmB,EAAE;YAChD,EAAE,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAChE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,kBAAkB,EAAE;SACvD;KACJ;IACI;QACD,IAAI,EAAE,uBAAuB;QAC7B,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,sBAAsB,CAAC;QACpC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,cAAc,EAAE;YAChE,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC5D,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE;YACrC,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC/D,EAAE,IAAI,EAAE,cAAc,EAAE,eAAe,EAAE,IAAI,EAAE,WAAW,EAAE,mBAAmB,EAAE;YACjF,EAAE,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;SACxE;QACD,oBAAoB,EAAE,IAAI;KAC7B;IACI;QACD,IAAI,EAAE,mBAAmB;QACzB,QAAQ,EAAE,aAAa;QACvB,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,qBAAqB,EAAE;YACrD,EAAE,IAAI,EAAE,mBAAmB,EAAE,IAAI,EAAE,yBAAyB,EAAE,UAAU,EAAE,IAAI,EAAE;SACxF;KACJ;IACI;QACD,IAAI,EAAE,sBAAsB;QAC5B,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,wBAAwB,CAAC;QACtC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC9D,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE;YACrC,EAAE,IAAI,EAAE,kBAAkB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YACjE,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,wBAAwB,EAAE;SAC9D;QACD,oBAAoB,EAAE,IAAI;KAC7B;IACI;QACD,IAAI,EAAE,+BAA+B;QACrC,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,0BAA0B,CAAC;QACxC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC/D,EAAE,IAAI,EAAE,qBAAqB,EAAE,eAAe,EAAE,IAAI,EAAE,WAAW,EAAE,2BAA2B,EAAE;YAChG,EAAE,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;SACxE;KACJ;IACI;QACD,IAAI,EAAE,4BAA4B;QAClC,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,qBAAqB,CAAC;QACnC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,kBAAkB,EAAE,OAAO,EAAE,IAAI,EAAE;YAC3C,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,mBAAmB,EAAE;YACjD,EAAE,IAAI,EAAE,mBAAmB,EAAE,OAAO,EAAE,IAAI,EAAE;SACpD;KACJ;IACI;QACD,IAAI,EAAE,gCAAgC;QACtC,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,2BAA2B,CAAC;QACzC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,qBAAqB,EAAE;YACrD,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC3D,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,mBAAmB,EAAE;SACzD;KACJ;IACK;QACF,IAAI,EAAE,kCAAkC;QACxC,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,2BAA2B,CAAC;QACzC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE;YACzD,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,qBAAqB,EAAE;YACrD,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,qBAAqB,EAAE;YACtD,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,6CAA6C,EAAE,UAAU,EAAE,IAAI,EAAG;SAChG;KACJ;IACI;QACD,IAAI,EAAE,0BAA0B;QAChC,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,0BAA0B,CAAC;QACxC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAChE,EAAE,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE;YACzD,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE;YACvD,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,qBAAqB,EAAE;YACtD,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,6CAA6C,EAAE,UAAU,EAAE,IAAI,EAAG;SAAC;KACrG;IACI;QACD,IAAI,EAAE,sBAAsB;QAC5B,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,kBAAkB,CAAC;QAChC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE;SAAC;KACtD;IACI;QACD,IAAI,EAAE,oBAAoB;QAC1B,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,kBAAkB,CAAC;QAChC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC3D,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE;YACtC,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,mBAAmB,EAAE,UAAU,EAAE,IAAI,EAAE;YACpE,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,qBAAqB,EAAE,UAAU,EAAE,IAAI,EAAE;SAAC;KACrF;IACI;QACD,IAAI,EAAE,mBAAmB;QACzB,QAAQ,EAAE,aAAa;QACvB,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC7D,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC/D,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE;YACrC,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,sBAAsB,EAAE,UAAU,EAAE,IAAI,EAAE,qBAAqB,EAAE,IAAI,EAAE;YACvG,EAAE,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAChE,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE;SAAC;KACnD;IACI;QACD,IAAI,EAAE,qBAAqB;QAC3B,QAAQ,EAAE,aAAa;QACvB,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC/D,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE;SAAC;KACnD;IACI;QACD,IAAI,EAAE,wBAAwB;QAC9B,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,kBAAkB,CAAC;QAChC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE;YACrC,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC3D,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,kBAAkB,EAAE;SAAC;KAC5D;IACI;QACD,IAAI,EAAE,mBAAmB;QACzB,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,kBAAkB,CAAC;QAChC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC1D,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,kBAAkB,EAAE;YAC/C,EAAE,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC7D,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC/D,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,mBAAmB,EAAE;YAChD,EAAE,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAChE,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;SAAC;KAC9F;IACI;QACD,IAAI,EAAE,wBAAwB;QAC9B,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,wBAAwB,CAAC;QACtC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC9D,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,wBAAwB,EAAE;SAAC;KACnE;IACI;QACD,IAAI,EAAE,wBAAwB;QAC9B,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,wBAAwB,CAAC;QACtC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC9D,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,wBAAwB,EAAE;SAAC;KACnE;IACI;QACD,IAAI,EAAE,sBAAsB;QAC5B,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,wBAAwB,CAAC;QACtC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC5D,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,wBAAwB,EAAE;SAAC;KACnE;IACI;QACD,IAAI,EAAE,uBAAuB;QAC7B,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,mBAAmB,CAAC;QACjC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,IAAI,EAAE;YACvC,EAAE,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE;YACzD,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,mBAAmB,EAAE,UAAU,EAAE,IAAI,EAAE;SAAC;KAChF;IACI;QACD,IAAI,EAAE,yBAAyB;QAC/B,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,kBAAkB,CAAC;QAChC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,IAAI,EAAE;YAC1C,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;SAAC;KAC9F;CAAC,CAAC;AAEP,SAAS,SAAS,CAAC,UAA2B;IAC1C4C,IAAIA,QAAQA,GAAGA,oBAAoBA,CAACA,UAAUA,CAACA,CAACA;IAChDA,MAAMA,CAAOA,UAAUA,CAACA,UAAWA,CAACA,QAAQA,CAACA,CAACA;AAClDA,CAACA;AAED,WAAW,CAAC,IAAI,CAAC,UAAC,EAAE,EAAE,EAAE,IAAK,OAAA,SAAS,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,EAAE,CAAC,EAA7B,CAA6B,CAAC,CAAC;AAE5D,SAAS,sBAAsB,CAAC,UAAkB;IAC9CC,EAAEA,CAACA,CAACA,UAAUA,CAACA,eAAeA,CAACA,QAAQA,CAACA,UAAUA,EAAEA,QAAQA,CAACA,CAACA,CAACA,CAACA;QAC5DA,MAAMA,CAACA,UAAUA,CAACA,SAASA,CAACA,CAACA,EAAEA,UAAUA,CAACA,MAAMA,GAAGA,QAAQA,CAACA,MAAMA,CAACA,CAACA;IACxEA,CAACA;IAEDA,MAAMA,CAACA,UAAUA,CAACA;AACtBA,CAACA;AAED,SAAS,oBAAoB,CAAC,UAA2B;IACrDC,MAAMA,CAACA,sBAAsBA,CAACA,UAAUA,CAACA,IAAIA,CAACA,CAACA;AACnDA,CAACA;AAED,SAAS,OAAO,CAAC,KAAwB;IACrCC,EAAEA,CAACA,CAACA,KAAKA,CAACA,OAAOA,CAACA,CAACA,CAACA;QAChBA,MAAMA,CAACA,cAAcA,CAACA;IAC1BA,CAACA;IACDA,IAAIA,CAACA,EAAEA,CAACA,CAACA,KAAKA,CAACA,eAAeA,CAACA,CAACA,CAACA;QAC7BA,MAAMA,CAACA,uBAAuBA,GAAGA,KAAKA,CAACA,WAAWA,GAAGA,GAAGA,CAACA;IAC7DA,CAACA;IACDA,IAAIA,CAACA,EAAEA,CAACA,CAACA,KAAKA,CAACA,MAAMA,CAACA,CAACA,CAACA;QACpBA,MAAMA,CAACA,KAAKA,CAACA,WAAWA,GAAGA,IAAIA,CAACA;IACpCA,CAACA;IACDA,IAAIA,CAACA,CAACA;QACFA,MAAMA,CAACA,KAAKA,CAACA,IAAIA,CAACA;IACtBA,CAACA;AACLA,CAACA;AAED,SAAS,SAAS,CAAC,KAAa;IAC5BC,MAAMA,CAACA,KAAKA,CAACA,MAAMA,CAACA,CAACA,EAAEA,CAACA,CAACA,CAACA,WAAWA,EAAEA,GAAGA,KAAKA,CAACA,MAAMA,CAACA,CAACA,CAACA,CAACA;AAC9DA,CAACA;AAED,SAAS,WAAW,CAAC,KAAwB;IACzCC,EAAEA,CAACA,CAACA,KAAKA,CAACA,IAAIA,KAAKA,WAAWA,CAACA,CAACA,CAACA;QAC7BA,MAAMA,CAACA,GAAGA,GAAGA,KAAKA,CAACA,IAAIA,CAACA;IAC5BA,CAACA;IAEDA,MAAMA,CAACA,KAAKA,CAACA,IAAIA,CAACA;AACtBA,CAACA;AAED,SAAS,2BAA2B,CAAC,UAA2B;IAC5DC,IAAIA,MAAMA,GAAGA,iBAAiBA,GAAGA,UAAUA,CAACA,IAAIA,GAAGA,IAAIA,GAAGA,oBAAoBA,CAACA,UAAUA,CAACA,GAAGA,0CAA0CA,CAACA;IAExIA,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,UAAUA,CAACA,QAAQA,CAACA,MAAMA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;QAClDA,IAAIA,KAAKA,GAAGA,UAAUA,CAACA,QAAQA,CAACA,CAACA,CAACA,CAACA;QACnCA,MAAMA,IAAIA,IAAIA,CAACA;QACfA,MAAMA,IAAIA,WAAWA,CAACA,KAAKA,CAACA,CAACA;QAC7BA,MAAMA,IAAIA,IAAIA,GAAGA,OAAOA,CAACA,KAAKA,CAACA,CAACA;IACpCA,CAACA;IAEDA,MAAMA,IAAIA,SAASA,CAACA;IAEpBA,MAAMA,IAAIA,+CAA+CA,CAACA;IAE1DA,EAAEA,CAACA,CAACA,UAAUA,CAACA,QAAQA,CAACA,MAAMA,CAACA,CAACA,CAACA;QAC7BA,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,UAAUA,CAACA,QAAQA,CAACA,MAAMA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;YAClDA,EAAEA,CAACA,CAACA,CAACA,CAACA,CAACA,CAACA;gBACJA,MAAMA,IAAIA,OAAOA,CAACA;YACtBA,CAACA;YAEDA,IAAIA,KAAKA,GAAGA,UAAUA,CAACA,QAAQA,CAACA,CAACA,CAACA,CAACA;YACnCA,MAAMA,IAAIA,eAAeA,GAAGA,KAAKA,CAACA,IAAIA,GAAGA,KAAKA,GAAGA,WAAWA,CAACA,KAAKA,CAACA,CAACA;QACxEA,CAACA;IACLA,CAACA;IAEDA,EAAEA,CAACA,CAACA,UAAUA,CAACA,QAAQA,CAACA,MAAMA,GAAGA,CAACA,CAACA,CAACA,CAACA;QACjCA,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,UAAUA,CAACA,QAAQA,CAACA,MAAMA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;YAClDA,MAAMA,IAAIA,eAAeA,CAACA;YAE1BA,IAAIA,KAAKA,GAAGA,UAAUA,CAACA,QAAQA,CAACA,CAACA,CAACA,CAACA;YAEnCA,EAAEA,CAACA,CAACA,KAAKA,CAACA,UAAUA,CAACA,CAACA,CAACA;gBACnBA,MAAMA,IAAIA,WAAWA,CAACA,KAAKA,CAACA,GAAGA,OAAOA,GAAGA,WAAWA,CAACA,KAAKA,CAACA,GAAGA,iBAAiBA,CAACA;YACpFA,CAACA;YACDA,IAAIA,CAACA,CAACA;gBACFA,MAAMA,IAAIA,WAAWA,CAACA,KAAKA,CAACA,GAAGA,gBAAgBA,CAACA;YACpDA,CAACA;QACLA,CAACA;QACDA,MAAMA,IAAIA,OAAOA,CAACA;IACtBA,CAACA;IAEDA,MAAMA,IAAIA,YAAYA,CAACA;IACvBA,MAAMA,IAAIA,MAAMA,GAAGA,UAAUA,CAACA,IAAIA,GAAGA,+BAA+BA,GAAGA,oBAAoBA,CAACA,UAAUA,CAACA,GAAGA,OAAOA,CAACA;IAClHA,MAAMA,IAAIA,MAAMA,GAAGA,UAAUA,CAACA,IAAIA,GAAGA,0BAA0BA,GAAGA,UAAUA,CAACA,QAAQA,CAACA,MAAMA,GAAGA,OAAOA,CAACA;IACvGA,MAAMA,IAAIA,MAAMA,GAAGA,UAAUA,CAACA,IAAIA,GAAGA,oEAAoEA,CAACA;IAC1GA,EAAEA,CAACA,CAACA,UAAUA,CAACA,QAAQA,CAACA,MAAMA,CAACA,CAACA,CAACA;QAC7BA,MAAMA,IAAIA,8BAA8BA,CAACA;QAEzCA,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,UAAUA,CAACA,QAAQA,CAACA,MAAMA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;YAClDA,MAAMA,IAAIA,mBAAmBA,GAAGA,CAACA,GAAGA,gBAAgBA,GAAGA,UAAUA,CAACA,QAAQA,CAACA,CAACA,CAACA,CAACA,IAAIA,GAAGA,OAAOA,CAACA;QACjGA,CAACA;QAEDA,MAAMA,IAAIA,eAAeA,CAACA;IAC9BA,CAACA;IACDA,IAAIA,CAACA,CAACA;QACFA,MAAMA,IAAIA,8CAA8CA,CAACA;IAC7DA,CAACA;IACDA,MAAMA,IAAIA,WAAWA,CAACA;IAEtBA,MAAMA,CAACA,MAAMA,CAACA;AAClBA,CAACA;AAED,SAAS,wBAAwB;IAC7BC,IAAIA,MAAMA,GAAGA,+CAA+CA,CAACA;IAE7DA,MAAMA,IAAIA,yBAAyBA,CAACA;IAEpCA,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,WAAWA,CAACA,MAAMA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;QAC1CA,IAAIA,UAAUA,GAAGA,WAAWA,CAACA,CAACA,CAACA,CAACA;QAEhCA,EAAEA,CAACA,CAACA,CAACA,GAAGA,CAACA,CAACA,CAACA,CAACA;YACRA,MAAMA,IAAIA,MAAMA,CAACA;QACrBA,CAACA;QAEDA,MAAMA,IAAIA,uBAAuBA,CAACA,UAAUA,CAACA,CAACA;IAClDA,CAACA;IAEDA,MAAMA,IAAIA,GAAGA,CAACA;IACdA,MAAMA,CAACA,MAAMA,CAACA;AAClBA,CAACA;AAED,SAAS,uBAAuB,CAAC,UAA2B;IACxDC,IAAIA,MAAMA,GAAGA,uBAAuBA,GAAGA,UAAUA,CAACA,IAAIA,GAAGA,sBAAsBA,CAAAA;IAE/EA,EAAEA,CAACA,CAACA,UAAUA,CAACA,UAAUA,CAACA,CAACA,CAACA;QACxBA,MAAMA,IAAIA,IAAIA,CAACA;QACfA,MAAMA,IAAIA,UAAUA,CAACA,UAAUA,CAACA,IAAIA,CAACA,IAAIA,CAACA,CAACA;IAC/CA,CAACA;IAEDA,MAAMA,IAAIA,QAAQA,CAACA;IAEnBA,EAAEA,CAACA,CAACA,UAAUA,CAACA,IAAIA,KAAKA,kBAAkBA,CAACA,CAACA,CAACA;QACzCA,MAAMA,IAAIA,qCAAqCA,CAACA;IACpDA,CAACA;IAEDA,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,UAAUA,CAACA,QAAQA,CAACA,MAAMA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;QAClDA,IAAIA,KAAKA,GAAGA,UAAUA,CAACA,QAAQA,CAACA,CAACA,CAACA,CAACA;QACnCA,MAAMA,IAAIA,UAAUA,GAAGA,KAAKA,CAACA,IAAIA,GAAGA,IAAIA,GAAGA,OAAOA,CAACA,KAAKA,CAACA,GAAGA,OAAOA,CAACA;IACxEA,CAACA;IAEDA,MAAMA,IAAIA,WAAWA,CAACA;IACtBA,MAAMA,IAAIA,uBAAuBA,GAAGA,oBAAoBA,CAACA,UAAUA,CAACA,GAAGA,eAAeA,CAACA;IACvFA,MAAMA,IAAIA,oBAAoBA,CAACA;IAE/BA,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,UAAUA,CAACA,QAAQA,CAACA,MAAMA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;QAClDA,IAAIA,KAAKA,GAAGA,UAAUA,CAACA,QAAQA,CAACA,CAACA,CAACA,CAACA;QACnCA,MAAMA,IAAIA,IAAIA,CAACA;QACfA,MAAMA,IAAIA,WAAWA,CAACA,KAAKA,CAACA,CAACA;QAC7BA,MAAMA,IAAIA,IAAIA,GAAGA,OAAOA,CAACA,KAAKA,CAACA,CAACA;IACpCA,CAACA;IAEDA,MAAMA,IAAIA,KAAKA,GAAGA,UAAUA,CAACA,IAAIA,CAACA;IAClCA,MAAMA,IAAIA,QAAQA,CAACA;IAEnBA,MAAMA,CAACA,MAAMA,CAACA;AAClBA,CAACA;AAED,SAAS,aAAa;IAClBC,IAAIA,MAAMA,GAAGA,+CAA+CA,CAACA;IAE7DA,MAAMA,IAAIA,mBAAmBA,CAACA;IAE9BA,MAAMA,IAAIA,QAAQA,CAACA;IAEnBA,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,WAAWA,CAACA,MAAMA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;QAC1CA,IAAIA,UAAUA,GAAGA,WAAWA,CAACA,CAACA,CAACA,CAACA;QAEhCA,EAAEA,CAACA,CAACA,CAACA,CAACA,CAACA,CAACA;YACJA,MAAMA,IAAIA,MAAMA,CAACA;QACrBA,CAACA;QAEDA,MAAMA,IAAIA,2BAA2BA,CAACA,UAAUA,CAACA,CAACA;IACtDA,CAACA;IAEDA,MAAMA,IAAIA,GAAGA,CAACA;IACdA,MAAMA,CAACA,MAAMA,CAACA;AAClBA,CAACA;AAED,SAAS,WAAW,CAAC,IAAY;IAC7BC,MAAMA,CAACA,IAAIA,CAACA,MAAMA,CAACA,CAACA,EAAEA,CAACA,CAACA,KAAKA,GAAGA,IAAIA,IAAIA,CAACA,MAAMA,CAACA,CAACA,EAAEA,CAACA,CAACA,CAACA,WAAWA,EAAEA,KAAKA,IAAIA,CAACA,MAAMA,CAACA,CAACA,EAAEA,CAACA,CAACA,CAAAA;AAC7FA,CAACA;AAED,SAAS,cAAc;IACnBC,IAAIA,MAAMA,GAAGA,EAAEA,CAACA;IAEhBA,MAAMA,IACNA,2CAA2CA,GAC3CA,MAAMA,GACNA,yBAAyBA,GACzBA,+DAA+DA,GAC/DA,4DAA4DA,GAC5DA,eAAeA,GACfA,MAAMA,GACNA,qEAAqEA,GACrEA,4CAA4CA,GAC5CA,6BAA6BA,GAC7BA,mBAAmBA,GACnBA,MAAMA,GACNA,yCAAyCA,GACzCA,eAAeA,GACfA,MAAMA,GACNA,kEAAkEA,GAClEA,gEAAgEA,GAChEA,sDAAsDA,GACtDA,mBAAmBA,GACnBA,eAAeA,CAACA;IAEhBA,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,WAAWA,CAACA,MAAMA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;QAC1CA,IAAIA,UAAUA,GAAGA,WAAWA,CAACA,CAACA,CAACA,CAACA;QAEhCA,MAAMA,IAAIA,MAAMA,CAACA;QACjBA,MAAMA,IAAIA,sBAAsBA,GAAGA,oBAAoBA,CAACA,UAAUA,CAACA,GAAGA,SAASA,GAAGA,UAAUA,CAACA,IAAIA,GAAGA,eAAeA,CAACA;QAEpHA,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,UAAUA,CAACA,QAAQA,CAACA,MAAMA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;YAClDA,IAAIA,KAAKA,GAAGA,UAAUA,CAACA,QAAQA,CAACA,CAACA,CAACA,CAACA;YAEnCA,EAAEA,CAACA,CAACA,KAAKA,CAACA,OAAOA,CAACA,CAACA,CAACA;gBAChBA,EAAEA,CAACA,CAACA,KAAKA,CAACA,UAAUA,CAACA,CAACA,CAACA;oBACnBA,MAAMA,IAAIA,2CAA2CA,GAAGA,KAAKA,CAACA,IAAIA,GAAGA,QAAQA,CAACA;gBAClFA,CAACA;gBACDA,IAAIA,CAACA,CAACA;oBACFA,MAAMA,IAAIA,mCAAmCA,GAAGA,KAAKA,CAACA,IAAIA,GAAGA,QAAQA,CAACA;gBAC1EA,CAACA;YACLA,CAACA;YACDA,IAAIA,CAACA,EAAEA,CAACA,CAACA,KAAKA,CAACA,MAAMA,IAAIA,KAAKA,CAACA,eAAeA,CAACA,CAACA,CAACA;gBAC7CA,MAAMA,IAAIA,kCAAkCA,GAAGA,KAAKA,CAACA,IAAIA,GAAGA,QAAQA,CAACA;YACzEA,CAACA;YACDA,IAAIA,CAACA,EAAEA,CAACA,CAACA,KAAKA,CAACA,OAAOA,CAACA,CAACA,CAACA;gBACrBA,EAAEA,CAACA,CAACA,KAAKA,CAACA,UAAUA,CAACA,CAACA,CAACA;oBACnBA,MAAMA,IAAIA,2CAA2CA,GAAGA,KAAKA,CAACA,IAAIA,GAAGA,QAAQA,CAACA;gBAClFA,CAACA;gBACDA,IAAIA,CAACA,CAACA;oBACFA,MAAMA,IAAIA,mCAAmCA,GAAGA,KAAKA,CAACA,IAAIA,GAAGA,QAAQA,CAACA;gBAC1EA,CAACA;YACLA,CAACA;YACDA,IAAIA,CAACA,CAACA;gBACFA,MAAMA,IAAIA,0CAA0CA,GAAGA,KAAKA,CAACA,IAAIA,GAAGA,QAAQA,CAACA;YACjFA,CAACA;QACLA,CAACA;QAEDA,MAAMA,IAAIA,eAAeA,CAACA;IAC9BA,CAACA;IAEDA,MAAMA,IAAIA,OAAOA,CAACA;IAClBA,MAAMA,IAAIA,OAAOA,CAACA;IAClBA,MAAMA,CAACA,MAAMA,CAACA;AAClBA,CAACA;AAED,SAAS,aAAa,CAAC,CAAM,EAAE,KAAa;IACxCC,GAAGA,CAACA,CAACA,GAAGA,CAACA,IAAIA,IAAIA,CAACA,CAACA,CAACA,CAACA;QACjBA,EAAEA,CAACA,CAACA,CAACA,CAACA,IAAIA,CAACA,KAAKA,KAAKA,CAACA,CAACA,CAACA;YACpBA,MAAMA,CAACA,IAAIA,CAACA;QAChBA,CAACA;IACLA,CAACA;AACLA,CAACA;AAED,SAAS,OAAO,CAAI,KAAU,EAAE,IAAsB;IAClDC,IAAIA,MAAMA,GAAQA,EAAEA,CAACA;IAErBA,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,KAAKA,CAACA,MAAMA,EAAEA,CAACA,GAAGA,CAACA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;QAC3CA,IAAIA,CAACA,GAAQA,KAAKA,CAACA,CAACA,CAACA,CAACA;QACtBA,IAAIA,CAACA,GAAGA,IAAIA,CAACA,CAACA,CAACA,CAACA;QAEhBA,IAAIA,IAAIA,GAAQA,MAAMA,CAACA,CAACA,CAACA,IAAIA,EAAEA,CAACA;QAChCA,IAAIA,CAACA,IAAIA,CAACA,CAACA,CAACA,CAACA;QACbA,MAAMA,CAACA,CAACA,CAACA,GAAGA,IAAIA,CAACA;IACrBA,CAACA;IAEDA,MAAMA,CAACA,MAAMA,CAACA;AAClBA,CAACA;AAED,SAAS,wBAAwB,CAAC,QAA0D,EAAE,gBAAwB,EAAE,MAAc;IAClIC,IAAIA,MAAMA,GAAGA,QAAQA,CAACA,CAACA,CAACA,CAACA,IAAIA,CAACA,MAAMA,CAACA;IAErCA,IAAIA,MAAMA,GAAGA,EAAEA,CAACA;IAChBA,IAAIA,KAAaA,CAACA;IAElBA,EAAEA,CAACA,CAACA,QAAQA,CAACA,MAAMA,KAAKA,CAACA,CAACA,CAACA,CAACA;QACxBA,IAAIA,OAAOA,GAAGA,QAAQA,CAACA,CAACA,CAACA,CAACA;QAE1BA,EAAEA,CAACA,CAACA,gBAAgBA,KAAKA,MAAMA,CAACA,CAACA,CAACA;YAC9BA,MAAMA,CAACA,qBAAqBA,GAAGA,aAAaA,CAACA,UAAUA,CAACA,UAAUA,EAAEA,OAAOA,CAACA,IAAIA,CAACA,GAAGA,OAAOA,CAACA;QAChGA,CAACA;QAEDA,IAAIA,WAAWA,GAAGA,QAAQA,CAACA,CAACA,CAACA,CAACA,IAAIA,CAACA;QACnCA,MAAMA,GAAGA,WAAWA,CAAAA;QAEpBA,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,gBAAgBA,EAAEA,CAACA,GAAGA,MAAMA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;YAC7CA,EAAEA,CAACA,CAACA,CAACA,GAAGA,gBAAgBA,CAACA,CAACA,CAACA;gBACvBA,MAAMA,IAAIA,MAAMA,CAACA;YACrBA,CAACA;YAEDA,KAAKA,GAAGA,CAACA,KAAKA,CAACA,GAAGA,OAAOA,GAAGA,CAACA,UAAUA,GAAGA,CAACA,CAACA,CAACA;YAC7CA,MAAMA,IAAIA,iBAAiBA,GAAGA,KAAKA,GAAGA,uBAAuBA,GAAGA,WAAWA,CAACA,MAAMA,CAACA,CAACA,EAAEA,CAACA,CAACA,CAACA;QAC7FA,CAACA;QAEDA,MAAMA,IAAIA,iBAAiBA,GAAGA,aAAaA,CAACA,UAAUA,CAACA,UAAUA,EAAEA,OAAOA,CAACA,IAAIA,CAACA,GAAGA,mCAAmCA,CAACA;IAC3HA,CAACA;IACDA,IAAIA,CAACA,CAACA;QACFA,MAAMA,IAAIA,MAAMA,GAAGA,UAAUA,CAACA,cAAcA,CAACA,MAAMA,CAACA,QAAQA,EAAEA,UAAAA,CAAIA,IAACA,OAAAA,CAACA,CAACA,IAAIA,EAANA,CAAMA,CAACA,CAACA,IAAIA,CAACA,IAAIA,CAACA,GAAGA,MAAMA,CAAAA;QAC9FA,KAAKA,GAAGA,gBAAgBA,KAAKA,CAACA,GAAGA,OAAOA,GAAGA,CAACA,UAAUA,GAAGA,gBAAgBA,CAACA,CAACA;QAC3EA,MAAMA,IAAIA,MAAMA,GAAGA,wBAAwBA,GAAGA,KAAKA,GAAGA,UAAUA,CAAAA;QAEhEA,IAAIA,eAAeA,GAAGA,OAAOA,CAACA,QAAQA,EAAEA,UAAAA,CAAIA,IAACA,OAAAA,CAACA,CAACA,IAAIA,CAACA,MAAMA,CAACA,gBAAgBA,EAAEA,CAACA,CAACA,EAAlCA,CAAkCA,CAACA,CAACA;QAEjFA,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,IAAIA,eAAeA,CAACA,CAACA,CAACA;YAC5BA,EAAEA,CAACA,CAACA,eAAeA,CAACA,cAAcA,CAACA,CAACA,CAACA,CAACA,CAACA,CAACA;gBACpCA,MAAMA,IAAIA,MAAMA,GAAGA,wBAAwBA,GAAGA,CAACA,GAAGA,GAAGA,CAACA;gBACtDA,MAAMA,IAAIA,wBAAwBA,CAACA,eAAeA,CAACA,CAACA,CAACA,EAAEA,gBAAgBA,GAAGA,CAACA,EAAEA,MAAMA,GAAGA,MAAMA,CAACA,CAACA;YAClGA,CAACA;QACLA,CAACA;QAEDA,MAAMA,IAAIA,MAAMA,GAAGA,kDAAkDA,CAACA;QACtEA,MAAMA,IAAIA,MAAMA,GAAGA,OAAOA,CAACA;IAC/BA,CAACA;IAEDA,MAAMA,CAACA,MAAMA,CAACA;AAClBA,CAACA;AAED,SAAS,GAAG,CAAI,KAAU,EAAE,IAAsB;IAC9CC,IAAIA,GAAGA,GAAGA,IAAIA,CAACA,KAAKA,CAACA,CAACA,CAACA,CAACA,CAACA;IAEzBA,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,KAAKA,CAACA,MAAMA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;QACpCA,IAAIA,IAAIA,GAAGA,IAAIA,CAACA,KAAKA,CAACA,CAACA,CAACA,CAACA,CAACA;QAC1BA,EAAEA,CAACA,CAACA,IAAIA,GAAGA,GAAGA,CAACA,CAACA,CAACA;YACbA,GAAGA,GAAGA,IAAIA,CAACA;QACfA,CAACA;IACLA,CAACA;IAEDA,MAAMA,CAACA,GAAGA,CAACA;AACfA,CAACA;AAED,SAAS,GAAG,CAAI,KAAU,EAAE,IAAsB;IAC9CC,IAAIA,GAAGA,GAAGA,IAAIA,CAACA,KAAKA,CAACA,CAACA,CAACA,CAACA,CAACA;IAEzBA,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,KAAKA,CAACA,MAAMA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;QACpCA,IAAIA,IAAIA,GAAGA,IAAIA,CAACA,KAAKA,CAACA,CAACA,CAACA,CAACA,CAACA;QAC1BA,EAAEA,CAACA,CAACA,IAAIA,GAAGA,GAAGA,CAACA,CAACA,CAACA;YACbA,GAAGA,GAAGA,IAAIA,CAACA;QACfA,CAACA;IACLA,CAACA;IAEDA,MAAMA,CAACA,GAAGA,CAACA;AACfA,CAACA;AAED,SAAS,iBAAiB;IACtBC,IAAIA,MAAMA,GAAGA,EAAEA,CAACA;IAChBA,MAAMA,IAAIA,iCAAiCA,CAACA;IAC5CA,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,IAAIA,UAAUA,CAACA,UAAUA,CAACA,cAAcA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;QAC7DA,EAAEA,CAACA,CAACA,CAACA,CAACA,CAACA,CAACA;YACJA,MAAMA,IAAIA,IAAIA,CAACA;QACnBA,CAACA;QAEDA,EAAEA,CAACA,CAACA,CAACA,GAAGA,UAAUA,CAACA,UAAUA,CAACA,eAAeA,CAACA,CAACA,CAACA;YAC5CA,MAAMA,IAAIA,GAAGA,CAACA;QAClBA,CAACA;QACDA,IAAIA,CAACA,CAACA;YACFA,MAAMA,IAAIA,UAAUA,CAACA,WAAWA,CAACA,OAAOA,CAACA,CAACA,CAACA,CAACA,MAAMA,CAACA;QACvDA,CAACA;IACLA,CAACA;IACDA,MAAMA,IAAIA,QAAQA,CAACA;IAEnBA,MAAMA,IAAIA,gEAAgEA,CAACA;IAC3EA,MAAMA,IAAIA,+CAA+CA,CAACA;IAS1DA,MAAMA,IAAIA,eAAeA,CAACA;IAE1BA,MAAMA,CAACA,MAAMA,CAACA;AAClBA,CAACA;AAED,SAAS,wBAAwB;IAC7BC,IAAIA,MAAMA,GAAGA,2CAA2CA,GACpDA,MAAMA,GACNA,yBAAyBA,GACzBA,0CAA0CA,CAACA;IAE/CA,IAAIA,CAASA,CAACA;IACdA,IAAIA,QAAQA,GAAqDA,EAAEA,CAACA;IAEpEA,GAAGA,CAACA,CAACA,CAACA,GAAGA,UAAUA,CAACA,UAAUA,CAACA,YAAYA,EAAEA,CAACA,IAAIA,UAAUA,CAACA,UAAUA,CAACA,WAAWA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;QACvFA,QAAQA,CAACA,IAAIA,CAACA,EAAEA,IAAIA,EAAEA,CAACA,EAAEA,IAAIA,EAAEA,UAAUA,CAACA,WAAWA,CAACA,OAAOA,CAACA,CAACA,CAACA,EAAEA,CAACA,CAACA;IACxEA,CAACA;IAEDA,QAAQA,CAACA,IAAIA,CAACA,UAACA,CAACA,EAAEA,CAACA,IAAKA,OAAAA,CAACA,CAACA,IAAIA,CAACA,aAAaA,CAACA,CAACA,CAACA,IAAIA,CAACA,EAA5BA,CAA4BA,CAACA,CAACA;IAEtDA,MAAMA,IAAIA,sGAAsGA,CAACA;IAEjHA,IAAIA,cAAcA,GAAGA,GAAGA,CAACA,QAAQA,EAAEA,UAAAA,CAAIA,IAACA,OAAAA,CAACA,CAACA,IAAIA,CAACA,MAAMA,EAAbA,CAAaA,CAACA,CAACA;IACvDA,IAAIA,cAAcA,GAAGA,GAAGA,CAACA,QAAQA,EAAEA,UAAAA,CAAIA,IAACA,OAAAA,CAACA,CAACA,IAAIA,CAACA,MAAMA,EAAbA,CAAaA,CAACA,CAACA;IACvDA,MAAMA,IAAIA,mCAAmCA,CAACA;IAG9CA,GAAGA,CAACA,CAACA,CAACA,GAAGA,cAAcA,EAAEA,CAACA,IAAIA,cAAcA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;QAChDA,IAAIA,iBAAiBA,GAAGA,UAAUA,CAACA,cAAcA,CAACA,KAAKA,CAACA,QAAQA,EAAEA,UAAAA,CAAIA,IAACA,OAAAA,CAACA,CAACA,IAAIA,CAACA,MAAMA,KAAKA,CAACA,EAAnBA,CAAmBA,CAACA,CAACA;QAC5FA,EAAEA,CAACA,CAACA,iBAAiBA,CAACA,MAAMA,GAAGA,CAACA,CAACA,CAACA,CAACA;YAC/BA,MAAMA,IAAIA,qBAAqBA,GAAGA,CAACA,GAAGA,GAAGA,CAACA;YAC1CA,MAAMA,IAAIA,wBAAwBA,CAACA,iBAAiBA,EAAEA,CAACA,EAAEA,kBAAkBA,CAACA,CAACA;QACjFA,CAACA;IACLA,CAACA;IAEDA,MAAMA,IAAIA,8DAA8DA,CAACA;IACzEA,MAAMA,IAAIA,mBAAmBA,CAACA;IAC9BA,MAAMA,IAAIA,eAAeA,CAACA;IAE1BA,MAAMA,IAAIA,WAAWA,CAACA;IACtBA,MAAMA,IAAIA,GAAGA,CAACA;IAEdA,MAAMA,CAACA,MAAMA,CAACA;AAClBA,CAACA;AAED,SAAS,cAAc,CAAC,IAA2B;IAC/CC,GAAGA,CAACA,CAACA,GAAGA,CAACA,IAAIA,IAAIA,UAAUA,CAACA,UAAUA,CAACA,CAACA,CAACA;QACrCA,EAAEA,CAACA,CAAMA,UAAUA,CAACA,UAAUA,CAACA,IAAIA,CAACA,KAAKA,IAAIA,CAACA,CAACA,CAACA;YAC5CA,MAAMA,CAACA,IAAIA,CAACA;QAChBA,CAACA;IACLA,CAACA;IAEDA,MAAMA,IAAIA,KAAKA,EAAEA,CAACA;AACtBA,CAACA;AAED,SAAS,eAAe;IACpBC,IAAIA,MAAMA,GAAGA,EAAEA,CAACA;IAEhBA,MAAMA,IAAIA,+CAA+CA,CAACA;IAE1DA,MAAMA,IAAIA,yBAAyBA,CAACA;IACpCA,MAAMA,IAAIA,uGAAuGA,CAACA;IAClHA,MAAMA,IAAIA,8DAA8DA,CAACA;IAEzEA,MAAMA,IAAIA,qCAAqCA,CAACA;IAEhDA,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,WAAWA,CAACA,MAAMA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;QAC1CA,IAAIA,UAAUA,GAAGA,WAAWA,CAACA,CAACA,CAACA,CAACA;QAEhCA,MAAMA,IAAIA,8BAA8BA,GAAGA,oBAAoBA,CAACA,UAAUA,CAACA,GAAGA,IAAIA,CAACA;QACnFA,MAAMA,IAAIA,sBAAsBA,GAAGA,oBAAoBA,CAACA,UAAUA,CAACA,GAAGA,IAAIA,GAAGA,UAAUA,CAACA,IAAIA,GAAGA,gBAAgBA,CAACA;IACpHA,CAACA;IAEDA,MAAMA,IAAIA,4EAA4EA,CAACA;IACvFA,MAAMA,IAAIA,eAAeA,CAACA;IAC1BA,MAAMA,IAAIA,eAAeA,CAACA;IAE1BA,MAAMA,IAAIA,2CAA2CA,CAACA;IACtDA,MAAMA,IAAIA,mDAAmDA,CAACA;IAE9DA,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,WAAWA,CAACA,MAAMA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;QAC1CA,IAAIA,UAAUA,GAAGA,WAAWA,CAACA,CAACA,CAACA,CAACA;QAChCA,MAAMA,IAAIA,eAAeA,GAAGA,oBAAoBA,CAACA,UAAUA,CAACA,GAAGA,SAASA,GAAGA,UAAUA,CAACA,IAAIA,GAAGA,aAAaA,CAACA;IAC/GA,CAACA;IAEDA,MAAMA,IAAIA,OAAOA,CAACA;IAElBA,MAAMA,IAAIA,OAAOA,CAACA;IAElBA,MAAMA,CAACA,MAAMA,CAACA;AAClBA,CAACA;AAED,IAAI,mBAAmB,GAAG,aAAa,EAAE,CAAC;AAC1C,IAAI,gBAAgB,GAAG,wBAAwB,EAAE,CAAC;AAClD,IAAI,MAAM,GAAG,cAAc,EAAE,CAAC;AAC9B,IAAI,gBAAgB,GAAG,wBAAwB,EAAE,CAAC;AAClD,IAAI,OAAO,GAAG,eAAe,EAAE,CAAC;AAChC,IAAI,SAAS,GAAG,iBAAiB,EAAE,CAAC;AAEpC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,mBAAmB,EAAE,GAAG,4DAA4D,EAAE,mBAAmB,EAAE,KAAK,CAAC,CAAC;AACpI,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,mBAAmB,EAAE,GAAG,wDAAwD,EAAE,gBAAgB,EAAE,KAAK,CAAC,CAAC;AAC7H,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,mBAAmB,EAAE,GAAG,oDAAoD,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;AAC/G,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,mBAAmB,EAAE,GAAG,wDAAwD,EAAE,gBAAgB,EAAE,KAAK,CAAC,CAAC;AAC7H,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,mBAAmB,EAAE,GAAG,qDAAqD,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;AACjH,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,mBAAmB,EAAE,GAAG,iDAAiD,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC"} >>>>>>> f41e8c3... Rename 'block' to 'body'. +======= +{"version":3,"file":"SyntaxGenerator.js","sourceRoot":"","sources":["file:///C:/VSPro_1/src/typescript/public_cyrusn/src/compiler/sys.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/core/errors.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/core/arrayUtilities.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/core/stringUtilities.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/syntax/syntaxKind.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/syntax/syntaxFacts.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/syntax/SyntaxGenerator.ts"],"names":["getWScriptSystem","getWScriptSystem.readFile","getWScriptSystem.writeFile","getNodeSystem","getNodeSystem.readFile","getNodeSystem.writeFile","getNodeSystem.fileChanged","TypeScript","TypeScript.Errors","TypeScript.Errors.constructor","TypeScript.Errors.argument","TypeScript.Errors.argumentOutOfRange","TypeScript.Errors.argumentNull","TypeScript.Errors.abstract","TypeScript.Errors.notYetImplemented","TypeScript.Errors.invalidOperation","TypeScript.ArrayUtilities","TypeScript.ArrayUtilities.constructor","TypeScript.ArrayUtilities.sequenceEquals","TypeScript.ArrayUtilities.contains","TypeScript.ArrayUtilities.distinct","TypeScript.ArrayUtilities.last","TypeScript.ArrayUtilities.lastOrDefault","TypeScript.ArrayUtilities.firstOrDefault","TypeScript.ArrayUtilities.first","TypeScript.ArrayUtilities.sum","TypeScript.ArrayUtilities.select","TypeScript.ArrayUtilities.where","TypeScript.ArrayUtilities.any","TypeScript.ArrayUtilities.all","TypeScript.ArrayUtilities.binarySearch","TypeScript.ArrayUtilities.createArray","TypeScript.ArrayUtilities.grow","TypeScript.ArrayUtilities.copy","TypeScript.ArrayUtilities.indexOf","TypeScript.StringUtilities","TypeScript.StringUtilities.constructor","TypeScript.StringUtilities.isString","TypeScript.StringUtilities.endsWith","TypeScript.StringUtilities.startsWith","TypeScript.StringUtilities.repeat","TypeScript.SyntaxKind","TypeScript.SyntaxFacts","TypeScript.SyntaxFacts.getTokenKind","TypeScript.SyntaxFacts.getText","TypeScript.SyntaxFacts.isAnyKeyword","TypeScript.SyntaxFacts.isAnyPunctuation","TypeScript.SyntaxFacts.isPrefixUnaryExpressionOperatorToken","TypeScript.SyntaxFacts.isBinaryExpressionOperatorToken","TypeScript.SyntaxFacts.isAssignmentOperatorToken","TypeScript.SyntaxFacts.isType","firstKind","getStringWithoutSuffix","getNameWithoutSuffix","getType","camelCase","getSafeName","generateConstructorFunction","generateSyntaxInterfaces","generateSyntaxInterface","generateNodes","isInterface","generateWalker","firstEnumName","groupBy","generateKeywordCondition","min","max","generateUtilities","generateScannerUtilities","syntaxKindName","generateVisitor"],"mappings":"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"} +>>>>>>> 57d7f11... Add support for parsing async/await in fidelity. diff --git a/src/services/syntax/constants.ts b/src/services/syntax/constants.ts index 87d4a6a2c77..43c4edd62fd 100644 --- a/src/services/syntax/constants.ts +++ b/src/services/syntax/constants.ts @@ -6,19 +6,21 @@ module TypeScript { DisallowIn = 1 << 1, Yield = 1 << 2, GeneratorParameter = 1 << 3, + Async = 1 << 4, - Mask = 0xF + Mask = 0x1F } export enum SyntaxNodeConstants { None = 0, - // The first four bit of the flags are used to store parser context flags. - // The width of the node is stored in the remainder of the int. This allows us up to 128MB - // for a node by using all 27 bits. However, in the common case, we'll use less than 27 bits - // for the width. Thus, the info will be stored in a single int in chakra. - DataComputed = 1 << 4, // 0000 0000 0000 0000 0000 0000 0001 0000 - IncrementallyUnusableMask = 1 << 5, // 0000 0000 0000 0000 0000 0000 0010 0000 - FullWidthShift = 1 << 6, // 1111 1111 1111 1111 1111 1111 1100 0000 + // The first five bit of the flags are used to store parser context flags. The next bit + // marks if we've computed the transitive data for the node. The next bit marks if the node + // is incrementally unusable. + // + // The width of the node is stored in the remainder of the number. + DataComputed = 1 << 5, // 0000 0000 0000 0000 0000 0000 0010 0000 + IncrementallyUnusableMask = 1 << 6, // 0000 0000 0000 0000 0000 0000 0100 0000 + FullWidthShift = 1 << 7, // 1111 1111 1111 1111 1111 1111 1000 0000 } } \ No newline at end of file diff --git a/src/services/syntax/parser.ts b/src/services/syntax/parser.ts index 53f4608ff57..16ed9f2b9a5 100644 --- a/src/services/syntax/parser.ts +++ b/src/services/syntax/parser.ts @@ -208,6 +208,127 @@ module TypeScript.Parser { var _skippedTokens: ISyntaxToken[] = undefined; + function setContextFlag(val: boolean, flag: ParserContextFlags) { + if (val) { + contextFlags |= flag; + } + else { + contextFlags &= ~flag; + } + } + + function setStrictModeContext(val: boolean) { + setContextFlag(val, ParserContextFlags.StrictMode); + } + + function setDisallowInContext(val: boolean) { + setContextFlag(val, ParserContextFlags.DisallowIn); + } + + function setYieldContext(val: boolean) { + setContextFlag(val, ParserContextFlags.Yield); + } + + function setGeneratorParameterContext(val: boolean) { + setContextFlag(val, ParserContextFlags.GeneratorParameter); + } + + function setAsyncContext(val: boolean) { + setContextFlag(val, ParserContextFlags.Async); + } + + function inStrictModeContext() { + return (contextFlags & ParserContextFlags.StrictMode) !== 0; + } + + function inDisallowInContext() { + return (contextFlags & ParserContextFlags.DisallowIn) !== 0; + } + + function inYieldContext() { + return (contextFlags & ParserContextFlags.Yield) !== 0; + } + + function inGeneratorParameterContext() { + return (contextFlags & ParserContextFlags.GeneratorParameter) !== 0; + } + + function inAsyncContext() { + return (contextFlags & ParserContextFlags.Async) !== 0; + } + + function allowInAnd(func: () => T): T { + if (inDisallowInContext()) { + setDisallowInContext(false); + var result = func(); + setDisallowInContext(true); + return result; + } + + // no need to do anything special if 'in' is already allowed. + return func(); + } + + function disallowInAnd(func: () => T): T { + if (inDisallowInContext()) { + // no need to do anything special if 'in' is already disallowed. + return func(); + } + + setDisallowInContext(true); + var result = func(); + setDisallowInContext(false); + return result; + } + + function enterYieldContextAnd(func: () => T): T { + if (inYieldContext()) { + // no need to do anything special if we're already in the [Yield] context. + return func(); + } + + setYieldContext(true); + var result = func(); + setYieldContext(false); + return result; + } + + function exitYieldContextAnd(func: () => T): T { + if (inYieldContext()) { + setYieldContext(false); + var result = func(); + setYieldContext(true); + return result; + } + + // no need to do anything special if we're not in the [Yield] context. + return func(); + } + + function enterAsyncContextAnd(func: () => T): T { + if (inAsyncContext()) { + // no need to do anything special if we're already in the [Async] context. + return func(); + } + + setAsyncContext(true); + var result = func(); + setAsyncContext(false); + return result; + } + + function exitAsyncContextAnd(func: () => T): T { + if (inAsyncContext()) { + setAsyncContext(false); + var result = func(); + setAsyncContext(true); + return result; + } + + // no need to do anything special if we're not in the [Async] context. + return func(); + } + function parseSyntaxTree(_source: IParserSource, isDeclaration: boolean): SyntaxTree { // First, set up our state. fileName = _source.fileName; @@ -418,6 +539,12 @@ module TypeScript.Parser { return false; } + // If we have an 'await' keyword, and we're in the [async] context, then 'await' is + // considered a keyword and is not an identifier. + if (tokenKind === SyntaxKind.AwaitKeyword && inAsyncContext()) { + return false; + } + // Keywords are only identifiers if they're FutureReservedStrictWords and we're in // strict mode. *Or* if it's a typescript 'keyword'. if (tokenKind >= SyntaxKind.FirstFutureReservedStrictKeyword) { @@ -626,47 +753,6 @@ module TypeScript.Parser { throw Errors.invalidOperation(); } - function setContextFlag(val: boolean, flag: ParserContextFlags) { - if (val) { - contextFlags |= flag; - } - else { - contextFlags &= ~flag; - } - } - - function setStrictModeContext(val: boolean) { - setContextFlag(val, ParserContextFlags.StrictMode); - } - - function setDisallowInContext(val: boolean) { - setContextFlag(val, ParserContextFlags.DisallowIn); - } - - function setYieldContext(val: boolean) { - setContextFlag(val, ParserContextFlags.Yield); - } - - function setGeneratorParameterContext(val: boolean) { - setContextFlag(val, ParserContextFlags.GeneratorParameter); - } - - function inStrictModeContext() { - return (contextFlags & ParserContextFlags.StrictMode) !== 0; - } - - function inDisallowInContext() { - return (contextFlags & ParserContextFlags.DisallowIn) !== 0; - } - - function inYieldContext() { - return (contextFlags & ParserContextFlags.Yield) !== 0; - } - - function inGeneratorParameterContext() { - return (contextFlags & ParserContextFlags.GeneratorParameter) !== 0; - } - function parseSourceUnit(): SourceUnitSyntax { // Note: saving and restoring the 'isInStrictMode' state is not really necessary here // (as it will never be read afterwards). However, for symmetry with the rest of the @@ -976,54 +1062,6 @@ module TypeScript.Parser { return isPropertyName(/*peekToken:*/ 0, inErrorRecovery); } - - function allowInAnd(func: () => T): T { - if (inDisallowInContext()) { - setDisallowInContext(false); - var result = func(); - setDisallowInContext(true); - return result; - } - - // no need to do anything special if 'in' is already allowed. - return func(); - } - - function disallowInAnd(func: () => T): T { - if (inDisallowInContext()) { - // no need to do anything special if 'in' is already disallowed. - return func(); - } - - setDisallowInContext(true); - var result = func(); - setDisallowInContext(false); - return result; - } - - function enterYieldContextAnd(func: () => T): T { - if (inYieldContext()) { - // no need to do anything special if we're already in the [Yield] context. - return func(); - } - - setYieldContext(true); - var result = func(); - setYieldContext(false); - return result; - } - - function exitYieldContextAnd(func: () => T): T { - if (inYieldContext()) { - setYieldContext(false); - var result = func(); - setYieldContext(true); - return result; - } - - // no need to do anything special if we're not in the [Yield] context. - return func(); - } function tryParseEnumElementEqualsValueClause(): EqualsValueClauseSyntax { return isEqualsValueClause(/*inParameter*/ false) ? allowInAnd(parseEqualsValueClause) : undefined; @@ -1051,6 +1089,7 @@ module TypeScript.Parser { case SyntaxKind.ProtectedKeyword: case SyntaxKind.StaticKeyword: case SyntaxKind.DeclareKeyword: + case SyntaxKind.AsyncKeyword: return true; } @@ -1059,23 +1098,39 @@ module TypeScript.Parser { function isModifier(token: ISyntaxToken, index: number): boolean { if (isModifierKind(token.kind)) { - // These are modifiers only if we see an actual keyword, identifier, string literal - // or number following. - // - // [ is for: static [a: number] ... - // [ is for: static [computedProp()] ... + // Because modifiers are also identifiers, we only want to consider something to + // be truly a modifier if the thing following it is something that can be modified. var nextToken = peekToken(index + 1); var nextTokenKind = nextToken.kind; switch (nextTokenKind) { + // public foo' + // 'public' is a modifier. case SyntaxKind.IdentifierName: + + // public [a: number]: string + // 'public' is a modifier here. case SyntaxKind.OpenBracketToken: + + // public 0 + // 'public' is def a modifier here. case SyntaxKind.NumericLiteral: + + // public "0" + // 'public' is def a modifier here. case SyntaxKind.StringLiteral: + + // public `0` + // 'public' is def a modifier here. case SyntaxKind.NoSubstitutionTemplateToken: + + // public * foo + // 'public' is def a modifier here. case SyntaxKind.AsteriskToken: return true; default: + // public static or public class + // 'public' is def a modifier here. return SyntaxFacts.isAnyKeyword(nextTokenKind); } } @@ -1190,15 +1245,15 @@ module TypeScript.Parser { function parseGetAccessor(modifiers: ISyntaxToken[], getKeyword: ISyntaxToken): GetAccessorSyntax { return new GetAccessorSyntax(contextFlags, modifiers, consumeToken(getKeyword), parsePropertyName(), - parseCallSignature(/*requireCompleteTypeParameterList:*/ false, /*yieldAndGeneratorParameterContext:*/ false), - parseFunctionBody(/*isGenerator:*/ false)); + parseCallSignature(/*requireCompleteTypeParameterList:*/ false, /*yieldAndGeneratorParameterContext:*/ false, /*asyncContext:*/ false), + parseFunctionBody(/*isGenerator:*/ false, /*asyncContext:*/ false)); } function parseSetAccessor(modifiers: ISyntaxToken[], setKeyword: ISyntaxToken): SetAccessorSyntax { return new SetAccessorSyntax(contextFlags, modifiers, consumeToken(setKeyword), parsePropertyName(), - parseCallSignature(/*requireCompleteTypeParameterList:*/ false, /*yieldAndGeneratorParameterContext:*/ false), - parseFunctionBody(/*isGenerator:*/ false)); + parseCallSignature(/*requireCompleteTypeParameterList:*/ false, /*yieldAndGeneratorParameterContext:*/ false, /*asyncContext:*/ false), + parseFunctionBody(/*isGenerator:*/ false, /*asyncContext:*/ false)); } function isClassElement(inErrorRecovery: boolean): boolean { @@ -1326,21 +1381,32 @@ module TypeScript.Parser { return new ConstructorDeclarationSyntax(contextFlags, parseModifiers(), eatToken(SyntaxKind.ConstructorKeyword), - parseCallSignature(/*requireCompleteTypeParameterList:*/ false, /*yieldAndGeneratorParameterContext:*/ false), - parseFunctionBody(/*isGenerator:*/ false)); + parseCallSignature(/*requireCompleteTypeParameterList:*/ false, /*yieldAndGeneratorParameterContext:*/ false, /*asyncContext:*/ false), + parseFunctionBody(/*isGenerator:*/ false, /*asyncContext:*/ false)); } function parseMemberFunctionDeclaration(modifiers: ISyntaxToken[], asteriskToken: ISyntaxToken, propertyName: IPropertyNameSyntax): MemberFunctionDeclarationSyntax { // Note: if we see an arrow after the close paren, then try to parse out a function // block anyways. It's likely the user just though '=> expr' was legal anywhere a // block was legal. + var asyncContext = containsAsync(modifiers); var isGenerator = asteriskToken !== undefined; return new MemberFunctionDeclarationSyntax(contextFlags, modifiers, asteriskToken, propertyName, - parseCallSignature(/*requireCompleteTypeParameterList:*/ false, /*yieldAndGeneratorParameterContext:*/ isGenerator), - parseFunctionBody(isGenerator)); + parseCallSignature(/*requireCompleteTypeParameterList:*/ false, /*yieldAndGeneratorParameterContext:*/ isGenerator, /*asyncContext:*/ asyncContext), + parseFunctionBody(isGenerator, asyncContext)); + } + + function containsAsync(modifiers: ISyntaxToken[]): boolean { + for (var i = 0, n = modifiers.length; i < n; i++) { + if (modifiers[i].kind === SyntaxKind.AsyncKeyword) { + return true; + } + } + + return false; } function parseMemberVariableDeclaration(modifiers: ISyntaxToken[], propertyName: IPropertyNameSyntax): MemberVariableDeclarationSyntax { @@ -1371,23 +1437,25 @@ module TypeScript.Parser { } function parseFunctionDeclarationWorker(modifiers: ISyntaxToken[], functionKeyword: ISyntaxToken, asteriskToken: ISyntaxToken): FunctionDeclarationSyntax { - // FunctionDeclaration[Yield, Default] : // function BindingIdentifier[?Yield] ( FormalParameters ) { FunctionBody } + // FunctionDeclaration[Yield, Default] : + // function BindingIdentifier[?Yield] ( FormalParameters ) { FunctionBody } + // GeneratorDeclaration[Yield, Default] : // function * BindingIdentifier[?Yield](FormalParameters[Yield, GeneratorParameter]) { GeneratorBody[Yield] } - + var asyncContext = containsAsync(modifiers); var isGenerator = asteriskToken !== undefined; return new FunctionDeclarationSyntax(contextFlags, modifiers, functionKeyword, asteriskToken, eatIdentifierToken(), - parseCallSignature(/*requireCompleteTypeParameterList:*/ false, /*yieldAndGeneratorParameterContext:*/ isGenerator), - parseFunctionBody(isGenerator)); + parseCallSignature(/*requireCompleteTypeParameterList:*/ false, /*yieldAndGeneratorParameterContext:*/ isGenerator, /*asyncContext:*/ asyncContext), + parseFunctionBody(isGenerator, asyncContext)); } - function parseFunctionBody(isGenerator: boolean): BlockSyntax | ExpressionBody | ISyntaxToken { + function parseFunctionBody(isGenerator: boolean, asyncContext: boolean): BlockSyntax | ExpressionBody | ISyntaxToken { return isBlockOrArrow() - ? parseFunctionBlockOrExpressionBody(/*yieldContext:*/ isGenerator) + ? parseFunctionBlockOrExpressionBody(/*yieldContext:*/ isGenerator, /*asyncContext:*/ asyncContext) : eatExplicitOrAutomaticSemicolon(/*allowWithoutNewline:*/ false); } @@ -1485,7 +1553,7 @@ module TypeScript.Parser { // A call signature for a type member can both use 'yield' as a parameter name, and // does not have parameter initializers. So we can pass 'false' for both [Yield] // and [GeneratorParameter]. - return parseCallSignature(/*requireCompleteTypeParameterList:*/ false, /*yieldAndGeneratorParameterContext:*/ false); + return parseCallSignature(/*requireCompleteTypeParameterList:*/ false, /*yieldAndGeneratorParameterContext:*/ false, /*asyncContext:*/ false); } else if (isConstructSignature()) { return parseConstructSignature(); @@ -1513,7 +1581,7 @@ module TypeScript.Parser { // Construct signatures have no [Yield] or [GeneratorParameter] restrictions. return new ConstructSignatureSyntax(contextFlags, eatToken(SyntaxKind.NewKeyword), - parseCallSignature(/*requireCompleteTypeParameterList:*/ false, /*yieldAndGeneratorParameterContext:*/ false)); + parseCallSignature(/*requireCompleteTypeParameterList:*/ false, /*yieldAndGeneratorParameterContext:*/ false, /*asyncContext:*/ false)); } function parseIndexSignature(): IndexSignatureSyntax { @@ -1529,7 +1597,7 @@ module TypeScript.Parser { return new MethodSignatureSyntax(contextFlags, propertyName, questionToken, - parseCallSignature(/*requireCompleteTypeParameterList:*/ false, /*yieldAndGeneratorParameterContext:*/ false)); + parseCallSignature(/*requireCompleteTypeParameterList:*/ false, /*yieldAndGeneratorParameterContext:*/ false, /*asyncContext:*/ false)); } function parsePropertySignature(propertyName: IPropertyNameSyntax, questionToken: ISyntaxToken): PropertySignatureSyntax { @@ -2196,10 +2264,22 @@ module TypeScript.Parser { return true; case SyntaxKind.YieldKeyword: - // Yield always starts an expression. Either it is an identifier (in which case + // 'yield' always starts an expression. Either it is an identifier (in which case // it is definitely an expression). Or it's a keyword (either because we're in // a generator, or in strict mode (or both)) and it started a yield expression. return true; + + case SyntaxKind.AwaitKeyword: + // 'await' always starts an expression. Either it is an identifier (in which case + // it is definitely an expression). Or it's a keyword and it started an await + // expression. + return true; + + case SyntaxKind.AsyncKeyword: + // 'async' always starts an expression. Either it is an identifier (in which case + // it is definitely an expression). Or it's a keyword and it started an async + // function/arrow expression. + return true; } return isIdentifier(currentToken); @@ -2449,6 +2529,40 @@ module TypeScript.Parser { return parseConditionalExpressionRest(leftOperand); } + function parsePossibleAwaitExpression(awaitKeyword: ISyntaxToken): IUnaryExpressionSyntax { + if (inAsyncContext()) { + // If we're in an async context, then 'await' definitely starts an await expression. + return parseAwaitExpression(awaitKeyword); + } + + // We're in a context where 'await expr' is not allowed. However, if we can + // definitely tell that the user was trying to parse a 'await expr' and not + // just a normal expr that start with a 'await' identifier, then parse out + // an 'await expr'. We can then report an error later that they are only + // allowed in async contexts. + // + // for example, if we see 'await(foo)', then we'll have to treat that as an + // invocation expression of something called 'await'. However, if we have + // 'await foo' then that is not legal as a normal expression, so we can + // definitely recognize this as a await expression. + // + // for now we just check if the next token is an identifier. More heuristics + // can be added here later as necessary. We just need to make sure that we + // don't accidently consume something legal. + if (isUnambiguouslyYieldOrAwaitExpression()) { + return parseAwaitExpression(awaitKeyword); + } + + // Not an 'await' expression. Parse this with our normal postfix parsing rules. + return tryParsePostfixExpressionOrHigher(awaitKeyword, /*force:*/ true); + } + + function parseAwaitExpression(awaitKeyword: ISyntaxToken): AwaitExpressionSyntax { + return new AwaitExpressionSyntax(contextFlags, + consumeToken(awaitKeyword), + parseAssignmentExpressionOrHigher()); + } + function isYieldExpression(_currentToken: ISyntaxToken): boolean { if (_currentToken.kind === SyntaxKind.YieldKeyword) { // If we have a 'yield' keyword, and htis is a context where yield expressions are @@ -2463,29 +2577,69 @@ module TypeScript.Parser { return true; } - // We're in a context where 'yield expr' is not allowed. However, if we can - // definitely tell that the user was trying to parse a 'yield expr' and not - // just a normal expr that start with a 'yield' identifier, then parse out - // a 'yield expr'. We can then report an error later that they are only - // allowed in generator expressions. - // - // for example, if we see 'yield(foo)', then we'll have to treat that as an - // invocation expression of something called 'yield'. However, if we have - // 'yield foo' then that is not legal as a normal expression, so we can - // definitely recognize this as a yield expression. - // - // for now we just check if the next token is an identifier. More heuristics - // can be added here later as necessary. We just need to make sure that we - // don't accidently consume something legal. - var token1 = peekToken(1); - if (!isOnDifferentLineThanPreviousToken(token1) && isIdentifier(token1)) { - return true; - } + return isUnambiguouslyYieldOrAwaitExpression(); } return false; } + function isUnambiguouslyYieldOrAwaitExpression() { + // We're in a context where 'yield expr' or 'await expr' is not allowed. However, if + // we can definitely tell that the user was trying to parse one of these then parse it + // out and report an error later in the grammar checker. + // + // for example, if we see 'yield(foo)', then we'll have to treat that as an + // invocation expression of something called 'yield'. However, if we have + // 'yield foo' then that is not legal as a normal expression, so we can + // definitely recognize this as a yield expression. + var token1 = peekToken(1); + + if (isOnDifferentLineThanPreviousToken(token1)) { + // Next token is on the next line. Thanks to ASI, this might start some other + // construct. Can't assume this is a yield or await expr. + return false; + } + + // 'await a' or 'yield a'. Definitely a yield/await expression. C + if (isIdentifier(token1)) { + return true; + } + + var currentTokenKind = token1.kind; + switch (currentTokenKind) { + case SyntaxKind.ThisKeyword: + case SyntaxKind.TrueKeyword: + case SyntaxKind.FalseKeyword: + case SyntaxKind.NullKeyword: + case SyntaxKind.NumericLiteral: + case SyntaxKind.StringLiteral: + case SyntaxKind.FunctionKeyword: + case SyntaxKind.OpenBraceToken: + case SyntaxKind.NewKeyword: + return true + case SyntaxKind.NoSubstitutionTemplateToken: + case SyntaxKind.TemplateStartToken: + // yield `foo` + // This is a tagged template expressoin. + return false; + case SyntaxKind.SlashToken: + case SyntaxKind.SlashEqualsToken: + // yield / foo + // This is a divide expression. + return false; + case SyntaxKind.OpenBracketToken: + // yield[foo] + // This is a indexed access expression. + return false; + case SyntaxKind.OpenParenToken: + // yield(foo) + // This is an invocation expression. + return false; + default: + return false; + } + } + function parseYieldExpression(yieldKeyword: ISyntaxToken): YieldExpressionSyntax { // YieldExpression[In] : // yield @@ -2524,10 +2678,16 @@ module TypeScript.Parser { case SyntaxKind.PlusPlusToken: case SyntaxKind.MinusMinusToken: return new PrefixUnaryExpressionSyntax(contextFlags, consumeToken(_currentToken), tryParseUnaryExpressionOrHigher(currentToken(), /*force:*/ true)); - case SyntaxKind.TypeOfKeyword: return parseTypeOfExpression(_currentToken); - case SyntaxKind.VoidKeyword: return parseVoidExpression(_currentToken); - case SyntaxKind.DeleteKeyword: return parseDeleteExpression(_currentToken); - case SyntaxKind.LessThanToken: return parseCastExpression(_currentToken); + case SyntaxKind.TypeOfKeyword: + return parseTypeOfExpression(_currentToken); + case SyntaxKind.VoidKeyword: + return parseVoidExpression(_currentToken); + case SyntaxKind.DeleteKeyword: + return parseDeleteExpression(_currentToken); + case SyntaxKind.LessThanToken: + return parseCastExpression(_currentToken); + case SyntaxKind.AwaitKeyword: + return parsePossibleAwaitExpression(_currentToken); default: return tryParsePostfixExpressionOrHigher(_currentToken, force); } @@ -2933,6 +3093,12 @@ module TypeScript.Parser { } function tryParsePrimaryExpression(_currentToken: ISyntaxToken, force: boolean): IPrimaryExpressionSyntax { + // Have to check for 'async function' first as 'async' is an identifier and will be + // consumed immediately below this. + if (_currentToken.kind === SyntaxKind.AsyncKeyword && peekToken(1).kind === SyntaxKind.FunctionKeyword) { + return parseFunctionExpression(); + } + if (isIdentifier(_currentToken)) { return eatIdentifierToken(); } @@ -2947,17 +3113,19 @@ module TypeScript.Parser { case SyntaxKind.RegularExpressionLiteral: case SyntaxKind.StringLiteral: return consumeToken(_currentToken); - - case SyntaxKind.FunctionKeyword: return parseFunctionExpression(_currentToken); - case SyntaxKind.OpenBracketToken: return parseArrayLiteralExpression(_currentToken); - case SyntaxKind.OpenBraceToken: return parseObjectLiteralExpression(_currentToken); - case SyntaxKind.OpenParenToken: return parseParenthesizedExpression(_currentToken); - case SyntaxKind.NewKeyword: return parseObjectCreationExpression(_currentToken); - + case SyntaxKind.FunctionKeyword: + return parseFunctionExpression(); + case SyntaxKind.OpenBracketToken: + return parseArrayLiteralExpression(_currentToken); + case SyntaxKind.OpenBraceToken: + return parseObjectLiteralExpression(_currentToken); + case SyntaxKind.OpenParenToken: + return parseParenthesizedExpression(_currentToken); + case SyntaxKind.NewKeyword: + return parseObjectCreationExpression(_currentToken); case SyntaxKind.NoSubstitutionTemplateToken: case SyntaxKind.TemplateStartToken: return parseTemplateExpression(_currentToken); - case SyntaxKind.SlashToken: case SyntaxKind.SlashEqualsToken: // If we see a standalone / or /= and we're expecting an expression, then reparse @@ -3007,23 +3175,36 @@ module TypeScript.Parser { return new VoidExpressionSyntax(contextFlags, consumeToken(voidKeyword), tryParseUnaryExpressionOrHigher(currentToken(), /*force:*/ true)); } - function parseFunctionExpression(functionKeyword: ISyntaxToken): FunctionExpressionSyntax { - return parseFunctionExpressionWorker(consumeToken(functionKeyword), tryEatToken(SyntaxKind.AsteriskToken)); - } - - function parseFunctionExpressionWorker(functionKeyword: ISyntaxToken, asteriskToken: ISyntaxToken) { + function parseFunctionExpression(): FunctionExpressionSyntax { // GeneratorExpression : // function * BindingIdentifier[Yield]opt (FormalParameters[Yield, GeneratorParameter]) { GeneratorBody[Yield] } // FunctionExpression: // function BindingIdentifieropt(FormalParameters) { FunctionBody } - var isGenerator = asteriskToken !== undefined; + var asyncKeyword: ISyntaxToken; + var asteriskToken: ISyntaxToken; return new FunctionExpressionSyntax(contextFlags, - functionKeyword, - asteriskToken, - asteriskToken ? enterYieldContextAnd(eatOptionalIdentifierToken) : eatOptionalIdentifierToken(), - parseCallSignature(/*requireCompleteTypeParameterList:*/ false, /*yieldAndGeneratorParameterContext:*/ isGenerator), - parseFunctionBody(isGenerator)); + asyncKeyword = tryEatToken(SyntaxKind.AsyncKeyword), + eatToken(SyntaxKind.FunctionKeyword), + asteriskToken = tryEatToken(SyntaxKind.AsteriskToken), + tryEatFunctionExpressionIdentifier(!!asteriskToken, !!asyncKeyword), + parseCallSignature(/*requireCompleteTypeParameterList:*/ false, /*yieldAndGeneratorParameterContext:*/ !!asteriskToken, /*asyncContext:*/ !!asyncKeyword), + parseFunctionBody(!!asteriskToken, !!asyncKeyword)); + } + + function tryEatFunctionExpressionIdentifier(yieldContext: boolean, asyncContext: boolean) { + var savedYieldContext = inYieldContext(); + var savedAsyncContext = inAsyncContext(); + + setYieldContext(yieldContext); + setAsyncContext(asyncContext); + + var result = eatOptionalIdentifierToken(); + + setYieldContext(savedYieldContext); + setAsyncContext(savedAsyncContext); + + return result; } function parseObjectCreationExpression(newKeyword: ISyntaxToken): ObjectCreationExpressionSyntax { @@ -3096,7 +3277,7 @@ module TypeScript.Parser { function tryParseParenthesizedArrowFunctionExpression(): ParenthesizedArrowFunctionExpressionSyntax { var tokenKind = currentToken().kind; - if (tokenKind !== SyntaxKind.OpenParenToken && tokenKind !== SyntaxKind.LessThanToken) { + if (tokenKind !== SyntaxKind.AsyncKeyword && tokenKind !== SyntaxKind.OpenParenToken && tokenKind !== SyntaxKind.LessThanToken) { return undefined; } @@ -3134,8 +3315,7 @@ module TypeScript.Parser { } function tryParseParenthesizedArrowFunctionExpressionWorker(requireArrow: boolean): ParenthesizedArrowFunctionExpressionSyntax { - var _currentToken = currentToken(); - // Debug.assert(currentToken.kind === SyntaxKind.OpenParenToken || currentToken.kind === SyntaxKind.LessThanToken); + var asyncKeyword = tryEatToken(SyntaxKind.AsyncKeyword); // From the static semantic section: // 1.If the [Yield] grammar parameter is present for CoverParenthesizedExpressionAndArrowParameterList[Yield] @@ -3144,25 +3324,27 @@ module TypeScript.Parser { // 2.If the [Yield] grammar parameter is not present for CoverParenthesizedExpressionAndArrowParameterList[Yield] // return the result of parsing the lexical token stream matched by CoverParenthesizedExpressionAndArrowParameterList // using ArrowFormalParameters as the goal symbol. - var callSignature = parseCallSignature(/*requireCompleteTypeParameterList:*/ true, /*yieldAndGeneratorParameterContext:*/ inYieldContext()); + var callSignature = parseCallSignature(/*requireCompleteTypeParameterList:*/ true, /*yieldAndGeneratorParameterContext:*/ inYieldContext(), /*asyncContext:*/ !!asyncKeyword); if (requireArrow && currentToken().kind !== SyntaxKind.EqualsGreaterThanToken) { return undefined; } return new ParenthesizedArrowFunctionExpressionSyntax(contextFlags, + asyncKeyword, callSignature, eatToken(SyntaxKind.EqualsGreaterThanToken), - parseArrowFunctionBody()); + parseArrowFunctionBody(!!asyncKeyword)); } - function parseArrowFunctionBody(): BlockSyntax | IExpressionSyntax { + function parseArrowFunctionBody(asyncContext: boolean): BlockSyntax | IExpressionSyntax { // ConciseBody[In] : // [lookahead not in {] AssignmentExpression[?In] // { FunctionBody } if (currentToken().kind === SyntaxKind.OpenBraceToken) { - return parseFunctionBlock(/*allowYield:*/ false, /*equalsGreaterThanToken:*/ undefined); + // arrow functions are never generators, so their bodies are never in the yield context. + return parseFunctionBlock(/*yieldContext:*/ false, /*asyncContext:*/ asyncContext, /*equalsGreaterThanToken:*/ undefined); } // We didn't have a block. However, we may be in an error situation. For example, @@ -3184,11 +3366,11 @@ module TypeScript.Parser { return new BlockSyntax(contextFlags, /*equalsGreaterThanToken*/ undefined, eatToken(SyntaxKind.OpenBraceToken), - parseFunctionBlockStatements(), + parseFunctionBlockStatements(/*yieldContext:*/ false, asyncContext), eatToken(SyntaxKind.CloseBraceToken)); } - return parseAssignmentExpressionOrHigher(); + return asyncContext ? enterAsyncContextAnd(parseAssignmentExpressionOrHigher) : exitAsyncContextAnd(parseAssignmentExpressionOrHigher); } function isSimpleArrowFunctionExpression(_currentToken: ISyntaxToken): boolean { @@ -3199,16 +3381,22 @@ module TypeScript.Parser { return true; } + // 'async a' is always the start of an async arrow function. + if (_currentToken.kind === SyntaxKind.AsyncKeyword && isIdentifier(peekToken(1))) { + return true; + } + return isIdentifier(_currentToken) && peekToken(1).kind === SyntaxKind.EqualsGreaterThanToken; } function parseSimpleArrowFunctionExpression(): SimpleArrowFunctionExpressionSyntax { - // Debug.assert(isSimpleArrowFunctionExpression()); - return new SimpleArrowFunctionExpressionSyntax(contextFlags, - eatSimpleParameter(), + var asyncKeyword: ISyntaxToken; + return new SimpleArrowFunctionExpressionSyntax(contextFlags, + asyncKeyword = tryEatToken(SyntaxKind.AsyncKeyword), + asyncKeyword ? enterAsyncContextAnd(eatSimpleParameter) : exitAsyncContextAnd(eatSimpleParameter), eatToken(SyntaxKind.EqualsGreaterThanToken), - parseArrowFunctionBody()); + parseArrowFunctionBody(/*asyncContext:*/ !!asyncKeyword)); } function isFunctionBlock(): boolean { @@ -3222,14 +3410,20 @@ module TypeScript.Parser { } function isDefinitelyArrowFunctionExpression(): boolean { - var token0 = currentToken(); + var peekIndex = 0; + if (currentToken().kind === SyntaxKind.AsyncKeyword) { + // skip past any 'async' keyword we see. + peekIndex++; + } + + var token0 = peekToken(peekIndex); if (token0.kind !== SyntaxKind.OpenParenToken) { // If it didn't start with an (, then it could be generic. That's too complicated // and we can't say it's 'definitely' an arrow function. return false; } - var token1 = peekToken(1); + var token1 = peekToken(peekIndex + 1); var token1Kind = token1.kind; var token2: ISyntaxToken; @@ -3242,7 +3436,7 @@ module TypeScript.Parser { // To prevent this, we are a little stricter, and we require that we at least see: // "():" or "() =>" or "() {}". Note: the last one is illegal. However it // most likely is a missing => and not a parenthesized expression. - token2 = peekToken(2); + token2 = peekToken(peekIndex + 2); var token2Kind = token2.kind; return token2Kind === SyntaxKind.ColonToken || token2Kind === SyntaxKind.EqualsGreaterThanToken || @@ -3255,7 +3449,7 @@ module TypeScript.Parser { return true; } - token2 = peekToken(2); + token2 = peekToken(peekIndex + 2); token2Kind = token2.kind; if (SyntaxFacts.isAccessibilityModifier(token1Kind)) { @@ -3284,7 +3478,7 @@ module TypeScript.Parser { return true; } - var token3 = peekToken(3); + var token3 = peekToken(peekIndex + 3); var token3Kind = token3.kind; if (token2Kind === SyntaxKind.QuestionToken) { // (id? @@ -3327,14 +3521,19 @@ module TypeScript.Parser { } function isPossiblyArrowFunctionExpression(): boolean { - var token0 = currentToken(); + var peekIndex = 0; + if (currentToken().kind === SyntaxKind.AsyncKeyword) { + peekIndex++; + } + + var token0 = peekToken(peekIndex); if (token0.kind !== SyntaxKind.OpenParenToken) { // If it didn't start with an (, then it could be generic. That's too complicated // and we have to say it's possibly an arrow function. return true; } - var token1 = peekToken(1); + var token1 = peekToken(peekIndex + 1); if (!isIdentifier(token1)) { // All other arrow functions must start with (id @@ -3342,7 +3541,7 @@ module TypeScript.Parser { return false; } - var token2 = peekToken(2); + var token2 = peekToken(peekIndex + 2); var token2Kind = token2.kind; if (token2Kind === SyntaxKind.EqualsToken) { // (id = @@ -3365,7 +3564,7 @@ module TypeScript.Parser { if (token2Kind === SyntaxKind.CloseParenToken) { // (id) - var token3 = peekToken(3); + var token3 = peekToken(peekIndex + 3); if (token3.kind === SyntaxKind.ColonToken) { // (id): // @@ -3400,6 +3599,14 @@ module TypeScript.Parser { // shorthand property assignment. var _currentToken = currentToken(); + if (_currentToken.kind === SyntaxKind.AsyncKeyword) { + // 'async' might start an asynchronous property, or it might just be the name + // of a property. + if (peekToken(1).kind === SyntaxKind.AsteriskToken || isPropertyName(/*peekIndex:*/ 1, inErrorRecovery)) { + return parseFunctionPropertyAssignment(eatToken(SyntaxKind.AsyncKeyword), tryEatToken(SyntaxKind.AsteriskToken), parsePropertyName()); + } + } + if (isIdentifier(_currentToken)) { var token1 = peekToken(1); if (token1.kind !== SyntaxKind.ColonToken && @@ -3414,11 +3621,11 @@ module TypeScript.Parser { // // then this is a shorthand property assignment. Just return the identifier // token as is. - return consumeToken(_currentToken); + return eatIdentifierToken(); } } - // All the rest of the property assignments start with property names or an asterix. + // All the rest of the property assignments start with property names, an asterix. // They are: // id: e // [e1]: e2 @@ -3426,12 +3633,14 @@ module TypeScript.Parser { // [e]() { } // *id() { } // *[e]() { } + // async id() { } + // async [e]() { } if (_currentToken.kind === SyntaxKind.AsteriskToken || isPropertyName(/*peekIndex:*/ 0, inErrorRecovery)) { var asterixToken = tryEatToken(SyntaxKind.AsteriskToken); var propertyName = parsePropertyName(); if (asterixToken !== undefined || isCallSignature(/*peekIndex:*/ 0)) { - return parseFunctionPropertyAssignment(asterixToken, propertyName); + return parseFunctionPropertyAssignment(undefined, asterixToken, propertyName); } else { // PropertyName[?Yield] : AssignmentExpression[In, ?Yield] @@ -3533,13 +3742,13 @@ module TypeScript.Parser { eatToken(SyntaxKind.CloseBracketToken)); } - function parseFunctionPropertyAssignment(asteriskToken: ISyntaxToken, propertyName: IPropertyNameSyntax): FunctionPropertyAssignmentSyntax { - var isGenerator = asteriskToken !== undefined; + function parseFunctionPropertyAssignment(asyncKeyword: ISyntaxToken, asteriskToken: ISyntaxToken, propertyName: IPropertyNameSyntax): FunctionPropertyAssignmentSyntax { return new FunctionPropertyAssignmentSyntax(contextFlags, + asyncKeyword, asteriskToken, propertyName, - parseCallSignature(/*requireCompleteTypeParameterList:*/ false, /*yieldAndGeneratorParameterContext:*/ isGenerator), - parseFunctionBody(isGenerator)); + parseCallSignature(/*requireCompleteTypeParameterList:*/ false, /*yieldAndGeneratorParameterContext:*/ !!asteriskToken, !!asyncKeyword), + parseFunctionBody(!!asteriskToken, !!asyncKeyword)); } function parseArrayLiteralExpression(openBracketToken: ISyntaxToken): ArrayLiteralExpressionSyntax { @@ -3561,7 +3770,7 @@ module TypeScript.Parser { eatToken(SyntaxKind.CloseBraceToken)); } - function parseFunctionBlockOrExpressionBody(_allowYield: boolean): BlockSyntax | ExpressionBody { + function parseFunctionBlockOrExpressionBody(yieldContext: boolean, asyncContext: boolean): BlockSyntax | ExpressionBody { // If we got an errant => then we want to parse what's coming up without requiring an // open brace. We do this because it's not uncommon for people to get confused as to // where/when they can use an => and we want to have good error recovery here. @@ -3574,32 +3783,39 @@ module TypeScript.Parser { } } - return parseFunctionBlock(_allowYield, equalsGreaterThanToken); + return parseFunctionBlock(yieldContext, asyncContext, equalsGreaterThanToken); } - function parseFunctionBlock(_allowYield: boolean, equalsGreaterThanToken: ISyntaxToken): BlockSyntax { + function parseFunctionBlock(yieldContext: boolean, asyncContext: boolean, equalsGreaterThanToken: ISyntaxToken): BlockSyntax { var openBraceToken: ISyntaxToken; return new BlockSyntax(contextFlags, equalsGreaterThanToken, openBraceToken = eatToken(SyntaxKind.OpenBraceToken), - equalsGreaterThanToken || openBraceToken.fullWidth() > 0 - ? _allowYield ? enterYieldContextAnd(parseFunctionBlockStatements) : exitYieldContextAnd(parseFunctionBlockStatements) - : [], + equalsGreaterThanToken || openBraceToken.fullWidth() > 0 ? parseFunctionBlockStatements(yieldContext, asyncContext) : [], eatToken(SyntaxKind.CloseBraceToken)); } - function parseFunctionBlockStatements() { - var savedIsInStrictMode = inStrictModeContext(); + function parseFunctionBlockStatements(yieldContext: boolean, asyncContext: boolean) { + var savedStrictModeContext = inStrictModeContext(); + var savedYieldContext = inYieldContext(); + var savedAsyncContext = inAsyncContext(); + + setYieldContext(yieldContext); + setAsyncContext(asyncContext); + var statements = parseSyntaxList(ListParsingState.Block_Statements, updateStrictModeState); - setStrictModeContext(savedIsInStrictMode); + + setStrictModeContext(savedStrictModeContext); + setYieldContext(savedYieldContext); + setAsyncContext(savedAsyncContext); return statements; } - function parseCallSignature(requireCompleteTypeParameterList: boolean, yieldAndGeneratorParameterContext: boolean): CallSignatureSyntax { + function parseCallSignature(requireCompleteTypeParameterList: boolean, yieldAndGeneratorParameterContext: boolean, asyncContext: boolean): CallSignatureSyntax { return new CallSignatureSyntax(contextFlags, tryParseTypeParameterList(requireCompleteTypeParameterList), - parseParameterList(yieldAndGeneratorParameterContext), + parseParameterList(yieldAndGeneratorParameterContext, asyncContext), parseOptionalTypeAnnotation(/*allowStringLiteral:*/ false)); } @@ -3653,7 +3869,7 @@ module TypeScript.Parser { // have 'Yield' And 'GeneratorParameter' not in sync. i.e. any production calling // this FormalParameters production either always sets both to true, or always sets // both to false. As such we only have a single parameter to represent both. - function parseParameterList(yieldAndGeneratorParameterContext: boolean): ParameterListSyntax { + function parseParameterList(yieldAndGeneratorParameterContext: boolean, asyncContext: boolean): ParameterListSyntax { // FormalParameters[Yield,GeneratorParameter] : // ... // @@ -3672,9 +3888,11 @@ module TypeScript.Parser { var savedYieldContext = inYieldContext(); var savedGeneratorParameterContext = inGeneratorParameterContext(); + var savedAsyncContext = inAsyncContext(); setYieldContext(yieldAndGeneratorParameterContext); setGeneratorParameterContext(yieldAndGeneratorParameterContext); + setAsyncContext(asyncContext); var openParenToken: ISyntaxToken; var result = new ParameterListSyntax(contextFlags, @@ -3684,6 +3902,7 @@ module TypeScript.Parser { setYieldContext(savedYieldContext); setGeneratorParameterContext(savedGeneratorParameterContext); + setAsyncContext(savedAsyncContext); return result; } @@ -3941,7 +4160,7 @@ module TypeScript.Parser { // aren't in the [Yield] or [GeneratorParameter] context. return new FunctionTypeSyntax(contextFlags, tryParseTypeParameterList(/*requireCompleteTypeParameterList:*/ false), - parseParameterList(/*yieldAndGeneratorParameterContext:*/ false), + parseParameterList(/*yieldAndGeneratorParameterContext:*/ false, /*asyncContext:*/ false), eatToken(SyntaxKind.EqualsGreaterThanToken), parseType()); } @@ -3951,7 +4170,7 @@ module TypeScript.Parser { return new ConstructorTypeSyntax(contextFlags, eatToken(SyntaxKind.NewKeyword), tryParseTypeParameterList(/*requireCompleteTypeParameterList:*/ false), - parseParameterList(/*yieldAndGeneratorParameterContext:*/ false), + parseParameterList(/*yieldAndGeneratorParameterContext:*/ false, /*asyncContext:*/ false), eatToken(SyntaxKind.EqualsGreaterThanToken), parseType()); } diff --git a/src/services/syntax/prettyPrinter.ts b/src/services/syntax/prettyPrinter.ts index c75136e89f9..0b65ba0317c 100644 --- a/src/services/syntax/prettyPrinter.ts +++ b/src/services/syntax/prettyPrinter.ts @@ -1027,6 +1027,14 @@ module TypeScript.PrettyPrinter { public visitYieldExpression(node: YieldExpressionSyntax): void { this.appendToken(node.yieldKeyword); this.ensureSpace(); + this.appendToken(node.asterixToken); + this.ensureSpace(); + visitNodeOrToken(this, node.expression); + } + + public visitAwaitExpression(node: AwaitExpressionSyntax): void { + this.appendToken(node.awaitKeyword); + this.ensureSpace(); visitNodeOrToken(this, node.expression); } diff --git a/src/services/syntax/references.ts b/src/services/syntax/references.ts index 5c1a6818ccc..aaba33ca383 100644 --- a/src/services/syntax/references.ts +++ b/src/services/syntax/references.ts @@ -9,9 +9,9 @@ // Scanner depends on SyntaxKind and SyntaxFacts /// /// +/// /// -/// /// /// /// diff --git a/src/services/syntax/scanner.ts b/src/services/syntax/scanner.ts index 14c73f2c6b4..e055740286c 100644 --- a/src/services/syntax/scanner.ts +++ b/src/services/syntax/scanner.ts @@ -202,6 +202,7 @@ module TypeScript.Scanner { public childCount: number; constructor(private _fullStart: number, public kind: SyntaxKind) { + Debug.assert(!isNaN(_fullStart)); } public setFullStart(fullStart: number): void { @@ -236,6 +237,7 @@ module TypeScript.Scanner { private cachedText: string; constructor(private _fullStart: number, public kind: SyntaxKind, private _packedFullWidthAndInfo: number, cachedText: string) { + Debug.assert(!isNaN(_fullStart)); if (cachedText !== undefined) { this.cachedText = cachedText; } @@ -1480,6 +1482,7 @@ module TypeScript.Scanner { } function absolutePosition() { + Debug.assert(!isNaN(_absolutePosition)); return _absolutePosition; } @@ -1551,6 +1554,7 @@ module TypeScript.Scanner { // We're consuming the token that was just fetched from us by the parser. We just // need to move ourselves forward and ditch this token from the sliding window. _absolutePosition += (nodeOrToken).fullWidth(); + Debug.assert(!isNaN(_absolutePosition)); slidingWindow.moveToNextItem(); } else { @@ -1646,7 +1650,7 @@ module TypeScript.Scanner { }; } - var fixedWidthArray = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 4, 5, 8, 8, 7, 6, 2, 4, 5, 7, 3, 8, 2, 2, 10, 3, 4, 6, 6, 4, 5, 4, 3, 6, 3, 4, 5, 4, 5, 5, 4, 6, 7, 6, 5, 10, 9, 3, 7, 7, 9, 6, 6, 5, 3, 7, 11, 7, 3, 6, 7, 6, 3, 6, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 2, 2, 2, 2, 2, 3, 3, 1, 1, 1, 1, 2, 2, 2, 2, 3, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 2, 2, 2, 2, 3, 3, 4, 2, 2, 2, 1, 2]; + var fixedWidthArray = ScannerUtilities.fixedWidthArray; function fixedWidthTokenLength(kind: SyntaxKind) { return fixedWidthArray[kind]; } diff --git a/src/services/syntax/scannerUtilities.generated.ts b/src/services/syntax/scannerUtilities.generated.ts index 97f0093a672..94af9d461bf 100644 --- a/src/services/syntax/scannerUtilities.generated.ts +++ b/src/services/syntax/scannerUtilities.generated.ts @@ -2,6 +2,7 @@ module TypeScript { export module ScannerUtilities { + export var fixedWidthArray = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 4, 5, 8, 8, 7, 6, 2, 4, 5, 7, 3, 8, 2, 2, 10, 3, 4, 6, 6, 4, 5, 4, 3, 6, 3, 4, 5, 4, 5, 5, 4, 6, 7, 6, 5, 10, 9, 3, 7, 7, 9, 6, 6, 5, 3, 5, 5, 7, 11, 7, 3, 6, 7, 6, 3, 6, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 2, 2, 2, 2, 2, 3, 3, 1, 1, 1, 1, 2, 2, 2, 2, 3, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 2, 2, 2, 2, 3, 3, 4, 2, 2, 2, 1, 2]; export function identifierKind(str: string, start: number, length: number): SyntaxKind { switch (length) { case 2: // do, if, in @@ -47,8 +48,14 @@ module TypeScript { case CharacterCodes.w: return (str.charCodeAt(start + 1) === CharacterCodes.i && str.charCodeAt(start + 2) === CharacterCodes.t && str.charCodeAt(start + 3) === CharacterCodes.h) ? SyntaxKind.WithKeyword : SyntaxKind.IdentifierName; default: return SyntaxKind.IdentifierName; } - case 5: // break, catch, class, const, false, super, throw, while, yield + case 5: // async, await, break, catch, class, const, false, super, throw, while, yield switch(str.charCodeAt(start)) { + case CharacterCodes.a: // async, await + switch(str.charCodeAt(start + 1)) { + case CharacterCodes.s: return (str.charCodeAt(start + 2) === CharacterCodes.y && str.charCodeAt(start + 3) === CharacterCodes.n && str.charCodeAt(start + 4) === CharacterCodes.c) ? SyntaxKind.AsyncKeyword : SyntaxKind.IdentifierName; + case CharacterCodes.w: return (str.charCodeAt(start + 2) === CharacterCodes.a && str.charCodeAt(start + 3) === CharacterCodes.i && str.charCodeAt(start + 4) === CharacterCodes.t) ? SyntaxKind.AwaitKeyword : SyntaxKind.IdentifierName; + default: return SyntaxKind.IdentifierName; + } case CharacterCodes.b: return (str.charCodeAt(start + 1) === CharacterCodes.r && str.charCodeAt(start + 2) === CharacterCodes.e && str.charCodeAt(start + 3) === CharacterCodes.a && str.charCodeAt(start + 4) === CharacterCodes.k) ? SyntaxKind.BreakKeyword : SyntaxKind.IdentifierName; case CharacterCodes.c: // catch, class, const switch(str.charCodeAt(start + 1)) { diff --git a/src/services/syntax/syntaxElement.ts b/src/services/syntax/syntaxElement.ts index e14ecf33b69..adb30b4d9cc 100644 --- a/src/services/syntax/syntaxElement.ts +++ b/src/services/syntax/syntaxElement.ts @@ -42,6 +42,10 @@ module TypeScript { return (parserContextFlags(node) & ParserContextFlags.GeneratorParameter) !== 0; } + export function parsedInAsyncContext(node: ISyntaxNode): boolean { + return (parserContextFlags(node) & ParserContextFlags.Async) !== 0; + } + export function previousToken(token: ISyntaxToken): ISyntaxToken { var start = token.fullStart(); if (start === 0) { diff --git a/src/services/syntax/syntaxFacts.ts b/src/services/syntax/syntaxFacts.ts index 6f8b0edccae..d6926a571b7 100644 --- a/src/services/syntax/syntaxFacts.ts +++ b/src/services/syntax/syntaxFacts.ts @@ -3,6 +3,8 @@ module TypeScript.SyntaxFacts { var textToKeywordKind: any = { "any": SyntaxKind.AnyKeyword, + "async": SyntaxKind.AsyncKeyword, + "await": SyntaxKind.AwaitKeyword, "boolean": SyntaxKind.BooleanKeyword, "break": SyntaxKind.BreakKeyword, "case": SyntaxKind.CaseKeyword, diff --git a/src/services/syntax/syntaxGenerator.ts b/src/services/syntax/syntaxGenerator.ts index 514a3220ab6..bda3b39e928 100644 --- a/src/services/syntax/syntaxGenerator.ts +++ b/src/services/syntax/syntaxGenerator.ts @@ -246,6 +246,7 @@ var definitions:ITypeDefinition[] = [ baseType: 'ISyntaxNode', interfaces: ['IUnaryExpressionSyntax'], children: [ + { name: 'asyncKeyword', isToken: true, isOptional: true }, { name: 'parameter', type: 'ParameterSyntax' }, { name: 'equalsGreaterThanToken', isToken: true, excludeFromAST: true }, { name: 'body', type: 'BlockSyntax | IExpressionSyntax' } @@ -257,6 +258,7 @@ var definitions:ITypeDefinition[] = [ baseType: 'ISyntaxNode', interfaces: ['IUnaryExpressionSyntax'], children: [ + { name: 'asyncKeyword', isToken: true, isOptional: true }, { name: 'callSignature', type: 'CallSignatureSyntax' }, { name: 'equalsGreaterThanToken', isToken: true, excludeFromAST: true }, { name: 'body', type: 'BlockSyntax | IExpressionSyntax' } @@ -916,6 +918,7 @@ var definitions:ITypeDefinition[] = [ baseType: 'ISyntaxNode', interfaces: ['IPropertyAssignmentSyntax'], children: [ + { name: 'asyncKeyword', isToken: true, isOptional: true }, { name: 'asterixToken', isToken: true, isOptional: true }, { name: 'propertyName', type: 'IPropertyNameSyntax' }, { name: 'callSignature', type: 'CallSignatureSyntax' }, @@ -927,6 +930,7 @@ var definitions:ITypeDefinition[] = [ baseType: 'ISyntaxNode', interfaces: ['IPrimaryExpressionSyntax'], children: [ + { name: 'asyncKeyword', isToken: true, isOptional: true }, { name: 'functionKeyword', isToken: true, excludeFromAST: true }, { name: 'asterixToken', isToken: true, isOptional: true }, { name: 'identifier', isToken: true, isOptional: true }, @@ -1023,6 +1027,14 @@ var definitions:ITypeDefinition[] = [ { name: 'asterixToken', isToken: true, isOptional: true }, { name: 'expression', type: 'IExpressionSyntax', isOptional: true }] }, + { + name: 'AwaitExpressionSyntax', + baseType: 'ISyntaxNode', + interfaces: ['IUnaryExpressionSyntax'], + children: [ + { name: 'awaitKeyword', isToken: true }, + { name: 'expression', type: 'IExpressionSyntax', isOptional: true }] + }, { name: 'DebuggerStatementSyntax', baseType: 'ISyntaxNode', @@ -1392,8 +1404,29 @@ function max(array: T[], func: (v: T) => number): number { } function generateUtilities(): string { - var result = ""; - result += " var fixedWidthArray = ["; + var result = ""; //"module TypeScript.Scanner {"; + //result += " function fixedWidthTokenLength(kind: SyntaxKind) {\r\n"; + //result += " return fixedWidthArray[kind];\r\n"; + + //result += " switch (kind) {\r\n"; + + //for (var k = TypeScript.SyntaxKind.FirstFixedWidth; k <= TypeScript.SyntaxKind.LastFixedWidth; k++) { + // result += " case SyntaxKind." + syntaxKindName(k) + ": return " + TypeScript.SyntaxFacts.getText(k).length + ";\r\n"; + //} + //result += " default: throw new Error();\r\n"; + //result += " }\r\n"; + // result += " }\r\n"; + + return result; +} + +function generateScannerUtilities(): string { + var result = "///\r\n" + + "\r\n" + + "module TypeScript {\r\n" + + " export module ScannerUtilities {\r\n"; + + result += " export var fixedWidthArray = ["; for (var i = 0; i <= TypeScript.SyntaxKind.LastFixedWidth; i++) { if (i) { result += ", "; @@ -1408,26 +1441,6 @@ function generateUtilities(): string { } result += "];\r\n"; - result += " function fixedWidthTokenLength(kind: SyntaxKind) {\r\n"; - result += " return fixedWidthArray[kind];\r\n"; - - //result += " switch (kind) {\r\n"; - - //for (var k = TypeScript.SyntaxKind.FirstFixedWidth; k <= TypeScript.SyntaxKind.LastFixedWidth; k++) { - // result += " case SyntaxKind." + syntaxKindName(k) + ": return " + TypeScript.SyntaxFacts.getText(k).length + ";\r\n"; - //} - //result += " default: throw new Error();\r\n"; - //result += " }\r\n"; - result += " }\r\n"; - - return result; -} - -function generateScannerUtilities(): string { - var result = "///\r\n" + - "\r\n" + - "module TypeScript {\r\n" + - " export module ScannerUtilities {\r\n"; var i: number; var keywords: { text: string; kind: TypeScript.SyntaxKind; }[] = []; diff --git a/src/services/syntax/syntaxInterfaces.generated.ts b/src/services/syntax/syntaxInterfaces.generated.ts index 6ca28f1b819..724018fed54 100644 --- a/src/services/syntax/syntaxInterfaces.generated.ts +++ b/src/services/syntax/syntaxInterfaces.generated.ts @@ -470,18 +470,20 @@ module TypeScript { export interface ParenthesizedExpressionConstructor { new (data: number, openParenToken: ISyntaxToken, expression: IExpressionSyntax, closeParenToken: ISyntaxToken): ParenthesizedExpressionSyntax } export interface ParenthesizedArrowFunctionExpressionSyntax extends ISyntaxNode, IUnaryExpressionSyntax { + asyncKeyword: ISyntaxToken; callSignature: CallSignatureSyntax; equalsGreaterThanToken: ISyntaxToken; body: BlockSyntax | IExpressionSyntax; } - export interface ParenthesizedArrowFunctionExpressionConstructor { new (data: number, callSignature: CallSignatureSyntax, equalsGreaterThanToken: ISyntaxToken, body: BlockSyntax | IExpressionSyntax): ParenthesizedArrowFunctionExpressionSyntax } + export interface ParenthesizedArrowFunctionExpressionConstructor { new (data: number, asyncKeyword: ISyntaxToken, callSignature: CallSignatureSyntax, equalsGreaterThanToken: ISyntaxToken, body: BlockSyntax | IExpressionSyntax): ParenthesizedArrowFunctionExpressionSyntax } export interface SimpleArrowFunctionExpressionSyntax extends ISyntaxNode, IUnaryExpressionSyntax { + asyncKeyword: ISyntaxToken; parameter: ParameterSyntax; equalsGreaterThanToken: ISyntaxToken; body: BlockSyntax | IExpressionSyntax; } - export interface SimpleArrowFunctionExpressionConstructor { new (data: number, parameter: ParameterSyntax, equalsGreaterThanToken: ISyntaxToken, body: BlockSyntax | IExpressionSyntax): SimpleArrowFunctionExpressionSyntax } + export interface SimpleArrowFunctionExpressionConstructor { new (data: number, asyncKeyword: ISyntaxToken, parameter: ParameterSyntax, equalsGreaterThanToken: ISyntaxToken, body: BlockSyntax | IExpressionSyntax): SimpleArrowFunctionExpressionSyntax } export interface CastExpressionSyntax extends ISyntaxNode, IUnaryExpressionSyntax { lessThanToken: ISyntaxToken; @@ -500,13 +502,14 @@ module TypeScript { export interface ElementAccessExpressionConstructor { new (data: number, expression: ILeftHandSideExpressionSyntax, openBracketToken: ISyntaxToken, argumentExpression: IExpressionSyntax, closeBracketToken: ISyntaxToken): ElementAccessExpressionSyntax } export interface FunctionExpressionSyntax extends ISyntaxNode, IPrimaryExpressionSyntax { + asyncKeyword: ISyntaxToken; functionKeyword: ISyntaxToken; asterixToken: ISyntaxToken; identifier: ISyntaxToken; callSignature: CallSignatureSyntax; body: BlockSyntax | ExpressionBody | ISyntaxToken; } - export interface FunctionExpressionConstructor { new (data: number, functionKeyword: ISyntaxToken, asterixToken: ISyntaxToken, identifier: ISyntaxToken, callSignature: CallSignatureSyntax, body: BlockSyntax | ExpressionBody | ISyntaxToken): FunctionExpressionSyntax } + export interface FunctionExpressionConstructor { new (data: number, asyncKeyword: ISyntaxToken, functionKeyword: ISyntaxToken, asterixToken: ISyntaxToken, identifier: ISyntaxToken, callSignature: CallSignatureSyntax, body: BlockSyntax | ExpressionBody | ISyntaxToken): FunctionExpressionSyntax } export interface OmittedExpressionSyntax extends ISyntaxNode, IExpressionSyntax { } @@ -531,6 +534,12 @@ module TypeScript { } export interface YieldExpressionConstructor { new (data: number, yieldKeyword: ISyntaxToken, asterixToken: ISyntaxToken, expression: IExpressionSyntax): YieldExpressionSyntax } + export interface AwaitExpressionSyntax extends ISyntaxNode, IUnaryExpressionSyntax { + awaitKeyword: ISyntaxToken; + expression: IExpressionSyntax; + } + export interface AwaitExpressionConstructor { new (data: number, awaitKeyword: ISyntaxToken, expression: IExpressionSyntax): AwaitExpressionSyntax } + export interface VariableDeclarationSyntax extends ISyntaxNode { varKeyword: ISyntaxToken; variableDeclarators: ISeparatedSyntaxList; @@ -648,12 +657,13 @@ module TypeScript { export interface SimplePropertyAssignmentConstructor { new (data: number, propertyName: IPropertyNameSyntax, colonToken: ISyntaxToken, expression: IExpressionSyntax): SimplePropertyAssignmentSyntax } export interface FunctionPropertyAssignmentSyntax extends ISyntaxNode, IPropertyAssignmentSyntax { + asyncKeyword: ISyntaxToken; asterixToken: ISyntaxToken; propertyName: IPropertyNameSyntax; callSignature: CallSignatureSyntax; body: BlockSyntax | ExpressionBody | ISyntaxToken; } - export interface FunctionPropertyAssignmentConstructor { new (data: number, asterixToken: ISyntaxToken, propertyName: IPropertyNameSyntax, callSignature: CallSignatureSyntax, body: BlockSyntax | ExpressionBody | ISyntaxToken): FunctionPropertyAssignmentSyntax } + export interface FunctionPropertyAssignmentConstructor { new (data: number, asyncKeyword: ISyntaxToken, asterixToken: ISyntaxToken, propertyName: IPropertyNameSyntax, callSignature: CallSignatureSyntax, body: BlockSyntax | ExpressionBody | ISyntaxToken): FunctionPropertyAssignmentSyntax } export interface ParameterSyntax extends ISyntaxNode { dotDotDotToken: ISyntaxToken; diff --git a/src/services/syntax/syntaxKind.ts b/src/services/syntax/syntaxKind.ts index 896a3239146..988f27c3052 100644 --- a/src/services/syntax/syntaxKind.ts +++ b/src/services/syntax/syntaxKind.ts @@ -87,6 +87,8 @@ module TypeScript { // TypeScript keywords. AnyKeyword, + AsyncKeyword, + AwaitKeyword, BooleanKeyword, ConstructorKeyword, DeclareKeyword, @@ -235,6 +237,7 @@ module TypeScript { TemplateExpression, TemplateAccessExpression, YieldExpression, + AwaitExpression, // Variable declarations VariableDeclaration, diff --git a/src/services/syntax/syntaxNodes.concrete.generated.ts b/src/services/syntax/syntaxNodes.concrete.generated.ts index 7e35716659d..7755c1803f0 100644 --- a/src/services/syntax/syntaxNodes.concrete.generated.ts +++ b/src/services/syntax/syntaxNodes.concrete.generated.ts @@ -1282,41 +1282,47 @@ module TypeScript { } } - export var ParenthesizedArrowFunctionExpressionSyntax: ParenthesizedArrowFunctionExpressionConstructor = function(data: number, callSignature: CallSignatureSyntax, equalsGreaterThanToken: ISyntaxToken, body: BlockSyntax | IExpressionSyntax) { + export var ParenthesizedArrowFunctionExpressionSyntax: ParenthesizedArrowFunctionExpressionConstructor = function(data: number, asyncKeyword: ISyntaxToken, callSignature: CallSignatureSyntax, equalsGreaterThanToken: ISyntaxToken, body: BlockSyntax | IExpressionSyntax) { if (data) { this.__data = data; } + this.asyncKeyword = asyncKeyword, this.callSignature = callSignature, this.equalsGreaterThanToken = equalsGreaterThanToken, this.body = body, + asyncKeyword && (asyncKeyword.parent = this), callSignature.parent = this, equalsGreaterThanToken.parent = this, body.parent = this; }; ParenthesizedArrowFunctionExpressionSyntax.prototype.kind = SyntaxKind.ParenthesizedArrowFunctionExpression; - ParenthesizedArrowFunctionExpressionSyntax.prototype.childCount = 3; + ParenthesizedArrowFunctionExpressionSyntax.prototype.childCount = 4; ParenthesizedArrowFunctionExpressionSyntax.prototype.childAt = function(index: number): ISyntaxElement { switch (index) { - case 0: return this.callSignature; - case 1: return this.equalsGreaterThanToken; - case 2: return this.body; + case 0: return this.asyncKeyword; + case 1: return this.callSignature; + case 2: return this.equalsGreaterThanToken; + case 3: return this.body; } } - export var SimpleArrowFunctionExpressionSyntax: SimpleArrowFunctionExpressionConstructor = function(data: number, parameter: ParameterSyntax, equalsGreaterThanToken: ISyntaxToken, body: BlockSyntax | IExpressionSyntax) { + export var SimpleArrowFunctionExpressionSyntax: SimpleArrowFunctionExpressionConstructor = function(data: number, asyncKeyword: ISyntaxToken, parameter: ParameterSyntax, equalsGreaterThanToken: ISyntaxToken, body: BlockSyntax | IExpressionSyntax) { if (data) { this.__data = data; } + this.asyncKeyword = asyncKeyword, this.parameter = parameter, this.equalsGreaterThanToken = equalsGreaterThanToken, this.body = body, + asyncKeyword && (asyncKeyword.parent = this), parameter.parent = this, equalsGreaterThanToken.parent = this, body.parent = this; }; SimpleArrowFunctionExpressionSyntax.prototype.kind = SyntaxKind.SimpleArrowFunctionExpression; - SimpleArrowFunctionExpressionSyntax.prototype.childCount = 3; + SimpleArrowFunctionExpressionSyntax.prototype.childCount = 4; SimpleArrowFunctionExpressionSyntax.prototype.childAt = function(index: number): ISyntaxElement { switch (index) { - case 0: return this.parameter; - case 1: return this.equalsGreaterThanToken; - case 2: return this.body; + case 0: return this.asyncKeyword; + case 1: return this.parameter; + case 2: return this.equalsGreaterThanToken; + case 3: return this.body; } } @@ -1364,13 +1370,15 @@ module TypeScript { } } - export var FunctionExpressionSyntax: FunctionExpressionConstructor = function(data: number, functionKeyword: ISyntaxToken, asterixToken: ISyntaxToken, identifier: ISyntaxToken, callSignature: CallSignatureSyntax, body: BlockSyntax | ExpressionBody | ISyntaxToken) { + export var FunctionExpressionSyntax: FunctionExpressionConstructor = function(data: number, asyncKeyword: ISyntaxToken, functionKeyword: ISyntaxToken, asterixToken: ISyntaxToken, identifier: ISyntaxToken, callSignature: CallSignatureSyntax, body: BlockSyntax | ExpressionBody | ISyntaxToken) { if (data) { this.__data = data; } + this.asyncKeyword = asyncKeyword, this.functionKeyword = functionKeyword, this.asterixToken = asterixToken, this.identifier = identifier, this.callSignature = callSignature, this.body = body, + asyncKeyword && (asyncKeyword.parent = this), functionKeyword.parent = this, asterixToken && (asterixToken.parent = this), identifier && (identifier.parent = this), @@ -1378,14 +1386,15 @@ module TypeScript { body && (body.parent = this); }; FunctionExpressionSyntax.prototype.kind = SyntaxKind.FunctionExpression; - FunctionExpressionSyntax.prototype.childCount = 5; + FunctionExpressionSyntax.prototype.childCount = 6; FunctionExpressionSyntax.prototype.childAt = function(index: number): ISyntaxElement { switch (index) { - case 0: return this.functionKeyword; - case 1: return this.asterixToken; - case 2: return this.identifier; - case 3: return this.callSignature; - case 4: return this.body; + case 0: return this.asyncKeyword; + case 1: return this.functionKeyword; + case 2: return this.asterixToken; + case 3: return this.identifier; + case 4: return this.callSignature; + case 5: return this.body; } } @@ -1449,6 +1458,22 @@ module TypeScript { } } + export var AwaitExpressionSyntax: AwaitExpressionConstructor = function(data: number, awaitKeyword: ISyntaxToken, expression: IExpressionSyntax) { + if (data) { this.__data = data; } + this.awaitKeyword = awaitKeyword, + this.expression = expression, + awaitKeyword.parent = this, + expression && (expression.parent = this); + }; + AwaitExpressionSyntax.prototype.kind = SyntaxKind.AwaitExpression; + AwaitExpressionSyntax.prototype.childCount = 2; + AwaitExpressionSyntax.prototype.childAt = function(index: number): ISyntaxElement { + switch (index) { + case 0: return this.awaitKeyword; + case 1: return this.expression; + } + } + export var VariableDeclarationSyntax: VariableDeclarationConstructor = function(data: number, varKeyword: ISyntaxToken, variableDeclarators: ISeparatedSyntaxList) { if (data) { this.__data = data; } this.varKeyword = varKeyword, @@ -1763,25 +1788,28 @@ module TypeScript { } } - export var FunctionPropertyAssignmentSyntax: FunctionPropertyAssignmentConstructor = function(data: number, asterixToken: ISyntaxToken, propertyName: IPropertyNameSyntax, callSignature: CallSignatureSyntax, body: BlockSyntax | ExpressionBody | ISyntaxToken) { + export var FunctionPropertyAssignmentSyntax: FunctionPropertyAssignmentConstructor = function(data: number, asyncKeyword: ISyntaxToken, asterixToken: ISyntaxToken, propertyName: IPropertyNameSyntax, callSignature: CallSignatureSyntax, body: BlockSyntax | ExpressionBody | ISyntaxToken) { if (data) { this.__data = data; } + this.asyncKeyword = asyncKeyword, this.asterixToken = asterixToken, this.propertyName = propertyName, this.callSignature = callSignature, this.body = body, + asyncKeyword && (asyncKeyword.parent = this), asterixToken && (asterixToken.parent = this), propertyName.parent = this, callSignature.parent = this, body && (body.parent = this); }; FunctionPropertyAssignmentSyntax.prototype.kind = SyntaxKind.FunctionPropertyAssignment; - FunctionPropertyAssignmentSyntax.prototype.childCount = 4; + FunctionPropertyAssignmentSyntax.prototype.childCount = 5; FunctionPropertyAssignmentSyntax.prototype.childAt = function(index: number): ISyntaxElement { switch (index) { - case 0: return this.asterixToken; - case 1: return this.propertyName; - case 2: return this.callSignature; - case 3: return this.body; + case 0: return this.asyncKeyword; + case 1: return this.asterixToken; + case 2: return this.propertyName; + case 3: return this.callSignature; + case 4: return this.body; } } diff --git a/src/services/syntax/syntaxToken.ts b/src/services/syntax/syntaxToken.ts index 9ddbc3a800c..11fe28f45eb 100644 --- a/src/services/syntax/syntaxToken.ts +++ b/src/services/syntax/syntaxToken.ts @@ -301,6 +301,7 @@ module TypeScript.Syntax { public childCount: number; constructor(public kind: SyntaxKind, private _fullStart: number) { + Debug.assert(!isNaN(_fullStart)); } public setFullStart(fullStart: number): void { @@ -339,7 +340,6 @@ module TypeScript.Syntax { class RealizedToken implements ISyntaxToken { public _primaryExpressionBrand: any; public _memberExpressionBrand: any; public _leftHandSideExpressionBrand: any; public _postfixExpressionBrand: any; public _unaryExpressionBrand: any; public _expressionBrand: any; public _typeBrand: any; public _nameBrand: any; public _propertyAssignmentBrand: any; public _propertyNameBrand: any; - private _fullStart: number; private _isKeywordConvertedToIdentifier: boolean; private _leadingTrivia: ISyntaxTriviaList; private _text: string; @@ -347,12 +347,12 @@ module TypeScript.Syntax { public parent: ISyntaxElement; public childCount: number; - constructor(fullStart: number, + constructor(private _fullStart: number, public kind: SyntaxKind, isKeywordConvertedToIdentifier: boolean, leadingTrivia: ISyntaxTriviaList, text: string) { - this._fullStart = fullStart; + Debug.assert(!isNaN(_fullStart)); this._isKeywordConvertedToIdentifier = isKeywordConvertedToIdentifier; this._text = text; diff --git a/src/services/syntax/syntaxTree.ts b/src/services/syntax/syntaxTree.ts index cf20d2b1c75..3bb40d6f5f8 100644 --- a/src/services/syntax/syntaxTree.ts +++ b/src/services/syntax/syntaxTree.ts @@ -137,13 +137,14 @@ module TypeScript { this.text = syntaxTree.text; } - private pushDiagnostic(element: ISyntaxElement, diagnosticKey: string, args?: any[]): void { - this.pushDiagnosticAt(start(element, this.text), width(element), diagnosticKey, args); + private pushDiagnostic(element: ISyntaxElement, diagnosticKey: string, args?: any[]): boolean { + return this.pushDiagnosticAt(start(element, this.text), width(element), diagnosticKey, args); } - private pushDiagnosticAt(start: number, length: number, diagnosticKey: string, args?: any[]): void { + private pushDiagnosticAt(start: number, length: number, diagnosticKey: string, args?: any[]): boolean { this.diagnostics.push(new Diagnostic( this.syntaxTree.fileName(), this.syntaxTree.lineMap(), start, length, diagnosticKey, args)); + return true; } public visitCatchClause(node: CatchClauseSyntax): void { @@ -206,26 +207,14 @@ module TypeScript { return false; } - private checkParameterListAcessibilityModifiers(node: ParameterListSyntax): boolean { - for (var i = 0, n = nonSeparatorCount(node.parameters); i < n; i++) { - var parameter = nonSeparatorAt(node.parameters, i); - - if (this.checkParameterAccessibilityModifiers(node, parameter)) { - return true; - } - } - - return false; - } - - private checkParameterAccessibilityModifiers(parameterList: ParameterListSyntax, parameter: ParameterSyntax): boolean { + private checkParameterAccessibilityModifiers(parameter: ParameterSyntax): boolean { if (parameter.modifiers.length > 0) { var modifiers = parameter.modifiers; for (var i = 0, n = modifiers.length; i < n; i++) { var modifier = modifiers[i]; - if (this.checkParameterAccessibilityModifier(parameterList, modifier, i)) { + if (this.checkParameterAccessibilityModifier(modifier, i)) { return true; } } @@ -234,7 +223,7 @@ module TypeScript { return false; } - private checkParameterAccessibilityModifier(parameterList: ParameterListSyntax, modifier: ISyntaxToken, modifierIndex: number): boolean { + private checkParameterAccessibilityModifier(modifier: ISyntaxToken, modifierIndex: number): boolean { if (!SyntaxFacts.isAccessibilityModifier(modifier.kind)) { this.pushDiagnostic(modifier, DiagnosticCode._0_modifier_cannot_appear_on_a_parameter, [modifier.text()]); return true; @@ -272,8 +261,7 @@ module TypeScript { } public visitParameterList(node: ParameterListSyntax): void { - if (this.checkParameterListAcessibilityModifiers(node) || - this.checkParameterListOrder(node) || + if (this.checkParameterListOrder(node) || this.checkForTrailingComma(node.parameters)) { return; @@ -348,7 +336,7 @@ module TypeScript { return true; } else if (parameter.modifiers.length > 0) { - this.pushDiagnostic(parameter, DiagnosticCode.Index_signature_parameter_cannot_have_accessibility_modifiers); + this.pushDiagnostic(parameter, DiagnosticCode.Index_signature_parameter_cannot_have_modifiers); return true; } else if (parameter.questionToken) { @@ -454,7 +442,8 @@ module TypeScript { if (this.checkForDisallowedDeclareModifier(node.modifiers) || this.checkForRequiredDeclareModifier(node, node.identifier, node.modifiers) || this.checkModuleElementModifiers(node.modifiers) || - this.checkClassDeclarationHeritageClauses(node)) { + this.checkClassDeclarationHeritageClauses(node) || + this.checkForDisallowedAsyncModifier(node.modifiers)) { return; } @@ -506,7 +495,8 @@ module TypeScript { public visitInterfaceDeclaration(node: InterfaceDeclarationSyntax): void { if (this.checkInterfaceModifiers(node.modifiers) || this.checkModuleElementModifiers(node.modifiers) || - this.checkInterfaceDeclarationHeritageClauses(node)) { + this.checkInterfaceDeclarationHeritageClauses(node) || + this.checkForDisallowedAsyncModifier(node.modifiers)) { return; } @@ -517,34 +507,45 @@ module TypeScript { private checkClassElementModifiers(list: ISyntaxToken[]): boolean { var seenAccessibilityModifier = false; var seenStaticModifier = false; + var seenAsyncModifier = false; for (var i = 0, n = list.length; i < n; i++) { var modifier = list[i]; if (SyntaxFacts.isAccessibilityModifier(modifier.kind)) { if (seenAccessibilityModifier) { - this.pushDiagnostic(modifier, DiagnosticCode.Accessibility_modifier_already_seen); - return true; + return this.pushDiagnostic(modifier, DiagnosticCode.Accessibility_modifier_already_seen); } if (seenStaticModifier) { - var previousToken = list[i - 1]; - this.pushDiagnostic(modifier, DiagnosticCode._0_modifier_must_precede_1_modifier, [modifier.text(), previousToken.text()]); - return true; + return this.pushDiagnostic(modifier, DiagnosticCode._0_modifier_must_precede_1_modifier, [modifier.text(), list[i - 1].text()]); + } + + if (seenAsyncModifier) { + return this.pushDiagnostic(modifier, DiagnosticCode._0_modifier_must_precede_1_modifier, [modifier.text(), SyntaxFacts.getText(SyntaxKind.AsyncKeyword)]); } seenAccessibilityModifier = true; } else if (modifier.kind === SyntaxKind.StaticKeyword) { if (seenStaticModifier) { - this.pushDiagnostic(modifier, DiagnosticCode._0_modifier_already_seen, [modifier.text()]); - return true; + return this.pushDiagnostic(modifier, DiagnosticCode._0_modifier_already_seen, [modifier.text()]); + } + + if (seenAsyncModifier) { + return this.pushDiagnostic(modifier, DiagnosticCode._0_modifier_must_precede_1_modifier, [modifier.text(), SyntaxFacts.getText(SyntaxKind.AsyncKeyword)]); } seenStaticModifier = true; } + else if (modifier.kind === SyntaxKind.AsyncKeyword) { + if (seenAsyncModifier) { + return this.pushDiagnostic(modifier, DiagnosticCode._0_modifier_already_seen, [modifier.text()]); + } + + seenAsyncModifier = true; + } else { - this.pushDiagnostic(modifier, DiagnosticCode._0_modifier_cannot_appear_on_a_class_element, [modifier.text()]); - return true; + return this.pushDiagnostic(modifier, DiagnosticCode._0_modifier_cannot_appear_on_a_class_element, [modifier.text()]); } } @@ -552,7 +553,8 @@ module TypeScript { } public visitMemberVariableDeclaration(node: MemberVariableDeclarationSyntax): void { - if (this.checkClassElementModifiers(node.modifiers)) { + if (this.checkClassElementModifiers(node.modifiers) || + this.checkForDisallowedAsyncModifier(node.modifiers)) { return; } @@ -579,7 +581,8 @@ module TypeScript { public visitMemberFunctionDeclaration(node: MemberFunctionDeclarationSyntax): void { if (this.checkClassElementModifiers(node.modifiers) || - this.checkForDisallowedTemplatePropertyName(node.propertyName)) { + this.checkForDisallowedTemplatePropertyName(node.propertyName) || + this.checkForAsyncGenerator(this.getAsyncModifier(node.modifiers), node.asterixToken)) { return; } @@ -636,7 +639,8 @@ module TypeScript { this.checkForDisallowedAccessorTypeParameters(node.callSignature) || this.checkGetAccessorParameter(node) || this.checkForDisallowedTemplatePropertyName(node.propertyName) || - this.checkForSemicolonInsteadOfBlock(node, node.body)) { + this.checkForSemicolonInsteadOfBlock(node, node.body) || + this.checkForDisallowedAsyncModifier(node.modifiers)) { return; } @@ -710,6 +714,15 @@ module TypeScript { return false; } + public visitSimpleArrowFunctionExpression(node: SimpleArrowFunctionExpressionSyntax): void { + if (node.asyncKeyword) { + this.pushDiagnostic(node.asyncKeyword, DiagnosticCode.async_arrow_function_parameters_must_be_parenthesized); + return; + } + + super.visitSimpleArrowFunctionExpression(node); + } + public visitSimplePropertyAssignment(node: SimplePropertyAssignmentSyntax): void { if (this.checkForDisallowedTemplatePropertyName(node.propertyName)) { return; @@ -727,13 +740,23 @@ module TypeScript { this.checkForDisallowedSetAccessorTypeAnnotation(node) || this.checkSetAccessorParameter(node) || this.checkForDisallowedTemplatePropertyName(node.propertyName) || - this.checkForSemicolonInsteadOfBlock(node, node.body)) { + this.checkForSemicolonInsteadOfBlock(node, node.body) || + this.checkForDisallowedAsyncModifier(node.modifiers)) { return; } super.visitSetAccessor(node); } + private checkForDisallowedAsyncModifier(modifiers: ISyntaxToken[]) { + var asyncKeyword = this.getAsyncModifier(modifiers); + if (asyncKeyword) { + return this.pushDiagnostic(asyncKeyword, DiagnosticCode.async_modifier_cannot_appear_here); + } + + return false; + } + public visitElementAccessExpression(node: ElementAccessExpressionSyntax): void { if (this.checkForMissingArgumentExpression(node)) { return; @@ -765,7 +788,8 @@ module TypeScript { if (this.checkForDisallowedDeclareModifier(node.modifiers) || this.checkForRequiredDeclareModifier(node, node.identifier, node.modifiers) || this.checkModuleElementModifiers(node.modifiers), - this.checkEnumElements(node)) { + this.checkEnumElements(node) || + this.checkForDisallowedAsyncModifier(node.modifiers)) { return; } @@ -823,6 +847,7 @@ module TypeScript { private checkModuleElementModifiers(modifiers: ISyntaxToken[]): boolean { var seenExportModifier = false; var seenDeclareModifier = false; + var seenAsyncModifier = false; for (var i = 0, n = modifiers.length; i < n; i++) { var modifier = modifiers[i]; @@ -838,6 +863,12 @@ module TypeScript { return; } + if (seenAsyncModifier) { + this.pushDiagnostic(modifier, DiagnosticCode._0_modifier_must_precede_1_modifier, + [SyntaxFacts.getText(SyntaxKind.DeclareKeyword), SyntaxFacts.getText(SyntaxKind.AsyncKeyword)]); + return; + } + seenDeclareModifier = true; } else if (modifier.kind === SyntaxKind.ExportKeyword) { @@ -852,8 +883,22 @@ module TypeScript { return; } + if (seenAsyncModifier) { + this.pushDiagnostic(modifier, DiagnosticCode._0_modifier_must_precede_1_modifier, + [SyntaxFacts.getText(SyntaxKind.ExportKeyword), SyntaxFacts.getText(SyntaxKind.AsyncKeyword)]); + return; + } + seenExportModifier = true; } + else if (modifier.kind === SyntaxKind.AsyncKeyword) { + if (seenAsyncModifier) { + this.pushDiagnostic(modifier, DiagnosticCode._0_modifier_already_seen, [modifier.text()]); + return; + } + + seenAsyncModifier = true; + } } return false; @@ -886,7 +931,8 @@ module TypeScript { public visitImportDeclaration(node: ImportDeclarationSyntax): any { if (this.checkForDisallowedDeclareModifierOnImportDeclaration(node.modifiers) || - this.checkModuleElementModifiers(node.modifiers)) { + this.checkModuleElementModifiers(node.modifiers) || + this.checkForDisallowedAsyncModifier(node.modifiers)) { return; } @@ -897,7 +943,8 @@ module TypeScript { if (this.checkForDisallowedDeclareModifier(node.modifiers) || this.checkForRequiredDeclareModifier(node, firstToken(node.name), node.modifiers) || this.checkModuleElementModifiers(node.modifiers) || - this.checkForDisallowedImportDeclaration(node)) { + this.checkForDisallowedImportDeclaration(node) || + this.checkForDisallowedAsyncModifier(node.modifiers)) { return; } @@ -1392,7 +1439,8 @@ module TypeScript { this.checkForDisallowedModifiers(node.modifiers) || this.checkForRequiredDeclareModifier(node, node.identifier, node.modifiers) || this.checkModuleElementModifiers(node.modifiers) || - this.checkForDisallowedEvalOrArguments(node, node.identifier)) { + this.checkForDisallowedEvalOrArguments(node, node.identifier) || + this.checkForAsyncGenerator(this.getAsyncModifier(node.modifiers), node.asterixToken)) { return; } @@ -1403,9 +1451,30 @@ module TypeScript { this.inAmbientDeclaration = savedInAmbientDeclaration; } + private getAsyncModifier(modifiers: ISyntaxToken[]): ISyntaxToken { + for (var i = 0, n = modifiers.length; i < n; i++) { + var modifier = modifiers[i]; + if (modifier.kind === SyntaxKind.AsyncKeyword) { + return modifier; + } + } + + return undefined; + } + + private checkForAsyncGenerator(asyncKeyword: ISyntaxToken, asterixToken: ISyntaxToken) { + if (asyncKeyword && asterixToken) { + this.pushDiagnostic(asyncKeyword, DiagnosticCode.A_generator_declaration_cannot_have_the_async_modifier); + return true; + } + + return false; + } + public visitFunctionExpression(node: FunctionExpressionSyntax): void { if (this.checkForDisallowedEvalOrArguments(node, node.identifier) || - this.checkForSemicolonInsteadOfBlock(node, node.body)) { + this.checkForSemicolonInsteadOfBlock(node, node.body) || + this.checkForAsyncGenerator(node.asyncKeyword, node.asterixToken)) { return; } @@ -1414,7 +1483,8 @@ module TypeScript { public visitFunctionPropertyAssignment(node: FunctionPropertyAssignmentSyntax): void { if (this.checkForDisallowedTemplatePropertyName(node.propertyName) || - this.checkForSemicolonInsteadOfBlock(node, node.body)) { + this.checkForSemicolonInsteadOfBlock(node, node.body) || + this.checkForAsyncGenerator(node.asyncKeyword, node.asterixToken)) { return; } @@ -1425,7 +1495,8 @@ module TypeScript { if (this.checkForDisallowedDeclareModifier(node.modifiers) || this.checkForDisallowedModifiers(node.modifiers) || this.checkForRequiredDeclareModifier(node, node.variableDeclaration.varKeyword, node.modifiers) || - this.checkModuleElementModifiers(node.modifiers)) { + this.checkModuleElementModifiers(node.modifiers) || + this.checkForDisallowedAsyncModifier(node.modifiers)) { return; } @@ -1535,7 +1606,8 @@ module TypeScript { if (this.checkClassElementModifiers(node.modifiers) || this.checkConstructorModifiers(node.modifiers) || this.checkConstructorTypeParameterList(node) || - this.checkConstructorTypeAnnotation(node)) { + this.checkConstructorTypeAnnotation(node) || + this.checkForDisallowedAsyncModifier(node.modifiers)) { return; } @@ -1598,7 +1670,8 @@ module TypeScript { } public visitParameter(node: ParameterSyntax): void { - if (this.checkForDisallowedEvalOrArguments(node, node.identifier)) { + if (this.checkParameterAccessibilityModifiers(node) || + this.checkForDisallowedEvalOrArguments(node, node.identifier)) { return; } @@ -1644,6 +1717,15 @@ module TypeScript { super.visitYieldExpression(node); } + public visitAwaitExpression(node: AwaitExpressionSyntax): void { + if (!parsedInAsyncContext(node)) { + this.pushDiagnostic(node.awaitKeyword, DiagnosticCode.await_expression_must_be_contained_within_an_async_declaration); + return; + } + + super.visitAwaitExpression(node); + } + private checkIllegalAssignment(node: BinaryExpressionSyntax): boolean { if (parsedInStrictModeContext(node) && SyntaxFacts.isAssignmentOperatorToken(node.operatorToken.kind) && this.isEvalOrArguments(node.left)) { this.pushDiagnostic(node.operatorToken, DiagnosticCode.Invalid_use_of_0_in_strict_mode, [this.getEvalOrArguments(node.left)]); diff --git a/src/services/syntax/syntaxVisitor.generated.ts b/src/services/syntax/syntaxVisitor.generated.ts index 2fbc2ccd0b8..5a2ae68870a 100644 --- a/src/services/syntax/syntaxVisitor.generated.ts +++ b/src/services/syntax/syntaxVisitor.generated.ts @@ -73,6 +73,7 @@ module TypeScript { case SyntaxKind.TemplateExpression: return visitor.visitTemplateExpression(element); case SyntaxKind.TemplateAccessExpression: return visitor.visitTemplateAccessExpression(element); case SyntaxKind.YieldExpression: return visitor.visitYieldExpression(element); + case SyntaxKind.AwaitExpression: return visitor.visitAwaitExpression(element); case SyntaxKind.VariableDeclaration: return visitor.visitVariableDeclaration(element); case SyntaxKind.VariableDeclarator: return visitor.visitVariableDeclarator(element); case SyntaxKind.ArgumentList: return visitor.visitArgumentList(element); @@ -173,6 +174,7 @@ module TypeScript { visitTemplateExpression(node: TemplateExpressionSyntax): any; visitTemplateAccessExpression(node: TemplateAccessExpressionSyntax): any; visitYieldExpression(node: YieldExpressionSyntax): any; + visitAwaitExpression(node: AwaitExpressionSyntax): any; visitVariableDeclaration(node: VariableDeclarationSyntax): any; visitVariableDeclarator(node: VariableDeclaratorSyntax): any; visitArgumentList(node: ArgumentListSyntax): any; diff --git a/src/services/syntax/syntaxWalker.generated.ts b/src/services/syntax/syntaxWalker.generated.ts index a9b03349102..4ce6f1c740d 100644 --- a/src/services/syntax/syntaxWalker.generated.ts +++ b/src/services/syntax/syntaxWalker.generated.ts @@ -427,12 +427,14 @@ module TypeScript { } public visitParenthesizedArrowFunctionExpression(node: ParenthesizedArrowFunctionExpressionSyntax): void { + this.visitOptionalToken(node.asyncKeyword); visitNodeOrToken(this, node.callSignature); this.visitToken(node.equalsGreaterThanToken); visitNodeOrToken(this, node.body); } public visitSimpleArrowFunctionExpression(node: SimpleArrowFunctionExpressionSyntax): void { + this.visitOptionalToken(node.asyncKeyword); visitNodeOrToken(this, node.parameter); this.visitToken(node.equalsGreaterThanToken); visitNodeOrToken(this, node.body); @@ -453,6 +455,7 @@ module TypeScript { } public visitFunctionExpression(node: FunctionExpressionSyntax): void { + this.visitOptionalToken(node.asyncKeyword); this.visitToken(node.functionKeyword); this.visitOptionalToken(node.asterixToken); this.visitOptionalToken(node.identifier); @@ -479,6 +482,11 @@ module TypeScript { visitNodeOrToken(this, node.expression); } + public visitAwaitExpression(node: AwaitExpressionSyntax): void { + this.visitToken(node.awaitKeyword); + visitNodeOrToken(this, node.expression); + } + public visitVariableDeclaration(node: VariableDeclarationSyntax): void { this.visitToken(node.varKeyword); this.visitList(node.variableDeclarators); @@ -579,6 +587,7 @@ module TypeScript { } public visitFunctionPropertyAssignment(node: FunctionPropertyAssignmentSyntax): void { + this.visitOptionalToken(node.asyncKeyword); this.visitOptionalToken(node.asterixToken); visitNodeOrToken(this, node.propertyName); visitNodeOrToken(this, node.callSignature); diff --git a/src/services/syntax/utilities.generated.ts b/src/services/syntax/utilities.generated.ts index a01618fae48..e69de29bb2d 100644 --- a/src/services/syntax/utilities.generated.ts +++ b/src/services/syntax/utilities.generated.ts @@ -1,4 +0,0 @@ - var fixedWidthArray = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 4, 5, 8, 8, 7, 6, 2, 4, 5, 7, 3, 8, 2, 2, 10, 3, 4, 6, 6, 4, 5, 4, 3, 6, 3, 4, 5, 4, 5, 5, 4, 6, 7, 6, 5, 10, 9, 3, 7, 7, 9, 6, 6, 5, 3, 7, 11, 7, 3, 6, 7, 6, 3, 6, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 2, 2, 2, 2, 2, 3, 3, 1, 1, 1, 1, 2, 2, 2, 2, 3, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 2, 2, 2, 2, 3, 3, 4, 2, 2, 2, 1, 2]; - function fixedWidthTokenLength(kind: SyntaxKind) { - return fixedWidthArray[kind]; - } From 0e122b563309622a0fe70739ec773b47ce16204e Mon Sep 17 00:00:00 2001 From: Daniel Rosenwasser Date: Tue, 25 Nov 2014 17:41:49 -0800 Subject: [PATCH 074/195] Keep track of unterminated literal expressions. --- src/compiler/checker.ts | 4 ++-- src/compiler/emitter.ts | 4 ++-- src/compiler/parser.ts | 23 ++++--------------- src/compiler/scanner.ts | 10 ++++++++ src/compiler/types.ts | 1 + src/services/services.ts | 43 ++++++----------------------------- src/services/signatureHelp.ts | 2 +- src/services/utilities.ts | 4 ++-- 8 files changed, 29 insertions(+), 62 deletions(-) diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index 5ee9fa4ab3e..ea4c04e8b84 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -5302,7 +5302,7 @@ module ts { var templateExpression = tagExpression.template; var lastSpan = lastOrUndefined(templateExpression.templateSpans); Debug.assert(lastSpan !== undefined); // we should always have at least one span. - callIsIncomplete = lastSpan.literal.kind === SyntaxKind.Missing || isUnterminatedTemplateEnd(lastSpan.literal); + callIsIncomplete = lastSpan.literal.kind === SyntaxKind.Missing || !!lastSpan.literal.isUnterminated; } else { // If the template didn't end in a backtick, or its beginning occurred right prior to EOF, @@ -5310,7 +5310,7 @@ module ts { // so we consider the call to be incomplete. var templateLiteral = tagExpression.template; Debug.assert(templateLiteral.kind === SyntaxKind.NoSubstitutionTemplateLiteral); - callIsIncomplete = isUnterminatedTemplateEnd(templateLiteral); + callIsIncomplete = !!templateLiteral.isUnterminated; } } else { diff --git a/src/compiler/emitter.ts b/src/compiler/emitter.ts index 5cdf98aa63e..4595c8cb475 100644 --- a/src/compiler/emitter.ts +++ b/src/compiler/emitter.ts @@ -715,7 +715,7 @@ module ts { }; } } - + function emitEnumDeclaration(node: EnumDeclaration) { if (resolver.isDeclarationVisible(node)) { emitJsDocComments(node); @@ -3558,7 +3558,7 @@ module ts { return leadingComments; } - + function getLeadingCommentsToEmit(node: Node) { // Emit the leading comments only if the parent's pos doesn't match because parent should take care of emitting these comments if (node.parent.kind === SyntaxKind.SourceFile || node.pos !== node.parent.pos) { diff --git a/src/compiler/parser.ts b/src/compiler/parser.ts index 8d7bf9e4fe7..c08ba6a7ab5 100644 --- a/src/compiler/parser.ts +++ b/src/compiler/parser.ts @@ -809,25 +809,6 @@ module ts { return SyntaxKind.FirstTriviaToken <= token && token <= SyntaxKind.LastTriviaToken; } - export function isUnterminatedTemplateEnd(node: LiteralExpression) { - Debug.assert(isTemplateLiteralKind(node.kind)); - var sourceText = getSourceFileOfNode(node).text; - - // If we're not at the EOF, we know we must be terminated. - if (node.end !== sourceText.length) { - return false; - } - - // The literal can only be unterminated if it is a template tail or a no-sub template. - if (node.kind !== SyntaxKind.TemplateTail && node.kind !== SyntaxKind.NoSubstitutionTemplateLiteral) { - return false; - } - - // If we didn't end in a backtick, we must still be in the middle of a template. - // If we did, make sure that it's not the *initial* backtick. - return sourceText.charCodeAt(node.end - 1) !== CharacterCodes.backtick || node.text.length === 0; - } - export function isModifier(token: SyntaxKind): boolean { switch (token) { case SyntaxKind.PublicKeyword: @@ -1544,6 +1525,10 @@ module ts { var text = scanner.getTokenValue(); node.text = internName ? internIdentifier(text) : text; + if (scanner.isUnterminated()) { + node.isUnterminated = true; + } + var tokenPos = scanner.getTokenPos(); nextToken(); finishNode(node); diff --git a/src/compiler/scanner.ts b/src/compiler/scanner.ts index 4858265932e..f9d23166fee 100644 --- a/src/compiler/scanner.ts +++ b/src/compiler/scanner.ts @@ -22,6 +22,7 @@ module ts { hasPrecedingLineBreak(): boolean; isIdentifier(): boolean; isReservedWord(): boolean; + isUnterminated(): boolean; reScanGreaterToken(): SyntaxKind; reScanSlashToken(): SyntaxKind; reScanTemplateToken(): SyntaxKind; @@ -470,6 +471,7 @@ module ts { var token: SyntaxKind; var tokenValue: string; var precedingLineBreak: boolean; + var tokenUnterminated: boolean; function error(message: DiagnosticMessage): void { if (onError) { @@ -553,6 +555,7 @@ module ts { while (true) { if (pos >= len) { result += text.substring(start, pos); + tokenUnterminated = true; error(Diagnostics.Unterminated_string_literal); break; } @@ -570,6 +573,7 @@ module ts { } if (isLineBreak(ch)) { result += text.substring(start, pos); + tokenUnterminated = true; error(Diagnostics.Unterminated_string_literal); break; } @@ -593,6 +597,7 @@ module ts { while (true) { if (pos >= len) { contents += text.substring(start, pos); + tokenUnterminated = true; error(Diagnostics.Unterminated_template_literal); resultingToken = startedWithBacktick ? SyntaxKind.NoSubstitutionTemplateLiteral : SyntaxKind.TemplateTail; break; @@ -756,6 +761,7 @@ module ts { function scan(): SyntaxKind { startPos = pos; precedingLineBreak = false; + tokenUnterminated = false; while (true) { tokenPos = pos; if (pos >= len) { @@ -912,6 +918,7 @@ module ts { continue; } else { + tokenUnterminated = !commentClosed; return token = SyntaxKind.MultiLineCommentTrivia; } } @@ -1069,12 +1076,14 @@ module ts { // If we reach the end of a file, or hit a newline, then this is an unterminated // regex. Report error and return what we have so far. if (p >= len) { + tokenUnterminated = true; error(Diagnostics.Unterminated_regular_expression_literal) break; } var ch = text.charCodeAt(p); if (isLineBreak(ch)) { + tokenUnterminated = true; error(Diagnostics.Unterminated_regular_expression_literal) break; } @@ -1167,6 +1176,7 @@ module ts { hasPrecedingLineBreak: () => precedingLineBreak, isIdentifier: () => token === SyntaxKind.Identifier || token > SyntaxKind.LastReservedWord, isReservedWord: () => token >= SyntaxKind.FirstReservedWord && token <= SyntaxKind.LastReservedWord, + isUnterminated: () => tokenUnterminated, reScanGreaterToken, reScanSlashToken, reScanTemplateToken, diff --git a/src/compiler/types.ts b/src/compiler/types.ts index 83937c24ed9..3bfd8bc341e 100644 --- a/src/compiler/types.ts +++ b/src/compiler/types.ts @@ -467,6 +467,7 @@ module ts { // For a NumericLiteral, the stored value is the toString() representation of the number. For example 1, 1.00, and 1e0 are all stored as just "1". export interface LiteralExpression extends Expression { text: string; + isUnterminated?: boolean; } export interface TemplateExpression extends Expression { diff --git a/src/services/services.ts b/src/services/services.ts index 67e8aba34d2..8ff61b05a7a 100644 --- a/src/services/services.ts +++ b/src/services/services.ts @@ -2497,10 +2497,11 @@ module ts { } function isInStringOrRegularExpressionOrTemplateLiteral(previousToken: Node): boolean { - if (previousToken.kind === SyntaxKind.StringLiteral || isTemplateLiteralKind(previousToken.kind)) { + if (previousToken.kind === SyntaxKind.StringLiteral + || previousToken.kind === SyntaxKind.RegularExpressionLiteral + || isTemplateLiteralKind(previousToken.kind)) { // The position has to be either: 1. entirely within the token text, or - // 2. at the end position, and the string literal is not terminated - + // 2. at the end position of an unterminated token. var start = previousToken.getStart(); var end = previousToken.getEnd(); @@ -2508,36 +2509,9 @@ module ts { return true; } else if (position === end) { - var width = end - start; - var text = previousToken.getSourceFile().text; - - // If the token is a single character, or its second-to-last charcter indicates an escape code, - // then we can immediately say that we are in the middle of an unclosed string. - if (width <= 1 || text.charCodeAt(end - 2) === CharacterCodes.backslash) { - return true; - } - - // Now check if the last character is a closing character for the token. - switch (previousToken.kind) { - case SyntaxKind.StringLiteral: - case SyntaxKind.NoSubstitutionTemplateLiteral: - return text.charCodeAt(start) !== text.charCodeAt(end - 1); - - case SyntaxKind.TemplateHead: - case SyntaxKind.TemplateMiddle: - return text.charCodeAt(end - 1) !== CharacterCodes.openBrace - || text.charCodeAt(end - 2) !== CharacterCodes.$; - - case SyntaxKind.TemplateTail: - return text.charCodeAt(end - 1) !== CharacterCodes.backtick; - } - - return false; + return !!(previousToken).isUnterminated; } } - else if (previousToken.kind === SyntaxKind.RegularExpressionLiteral) { - return previousToken.getStart() < position && position < previousToken.getEnd(); - } return false; } @@ -5579,7 +5553,7 @@ module ts { if (token === SyntaxKind.StringLiteral) { // Check to see if we finished up on a multiline string literal. var tokenText = scanner.getTokenText(); - if (tokenText.length > 0 && tokenText.charCodeAt(tokenText.length - 1) === CharacterCodes.backslash) { + if (scanner.isUnterminated()) { var quoteChar = tokenText.charCodeAt(0); result.finalLexState = quoteChar === CharacterCodes.doubleQuote ? EndOfLineState.InDoubleQuoteStringLiteral @@ -5588,10 +5562,7 @@ module ts { } else if (token === SyntaxKind.MultiLineCommentTrivia) { // Check to see if the multiline comment was unclosed. - var tokenText = scanner.getTokenText() - if (!(tokenText.length > 3 && // need to avoid catching '/*/' - tokenText.charCodeAt(tokenText.length - 2) === CharacterCodes.asterisk && - tokenText.charCodeAt(tokenText.length - 1) === CharacterCodes.slash)) { + if (scanner.isUnterminated()) { result.finalLexState = EndOfLineState.InMultiLineCommentTrivia; } } diff --git a/src/services/signatureHelp.ts b/src/services/signatureHelp.ts index e2b65e3c6e1..4ec0b1dfbc2 100644 --- a/src/services/signatureHelp.ts +++ b/src/services/signatureHelp.ts @@ -296,7 +296,7 @@ module ts.SignatureHelp { Debug.assert(templateExpression.kind === SyntaxKind.TemplateExpression); // If we're just after a template tail, don't show signature help. - if (node.kind === SyntaxKind.TemplateTail && position >= node.getEnd() && !isUnterminatedTemplateEnd(node)) { + if (node.kind === SyntaxKind.TemplateTail && position >= node.getEnd() && !(node).isUnterminated) { return undefined; } diff --git a/src/services/utilities.ts b/src/services/utilities.ts index 75bea36bf3a..4a3301312fb 100644 --- a/src/services/utilities.ts +++ b/src/services/utilities.ts @@ -322,7 +322,7 @@ module ts { } export function isInsideTemplateLiteral(node: LiteralExpression, position: number) { - return (node.getStart() < position && position < node.getEnd()) - || (isUnterminatedTemplateEnd(node) && position === node.getEnd()); + return isTemplateLiteralKind(node.kind) + && (node.getStart() < position && position < node.getEnd()) || (!!node.isUnterminated && position === node.getEnd()); } } \ No newline at end of file From 3fe6623c57d8f7f22b5b644558d6daa3102582a4 Mon Sep 17 00:00:00 2001 From: Cyrus Najmabadi Date: Tue, 25 Nov 2014 18:04:57 -0800 Subject: [PATCH 075/195] Only allow 'async' as a modifier if it is not followed by newline. --- src/services/syntax/parser.ts | 31 ++++++++++++++++++++++++++----- 1 file changed, 26 insertions(+), 5 deletions(-) diff --git a/src/services/syntax/parser.ts b/src/services/syntax/parser.ts index 16ed9f2b9a5..20a7de2e572 100644 --- a/src/services/syntax/parser.ts +++ b/src/services/syntax/parser.ts @@ -1101,8 +1101,15 @@ module TypeScript.Parser { // Because modifiers are also identifiers, we only want to consider something to // be truly a modifier if the thing following it is something that can be modified. var nextToken = peekToken(index + 1); - var nextTokenKind = nextToken.kind; + if (token.kind === SyntaxKind.AsyncKeyword) { + // In order for async to be modifier, the next token must be on the same line. + if (nextToken.hasLeadingNewLine()) { + return false; + } + } + + var nextTokenKind = nextToken.kind; switch (nextTokenKind) { // public foo' // 'public' is a modifier. @@ -3095,8 +3102,11 @@ module TypeScript.Parser { function tryParsePrimaryExpression(_currentToken: ISyntaxToken, force: boolean): IPrimaryExpressionSyntax { // Have to check for 'async function' first as 'async' is an identifier and will be // consumed immediately below this. - if (_currentToken.kind === SyntaxKind.AsyncKeyword && peekToken(1).kind === SyntaxKind.FunctionKeyword) { - return parseFunctionExpression(); + if (_currentToken.kind === SyntaxKind.AsyncKeyword) { + var token1 = peekToken(1); + if (!token1.hasLeadingNewLine() && token1.kind === SyntaxKind.FunctionKeyword) { + return parseFunctionExpression(); + } } if (isIdentifier(_currentToken)) { @@ -3382,8 +3392,11 @@ module TypeScript.Parser { } // 'async a' is always the start of an async arrow function. - if (_currentToken.kind === SyntaxKind.AsyncKeyword && isIdentifier(peekToken(1))) { - return true; + if (_currentToken.kind === SyntaxKind.AsyncKeyword) { + var token1 = peekToken(1); + if (!token1.hasLeadingNewLine() && isIdentifier(peekToken(1))) { + return true; + } } return isIdentifier(_currentToken) && @@ -3412,6 +3425,10 @@ module TypeScript.Parser { function isDefinitelyArrowFunctionExpression(): boolean { var peekIndex = 0; if (currentToken().kind === SyntaxKind.AsyncKeyword) { + if (peekToken(1).hasLeadingNewLine()) { + return false; + } + // skip past any 'async' keyword we see. peekIndex++; } @@ -3523,6 +3540,10 @@ module TypeScript.Parser { function isPossiblyArrowFunctionExpression(): boolean { var peekIndex = 0; if (currentToken().kind === SyntaxKind.AsyncKeyword) { + if (peekToken(1).hasLeadingNewLine()) { + return false; + } + peekIndex++; } From a4710442c8fc184a623ce5622e1586b4b150122d Mon Sep 17 00:00:00 2001 From: Cyrus Najmabadi Date: Tue, 25 Nov 2014 18:12:52 -0800 Subject: [PATCH 076/195] Rename some functions. --- src/services/syntax/parser.ts | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/src/services/syntax/parser.ts b/src/services/syntax/parser.ts index 20a7de2e572..3b302d509bd 100644 --- a/src/services/syntax/parser.ts +++ b/src/services/syntax/parser.ts @@ -281,7 +281,7 @@ module TypeScript.Parser { return result; } - function enterYieldContextAnd(func: () => T): T { + function doInsideYieldContext(func: () => T): T { if (inYieldContext()) { // no need to do anything special if we're already in the [Yield] context. return func(); @@ -293,7 +293,7 @@ module TypeScript.Parser { return result; } - function exitYieldContextAnd(func: () => T): T { + function doOutsideYieldContext(func: () => T): T { if (inYieldContext()) { setYieldContext(false); var result = func(); @@ -305,7 +305,7 @@ module TypeScript.Parser { return func(); } - function enterAsyncContextAnd(func: () => T): T { + function doInsideAsyncContext(func: () => T): T { if (inAsyncContext()) { // no need to do anything special if we're already in the [Async] context. return func(); @@ -317,7 +317,7 @@ module TypeScript.Parser { return result; } - function exitAsyncContextAnd(func: () => T): T { + function doOutsideAsyncContext(func: () => T): T { if (inAsyncContext()) { setAsyncContext(false); var result = func(); @@ -1177,7 +1177,7 @@ module TypeScript.Parser { if (isHeritageClause()) { return isClassHeritageClause && inGeneratorParameterContext() - ? exitYieldContextAnd(parseHeritageClausesWorker) + ? doOutsideYieldContext(parseHeritageClausesWorker) : parseHeritageClausesWorker(); } @@ -1212,7 +1212,7 @@ module TypeScript.Parser { if (openBraceToken.fullWidth() > 0) { return inGeneratorParameterContext() - ? exitYieldContextAnd(parseClassElements) + ? doOutsideYieldContext(parseClassElements) : parseClassElements(); } @@ -3380,7 +3380,7 @@ module TypeScript.Parser { eatToken(SyntaxKind.CloseBraceToken)); } - return asyncContext ? enterAsyncContextAnd(parseAssignmentExpressionOrHigher) : exitAsyncContextAnd(parseAssignmentExpressionOrHigher); + return asyncContext ? doInsideAsyncContext(parseAssignmentExpressionOrHigher) : doOutsideAsyncContext(parseAssignmentExpressionOrHigher); } function isSimpleArrowFunctionExpression(_currentToken: ISyntaxToken): boolean { @@ -3407,7 +3407,7 @@ module TypeScript.Parser { var asyncKeyword: ISyntaxToken; return new SimpleArrowFunctionExpressionSyntax(contextFlags, asyncKeyword = tryEatToken(SyntaxKind.AsyncKeyword), - asyncKeyword ? enterAsyncContextAnd(eatSimpleParameter) : exitAsyncContextAnd(eatSimpleParameter), + asyncKeyword ? doInsideAsyncContext(eatSimpleParameter) : doOutsideAsyncContext(eatSimpleParameter), eatToken(SyntaxKind.EqualsGreaterThanToken), parseArrowFunctionBody(/*asyncContext:*/ !!asyncKeyword)); } @@ -3737,7 +3737,7 @@ module TypeScript.Parser { var _currentToken = currentToken(); if (_currentToken.kind === SyntaxKind.OpenBracketToken) { return inGeneratorParameterContext() - ? exitYieldContextAnd(parseComputedPropertyName) + ? doOutsideYieldContext(parseComputedPropertyName) : parseComputedPropertyName(); } else if (SyntaxFacts.isIdentifierNameOrAnyKeyword(_currentToken)) { @@ -4247,7 +4247,7 @@ module TypeScript.Parser { // [~GeneratorParameter]BindingIdentifier[?Yield]Initializer[In, ?Yield]opt var identifier = inGeneratorParameterContext() - ? enterYieldContextAnd(eatIdentifierToken) + ? doInsideYieldContext(eatIdentifierToken) : eatIdentifierToken(); var questionToken = tryEatToken(SyntaxKind.QuestionToken); @@ -4256,7 +4256,7 @@ module TypeScript.Parser { var equalsValueClause: EqualsValueClauseSyntax = undefined; if (isEqualsValueClause(/*inParameter*/ true)) { equalsValueClause = inGeneratorParameterContext() - ? exitYieldContextAnd(parseEqualsValueClause) + ? doOutsideYieldContext(parseEqualsValueClause) : parseEqualsValueClause(); } From 3d2979a50cba550bc9e14698143ac26012c85dd1 Mon Sep 17 00:00:00 2001 From: Cyrus Najmabadi Date: Tue, 25 Nov 2014 18:19:21 -0800 Subject: [PATCH 077/195] Inline method. --- src/services/syntax/parser.ts | 22 +++++++++------------- 1 file changed, 9 insertions(+), 13 deletions(-) diff --git a/src/services/syntax/parser.ts b/src/services/syntax/parser.ts index 3b302d509bd..8098b5a4d8b 100644 --- a/src/services/syntax/parser.ts +++ b/src/services/syntax/parser.ts @@ -602,10 +602,6 @@ module TypeScript.Parser { return createMissingToken(SyntaxKind.IdentifierName, token, diagnosticCode); } - function isOnDifferentLineThanPreviousToken(token: ISyntaxToken): boolean { - return token.hasLeadingNewLine(); - } - function canEatAutomaticSemicolon(allowWithoutNewLine: boolean): boolean { var token = currentToken(); @@ -625,7 +621,7 @@ module TypeScript.Parser { } // It is also allowed if there is a newline between the last token seen and the next one. - if (isOnDifferentLineThanPreviousToken(token)) { + if (token.hasLeadingNewLine()) { return true; } @@ -1008,7 +1004,7 @@ module TypeScript.Parser { // In the first case though, ASI will not take effect because there is not a // line terminator after the keyword. if (SyntaxFacts.isAnyKeyword(_currentToken.kind) && - isOnDifferentLineThanPreviousToken(_currentToken)) { + _currentToken.hasLeadingNewLine()) { var token1 = peekToken(1); if (!existsNewLineBetweenTokens(_currentToken, token1, source.text) && @@ -1329,7 +1325,7 @@ module TypeScript.Parser { case SyntaxKind.EndOfFileToken: return true; default: - return isOnDifferentLineThanPreviousToken(nextToken); + return nextToken.hasLeadingNewLine(); } } @@ -2409,7 +2405,7 @@ module TypeScript.Parser { // It's not uncommon during typing for the user to miss writing the '=' token. Check if // there is no newline after the last token and if we're on an expression. If so, parse // this as an equals-value clause with a missing equals. - if (!isOnDifferentLineThanPreviousToken(token0)) { + if (!token0.hasLeadingNewLine()) { var tokenKind = token0.kind; // The 'isExpression' call below returns true for "=>". That's because it smartly @@ -2601,7 +2597,7 @@ module TypeScript.Parser { // definitely recognize this as a yield expression. var token1 = peekToken(1); - if (isOnDifferentLineThanPreviousToken(token1)) { + if (token1.hasLeadingNewLine()) { // Next token is on the next line. Thanks to ASI, this might start some other // construct. Can't assume this is a yield or await expr. return false; @@ -2656,7 +2652,7 @@ module TypeScript.Parser { yieldKeyword = consumeToken(yieldKeyword); var _currentToken = currentToken(); - if (!isOnDifferentLineThanPreviousToken(_currentToken) && + if (!_currentToken.hasLeadingNewLine() && (_currentToken.kind === SyntaxKind.AsteriskToken || isExpression(_currentToken))) { return new YieldExpressionSyntax(contextFlags, yieldKeyword, tryEatToken(SyntaxKind.AsteriskToken), parseAssignmentExpressionOrHigher()); @@ -2991,7 +2987,7 @@ module TypeScript.Parser { case SyntaxKind.MinusMinusToken: // Because of automatic semicolon insertion, we should only consume the ++ or -- // if it is on the same line as the previous token. - if (isOnDifferentLineThanPreviousToken(_currentToken)) { + if (_currentToken.hasLeadingNewLine()) { break; } @@ -4051,7 +4047,7 @@ module TypeScript.Parser { while (type) { var _currentToken = currentToken(); - if (isOnDifferentLineThanPreviousToken(_currentToken) || + if (_currentToken.hasLeadingNewLine() || _currentToken.kind !== SyntaxKind.OpenBracketToken) { break; } @@ -4104,7 +4100,7 @@ module TypeScript.Parser { // TypeName [no LineTerminator here] TypeArgumentsopt // // Only consume type arguments if they appear on the same line. - if (isOnDifferentLineThanPreviousToken(currentToken())) { + if (currentToken().hasLeadingNewLine()) { return name; } From e6ada5fb81fdb85038c2ca19332f83c16cd35010 Mon Sep 17 00:00:00 2001 From: Cyrus Najmabadi Date: Tue, 25 Nov 2014 18:39:59 -0800 Subject: [PATCH 078/195] Be more lenient with computed property names. --- src/services/resources/diagnosticCode.generated.ts | 1 + .../resources/diagnosticInformationMap.generated.ts | 1 + src/services/resources/diagnosticMessages.json | 4 ++++ src/services/syntax/parser.ts | 4 +++- src/services/syntax/syntaxTree.ts | 9 +++++++++ 5 files changed, 18 insertions(+), 1 deletion(-) diff --git a/src/services/resources/diagnosticCode.generated.ts b/src/services/resources/diagnosticCode.generated.ts index 445aa48d5ec..d8533c0a6ee 100644 --- a/src/services/resources/diagnosticCode.generated.ts +++ b/src/services/resources/diagnosticCode.generated.ts @@ -103,6 +103,7 @@ module TypeScript { async_arrow_function_parameters_must_be_parenthesized: "'async' arrow function parameters must be parenthesized.", A_generator_declaration_cannot_have_the_async_modifier: "A generator declaration cannot have the 'async' modifier.", async_modifier_cannot_appear_here: "'async' modifier cannot appear here.", + comma_expression_cannot_appear_in_a_computed_property_name: "'comma' expression cannot appear in a computed property name.", Duplicate_identifier_0: "Duplicate identifier '{0}'.", The_name_0_does_not_exist_in_the_current_scope: "The name '{0}' does not exist in the current scope.", The_name_0_does_not_refer_to_a_value: "The name '{0}' does not refer to a value.", diff --git a/src/services/resources/diagnosticInformationMap.generated.ts b/src/services/resources/diagnosticInformationMap.generated.ts index 3aea88053d3..5bbe9b43dbb 100644 --- a/src/services/resources/diagnosticInformationMap.generated.ts +++ b/src/services/resources/diagnosticInformationMap.generated.ts @@ -105,6 +105,7 @@ module TypeScript { "'async' arrow function parameters must be parenthesized.": { "code": 1117, "category": DiagnosticCategory.Error }, "A generator declaration cannot have the 'async' modifier.": { "code": 1118, "category": DiagnosticCategory.Error }, "'async' modifier cannot appear here.": { "code": 1119, "category": DiagnosticCategory.Error }, + "'comma' expression cannot appear in a computed property name.": { "code": 1120, "category": DiagnosticCategory.Error }, "Duplicate identifier '{0}'.": { "code": 2000, "category": DiagnosticCategory.Error }, "The name '{0}' does not exist in the current scope.": { "code": 2001, "category": DiagnosticCategory.Error }, "The name '{0}' does not refer to a value.": { "code": 2002, "category": DiagnosticCategory.Error }, diff --git a/src/services/resources/diagnosticMessages.json b/src/services/resources/diagnosticMessages.json index 4a8c1e23ec7..b8e3cb26a00 100644 --- a/src/services/resources/diagnosticMessages.json +++ b/src/services/resources/diagnosticMessages.json @@ -407,6 +407,10 @@ "category": "Error", "code": 1119 }, + "'comma' expression cannot appear in a computed property name.": { + "category": "Error", + "code": 1120 + }, "Duplicate identifier '{0}'.": { "category": "Error", "code": 2000 diff --git a/src/services/syntax/parser.ts b/src/services/syntax/parser.ts index 8098b5a4d8b..ab33c1f7ed2 100644 --- a/src/services/syntax/parser.ts +++ b/src/services/syntax/parser.ts @@ -3753,9 +3753,11 @@ module TypeScript.Parser { // ComputedPropertyName[Yield] : // [AssignmentExpression[In, ?Yield]] + // Note: we allow any expression inside the computed property name. We'll report any + // issues later in the grammar checker if an invalid expression is provided. return new ComputedPropertyNameSyntax(contextFlags, eatToken(SyntaxKind.OpenBracketToken), - allowInAnd(parseAssignmentExpressionOrHigher), + allowInAnd(parseExpression), eatToken(SyntaxKind.CloseBracketToken)); } diff --git a/src/services/syntax/syntaxTree.ts b/src/services/syntax/syntaxTree.ts index 3bb40d6f5f8..5f5694123e2 100644 --- a/src/services/syntax/syntaxTree.ts +++ b/src/services/syntax/syntaxTree.ts @@ -1040,6 +1040,15 @@ module TypeScript { super.visitBreakStatement(node); } + public visitComputedPropertyName(node: ComputedPropertyNameSyntax): void { + if (node.expression.kind === SyntaxKind.BinaryExpression && (node.expression).operatorToken.kind === SyntaxKind.CommaToken) { + this.pushDiagnostic((node.expression).operatorToken, DiagnosticCode.comma_expression_cannot_appear_in_a_computed_property_name); + return; + } + + super.visitComputedPropertyName(node); + } + public visitContinueStatement(node: ContinueStatementSyntax): void { if (this.checkForStatementInAmbientContxt(node) || this.checkContinueStatementTarget(node)) { From 7c0eb2679b1619d7d4dbb59556a90a1372e7b2ad Mon Sep 17 00:00:00 2001 From: Cyrus Najmabadi Date: Tue, 25 Nov 2014 19:20:24 -0800 Subject: [PATCH 079/195] Remove redundant syntax type. A method declaration serves perfectly well as a function-property-assignment in an object literal. Conflicts: src/services/syntax/SyntaxGenerator.js.map --- src/services/syntax/SyntaxGenerator.js | 31 +++------ src/services/syntax/SyntaxGenerator.js.map | 4 ++ src/services/syntax/parser.ts | 14 +---- src/services/syntax/prettyPrinter.ts | 7 --- src/services/syntax/syntaxGenerator.ts | 14 +---- .../syntax/syntaxInterfaces.generated.ts | 25 +++----- src/services/syntax/syntaxKind.ts | 5 +- .../syntax/syntaxNodes.concrete.generated.ts | 63 ++++++------------- src/services/syntax/syntaxTree.ts | 42 +++++++++---- src/services/syntax/syntaxUtilities.ts | 1 - .../syntax/syntaxVisitor.generated.ts | 6 +- src/services/syntax/syntaxWalker.generated.ts | 20 ++---- 12 files changed, 83 insertions(+), 149 deletions(-) diff --git a/src/services/syntax/SyntaxGenerator.js b/src/services/syntax/SyntaxGenerator.js index b4b32899381..b56f45ff4a2 100644 --- a/src/services/syntax/SyntaxGenerator.js +++ b/src/services/syntax/SyntaxGenerator.js @@ -619,15 +619,14 @@ var TypeScript; SyntaxKind[SyntaxKind["TemplateClause"] = 207] = "TemplateClause"; SyntaxKind[SyntaxKind["TypeParameter"] = 208] = "TypeParameter"; SyntaxKind[SyntaxKind["Constraint"] = 209] = "Constraint"; - SyntaxKind[SyntaxKind["SimplePropertyAssignment"] = 210] = "SimplePropertyAssignment"; - SyntaxKind[SyntaxKind["FunctionPropertyAssignment"] = 211] = "FunctionPropertyAssignment"; - SyntaxKind[SyntaxKind["Parameter"] = 212] = "Parameter"; - SyntaxKind[SyntaxKind["EnumElement"] = 213] = "EnumElement"; - SyntaxKind[SyntaxKind["TypeAnnotation"] = 214] = "TypeAnnotation"; - SyntaxKind[SyntaxKind["ExpressionBody"] = 215] = "ExpressionBody"; - SyntaxKind[SyntaxKind["ComputedPropertyName"] = 216] = "ComputedPropertyName"; - SyntaxKind[SyntaxKind["ExternalModuleReference"] = 217] = "ExternalModuleReference"; - SyntaxKind[SyntaxKind["ModuleNameModuleReference"] = 218] = "ModuleNameModuleReference"; + SyntaxKind[SyntaxKind["Parameter"] = 210] = "Parameter"; + SyntaxKind[SyntaxKind["EnumElement"] = 211] = "EnumElement"; + SyntaxKind[SyntaxKind["TypeAnnotation"] = 212] = "TypeAnnotation"; + SyntaxKind[SyntaxKind["ExpressionBody"] = 213] = "ExpressionBody"; + SyntaxKind[SyntaxKind["ComputedPropertyName"] = 214] = "ComputedPropertyName"; + SyntaxKind[SyntaxKind["SimplePropertyAssignment"] = 215] = "SimplePropertyAssignment"; + SyntaxKind[SyntaxKind["ExternalModuleReference"] = 216] = "ExternalModuleReference"; + SyntaxKind[SyntaxKind["ModuleNameModuleReference"] = 217] = "ModuleNameModuleReference"; SyntaxKind[SyntaxKind["FirstStandardKeyword"] = SyntaxKind.BreakKeyword] = "FirstStandardKeyword"; SyntaxKind[SyntaxKind["LastStandardKeyword"] = SyntaxKind.WithKeyword] = "LastStandardKeyword"; SyntaxKind[SyntaxKind["FirstFutureReservedKeyword"] = SyntaxKind.ClassKeyword] = "FirstFutureReservedKeyword"; @@ -1512,7 +1511,7 @@ var definitions = [ { name: 'MemberFunctionDeclarationSyntax', baseType: 'ISyntaxNode', - interfaces: ['IMemberDeclarationSyntax'], + interfaces: ['IMemberDeclarationSyntax', 'IPropertyAssignmentSyntax'], children: [ { name: 'modifiers', isList: true, elementType: 'ISyntaxToken' }, { name: 'asterixToken', isToken: true, isOptional: true }, @@ -1772,18 +1771,6 @@ var definitions = [ { name: 'expression', type: 'IExpressionSyntax' } ] }, - { - name: 'FunctionPropertyAssignmentSyntax', - baseType: 'ISyntaxNode', - interfaces: ['IPropertyAssignmentSyntax'], - children: [ - { name: 'asyncKeyword', isToken: true, isOptional: true }, - { name: 'asterixToken', isToken: true, isOptional: true }, - { name: 'propertyName', type: 'IPropertyNameSyntax' }, - { name: 'callSignature', type: 'CallSignatureSyntax' }, - { name: 'body', type: 'BlockSyntax | ExpressionBody | ISyntaxToken', isOptional: true } - ] - }, { name: 'FunctionExpressionSyntax', baseType: 'ISyntaxNode', diff --git a/src/services/syntax/SyntaxGenerator.js.map b/src/services/syntax/SyntaxGenerator.js.map index b269df1331f..d32e4b2549e 100644 --- a/src/services/syntax/SyntaxGenerator.js.map +++ b/src/services/syntax/SyntaxGenerator.js.map @@ -11,6 +11,7 @@ <<<<<<< HEAD <<<<<<< HEAD <<<<<<< HEAD +<<<<<<< HEAD <<<<<<< Updated upstream {"version":3,"file":"SyntaxGenerator.js","sourceRoot":"","sources":["file:///C:/VSPro_1/src/typescript/public_cyrusn/src/compiler/sys.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/core/errors.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/core/arrayUtilities.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/core/stringUtilities.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/syntax/syntaxKind.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/syntax/syntaxFacts.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/syntax/SyntaxGenerator.ts"],"names":["getWScriptSystem","getWScriptSystem.readFile","getWScriptSystem.writeFile","getNodeSystem","getNodeSystem.readFile","getNodeSystem.writeFile","getNodeSystem.fileChanged","TypeScript","TypeScript.Errors","TypeScript.Errors.constructor","TypeScript.Errors.argument","TypeScript.Errors.argumentOutOfRange","TypeScript.Errors.argumentNull","TypeScript.Errors.abstract","TypeScript.Errors.notYetImplemented","TypeScript.Errors.invalidOperation","TypeScript.ArrayUtilities","TypeScript.ArrayUtilities.constructor","TypeScript.ArrayUtilities.sequenceEquals","TypeScript.ArrayUtilities.contains","TypeScript.ArrayUtilities.distinct","TypeScript.ArrayUtilities.last","TypeScript.ArrayUtilities.lastOrDefault","TypeScript.ArrayUtilities.firstOrDefault","TypeScript.ArrayUtilities.first","TypeScript.ArrayUtilities.sum","TypeScript.ArrayUtilities.select","TypeScript.ArrayUtilities.where","TypeScript.ArrayUtilities.any","TypeScript.ArrayUtilities.all","TypeScript.ArrayUtilities.binarySearch","TypeScript.ArrayUtilities.createArray","TypeScript.ArrayUtilities.grow","TypeScript.ArrayUtilities.copy","TypeScript.ArrayUtilities.indexOf","TypeScript.StringUtilities","TypeScript.StringUtilities.constructor","TypeScript.StringUtilities.isString","TypeScript.StringUtilities.endsWith","TypeScript.StringUtilities.startsWith","TypeScript.StringUtilities.repeat","TypeScript.SyntaxKind","TypeScript.SyntaxFacts","TypeScript.SyntaxFacts.getTokenKind","TypeScript.SyntaxFacts.getText","TypeScript.SyntaxFacts.isAnyKeyword","TypeScript.SyntaxFacts.isAnyPunctuation","TypeScript.SyntaxFacts.isPrefixUnaryExpressionOperatorToken","TypeScript.SyntaxFacts.isBinaryExpressionOperatorToken","TypeScript.SyntaxFacts.isAssignmentOperatorToken","TypeScript.SyntaxFacts.isType","firstKind","getStringWithoutSuffix","getNameWithoutSuffix","getType","camelCase","getSafeName","generateConstructorFunction","generateSyntaxInterfaces","generateSyntaxInterface","generateNodes","isInterface","generateWalker","firstEnumName","groupBy","generateKeywordCondition","min","max","generateUtilities","generateScannerUtilities","syntaxKindName","generateVisitor"],"mappings":"AA4BA,IAAI,GAAG,GAAW,CAAC;IAEf,SAAS,gBAAgB;QAErBA,IAAIA,GAAGA,GAAGA,IAAIA,aAAaA,CAACA,4BAA4BA,CAACA,CAACA;QAE1DA,IAAIA,UAAUA,GAAGA,IAAIA,aAAaA,CAACA,cAAcA,CAACA,CAACA;QACnDA,UAAUA,CAACA,IAAIA,GAAGA,CAACA,CAAUA;QAE7BA,IAAIA,YAAYA,GAAGA,IAAIA,aAAaA,CAACA,cAAcA,CAACA,CAACA;QACrDA,YAAYA,CAACA,IAAIA,GAAGA,CAACA,CAAYA;QAEjCA,IAAIA,IAAIA,GAAaA,EAAEA,CAACA;QACxBA,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,OAAOA,CAACA,SAASA,CAACA,MAAMA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;YAChDA,IAAIA,CAACA,CAACA,CAACA,GAAGA,OAAOA,CAACA,SAASA,CAACA,IAAIA,CAACA,CAACA,CAACA,CAACA;QACxCA,CAACA;QAEDA,SAASA,QAAQA,CAACA,QAAgBA,EAAEA,QAAiBA;YACjDC,EAAEA,CAACA,CAACA,CAACA,GAAGA,CAACA,UAAUA,CAACA,QAAQA,CAACA,CAACA,CAACA,CAACA;gBAC5BA,MAAMA,CAACA,SAASA,CAACA;YACrBA,CAACA;YACDA,UAAUA,CAACA,IAAIA,EAAEA,CAACA;YAClBA,IAAAA,CAACA;gBACGA,EAAEA,CAACA,CAACA,QAAQA,CAACA,CAACA,CAACA;oBACXA,UAAUA,CAACA,OAAOA,GAAGA,QAAQA,CAACA;oBAC9BA,UAAUA,CAACA,YAAYA,CAACA,QAAQA,CAACA,CAACA;gBACtCA,CAACA;gBACDA,IAAIA,CAACA,CAACA;oBAEFA,UAAUA,CAACA,OAAOA,GAAGA,QAAQA,CAACA;oBAC9BA,UAAUA,CAACA,YAAYA,CAACA,QAAQA,CAACA,CAACA;oBAClCA,IAAIA,GAAGA,GAAGA,UAAUA,CAACA,QAAQA,CAACA,CAACA,CAACA,IAAIA,EAAEA,CAACA;oBAEvCA,UAAUA,CAACA,QAAQA,GAAGA,CAACA,CAACA;oBAExBA,UAAUA,CAACA,OAAOA,GAAGA,GAAGA,CAACA,MAAMA,IAAIA,CAACA,IAAIA,CAACA,GAAGA,CAACA,UAAUA,CAACA,CAACA,CAACA,KAAKA,IAAIA,IAAIA,GAAGA,CAACA,UAAUA,CAACA,CAACA,CAACA,KAAKA,IAAIA,IAAIA,GAAGA,CAACA,UAAUA,CAACA,CAACA,CAACA,KAAKA,IAAIA,IAAIA,GAAGA,CAACA,UAAUA,CAACA,CAACA,CAACA,KAAKA,IAAIA,CAACA,GAAGA,SAASA,GAAGA,OAAOA,CAACA;gBACzLA,CAACA;gBAEDA,MAAMA,CAACA,UAAUA,CAACA,QAAQA,EAAEA,CAACA;YACjCA,CACAA;YAAAA,KAAKA,CAACA,CAACA,CAACA,CAACA,CAATA,CAACA;gBACGA,MAAMA,CAACA,CAACA;YACZA,CAACA;oBACDA,CAACA;gBACGA,UAAUA,CAACA,KAAKA,EAAEA,CAACA;YACvBA,CAACA;QACLA,CAACA;QAEDD,SAASA,SAASA,CAACA,QAAgBA,EAAEA,IAAYA,EAAEA,kBAA4BA;YAC3EE,UAAUA,CAACA,IAAIA,EAAEA,CAACA;YAClBA,YAAYA,CAACA,IAAIA,EAAEA,CAACA;YACpBA,IAAAA,CAACA;gBAEGA,UAAUA,CAACA,OAAOA,GAAGA,OAAOA,CAACA;gBAC7BA,UAAUA,CAACA,SAASA,CAACA,IAAIA,CAACA,CAACA;gBAG3BA,EAAEA,CAACA,CAACA,kBAAkBA,CAACA,CAACA,CAACA;oBACrBA,UAAUA,CAACA,QAAQA,GAAGA,CAACA,CAACA;gBAC5BA,CAACA;gBACDA,IAAIA,CAACA,CAACA;oBACFA,UAAUA,CAACA,QAAQA,GAAGA,CAACA,CAACA;gBAC5BA,CAACA;gBACDA,UAAUA,CAACA,MAAMA,CAACA,YAAYA,CAACA,CAACA;gBAChCA,YAAYA,CAACA,UAAUA,CAACA,QAAQA,EAAEA,CAACA,CAAeA,CAACA;YACvDA,CAACA;oBACDA,CAACA;gBACGA,YAAYA,CAACA,KAAKA,EAAEA,CAACA;gBACrBA,UAAUA,CAACA,KAAKA,EAAEA,CAACA;YACvBA,CAACA;QACLA,CAACA;QAEDF,MAAMA,CAACA;YACHA,IAAIA,EAAEA,IAAIA;YACVA,OAAOA,EAAEA,MAAMA;YACfA,yBAAyBA,EAAEA,KAAKA;YAChCA,KAAKA,EAALA,UAAMA,CAASA;gBACX,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAC5B,CAAC;YACDA,QAAQA,EAAEA,QAAQA;YAClBA,SAASA,EAAEA,SAASA;YACpBA,WAAWA,EAAXA,UAAYA,IAAYA;gBACpB,MAAM,CAAC,GAAG,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;YACzC,CAAC;YACDA,UAAUA,EAAVA,UAAWA,IAAYA;gBACnB,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YAChC,CAAC;YACDA,eAAeA,EAAfA,UAAgBA,IAAYA;gBACxB,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;YAClC,CAAC;YACDA,eAAeA,EAAfA,UAAgBA,aAAqBA;gBACjC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;oBACvC,GAAG,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC;gBACpC,CAAC;YACL,CAAC;YACDA,oBAAoBA,EAApBA;gBACI,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC;YAClC,CAAC;YACDA,mBAAmBA,EAAnBA;gBACI,MAAM,CAAC,IAAI,aAAa,CAAC,eAAe,CAAC,CAAC,gBAAgB,CAAC;YAC/D,CAAC;YACDA,IAAIA,EAAJA,UAAKA,QAAiBA;gBAClB,IAAA,CAAC;oBACG,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBAC3B,CACA;gBAAA,KAAK,CAAC,CAAC,CAAC,CAAC,CAAT,CAAC;gBACD,CAAC;YACL,CAAC;SACJA,CAACA;IACNA,CAACA;IACD,SAAS,aAAa;QAClBG,IAAIA,GAAGA,GAAGA,OAAOA,CAACA,IAAIA,CAACA,CAACA;QACxBA,IAAIA,KAAKA,GAAGA,OAAOA,CAACA,MAAMA,CAACA,CAACA;QAC5BA,IAAIA,GAAGA,GAAGA,OAAOA,CAACA,IAAIA,CAACA,CAACA;QAExBA,IAAIA,QAAQA,GAAWA,GAAGA,CAACA,QAAQA,EAAEA,CAACA;QAEtCA,IAAIA,yBAAyBA,GAAGA,QAAQA,KAAKA,OAAOA,IAAIA,QAAQA,KAAKA,OAAOA,IAAIA,QAAQA,KAAKA,QAAQA,CAACA;QAEtGA,SAASA,QAAQA,CAACA,QAAgBA,EAAEA,QAAiBA;YACjDC,EAAEA,CAACA,CAACA,CAACA,GAAGA,CAACA,UAAUA,CAACA,QAAQA,CAACA,CAACA,CAACA,CAACA;gBAC5BA,MAAMA,CAACA,SAASA,CAACA;YACrBA,CAACA;YACDA,IAAIA,MAAMA,GAAGA,GAAGA,CAACA,YAAYA,CAACA,QAAQA,CAACA,CAACA;YACxCA,IAAIA,GAAGA,GAAGA,MAAMA,CAACA,MAAMA,CAACA;YACxBA,EAAEA,CAACA,CAACA,GAAGA,IAAIA,CAACA,IAAIA,MAAMA,CAACA,CAACA,CAACA,KAAKA,IAAIA,IAAIA,MAAMA,CAACA,CAACA,CAACA,KAAKA,IAAIA,CAACA,CAACA,CAACA;gBAGvDA,GAAGA,IAAIA,CAACA,CAACA,CAACA;gBACVA,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,GAAGA,EAAEA,CAACA,IAAIA,CAACA,EAAEA,CAACA;oBAC9BA,IAAIA,IAAIA,GAAGA,MAAMA,CAACA,CAACA,CAACA,CAACA;oBACrBA,MAAMA,CAACA,CAACA,CAACA,GAAGA,MAAMA,CAACA,CAACA,GAAGA,CAACA,CAACA,CAACA;oBAC1BA,MAAMA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,IAAIA,CAACA;gBACzBA,CAACA;gBACDA,MAAMA,CAACA,MAAMA,CAACA,QAAQA,CAACA,SAASA,EAAEA,CAACA,CAACA,CAACA;YACzCA,CAACA;YACDA,EAAEA,CAACA,CAACA,GAAGA,IAAIA,CAACA,IAAIA,MAAMA,CAACA,CAACA,CAACA,KAAKA,IAAIA,IAAIA,MAAMA,CAACA,CAACA,CAACA,KAAKA,IAAIA,CAACA,CAACA,CAACA;gBAEvDA,MAAMA,CAACA,MAAMA,CAACA,QAAQA,CAACA,SAASA,EAAEA,CAACA,CAACA,CAACA;YACzCA,CAACA;YACDA,EAAEA,CAACA,CAACA,GAAGA,IAAIA,CAACA,IAAIA,MAAMA,CAACA,CAACA,CAACA,KAAKA,IAAIA,IAAIA,MAAMA,CAACA,CAACA,CAACA,KAAKA,IAAIA,IAAIA,MAAMA,CAACA,CAACA,CAACA,KAAKA,IAAIA,CAACA,CAACA,CAACA;gBAE7EA,MAAMA,CAACA,MAAMA,CAACA,QAAQA,CAACA,MAAMA,EAAEA,CAACA,CAACA,CAACA;YACtCA,CAACA;YAEDA,MAAMA,CAACA,MAAMA,CAACA,QAAQA,CAACA,MAAMA,CAACA,CAACA;QACnCA,CAACA;QAEDD,SAASA,SAASA,CAACA,QAAgBA,EAAEA,IAAYA,EAAEA,kBAA4BA;YAE3EE,EAAEA,CAACA,CAACA,kBAAkBA,CAACA,CAACA,CAACA;gBACrBA,IAAIA,GAAGA,QAAQA,GAAGA,IAAIA,CAACA;YAC3BA,CAACA;YAEDA,GAAGA,CAACA,aAAaA,CAACA,QAAQA,EAAEA,IAAIA,EAAEA,MAAMA,CAACA,CAACA;QAC9CA,CAACA;QAEDF,MAAMA,CAACA;YACHA,IAAIA,EAAEA,OAAOA,CAACA,IAAIA,CAACA,KAAKA,CAACA,CAACA,CAACA;YAC3BA,OAAOA,EAAEA,GAAGA,CAACA,GAAGA;YAChBA,yBAAyBA,EAAEA,yBAAyBA;YACpDA,KAAKA,EAALA,UAAMA,CAASA;gBAEZ,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YACvB,CAAC;YACDA,QAAQA,EAAEA,QAAQA;YAClBA,SAASA,EAAEA,SAASA;YACpBA,SAASA,EAAEA,UAACA,QAAQA,EAAEA,QAAQA;gBAE1BA,GAAGA,CAACA,SAASA,CAACA,QAAQA,EAAEA,EAAEA,UAAUA,EAAEA,IAAIA,EAAEA,QAAQA,EAAEA,GAAGA,EAAEA,EAAEA,WAAWA,CAACA,CAACA;gBAE1EA,MAAMA,CAACA;oBACHA,KAAKA,EAALA;wBAAU,GAAG,CAAC,WAAW,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;oBAAC,CAAC;iBACtDA,CAACA;gBAEFA,SAASA,WAAWA,CAACA,IAASA,EAAEA,IAASA;oBACrCG,EAAEA,CAACA,CAACA,CAACA,IAAIA,CAACA,KAAKA,IAAIA,CAACA,IAAIA,CAACA,KAAKA,CAACA,CAACA,CAACA;wBAC7BA,MAAMA,CAACA;oBACXA,CAACA;oBAEDA,QAAQA,CAACA,QAAQA,CAACA,CAACA;gBACvBA,CAACA;gBAAAH,CAACA;YACNA,CAACA;YACDA,WAAWA,EAAEA,UAAUA,IAAYA;gBAC/B,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAC/B,CAAC;YACDA,UAAUA,EAAVA,UAAWA,IAAYA;gBACnB,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YAChC,CAAC;YACDA,eAAeA,EAAfA,UAAgBA,IAAYA;gBACxB,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC;YACpE,CAAC;YACDA,eAAeA,EAAfA,UAAgBA,aAAqBA;gBACjC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;oBACvC,GAAG,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;gBACjC,CAAC;YACL,CAAC;YACDA,oBAAoBA,EAApBA;gBACI,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC;YACvC,CAAC;YACDA,mBAAmBA,EAAnBA;gBACI,MAAM,CAAO,OAAQ,CAAC,GAAG,EAAE,CAAC;YAChC,CAAC;YACDA,cAAcA,EAAdA;gBACI,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;oBACZ,MAAM,CAAC,EAAE,EAAE,CAAC;gBAChB,CAAC;gBACD,MAAM,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC;YAC1C,CAAC;YACDA,IAAIA,EAAJA,UAAKA,QAAiBA;gBAClB,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC3B,CAAC;SACJA,CAACA;IACNA,CAACA;IACD,EAAE,CAAC,CAAC,OAAO,OAAO,KAAK,WAAW,IAAI,OAAO,aAAa,KAAK,UAAU,CAAC,CAAC,CAAC;QACxE,MAAM,CAAC,gBAAgB,EAAE,CAAC;IAC9B,CAAC;IACD,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,KAAK,WAAW,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;QACvD,MAAM,CAAC,aAAa,EAAE,CAAC;IAC3B,CAAC;IACD,IAAI,CAAC,CAAC;QACF,MAAM,CAAC,SAAS,CAAC;IACrB,CAAC;AACL,CAAC,CAAC,EAAE,CAAC;ACzPL,IAAO,UAAU,CA0BhB;AA1BD,WAAO,UAAU,EAAC,CAAC;IACfI,IAAaA,MAAMA;QAAnBC,SAAaA,MAAMA;QAwBnBC,CAACA;QAvBiBD,eAAQA,GAAtBA,UAAuBA,QAAgBA,EAAEA,OAAgBA;YACrDE,MAAMA,CAACA,IAAIA,KAAKA,CAACA,oBAAoBA,GAAGA,QAAQA,GAAGA,IAAIA,GAAGA,OAAOA,CAACA,CAACA;QACvEA,CAACA;QAEaF,yBAAkBA,GAAhCA,UAAiCA,QAAgBA;YAC7CG,MAAMA,CAACA,IAAIA,KAAKA,CAACA,yBAAyBA,GAAGA,QAAQA,CAACA,CAACA;QAC3DA,CAACA;QAEaH,mBAAYA,GAA1BA,UAA2BA,QAAgBA;YACvCI,MAAMA,CAACA,IAAIA,KAAKA,CAACA,iBAAiBA,GAAGA,QAAQA,CAACA,CAACA;QACnDA,CAACA;QAEaJ,eAAQA,GAAtBA;YACIK,MAAMA,CAACA,IAAIA,KAAKA,CAACA,iDAAiDA,CAACA,CAACA;QACxEA,CAACA;QAEaL,wBAAiBA,GAA/BA;YACIM,MAAMA,CAACA,IAAIA,KAAKA,CAACA,sBAAsBA,CAACA,CAACA;QAC7CA,CAACA;QAEaN,uBAAgBA,GAA9BA,UAA+BA,OAAgBA;YAC3CO,MAAMA,CAACA,IAAIA,KAAKA,CAACA,qBAAqBA,GAAGA,OAAOA,CAACA,CAACA;QACtDA,CAACA;QACLP,aAACA;IAADA,CAACA,AAxBDD,IAwBCA;IAxBYA,iBAAMA,GAANA,MAwBZA,CAAAA;AACLA,CAACA,EA1BM,UAAU,KAAV,UAAU,QA0BhB;AC1BD,IAAO,UAAU,CA0MhB;AA1MD,WAAO,UAAU,EAAC,CAAC;IACfA,IAAaA,cAAcA;QAA3BS,SAAaA,cAAcA;QAwM3BC,CAACA;QAvMiBD,6BAAcA,GAA5BA,UAAgCA,MAAWA,EAAEA,MAAWA,EAAEA,MAAiCA;YACvFE,EAAEA,CAACA,CAACA,MAAMA,KAAKA,MAAMA,CAACA,CAACA,CAACA;gBACpBA,MAAMA,CAACA,IAAIA,CAACA;YAChBA,CAACA;YAEDA,EAAEA,CAACA,CAACA,CAACA,MAAMA,IAAIA,CAACA,MAAMA,CAACA,CAACA,CAACA;gBACrBA,MAAMA,CAACA,KAAKA,CAACA;YACjBA,CAACA;YAEDA,EAAEA,CAACA,CAACA,MAAMA,CAACA,MAAMA,KAAKA,MAAMA,CAACA,MAAMA,CAACA,CAACA,CAACA;gBAClCA,MAAMA,CAACA,KAAKA,CAACA;YACjBA,CAACA;YAEDA,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,MAAMA,CAACA,MAAMA,EAAEA,CAACA,GAAGA,CAACA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;gBAC5CA,EAAEA,CAACA,CAACA,CAACA,MAAMA,CAACA,MAAMA,CAACA,CAACA,CAACA,EAAEA,MAAMA,CAACA,CAACA,CAACA,CAACA,CAACA,CAACA,CAACA;oBAChCA,MAAMA,CAACA,KAAKA,CAACA;gBACjBA,CAACA;YACLA,CAACA;YAEDA,MAAMA,CAACA,IAAIA,CAACA;QAChBA,CAACA;QAEaF,uBAAQA,GAAtBA,UAA0BA,KAAUA,EAAEA,KAAQA;YAC1CG,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,KAAKA,CAACA,MAAMA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;gBACpCA,EAAEA,CAACA,CAACA,KAAKA,CAACA,CAACA,CAACA,KAAKA,KAAKA,CAACA,CAACA,CAACA;oBACrBA,MAAMA,CAACA,IAAIA,CAACA;gBAChBA,CAACA;YACLA,CAACA;YAEDA,MAAMA,CAACA,KAAKA,CAACA;QACjBA,CAACA;QAGaH,uBAAQA,GAAtBA,UAA0BA,KAAUA,EAAEA,QAAkCA;YACpEI,IAAIA,MAAMA,GAAQA,EAAEA,CAACA;YAGrBA,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,KAAKA,CAACA,MAAMA,EAAEA,CAACA,GAAGA,CAACA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;gBAC3CA,IAAIA,OAAOA,GAAGA,KAAKA,CAACA,CAACA,CAACA,CAACA;gBACvBA,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,MAAMA,CAACA,MAAMA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;oBACrCA,EAAEA,CAACA,CAACA,QAAQA,CAACA,MAAMA,CAACA,CAACA,CAACA,EAAEA,OAAOA,CAACA,CAACA,CAACA,CAACA;wBAC/BA,KAAKA,CAACA;oBACVA,CAACA;gBACLA,CAACA;gBAEDA,EAAEA,CAACA,CAACA,CAACA,KAAKA,MAAMA,CAACA,MAAMA,CAACA,CAACA,CAACA;oBACtBA,MAAMA,CAACA,IAAIA,CAACA,OAAOA,CAACA,CAACA;gBACzBA,CAACA;YACLA,CAACA;YAEDA,MAAMA,CAACA,MAAMA,CAACA;QAClBA,CAACA;QAEaJ,mBAAIA,GAAlBA,UAAsBA,KAAUA;YAC5BK,EAAEA,CAACA,CAACA,KAAKA,CAACA,MAAMA,KAAKA,CAACA,CAACA,CAACA,CAACA;gBACrBA,MAAMA,iBAAMA,CAACA,kBAAkBA,CAACA,OAAOA,CAACA,CAACA;YAC7CA,CAACA;YAEDA,MAAMA,CAACA,KAAKA,CAACA,KAAKA,CAACA,MAAMA,GAAGA,CAACA,CAACA,CAACA;QACnCA,CAACA;QAEaL,4BAAaA,GAA3BA,UAA+BA,KAAUA,EAAEA,SAA2CA;YAClFM,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,KAAKA,CAACA,MAAMA,GAAGA,CAACA,EAAEA,CAACA,IAAIA,CAACA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;gBACzCA,IAAIA,CAACA,GAAGA,KAAKA,CAACA,CAACA,CAACA,CAACA;gBACjBA,EAAEA,CAACA,CAACA,SAASA,CAACA,CAACA,EAAEA,CAACA,CAACA,CAACA,CAACA,CAACA;oBAClBA,MAAMA,CAACA,CAACA,CAACA;gBACbA,CAACA;YACLA,CAACA;YAEDA,MAAMA,CAACA,SAASA,CAACA;QACrBA,CAACA;QAEaN,6BAAcA,GAA5BA,UAAgCA,KAAUA,EAAEA,IAAsCA;YAC9EO,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,KAAKA,CAACA,MAAMA,EAAEA,CAACA,GAAGA,CAACA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;gBAC3CA,IAAIA,KAAKA,GAAGA,KAAKA,CAACA,CAACA,CAACA,CAACA;gBACrBA,EAAEA,CAACA,CAACA,IAAIA,CAACA,KAAKA,EAAEA,CAACA,CAACA,CAACA,CAACA,CAACA;oBACjBA,MAAMA,CAACA,KAAKA,CAACA;gBACjBA,CAACA;YACLA,CAACA;YAEDA,MAAMA,CAACA,SAASA,CAACA;QACrBA,CAACA;QAEaP,oBAAKA,GAAnBA,UAAuBA,KAAUA,EAAEA,IAAuCA;YACtEQ,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,KAAKA,CAACA,MAAMA,EAAEA,CAACA,GAAGA,CAACA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;gBAC3CA,IAAIA,KAAKA,GAAGA,KAAKA,CAACA,CAACA,CAACA,CAACA;gBACrBA,EAAEA,CAACA,CAACA,CAACA,IAAIA,IAAIA,IAAIA,CAACA,KAAKA,EAAEA,CAACA,CAACA,CAACA,CAACA,CAACA;oBAC1BA,MAAMA,CAACA,KAAKA,CAACA;gBACjBA,CAACA;YACLA,CAACA;YAEDA,MAAMA,iBAAMA,CAACA,gBAAgBA,EAAEA,CAACA;QACpCA,CAACA;QAEaR,kBAAGA,GAAjBA,UAAqBA,KAAUA,EAAEA,IAAsBA;YACnDS,IAAIA,MAAMA,GAAGA,CAACA,CAACA;YAEfA,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,KAAKA,CAACA,MAAMA,EAAEA,CAACA,GAAGA,CAACA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;gBAC3CA,MAAMA,IAAIA,IAAIA,CAACA,KAAKA,CAACA,CAACA,CAACA,CAACA,CAACA;YAC7BA,CAACA;YAEDA,MAAMA,CAACA,MAAMA,CAACA;QAClBA,CAACA;QAEaT,qBAAMA,GAApBA,UAA0BA,MAAWA,EAAEA,IAAiBA;YACpDU,IAAIA,MAAMA,GAAQA,IAAIA,KAAKA,CAAIA,MAAMA,CAACA,MAAMA,CAACA,CAACA;YAE9CA,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,MAAMA,CAACA,MAAMA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;gBACrCA,MAAMA,CAACA,CAACA,CAACA,GAAGA,IAAIA,CAACA,MAAMA,CAACA,CAACA,CAACA,CAACA,CAACA;YAChCA,CAACA;YAEDA,MAAMA,CAACA,MAAMA,CAACA;QAClBA,CAACA;QAEaV,oBAAKA,GAAnBA,UAAuBA,MAAWA,EAAEA,IAAuBA;YACvDW,IAAIA,MAAMA,GAAGA,IAAIA,KAAKA,EAAKA,CAACA;YAE5BA,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,MAAMA,CAACA,MAAMA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;gBACrCA,EAAEA,CAACA,CAACA,IAAIA,CAACA,MAAMA,CAACA,CAACA,CAACA,CAACA,CAACA,CAACA,CAACA;oBAClBA,MAAMA,CAACA,IAAIA,CAACA,MAAMA,CAACA,CAACA,CAACA,CAACA,CAACA;gBAC3BA,CAACA;YACLA,CAACA;YAEDA,MAAMA,CAACA,MAAMA,CAACA;QAClBA,CAACA;QAEaX,kBAAGA,GAAjBA,UAAqBA,KAAUA,EAAEA,IAAuBA;YACpDY,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,KAAKA,CAACA,MAAMA,EAAEA,CAACA,GAAGA,CAACA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;gBAC3CA,EAAEA,CAACA,CAACA,IAAIA,CAACA,KAAKA,CAACA,CAACA,CAACA,CAACA,CAACA,CAACA,CAACA;oBACjBA,MAAMA,CAACA,IAAIA,CAACA;gBAChBA,CAACA;YACLA,CAACA;YAEDA,MAAMA,CAACA,KAAKA,CAACA;QACjBA,CAACA;QAEaZ,kBAAGA,GAAjBA,UAAqBA,KAAUA,EAAEA,IAAuBA;YACpDa,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,KAAKA,CAACA,MAAMA,EAAEA,CAACA,GAAGA,CAACA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;gBAC3CA,EAAEA,CAACA,CAACA,CAACA,IAAIA,CAACA,KAAKA,CAACA,CAACA,CAACA,CAACA,CAACA,CAACA,CAACA;oBAClBA,MAAMA,CAACA,KAAKA,CAACA;gBACjBA,CAACA;YACLA,CAACA;YAEDA,MAAMA,CAACA,IAAIA,CAACA;QAChBA,CAACA;QAEab,2BAAYA,GAA1BA,UAA2BA,KAAeA,EAAEA,KAAaA;YACrDc,IAAIA,GAAGA,GAAGA,CAACA,CAACA;YACZA,IAAIA,IAAIA,GAAGA,KAAKA,CAACA,MAAMA,GAAGA,CAACA,CAACA;YAE5BA,OAAOA,GAAGA,IAAIA,IAAIA,EAAEA,CAACA;gBACjBA,IAAIA,MAAMA,GAAGA,GAAGA,GAAGA,CAACA,CAACA,IAAIA,GAAGA,GAAGA,CAACA,IAAIA,CAACA,CAACA,CAACA;gBACvCA,IAAIA,QAAQA,GAAGA,KAAKA,CAACA,MAAMA,CAACA,CAACA;gBAE7BA,EAAEA,CAACA,CAACA,QAAQA,KAAKA,KAAKA,CAACA,CAACA,CAACA;oBACrBA,MAAMA,CAACA,MAAMA,CAACA;gBAClBA,CAACA;gBACDA,IAAIA,CAACA,EAAEA,CAACA,CAACA,QAAQA,GAAGA,KAAKA,CAACA,CAACA,CAACA;oBACxBA,IAAIA,GAAGA,MAAMA,GAAGA,CAACA,CAACA;gBACtBA,CAACA;gBACDA,IAAIA,CAACA,CAACA;oBACFA,GAAGA,GAAGA,MAAMA,GAAGA,CAACA,CAACA;gBACrBA,CAACA;YACLA,CAACA;YAEDA,MAAMA,CAACA,CAACA,GAAGA,CAACA;QAChBA,CAACA;QAEad,0BAAWA,GAAzBA,UAA6BA,MAAcA,EAAEA,YAAiBA;YAC1De,IAAIA,MAAMA,GAAGA,IAAIA,KAAKA,CAAIA,MAAMA,CAACA,CAACA;YAClCA,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,MAAMA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;gBAC9BA,MAAMA,CAACA,CAACA,CAACA,GAAGA,YAAYA,CAACA;YAC7BA,CAACA;YAEDA,MAAMA,CAACA,MAAMA,CAACA;QAClBA,CAACA;QAEaf,mBAAIA,GAAlBA,UAAsBA,KAAUA,EAAEA,MAAcA,EAAEA,YAAeA;YAC7DgB,IAAIA,KAAKA,GAAGA,MAAMA,GAAGA,KAAKA,CAACA,MAAMA,CAACA;YAClCA,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,KAAKA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;gBAC7BA,KAAKA,CAACA,IAAIA,CAACA,YAAYA,CAACA,CAACA;YAC7BA,CAACA;QACLA,CAACA;QAEahB,mBAAIA,GAAlBA,UAAsBA,WAAgBA,EAAEA,WAAmBA,EAAEA,gBAAqBA,EAAEA,gBAAwBA,EAAEA,MAAcA;YACxHiB,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,MAAMA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;gBAC9BA,gBAAgBA,CAACA,gBAAgBA,GAAGA,CAACA,CAACA,GAAGA,WAAWA,CAACA,WAAWA,GAAGA,CAACA,CAACA,CAACA;YAC1EA,CAACA;QACLA,CAACA;QAEajB,sBAAOA,GAArBA,UAAyBA,KAAUA,EAAEA,SAA4BA;YAC7DkB,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,KAAKA,CAACA,MAAMA,EAAEA,CAACA,GAAGA,CAACA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;gBAC3CA,EAAEA,CAACA,CAACA,SAASA,CAACA,KAAKA,CAACA,CAACA,CAACA,CAACA,CAACA,CAACA,CAACA;oBACtBA,MAAMA,CAACA,CAACA,CAACA;gBACbA,CAACA;YACLA,CAACA;YAEDA,MAAMA,CAACA,CAACA,CAACA,CAACA;QACdA,CAACA;QACLlB,qBAACA;IAADA,CAACA,AAxMDT,IAwMCA;IAxMYA,yBAAcA,GAAdA,cAwMZA,CAAAA;AACLA,CAACA,EA1MM,UAAU,KAAV,UAAU,QA0MhB;AC1MD,IAAO,UAAU,CAkBhB;AAlBD,WAAO,UAAU,EAAC,CAAC;IACfA,IAAaA,eAAeA;QAA5B4B,SAAaA,eAAeA;QAgB5BC,CAACA;QAfiBD,wBAAQA,GAAtBA,UAAuBA,KAAUA;YAC7BE,MAAMA,CAACA,MAAMA,CAACA,SAASA,CAACA,QAAQA,CAACA,KAAKA,CAACA,KAAKA,EAAEA,EAAEA,CAACA,KAAKA,iBAAiBA,CAACA;QAC5EA,CAACA;QAEaF,wBAAQA,GAAtBA,UAAuBA,MAAcA,EAAEA,KAAaA;YAChDG,MAAMA,CAACA,MAAMA,CAACA,SAASA,CAACA,MAAMA,CAACA,MAAMA,GAAGA,KAAKA,CAACA,MAAMA,EAAEA,MAAMA,CAACA,MAAMA,CAACA,KAAKA,KAAKA,CAACA;QACnFA,CAACA;QAEaH,0BAAUA,GAAxBA,UAAyBA,MAAcA,EAAEA,KAAaA;YAClDI,MAAMA,CAACA,MAAMA,CAACA,MAAMA,CAACA,CAACA,EAAEA,KAAKA,CAACA,MAAMA,CAACA,KAAKA,KAAKA,CAACA;QACpDA,CAACA;QAEaJ,sBAAMA,GAApBA,UAAqBA,KAAaA,EAAEA,KAAaA;YAC7CK,MAAMA,CAACA,KAAKA,CAACA,KAAKA,GAAGA,CAACA,CAACA,CAACA,IAAIA,CAACA,KAAKA,CAACA,CAACA;QACxCA,CAACA;QACLL,sBAACA;IAADA,CAACA,AAhBD5B,IAgBCA;IAhBYA,0BAAeA,GAAfA,eAgBZA,CAAAA;AACLA,CAACA,EAlBM,UAAU,KAAV,UAAU,QAkBhB;AClBD,IAAO,UAAU,CA4ShB;AA5SD,WAAO,UAAU,EAAC,CAAC;IACfA,WAAYA,UAAUA;QAElBkC,2CAAIA;QACJA,2CAAIA;QAGJA,mEAAgBA;QAChBA,6DAAaA;QACbA,+EAAsBA;QACtBA,iFAAuBA;QACvBA,uEAAkBA;QAIlBA,uDAAUA;QACVA,+DAAcA;QAGdA,+DAAcA;QAGdA,oFAAwBA;QACxBA,gEAAcA;QACdA,8DAAaA;QAGbA,0FAA2BA;QAC3BA,wEAAkBA;QAClBA,0EAAmBA;QACnBA,oEAAgBA;QAKhBA,4DAAYA;QACZA,0DAAWA;QACXA,4DAAYA;QACZA,kEAAeA;QACfA,kEAAeA;QACfA,gEAAcA;QACdA,8DAAaA;QACbA,sDAASA;QACTA,0DAAWA;QACXA,4DAAYA;QACZA,gEAAcA;QACdA,wDAAUA;QACVA,kEAAeA;QACfA,sDAASA;QACTA,sDAASA;QACTA,sEAAiBA;QACjBA,wDAAUA;QACVA,0DAAWA;QACXA,8DAAaA;QACbA,8DAAaA;QACbA,0DAAWA;QACXA,4DAAYA;QACZA,0DAAWA;QACXA,wDAAUA;QACVA,8DAAaA;QACbA,wDAAUA;QACVA,0DAAWA;QACXA,4DAAYA;QACZA,0DAAWA;QAGXA,4DAAYA;QACZA,4DAAYA;QACZA,0DAAWA;QACXA,8DAAaA;QACbA,gEAAcA;QACdA,8DAAaA;QACbA,4DAAYA;QAGZA,sEAAiBA;QACjBA,oEAAgBA;QAChBA,wDAAUA;QACVA,gEAAcA;QACdA,gEAAcA;QACdA,oEAAgBA;QAChBA,8DAAaA;QACbA,8DAAaA;QACbA,4DAAYA;QAGZA,wDAAUA;QACVA,gEAAcA;QACdA,wEAAkBA;QAClBA,gEAAcA;QACdA,wDAAUA;QACVA,8DAAaA;QACbA,gEAAcA;QACdA,8DAAaA;QACbA,wDAAUA;QACVA,8DAAaA;QAGbA,gEAAcA;QACdA,kEAAeA;QACfA,gEAAcA;QACdA,kEAAeA;QACfA,oEAAgBA;QAChBA,sEAAiBA;QACjBA,oDAAQA;QACRA,gEAAcA;QACdA,gEAAcA;QACdA,wDAAUA;QACVA,8DAAaA;QACbA,oEAAgBA;QAChBA,0EAAmBA;QACnBA,gFAAsBA;QACtBA,sEAAiBA;QACjBA,gFAAsBA;QACtBA,gFAAsBA;QACtBA,kFAAuBA;QACvBA,4FAA4BA;QAC5BA,sDAASA;QACTA,wDAAUA;QACVA,8DAAaA;QACbA,4DAAYA;QACZA,8DAAaA;QACbA,kEAAeA;QACfA,8EAAqBA;QACrBA,0FAA2BA;QAC3BA,gHAAsCA;QACtCA,iEAAcA;QACdA,qDAAQA;QACRA,yDAAUA;QACVA,qEAAgBA;QAChBA,yDAAUA;QACVA,mFAAuBA;QACvBA,2DAAWA;QACXA,+DAAaA;QACbA,yDAAUA;QACVA,2DAAWA;QACXA,mEAAeA;QACfA,qEAAgBA;QAChBA,2EAAmBA;QACnBA,yEAAkBA;QAClBA,2FAA2BA;QAC3BA,uGAAiCA;QACjCA,6HAA4CA;QAC5CA,6EAAoBA;QACpBA,iEAAcA;QACdA,qEAAgBA;QAChBA,yDAAUA;QACVA,qEAAgBA;QAGhBA,yDAAUA;QAGVA,+DAAaA;QAGbA,yDAAUA;QACVA,6DAAYA;QACZA,uDAASA;QACTA,mEAAeA;QACfA,2DAAWA;QACXA,uDAASA;QACTA,uDAASA;QACTA,uDAASA;QACTA,uEAAiBA;QAGjBA,6EAAoBA;QACpBA,2EAAmBA;QACnBA,uEAAiBA;QACjBA,qEAAgBA;QAChBA,mEAAeA;QACfA,uEAAiBA;QACjBA,qEAAgBA;QAGhBA,uFAAyBA;QACzBA,uFAAyBA;QACzBA,iFAAsBA;QACtBA,iFAAsBA;QAGtBA,2DAAWA;QACXA,2DAAWA;QAGXA,uEAAiBA;QACjBA,+DAAaA;QACbA,yEAAkBA;QAClBA,iEAAcA;QACdA,mEAAeA;QAGfA,+CAAKA;QACLA,2DAAWA;QACXA,uEAAiBA;QACjBA,2EAAmBA;QACnBA,mEAAeA;QACfA,mEAAeA;QACfA,iEAAcA;QACdA,uEAAiBA;QACjBA,6DAAYA;QACZA,iEAAcA;QACdA,iEAAcA;QACdA,iEAAcA;QACdA,iEAAcA;QACdA,6DAAYA;QACZA,qEAAgBA;QAChBA,2DAAWA;QACXA,uEAAiBA;QACjBA,+DAAaA;QAGbA,+EAAqBA;QACrBA,qEAAgBA;QAChBA,qEAAgBA;QAChBA,iEAAcA;QACdA,+EAAqBA;QACrBA,qEAAgBA;QAChBA,iFAAsBA;QACtBA,iFAAsBA;QACtBA,6EAAoBA;QACpBA,iFAAsBA;QACtBA,mFAAuBA;QACvBA,qFAAwBA;QACxBA,mFAAuBA;QACvBA,6GAAoCA;QACpCA,+FAA6BA;QAC7BA,iEAAcA;QACdA,mFAAuBA;QACvBA,yEAAkBA;QAClBA,uEAAiBA;QACjBA,yEAAkBA;QAClBA,qFAAwBA;QAGxBA,2EAAmBA;QACnBA,yEAAkBA;QAGlBA,6DAAYA;QACZA,+DAAaA;QACbA,qEAAgBA;QAChBA,uEAAiBA;QAGjBA,iEAAcA;QACdA,uEAAiBA;QACjBA,qEAAgBA;QAChBA,2EAAmBA;QACnBA,yDAAUA;QACVA,2DAAWA;QACXA,+DAAaA;QACbA,iEAAcA;QAGdA,+DAAaA;QACbA,yDAAUA;QAGVA,qFAAwBA;QACxBA,yFAA0BA;QAG1BA,uDAASA;QACTA,2DAAWA;QACXA,iEAAcA;QACdA,mFAAuBA;QACvBA,uFAAyBA;QAEzBA,gDAAuBA,uBAAYA,0BAAAA;QACnCA,+CAAsBA,sBAAWA,yBAAAA;QAEjCA,sDAA6BA,uBAAYA,gCAAAA;QACzCA,qDAA4BA,uBAAYA,+BAAAA;QAExCA,4DAAmCA,4BAAiBA,sCAAAA;QACpDA,2DAAkCA,uBAAYA,qCAAAA;QAE9CA,kDAAyBA,qBAAUA,4BAAAA;QACnCA,iDAAwBA,wBAAaA,2BAAAA;QAErCA,wCAAeA,+BAAoBA,kBAAAA;QACnCA,uCAAcA,gCAAqBA,iBAAAA;QAEnCA,sCAAaA,qBAAUA,gBAAAA;QACvBA,qCAAYA,2BAAgBA,eAAAA;QAE5BA,4CAAmBA,yBAAcA,sBAAAA;QACjCA,2CAAkBA,2BAAgBA,qBAAAA;QAElCA,2CAAkBA,uBAAYA,qBAAAA;QAC9BA,0CAAiBA,0BAAeA,oBAAAA;QAEhCA,uCAAcA,2BAAgBA,iBAAAA;QAC9BA,sCAAaA,6BAAkBA,gBAAAA;QAE/BA,qCAAYA,qBAAUA,eAAAA;QACtBA,oCAAWA,oCAAyBA,cAAAA;IACxCA,CAACA,EA1SWlC,qBAAUA,KAAVA,qBAAUA,QA0SrBA;IA1SDA,IAAYA,UAAUA,GAAVA,qBA0SXA,CAAAA;AACLA,CAACA,EA5SM,UAAU,KAAV,UAAU,QA4ShB;AC5SD,IAAO,UAAU,CAoPhB;AApPD,WAAO,UAAU;IAACA,IAAAA,WAAWA,CAoP5BA;IApPiBA,WAAAA,WAAWA,EAACA,CAACA;QAC3BmC,IAAIA,iBAAiBA,GAAQA;YACzBA,KAAKA,EAAEA,mBAAqBA;YAC5BA,SAASA,EAAEA,uBAAyBA;YACpCA,OAAOA,EAAEA,qBAAuBA;YAChCA,MAAMA,EAAEA,oBAAsBA;YAC9BA,OAAOA,EAAEA,qBAAuBA;YAChCA,OAAOA,EAAEA,qBAAuBA;YAChCA,UAAUA,EAAEA,wBAA0BA;YACtCA,OAAOA,EAAEA,qBAAuBA;YAChCA,aAAaA,EAAEA,2BAA6BA;YAC5CA,UAAUA,EAAEA,wBAA0BA;YACtCA,SAASA,EAAEA,uBAAyBA;YACpCA,SAASA,EAAEA,uBAAyBA;YACpCA,QAAQA,EAAEA,sBAAwBA;YAClCA,IAAIA,EAAEA,kBAAoBA;YAC1BA,MAAMA,EAAEA,oBAAsBA;YAC9BA,MAAMA,EAAEA,oBAAsBA;YAC9BA,QAAQA,EAAEA,sBAAwBA;YAClCA,SAASA,EAAEA,uBAAyBA;YACpCA,OAAOA,EAAEA,qBAAuBA;YAChCA,SAASA,EAAEA,uBAAyBA;YACpCA,KAAKA,EAAEA,mBAAqBA;YAC5BA,UAAUA,EAAEA,wBAA0BA;YACtCA,KAAKA,EAAEA,mBAAqBA;YAC5BA,IAAIA,EAAEA,kBAAoBA;YAC1BA,YAAYA,EAAEA,0BAA4BA;YAC1CA,QAAQA,EAAEA,sBAAwBA;YAClCA,IAAIA,EAAEA,kBAAoBA;YAC1BA,YAAYA,EAAEA,0BAA4BA;YAC1CA,WAAWA,EAAEA,yBAA2BA;YACxCA,KAAKA,EAAEA,mBAAqBA;YAC5BA,QAAQA,EAAEA,sBAAwBA;YAClCA,KAAKA,EAAEA,mBAAqBA;YAC5BA,MAAMA,EAAEA,oBAAsBA;YAC9BA,QAAQA,EAACA,sBAAwBA;YACjCA,SAASA,EAAEA,uBAAyBA;YACpCA,SAASA,EAAEA,uBAAyBA;YACpCA,WAAWA,EAAEA,yBAA2BA;YACxCA,QAAQA,EAAEA,sBAAwBA;YAClCA,SAASA,EAAEA,uBAAyBA;YACpCA,QAAQA,EAAEA,sBAAwBA;YAClCA,KAAKA,EAAEA,mBAAqBA;YAC5BA,QAAQA,EAAEA,sBAAwBA;YAClCA,QAAQA,EAAEA,sBAAwBA;YAClCA,OAAOA,EAAEA,qBAAuBA;YAChCA,QAAQA,EAAEA,sBAAwBA;YAClCA,MAAMA,EAAEA,oBAAsBA;YAC9BA,OAAOA,EAAEA,qBAAuBA;YAChCA,MAAMA,EAAEA,oBAAsBA;YAC9BA,KAAKA,EAAEA,mBAAqBA;YAC5BA,QAAQA,EAAEA,sBAAwBA;YAClCA,KAAKA,EAAEA,mBAAqBA;YAC5BA,MAAMA,EAAEA,oBAAsBA;YAC9BA,OAAOA,EAAEA,qBAAuBA;YAChCA,MAAMA,EAAEA,oBAAsBA;YAC9BA,OAAOA,EAAEA,qBAAuBA;YAEhCA,GAAGA,EAAEA,uBAAyBA;YAC9BA,GAAGA,EAAEA,wBAA0BA;YAC/BA,GAAGA,EAAEA,uBAAyBA;YAC9BA,GAAGA,EAAEA,wBAA0BA;YAC/BA,GAAGA,EAAEA,yBAA2BA;YAChCA,GAAGA,EAAEA,0BAA4BA;YACjCA,GAAGA,EAAEA,iBAAmBA;YACxBA,KAAKA,EAAEA,uBAAyBA;YAChCA,GAAGA,EAAEA,uBAAyBA;YAC9BA,GAAGA,EAAEA,mBAAqBA;YAC1BA,GAAGA,EAAEA,sBAAwBA;YAC7BA,GAAGA,EAAEA,yBAA2BA;YAChCA,IAAIA,EAAEA,4BAA8BA;YACpCA,IAAIA,EAAEA,+BAAiCA;YACvCA,IAAIA,EAAEA,0BAA4BA;YAClCA,IAAIA,EAAEA,+BAAiCA;YACvCA,IAAIA,EAAEA,+BAAiCA;YACvCA,KAAKA,EAAEA,gCAAkCA;YACzCA,KAAKA,EAAEA,qCAAuCA;YAC9CA,GAAGA,EAAEA,kBAAoBA;YACzBA,GAAGA,EAAEA,mBAAqBA;YAC1BA,GAAGA,EAAEA,sBAAwBA;YAC7BA,GAAGA,EAAEA,qBAAuBA;YAC5BA,IAAIA,EAAEA,sBAAwBA;YAC9BA,IAAIA,EAAEA,wBAA0BA;YAChCA,IAAIA,EAAEA,8BAAgCA;YACtCA,IAAIA,EAAEA,oCAAsCA;YAC5CA,KAAKA,EAAEA,+CAAiDA;YACxDA,GAAGA,EAAEA,wBAAyBA;YAC9BA,GAAGA,EAAEA,kBAAmBA;YACxBA,GAAGA,EAAEA,oBAAqBA;YAC1BA,GAAGA,EAAEA,0BAA2BA;YAChCA,GAAGA,EAAEA,oBAAqBA;YAC1BA,IAAIA,EAAEA,iCAAkCA;YACxCA,IAAIA,EAAEA,qBAAsBA;YAC5BA,GAAGA,EAAEA,uBAAwBA;YAC7BA,GAAGA,EAAEA,oBAAqBA;YAC1BA,GAAGA,EAAEA,qBAAsBA;YAC3BA,IAAIA,EAAEA,yBAA0BA;YAChCA,IAAIA,EAAEA,0BAA2BA;YACjCA,IAAIA,EAAEA,6BAA8BA;YACpCA,IAAIA,EAAEA,4BAA6BA;YACnCA,KAAKA,EAAEA,qCAAsCA;YAC7CA,KAAKA,EAAEA,2CAA4CA;YACnDA,MAAMA,EAAEA,sDAAuDA;YAC/DA,IAAIA,EAAEA,8BAA+BA;YACrCA,IAAIA,EAAEA,wBAAyBA;YAC/BA,IAAIA,EAAEA,0BAA2BA;YACjCA,GAAGA,EAAEA,oBAAqBA;YAC1BA,IAAIA,EAAEA,0BAA2BA;SACpCA,CAACA;QAEFA,IAAIA,UAAUA,GAAGA,IAAIA,KAAKA,EAAUA,CAACA;QAErCA,GAAGA,CAACA,CAACA,GAAGA,CAACA,IAAIA,IAAIA,iBAAiBA,CAACA,CAACA,CAACA;YACjCA,EAAEA,CAACA,CAACA,iBAAiBA,CAACA,cAAcA,CAACA,IAAIA,CAACA,CAACA,CAACA,CAACA;gBAEzCA,UAAUA,CAACA,iBAAiBA,CAACA,IAAIA,CAACA,CAACA,GAAGA,IAAIA,CAACA;YAC/CA,CAACA;QACLA,CAACA;QAKDA,UAAUA,CAACA,2BAA6BA,CAACA,GAAGA,aAAaA,CAACA;QAE1DA,SAAgBA,YAAYA,CAACA,IAAYA;YACrCC,EAAEA,CAACA,CAACA,iBAAiBA,CAACA,cAAcA,CAACA,IAAIA,CAACA,CAACA,CAACA,CAACA;gBACzCA,MAAMA,CAACA,iBAAiBA,CAACA,IAAIA,CAACA,CAACA;YACnCA,CAACA;YAEDA,MAAMA,CAACA,YAAeA,CAACA;QAC3BA,CAACA;QANeD,wBAAYA,GAAZA,YAMfA,CAAAA;QAEDA,SAAgBA,OAAOA,CAACA,IAAgBA;YACpCE,IAAIA,MAAMA,GAAGA,UAAUA,CAACA,IAAIA,CAACA,CAACA;YAC9BA,MAAMA,CAACA,MAAMA,CAACA;QAClBA,CAACA;QAHeF,mBAAOA,GAAPA,OAGfA,CAAAA;QAEDA,SAAgBA,YAAYA,CAACA,IAAgBA;YACzCG,MAAMA,CAACA,IAAIA,IAAIA,qBAAUA,CAACA,YAAYA,IAAIA,IAAIA,IAAIA,qBAAUA,CAACA,WAAWA,CAACA;QAC7EA,CAACA;QAFeH,wBAAYA,GAAZA,YAEfA,CAAAA;QAEDA,SAAgBA,gBAAgBA,CAACA,IAAgBA;YAC7CI,MAAMA,CAACA,IAAIA,IAAIA,qBAAUA,CAACA,gBAAgBA,IAAIA,IAAIA,IAAIA,qBAAUA,CAACA,eAAeA,CAACA;QACrFA,CAACA;QAFeJ,4BAAgBA,GAAhBA,gBAEfA,CAAAA;QAEDA,SAAgBA,oCAAoCA,CAACA,SAAqBA;YACtEK,MAAMA,CAACA,CAACA,SAASA,CAACA,CAACA,CAACA;gBAChBA,KAAKA,kBAAoBA,CAACA;gBAC1BA,KAAKA,mBAAqBA,CAACA;gBAC3BA,KAAKA,oBAAqBA,CAACA;gBAC3BA,KAAKA,0BAA2BA,CAACA;gBACjCA,KAAKA,sBAAwBA,CAACA;gBAC9BA,KAAKA,wBAA0BA;oBAC3BA,MAAMA,CAACA,IAAIA,CAACA;gBAChBA;oBACIA,MAAMA,CAACA,KAAKA,CAACA;YACrBA,CAACA;QACLA,CAACA;QAZeL,gDAAoCA,GAApCA,oCAYfA,CAAAA;QAEDA,SAAgBA,+BAA+BA,CAACA,SAAqBA;YACjEM,MAAMA,CAACA,CAACA,SAASA,CAACA,CAACA,CAACA;gBAChBA,KAAKA,sBAAwBA,CAACA;gBAC9BA,KAAKA,oBAAqBA,CAACA;gBAC3BA,KAAKA,qBAAuBA,CAACA;gBAC7BA,KAAKA,kBAAoBA,CAACA;gBAC1BA,KAAKA,mBAAqBA,CAACA;gBAC3BA,KAAKA,8BAAgCA,CAACA;gBACtCA,KAAKA,oCAAsCA,CAACA;gBAC5CA,KAAKA,+CAAiDA,CAACA;gBACvDA,KAAKA,sBAAwBA,CAACA;gBAC9BA,KAAKA,yBAA2BA,CAACA;gBACjCA,KAAKA,4BAA8BA,CAACA;gBACpCA,KAAKA,+BAAiCA,CAACA;gBACvCA,KAAKA,0BAA4BA,CAACA;gBAClCA,KAAKA,kBAAoBA,CAACA;gBAC1BA,KAAKA,0BAA4BA,CAACA;gBAClCA,KAAKA,+BAAiCA,CAACA;gBACvCA,KAAKA,gCAAkCA,CAACA;gBACxCA,KAAKA,qCAAuCA,CAACA;gBAC7CA,KAAKA,wBAAyBA,CAACA;gBAC/BA,KAAKA,oBAAqBA,CAACA;gBAC3BA,KAAKA,kBAAmBA,CAACA;gBACzBA,KAAKA,iCAAkCA,CAACA;gBACxCA,KAAKA,qBAAsBA,CAACA;gBAC5BA,KAAKA,wBAAyBA,CAACA;gBAC/BA,KAAKA,8BAA+BA,CAACA;gBACrCA,KAAKA,0BAA2BA,CAACA;gBACjCA,KAAKA,qCAAsCA,CAACA;gBAC5CA,KAAKA,2CAA4CA,CAACA;gBAClDA,KAAKA,sDAAuDA,CAACA;gBAC7DA,KAAKA,yBAA0BA,CAACA;gBAChCA,KAAKA,0BAA2BA,CAACA;gBACjCA,KAAKA,6BAA8BA,CAACA;gBACpCA,KAAKA,0BAA2BA,CAACA;gBACjCA,KAAKA,4BAA6BA,CAACA;gBACnCA,KAAKA,qBAAsBA,CAACA;gBAC5BA,KAAKA,mBAAqBA;oBACtBA,MAAMA,CAACA,IAAIA,CAACA;gBAChBA;oBACIA,MAAMA,CAACA,KAAKA,CAACA;YACrBA,CAACA;QACLA,CAACA;QA1CeN,2CAA+BA,GAA/BA,+BA0CfA,CAAAA;QAEDA,SAAgBA,yBAAyBA,CAACA,SAAqBA;YAC3DO,MAAMA,CAACA,CAACA,SAASA,CAACA,CAACA,CAACA;gBAChBA,KAAKA,wBAAyBA,CAACA;gBAC/BA,KAAKA,8BAA+BA,CAACA;gBACrCA,KAAKA,0BAA2BA,CAACA;gBACjCA,KAAKA,qCAAsCA,CAACA;gBAC5CA,KAAKA,2CAA4CA,CAACA;gBAClDA,KAAKA,sDAAuDA,CAACA;gBAC7DA,KAAKA,yBAA0BA,CAACA;gBAChCA,KAAKA,0BAA2BA,CAACA;gBACjCA,KAAKA,6BAA8BA,CAACA;gBACpCA,KAAKA,0BAA2BA,CAACA;gBACjCA,KAAKA,4BAA6BA,CAACA;gBACnCA,KAAKA,qBAAsBA;oBACvBA,MAAMA,CAACA,IAAIA,CAACA;gBAEhBA;oBACIA,MAAMA,CAACA,KAAKA,CAACA;YACrBA,CAACA;QACLA,CAACA;QAnBeP,qCAAyBA,GAAzBA,yBAmBfA,CAAAA;QAEDA,SAAgBA,MAAMA,CAACA,IAAgBA;YACnCQ,MAAMA,CAACA,CAACA,IAAIA,CAACA,CAACA,CAACA;gBACXA,KAAKA,mBAAoBA,CAACA;gBAC1BA,KAAKA,mBAAqBA,CAACA;gBAC3BA,KAAKA,sBAAwBA,CAACA;gBAC9BA,KAAKA,uBAAyBA,CAACA;gBAC/BA,KAAKA,sBAAwBA,CAACA;gBAC9BA,KAAKA,oBAAsBA,CAACA;gBAC5BA,KAAKA,sBAAuBA,CAACA;gBAC7BA,KAAKA,oBAAqBA,CAACA;gBAC3BA,KAAKA,yBAA0BA,CAACA;gBAChCA,KAAKA,mBAAoBA,CAACA;gBAC1BA,KAAKA,qBAAsBA,CAACA;gBAC5BA,KAAKA,uBAAwBA,CAACA;gBAC9BA,KAAKA,sBAAyBA;oBAC1BA,MAAMA,CAACA,IAAIA,CAACA;YACpBA,CAACA;YAEDA,MAAMA,CAACA,KAAKA,CAACA;QACjBA,CAACA;QAnBeR,kBAAMA,GAANA,MAmBfA,CAAAA;IACLA,CAACA,EApPiBnC,WAAWA,GAAXA,sBAAWA,KAAXA,sBAAWA,QAoP5BA;AAADA,CAACA,EApPM,UAAU,KAAV,UAAU,QAoPhB;AC/OD,IAAI,gBAAgB,GAAG,KAAK,CAAC;AAuB7B,IAAI,UAAU,GAAQ;IAClB,wBAAwB,EAAE,qBAAqB;IAC/C,gBAAgB,EAAE,sBAAsB;IACxC,WAAW,EAAE,aAAa;IAC1B,sBAAsB,EAAE,mBAAmB;IAC3C,wBAAwB,EAAE,wBAAwB;IAClD,6BAA6B,EAAE,0BAA0B;IAGzD,uBAAuB,EAAE,+BAA+B;IACxD,qBAAqB,EAAE,+BAA+B;IACtD,wBAAwB,EAAE,yBAAyB;CACtD,CAAC;AAEF,IAAI,WAAW,GAAqB;IAC3B;QACD,IAAI,EAAE,kBAAkB;QACxB,QAAQ,EAAE,aAAa;QACvB,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,gBAAgB,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,sBAAsB,EAAE;YAC7E,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE;SACjD;KACJ;IACI;QACD,IAAI,EAAE,+BAA+B;QACrC,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,wBAAwB,CAAC;QACtC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,gBAAgB,CAAC,EAAE,cAAc,EAAE,IAAI,EAAE;YAC/F,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC/D,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,eAAe,CAAC,EAAE;YACvE,EAAE,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;SACxE;QACD,oBAAoB,EAAE,IAAI;KAC7B;IACI;QACD,IAAI,EAAE,iCAAiC;QACvC,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,wBAAwB,CAAC;QACtC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,aAAa,EAAE;SACnD;QACD,oBAAoB,EAAE,IAAI;KAC7B;IACI;QACD,IAAI,EAAE,yBAAyB;QAC/B,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,sBAAsB,CAAC;QACpC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,cAAc,EAAE;YAChE,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC9D,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,gBAAgB,CAAC,EAAE;YACrE,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC5D,EAAE,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,wBAAwB,EAAE;YAC3D,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;SACzF;QACD,oBAAoB,EAAE,IAAI;KAC7B;IACI;QACD,IAAI,EAAE,wBAAwB;QAC9B,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,sBAAsB,CAAC;QACpC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC9D,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC5D,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,gBAAgB,CAAC,EAAE;YACrE,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;SACzF;QACD,oBAAoB,EAAE,IAAI;KAC7B;IACI;QACD,IAAI,EAAE,wBAAwB;QAC9B,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,sBAAsB,CAAC;QACpC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,cAAc,EAAE;YAChE,EAAE,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC7D,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,gBAAgB,CAAC,EAAE;YACrE,EAAE,IAAI,EAAE,mBAAmB,EAAE,IAAI,EAAE,yBAAyB,EAAE,UAAU,EAAE,IAAI,EAAE;YAChF,EAAE,IAAI,EAAE,iBAAiB,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,sBAAsB,EAAE;YAC9E,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC/D,EAAE,IAAI,EAAE,eAAe,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,qBAAqB,EAAE;YAC3E,EAAE,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;SACxE;QACD,oBAAoB,EAAE,IAAI;KAC7B;IACI;QACD,IAAI,EAAE,4BAA4B;QAClC,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,sBAAsB,CAAC;QACpC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,cAAc,EAAE;YAChE,EAAE,IAAI,EAAE,kBAAkB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YACjE,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,gBAAgB,CAAC,EAAE;YACrE,EAAE,IAAI,EAAE,mBAAmB,EAAE,IAAI,EAAE,yBAAyB,EAAE,UAAU,EAAE,IAAI,EAAE;YAChF,EAAE,IAAI,EAAE,iBAAiB,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,sBAAsB,EAAE;YAC9E,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,kBAAkB,EAAE;SAClD;QACD,oBAAoB,EAAE,IAAI;KAC7B;IACK;QACF,IAAI,EAAE,sBAAsB;QAC5B,QAAQ,EAAE,aAAa;QACvB,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,4BAA4B,EAAE,OAAO,EAAE,IAAI,EAAE;YACrD,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,IAAI,EAAE,sBAAsB,EAAE,IAAI,EAAE,WAAW,EAAE,aAAa,EAAE;SAC9G;QACD,oBAAoB,EAAE,IAAI;KAC7B;IACI;QACD,IAAI,EAAE,yBAAyB;QAC/B,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,sBAAsB,CAAC;QACpC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,cAAc,EAAE;YAChE,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC9D,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE,UAAU,EAAE,IAAI,EAAE;YACvD,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,eAAe,CAAC,EAAE;YACzF,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC/D,EAAE,IAAI,EAAE,gBAAgB,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,sBAAsB,EAAE;YAC7E,EAAE,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;SACxE;QACD,oBAAoB,EAAE,IAAI;KAC7B;IACI;QACD,IAAI,EAAE,2BAA2B;QACjC,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,kBAAkB,CAAC;QAChC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,cAAc,EAAE,oBAAoB,EAAE,IAAI,EAAE;YAC5F,EAAE,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAChE,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,gBAAgB,CAAC,EAAE;YACrE,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,qBAAqB,EAAE;YACtD,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,UAAU,EAAE,IAAI,EAAE;YACxD,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;SACzF;KACJ;IACI;QACD,IAAI,EAAE,yBAAyB;QAC/B,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,kBAAkB,CAAC;QAChC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,cAAc,EAAE,oBAAoB,EAAE,IAAI,EAAE;YAC5F,EAAE,IAAI,EAAE,qBAAqB,EAAE,IAAI,EAAE,2BAA2B,EAAE;YAClE,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;SACzF;KACJ;IACI;QACD,IAAI,EAAE,2BAA2B;QACjC,QAAQ,EAAE,aAAa;QACvB,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE;YACrC,EAAE,IAAI,EAAE,qBAAqB,EAAE,eAAe,EAAE,IAAI,EAAE,sBAAsB,EAAE,IAAI,EAAE,WAAW,EAAE,0BAA0B,EAAE;SACrI;KACJ;IACI;QACD,IAAI,EAAE,0BAA0B;QAChC,QAAQ,EAAE,aAAa;QACvB,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,qBAAqB,EAAE;YACrD,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,sBAAsB,EAAE,UAAU,EAAE,IAAI,EAAE,oBAAoB,EAAE,IAAI,EAAE;YACtG,EAAE,IAAI,EAAE,mBAAmB,EAAE,IAAI,EAAE,yBAAyB,EAAE,UAAU,EAAE,IAAI,EAAE;SACxF;KACJ;IACI;QACD,IAAI,EAAE,yBAAyB;QAC/B,QAAQ,EAAE,aAAa;QACvB,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC5D,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,mBAAmB,EAAE;SACpD;KACJ;IACI;QACD,IAAI,EAAE,6BAA6B;QACnC,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,wBAAwB,CAAC;QACtC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,IAAI,EAAE;YACxC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,wBAAwB,EAAE;SAC3D;KACJ;IACI;QACD,IAAI,EAAE,8BAA8B;QACpC,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,0BAA0B,CAAC;QACxC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,kBAAkB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YACjE,EAAE,IAAI,EAAE,aAAa,EAAE,eAAe,EAAE,IAAI,EAAE,WAAW,EAAE,mBAAmB,EAAE;YAChF,EAAE,IAAI,EAAE,mBAAmB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;SAC1E;KACJ;IACI;QACD,IAAI,EAAE,yBAAyB;QAC/B,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,mBAAmB,CAAC;QACjC,QAAQ,EAAO,EAAE;KACpB;IACI;QACD,IAAI,EAAE,+BAA+B;QACrC,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,0BAA0B,CAAC;QACxC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC/D,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,mBAAmB,EAAE;YACjD,EAAE,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;SACxE;KACJ;IACI;QACD,IAAI,EAAE,qCAAqC;QAC3C,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,wBAAwB,CAAC;QACtC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,iBAAiB,EAAE;YAC9C,EAAE,IAAI,EAAE,wBAAwB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YACvE,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,UAAU,EAAE,IAAI,EAAE;YACxD,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,mBAAmB,EAAE,UAAU,EAAE,IAAI,EAAE;SAC3E;QACD,oBAAoB,EAAE,IAAI;KAC7B;IACI;QACD,IAAI,EAAE,4CAA4C;QAClD,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,wBAAwB,CAAC;QACtC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,qBAAqB,EAAE;YACtD,EAAE,IAAI,EAAE,wBAAwB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YACvE,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,UAAU,EAAE,IAAI,EAAE;YACxD,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,mBAAmB,EAAE,UAAU,EAAE,IAAI,EAAE;SAC3E;QACD,oBAAoB,EAAE,IAAI;KAC7B;IACI;QACD,IAAI,EAAE,qBAAqB;QAC3B,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,aAAa,CAAC;QAC3B,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE;YACrC,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YACzD,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAC,CAAC,gBAAgB,CAAC,EAAE;SACvE;QAGD,oBAAoB,EAAE,IAAI;KAC7B;IACI;QACD,IAAI,EAAE,wBAAwB;QAC9B,QAAQ,EAAE,aAAa;QACvB,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,IAAI,EAAE;YACxC,EAAE,IAAI,EAAE,eAAe,EAAE,eAAe,EAAE,IAAI,EAAE,WAAW,EAAE,aAAa,EAAE;YAC5E,EAAE,IAAI,EAAE,kBAAkB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;SACzE;QACD,oBAAoB,EAAE,IAAI;KAC7B;IACI;QACD,IAAI,EAAE,uBAAuB;QAC7B,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,aAAa,CAAC;QAC3B,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC3D,EAAE,IAAI,EAAE,mBAAmB,EAAE,IAAI,EAAE,yBAAyB,EAAE,UAAU,EAAE,IAAI,EAAE;YAChF,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,qBAAqB,EAAE;YACtD,EAAE,IAAI,EAAE,wBAAwB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YACvE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE;SAC7C;QACD,oBAAoB,EAAE,IAAI;KAC7B;IACI;QACD,IAAI,EAAE,oBAAoB;QAC1B,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,aAAa,CAAC;QAC3B,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,mBAAmB,EAAE,IAAI,EAAE,yBAAyB,EAAE,UAAU,EAAE,IAAI,EAAE;YAChF,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,qBAAqB,EAAE;YACtD,EAAE,IAAI,EAAE,wBAAwB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YACvE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE;SAC7C;QACD,oBAAoB,EAAE,IAAI;KAC7B;IACI;QACD,IAAI,EAAE,kBAAkB;QACxB,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,aAAa,CAAC;QAC3B,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC/D,EAAE,IAAI,EAAE,aAAa,EAAE,eAAe,EAAE,IAAI,EAAE,WAAW,EAAE,mBAAmB,EAAE;YAChF,EAAE,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;SACxE;QACD,oBAAoB,EAAE,IAAI;KAC7B;IACI;QACD,IAAI,EAAE,iBAAiB;QACvB,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,aAAa,CAAC;QAC3B,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE;YACrC,EAAE,IAAI,EAAE,kBAAkB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YACjE,EAAE,IAAI,EAAE,mBAAmB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;SAC1E;QACD,oBAAoB,EAAE,IAAI;KAC7B;IACI;QACD,IAAI,EAAE,mBAAmB;QACzB,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,aAAa,CAAC;QAC3B,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE;YACrC,EAAE,IAAI,EAAE,kBAAkB,EAAE,IAAI,EAAE,wBAAwB,EAAE;SACpE;QACD,oBAAoB,EAAE,IAAI;KAC7B;IACK;QACF,IAAI,EAAE,iBAAiB;QACvB,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,aAAa,CAAC;QAC3B,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC9D,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE;SAC7C;QACD,oBAAoB,EAAE,IAAI;KAC7B;IACK;QACF,IAAI,EAAE,iBAAiB;QACvB,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,aAAa,CAAC;QAC3B,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,kBAAkB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YACjE,EAAE,IAAI,EAAE,OAAO,EAAE,eAAe,EAAE,IAAI,EAAE,WAAW,EAAE,aAAa,EAAE;YACpE,EAAE,IAAI,EAAE,mBAAmB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;SAC1E;QACD,oBAAoB,EAAE,IAAI;KAC7B;IACK;QACF,IAAI,EAAE,iBAAiB;QACvB,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,aAAa,CAAC;QAC3B,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE;YACrC,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YACzD,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE;SAC9C;QACD,oBAAoB,EAAE,IAAI;KAC7B;IACK;QACF,IAAI,EAAE,yBAAyB;QAC/B,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,aAAa,CAAC;QAC3B,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC/D,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE;YACrC,EAAE,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;SACxE;QACD,oBAAoB,EAAE,IAAI;KAC7B;IACI;QACD,IAAI,EAAE,sBAAsB;QAC5B,QAAQ,EAAE,aAAa;QACvB,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC3D,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE;SAC7C;QACD,oBAAoB,EAAE,IAAI;KAC7B;IACI;QACD,IAAI,EAAE,aAAa;QACnB,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,kBAAkB,CAAC;QAChC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE;YACzC,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,kBAAkB,EAAE;YACrE,EAAE,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;SACxE;KACJ;IACI;QACD,IAAI,EAAE,iBAAiB;QACvB,QAAQ,EAAE,aAAa;QACvB,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,oBAAoB,EAAE,IAAI,EAAE;YACvF,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,cAAc,EAAE;YAChE,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,gBAAgB,CAAC,EAAE;YACrE,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,oBAAoB,EAAE,IAAI,EAAE;YACtF,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,sBAAsB,EAAE,UAAU,EAAE,IAAI,EAAE,oBAAoB,EAAE,IAAI,EAAE;YACtG,EAAE,IAAI,EAAE,mBAAmB,EAAE,IAAI,EAAE,yBAAyB,EAAE,UAAU,EAAE,IAAI,EAAE,oBAAoB,EAAE,IAAI,EAAE;SACpH;KACJ;IACI;QACD,IAAI,EAAE,8BAA8B;QACpC,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,yBAAyB,EAAE,uBAAuB,CAAC;QAChE,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,+BAA+B,EAAE;YAC7D,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YACzD,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,gBAAgB,CAAC,EAAE;SACvE;KACJ;IACI;QACD,IAAI,EAAE,8BAA8B;QACpC,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,0BAA0B,CAAC;QACxC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,+BAA+B,EAAE;YAC1D,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,IAAI,EAAE;SAChD;KACJ;IACI;QACD,IAAI,EAAE,+BAA+B;QACrC,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,yBAAyB,EAAE,uBAAuB,CAAC;QAChE,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,+BAA+B,EAAE;YAC7D,EAAE,IAAI,EAAE,kBAAkB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YACjE,EAAE,IAAI,EAAE,oBAAoB,EAAE,IAAI,EAAE,mBAAmB,EAAE;YACzD,EAAE,IAAI,EAAE,mBAAmB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;SAC1E;KACJ;IACI;QACD,IAAI,EAAE,gCAAgC;QACtC,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,yBAAyB,EAAE,uBAAuB,CAAC;QAChE,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,+BAA+B,EAAE;YAC7D,EAAE,IAAI,EAAE,oBAAoB,EAAE,IAAI,EAAE,0BAA0B,EAAE;SACxE;KACJ;IACI;QACD,IAAI,EAAE,0BAA0B;QAChC,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,0BAA0B,CAAC;QACxC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,oBAAoB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YACnE,EAAE,IAAI,EAAE,iBAAiB,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,sBAAsB,EAAE;SACtF;KACJ;IACI;QACD,IAAI,EAAE,sBAAsB;QAC5B,QAAQ,EAAE,aAAa;QACvB,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,mBAAmB,EAAE;YACjD,EAAE,IAAI,EAAE,0BAA0B,EAAE,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,oBAAoB,EAAE;SAC9F;KACJ;IACI;QACD,IAAI,EAAE,4BAA4B;QAClC,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,uBAAuB,CAAC;QACrC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,+BAA+B,EAAE;YAC7D,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,oBAAoB,EAAE;SAC5D;KACJ;IACI;QACD,IAAI,EAAE,oBAAoB;QAC1B,QAAQ,EAAE,aAAa;QACvB,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,kBAAkB,EAAE,IAAI,EAAE,wBAAwB,EAAE,UAAU,EAAE,IAAI,EAAE;YAC9E,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC/D,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,IAAI,EAAE,WAAW,EAAE,mBAAmB,EAAE;YAC9E,EAAE,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;SACxE;KACJ;IACI;QACD,IAAI,EAAE,wBAAwB;QAC9B,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,mBAAmB,CAAC;QACjC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,mBAAmB,EAAE;YAC3C,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,IAAI,EAAE;YACxC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,mBAAmB,EAAE;SACpD;KACJ;IACI;QACD,IAAI,EAAE,6BAA6B;QACnC,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,mBAAmB,CAAC;QACjC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,mBAAmB,EAAE;YAChD,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC9D,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,mBAAmB,EAAE;YAC/C,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC3D,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,mBAAmB,EAAE;SACxD;KACJ;IACI;QACD,IAAI,EAAE,0BAA0B;QAChC,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,mBAAmB,CAAC;QACjC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC3D,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,qBAAqB,EAAE;SAC9D;QACD,oBAAoB,EAAE,IAAI;KAC7B;IACI;QACD,IAAI,EAAE,uBAAuB;QAC7B,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,mBAAmB,CAAC;QACjC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,qBAAqB,EAAE;YACrD,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,oBAAoB,EAAE,IAAI,EAAE;YACtF,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,qBAAqB,EAAE;SAC9D;KACJ;IACI;QACD,IAAI,EAAE,sBAAsB;QAC5B,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,mBAAmB,CAAC;QACjC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,kBAAkB,EAAE,OAAO,EAAE,IAAI,EAAE;YAC3C,EAAE,IAAI,EAAE,YAAY,EAAE,eAAe,EAAE,IAAI,EAAE,WAAW,EAAE,iBAAiB,EAAE;YAC7E,EAAE,IAAI,EAAE,mBAAmB,EAAE,OAAO,EAAE,IAAI,EAAE;YAC5C,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,sBAAsB,EAAE,UAAU,EAAE,IAAI,EAAE;SAClF;QACD,oBAAoB,EAAE,IAAI;KAC7B;IACI;QACD,IAAI,EAAE,yBAAyB;QAC/B,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,mBAAmB,CAAC;QACjC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,qBAAqB,EAAE;YACrD,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE;YAC1D,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,sBAAsB,EAAE,UAAU,EAAE,IAAI,EAAE;SAClF;QACD,oBAAoB,EAAE,IAAI;KAC7B;IACI;QACD,IAAI,EAAE,qBAAqB;QAC3B,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,mBAAmB,CAAC;QACjC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,mBAAmB,EAAE,IAAI,EAAE,yBAAyB,EAAE,UAAU,EAAE,IAAI,EAAE,oBAAoB,EAAE,IAAI,EAAE;YAC5G,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,qBAAqB,EAAE;YACtD,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,sBAAsB,EAAE,UAAU,EAAE,IAAI,EAAE,oBAAoB,EAAE,IAAI,EAAE;SAC9G;KACJ;IACI;QACD,IAAI,EAAE,qBAAqB;QAC3B,QAAQ,EAAE,aAAa;QACvB,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC/D,EAAE,IAAI,EAAE,YAAY,EAAE,eAAe,EAAE,IAAI,EAAE,WAAW,EAAE,iBAAiB,EAAE;YAC7E,EAAE,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;SACxE;KACJ;IACI;QACD,IAAI,EAAE,yBAAyB;QAC/B,QAAQ,EAAE,aAAa;QACvB,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,IAAI,EAAE;YACxC,EAAE,IAAI,EAAE,gBAAgB,EAAE,eAAe,EAAE,IAAI,EAAE,WAAW,EAAE,qBAAqB,EAAE;YACrF,EAAE,IAAI,EAAE,kBAAkB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;SACzE;QACD,oBAAoB,EAAE,IAAI;KAC7B;IACI;QACD,IAAI,EAAE,qBAAqB;QAC3B,QAAQ,EAAE,aAAa;QACvB,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,gBAAgB,CAAC,EAAE;YACrE,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,kBAAkB,EAAE,UAAU,EAAE,IAAI,EAAE;SAC1E;QACD,oBAAoB,EAAE,IAAI;KAC7B;IACI;QACD,IAAI,EAAE,kBAAkB;QACxB,QAAQ,EAAE,aAAa;QACvB,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAE/D,EAAE,IAAI,EAAE,kBAAkB,EAAE,IAAI,EAAE,oBAAoB,EAAE;SAChE;QACD,oBAAoB,EAAE,IAAI;KAC7B;IACI;QACD,IAAI,EAAE,kBAAkB;QACxB,QAAQ,EAAE,aAAa;QACvB,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC5D,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,kBAAkB,EAAE;SACvD;KACJ;IACI;QACD,IAAI,EAAE,mBAAmB;QACzB,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,kBAAkB,CAAC;QAChC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC1D,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC/D,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,mBAAmB,EAAE;YAChD,EAAE,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAChE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,kBAAkB,EAAE;YAC/C,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,kBAAkB,EAAE,UAAU,EAAE,IAAI,EAAE;SAC1E;KACJ;IACI;QACD,IAAI,EAAE,2BAA2B;QACjC,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,kBAAkB,CAAC;QAChC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,mBAAmB,EAAE;YACjD,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;SACzF;KACJ;IACI;QACD,IAAI,EAAE,8BAA8B;QACpC,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,qBAAqB,CAAC;QACnC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,cAAc,EAAE;YAChE,EAAE,IAAI,EAAE,oBAAoB,EAAE,OAAO,EAAE,IAAI,EAAE;YAC7C,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,qBAAqB,EAAE;YACtD,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,UAAU,EAAE,IAAI,EAAE;YACxD,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;SACzF;QACD,oBAAoB,EAAE,IAAI;KAC7B;IACI;QACD,IAAI,EAAE,iCAAiC;QACvC,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,0BAA0B,CAAC;QACxC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,cAAc,EAAE;YAChE,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,qBAAqB,EAAE;YACrD,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,qBAAqB,EAAE;YACtD,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,UAAU,EAAE,IAAI,EAAE;YACxD,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;SACzF;QACD,oBAAoB,EAAE,IAAI;KAC7B;IACI;QACD,IAAI,EAAE,mBAAmB;QACzB,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,iBAAiB,CAAE;QAChC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,cAAc,EAAE,oBAAoB,EAAE,IAAI,EAAE;YAC5F,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC3D,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,qBAAqB,EAAE;YACrD,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,qBAAqB,EAAE;YACtD,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE;SAC9C;KACJ;IACI;QACD,IAAI,EAAE,mBAAmB;QACzB,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,iBAAiB,CAAC;QAC/B,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,cAAc,EAAE,oBAAoB,EAAE,IAAI,EAAE;YAC5F,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC3D,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,qBAAqB,EAAE;YACrD,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,qBAAqB,EAAE;YACtD,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE;SAC9C;QACD,oBAAoB,EAAE,IAAI;KAC7B;IACI;QACD,IAAI,EAAE,iCAAiC;QACvC,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,0BAA0B,CAAC;QACxC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,cAAc,EAAE;YAChE,EAAE,IAAI,EAAE,oBAAoB,EAAE,IAAI,EAAE,0BAA0B,EAAE;YAChE,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;SACzF;QACD,oBAAoB,EAAE,IAAI;KAC7B;IACI;QACD,IAAI,EAAE,8BAA8B;QACpC,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,qBAAqB,CAAC;QACnC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,cAAc,EAAE;YAChE,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,sBAAsB,EAAE;YACxD,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;SACzF;QACD,oBAAoB,EAAE,IAAI;KAC7B;IACI;QACD,IAAI,EAAE,sBAAsB;QAC5B,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,kBAAkB,CAAC;QAChC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC7D,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,mBAAmB,EAAE;YACjD,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;SACzF;KACJ;IACI;QACD,IAAI,EAAE,uBAAuB;QAC7B,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,kBAAkB,CAAC;QAChC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,IAAI,EAAE;YACxC,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,mBAAmB,EAAE,UAAU,EAAE,IAAI,EAAE;YACnE,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;SACzF;KACJ;IACI;QACD,IAAI,EAAE,gCAAgC;QACtC,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,0BAA0B,CAAC;QACxC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC3D,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,yBAAyB,EAAE;YACvD,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,oBAAoB,EAAE,UAAU,EAAE,IAAI,EAAE;SAC9E;KACJ;IACI;QACD,IAAI,EAAE,uBAAuB;QAC7B,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,kBAAkB,CAAC;QAChC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC9D,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC/D,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,mBAAmB,EAAE;YACjD,EAAE,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAChE,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC/D,EAAE,IAAI,EAAE,eAAe,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,qBAAqB,EAAE;YAC3E,EAAE,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;SACxE;KACJ;IACI;QACD,IAAI,EAAE,wBAAwB;QAC9B,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,qBAAqB,CAAC;QACnC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC5D,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,mBAAmB,EAAE;YACjD,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAC;YAC1D,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,kBAAkB,EAAE;SAC7E;KACJ;IACI;QACD,IAAI,EAAE,2BAA2B;QACjC,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,qBAAqB,CAAC;QACnC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC/D,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC3D,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,kBAAkB,EAAE;SAC7E;KACJ;IACI;QACD,IAAI,EAAE,sBAAsB;QAC5B,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,kBAAkB,CAAC;QAChC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,IAAI,EAAE;YACvC,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,gBAAgB,CAAC,EAAE;YACvF,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;SACzF;KACJ;IACI;QACD,IAAI,EAAE,yBAAyB;QAC/B,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,kBAAkB,CAAC;QAChC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,IAAI,EAAE;YAC1C,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,gBAAgB,CAAC,EAAE;YACvF,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;SACzF;KACJ;IACI;QACD,IAAI,EAAE,oBAAoB;QAC1B,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,kBAAkB,CAAC;QAChC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC3D,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC/D,EAAE,IAAI,EAAE,qBAAqB,EAAE,IAAI,EAAE,2BAA2B,EAAE,UAAU,EAAE,IAAI,EAAE;YACpF,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,mBAAmB,EAAE,UAAU,EAAE,IAAI,EAAE;YACpE,EAAE,IAAI,EAAE,qBAAqB,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,gBAAgB,CAAC,EAAE,cAAc,EAAE,IAAI,EAAE;YACpG,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,mBAAmB,EAAE,UAAU,EAAE,IAAI,EAAE;YAClE,EAAE,IAAI,EAAE,sBAAsB,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,gBAAgB,CAAC,EAAE,cAAc,EAAE,IAAI,EAAE;YACrG,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,mBAAmB,EAAE,UAAU,EAAE,IAAI,EAAE;YACpE,EAAE,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAChE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,kBAAkB,EAAE;SACvD;KACJ;IACI;QACD,IAAI,EAAE,sBAAsB;QAC5B,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,kBAAkB,CAAC;QAChC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC3D,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC/D,EAAE,IAAI,EAAE,qBAAqB,EAAE,IAAI,EAAE,2BAA2B,EAAE,UAAU,EAAE,IAAI,EAAE;YACpF,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,mBAAmB,EAAE,UAAU,EAAE,IAAI,EAAE;YAC7D,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC1D,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,mBAAmB,EAAE;YACjD,EAAE,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAChE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,kBAAkB,EAAE;SACvD;KACJ;IACI;QACD,IAAI,EAAE,sBAAsB;QAC5B,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,kBAAkB,CAAC;QAChC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC7D,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC/D,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,mBAAmB,EAAE;YAChD,EAAE,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAChE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,kBAAkB,EAAE;SACvD;KACJ;IACI;QACD,IAAI,EAAE,qBAAqB;QAC3B,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,kBAAkB,CAAC;QAChC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC5D,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC/D,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,mBAAmB,EAAE;YAChD,EAAE,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAChE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,kBAAkB,EAAE;SACvD;KACJ;IACI;QACD,IAAI,EAAE,uBAAuB;QAC7B,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,sBAAsB,CAAC;QACpC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,cAAc,EAAE;YAChE,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC5D,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,gBAAgB,CAAC,EAAE;YACrE,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC/D,EAAE,IAAI,EAAE,cAAc,EAAE,eAAe,EAAE,IAAI,EAAE,WAAW,EAAE,mBAAmB,EAAE;YACjF,EAAE,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;SACxE;QACD,oBAAoB,EAAE,IAAI;KAC7B;IACI;QACD,IAAI,EAAE,mBAAmB;QACzB,QAAQ,EAAE,aAAa;QACvB,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,qBAAqB,EAAE;YACrD,EAAE,IAAI,EAAE,mBAAmB,EAAE,IAAI,EAAE,yBAAyB,EAAE,UAAU,EAAE,IAAI,EAAE;SACxF;KACJ;IACI;QACD,IAAI,EAAE,sBAAsB;QAC5B,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,wBAAwB,CAAC;QACtC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC9D,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE;YACrC,EAAE,IAAI,EAAE,kBAAkB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YACjE,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,wBAAwB,EAAE;SAC9D;QACD,oBAAoB,EAAE,IAAI;KAC7B;IACI;QACD,IAAI,EAAE,+BAA+B;QACrC,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,0BAA0B,CAAC;QACxC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC/D,EAAE,IAAI,EAAE,qBAAqB,EAAE,eAAe,EAAE,IAAI,EAAE,WAAW,EAAE,2BAA2B,EAAE;YAChG,EAAE,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;SACxE;KACJ;IACI;QACD,IAAI,EAAE,gCAAgC;QACtC,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,2BAA2B,CAAC;QACzC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,qBAAqB,EAAE;YACrD,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC3D,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,mBAAmB,EAAE;SACzD;KACJ;IACK;QACF,IAAI,EAAE,kCAAkC;QACxC,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,2BAA2B,CAAC;QACzC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,qBAAqB,EAAE;YACrD,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,qBAAqB,EAAE;YACtD,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE;SAC9C;KACJ;IACI;QACD,IAAI,EAAE,0BAA0B;QAChC,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,0BAA0B,CAAC;QACxC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAChE,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,gBAAgB,CAAC,EAAE;YACvF,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,qBAAqB,EAAE;YACtD,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE;SAAC;KACnD;IACI;QACD,IAAI,EAAE,sBAAsB;QAC5B,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,kBAAkB,CAAC;QAChC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE;SAAC;KACtD;IACI;QACD,IAAI,EAAE,oBAAoB;QAC1B,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,kBAAkB,CAAC;QAChC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC3D,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE;YACtC,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,mBAAmB,EAAE,UAAU,EAAE,IAAI,EAAE;YACpE,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,qBAAqB,EAAE,UAAU,EAAE,IAAI,EAAE;SAAC;KACrF;IACI;QACD,IAAI,EAAE,mBAAmB;QACzB,QAAQ,EAAE,aAAa;QACvB,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC7D,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC/D,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,gBAAgB,CAAC,EAAE;YACrE,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,sBAAsB,EAAE,UAAU,EAAE,IAAI,EAAE,qBAAqB,EAAE,IAAI,EAAE;YACvG,EAAE,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAChE,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE;SAAC;KACnD;IACI;QACD,IAAI,EAAE,qBAAqB;QAC3B,QAAQ,EAAE,aAAa;QACvB,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC/D,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE;SAAC;KACnD;IACI;QACD,IAAI,EAAE,wBAAwB;QAC9B,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,kBAAkB,CAAC;QAChC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,gBAAgB,CAAC,EAAE;YACrE,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC3D,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,kBAAkB,EAAE;SAAC;KAC5D;IACI;QACD,IAAI,EAAE,mBAAmB;QACzB,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,kBAAkB,CAAC;QAChC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC1D,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,kBAAkB,EAAE;YAC/C,EAAE,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC7D,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC/D,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,mBAAmB,EAAE;YAChD,EAAE,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAChE,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;SAAC;KAC9F;IACI;QACD,IAAI,EAAE,wBAAwB;QAC9B,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,wBAAwB,CAAC;QACtC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC9D,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,wBAAwB,EAAE;SAAC;KACnE;IACI;QACD,IAAI,EAAE,wBAAwB;QAC9B,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,wBAAwB,CAAC;QACtC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC9D,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,wBAAwB,EAAE;SAAC;KACnE;IACI;QACD,IAAI,EAAE,sBAAsB;QAC5B,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,wBAAwB,CAAC;QACtC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC5D,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,wBAAwB,EAAE;SAAC;KACnE;IACI;QACD,IAAI,EAAE,yBAAyB;QAC/B,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,kBAAkB,CAAC;QAChC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,IAAI,EAAE;YAC1C,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;SAAC;KAC9F;CAAC,CAAC;AAEP,SAAS,SAAS,CAAC,UAA2B;IAC1C4C,IAAIA,QAAQA,GAAGA,oBAAoBA,CAACA,UAAUA,CAACA,CAACA;IAChDA,MAAMA,CAAOA,UAAUA,CAACA,UAAWA,CAACA,QAAQA,CAACA,CAACA;AAClDA,CAACA;AAED,WAAW,CAAC,IAAI,CAAC,UAAC,EAAE,EAAE,EAAE,IAAK,OAAA,SAAS,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,EAAE,CAAC,EAA7B,CAA6B,CAAC,CAAC;AAE5D,SAAS,sBAAsB,CAAC,UAAkB;IAC9CC,EAAEA,CAACA,CAACA,UAAUA,CAACA,eAAeA,CAACA,QAAQA,CAACA,UAAUA,EAAEA,QAAQA,CAACA,CAACA,CAACA,CAACA;QAC5DA,MAAMA,CAACA,UAAUA,CAACA,SAASA,CAACA,CAACA,EAAEA,UAAUA,CAACA,MAAMA,GAAGA,QAAQA,CAACA,MAAMA,CAACA,CAACA;IACxEA,CAACA;IAEDA,MAAMA,CAACA,UAAUA,CAACA;AACtBA,CAACA;AAED,SAAS,oBAAoB,CAAC,UAA2B;IACrDC,MAAMA,CAACA,sBAAsBA,CAACA,UAAUA,CAACA,IAAIA,CAACA,CAACA;AACnDA,CAACA;AAED,SAAS,OAAO,CAAC,KAAwB;IACrCC,EAAEA,CAACA,CAACA,KAAKA,CAACA,OAAOA,CAACA,CAACA,CAACA;QAChBA,MAAMA,CAACA,cAAcA,CAACA;IAC1BA,CAACA;IACDA,IAAIA,CAACA,EAAEA,CAACA,CAACA,KAAKA,CAACA,eAAeA,CAACA,CAACA,CAACA;QAC7BA,MAAMA,CAACA,uBAAuBA,GAAGA,KAAKA,CAACA,WAAWA,GAAGA,GAAGA,CAACA;IAC7DA,CAACA;IACDA,IAAIA,CAACA,EAAEA,CAACA,CAACA,KAAKA,CAACA,MAAMA,CAACA,CAACA,CAACA;QACpBA,MAAMA,CAACA,KAAKA,CAACA,WAAWA,GAAGA,IAAIA,CAACA;IACpCA,CAACA;IACDA,IAAIA,CAACA,CAACA;QACFA,MAAMA,CAACA,KAAKA,CAACA,IAAIA,CAACA;IACtBA,CAACA;AACLA,CAACA;AAED,SAAS,SAAS,CAAC,KAAa;IAC5BC,MAAMA,CAACA,KAAKA,CAACA,MAAMA,CAACA,CAACA,EAAEA,CAACA,CAACA,CAACA,WAAWA,EAAEA,GAAGA,KAAKA,CAACA,MAAMA,CAACA,CAACA,CAACA,CAACA;AAC9DA,CAACA;AAED,SAAS,WAAW,CAAC,KAAwB;IACzCC,EAAEA,CAACA,CAACA,KAAKA,CAACA,IAAIA,KAAKA,WAAWA,CAACA,CAACA,CAACA;QAC7BA,MAAMA,CAACA,GAAGA,GAAGA,KAAKA,CAACA,IAAIA,CAACA;IAC5BA,CAACA;IAEDA,MAAMA,CAACA,KAAKA,CAACA,IAAIA,CAACA;AACtBA,CAACA;AAED,SAAS,2BAA2B,CAAC,UAA2B;IAC5DC,IAAIA,MAAMA,GAAGA,iBAAiBA,GAAGA,UAAUA,CAACA,IAAIA,GAAGA,IAAIA,GAAGA,oBAAoBA,CAACA,UAAUA,CAACA,GAAGA,0CAA0CA,CAACA;IAExIA,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,UAAUA,CAACA,QAAQA,CAACA,MAAMA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;QAClDA,IAAIA,KAAKA,GAAGA,UAAUA,CAACA,QAAQA,CAACA,CAACA,CAACA,CAACA;QACnCA,MAAMA,IAAIA,IAAIA,CAACA;QACfA,MAAMA,IAAIA,WAAWA,CAACA,KAAKA,CAACA,CAACA;QAC7BA,MAAMA,IAAIA,IAAIA,GAAGA,OAAOA,CAACA,KAAKA,CAACA,CAACA;IACpCA,CAACA;IAEDA,MAAMA,IAAIA,SAASA,CAACA;IAEpBA,MAAMA,IAAIA,+CAA+CA,CAACA;IAE1DA,EAAEA,CAACA,CAACA,UAAUA,CAACA,QAAQA,CAACA,MAAMA,CAACA,CAACA,CAACA;QAC7BA,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,UAAUA,CAACA,QAAQA,CAACA,MAAMA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;YAClDA,EAAEA,CAACA,CAACA,CAACA,CAACA,CAACA,CAACA;gBACJA,MAAMA,IAAIA,OAAOA,CAACA;YACtBA,CAACA;YAEDA,IAAIA,KAAKA,GAAGA,UAAUA,CAACA,QAAQA,CAACA,CAACA,CAACA,CAACA;YACnCA,MAAMA,IAAIA,eAAeA,GAAGA,KAAKA,CAACA,IAAIA,GAAGA,KAAKA,GAAGA,WAAWA,CAACA,KAAKA,CAACA,CAACA;QACxEA,CAACA;IACLA,CAACA;IAEDA,EAAEA,CAACA,CAACA,UAAUA,CAACA,QAAQA,CAACA,MAAMA,GAAGA,CAACA,CAACA,CAACA,CAACA;QACjCA,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,UAAUA,CAACA,QAAQA,CAACA,MAAMA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;YAClDA,MAAMA,IAAIA,eAAeA,CAACA;YAE1BA,IAAIA,KAAKA,GAAGA,UAAUA,CAACA,QAAQA,CAACA,CAACA,CAACA,CAACA;YAEnCA,EAAEA,CAACA,CAACA,KAAKA,CAACA,UAAUA,CAACA,CAACA,CAACA;gBACnBA,MAAMA,IAAIA,WAAWA,CAACA,KAAKA,CAACA,GAAGA,OAAOA,GAAGA,WAAWA,CAACA,KAAKA,CAACA,GAAGA,iBAAiBA,CAACA;YACpFA,CAACA;YACDA,IAAIA,CAACA,CAACA;gBACFA,MAAMA,IAAIA,WAAWA,CAACA,KAAKA,CAACA,GAAGA,gBAAgBA,CAACA;YACpDA,CAACA;QACLA,CAACA;QACDA,MAAMA,IAAIA,OAAOA,CAACA;IACtBA,CAACA;IAEDA,MAAMA,IAAIA,YAAYA,CAACA;IACvBA,MAAMA,IAAIA,MAAMA,GAAGA,UAAUA,CAACA,IAAIA,GAAGA,+BAA+BA,GAAGA,oBAAoBA,CAACA,UAAUA,CAACA,GAAGA,OAAOA,CAACA;IAClHA,MAAMA,IAAIA,MAAMA,GAAGA,UAAUA,CAACA,IAAIA,GAAGA,0BAA0BA,GAAGA,UAAUA,CAACA,QAAQA,CAACA,MAAMA,GAAGA,OAAOA,CAACA;IACvGA,MAAMA,IAAIA,MAAMA,GAAGA,UAAUA,CAACA,IAAIA,GAAGA,oEAAoEA,CAACA;IAC1GA,EAAEA,CAACA,CAACA,UAAUA,CAACA,QAAQA,CAACA,MAAMA,CAACA,CAACA,CAACA;QAC7BA,MAAMA,IAAIA,8BAA8BA,CAACA;QAEzCA,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,UAAUA,CAACA,QAAQA,CAACA,MAAMA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;YAClDA,MAAMA,IAAIA,mBAAmBA,GAAGA,CAACA,GAAGA,gBAAgBA,GAAGA,UAAUA,CAACA,QAAQA,CAACA,CAACA,CAACA,CAACA,IAAIA,GAAGA,OAAOA,CAACA;QACjGA,CAACA;QAEDA,MAAMA,IAAIA,eAAeA,CAACA;IAC9BA,CAACA;IACDA,IAAIA,CAACA,CAACA;QACFA,MAAMA,IAAIA,8CAA8CA,CAACA;IAC7DA,CAACA;IACDA,MAAMA,IAAIA,WAAWA,CAACA;IAEtBA,MAAMA,CAACA,MAAMA,CAACA;AAClBA,CAACA;AAED,SAAS,wBAAwB;IAC7BC,IAAIA,MAAMA,GAAGA,+CAA+CA,CAACA;IAE7DA,MAAMA,IAAIA,yBAAyBA,CAACA;IAEpCA,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,WAAWA,CAACA,MAAMA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;QAC1CA,IAAIA,UAAUA,GAAGA,WAAWA,CAACA,CAACA,CAACA,CAACA;QAEhCA,EAAEA,CAACA,CAACA,CAACA,GAAGA,CAACA,CAACA,CAACA,CAACA;YACRA,MAAMA,IAAIA,MAAMA,CAACA;QACrBA,CAACA;QAEDA,MAAMA,IAAIA,uBAAuBA,CAACA,UAAUA,CAACA,CAACA;IAClDA,CAACA;IAEDA,MAAMA,IAAIA,GAAGA,CAACA;IACdA,MAAMA,CAACA,MAAMA,CAACA;AAClBA,CAACA;AAED,SAAS,uBAAuB,CAAC,UAA2B;IACxDC,IAAIA,MAAMA,GAAGA,uBAAuBA,GAAGA,UAAUA,CAACA,IAAIA,GAAGA,sBAAsBA,CAAAA;IAE/EA,EAAEA,CAACA,CAACA,UAAUA,CAACA,UAAUA,CAACA,CAACA,CAACA;QACxBA,MAAMA,IAAIA,IAAIA,CAACA;QACfA,MAAMA,IAAIA,UAAUA,CAACA,UAAUA,CAACA,IAAIA,CAACA,IAAIA,CAACA,CAACA;IAC/CA,CAACA;IAEDA,MAAMA,IAAIA,QAAQA,CAACA;IAEnBA,EAAEA,CAACA,CAACA,UAAUA,CAACA,IAAIA,KAAKA,kBAAkBA,CAACA,CAACA,CAACA;QACzCA,MAAMA,IAAIA,qCAAqCA,CAACA;IACpDA,CAACA;IAEDA,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,UAAUA,CAACA,QAAQA,CAACA,MAAMA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;QAClDA,IAAIA,KAAKA,GAAGA,UAAUA,CAACA,QAAQA,CAACA,CAACA,CAACA,CAACA;QACnCA,MAAMA,IAAIA,UAAUA,GAAGA,KAAKA,CAACA,IAAIA,GAAGA,IAAIA,GAAGA,OAAOA,CAACA,KAAKA,CAACA,GAAGA,OAAOA,CAACA;IACxEA,CAACA;IAEDA,MAAMA,IAAIA,WAAWA,CAACA;IACtBA,MAAMA,IAAIA,uBAAuBA,GAAGA,oBAAoBA,CAACA,UAAUA,CAACA,GAAGA,eAAeA,CAACA;IACvFA,MAAMA,IAAIA,oBAAoBA,CAACA;IAE/BA,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,UAAUA,CAACA,QAAQA,CAACA,MAAMA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;QAClDA,IAAIA,KAAKA,GAAGA,UAAUA,CAACA,QAAQA,CAACA,CAACA,CAACA,CAACA;QACnCA,MAAMA,IAAIA,IAAIA,CAACA;QACfA,MAAMA,IAAIA,WAAWA,CAACA,KAAKA,CAACA,CAACA;QAC7BA,MAAMA,IAAIA,IAAIA,GAAGA,OAAOA,CAACA,KAAKA,CAACA,CAACA;IACpCA,CAACA;IAEDA,MAAMA,IAAIA,KAAKA,GAAGA,UAAUA,CAACA,IAAIA,CAACA;IAClCA,MAAMA,IAAIA,QAAQA,CAACA;IAEnBA,MAAMA,CAACA,MAAMA,CAACA;AAClBA,CAACA;AAED,SAAS,aAAa;IAClBC,IAAIA,MAAMA,GAAGA,+CAA+CA,CAACA;IAE7DA,MAAMA,IAAIA,mBAAmBA,CAACA;IAE9BA,MAAMA,IAAIA,QAAQA,CAACA;IAEnBA,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,WAAWA,CAACA,MAAMA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;QAC1CA,IAAIA,UAAUA,GAAGA,WAAWA,CAACA,CAACA,CAACA,CAACA;QAEhCA,EAAEA,CAACA,CAACA,CAACA,CAACA,CAACA,CAACA;YACJA,MAAMA,IAAIA,MAAMA,CAACA;QACrBA,CAACA;QAEDA,MAAMA,IAAIA,2BAA2BA,CAACA,UAAUA,CAACA,CAACA;IACtDA,CAACA;IAEDA,MAAMA,IAAIA,GAAGA,CAACA;IACdA,MAAMA,CAACA,MAAMA,CAACA;AAClBA,CAACA;AAED,SAAS,WAAW,CAAC,IAAY;IAC7BC,MAAMA,CAACA,IAAIA,CAACA,MAAMA,CAACA,CAACA,EAAEA,CAACA,CAACA,KAAKA,GAAGA,IAAIA,IAAIA,CAACA,MAAMA,CAACA,CAACA,EAAEA,CAACA,CAACA,CAACA,WAAWA,EAAEA,KAAKA,IAAIA,CAACA,MAAMA,CAACA,CAACA,EAAEA,CAACA,CAACA,CAAAA;AAC7FA,CAACA;AAED,SAAS,cAAc;IACnBC,IAAIA,MAAMA,GAAGA,EAAEA,CAACA;IAEhBA,MAAMA,IACNA,2CAA2CA,GAC3CA,MAAMA,GACNA,yBAAyBA,GACzBA,+DAA+DA,GAC/DA,4DAA4DA,GAC5DA,eAAeA,GACfA,MAAMA,GACNA,qEAAqEA,GACrEA,4CAA4CA,GAC5CA,6BAA6BA,GAC7BA,mBAAmBA,GACnBA,MAAMA,GACNA,yCAAyCA,GACzCA,eAAeA,GACfA,MAAMA,GACNA,kEAAkEA,GAClEA,gEAAgEA,GAChEA,sDAAsDA,GACtDA,mBAAmBA,GACnBA,eAAeA,CAACA;IAEhBA,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,WAAWA,CAACA,MAAMA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;QAC1CA,IAAIA,UAAUA,GAAGA,WAAWA,CAACA,CAACA,CAACA,CAACA;QAEhCA,MAAMA,IAAIA,MAAMA,CAACA;QACjBA,MAAMA,IAAIA,sBAAsBA,GAAGA,oBAAoBA,CAACA,UAAUA,CAACA,GAAGA,SAASA,GAAGA,UAAUA,CAACA,IAAIA,GAAGA,eAAeA,CAACA;QAEpHA,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,UAAUA,CAACA,QAAQA,CAACA,MAAMA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;YAClDA,IAAIA,KAAKA,GAAGA,UAAUA,CAACA,QAAQA,CAACA,CAACA,CAACA,CAACA;YAEnCA,EAAEA,CAACA,CAACA,KAAKA,CAACA,OAAOA,CAACA,CAACA,CAACA;gBAChBA,EAAEA,CAACA,CAACA,KAAKA,CAACA,UAAUA,CAACA,CAACA,CAACA;oBACnBA,MAAMA,IAAIA,2CAA2CA,GAAGA,KAAKA,CAACA,IAAIA,GAAGA,QAAQA,CAACA;gBAClFA,CAACA;gBACDA,IAAIA,CAACA,CAACA;oBACFA,MAAMA,IAAIA,mCAAmCA,GAAGA,KAAKA,CAACA,IAAIA,GAAGA,QAAQA,CAACA;gBAC1EA,CAACA;YACLA,CAACA;YACDA,IAAIA,CAACA,EAAEA,CAACA,CAACA,KAAKA,CAACA,MAAMA,IAAIA,KAAKA,CAACA,eAAeA,CAACA,CAACA,CAACA;gBAC7CA,MAAMA,IAAIA,kCAAkCA,GAAGA,KAAKA,CAACA,IAAIA,GAAGA,QAAQA,CAACA;YACzEA,CAACA;YACDA,IAAIA,CAACA,EAAEA,CAACA,CAACA,KAAKA,CAACA,OAAOA,CAACA,CAACA,CAACA;gBACrBA,EAAEA,CAACA,CAACA,KAAKA,CAACA,UAAUA,CAACA,CAACA,CAACA;oBACnBA,MAAMA,IAAIA,2CAA2CA,GAAGA,KAAKA,CAACA,IAAIA,GAAGA,QAAQA,CAACA;gBAClFA,CAACA;gBACDA,IAAIA,CAACA,CAACA;oBACFA,MAAMA,IAAIA,mCAAmCA,GAAGA,KAAKA,CAACA,IAAIA,GAAGA,QAAQA,CAACA;gBAC1EA,CAACA;YACLA,CAACA;YACDA,IAAIA,CAACA,CAACA;gBACFA,MAAMA,IAAIA,0CAA0CA,GAAGA,KAAKA,CAACA,IAAIA,GAAGA,QAAQA,CAACA;YACjFA,CAACA;QACLA,CAACA;QAEDA,MAAMA,IAAIA,eAAeA,CAACA;IAC9BA,CAACA;IAEDA,MAAMA,IAAIA,OAAOA,CAACA;IAClBA,MAAMA,IAAIA,OAAOA,CAACA;IAClBA,MAAMA,CAACA,MAAMA,CAACA;AAClBA,CAACA;AAED,SAAS,aAAa,CAAC,CAAM,EAAE,KAAa;IACxCC,GAAGA,CAACA,CAACA,GAAGA,CAACA,IAAIA,IAAIA,CAACA,CAACA,CAACA,CAACA;QACjBA,EAAEA,CAACA,CAACA,CAACA,CAACA,IAAIA,CAACA,KAAKA,KAAKA,CAACA,CAACA,CAACA;YACpBA,MAAMA,CAACA,IAAIA,CAACA;QAChBA,CAACA;IACLA,CAACA;AACLA,CAACA;AAED,SAAS,OAAO,CAAI,KAAU,EAAE,IAAsB;IAClDC,IAAIA,MAAMA,GAAQA,EAAEA,CAACA;IAErBA,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,KAAKA,CAACA,MAAMA,EAAEA,CAACA,GAAGA,CAACA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;QAC3CA,IAAIA,CAACA,GAAQA,KAAKA,CAACA,CAACA,CAACA,CAACA;QACtBA,IAAIA,CAACA,GAAGA,IAAIA,CAACA,CAACA,CAACA,CAACA;QAEhBA,IAAIA,IAAIA,GAAQA,MAAMA,CAACA,CAACA,CAACA,IAAIA,EAAEA,CAACA;QAChCA,IAAIA,CAACA,IAAIA,CAACA,CAACA,CAACA,CAACA;QACbA,MAAMA,CAACA,CAACA,CAACA,GAAGA,IAAIA,CAACA;IACrBA,CAACA;IAEDA,MAAMA,CAACA,MAAMA,CAACA;AAClBA,CAACA;AAED,SAAS,wBAAwB,CAAC,QAA0D,EAAE,gBAAwB,EAAE,MAAc;IAClIC,IAAIA,MAAMA,GAAGA,QAAQA,CAACA,CAACA,CAACA,CAACA,IAAIA,CAACA,MAAMA,CAACA;IAErCA,IAAIA,MAAMA,GAAGA,EAAEA,CAACA;IAChBA,IAAIA,KAAaA,CAACA;IAElBA,EAAEA,CAACA,CAACA,QAAQA,CAACA,MAAMA,KAAKA,CAACA,CAACA,CAACA,CAACA;QACxBA,IAAIA,OAAOA,GAAGA,QAAQA,CAACA,CAACA,CAACA,CAACA;QAE1BA,EAAEA,CAACA,CAACA,gBAAgBA,KAAKA,MAAMA,CAACA,CAACA,CAACA;YAC9BA,MAAMA,CAACA,qBAAqBA,GAAGA,aAAaA,CAACA,UAAUA,CAACA,UAAUA,EAAEA,OAAOA,CAACA,IAAIA,CAACA,GAAGA,OAAOA,CAACA;QAChGA,CAACA;QAEDA,IAAIA,WAAWA,GAAGA,QAAQA,CAACA,CAACA,CAACA,CAACA,IAAIA,CAACA;QACnCA,MAAMA,GAAGA,WAAWA,CAAAA;QAEpBA,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,gBAAgBA,EAAEA,CAACA,GAAGA,MAAMA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;YAC7CA,EAAEA,CAACA,CAACA,CAACA,GAAGA,gBAAgBA,CAACA,CAACA,CAACA;gBACvBA,MAAMA,IAAIA,MAAMA,CAACA;YACrBA,CAACA;YAEDA,KAAKA,GAAGA,CAACA,KAAKA,CAACA,GAAGA,OAAOA,GAAGA,CAACA,UAAUA,GAAGA,CAACA,CAACA,CAACA;YAC7CA,MAAMA,IAAIA,iBAAiBA,GAAGA,KAAKA,GAAGA,uBAAuBA,GAAGA,WAAWA,CAACA,MAAMA,CAACA,CAACA,EAAEA,CAACA,CAACA,CAACA;QAC7FA,CAACA;QAEDA,MAAMA,IAAIA,iBAAiBA,GAAGA,aAAaA,CAACA,UAAUA,CAACA,UAAUA,EAAEA,OAAOA,CAACA,IAAIA,CAACA,GAAGA,mCAAmCA,CAACA;IAC3HA,CAACA;IACDA,IAAIA,CAACA,CAACA;QACFA,MAAMA,IAAIA,MAAMA,GAAGA,UAAUA,CAACA,cAAcA,CAACA,MAAMA,CAACA,QAAQA,EAAEA,UAAAA,CAAIA,IAACA,OAAAA,CAACA,CAACA,IAAIA,EAANA,CAAMA,CAACA,CAACA,IAAIA,CAACA,IAAIA,CAACA,GAAGA,MAAMA,CAAAA;QAC9FA,KAAKA,GAAGA,gBAAgBA,KAAKA,CAACA,GAAGA,OAAOA,GAAGA,CAACA,UAAUA,GAAGA,gBAAgBA,CAACA,CAACA;QAC3EA,MAAMA,IAAIA,MAAMA,GAAGA,wBAAwBA,GAAGA,KAAKA,GAAGA,UAAUA,CAAAA;QAEhEA,IAAIA,eAAeA,GAAGA,OAAOA,CAACA,QAAQA,EAAEA,UAAAA,CAAIA,IAACA,OAAAA,CAACA,CAACA,IAAIA,CAACA,MAAMA,CAACA,gBAAgBA,EAAEA,CAACA,CAACA,EAAlCA,CAAkCA,CAACA,CAACA;QAEjFA,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,IAAIA,eAAeA,CAACA,CAACA,CAACA;YAC5BA,EAAEA,CAACA,CAACA,eAAeA,CAACA,cAAcA,CAACA,CAACA,CAACA,CAACA,CAACA,CAACA;gBACpCA,MAAMA,IAAIA,MAAMA,GAAGA,wBAAwBA,GAAGA,CAACA,GAAGA,GAAGA,CAACA;gBACtDA,MAAMA,IAAIA,wBAAwBA,CAACA,eAAeA,CAACA,CAACA,CAACA,EAAEA,gBAAgBA,GAAGA,CAACA,EAAEA,MAAMA,GAAGA,MAAMA,CAACA,CAACA;YAClGA,CAACA;QACLA,CAACA;QAEDA,MAAMA,IAAIA,MAAMA,GAAGA,kDAAkDA,CAACA;QACtEA,MAAMA,IAAIA,MAAMA,GAAGA,OAAOA,CAACA;IAC/BA,CAACA;IAEDA,MAAMA,CAACA,MAAMA,CAACA;AAClBA,CAACA;AAED,SAAS,GAAG,CAAI,KAAU,EAAE,IAAsB;IAC9CC,IAAIA,GAAGA,GAAGA,IAAIA,CAACA,KAAKA,CAACA,CAACA,CAACA,CAACA,CAACA;IAEzBA,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,KAAKA,CAACA,MAAMA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;QACpCA,IAAIA,IAAIA,GAAGA,IAAIA,CAACA,KAAKA,CAACA,CAACA,CAACA,CAACA,CAACA;QAC1BA,EAAEA,CAACA,CAACA,IAAIA,GAAGA,GAAGA,CAACA,CAACA,CAACA;YACbA,GAAGA,GAAGA,IAAIA,CAACA;QACfA,CAACA;IACLA,CAACA;IAEDA,MAAMA,CAACA,GAAGA,CAACA;AACfA,CAACA;AAED,SAAS,GAAG,CAAI,KAAU,EAAE,IAAsB;IAC9CC,IAAIA,GAAGA,GAAGA,IAAIA,CAACA,KAAKA,CAACA,CAACA,CAACA,CAACA,CAACA;IAEzBA,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,KAAKA,CAACA,MAAMA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;QACpCA,IAAIA,IAAIA,GAAGA,IAAIA,CAACA,KAAKA,CAACA,CAACA,CAACA,CAACA,CAACA;QAC1BA,EAAEA,CAACA,CAACA,IAAIA,GAAGA,GAAGA,CAACA,CAACA,CAACA;YACbA,GAAGA,GAAGA,IAAIA,CAACA;QACfA,CAACA;IACLA,CAACA;IAEDA,MAAMA,CAACA,GAAGA,CAACA;AACfA,CAACA;AAED,SAAS,iBAAiB;IACtBC,IAAIA,MAAMA,GAAGA,EAAEA,CAACA;IAChBA,MAAMA,IAAIA,iCAAiCA,CAACA;IAC5CA,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,IAAIA,UAAUA,CAACA,UAAUA,CAACA,cAAcA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;QAC7DA,EAAEA,CAACA,CAACA,CAACA,CAACA,CAACA,CAACA;YACJA,MAAMA,IAAIA,IAAIA,CAACA;QACnBA,CAACA;QAEDA,EAAEA,CAACA,CAACA,CAACA,GAAGA,UAAUA,CAACA,UAAUA,CAACA,eAAeA,CAACA,CAACA,CAACA;YAC5CA,MAAMA,IAAIA,GAAGA,CAACA;QAClBA,CAACA;QACDA,IAAIA,CAACA,CAACA;YACFA,MAAMA,IAAIA,UAAUA,CAACA,WAAWA,CAACA,OAAOA,CAACA,CAACA,CAACA,CAACA,MAAMA,CAACA;QACvDA,CAACA;IACLA,CAACA;IACDA,MAAMA,IAAIA,QAAQA,CAACA;IAEnBA,MAAMA,IAAIA,gEAAgEA,CAACA;IAC3EA,MAAMA,IAAIA,+CAA+CA,CAACA;IAS1DA,MAAMA,IAAIA,eAAeA,CAACA;IAE1BA,MAAMA,CAACA,MAAMA,CAACA;AAClBA,CAACA;AAED,SAAS,wBAAwB;IAC7BC,IAAIA,MAAMA,GAAGA,2CAA2CA,GACpDA,MAAMA,GACNA,yBAAyBA,GACzBA,0CAA0CA,CAACA;IAE/CA,IAAIA,CAASA,CAACA;IACdA,IAAIA,QAAQA,GAAqDA,EAAEA,CAACA;IAEpEA,GAAGA,CAACA,CAACA,CAACA,GAAGA,UAAUA,CAACA,UAAUA,CAACA,YAAYA,EAAEA,CAACA,IAAIA,UAAUA,CAACA,UAAUA,CAACA,WAAWA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;QACvFA,QAAQA,CAACA,IAAIA,CAACA,EAAEA,IAAIA,EAAEA,CAACA,EAAEA,IAAIA,EAAEA,UAAUA,CAACA,WAAWA,CAACA,OAAOA,CAACA,CAACA,CAACA,EAAEA,CAACA,CAACA;IACxEA,CAACA;IAEDA,QAAQA,CAACA,IAAIA,CAACA,UAACA,CAACA,EAAEA,CAACA,IAAKA,OAAAA,CAACA,CAACA,IAAIA,CAACA,aAAaA,CAACA,CAACA,CAACA,IAAIA,CAACA,EAA5BA,CAA4BA,CAACA,CAACA;IAEtDA,MAAMA,IAAIA,sGAAsGA,CAACA;IAEjHA,IAAIA,cAAcA,GAAGA,GAAGA,CAACA,QAAQA,EAAEA,UAAAA,CAAIA,IAACA,OAAAA,CAACA,CAACA,IAAIA,CAACA,MAAMA,EAAbA,CAAaA,CAACA,CAACA;IACvDA,IAAIA,cAAcA,GAAGA,GAAGA,CAACA,QAAQA,EAAEA,UAAAA,CAAIA,IAACA,OAAAA,CAACA,CAACA,IAAIA,CAACA,MAAMA,EAAbA,CAAaA,CAACA,CAACA;IACvDA,MAAMA,IAAIA,mCAAmCA,CAACA;IAG9CA,GAAGA,CAACA,CAACA,CAACA,GAAGA,cAAcA,EAAEA,CAACA,IAAIA,cAAcA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;QAChDA,IAAIA,iBAAiBA,GAAGA,UAAUA,CAACA,cAAcA,CAACA,KAAKA,CAACA,QAAQA,EAAEA,UAAAA,CAAIA,IAACA,OAAAA,CAACA,CAACA,IAAIA,CAACA,MAAMA,KAAKA,CAACA,EAAnBA,CAAmBA,CAACA,CAACA;QAC5FA,EAAEA,CAACA,CAACA,iBAAiBA,CAACA,MAAMA,GAAGA,CAACA,CAACA,CAACA,CAACA;YAC/BA,MAAMA,IAAIA,qBAAqBA,GAAGA,CAACA,GAAGA,GAAGA,CAACA;YAC1CA,MAAMA,IAAIA,wBAAwBA,CAACA,iBAAiBA,EAAEA,CAACA,EAAEA,kBAAkBA,CAACA,CAACA;QACjFA,CAACA;IACLA,CAACA;IAEDA,MAAMA,IAAIA,8DAA8DA,CAACA;IACzEA,MAAMA,IAAIA,mBAAmBA,CAACA;IAC9BA,MAAMA,IAAIA,eAAeA,CAACA;IAE1BA,MAAMA,IAAIA,WAAWA,CAACA;IACtBA,MAAMA,IAAIA,GAAGA,CAACA;IAEdA,MAAMA,CAACA,MAAMA,CAACA;AAClBA,CAACA;AAED,SAAS,cAAc,CAAC,IAA2B;IAC/CC,GAAGA,CAACA,CAACA,GAAGA,CAACA,IAAIA,IAAIA,UAAUA,CAACA,UAAUA,CAACA,CAACA,CAACA;QACrCA,EAAEA,CAACA,CAAMA,UAAUA,CAACA,UAAUA,CAACA,IAAIA,CAACA,KAAKA,IAAIA,CAACA,CAACA,CAACA;YAC5CA,MAAMA,CAACA,IAAIA,CAACA;QAChBA,CAACA;IACLA,CAACA;IAEDA,MAAMA,IAAIA,KAAKA,EAAEA,CAACA;AACtBA,CAACA;AAED,SAAS,eAAe;IACpBC,IAAIA,MAAMA,GAAGA,EAAEA,CAACA;IAEhBA,MAAMA,IAAIA,+CAA+CA,CAACA;IAE1DA,MAAMA,IAAIA,yBAAyBA,CAACA;IACpCA,MAAMA,IAAIA,uGAAuGA,CAACA;IAClHA,MAAMA,IAAIA,8DAA8DA,CAACA;IAEzEA,MAAMA,IAAIA,qCAAqCA,CAACA;IAEhDA,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,WAAWA,CAACA,MAAMA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;QAC1CA,IAAIA,UAAUA,GAAGA,WAAWA,CAACA,CAACA,CAACA,CAACA;QAEhCA,MAAMA,IAAIA,8BAA8BA,GAAGA,oBAAoBA,CAACA,UAAUA,CAACA,GAAGA,IAAIA,CAACA;QACnFA,MAAMA,IAAIA,sBAAsBA,GAAGA,oBAAoBA,CAACA,UAAUA,CAACA,GAAGA,IAAIA,GAAGA,UAAUA,CAACA,IAAIA,GAAGA,gBAAgBA,CAACA;IACpHA,CAACA;IAEDA,MAAMA,IAAIA,4EAA4EA,CAACA;IACvFA,MAAMA,IAAIA,eAAeA,CAACA;IAC1BA,MAAMA,IAAIA,eAAeA,CAACA;IAE1BA,MAAMA,IAAIA,2CAA2CA,CAACA;IACtDA,MAAMA,IAAIA,mDAAmDA,CAACA;IAE9DA,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,WAAWA,CAACA,MAAMA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;QAC1CA,IAAIA,UAAUA,GAAGA,WAAWA,CAACA,CAACA,CAACA,CAACA;QAChCA,MAAMA,IAAIA,eAAeA,GAAGA,oBAAoBA,CAACA,UAAUA,CAACA,GAAGA,SAASA,GAAGA,UAAUA,CAACA,IAAIA,GAAGA,aAAaA,CAACA;IAC/GA,CAACA;IAEDA,MAAMA,IAAIA,OAAOA,CAACA;IAElBA,MAAMA,IAAIA,OAAOA,CAACA;IAElBA,MAAMA,CAACA,MAAMA,CAACA;AAClBA,CAACA;AAED,IAAI,mBAAmB,GAAG,aAAa,EAAE,CAAC;AAC1C,IAAI,gBAAgB,GAAG,wBAAwB,EAAE,CAAC;AAClD,IAAI,MAAM,GAAG,cAAc,EAAE,CAAC;AAC9B,IAAI,gBAAgB,GAAG,wBAAwB,EAAE,CAAC;AAClD,IAAI,OAAO,GAAG,eAAe,EAAE,CAAC;AAChC,IAAI,SAAS,GAAG,iBAAiB,EAAE,CAAC;AAEpC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,mBAAmB,EAAE,GAAG,4DAA4D,EAAE,mBAAmB,EAAE,KAAK,CAAC,CAAC;AACpI,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,mBAAmB,EAAE,GAAG,wDAAwD,EAAE,gBAAgB,EAAE,KAAK,CAAC,CAAC;AAC7H,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,mBAAmB,EAAE,GAAG,oDAAoD,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;AAC/G,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,mBAAmB,EAAE,GAAG,wDAAwD,EAAE,gBAAgB,EAAE,KAAK,CAAC,CAAC;AAC7H,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,mBAAmB,EAAE,GAAG,qDAAqD,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;AACjH,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,mBAAmB,EAAE,GAAG,iDAAiD,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC"} ======= @@ -55,3 +56,6 @@ ======= {"version":3,"file":"SyntaxGenerator.js","sourceRoot":"","sources":["file:///C:/VSPro_1/src/typescript/public_cyrusn/src/compiler/sys.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/core/errors.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/core/arrayUtilities.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/core/stringUtilities.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/syntax/syntaxKind.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/syntax/syntaxFacts.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/syntax/SyntaxGenerator.ts"],"names":["getWScriptSystem","getWScriptSystem.readFile","getWScriptSystem.writeFile","getNodeSystem","getNodeSystem.readFile","getNodeSystem.writeFile","getNodeSystem.fileChanged","TypeScript","TypeScript.Errors","TypeScript.Errors.constructor","TypeScript.Errors.argument","TypeScript.Errors.argumentOutOfRange","TypeScript.Errors.argumentNull","TypeScript.Errors.abstract","TypeScript.Errors.notYetImplemented","TypeScript.Errors.invalidOperation","TypeScript.ArrayUtilities","TypeScript.ArrayUtilities.constructor","TypeScript.ArrayUtilities.sequenceEquals","TypeScript.ArrayUtilities.contains","TypeScript.ArrayUtilities.distinct","TypeScript.ArrayUtilities.last","TypeScript.ArrayUtilities.lastOrDefault","TypeScript.ArrayUtilities.firstOrDefault","TypeScript.ArrayUtilities.first","TypeScript.ArrayUtilities.sum","TypeScript.ArrayUtilities.select","TypeScript.ArrayUtilities.where","TypeScript.ArrayUtilities.any","TypeScript.ArrayUtilities.all","TypeScript.ArrayUtilities.binarySearch","TypeScript.ArrayUtilities.createArray","TypeScript.ArrayUtilities.grow","TypeScript.ArrayUtilities.copy","TypeScript.ArrayUtilities.indexOf","TypeScript.StringUtilities","TypeScript.StringUtilities.constructor","TypeScript.StringUtilities.isString","TypeScript.StringUtilities.endsWith","TypeScript.StringUtilities.startsWith","TypeScript.StringUtilities.repeat","TypeScript.SyntaxKind","TypeScript.SyntaxFacts","TypeScript.SyntaxFacts.getTokenKind","TypeScript.SyntaxFacts.getText","TypeScript.SyntaxFacts.isAnyKeyword","TypeScript.SyntaxFacts.isAnyPunctuation","TypeScript.SyntaxFacts.isPrefixUnaryExpressionOperatorToken","TypeScript.SyntaxFacts.isBinaryExpressionOperatorToken","TypeScript.SyntaxFacts.isAssignmentOperatorToken","TypeScript.SyntaxFacts.isType","firstKind","getStringWithoutSuffix","getNameWithoutSuffix","getType","camelCase","getSafeName","generateConstructorFunction","generateSyntaxInterfaces","generateSyntaxInterface","generateNodes","isInterface","generateWalker","firstEnumName","groupBy","generateKeywordCondition","min","max","generateUtilities","generateScannerUtilities","syntaxKindName","generateVisitor"],"mappings":"AA4BA,IAAI,GAAG,GAAW,CAAC;IAEf,SAAS,gBAAgB;QAErBA,IAAIA,GAAGA,GAAGA,IAAIA,aAAaA,CAACA,4BAA4BA,CAACA,CAACA;QAE1DA,IAAIA,UAAUA,GAAGA,IAAIA,aAAaA,CAACA,cAAcA,CAACA,CAACA;QACnDA,UAAUA,CAACA,IAAIA,GAAGA,CAACA,CAAUA;QAE7BA,IAAIA,YAAYA,GAAGA,IAAIA,aAAaA,CAACA,cAAcA,CAACA,CAACA;QACrDA,YAAYA,CAACA,IAAIA,GAAGA,CAACA,CAAYA;QAEjCA,IAAIA,IAAIA,GAAaA,EAAEA,CAACA;QACxBA,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,OAAOA,CAACA,SAASA,CAACA,MAAMA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;YAChDA,IAAIA,CAACA,CAACA,CAACA,GAAGA,OAAOA,CAACA,SAASA,CAACA,IAAIA,CAACA,CAACA,CAACA,CAACA;QACxCA,CAACA;QAEDA,SAASA,QAAQA,CAACA,QAAgBA,EAAEA,QAAiBA;YACjDC,EAAEA,CAACA,CAACA,CAACA,GAAGA,CAACA,UAAUA,CAACA,QAAQA,CAACA,CAACA,CAACA,CAACA;gBAC5BA,MAAMA,CAACA,SAASA,CAACA;YACrBA,CAACA;YACDA,UAAUA,CAACA,IAAIA,EAAEA,CAACA;YAClBA,IAAAA,CAACA;gBACGA,EAAEA,CAACA,CAACA,QAAQA,CAACA,CAACA,CAACA;oBACXA,UAAUA,CAACA,OAAOA,GAAGA,QAAQA,CAACA;oBAC9BA,UAAUA,CAACA,YAAYA,CAACA,QAAQA,CAACA,CAACA;gBACtCA,CAACA;gBACDA,IAAIA,CAACA,CAACA;oBAEFA,UAAUA,CAACA,OAAOA,GAAGA,QAAQA,CAACA;oBAC9BA,UAAUA,CAACA,YAAYA,CAACA,QAAQA,CAACA,CAACA;oBAClCA,IAAIA,GAAGA,GAAGA,UAAUA,CAACA,QAAQA,CAACA,CAACA,CAACA,IAAIA,EAAEA,CAACA;oBAEvCA,UAAUA,CAACA,QAAQA,GAAGA,CAACA,CAACA;oBAExBA,UAAUA,CAACA,OAAOA,GAAGA,GAAGA,CAACA,MAAMA,IAAIA,CAACA,IAAIA,CAACA,GAAGA,CAACA,UAAUA,CAACA,CAACA,CAACA,KAAKA,IAAIA,IAAIA,GAAGA,CAACA,UAAUA,CAACA,CAACA,CAACA,KAAKA,IAAIA,IAAIA,GAAGA,CAACA,UAAUA,CAACA,CAACA,CAACA,KAAKA,IAAIA,IAAIA,GAAGA,CAACA,UAAUA,CAACA,CAACA,CAACA,KAAKA,IAAIA,CAACA,GAAGA,SAASA,GAAGA,OAAOA,CAACA;gBACzLA,CAACA;gBAEDA,MAAMA,CAACA,UAAUA,CAACA,QAAQA,EAAEA,CAACA;YACjCA,CACAA;YAAAA,KAAKA,CAACA,CAACA,CAACA,CAACA,CAATA,CAACA;gBACGA,MAAMA,CAACA,CAACA;YACZA,CAACA;oBACDA,CAACA;gBACGA,UAAUA,CAACA,KAAKA,EAAEA,CAACA;YACvBA,CAACA;QACLA,CAACA;QAEDD,SAASA,SAASA,CAACA,QAAgBA,EAAEA,IAAYA,EAAEA,kBAA4BA;YAC3EE,UAAUA,CAACA,IAAIA,EAAEA,CAACA;YAClBA,YAAYA,CAACA,IAAIA,EAAEA,CAACA;YACpBA,IAAAA,CAACA;gBAEGA,UAAUA,CAACA,OAAOA,GAAGA,OAAOA,CAACA;gBAC7BA,UAAUA,CAACA,SAASA,CAACA,IAAIA,CAACA,CAACA;gBAG3BA,EAAEA,CAACA,CAACA,kBAAkBA,CAACA,CAACA,CAACA;oBACrBA,UAAUA,CAACA,QAAQA,GAAGA,CAACA,CAACA;gBAC5BA,CAACA;gBACDA,IAAIA,CAACA,CAACA;oBACFA,UAAUA,CAACA,QAAQA,GAAGA,CAACA,CAACA;gBAC5BA,CAACA;gBACDA,UAAUA,CAACA,MAAMA,CAACA,YAAYA,CAACA,CAACA;gBAChCA,YAAYA,CAACA,UAAUA,CAACA,QAAQA,EAAEA,CAACA,CAAeA,CAACA;YACvDA,CAACA;oBACDA,CAACA;gBACGA,YAAYA,CAACA,KAAKA,EAAEA,CAACA;gBACrBA,UAAUA,CAACA,KAAKA,EAAEA,CAACA;YACvBA,CAACA;QACLA,CAACA;QAEDF,MAAMA,CAACA;YACHA,IAAIA,MAAAA;YACJA,OAAOA,EAAEA,MAAMA;YACfA,yBAAyBA,EAAEA,KAAKA;YAChCA,KAAKA,EAALA,UAAMA,CAASA;gBACX,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAC5B,CAAC;YACDA,QAAQA,UAAAA;YACRA,SAASA,WAAAA;YACTA,WAAWA,EAAXA,UAAYA,IAAYA;gBACpB,MAAM,CAAC,GAAG,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;YACzC,CAAC;YACDA,UAAUA,EAAVA,UAAWA,IAAYA;gBACnB,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YAChC,CAAC;YACDA,eAAeA,EAAfA,UAAgBA,IAAYA;gBACxB,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;YAClC,CAAC;YACDA,eAAeA,EAAfA,UAAgBA,aAAqBA;gBACjC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;oBACvC,GAAG,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC;gBACpC,CAAC;YACL,CAAC;YACDA,oBAAoBA,EAApBA;gBACI,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC;YAClC,CAAC;YACDA,mBAAmBA,EAAnBA;gBACI,MAAM,CAAC,IAAI,aAAa,CAAC,eAAe,CAAC,CAAC,gBAAgB,CAAC;YAC/D,CAAC;YACDA,IAAIA,EAAJA,UAAKA,QAAiBA;gBAClB,IAAA,CAAC;oBACG,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBAC3B,CACA;gBAAA,KAAK,CAAC,CAAC,CAAC,CAAC,CAAT,CAAC;gBACD,CAAC;YACL,CAAC;SACJA,CAACA;IACNA,CAACA;IACD,SAAS,aAAa;QAClBG,IAAIA,GAAGA,GAAGA,OAAOA,CAACA,IAAIA,CAACA,CAACA;QACxBA,IAAIA,KAAKA,GAAGA,OAAOA,CAACA,MAAMA,CAACA,CAACA;QAC5BA,IAAIA,GAAGA,GAAGA,OAAOA,CAACA,IAAIA,CAACA,CAACA;QAExBA,IAAIA,QAAQA,GAAWA,GAAGA,CAACA,QAAQA,EAAEA,CAACA;QAEtCA,IAAIA,yBAAyBA,GAAGA,QAAQA,KAAKA,OAAOA,IAAIA,QAAQA,KAAKA,OAAOA,IAAIA,QAAQA,KAAKA,QAAQA,CAACA;QAEtGA,SAASA,QAAQA,CAACA,QAAgBA,EAAEA,QAAiBA;YACjDC,EAAEA,CAACA,CAACA,CAACA,GAAGA,CAACA,UAAUA,CAACA,QAAQA,CAACA,CAACA,CAACA,CAACA;gBAC5BA,MAAMA,CAACA,SAASA,CAACA;YACrBA,CAACA;YACDA,IAAIA,MAAMA,GAAGA,GAAGA,CAACA,YAAYA,CAACA,QAAQA,CAACA,CAACA;YACxCA,IAAIA,GAAGA,GAAGA,MAAMA,CAACA,MAAMA,CAACA;YACxBA,EAAEA,CAACA,CAACA,GAAGA,IAAIA,CAACA,IAAIA,MAAMA,CAACA,CAACA,CAACA,KAAKA,IAAIA,IAAIA,MAAMA,CAACA,CAACA,CAACA,KAAKA,IAAIA,CAACA,CAACA,CAACA;gBAGvDA,GAAGA,IAAIA,CAACA,CAACA,CAACA;gBACVA,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,GAAGA,EAAEA,CAACA,IAAIA,CAACA,EAAEA,CAACA;oBAC9BA,IAAIA,IAAIA,GAAGA,MAAMA,CAACA,CAACA,CAACA,CAACA;oBACrBA,MAAMA,CAACA,CAACA,CAACA,GAAGA,MAAMA,CAACA,CAACA,GAAGA,CAACA,CAACA,CAACA;oBAC1BA,MAAMA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,IAAIA,CAACA;gBACzBA,CAACA;gBACDA,MAAMA,CAACA,MAAMA,CAACA,QAAQA,CAACA,SAASA,EAAEA,CAACA,CAACA,CAACA;YACzCA,CAACA;YACDA,EAAEA,CAACA,CAACA,GAAGA,IAAIA,CAACA,IAAIA,MAAMA,CAACA,CAACA,CAACA,KAAKA,IAAIA,IAAIA,MAAMA,CAACA,CAACA,CAACA,KAAKA,IAAIA,CAACA,CAACA,CAACA;gBAEvDA,MAAMA,CAACA,MAAMA,CAACA,QAAQA,CAACA,SAASA,EAAEA,CAACA,CAACA,CAACA;YACzCA,CAACA;YACDA,EAAEA,CAACA,CAACA,GAAGA,IAAIA,CAACA,IAAIA,MAAMA,CAACA,CAACA,CAACA,KAAKA,IAAIA,IAAIA,MAAMA,CAACA,CAACA,CAACA,KAAKA,IAAIA,IAAIA,MAAMA,CAACA,CAACA,CAACA,KAAKA,IAAIA,CAACA,CAACA,CAACA;gBAE7EA,MAAMA,CAACA,MAAMA,CAACA,QAAQA,CAACA,MAAMA,EAAEA,CAACA,CAACA,CAACA;YACtCA,CAACA;YAEDA,MAAMA,CAACA,MAAMA,CAACA,QAAQA,CAACA,MAAMA,CAACA,CAACA;QACnCA,CAACA;QAEDD,SAASA,SAASA,CAACA,QAAgBA,EAAEA,IAAYA,EAAEA,kBAA4BA;YAE3EE,EAAEA,CAACA,CAACA,kBAAkBA,CAACA,CAACA,CAACA;gBACrBA,IAAIA,GAAGA,QAAQA,GAAGA,IAAIA,CAACA;YAC3BA,CAACA;YAEDA,GAAGA,CAACA,aAAaA,CAACA,QAAQA,EAAEA,IAAIA,EAAEA,MAAMA,CAACA,CAACA;QAC9CA,CAACA;QAEDF,MAAMA,CAACA;YACHA,IAAIA,EAAEA,OAAOA,CAACA,IAAIA,CAACA,KAAKA,CAACA,CAACA,CAACA;YAC3BA,OAAOA,EAAEA,GAAGA,CAACA,GAAGA;YAChBA,yBAAyBA,EAAEA,yBAAyBA;YACpDA,KAAKA,EAALA,UAAMA,CAASA;gBAEZ,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YACvB,CAAC;YACDA,QAAQA,UAAAA;YACRA,SAASA,WAAAA;YACTA,SAASA,EAAEA,UAACA,QAAQA,EAAEA,QAAQA;gBAE1BA,GAAGA,CAACA,SAASA,CAACA,QAAQA,EAAEA,EAAEA,UAAUA,EAAEA,IAAIA,EAAEA,QAAQA,EAAEA,GAAGA,EAAEA,EAAEA,WAAWA,CAACA,CAACA;gBAE1EA,MAAMA,CAACA;oBACHA,KAAKA,EAALA;wBAAU,GAAG,CAAC,WAAW,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;oBAAC,CAAC;iBACtDA,CAACA;gBAEFA,SAASA,WAAWA,CAACA,IAASA,EAAEA,IAASA;oBACrCG,EAAEA,CAACA,CAACA,CAACA,IAAIA,CAACA,KAAKA,IAAIA,CAACA,IAAIA,CAACA,KAAKA,CAACA,CAACA,CAACA;wBAC7BA,MAAMA,CAACA;oBACXA,CAACA;oBAEDA,QAAQA,CAACA,QAAQA,CAACA,CAACA;gBACvBA,CAACA;gBAAAH,CAACA;YACNA,CAACA;YACDA,WAAWA,EAAEA,UAAUA,IAAYA;gBAC/B,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAC/B,CAAC;YACDA,UAAUA,EAAVA,UAAWA,IAAYA;gBACnB,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YAChC,CAAC;YACDA,eAAeA,EAAfA,UAAgBA,IAAYA;gBACxB,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC;YACpE,CAAC;YACDA,eAAeA,EAAfA,UAAgBA,aAAqBA;gBACjC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;oBACvC,GAAG,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;gBACjC,CAAC;YACL,CAAC;YACDA,oBAAoBA,EAApBA;gBACI,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC;YACvC,CAAC;YACDA,mBAAmBA,EAAnBA;gBACI,MAAM,CAAO,OAAQ,CAAC,GAAG,EAAE,CAAC;YAChC,CAAC;YACDA,cAAcA,EAAdA;gBACI,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;oBACZ,MAAM,CAAC,EAAE,EAAE,CAAC;gBAChB,CAAC;gBACD,MAAM,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC;YAC1C,CAAC;YACDA,IAAIA,EAAJA,UAAKA,QAAiBA;gBAClB,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC3B,CAAC;SACJA,CAACA;IACNA,CAACA;IACD,EAAE,CAAC,CAAC,OAAO,OAAO,KAAK,WAAW,IAAI,OAAO,aAAa,KAAK,UAAU,CAAC,CAAC,CAAC;QACxE,MAAM,CAAC,gBAAgB,EAAE,CAAC;IAC9B,CAAC;IACD,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,KAAK,WAAW,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;QACvD,MAAM,CAAC,aAAa,EAAE,CAAC;IAC3B,CAAC;IACD,IAAI,CAAC,CAAC;QACF,MAAM,CAAC,SAAS,CAAC;IACrB,CAAC;AACL,CAAC,CAAC,EAAE,CAAC;ACzPL,IAAO,UAAU,CA0BhB;AA1BD,WAAO,UAAU,EAAC,CAAC;IACfI,IAAaA,MAAMA;QAAnBC,SAAaA,MAAMA;QAwBnBC,CAACA;QAvBiBD,eAAQA,GAAtBA,UAAuBA,QAAgBA,EAAEA,OAAgBA;YACrDE,MAAMA,CAACA,IAAIA,KAAKA,CAACA,oBAAoBA,GAAGA,QAAQA,GAAGA,IAAIA,GAAGA,OAAOA,CAACA,CAACA;QACvEA,CAACA;QAEaF,yBAAkBA,GAAhCA,UAAiCA,QAAgBA;YAC7CG,MAAMA,CAACA,IAAIA,KAAKA,CAACA,yBAAyBA,GAAGA,QAAQA,CAACA,CAACA;QAC3DA,CAACA;QAEaH,mBAAYA,GAA1BA,UAA2BA,QAAgBA;YACvCI,MAAMA,CAACA,IAAIA,KAAKA,CAACA,iBAAiBA,GAAGA,QAAQA,CAACA,CAACA;QACnDA,CAACA;QAEaJ,eAAQA,GAAtBA;YACIK,MAAMA,CAACA,IAAIA,KAAKA,CAACA,iDAAiDA,CAACA,CAACA;QACxEA,CAACA;QAEaL,wBAAiBA,GAA/BA;YACIM,MAAMA,CAACA,IAAIA,KAAKA,CAACA,sBAAsBA,CAACA,CAACA;QAC7CA,CAACA;QAEaN,uBAAgBA,GAA9BA,UAA+BA,OAAgBA;YAC3CO,MAAMA,CAACA,IAAIA,KAAKA,CAACA,qBAAqBA,GAAGA,OAAOA,CAACA,CAACA;QACtDA,CAACA;QACLP,aAACA;IAADA,CAACA,AAxBDD,IAwBCA;IAxBYA,iBAAMA,GAANA,MAwBZA,CAAAA;AACLA,CAACA,EA1BM,UAAU,KAAV,UAAU,QA0BhB;AC1BD,IAAO,UAAU,CA0MhB;AA1MD,WAAO,UAAU,EAAC,CAAC;IACfA,IAAaA,cAAcA;QAA3BS,SAAaA,cAAcA;QAwM3BC,CAACA;QAvMiBD,6BAAcA,GAA5BA,UAAgCA,MAAWA,EAAEA,MAAWA,EAAEA,MAAiCA;YACvFE,EAAEA,CAACA,CAACA,MAAMA,KAAKA,MAAMA,CAACA,CAACA,CAACA;gBACpBA,MAAMA,CAACA,IAAIA,CAACA;YAChBA,CAACA;YAEDA,EAAEA,CAACA,CAACA,CAACA,MAAMA,IAAIA,CAACA,MAAMA,CAACA,CAACA,CAACA;gBACrBA,MAAMA,CAACA,KAAKA,CAACA;YACjBA,CAACA;YAEDA,EAAEA,CAACA,CAACA,MAAMA,CAACA,MAAMA,KAAKA,MAAMA,CAACA,MAAMA,CAACA,CAACA,CAACA;gBAClCA,MAAMA,CAACA,KAAKA,CAACA;YACjBA,CAACA;YAEDA,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,MAAMA,CAACA,MAAMA,EAAEA,CAACA,GAAGA,CAACA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;gBAC5CA,EAAEA,CAACA,CAACA,CAACA,MAAMA,CAACA,MAAMA,CAACA,CAACA,CAACA,EAAEA,MAAMA,CAACA,CAACA,CAACA,CAACA,CAACA,CAACA,CAACA;oBAChCA,MAAMA,CAACA,KAAKA,CAACA;gBACjBA,CAACA;YACLA,CAACA;YAEDA,MAAMA,CAACA,IAAIA,CAACA;QAChBA,CAACA;QAEaF,uBAAQA,GAAtBA,UAA0BA,KAAUA,EAAEA,KAAQA;YAC1CG,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,KAAKA,CAACA,MAAMA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;gBACpCA,EAAEA,CAACA,CAACA,KAAKA,CAACA,CAACA,CAACA,KAAKA,KAAKA,CAACA,CAACA,CAACA;oBACrBA,MAAMA,CAACA,IAAIA,CAACA;gBAChBA,CAACA;YACLA,CAACA;YAEDA,MAAMA,CAACA,KAAKA,CAACA;QACjBA,CAACA;QAGaH,uBAAQA,GAAtBA,UAA0BA,KAAUA,EAAEA,QAAkCA;YACpEI,IAAIA,MAAMA,GAAQA,EAAEA,CAACA;YAGrBA,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,KAAKA,CAACA,MAAMA,EAAEA,CAACA,GAAGA,CAACA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;gBAC3CA,IAAIA,OAAOA,GAAGA,KAAKA,CAACA,CAACA,CAACA,CAACA;gBACvBA,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,MAAMA,CAACA,MAAMA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;oBACrCA,EAAEA,CAACA,CAACA,QAAQA,CAACA,MAAMA,CAACA,CAACA,CAACA,EAAEA,OAAOA,CAACA,CAACA,CAACA,CAACA;wBAC/BA,KAAKA,CAACA;oBACVA,CAACA;gBACLA,CAACA;gBAEDA,EAAEA,CAACA,CAACA,CAACA,KAAKA,MAAMA,CAACA,MAAMA,CAACA,CAACA,CAACA;oBACtBA,MAAMA,CAACA,IAAIA,CAACA,OAAOA,CAACA,CAACA;gBACzBA,CAACA;YACLA,CAACA;YAEDA,MAAMA,CAACA,MAAMA,CAACA;QAClBA,CAACA;QAEaJ,mBAAIA,GAAlBA,UAAsBA,KAAUA;YAC5BK,EAAEA,CAACA,CAACA,KAAKA,CAACA,MAAMA,KAAKA,CAACA,CAACA,CAACA,CAACA;gBACrBA,MAAMA,iBAAMA,CAACA,kBAAkBA,CAACA,OAAOA,CAACA,CAACA;YAC7CA,CAACA;YAEDA,MAAMA,CAACA,KAAKA,CAACA,KAAKA,CAACA,MAAMA,GAAGA,CAACA,CAACA,CAACA;QACnCA,CAACA;QAEaL,4BAAaA,GAA3BA,UAA+BA,KAAUA,EAAEA,SAA2CA;YAClFM,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,KAAKA,CAACA,MAAMA,GAAGA,CAACA,EAAEA,CAACA,IAAIA,CAACA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;gBACzCA,IAAIA,CAACA,GAAGA,KAAKA,CAACA,CAACA,CAACA,CAACA;gBACjBA,EAAEA,CAACA,CAACA,SAASA,CAACA,CAACA,EAAEA,CAACA,CAACA,CAACA,CAACA,CAACA;oBAClBA,MAAMA,CAACA,CAACA,CAACA;gBACbA,CAACA;YACLA,CAACA;YAEDA,MAAMA,CAACA,SAASA,CAACA;QACrBA,CAACA;QAEaN,6BAAcA,GAA5BA,UAAgCA,KAAUA,EAAEA,IAAsCA;YAC9EO,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,KAAKA,CAACA,MAAMA,EAAEA,CAACA,GAAGA,CAACA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;gBAC3CA,IAAIA,KAAKA,GAAGA,KAAKA,CAACA,CAACA,CAACA,CAACA;gBACrBA,EAAEA,CAACA,CAACA,IAAIA,CAACA,KAAKA,EAAEA,CAACA,CAACA,CAACA,CAACA,CAACA;oBACjBA,MAAMA,CAACA,KAAKA,CAACA;gBACjBA,CAACA;YACLA,CAACA;YAEDA,MAAMA,CAACA,SAASA,CAACA;QACrBA,CAACA;QAEaP,oBAAKA,GAAnBA,UAAuBA,KAAUA,EAAEA,IAAuCA;YACtEQ,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,KAAKA,CAACA,MAAMA,EAAEA,CAACA,GAAGA,CAACA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;gBAC3CA,IAAIA,KAAKA,GAAGA,KAAKA,CAACA,CAACA,CAACA,CAACA;gBACrBA,EAAEA,CAACA,CAACA,CAACA,IAAIA,IAAIA,IAAIA,CAACA,KAAKA,EAAEA,CAACA,CAACA,CAACA,CAACA,CAACA;oBAC1BA,MAAMA,CAACA,KAAKA,CAACA;gBACjBA,CAACA;YACLA,CAACA;YAEDA,MAAMA,iBAAMA,CAACA,gBAAgBA,EAAEA,CAACA;QACpCA,CAACA;QAEaR,kBAAGA,GAAjBA,UAAqBA,KAAUA,EAAEA,IAAsBA;YACnDS,IAAIA,MAAMA,GAAGA,CAACA,CAACA;YAEfA,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,KAAKA,CAACA,MAAMA,EAAEA,CAACA,GAAGA,CAACA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;gBAC3CA,MAAMA,IAAIA,IAAIA,CAACA,KAAKA,CAACA,CAACA,CAACA,CAACA,CAACA;YAC7BA,CAACA;YAEDA,MAAMA,CAACA,MAAMA,CAACA;QAClBA,CAACA;QAEaT,qBAAMA,GAApBA,UAA0BA,MAAWA,EAAEA,IAAiBA;YACpDU,IAAIA,MAAMA,GAAQA,IAAIA,KAAKA,CAAIA,MAAMA,CAACA,MAAMA,CAACA,CAACA;YAE9CA,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,MAAMA,CAACA,MAAMA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;gBACrCA,MAAMA,CAACA,CAACA,CAACA,GAAGA,IAAIA,CAACA,MAAMA,CAACA,CAACA,CAACA,CAACA,CAACA;YAChCA,CAACA;YAEDA,MAAMA,CAACA,MAAMA,CAACA;QAClBA,CAACA;QAEaV,oBAAKA,GAAnBA,UAAuBA,MAAWA,EAAEA,IAAuBA;YACvDW,IAAIA,MAAMA,GAAGA,IAAIA,KAAKA,EAAKA,CAACA;YAE5BA,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,MAAMA,CAACA,MAAMA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;gBACrCA,EAAEA,CAACA,CAACA,IAAIA,CAACA,MAAMA,CAACA,CAACA,CAACA,CAACA,CAACA,CAACA,CAACA;oBAClBA,MAAMA,CAACA,IAAIA,CAACA,MAAMA,CAACA,CAACA,CAACA,CAACA,CAACA;gBAC3BA,CAACA;YACLA,CAACA;YAEDA,MAAMA,CAACA,MAAMA,CAACA;QAClBA,CAACA;QAEaX,kBAAGA,GAAjBA,UAAqBA,KAAUA,EAAEA,IAAuBA;YACpDY,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,KAAKA,CAACA,MAAMA,EAAEA,CAACA,GAAGA,CAACA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;gBAC3CA,EAAEA,CAACA,CAACA,IAAIA,CAACA,KAAKA,CAACA,CAACA,CAACA,CAACA,CAACA,CAACA,CAACA;oBACjBA,MAAMA,CAACA,IAAIA,CAACA;gBAChBA,CAACA;YACLA,CAACA;YAEDA,MAAMA,CAACA,KAAKA,CAACA;QACjBA,CAACA;QAEaZ,kBAAGA,GAAjBA,UAAqBA,KAAUA,EAAEA,IAAuBA;YACpDa,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,KAAKA,CAACA,MAAMA,EAAEA,CAACA,GAAGA,CAACA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;gBAC3CA,EAAEA,CAACA,CAACA,CAACA,IAAIA,CAACA,KAAKA,CAACA,CAACA,CAACA,CAACA,CAACA,CAACA,CAACA;oBAClBA,MAAMA,CAACA,KAAKA,CAACA;gBACjBA,CAACA;YACLA,CAACA;YAEDA,MAAMA,CAACA,IAAIA,CAACA;QAChBA,CAACA;QAEab,2BAAYA,GAA1BA,UAA2BA,KAAeA,EAAEA,KAAaA;YACrDc,IAAIA,GAAGA,GAAGA,CAACA,CAACA;YACZA,IAAIA,IAAIA,GAAGA,KAAKA,CAACA,MAAMA,GAAGA,CAACA,CAACA;YAE5BA,OAAOA,GAAGA,IAAIA,IAAIA,EAAEA,CAACA;gBACjBA,IAAIA,MAAMA,GAAGA,GAAGA,GAAGA,CAACA,CAACA,IAAIA,GAAGA,GAAGA,CAACA,IAAIA,CAACA,CAACA,CAACA;gBACvCA,IAAIA,QAAQA,GAAGA,KAAKA,CAACA,MAAMA,CAACA,CAACA;gBAE7BA,EAAEA,CAACA,CAACA,QAAQA,KAAKA,KAAKA,CAACA,CAACA,CAACA;oBACrBA,MAAMA,CAACA,MAAMA,CAACA;gBAClBA,CAACA;gBACDA,IAAIA,CAACA,EAAEA,CAACA,CAACA,QAAQA,GAAGA,KAAKA,CAACA,CAACA,CAACA;oBACxBA,IAAIA,GAAGA,MAAMA,GAAGA,CAACA,CAACA;gBACtBA,CAACA;gBACDA,IAAIA,CAACA,CAACA;oBACFA,GAAGA,GAAGA,MAAMA,GAAGA,CAACA,CAACA;gBACrBA,CAACA;YACLA,CAACA;YAEDA,MAAMA,CAACA,CAACA,GAAGA,CAACA;QAChBA,CAACA;QAEad,0BAAWA,GAAzBA,UAA6BA,MAAcA,EAAEA,YAAiBA;YAC1De,IAAIA,MAAMA,GAAGA,IAAIA,KAAKA,CAAIA,MAAMA,CAACA,CAACA;YAClCA,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,MAAMA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;gBAC9BA,MAAMA,CAACA,CAACA,CAACA,GAAGA,YAAYA,CAACA;YAC7BA,CAACA;YAEDA,MAAMA,CAACA,MAAMA,CAACA;QAClBA,CAACA;QAEaf,mBAAIA,GAAlBA,UAAsBA,KAAUA,EAAEA,MAAcA,EAAEA,YAAeA;YAC7DgB,IAAIA,KAAKA,GAAGA,MAAMA,GAAGA,KAAKA,CAACA,MAAMA,CAACA;YAClCA,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,KAAKA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;gBAC7BA,KAAKA,CAACA,IAAIA,CAACA,YAAYA,CAACA,CAACA;YAC7BA,CAACA;QACLA,CAACA;QAEahB,mBAAIA,GAAlBA,UAAsBA,WAAgBA,EAAEA,WAAmBA,EAAEA,gBAAqBA,EAAEA,gBAAwBA,EAAEA,MAAcA;YACxHiB,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,MAAMA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;gBAC9BA,gBAAgBA,CAACA,gBAAgBA,GAAGA,CAACA,CAACA,GAAGA,WAAWA,CAACA,WAAWA,GAAGA,CAACA,CAACA,CAACA;YAC1EA,CAACA;QACLA,CAACA;QAEajB,sBAAOA,GAArBA,UAAyBA,KAAUA,EAAEA,SAA4BA;YAC7DkB,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,KAAKA,CAACA,MAAMA,EAAEA,CAACA,GAAGA,CAACA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;gBAC3CA,EAAEA,CAACA,CAACA,SAASA,CAACA,KAAKA,CAACA,CAACA,CAACA,CAACA,CAACA,CAACA,CAACA;oBACtBA,MAAMA,CAACA,CAACA,CAACA;gBACbA,CAACA;YACLA,CAACA;YAEDA,MAAMA,CAACA,CAACA,CAACA,CAACA;QACdA,CAACA;QACLlB,qBAACA;IAADA,CAACA,AAxMDT,IAwMCA;IAxMYA,yBAAcA,GAAdA,cAwMZA,CAAAA;AACLA,CAACA,EA1MM,UAAU,KAAV,UAAU,QA0MhB;AC1MD,IAAO,UAAU,CAkBhB;AAlBD,WAAO,UAAU,EAAC,CAAC;IACfA,IAAaA,eAAeA;QAA5B4B,SAAaA,eAAeA;QAgB5BC,CAACA;QAfiBD,wBAAQA,GAAtBA,UAAuBA,KAAUA;YAC7BE,MAAMA,CAACA,MAAMA,CAACA,SAASA,CAACA,QAAQA,CAACA,KAAKA,CAACA,KAAKA,EAAEA,EAAEA,CAACA,KAAKA,iBAAiBA,CAACA;QAC5EA,CAACA;QAEaF,wBAAQA,GAAtBA,UAAuBA,MAAcA,EAAEA,KAAaA;YAChDG,MAAMA,CAACA,MAAMA,CAACA,SAASA,CAACA,MAAMA,CAACA,MAAMA,GAAGA,KAAKA,CAACA,MAAMA,EAAEA,MAAMA,CAACA,MAAMA,CAACA,KAAKA,KAAKA,CAACA;QACnFA,CAACA;QAEaH,0BAAUA,GAAxBA,UAAyBA,MAAcA,EAAEA,KAAaA;YAClDI,MAAMA,CAACA,MAAMA,CAACA,MAAMA,CAACA,CAACA,EAAEA,KAAKA,CAACA,MAAMA,CAACA,KAAKA,KAAKA,CAACA;QACpDA,CAACA;QAEaJ,sBAAMA,GAApBA,UAAqBA,KAAaA,EAAEA,KAAaA;YAC7CK,MAAMA,CAACA,KAAKA,CAACA,KAAKA,GAAGA,CAACA,CAACA,CAACA,IAAIA,CAACA,KAAKA,CAACA,CAACA;QACxCA,CAACA;QACLL,sBAACA;IAADA,CAACA,AAhBD5B,IAgBCA;IAhBYA,0BAAeA,GAAfA,eAgBZA,CAAAA;AACLA,CAACA,EAlBM,UAAU,KAAV,UAAU,QAkBhB;AClBD,IAAO,UAAU,CAkThB;AAlTD,WAAO,UAAU,EAAC,CAAC;IACfA,WAAYA,UAAUA;QAElBkC,2CAAIA;QACJA,2CAAIA;QAGJA,mEAAgBA;QAChBA,6DAAaA;QACbA,+EAAsBA;QACtBA,iFAAuBA;QACvBA,uEAAkBA;QAIlBA,uDAAUA;QACVA,+DAAcA;QAGdA,+DAAcA;QAGdA,oFAAwBA;QACxBA,gEAAcA;QACdA,8DAAaA;QAGbA,0FAA2BA;QAC3BA,wEAAkBA;QAClBA,0EAAmBA;QACnBA,oEAAgBA;QAKhBA,4DAAYA;QACZA,0DAAWA;QACXA,4DAAYA;QACZA,kEAAeA;QACfA,kEAAeA;QACfA,gEAAcA;QACdA,8DAAaA;QACbA,sDAASA;QACTA,0DAAWA;QACXA,4DAAYA;QACZA,gEAAcA;QACdA,wDAAUA;QACVA,kEAAeA;QACfA,sDAASA;QACTA,sDAASA;QACTA,sEAAiBA;QACjBA,wDAAUA;QACVA,0DAAWA;QACXA,8DAAaA;QACbA,8DAAaA;QACbA,0DAAWA;QACXA,4DAAYA;QACZA,0DAAWA;QACXA,wDAAUA;QACVA,8DAAaA;QACbA,wDAAUA;QACVA,0DAAWA;QACXA,4DAAYA;QACZA,0DAAWA;QAGXA,4DAAYA;QACZA,4DAAYA;QACZA,0DAAWA;QACXA,8DAAaA;QACbA,gEAAcA;QACdA,8DAAaA;QACbA,4DAAYA;QAGZA,sEAAiBA;QACjBA,oEAAgBA;QAChBA,wDAAUA;QACVA,gEAAcA;QACdA,gEAAcA;QACdA,oEAAgBA;QAChBA,8DAAaA;QACbA,8DAAaA;QACbA,4DAAYA;QAGZA,wDAAUA;QACVA,4DAAYA;QACZA,4DAAYA;QACZA,gEAAcA;QACdA,wEAAkBA;QAClBA,gEAAcA;QACdA,wDAAUA;QACVA,8DAAaA;QACbA,gEAAcA;QACdA,8DAAaA;QACbA,wDAAUA;QACVA,8DAAaA;QAGbA,gEAAcA;QACdA,kEAAeA;QACfA,gEAAcA;QACdA,kEAAeA;QACfA,oEAAgBA;QAChBA,sEAAiBA;QACjBA,oDAAQA;QACRA,gEAAcA;QACdA,gEAAcA;QACdA,wDAAUA;QACVA,8DAAaA;QACbA,oEAAgBA;QAChBA,0EAAmBA;QACnBA,gFAAsBA;QACtBA,sEAAiBA;QACjBA,gFAAsBA;QACtBA,gFAAsBA;QACtBA,kFAAuBA;QACvBA,4FAA4BA;QAC5BA,sDAASA;QACTA,wDAAUA;QACVA,8DAAaA;QACbA,4DAAYA;QACZA,8DAAaA;QACbA,kEAAeA;QACfA,8EAAqBA;QACrBA,2FAA2BA;QAC3BA,iHAAsCA;QACtCA,iEAAcA;QACdA,qDAAQA;QACRA,yDAAUA;QACVA,qEAAgBA;QAChBA,yDAAUA;QACVA,mFAAuBA;QACvBA,2DAAWA;QACXA,+DAAaA;QACbA,yDAAUA;QACVA,2DAAWA;QACXA,mEAAeA;QACfA,qEAAgBA;QAChBA,2EAAmBA;QACnBA,yEAAkBA;QAClBA,2FAA2BA;QAC3BA,uGAAiCA;QACjCA,6HAA4CA;QAC5CA,6EAAoBA;QACpBA,iEAAcA;QACdA,qEAAgBA;QAChBA,yDAAUA;QACVA,qEAAgBA;QAGhBA,yDAAUA;QAGVA,+DAAaA;QAGbA,yDAAUA;QACVA,6DAAYA;QACZA,uDAASA;QACTA,mEAAeA;QACfA,2DAAWA;QACXA,uDAASA;QACTA,uDAASA;QACTA,uDAASA;QACTA,uEAAiBA;QAGjBA,6EAAoBA;QACpBA,2EAAmBA;QACnBA,uEAAiBA;QACjBA,qEAAgBA;QAChBA,mEAAeA;QACfA,uEAAiBA;QACjBA,qEAAgBA;QAGhBA,uFAAyBA;QACzBA,uFAAyBA;QACzBA,iFAAsBA;QACtBA,iFAAsBA;QAGtBA,2DAAWA;QACXA,2DAAWA;QAGXA,uEAAiBA;QACjBA,+DAAaA;QACbA,yEAAkBA;QAClBA,iEAAcA;QACdA,mEAAeA;QAGfA,+CAAKA;QACLA,2DAAWA;QACXA,uEAAiBA;QACjBA,2EAAmBA;QACnBA,mEAAeA;QACfA,mEAAeA;QACfA,iEAAcA;QACdA,uEAAiBA;QACjBA,6DAAYA;QACZA,iEAAcA;QACdA,iEAAcA;QACdA,iEAAcA;QACdA,iEAAcA;QACdA,6DAAYA;QACZA,qEAAgBA;QAChBA,2DAAWA;QACXA,uEAAiBA;QACjBA,+DAAaA;QAGbA,+EAAqBA;QACrBA,qEAAgBA;QAChBA,qEAAgBA;QAChBA,iEAAcA;QACdA,+EAAqBA;QACrBA,qEAAgBA;QAChBA,iFAAsBA;QACtBA,iFAAsBA;QACtBA,6EAAoBA;QACpBA,iFAAsBA;QACtBA,mFAAuBA;QACvBA,qFAAwBA;QACxBA,mFAAuBA;QACvBA,6GAAoCA;QACpCA,+FAA6BA;QAC7BA,iEAAcA;QACdA,mFAAuBA;QACvBA,yEAAkBA;QAClBA,uEAAiBA;QACjBA,yEAAkBA;QAClBA,qFAAwBA;QACxBA,mEAAeA;QACfA,mEAAeA;QAGfA,2EAAmBA;QACnBA,yEAAkBA;QAGlBA,6DAAYA;QACZA,+DAAaA;QACbA,qEAAgBA;QAChBA,uEAAiBA;QAGjBA,iEAAcA;QACdA,uEAAiBA;QACjBA,qEAAgBA;QAChBA,2EAAmBA;QACnBA,yDAAUA;QACVA,2DAAWA;QACXA,+DAAaA;QACbA,iEAAcA;QAGdA,+DAAaA;QACbA,yDAAUA;QAGVA,qFAAwBA;QACxBA,yFAA0BA;QAG1BA,uDAASA;QACTA,2DAAWA;QACXA,iEAAcA;QACdA,iEAAcA;QACdA,6EAAoBA;QACpBA,mFAAuBA;QACvBA,uFAAyBA;QAEzBA,gDAAuBA,uBAAYA,0BAAAA;QACnCA,+CAAsBA,sBAAWA,yBAAAA;QAEjCA,sDAA6BA,uBAAYA,gCAAAA;QACzCA,qDAA4BA,uBAAYA,+BAAAA;QAExCA,4DAAmCA,4BAAiBA,sCAAAA;QACpDA,2DAAkCA,uBAAYA,qCAAAA;QAE9CA,kDAAyBA,qBAAUA,4BAAAA;QACnCA,iDAAwBA,wBAAaA,2BAAAA;QAErCA,wCAAeA,+BAAoBA,kBAAAA;QACnCA,uCAAcA,gCAAqBA,iBAAAA;QAEnCA,sCAAaA,qBAAUA,gBAAAA;QACvBA,qCAAYA,2BAAgBA,eAAAA;QAE5BA,4CAAmBA,yBAAcA,sBAAAA;QACjCA,2CAAkBA,2BAAgBA,qBAAAA;QAElCA,2CAAkBA,uBAAYA,qBAAAA;QAC9BA,0CAAiBA,0BAAeA,oBAAAA;QAEhCA,uCAAcA,2BAAgBA,iBAAAA;QAC9BA,sCAAaA,6BAAkBA,gBAAAA;QAE/BA,qCAAYA,qBAAUA,eAAAA;QACtBA,oCAAWA,oCAAyBA,cAAAA;IACxCA,CAACA,EAhTWlC,qBAAUA,KAAVA,qBAAUA,QAgTrBA;IAhTDA,IAAYA,UAAUA,GAAVA,qBAgTXA,CAAAA;AACLA,CAACA,EAlTM,UAAU,KAAV,UAAU,QAkThB;AClTD,IAAO,UAAU,CAsPhB;AAtPD,WAAO,UAAU;IAACA,IAAAA,WAAWA,CAsP5BA;IAtPiBA,WAAAA,WAAWA,EAACA,CAACA;QAC3BmC,IAAIA,iBAAiBA,GAAQA;YACzBA,KAAKA,EAAEA,mBAAqBA;YAC5BA,OAAOA,EAAEA,qBAAuBA;YAChCA,OAAOA,EAAEA,qBAAuBA;YAChCA,SAASA,EAAEA,uBAAyBA;YACpCA,OAAOA,EAAEA,qBAAuBA;YAChCA,MAAMA,EAAEA,oBAAsBA;YAC9BA,OAAOA,EAAEA,qBAAuBA;YAChCA,OAAOA,EAAEA,qBAAuBA;YAChCA,UAAUA,EAAEA,wBAA0BA;YACtCA,OAAOA,EAAEA,qBAAuBA;YAChCA,aAAaA,EAAEA,2BAA6BA;YAC5CA,UAAUA,EAAEA,wBAA0BA;YACtCA,SAASA,EAAEA,uBAAyBA;YACpCA,SAASA,EAAEA,uBAAyBA;YACpCA,QAAQA,EAAEA,sBAAwBA;YAClCA,IAAIA,EAAEA,kBAAoBA;YAC1BA,MAAMA,EAAEA,oBAAsBA;YAC9BA,MAAMA,EAAEA,oBAAsBA;YAC9BA,QAAQA,EAAEA,sBAAwBA;YAClCA,SAASA,EAAEA,uBAAyBA;YACpCA,OAAOA,EAAEA,qBAAuBA;YAChCA,SAASA,EAAEA,uBAAyBA;YACpCA,KAAKA,EAAEA,mBAAqBA;YAC5BA,UAAUA,EAAEA,wBAA0BA;YACtCA,KAAKA,EAAEA,mBAAqBA;YAC5BA,IAAIA,EAAEA,kBAAoBA;YAC1BA,YAAYA,EAAEA,0BAA4BA;YAC1CA,QAAQA,EAAEA,sBAAwBA;YAClCA,IAAIA,EAAEA,kBAAoBA;YAC1BA,YAAYA,EAAEA,0BAA4BA;YAC1CA,WAAWA,EAAEA,yBAA2BA;YACxCA,KAAKA,EAAEA,mBAAqBA;YAC5BA,QAAQA,EAAEA,sBAAwBA;YAClCA,KAAKA,EAAEA,mBAAqBA;YAC5BA,MAAMA,EAAEA,oBAAsBA;YAC9BA,QAAQA,EAACA,sBAAwBA;YACjCA,SAASA,EAAEA,uBAAyBA;YACpCA,SAASA,EAAEA,uBAAyBA;YACpCA,WAAWA,EAAEA,yBAA2BA;YACxCA,QAAQA,EAAEA,sBAAwBA;YAClCA,SAASA,EAAEA,uBAAyBA;YACpCA,QAAQA,EAAEA,sBAAwBA;YAClCA,KAAKA,EAAEA,mBAAqBA;YAC5BA,QAAQA,EAAEA,sBAAwBA;YAClCA,QAAQA,EAAEA,sBAAwBA;YAClCA,OAAOA,EAAEA,qBAAuBA;YAChCA,QAAQA,EAAEA,sBAAwBA;YAClCA,MAAMA,EAAEA,oBAAsBA;YAC9BA,OAAOA,EAAEA,qBAAuBA;YAChCA,MAAMA,EAAEA,oBAAsBA;YAC9BA,KAAKA,EAAEA,mBAAqBA;YAC5BA,QAAQA,EAAEA,sBAAwBA;YAClCA,KAAKA,EAAEA,mBAAqBA;YAC5BA,MAAMA,EAAEA,oBAAsBA;YAC9BA,OAAOA,EAAEA,qBAAuBA;YAChCA,MAAMA,EAAEA,oBAAsBA;YAC9BA,OAAOA,EAAEA,qBAAuBA;YAEhCA,GAAGA,EAAEA,uBAAyBA;YAC9BA,GAAGA,EAAEA,wBAA0BA;YAC/BA,GAAGA,EAAEA,uBAAyBA;YAC9BA,GAAGA,EAAEA,wBAA0BA;YAC/BA,GAAGA,EAAEA,yBAA2BA;YAChCA,GAAGA,EAAEA,0BAA4BA;YACjCA,GAAGA,EAAEA,iBAAmBA;YACxBA,KAAKA,EAAEA,uBAAyBA;YAChCA,GAAGA,EAAEA,uBAAyBA;YAC9BA,GAAGA,EAAEA,mBAAqBA;YAC1BA,GAAGA,EAAEA,sBAAwBA;YAC7BA,GAAGA,EAAEA,yBAA2BA;YAChCA,IAAIA,EAAEA,4BAA8BA;YACpCA,IAAIA,EAAEA,+BAAiCA;YACvCA,IAAIA,EAAEA,0BAA4BA;YAClCA,IAAIA,EAAEA,+BAAiCA;YACvCA,IAAIA,EAAEA,+BAAiCA;YACvCA,KAAKA,EAAEA,gCAAkCA;YACzCA,KAAKA,EAAEA,qCAAuCA;YAC9CA,GAAGA,EAAEA,kBAAoBA;YACzBA,GAAGA,EAAEA,mBAAqBA;YAC1BA,GAAGA,EAAEA,sBAAwBA;YAC7BA,GAAGA,EAAEA,qBAAuBA;YAC5BA,IAAIA,EAAEA,sBAAwBA;YAC9BA,IAAIA,EAAEA,wBAA0BA;YAChCA,IAAIA,EAAEA,8BAAgCA;YACtCA,IAAIA,EAAEA,qCAAsCA;YAC5CA,KAAKA,EAAEA,gDAAiDA;YACxDA,GAAGA,EAAEA,wBAAyBA;YAC9BA,GAAGA,EAAEA,kBAAmBA;YACxBA,GAAGA,EAAEA,oBAAqBA;YAC1BA,GAAGA,EAAEA,0BAA2BA;YAChCA,GAAGA,EAAEA,oBAAqBA;YAC1BA,IAAIA,EAAEA,iCAAkCA;YACxCA,IAAIA,EAAEA,qBAAsBA;YAC5BA,GAAGA,EAAEA,uBAAwBA;YAC7BA,GAAGA,EAAEA,oBAAqBA;YAC1BA,GAAGA,EAAEA,qBAAsBA;YAC3BA,IAAIA,EAAEA,yBAA0BA;YAChCA,IAAIA,EAAEA,0BAA2BA;YACjCA,IAAIA,EAAEA,6BAA8BA;YACpCA,IAAIA,EAAEA,4BAA6BA;YACnCA,KAAKA,EAAEA,qCAAsCA;YAC7CA,KAAKA,EAAEA,2CAA4CA;YACnDA,MAAMA,EAAEA,sDAAuDA;YAC/DA,IAAIA,EAAEA,8BAA+BA;YACrCA,IAAIA,EAAEA,wBAAyBA;YAC/BA,IAAIA,EAAEA,0BAA2BA;YACjCA,GAAGA,EAAEA,oBAAqBA;YAC1BA,IAAIA,EAAEA,0BAA2BA;SACpCA,CAACA;QAEFA,IAAIA,UAAUA,GAAGA,IAAIA,KAAKA,EAAUA,CAACA;QAErCA,GAAGA,CAACA,CAACA,GAAGA,CAACA,IAAIA,IAAIA,iBAAiBA,CAACA,CAACA,CAACA;YACjCA,EAAEA,CAACA,CAACA,iBAAiBA,CAACA,cAAcA,CAACA,IAAIA,CAACA,CAACA,CAACA,CAACA;gBAEzCA,UAAUA,CAACA,iBAAiBA,CAACA,IAAIA,CAACA,CAACA,GAAGA,IAAIA,CAACA;YAC/CA,CAACA;QACLA,CAACA;QAKDA,UAAUA,CAACA,2BAA6BA,CAACA,GAAGA,aAAaA,CAACA;QAE1DA,SAAgBA,YAAYA,CAACA,IAAYA;YACrCC,EAAEA,CAACA,CAACA,iBAAiBA,CAACA,cAAcA,CAACA,IAAIA,CAACA,CAACA,CAACA,CAACA;gBACzCA,MAAMA,CAACA,iBAAiBA,CAACA,IAAIA,CAACA,CAACA;YACnCA,CAACA;YAEDA,MAAMA,CAACA,YAAeA,CAACA;QAC3BA,CAACA;QANeD,wBAAYA,GAAZA,YAMfA,CAAAA;QAEDA,SAAgBA,OAAOA,CAACA,IAAgBA;YACpCE,IAAIA,MAAMA,GAAGA,UAAUA,CAACA,IAAIA,CAACA,CAACA;YAC9BA,MAAMA,CAACA,MAAMA,CAACA;QAClBA,CAACA;QAHeF,mBAAOA,GAAPA,OAGfA,CAAAA;QAEDA,SAAgBA,YAAYA,CAACA,IAAgBA;YACzCG,MAAMA,CAACA,IAAIA,IAAIA,qBAAUA,CAACA,YAAYA,IAAIA,IAAIA,IAAIA,qBAAUA,CAACA,WAAWA,CAACA;QAC7EA,CAACA;QAFeH,wBAAYA,GAAZA,YAEfA,CAAAA;QAEDA,SAAgBA,gBAAgBA,CAACA,IAAgBA;YAC7CI,MAAMA,CAACA,IAAIA,IAAIA,qBAAUA,CAACA,gBAAgBA,IAAIA,IAAIA,IAAIA,qBAAUA,CAACA,eAAeA,CAACA;QACrFA,CAACA;QAFeJ,4BAAgBA,GAAhBA,gBAEfA,CAAAA;QAEDA,SAAgBA,oCAAoCA,CAACA,SAAqBA;YACtEK,MAAMA,CAACA,CAACA,SAASA,CAACA,CAACA,CAACA;gBAChBA,KAAKA,kBAAoBA,CAACA;gBAC1BA,KAAKA,mBAAqBA,CAACA;gBAC3BA,KAAKA,oBAAqBA,CAACA;gBAC3BA,KAAKA,0BAA2BA,CAACA;gBACjCA,KAAKA,sBAAwBA,CAACA;gBAC9BA,KAAKA,wBAA0BA;oBAC3BA,MAAMA,CAACA,IAAIA,CAACA;gBAChBA;oBACIA,MAAMA,CAACA,KAAKA,CAACA;YACrBA,CAACA;QACLA,CAACA;QAZeL,gDAAoCA,GAApCA,oCAYfA,CAAAA;QAEDA,SAAgBA,+BAA+BA,CAACA,SAAqBA;YACjEM,MAAMA,CAACA,CAACA,SAASA,CAACA,CAACA,CAACA;gBAChBA,KAAKA,sBAAwBA,CAACA;gBAC9BA,KAAKA,oBAAqBA,CAACA;gBAC3BA,KAAKA,qBAAuBA,CAACA;gBAC7BA,KAAKA,kBAAoBA,CAACA;gBAC1BA,KAAKA,mBAAqBA,CAACA;gBAC3BA,KAAKA,8BAAgCA,CAACA;gBACtCA,KAAKA,qCAAsCA,CAACA;gBAC5CA,KAAKA,gDAAiDA,CAACA;gBACvDA,KAAKA,sBAAwBA,CAACA;gBAC9BA,KAAKA,yBAA2BA,CAACA;gBACjCA,KAAKA,4BAA8BA,CAACA;gBACpCA,KAAKA,+BAAiCA,CAACA;gBACvCA,KAAKA,0BAA4BA,CAACA;gBAClCA,KAAKA,kBAAoBA,CAACA;gBAC1BA,KAAKA,0BAA4BA,CAACA;gBAClCA,KAAKA,+BAAiCA,CAACA;gBACvCA,KAAKA,gCAAkCA,CAACA;gBACxCA,KAAKA,qCAAuCA,CAACA;gBAC7CA,KAAKA,wBAAyBA,CAACA;gBAC/BA,KAAKA,oBAAqBA,CAACA;gBAC3BA,KAAKA,kBAAmBA,CAACA;gBACzBA,KAAKA,iCAAkCA,CAACA;gBACxCA,KAAKA,qBAAsBA,CAACA;gBAC5BA,KAAKA,wBAAyBA,CAACA;gBAC/BA,KAAKA,8BAA+BA,CAACA;gBACrCA,KAAKA,0BAA2BA,CAACA;gBACjCA,KAAKA,qCAAsCA,CAACA;gBAC5CA,KAAKA,2CAA4CA,CAACA;gBAClDA,KAAKA,sDAAuDA,CAACA;gBAC7DA,KAAKA,yBAA0BA,CAACA;gBAChCA,KAAKA,0BAA2BA,CAACA;gBACjCA,KAAKA,6BAA8BA,CAACA;gBACpCA,KAAKA,0BAA2BA,CAACA;gBACjCA,KAAKA,4BAA6BA,CAACA;gBACnCA,KAAKA,qBAAsBA,CAACA;gBAC5BA,KAAKA,mBAAqBA;oBACtBA,MAAMA,CAACA,IAAIA,CAACA;gBAChBA;oBACIA,MAAMA,CAACA,KAAKA,CAACA;YACrBA,CAACA;QACLA,CAACA;QA1CeN,2CAA+BA,GAA/BA,+BA0CfA,CAAAA;QAEDA,SAAgBA,yBAAyBA,CAACA,SAAqBA;YAC3DO,MAAMA,CAACA,CAACA,SAASA,CAACA,CAACA,CAACA;gBAChBA,KAAKA,wBAAyBA,CAACA;gBAC/BA,KAAKA,8BAA+BA,CAACA;gBACrCA,KAAKA,0BAA2BA,CAACA;gBACjCA,KAAKA,qCAAsCA,CAACA;gBAC5CA,KAAKA,2CAA4CA,CAACA;gBAClDA,KAAKA,sDAAuDA,CAACA;gBAC7DA,KAAKA,yBAA0BA,CAACA;gBAChCA,KAAKA,0BAA2BA,CAACA;gBACjCA,KAAKA,6BAA8BA,CAACA;gBACpCA,KAAKA,0BAA2BA,CAACA;gBACjCA,KAAKA,4BAA6BA,CAACA;gBACnCA,KAAKA,qBAAsBA;oBACvBA,MAAMA,CAACA,IAAIA,CAACA;gBAEhBA;oBACIA,MAAMA,CAACA,KAAKA,CAACA;YACrBA,CAACA;QACLA,CAACA;QAnBeP,qCAAyBA,GAAzBA,yBAmBfA,CAAAA;QAEDA,SAAgBA,MAAMA,CAACA,IAAgBA;YACnCQ,MAAMA,CAACA,CAACA,IAAIA,CAACA,CAACA,CAACA;gBACXA,KAAKA,mBAAoBA,CAACA;gBAC1BA,KAAKA,mBAAqBA,CAACA;gBAC3BA,KAAKA,sBAAwBA,CAACA;gBAC9BA,KAAKA,uBAAyBA,CAACA;gBAC/BA,KAAKA,sBAAwBA,CAACA;gBAC9BA,KAAKA,oBAAsBA,CAACA;gBAC5BA,KAAKA,sBAAuBA,CAACA;gBAC7BA,KAAKA,oBAAqBA,CAACA;gBAC3BA,KAAKA,yBAA0BA,CAACA;gBAChCA,KAAKA,mBAAoBA,CAACA;gBAC1BA,KAAKA,qBAAsBA,CAACA;gBAC5BA,KAAKA,uBAAwBA,CAACA;gBAC9BA,KAAKA,sBAAyBA;oBAC1BA,MAAMA,CAACA,IAAIA,CAACA;YACpBA,CAACA;YAEDA,MAAMA,CAACA,KAAKA,CAACA;QACjBA,CAACA;QAnBeR,kBAAMA,GAANA,MAmBfA,CAAAA;IACLA,CAACA,EAtPiBnC,WAAWA,GAAXA,sBAAWA,KAAXA,sBAAWA,QAsP5BA;AAADA,CAACA,EAtPM,UAAU,KAAV,UAAU,QAsPhB;ACjPD,IAAI,gBAAgB,GAAG,KAAK,CAAC;AAsB7B,IAAI,UAAU,GAAQ;IAClB,wBAAwB,EAAE,qBAAqB;IAC/C,gBAAgB,EAAE,sBAAsB;IACxC,WAAW,EAAE,aAAa;IAC1B,sBAAsB,EAAE,mBAAmB;IAC3C,wBAAwB,EAAE,wBAAwB;IAClD,6BAA6B,EAAE,0BAA0B;IAGzD,uBAAuB,EAAE,+BAA+B;IACxD,qBAAqB,EAAE,+BAA+B;IACtD,wBAAwB,EAAE,yBAAyB;CACtD,CAAC;AAEF,IAAI,WAAW,GAAqB;IAC3B;QACD,IAAI,EAAE,kBAAkB;QACxB,QAAQ,EAAE,aAAa;QACvB,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,gBAAgB,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,sBAAsB,EAAE;YAC7E,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE;SACjD;KACJ;IACI;QACD,IAAI,EAAE,+BAA+B;QACrC,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,wBAAwB,CAAC;QACtC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC/D,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC/D,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,IAAI,EAAE;YACxC,EAAE,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;SACxE;QACD,oBAAoB,EAAE,IAAI;KAC7B;IACI;QACD,IAAI,EAAE,iCAAiC;QACvC,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,wBAAwB,CAAC;QACtC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,aAAa,EAAE;SACnD;QACD,oBAAoB,EAAE,IAAI;KAC7B;IACI;QACD,IAAI,EAAE,yBAAyB;QAC/B,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,sBAAsB,CAAC;QACpC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,cAAc,EAAE;YAChE,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC9D,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE;YACrC,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC5D,EAAE,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,wBAAwB,EAAE;YAC3D,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;SACzF;QACD,oBAAoB,EAAE,IAAI;KAC7B;IACI;QACD,IAAI,EAAE,wBAAwB;QAC9B,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,sBAAsB,CAAC;QACpC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC9D,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC5D,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE;YACrC,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;SACzF;QACD,oBAAoB,EAAE,IAAI;KAC7B;IACI;QACD,IAAI,EAAE,wBAAwB;QAC9B,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,sBAAsB,CAAC;QACpC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,cAAc,EAAE;YAChE,EAAE,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC7D,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE;YACrC,EAAE,IAAI,EAAE,mBAAmB,EAAE,IAAI,EAAE,yBAAyB,EAAE,UAAU,EAAE,IAAI,EAAE;YAChF,EAAE,IAAI,EAAE,iBAAiB,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,sBAAsB,EAAE;YAC9E,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC/D,EAAE,IAAI,EAAE,eAAe,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,qBAAqB,EAAE;YAC3E,EAAE,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;SACxE;QACD,oBAAoB,EAAE,IAAI;KAC7B;IACI;QACD,IAAI,EAAE,4BAA4B;QAClC,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,sBAAsB,CAAC;QACpC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,cAAc,EAAE;YAChE,EAAE,IAAI,EAAE,kBAAkB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YACjE,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE;YACrC,EAAE,IAAI,EAAE,mBAAmB,EAAE,IAAI,EAAE,yBAAyB,EAAE,UAAU,EAAE,IAAI,EAAE;YAChF,EAAE,IAAI,EAAE,iBAAiB,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,sBAAsB,EAAE;YAC9E,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,kBAAkB,EAAE;SAClD;QACD,oBAAoB,EAAE,IAAI;KAC7B;IACK;QACF,IAAI,EAAE,sBAAsB;QAC5B,QAAQ,EAAE,aAAa;QACvB,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,4BAA4B,EAAE,OAAO,EAAE,IAAI,EAAE;YACrD,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,IAAI,EAAE,sBAAsB,EAAE,IAAI,EAAE,WAAW,EAAE,aAAa,EAAE;SAC9G;QACD,oBAAoB,EAAE,IAAI;KAC7B;IACI;QACD,IAAI,EAAE,yBAAyB;QAC/B,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,sBAAsB,CAAC;QACpC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,cAAc,EAAE;YAChE,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC9D,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE;YACrC,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC/D,EAAE,IAAI,EAAE,gBAAgB,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,sBAAsB,EAAE;YAC7E,EAAE,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;SACxE;QACD,oBAAoB,EAAE,IAAI;KAC7B;IACI;QACD,IAAI,EAAE,2BAA2B;QACjC,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,kBAAkB,CAAC;QAChC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,cAAc,EAAE,oBAAoB,EAAE,IAAI,EAAE;YAC5F,EAAE,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAChE,EAAE,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE;YACzD,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE;YACrC,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,qBAAqB,EAAE;YACtD,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,6CAA6C,EAAE,UAAU,EAAE,IAAI,EAAE;SAC/F;KACJ;IACK;QACF,IAAI,EAAE,gBAAgB;QACtB,QAAQ,EAAE,aAAa;QACvB,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,wBAAwB,EAAE,OAAO,EAAE,IAAI,EAAG;YAClD,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,mBAAmB,EAAE;SACzD;KACJ;IACI;QACD,IAAI,EAAE,yBAAyB;QAC/B,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,kBAAkB,CAAC;QAChC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,cAAc,EAAE,oBAAoB,EAAE,IAAI,EAAE;YAC5F,EAAE,IAAI,EAAE,qBAAqB,EAAE,IAAI,EAAE,2BAA2B,EAAE;YAClE,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;SACzF;KACJ;IACI;QACD,IAAI,EAAE,2BAA2B;QACjC,QAAQ,EAAE,aAAa;QACvB,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE;YACrC,EAAE,IAAI,EAAE,qBAAqB,EAAE,eAAe,EAAE,IAAI,EAAE,sBAAsB,EAAE,IAAI,EAAE,WAAW,EAAE,0BAA0B,EAAE;SACrI;KACJ;IACI;QACD,IAAI,EAAE,0BAA0B;QAChC,QAAQ,EAAE,aAAa;QACvB,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,qBAAqB,EAAE;YACrD,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,sBAAsB,EAAE,UAAU,EAAE,IAAI,EAAE,oBAAoB,EAAE,IAAI,EAAE;YACtG,EAAE,IAAI,EAAE,mBAAmB,EAAE,IAAI,EAAE,yBAAyB,EAAE,UAAU,EAAE,IAAI,EAAE;SACxF;KACJ;IACI;QACD,IAAI,EAAE,yBAAyB;QAC/B,QAAQ,EAAE,aAAa;QACvB,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC5D,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,mBAAmB,EAAE;SACpD;KACJ;IACI;QACD,IAAI,EAAE,6BAA6B;QACnC,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,wBAAwB,CAAC;QACtC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,IAAI,EAAE;YACxC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,wBAAwB,EAAE;SAC3D;KACJ;IACI;QACD,IAAI,EAAE,8BAA8B;QACpC,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,0BAA0B,CAAC;QACxC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,kBAAkB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YACjE,EAAE,IAAI,EAAE,aAAa,EAAE,eAAe,EAAE,IAAI,EAAE,WAAW,EAAE,mBAAmB,EAAE;YAChF,EAAE,IAAI,EAAE,mBAAmB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;SAC1E;KACJ;IACI;QACD,IAAI,EAAE,yBAAyB;QAC/B,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,mBAAmB,CAAC;QACjC,QAAQ,EAAO,EAAE;KACpB;IACI;QACD,IAAI,EAAE,+BAA+B;QACrC,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,0BAA0B,CAAC;QACxC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC/D,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,mBAAmB,EAAE;YACjD,EAAE,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;SACxE;KACJ;IACI;QACD,IAAI,EAAE,qCAAqC;QAC3C,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,wBAAwB,CAAC;QACtC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE;YACzD,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,iBAAiB,EAAE;YAC9C,EAAE,IAAI,EAAE,wBAAwB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YACvE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,iCAAiC,EAAE;SACjE;QACD,oBAAoB,EAAE,IAAI;KAC7B;IACI;QACD,IAAI,EAAE,4CAA4C;QAClD,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,wBAAwB,CAAC;QACtC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE;YACzD,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,qBAAqB,EAAE;YACtD,EAAE,IAAI,EAAE,wBAAwB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YACvE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,iCAAiC,EAAE;SACjE;QACD,oBAAoB,EAAE,IAAI;KAC7B;IACI;QACD,IAAI,EAAE,qBAAqB;QAC3B,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,aAAa,CAAC;QAC3B,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE;YACrC,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YACzD,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE;SACxC;QAGD,oBAAoB,EAAE,IAAI;KAC7B;IACI;QACD,IAAI,EAAE,wBAAwB;QAC9B,QAAQ,EAAE,aAAa;QACvB,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,IAAI,EAAE;YACxC,EAAE,IAAI,EAAE,eAAe,EAAE,eAAe,EAAE,IAAI,EAAE,WAAW,EAAE,aAAa,EAAE;YAC5E,EAAE,IAAI,EAAE,kBAAkB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;SACzE;QACD,oBAAoB,EAAE,IAAI;KAC7B;IACI;QACD,IAAI,EAAE,uBAAuB;QAC7B,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,aAAa,CAAC;QAC3B,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC3D,EAAE,IAAI,EAAE,mBAAmB,EAAE,IAAI,EAAE,yBAAyB,EAAE,UAAU,EAAE,IAAI,EAAE;YAChF,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,qBAAqB,EAAE;YACtD,EAAE,IAAI,EAAE,wBAAwB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YACvE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE;SAC7C;QACD,oBAAoB,EAAE,IAAI;KAC7B;IACI;QACD,IAAI,EAAE,oBAAoB;QAC1B,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,aAAa,CAAC;QAC3B,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,mBAAmB,EAAE,IAAI,EAAE,yBAAyB,EAAE,UAAU,EAAE,IAAI,EAAE;YAChF,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,qBAAqB,EAAE;YACtD,EAAE,IAAI,EAAE,wBAAwB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YACvE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE;SAC7C;QACD,oBAAoB,EAAE,IAAI;KAC7B;IACI;QACD,IAAI,EAAE,kBAAkB;QACxB,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,aAAa,CAAC;QAC3B,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC/D,EAAE,IAAI,EAAE,aAAa,EAAE,eAAe,EAAE,IAAI,EAAE,WAAW,EAAE,mBAAmB,EAAE;YAChF,EAAE,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;SACxE;QACD,oBAAoB,EAAE,IAAI;KAC7B;IACI;QACD,IAAI,EAAE,iBAAiB;QACvB,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,aAAa,CAAC;QAC3B,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE;YACrC,EAAE,IAAI,EAAE,kBAAkB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YACjE,EAAE,IAAI,EAAE,mBAAmB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;SAC1E;QACD,oBAAoB,EAAE,IAAI;KAC7B;IACI;QACD,IAAI,EAAE,mBAAmB;QACzB,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,aAAa,CAAC;QAC3B,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE;YACrC,EAAE,IAAI,EAAE,kBAAkB,EAAE,IAAI,EAAE,wBAAwB,EAAE;SACpE;QACD,oBAAoB,EAAE,IAAI;KAC7B;IACK;QACF,IAAI,EAAE,iBAAiB;QACvB,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,aAAa,CAAC;QAC3B,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC9D,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE;SAC7C;QACD,oBAAoB,EAAE,IAAI;KAC7B;IACK;QACF,IAAI,EAAE,iBAAiB;QACvB,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,aAAa,CAAC;QAC3B,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,kBAAkB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YACjE,EAAE,IAAI,EAAE,OAAO,EAAE,eAAe,EAAE,IAAI,EAAE,WAAW,EAAE,aAAa,EAAE;YACpE,EAAE,IAAI,EAAE,mBAAmB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;SAC1E;QACD,oBAAoB,EAAE,IAAI;KAC7B;IACK;QACF,IAAI,EAAE,iBAAiB;QACvB,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,aAAa,CAAC;QAC3B,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE;YACrC,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YACzD,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE;SAC9C;QACD,oBAAoB,EAAE,IAAI;KAC7B;IACK;QACF,IAAI,EAAE,yBAAyB;QAC/B,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,aAAa,CAAC;QAC3B,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC/D,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE;YACrC,EAAE,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;SACxE;QACD,oBAAoB,EAAE,IAAI;KAC7B;IACI;QACD,IAAI,EAAE,sBAAsB;QAC5B,QAAQ,EAAE,aAAa;QACvB,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC3D,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE;SAC7C;QACD,oBAAoB,EAAE,IAAI;KAC7B;IACI;QACD,IAAI,EAAE,aAAa;QACnB,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,kBAAkB,CAAC;QAChC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,wBAAwB,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE;YACrE,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAG;YAC1C,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,kBAAkB,EAAE;YACrE,EAAE,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;SACxE;KACJ;IACI;QACD,IAAI,EAAE,iBAAiB;QACvB,QAAQ,EAAE,aAAa;QACvB,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,oBAAoB,EAAE,IAAI,EAAE;YACvF,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,cAAc,EAAE;YAChE,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE;YACrC,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,oBAAoB,EAAE,IAAI,EAAE;YACtF,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,sBAAsB,EAAE,UAAU,EAAE,IAAI,EAAE,oBAAoB,EAAE,IAAI,EAAE;YACtG,EAAE,IAAI,EAAE,mBAAmB,EAAE,IAAI,EAAE,yBAAyB,EAAE,UAAU,EAAE,IAAI,EAAE,oBAAoB,EAAE,IAAI,EAAE;SACpH;KACJ;IACI;QACD,IAAI,EAAE,8BAA8B;QACpC,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,yBAAyB,EAAE,uBAAuB,CAAC;QAChE,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,+BAA+B,EAAE;YAC7D,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YACzD,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE;SACvC;KACJ;IACI;QACD,IAAI,EAAE,8BAA8B;QACpC,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,0BAA0B,CAAC;QACxC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,+BAA+B,EAAE;YAC1D,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,IAAI,EAAE;SAChD;KACJ;IACI;QACD,IAAI,EAAE,+BAA+B;QACrC,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,yBAAyB,EAAE,uBAAuB,CAAC;QAChE,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,+BAA+B,EAAE;YAC7D,EAAE,IAAI,EAAE,kBAAkB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YACjE,EAAE,IAAI,EAAE,oBAAoB,EAAE,IAAI,EAAE,mBAAmB,EAAE,UAAU,EAAE,IAAI,EAAE;YAC3E,EAAE,IAAI,EAAE,mBAAmB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;SAC1E;KACJ;IACI;QACD,IAAI,EAAE,gCAAgC;QACtC,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,yBAAyB,EAAE,uBAAuB,CAAC;QAChE,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,+BAA+B,EAAE;YAC7D,EAAE,IAAI,EAAE,oBAAoB,EAAE,IAAI,EAAE,0BAA0B,EAAE;SACxE;KACJ;IACI;QACD,IAAI,EAAE,0BAA0B;QAChC,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,0BAA0B,CAAC;QACxC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,oBAAoB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YACnE,EAAE,IAAI,EAAE,iBAAiB,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,sBAAsB,EAAE;SACtF;KACJ;IACI;QACD,IAAI,EAAE,sBAAsB;QAC5B,QAAQ,EAAE,aAAa;QACvB,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,mBAAmB,EAAE;YACjD,EAAE,IAAI,EAAE,0BAA0B,EAAE,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,oBAAoB,EAAE;SAC9F;KACJ;IACI;QACD,IAAI,EAAE,4BAA4B;QAClC,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,uBAAuB,CAAC;QACrC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,+BAA+B,EAAE;YAC7D,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,oBAAoB,EAAE;SAC5D;KACJ;IACI;QACD,IAAI,EAAE,oBAAoB;QAC1B,QAAQ,EAAE,aAAa;QACvB,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,kBAAkB,EAAE,IAAI,EAAE,wBAAwB,EAAE,UAAU,EAAE,IAAI,EAAE;YAC9E,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC/D,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,IAAI,EAAE,WAAW,EAAE,mBAAmB,EAAE;YAC9E,EAAE,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;SACxE;KACJ;IACI;QACD,IAAI,EAAE,wBAAwB;QAC9B,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,mBAAmB,CAAC;QACjC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,mBAAmB,EAAE;YAC3C,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,IAAI,EAAE;YACxC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,mBAAmB,EAAE;SACpD;KACJ;IACI;QACD,IAAI,EAAE,6BAA6B;QACnC,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,mBAAmB,CAAC;QACjC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,mBAAmB,EAAE;YAChD,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC9D,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,mBAAmB,EAAE;YAC/C,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC3D,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,mBAAmB,EAAE;SACxD;KACJ;IACI;QACD,IAAI,EAAE,0BAA0B;QAChC,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,mBAAmB,CAAC;QACjC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC3D,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,qBAAqB,EAAE;SAC9D;QACD,oBAAoB,EAAE,IAAI;KAC7B;IACI;QACD,IAAI,EAAE,uBAAuB;QAC7B,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,mBAAmB,CAAC;QACjC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,qBAAqB,EAAE;YACrD,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,oBAAoB,EAAE,IAAI,EAAE;YACtF,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,qBAAqB,EAAE;SAC9D;KACJ;IACI;QACD,IAAI,EAAE,sBAAsB;QAC5B,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,mBAAmB,CAAC;QACjC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,kBAAkB,EAAE,OAAO,EAAE,IAAI,EAAE;YAC3C,EAAE,IAAI,EAAE,YAAY,EAAE,eAAe,EAAE,IAAI,EAAE,WAAW,EAAE,iBAAiB,EAAE;YAC7E,EAAE,IAAI,EAAE,mBAAmB,EAAE,OAAO,EAAE,IAAI,EAAE;YAC5C,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,sBAAsB,EAAE,UAAU,EAAE,IAAI,EAAE;SAClF;QACD,oBAAoB,EAAE,IAAI;KAC7B;IACI;QACD,IAAI,EAAE,yBAAyB;QAC/B,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,mBAAmB,CAAC;QACjC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,qBAAqB,EAAE;YACrD,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE;YAC1D,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,sBAAsB,EAAE,UAAU,EAAE,IAAI,EAAE;SAClF;QACD,oBAAoB,EAAE,IAAI;KAC7B;IACI;QACD,IAAI,EAAE,qBAAqB;QAC3B,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,mBAAmB,CAAC;QACjC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,mBAAmB,EAAE,IAAI,EAAE,yBAAyB,EAAE,UAAU,EAAE,IAAI,EAAE,oBAAoB,EAAE,IAAI,EAAE;YAC5G,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,qBAAqB,EAAE;YACtD,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,sBAAsB,EAAE,UAAU,EAAE,IAAI,EAAE,oBAAoB,EAAE,IAAI,EAAE;SAC9G;KACJ;IACI;QACD,IAAI,EAAE,qBAAqB;QAC3B,QAAQ,EAAE,aAAa;QACvB,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC/D,EAAE,IAAI,EAAE,YAAY,EAAE,eAAe,EAAE,IAAI,EAAE,WAAW,EAAE,iBAAiB,EAAE;YAC7E,EAAE,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;SACxE;KACJ;IACI;QACD,IAAI,EAAE,yBAAyB;QAC/B,QAAQ,EAAE,aAAa;QACvB,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,IAAI,EAAE;YACxC,EAAE,IAAI,EAAE,gBAAgB,EAAE,eAAe,EAAE,IAAI,EAAE,WAAW,EAAE,qBAAqB,EAAE;YACrF,EAAE,IAAI,EAAE,kBAAkB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;SACzE;QACD,oBAAoB,EAAE,IAAI;KAC7B;IACI;QACD,IAAI,EAAE,qBAAqB;QAC3B,QAAQ,EAAE,aAAa;QACvB,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE;YACrC,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,kBAAkB,EAAE,UAAU,EAAE,IAAI,EAAE;SAC1E;QACD,oBAAoB,EAAE,IAAI;KAC7B;IACI;QACD,IAAI,EAAE,kBAAkB;QACxB,QAAQ,EAAE,aAAa;QACvB,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAE/D,EAAE,IAAI,EAAE,kBAAkB,EAAE,IAAI,EAAE,oBAAoB,EAAE;SAChE;QACD,oBAAoB,EAAE,IAAI;KAC7B;IACI;QACD,IAAI,EAAE,kBAAkB;QACxB,QAAQ,EAAE,aAAa;QACvB,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC5D,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,kBAAkB,EAAE;SACvD;KACJ;IACI;QACD,IAAI,EAAE,mBAAmB;QACzB,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,kBAAkB,CAAC;QAChC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC1D,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC/D,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,mBAAmB,EAAE;YAChD,EAAE,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAChE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,kBAAkB,EAAE;YAC/C,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,kBAAkB,EAAE,UAAU,EAAE,IAAI,EAAE;SAC1E;KACJ;IACI;QACD,IAAI,EAAE,2BAA2B;QACjC,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,kBAAkB,CAAC;QAChC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,mBAAmB,EAAE;YACjD,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;SACzF;KACJ;IACI;QACD,IAAI,EAAE,8BAA8B;QACpC,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,qBAAqB,CAAC;QACnC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,cAAc,EAAE;YAChE,EAAE,IAAI,EAAE,oBAAoB,EAAE,OAAO,EAAE,IAAI,EAAE;YAC7C,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,qBAAqB,EAAE;YACtD,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,6CAA6C,EAAE,UAAU,EAAE,IAAI,EAAG;SAChG;QACD,oBAAoB,EAAE,IAAI;KAC7B;IACI;QACD,IAAI,EAAE,iCAAiC;QACvC,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,0BAA0B,CAAC;QACxC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,cAAc,EAAE;YAChE,EAAE,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE;YACzD,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,qBAAqB,EAAE;YACrD,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,qBAAqB,EAAE;YACtD,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,6CAA6C,EAAE,UAAU,EAAE,IAAI,EAAG;SAChG;QACD,oBAAoB,EAAE,IAAI;KAC7B;IACI;QACD,IAAI,EAAE,mBAAmB;QACzB,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,iBAAiB,CAAE;QAChC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,cAAc,EAAE,oBAAoB,EAAE,IAAI,EAAE;YAC5F,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC3D,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,qBAAqB,EAAE;YACrD,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,qBAAqB,EAAE;YACtD,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,6CAA6C,EAAE,UAAU,EAAE,IAAI,EAAG;SAChG;KACJ;IACI;QACD,IAAI,EAAE,mBAAmB;QACzB,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,iBAAiB,CAAC;QAC/B,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,cAAc,EAAE,oBAAoB,EAAE,IAAI,EAAE;YAC5F,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC3D,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,qBAAqB,EAAE;YACrD,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,qBAAqB,EAAE;YACtD,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,6CAA6C,EAAE,UAAU,EAAE,IAAI,EAAG;SAChG;QACD,oBAAoB,EAAE,IAAI;KAC7B;IACI;QACD,IAAI,EAAE,iCAAiC;QACvC,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,0BAA0B,CAAC;QACxC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,cAAc,EAAE;YAChE,EAAE,IAAI,EAAE,oBAAoB,EAAE,IAAI,EAAE,0BAA0B,EAAE;YAChE,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;SACzF;QACD,oBAAoB,EAAE,IAAI;KAC7B;IACI;QACD,IAAI,EAAE,8BAA8B;QACpC,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,qBAAqB,CAAC;QACnC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,cAAc,EAAE;YAChE,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,sBAAsB,EAAE;YACxD,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;SACzF;QACD,oBAAoB,EAAE,IAAI;KAC7B;IACI;QACD,IAAI,EAAE,sBAAsB;QAC5B,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,kBAAkB,CAAC;QAChC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC7D,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,mBAAmB,EAAE,UAAU,EAAE,IAAI,EAAE;YACnE,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;SACzF;KACJ;IACI;QACD,IAAI,EAAE,uBAAuB;QAC7B,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,kBAAkB,CAAC;QAChC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,IAAI,EAAE;YACxC,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,mBAAmB,EAAE,UAAU,EAAE,IAAI,EAAE;YACnE,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;SACzF;KACJ;IACI;QACD,IAAI,EAAE,gCAAgC;QACtC,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,0BAA0B,CAAC;QACxC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC3D,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,yBAAyB,EAAE;YACvD,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,oBAAoB,EAAE,UAAU,EAAE,IAAI,EAAE;SAC9E;KACJ;IACI;QACD,IAAI,EAAE,uBAAuB;QAC7B,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,kBAAkB,CAAC;QAChC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC9D,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC/D,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,mBAAmB,EAAE;YACjD,EAAE,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAChE,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC/D,EAAE,IAAI,EAAE,eAAe,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,qBAAqB,EAAE;YAC3E,EAAE,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;SACxE;KACJ;IACI;QACD,IAAI,EAAE,wBAAwB;QAC9B,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,qBAAqB,CAAC;QACnC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC5D,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,mBAAmB,EAAE;YACjD,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAC;YAC1D,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,kBAAkB,EAAE;SAC7E;KACJ;IACI;QACD,IAAI,EAAE,2BAA2B;QACjC,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,qBAAqB,CAAC;QACnC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC/D,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC3D,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,kBAAkB,EAAE;SAC7E;KACJ;IACI;QACD,IAAI,EAAE,sBAAsB;QAC5B,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,kBAAkB,CAAC;QAChC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,IAAI,EAAE;YACvC,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE;YACvD,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;SACzF;KACJ;IACI;QACD,IAAI,EAAE,yBAAyB;QAC/B,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,kBAAkB,CAAC;QAChC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,IAAI,EAAE;YAC1C,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE;YACvD,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;SACzF;KACJ;IACI;QACD,IAAI,EAAE,oBAAoB;QAC1B,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,kBAAkB,CAAC;QAChC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC3D,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC/D,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,+CAA+C,EAAE,UAAU,EAAE,IAAI,EAAE;YAChG,EAAE,IAAI,EAAE,qBAAqB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YACpE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,mBAAmB,EAAE,UAAU,EAAE,IAAI,EAAE;YAClE,EAAE,IAAI,EAAE,sBAAsB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YACrE,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,mBAAmB,EAAE,UAAU,EAAE,IAAI,EAAE;YACpE,EAAE,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAChE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,kBAAkB,EAAE;SACvD;KACJ;IACI;QACD,IAAI,EAAE,sBAAsB;QAC5B,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,kBAAkB,CAAC;QAChC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC3D,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC/D,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,+CAA+C,EAAE;YACvE,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC1D,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,mBAAmB,EAAE;YAC5C,EAAE,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAChE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,kBAAkB,EAAE;SACvD;KACJ;IACI;QACD,IAAI,EAAE,sBAAsB;QAC5B,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,kBAAkB,CAAC;QAChC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC7D,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC/D,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,mBAAmB,EAAE;YAChD,EAAE,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAChE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,kBAAkB,EAAE;SACvD;KACJ;IACI;QACD,IAAI,EAAE,qBAAqB;QAC3B,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,kBAAkB,CAAC;QAChC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC5D,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC/D,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,mBAAmB,EAAE;YAChD,EAAE,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAChE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,kBAAkB,EAAE;SACvD;KACJ;IACI;QACD,IAAI,EAAE,uBAAuB;QAC7B,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,sBAAsB,CAAC;QACpC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,cAAc,EAAE;YAChE,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC5D,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE;YACrC,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC/D,EAAE,IAAI,EAAE,cAAc,EAAE,eAAe,EAAE,IAAI,EAAE,WAAW,EAAE,mBAAmB,EAAE;YACjF,EAAE,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;SACxE;QACD,oBAAoB,EAAE,IAAI;KAC7B;IACI;QACD,IAAI,EAAE,mBAAmB;QACzB,QAAQ,EAAE,aAAa;QACvB,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,qBAAqB,EAAE;YACrD,EAAE,IAAI,EAAE,mBAAmB,EAAE,IAAI,EAAE,yBAAyB,EAAE,UAAU,EAAE,IAAI,EAAE;SACxF;KACJ;IACI;QACD,IAAI,EAAE,sBAAsB;QAC5B,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,wBAAwB,CAAC;QACtC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC9D,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE;YACrC,EAAE,IAAI,EAAE,kBAAkB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YACjE,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,wBAAwB,EAAE;SAC9D;QACD,oBAAoB,EAAE,IAAI;KAC7B;IACI;QACD,IAAI,EAAE,+BAA+B;QACrC,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,0BAA0B,CAAC;QACxC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC/D,EAAE,IAAI,EAAE,qBAAqB,EAAE,eAAe,EAAE,IAAI,EAAE,WAAW,EAAE,2BAA2B,EAAE;YAChG,EAAE,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;SACxE;KACJ;IACI;QACD,IAAI,EAAE,4BAA4B;QAClC,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,qBAAqB,CAAC;QACnC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,kBAAkB,EAAE,OAAO,EAAE,IAAI,EAAE;YAC3C,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,mBAAmB,EAAE;YACjD,EAAE,IAAI,EAAE,mBAAmB,EAAE,OAAO,EAAE,IAAI,EAAE;SACpD;KACJ;IACI;QACD,IAAI,EAAE,gCAAgC;QACtC,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,2BAA2B,CAAC;QACzC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,qBAAqB,EAAE;YACrD,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC3D,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,mBAAmB,EAAE;SACzD;KACJ;IACK;QACF,IAAI,EAAE,kCAAkC;QACxC,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,2BAA2B,CAAC;QACzC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE;YACzD,EAAE,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE;YACzD,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,qBAAqB,EAAE;YACrD,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,qBAAqB,EAAE;YACtD,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,6CAA6C,EAAE,UAAU,EAAE,IAAI,EAAG;SAChG;KACJ;IACI;QACD,IAAI,EAAE,0BAA0B;QAChC,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,0BAA0B,CAAC;QACxC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE;YACzD,EAAE,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAChE,EAAE,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE;YACzD,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE;YACvD,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,qBAAqB,EAAE;YACtD,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,6CAA6C,EAAE,UAAU,EAAE,IAAI,EAAG;SAAC;KACrG;IACI;QACD,IAAI,EAAE,sBAAsB;QAC5B,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,kBAAkB,CAAC;QAChC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE;SAAC;KACtD;IACI;QACD,IAAI,EAAE,oBAAoB;QAC1B,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,kBAAkB,CAAC;QAChC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC3D,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE;YACtC,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,mBAAmB,EAAE,UAAU,EAAE,IAAI,EAAE;YACpE,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,qBAAqB,EAAE,UAAU,EAAE,IAAI,EAAE;SAAC;KACrF;IACI;QACD,IAAI,EAAE,mBAAmB;QACzB,QAAQ,EAAE,aAAa;QACvB,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC7D,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC/D,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE;YACrC,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,sBAAsB,EAAE,UAAU,EAAE,IAAI,EAAE,qBAAqB,EAAE,IAAI,EAAE;YACvG,EAAE,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAChE,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE;SAAC;KACnD;IACI;QACD,IAAI,EAAE,qBAAqB;QAC3B,QAAQ,EAAE,aAAa;QACvB,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC/D,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE;SAAC;KACnD;IACI;QACD,IAAI,EAAE,wBAAwB;QAC9B,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,kBAAkB,CAAC;QAChC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE;YACrC,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC3D,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,kBAAkB,EAAE;SAAC;KAC5D;IACI;QACD,IAAI,EAAE,mBAAmB;QACzB,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,kBAAkB,CAAC;QAChC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC1D,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,kBAAkB,EAAE;YAC/C,EAAE,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC7D,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC/D,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,mBAAmB,EAAE;YAChD,EAAE,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAChE,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;SAAC;KAC9F;IACI;QACD,IAAI,EAAE,wBAAwB;QAC9B,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,wBAAwB,CAAC;QACtC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC9D,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,wBAAwB,EAAE;SAAC;KACnE;IACI;QACD,IAAI,EAAE,wBAAwB;QAC9B,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,wBAAwB,CAAC;QACtC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC9D,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,wBAAwB,EAAE;SAAC;KACnE;IACI;QACD,IAAI,EAAE,sBAAsB;QAC5B,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,wBAAwB,CAAC;QACtC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC5D,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,wBAAwB,EAAE;SAAC;KACnE;IACI;QACD,IAAI,EAAE,uBAAuB;QAC7B,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,mBAAmB,CAAC;QACjC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,IAAI,EAAE;YACvC,EAAE,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE;YACzD,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,mBAAmB,EAAE,UAAU,EAAE,IAAI,EAAE;SAAC;KAChF;IACI;QACD,IAAI,EAAE,uBAAuB;QAC7B,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,wBAAwB,CAAC;QACtC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,IAAI,EAAE;YACvC,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,mBAAmB,EAAE,UAAU,EAAE,IAAI,EAAE;SAAC;KAChF;IACI;QACD,IAAI,EAAE,yBAAyB;QAC/B,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,kBAAkB,CAAC;QAChC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,IAAI,EAAE;YAC1C,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;SAAC;KAC9F;CAAC,CAAC;AAEP,SAAS,SAAS,CAAC,UAA2B;IAC1C4C,IAAIA,QAAQA,GAAGA,oBAAoBA,CAACA,UAAUA,CAACA,CAACA;IAChDA,MAAMA,CAAOA,UAAUA,CAACA,UAAWA,CAACA,QAAQA,CAACA,CAACA;AAClDA,CAACA;AAED,WAAW,CAAC,IAAI,CAAC,UAAC,EAAE,EAAE,EAAE,IAAK,OAAA,SAAS,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,EAAE,CAAC,EAA7B,CAA6B,CAAC,CAAC;AAE5D,SAAS,sBAAsB,CAAC,UAAkB;IAC9CC,EAAEA,CAACA,CAACA,UAAUA,CAACA,eAAeA,CAACA,QAAQA,CAACA,UAAUA,EAAEA,QAAQA,CAACA,CAACA,CAACA,CAACA;QAC5DA,MAAMA,CAACA,UAAUA,CAACA,SAASA,CAACA,CAACA,EAAEA,UAAUA,CAACA,MAAMA,GAAGA,QAAQA,CAACA,MAAMA,CAACA,CAACA;IACxEA,CAACA;IAEDA,MAAMA,CAACA,UAAUA,CAACA;AACtBA,CAACA;AAED,SAAS,oBAAoB,CAAC,UAA2B;IACrDC,MAAMA,CAACA,sBAAsBA,CAACA,UAAUA,CAACA,IAAIA,CAACA,CAACA;AACnDA,CAACA;AAED,SAAS,OAAO,CAAC,KAAwB;IACrCC,EAAEA,CAACA,CAACA,KAAKA,CAACA,OAAOA,CAACA,CAACA,CAACA;QAChBA,MAAMA,CAACA,cAAcA,CAACA;IAC1BA,CAACA;IACDA,IAAIA,CAACA,EAAEA,CAACA,CAACA,KAAKA,CAACA,eAAeA,CAACA,CAACA,CAACA;QAC7BA,MAAMA,CAACA,uBAAuBA,GAAGA,KAAKA,CAACA,WAAWA,GAAGA,GAAGA,CAACA;IAC7DA,CAACA;IACDA,IAAIA,CAACA,EAAEA,CAACA,CAACA,KAAKA,CAACA,MAAMA,CAACA,CAACA,CAACA;QACpBA,MAAMA,CAACA,KAAKA,CAACA,WAAWA,GAAGA,IAAIA,CAACA;IACpCA,CAACA;IACDA,IAAIA,CAACA,CAACA;QACFA,MAAMA,CAACA,KAAKA,CAACA,IAAIA,CAACA;IACtBA,CAACA;AACLA,CAACA;AAED,SAAS,SAAS,CAAC,KAAa;IAC5BC,MAAMA,CAACA,KAAKA,CAACA,MAAMA,CAACA,CAACA,EAAEA,CAACA,CAACA,CAACA,WAAWA,EAAEA,GAAGA,KAAKA,CAACA,MAAMA,CAACA,CAACA,CAACA,CAACA;AAC9DA,CAACA;AAED,SAAS,WAAW,CAAC,KAAwB;IACzCC,EAAEA,CAACA,CAACA,KAAKA,CAACA,IAAIA,KAAKA,WAAWA,CAACA,CAACA,CAACA;QAC7BA,MAAMA,CAACA,GAAGA,GAAGA,KAAKA,CAACA,IAAIA,CAACA;IAC5BA,CAACA;IAEDA,MAAMA,CAACA,KAAKA,CAACA,IAAIA,CAACA;AACtBA,CAACA;AAED,SAAS,2BAA2B,CAAC,UAA2B;IAC5DC,IAAIA,MAAMA,GAAGA,iBAAiBA,GAAGA,UAAUA,CAACA,IAAIA,GAAGA,IAAIA,GAAGA,oBAAoBA,CAACA,UAAUA,CAACA,GAAGA,0CAA0CA,CAACA;IAExIA,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,UAAUA,CAACA,QAAQA,CAACA,MAAMA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;QAClDA,IAAIA,KAAKA,GAAGA,UAAUA,CAACA,QAAQA,CAACA,CAACA,CAACA,CAACA;QACnCA,MAAMA,IAAIA,IAAIA,CAACA;QACfA,MAAMA,IAAIA,WAAWA,CAACA,KAAKA,CAACA,CAACA;QAC7BA,MAAMA,IAAIA,IAAIA,GAAGA,OAAOA,CAACA,KAAKA,CAACA,CAACA;IACpCA,CAACA;IAEDA,MAAMA,IAAIA,SAASA,CAACA;IAEpBA,MAAMA,IAAIA,+CAA+CA,CAACA;IAE1DA,EAAEA,CAACA,CAACA,UAAUA,CAACA,QAAQA,CAACA,MAAMA,CAACA,CAACA,CAACA;QAC7BA,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,UAAUA,CAACA,QAAQA,CAACA,MAAMA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;YAClDA,EAAEA,CAACA,CAACA,CAACA,CAACA,CAACA,CAACA;gBACJA,MAAMA,IAAIA,OAAOA,CAACA;YACtBA,CAACA;YAEDA,IAAIA,KAAKA,GAAGA,UAAUA,CAACA,QAAQA,CAACA,CAACA,CAACA,CAACA;YACnCA,MAAMA,IAAIA,eAAeA,GAAGA,KAAKA,CAACA,IAAIA,GAAGA,KAAKA,GAAGA,WAAWA,CAACA,KAAKA,CAACA,CAACA;QACxEA,CAACA;IACLA,CAACA;IAEDA,EAAEA,CAACA,CAACA,UAAUA,CAACA,QAAQA,CAACA,MAAMA,GAAGA,CAACA,CAACA,CAACA,CAACA;QACjCA,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,UAAUA,CAACA,QAAQA,CAACA,MAAMA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;YAClDA,MAAMA,IAAIA,eAAeA,CAACA;YAE1BA,IAAIA,KAAKA,GAAGA,UAAUA,CAACA,QAAQA,CAACA,CAACA,CAACA,CAACA;YAEnCA,EAAEA,CAACA,CAACA,KAAKA,CAACA,UAAUA,CAACA,CAACA,CAACA;gBACnBA,MAAMA,IAAIA,WAAWA,CAACA,KAAKA,CAACA,GAAGA,OAAOA,GAAGA,WAAWA,CAACA,KAAKA,CAACA,GAAGA,iBAAiBA,CAACA;YACpFA,CAACA;YACDA,IAAIA,CAACA,CAACA;gBACFA,MAAMA,IAAIA,WAAWA,CAACA,KAAKA,CAACA,GAAGA,gBAAgBA,CAACA;YACpDA,CAACA;QACLA,CAACA;QACDA,MAAMA,IAAIA,OAAOA,CAACA;IACtBA,CAACA;IAEDA,MAAMA,IAAIA,YAAYA,CAACA;IACvBA,MAAMA,IAAIA,MAAMA,GAAGA,UAAUA,CAACA,IAAIA,GAAGA,+BAA+BA,GAAGA,oBAAoBA,CAACA,UAAUA,CAACA,GAAGA,OAAOA,CAACA;IAClHA,MAAMA,IAAIA,MAAMA,GAAGA,UAAUA,CAACA,IAAIA,GAAGA,0BAA0BA,GAAGA,UAAUA,CAACA,QAAQA,CAACA,MAAMA,GAAGA,OAAOA,CAACA;IACvGA,MAAMA,IAAIA,MAAMA,GAAGA,UAAUA,CAACA,IAAIA,GAAGA,oEAAoEA,CAACA;IAC1GA,EAAEA,CAACA,CAACA,UAAUA,CAACA,QAAQA,CAACA,MAAMA,CAACA,CAACA,CAACA;QAC7BA,MAAMA,IAAIA,8BAA8BA,CAACA;QAEzCA,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,UAAUA,CAACA,QAAQA,CAACA,MAAMA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;YAClDA,MAAMA,IAAIA,mBAAmBA,GAAGA,CAACA,GAAGA,gBAAgBA,GAAGA,UAAUA,CAACA,QAAQA,CAACA,CAACA,CAACA,CAACA,IAAIA,GAAGA,OAAOA,CAACA;QACjGA,CAACA;QAEDA,MAAMA,IAAIA,eAAeA,CAACA;IAC9BA,CAACA;IACDA,IAAIA,CAACA,CAACA;QACFA,MAAMA,IAAIA,8CAA8CA,CAACA;IAC7DA,CAACA;IACDA,MAAMA,IAAIA,WAAWA,CAACA;IAEtBA,MAAMA,CAACA,MAAMA,CAACA;AAClBA,CAACA;AAED,SAAS,wBAAwB;IAC7BC,IAAIA,MAAMA,GAAGA,+CAA+CA,CAACA;IAE7DA,MAAMA,IAAIA,yBAAyBA,CAACA;IAEpCA,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,WAAWA,CAACA,MAAMA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;QAC1CA,IAAIA,UAAUA,GAAGA,WAAWA,CAACA,CAACA,CAACA,CAACA;QAEhCA,EAAEA,CAACA,CAACA,CAACA,GAAGA,CAACA,CAACA,CAACA,CAACA;YACRA,MAAMA,IAAIA,MAAMA,CAACA;QACrBA,CAACA;QAEDA,MAAMA,IAAIA,uBAAuBA,CAACA,UAAUA,CAACA,CAACA;IAClDA,CAACA;IAEDA,MAAMA,IAAIA,GAAGA,CAACA;IACdA,MAAMA,CAACA,MAAMA,CAACA;AAClBA,CAACA;AAED,SAAS,uBAAuB,CAAC,UAA2B;IACxDC,IAAIA,MAAMA,GAAGA,uBAAuBA,GAAGA,UAAUA,CAACA,IAAIA,GAAGA,sBAAsBA,CAAAA;IAE/EA,EAAEA,CAACA,CAACA,UAAUA,CAACA,UAAUA,CAACA,CAACA,CAACA;QACxBA,MAAMA,IAAIA,IAAIA,CAACA;QACfA,MAAMA,IAAIA,UAAUA,CAACA,UAAUA,CAACA,IAAIA,CAACA,IAAIA,CAACA,CAACA;IAC/CA,CAACA;IAEDA,MAAMA,IAAIA,QAAQA,CAACA;IAEnBA,EAAEA,CAACA,CAACA,UAAUA,CAACA,IAAIA,KAAKA,kBAAkBA,CAACA,CAACA,CAACA;QACzCA,MAAMA,IAAIA,qCAAqCA,CAACA;IACpDA,CAACA;IAEDA,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,UAAUA,CAACA,QAAQA,CAACA,MAAMA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;QAClDA,IAAIA,KAAKA,GAAGA,UAAUA,CAACA,QAAQA,CAACA,CAACA,CAACA,CAACA;QACnCA,MAAMA,IAAIA,UAAUA,GAAGA,KAAKA,CAACA,IAAIA,GAAGA,IAAIA,GAAGA,OAAOA,CAACA,KAAKA,CAACA,GAAGA,OAAOA,CAACA;IACxEA,CAACA;IAEDA,MAAMA,IAAIA,WAAWA,CAACA;IACtBA,MAAMA,IAAIA,uBAAuBA,GAAGA,oBAAoBA,CAACA,UAAUA,CAACA,GAAGA,eAAeA,CAACA;IACvFA,MAAMA,IAAIA,oBAAoBA,CAACA;IAE/BA,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,UAAUA,CAACA,QAAQA,CAACA,MAAMA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;QAClDA,IAAIA,KAAKA,GAAGA,UAAUA,CAACA,QAAQA,CAACA,CAACA,CAACA,CAACA;QACnCA,MAAMA,IAAIA,IAAIA,CAACA;QACfA,MAAMA,IAAIA,WAAWA,CAACA,KAAKA,CAACA,CAACA;QAC7BA,MAAMA,IAAIA,IAAIA,GAAGA,OAAOA,CAACA,KAAKA,CAACA,CAACA;IACpCA,CAACA;IAEDA,MAAMA,IAAIA,KAAKA,GAAGA,UAAUA,CAACA,IAAIA,CAACA;IAClCA,MAAMA,IAAIA,QAAQA,CAACA;IAEnBA,MAAMA,CAACA,MAAMA,CAACA;AAClBA,CAACA;AAED,SAAS,aAAa;IAClBC,IAAIA,MAAMA,GAAGA,+CAA+CA,CAACA;IAE7DA,MAAMA,IAAIA,mBAAmBA,CAACA;IAE9BA,MAAMA,IAAIA,QAAQA,CAACA;IAEnBA,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,WAAWA,CAACA,MAAMA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;QAC1CA,IAAIA,UAAUA,GAAGA,WAAWA,CAACA,CAACA,CAACA,CAACA;QAEhCA,EAAEA,CAACA,CAACA,CAACA,CAACA,CAACA,CAACA;YACJA,MAAMA,IAAIA,MAAMA,CAACA;QACrBA,CAACA;QAEDA,MAAMA,IAAIA,2BAA2BA,CAACA,UAAUA,CAACA,CAACA;IACtDA,CAACA;IAEDA,MAAMA,IAAIA,GAAGA,CAACA;IACdA,MAAMA,CAACA,MAAMA,CAACA;AAClBA,CAACA;AAED,SAAS,WAAW,CAAC,IAAY;IAC7BC,MAAMA,CAACA,IAAIA,CAACA,MAAMA,CAACA,CAACA,EAAEA,CAACA,CAACA,KAAKA,GAAGA,IAAIA,IAAIA,CAACA,MAAMA,CAACA,CAACA,EAAEA,CAACA,CAACA,CAACA,WAAWA,EAAEA,KAAKA,IAAIA,CAACA,MAAMA,CAACA,CAACA,EAAEA,CAACA,CAACA,CAAAA;AAC7FA,CAACA;AAED,SAAS,cAAc;IACnBC,IAAIA,MAAMA,GAAGA,EAAEA,CAACA;IAEhBA,MAAMA,IACNA,2CAA2CA,GAC3CA,MAAMA,GACNA,yBAAyBA,GACzBA,+DAA+DA,GAC/DA,4DAA4DA,GAC5DA,eAAeA,GACfA,MAAMA,GACNA,qEAAqEA,GACrEA,4CAA4CA,GAC5CA,6BAA6BA,GAC7BA,mBAAmBA,GACnBA,MAAMA,GACNA,yCAAyCA,GACzCA,eAAeA,GACfA,MAAMA,GACNA,kEAAkEA,GAClEA,gEAAgEA,GAChEA,sDAAsDA,GACtDA,mBAAmBA,GACnBA,eAAeA,CAACA;IAEhBA,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,WAAWA,CAACA,MAAMA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;QAC1CA,IAAIA,UAAUA,GAAGA,WAAWA,CAACA,CAACA,CAACA,CAACA;QAEhCA,MAAMA,IAAIA,MAAMA,CAACA;QACjBA,MAAMA,IAAIA,sBAAsBA,GAAGA,oBAAoBA,CAACA,UAAUA,CAACA,GAAGA,SAASA,GAAGA,UAAUA,CAACA,IAAIA,GAAGA,eAAeA,CAACA;QAEpHA,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,UAAUA,CAACA,QAAQA,CAACA,MAAMA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;YAClDA,IAAIA,KAAKA,GAAGA,UAAUA,CAACA,QAAQA,CAACA,CAACA,CAACA,CAACA;YAEnCA,EAAEA,CAACA,CAACA,KAAKA,CAACA,OAAOA,CAACA,CAACA,CAACA;gBAChBA,EAAEA,CAACA,CAACA,KAAKA,CAACA,UAAUA,CAACA,CAACA,CAACA;oBACnBA,MAAMA,IAAIA,2CAA2CA,GAAGA,KAAKA,CAACA,IAAIA,GAAGA,QAAQA,CAACA;gBAClFA,CAACA;gBACDA,IAAIA,CAACA,CAACA;oBACFA,MAAMA,IAAIA,mCAAmCA,GAAGA,KAAKA,CAACA,IAAIA,GAAGA,QAAQA,CAACA;gBAC1EA,CAACA;YACLA,CAACA;YACDA,IAAIA,CAACA,EAAEA,CAACA,CAACA,KAAKA,CAACA,MAAMA,IAAIA,KAAKA,CAACA,eAAeA,CAACA,CAACA,CAACA;gBAC7CA,MAAMA,IAAIA,kCAAkCA,GAAGA,KAAKA,CAACA,IAAIA,GAAGA,QAAQA,CAACA;YACzEA,CAACA;YACDA,IAAIA,CAACA,EAAEA,CAACA,CAACA,KAAKA,CAACA,OAAOA,CAACA,CAACA,CAACA;gBACrBA,EAAEA,CAACA,CAACA,KAAKA,CAACA,UAAUA,CAACA,CAACA,CAACA;oBACnBA,MAAMA,IAAIA,2CAA2CA,GAAGA,KAAKA,CAACA,IAAIA,GAAGA,QAAQA,CAACA;gBAClFA,CAACA;gBACDA,IAAIA,CAACA,CAACA;oBACFA,MAAMA,IAAIA,mCAAmCA,GAAGA,KAAKA,CAACA,IAAIA,GAAGA,QAAQA,CAACA;gBAC1EA,CAACA;YACLA,CAACA;YACDA,IAAIA,CAACA,CAACA;gBACFA,MAAMA,IAAIA,0CAA0CA,GAAGA,KAAKA,CAACA,IAAIA,GAAGA,QAAQA,CAACA;YACjFA,CAACA;QACLA,CAACA;QAEDA,MAAMA,IAAIA,eAAeA,CAACA;IAC9BA,CAACA;IAEDA,MAAMA,IAAIA,OAAOA,CAACA;IAClBA,MAAMA,IAAIA,OAAOA,CAACA;IAClBA,MAAMA,CAACA,MAAMA,CAACA;AAClBA,CAACA;AAED,SAAS,aAAa,CAAC,CAAM,EAAE,KAAa;IACxCC,GAAGA,CAACA,CAACA,GAAGA,CAACA,IAAIA,IAAIA,CAACA,CAACA,CAACA,CAACA;QACjBA,EAAEA,CAACA,CAACA,CAACA,CAACA,IAAIA,CAACA,KAAKA,KAAKA,CAACA,CAACA,CAACA;YACpBA,MAAMA,CAACA,IAAIA,CAACA;QAChBA,CAACA;IACLA,CAACA;AACLA,CAACA;AAED,SAAS,OAAO,CAAI,KAAU,EAAE,IAAsB;IAClDC,IAAIA,MAAMA,GAAQA,EAAEA,CAACA;IAErBA,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,KAAKA,CAACA,MAAMA,EAAEA,CAACA,GAAGA,CAACA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;QAC3CA,IAAIA,CAACA,GAAQA,KAAKA,CAACA,CAACA,CAACA,CAACA;QACtBA,IAAIA,CAACA,GAAGA,IAAIA,CAACA,CAACA,CAACA,CAACA;QAEhBA,IAAIA,IAAIA,GAAQA,MAAMA,CAACA,CAACA,CAACA,IAAIA,EAAEA,CAACA;QAChCA,IAAIA,CAACA,IAAIA,CAACA,CAACA,CAACA,CAACA;QACbA,MAAMA,CAACA,CAACA,CAACA,GAAGA,IAAIA,CAACA;IACrBA,CAACA;IAEDA,MAAMA,CAACA,MAAMA,CAACA;AAClBA,CAACA;AAED,SAAS,wBAAwB,CAAC,QAA0D,EAAE,gBAAwB,EAAE,MAAc;IAClIC,IAAIA,MAAMA,GAAGA,QAAQA,CAACA,CAACA,CAACA,CAACA,IAAIA,CAACA,MAAMA,CAACA;IAErCA,IAAIA,MAAMA,GAAGA,EAAEA,CAACA;IAChBA,IAAIA,KAAaA,CAACA;IAElBA,EAAEA,CAACA,CAACA,QAAQA,CAACA,MAAMA,KAAKA,CAACA,CAACA,CAACA,CAACA;QACxBA,IAAIA,OAAOA,GAAGA,QAAQA,CAACA,CAACA,CAACA,CAACA;QAE1BA,EAAEA,CAACA,CAACA,gBAAgBA,KAAKA,MAAMA,CAACA,CAACA,CAACA;YAC9BA,MAAMA,CAACA,qBAAqBA,GAAGA,aAAaA,CAACA,UAAUA,CAACA,UAAUA,EAAEA,OAAOA,CAACA,IAAIA,CAACA,GAAGA,OAAOA,CAACA;QAChGA,CAACA;QAEDA,IAAIA,WAAWA,GAAGA,QAAQA,CAACA,CAACA,CAACA,CAACA,IAAIA,CAACA;QACnCA,MAAMA,GAAGA,WAAWA,CAAAA;QAEpBA,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,gBAAgBA,EAAEA,CAACA,GAAGA,MAAMA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;YAC7CA,EAAEA,CAACA,CAACA,CAACA,GAAGA,gBAAgBA,CAACA,CAACA,CAACA;gBACvBA,MAAMA,IAAIA,MAAMA,CAACA;YACrBA,CAACA;YAEDA,KAAKA,GAAGA,CAACA,KAAKA,CAACA,GAAGA,OAAOA,GAAGA,CAACA,UAAUA,GAAGA,CAACA,CAACA,CAACA;YAC7CA,MAAMA,IAAIA,iBAAiBA,GAAGA,KAAKA,GAAGA,uBAAuBA,GAAGA,WAAWA,CAACA,MAAMA,CAACA,CAACA,EAAEA,CAACA,CAACA,CAACA;QAC7FA,CAACA;QAEDA,MAAMA,IAAIA,iBAAiBA,GAAGA,aAAaA,CAACA,UAAUA,CAACA,UAAUA,EAAEA,OAAOA,CAACA,IAAIA,CAACA,GAAGA,mCAAmCA,CAACA;IAC3HA,CAACA;IACDA,IAAIA,CAACA,CAACA;QACFA,MAAMA,IAAIA,MAAMA,GAAGA,UAAUA,CAACA,cAAcA,CAACA,MAAMA,CAACA,QAAQA,EAAEA,UAAAA,CAAIA,IAACA,OAAAA,CAACA,CAACA,IAAIA,EAANA,CAAMA,CAACA,CAACA,IAAIA,CAACA,IAAIA,CAACA,GAAGA,MAAMA,CAAAA;QAC9FA,KAAKA,GAAGA,gBAAgBA,KAAKA,CAACA,GAAGA,OAAOA,GAAGA,CAACA,UAAUA,GAAGA,gBAAgBA,CAACA,CAACA;QAC3EA,MAAMA,IAAIA,MAAMA,GAAGA,wBAAwBA,GAAGA,KAAKA,GAAGA,UAAUA,CAAAA;QAEhEA,IAAIA,eAAeA,GAAGA,OAAOA,CAACA,QAAQA,EAAEA,UAAAA,CAAIA,IAACA,OAAAA,CAACA,CAACA,IAAIA,CAACA,MAAMA,CAACA,gBAAgBA,EAAEA,CAACA,CAACA,EAAlCA,CAAkCA,CAACA,CAACA;QAEjFA,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,IAAIA,eAAeA,CAACA,CAACA,CAACA;YAC5BA,EAAEA,CAACA,CAACA,eAAeA,CAACA,cAAcA,CAACA,CAACA,CAACA,CAACA,CAACA,CAACA;gBACpCA,MAAMA,IAAIA,MAAMA,GAAGA,wBAAwBA,GAAGA,CAACA,GAAGA,GAAGA,CAACA;gBACtDA,MAAMA,IAAIA,wBAAwBA,CAACA,eAAeA,CAACA,CAACA,CAACA,EAAEA,gBAAgBA,GAAGA,CAACA,EAAEA,MAAMA,GAAGA,MAAMA,CAACA,CAACA;YAClGA,CAACA;QACLA,CAACA;QAEDA,MAAMA,IAAIA,MAAMA,GAAGA,kDAAkDA,CAACA;QACtEA,MAAMA,IAAIA,MAAMA,GAAGA,OAAOA,CAACA;IAC/BA,CAACA;IAEDA,MAAMA,CAACA,MAAMA,CAACA;AAClBA,CAACA;AAED,SAAS,GAAG,CAAI,KAAU,EAAE,IAAsB;IAC9CC,IAAIA,GAAGA,GAAGA,IAAIA,CAACA,KAAKA,CAACA,CAACA,CAACA,CAACA,CAACA;IAEzBA,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,KAAKA,CAACA,MAAMA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;QACpCA,IAAIA,IAAIA,GAAGA,IAAIA,CAACA,KAAKA,CAACA,CAACA,CAACA,CAACA,CAACA;QAC1BA,EAAEA,CAACA,CAACA,IAAIA,GAAGA,GAAGA,CAACA,CAACA,CAACA;YACbA,GAAGA,GAAGA,IAAIA,CAACA;QACfA,CAACA;IACLA,CAACA;IAEDA,MAAMA,CAACA,GAAGA,CAACA;AACfA,CAACA;AAED,SAAS,GAAG,CAAI,KAAU,EAAE,IAAsB;IAC9CC,IAAIA,GAAGA,GAAGA,IAAIA,CAACA,KAAKA,CAACA,CAACA,CAACA,CAACA,CAACA;IAEzBA,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,KAAKA,CAACA,MAAMA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;QACpCA,IAAIA,IAAIA,GAAGA,IAAIA,CAACA,KAAKA,CAACA,CAACA,CAACA,CAACA,CAACA;QAC1BA,EAAEA,CAACA,CAACA,IAAIA,GAAGA,GAAGA,CAACA,CAACA,CAACA;YACbA,GAAGA,GAAGA,IAAIA,CAACA;QACfA,CAACA;IACLA,CAACA;IAEDA,MAAMA,CAACA,GAAGA,CAACA;AACfA,CAACA;AAED,SAAS,iBAAiB;IACtBC,IAAIA,MAAMA,GAAGA,EAAEA,CAACA;IAahBA,MAAMA,CAACA,MAAMA,CAACA;AAClBA,CAACA;AAED,SAAS,wBAAwB;IAC7BC,IAAIA,MAAMA,GAAGA,2CAA2CA,GACpDA,MAAMA,GACNA,yBAAyBA,GACzBA,0CAA0CA,CAACA;IAE/CA,MAAMA,IAAIA,wCAAwCA,CAACA;IACnDA,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,IAAIA,UAAUA,CAACA,UAAUA,CAACA,cAAcA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;QAC7DA,EAAEA,CAACA,CAACA,CAACA,CAACA,CAACA,CAACA;YACJA,MAAMA,IAAIA,IAAIA,CAACA;QACnBA,CAACA;QAEDA,EAAEA,CAACA,CAACA,CAACA,GAAGA,UAAUA,CAACA,UAAUA,CAACA,eAAeA,CAACA,CAACA,CAACA;YAC5CA,MAAMA,IAAIA,GAAGA,CAACA;QAClBA,CAACA;QACDA,IAAIA,CAACA,CAACA;YACFA,MAAMA,IAAIA,UAAUA,CAACA,WAAWA,CAACA,OAAOA,CAACA,CAACA,CAACA,CAACA,MAAMA,CAACA;QACvDA,CAACA;IACLA,CAACA;IACDA,MAAMA,IAAIA,QAAQA,CAACA;IAGnBA,IAAIA,CAASA,CAACA;IACdA,IAAIA,QAAQA,GAAqDA,EAAEA,CAACA;IAEpEA,GAAGA,CAACA,CAACA,CAACA,GAAGA,UAAUA,CAACA,UAAUA,CAACA,YAAYA,EAAEA,CAACA,IAAIA,UAAUA,CAACA,UAAUA,CAACA,WAAWA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;QACvFA,QAAQA,CAACA,IAAIA,CAACA,EAAEA,IAAIA,EAAEA,CAACA,EAAEA,IAAIA,EAAEA,UAAUA,CAACA,WAAWA,CAACA,OAAOA,CAACA,CAACA,CAACA,EAAEA,CAACA,CAACA;IACxEA,CAACA;IAEDA,QAAQA,CAACA,IAAIA,CAACA,UAACA,CAACA,EAAEA,CAACA,IAAKA,OAAAA,CAACA,CAACA,IAAIA,CAACA,aAAaA,CAACA,CAACA,CAACA,IAAIA,CAACA,EAA5BA,CAA4BA,CAACA,CAACA;IAEtDA,MAAMA,IAAIA,sGAAsGA,CAACA;IAEjHA,IAAIA,cAAcA,GAAGA,GAAGA,CAACA,QAAQA,EAAEA,UAAAA,CAAIA,IAACA,OAAAA,CAACA,CAACA,IAAIA,CAACA,MAAMA,EAAbA,CAAaA,CAACA,CAACA;IACvDA,IAAIA,cAAcA,GAAGA,GAAGA,CAACA,QAAQA,EAAEA,UAAAA,CAAIA,IAACA,OAAAA,CAACA,CAACA,IAAIA,CAACA,MAAMA,EAAbA,CAAaA,CAACA,CAACA;IACvDA,MAAMA,IAAIA,mCAAmCA,CAACA;IAG9CA,GAAGA,CAACA,CAACA,CAACA,GAAGA,cAAcA,EAAEA,CAACA,IAAIA,cAAcA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;QAChDA,IAAIA,iBAAiBA,GAAGA,UAAUA,CAACA,cAAcA,CAACA,KAAKA,CAACA,QAAQA,EAAEA,UAAAA,CAAIA,IAACA,OAAAA,CAACA,CAACA,IAAIA,CAACA,MAAMA,KAAKA,CAACA,EAAnBA,CAAmBA,CAACA,CAACA;QAC5FA,EAAEA,CAACA,CAACA,iBAAiBA,CAACA,MAAMA,GAAGA,CAACA,CAACA,CAACA,CAACA;YAC/BA,MAAMA,IAAIA,qBAAqBA,GAAGA,CAACA,GAAGA,GAAGA,CAACA;YAC1CA,MAAMA,IAAIA,wBAAwBA,CAACA,iBAAiBA,EAAEA,CAACA,EAAEA,kBAAkBA,CAACA,CAACA;QACjFA,CAACA;IACLA,CAACA;IAEDA,MAAMA,IAAIA,8DAA8DA,CAACA;IACzEA,MAAMA,IAAIA,mBAAmBA,CAACA;IAC9BA,MAAMA,IAAIA,eAAeA,CAACA;IAE1BA,MAAMA,IAAIA,WAAWA,CAACA;IACtBA,MAAMA,IAAIA,GAAGA,CAACA;IAEdA,MAAMA,CAACA,MAAMA,CAACA;AAClBA,CAACA;AAED,SAAS,cAAc,CAAC,IAA2B;IAC/CC,GAAGA,CAACA,CAACA,GAAGA,CAACA,IAAIA,IAAIA,UAAUA,CAACA,UAAUA,CAACA,CAACA,CAACA;QACrCA,EAAEA,CAACA,CAAMA,UAAUA,CAACA,UAAUA,CAACA,IAAIA,CAACA,KAAKA,IAAIA,CAACA,CAACA,CAACA;YAC5CA,MAAMA,CAACA,IAAIA,CAACA;QAChBA,CAACA;IACLA,CAACA;IAEDA,MAAMA,IAAIA,KAAKA,EAAEA,CAACA;AACtBA,CAACA;AAED,SAAS,eAAe;IACpBC,IAAIA,MAAMA,GAAGA,EAAEA,CAACA;IAEhBA,MAAMA,IAAIA,+CAA+CA,CAACA;IAE1DA,MAAMA,IAAIA,yBAAyBA,CAACA;IACpCA,MAAMA,IAAIA,uGAAuGA,CAACA;IAClHA,MAAMA,IAAIA,8DAA8DA,CAACA;IAEzEA,MAAMA,IAAIA,qCAAqCA,CAACA;IAEhDA,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,WAAWA,CAACA,MAAMA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;QAC1CA,IAAIA,UAAUA,GAAGA,WAAWA,CAACA,CAACA,CAACA,CAACA;QAEhCA,MAAMA,IAAIA,8BAA8BA,GAAGA,oBAAoBA,CAACA,UAAUA,CAACA,GAAGA,IAAIA,CAACA;QACnFA,MAAMA,IAAIA,sBAAsBA,GAAGA,oBAAoBA,CAACA,UAAUA,CAACA,GAAGA,IAAIA,GAAGA,UAAUA,CAACA,IAAIA,GAAGA,gBAAgBA,CAACA;IACpHA,CAACA;IAEDA,MAAMA,IAAIA,4EAA4EA,CAACA;IACvFA,MAAMA,IAAIA,eAAeA,CAACA;IAC1BA,MAAMA,IAAIA,eAAeA,CAACA;IAE1BA,MAAMA,IAAIA,2CAA2CA,CAACA;IACtDA,MAAMA,IAAIA,mDAAmDA,CAACA;IAE9DA,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,WAAWA,CAACA,MAAMA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;QAC1CA,IAAIA,UAAUA,GAAGA,WAAWA,CAACA,CAACA,CAACA,CAACA;QAChCA,MAAMA,IAAIA,eAAeA,GAAGA,oBAAoBA,CAACA,UAAUA,CAACA,GAAGA,SAASA,GAAGA,UAAUA,CAACA,IAAIA,GAAGA,aAAaA,CAACA;IAC/GA,CAACA;IAEDA,MAAMA,IAAIA,OAAOA,CAACA;IAElBA,MAAMA,IAAIA,OAAOA,CAACA;IAElBA,MAAMA,CAACA,MAAMA,CAACA;AAClBA,CAACA;AAED,IAAI,mBAAmB,GAAG,aAAa,EAAE,CAAC;AAC1C,IAAI,gBAAgB,GAAG,wBAAwB,EAAE,CAAC;AAClD,IAAI,MAAM,GAAG,cAAc,EAAE,CAAC;AAC9B,IAAI,gBAAgB,GAAG,wBAAwB,EAAE,CAAC;AAClD,IAAI,OAAO,GAAG,eAAe,EAAE,CAAC;AAChC,IAAI,SAAS,GAAG,iBAAiB,EAAE,CAAC;AAEpC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,mBAAmB,EAAE,GAAG,4DAA4D,EAAE,mBAAmB,EAAE,KAAK,CAAC,CAAC;AACpI,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,mBAAmB,EAAE,GAAG,wDAAwD,EAAE,gBAAgB,EAAE,KAAK,CAAC,CAAC;AAC7H,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,mBAAmB,EAAE,GAAG,oDAAoD,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;AAC/G,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,mBAAmB,EAAE,GAAG,wDAAwD,EAAE,gBAAgB,EAAE,KAAK,CAAC,CAAC;AAC7H,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,mBAAmB,EAAE,GAAG,qDAAqD,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;AACjH,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,mBAAmB,EAAE,GAAG,iDAAiD,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC"} >>>>>>> 57d7f11... Add support for parsing async/await in fidelity. +======= +{"version":3,"file":"SyntaxGenerator.js","sourceRoot":"","sources":["file:///C:/VSPro_1/src/typescript/public_cyrusn/src/compiler/sys.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/core/errors.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/core/arrayUtilities.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/core/stringUtilities.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/syntax/syntaxKind.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/syntax/syntaxFacts.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/syntax/SyntaxGenerator.ts"],"names":["getWScriptSystem","getWScriptSystem.readFile","getWScriptSystem.writeFile","getNodeSystem","getNodeSystem.readFile","getNodeSystem.writeFile","getNodeSystem.fileChanged","TypeScript","TypeScript.Errors","TypeScript.Errors.constructor","TypeScript.Errors.argument","TypeScript.Errors.argumentOutOfRange","TypeScript.Errors.argumentNull","TypeScript.Errors.abstract","TypeScript.Errors.notYetImplemented","TypeScript.Errors.invalidOperation","TypeScript.ArrayUtilities","TypeScript.ArrayUtilities.constructor","TypeScript.ArrayUtilities.sequenceEquals","TypeScript.ArrayUtilities.contains","TypeScript.ArrayUtilities.distinct","TypeScript.ArrayUtilities.last","TypeScript.ArrayUtilities.lastOrDefault","TypeScript.ArrayUtilities.firstOrDefault","TypeScript.ArrayUtilities.first","TypeScript.ArrayUtilities.sum","TypeScript.ArrayUtilities.select","TypeScript.ArrayUtilities.where","TypeScript.ArrayUtilities.any","TypeScript.ArrayUtilities.all","TypeScript.ArrayUtilities.binarySearch","TypeScript.ArrayUtilities.createArray","TypeScript.ArrayUtilities.grow","TypeScript.ArrayUtilities.copy","TypeScript.ArrayUtilities.indexOf","TypeScript.StringUtilities","TypeScript.StringUtilities.constructor","TypeScript.StringUtilities.isString","TypeScript.StringUtilities.endsWith","TypeScript.StringUtilities.startsWith","TypeScript.StringUtilities.repeat","TypeScript.SyntaxKind","TypeScript.SyntaxFacts","TypeScript.SyntaxFacts.getTokenKind","TypeScript.SyntaxFacts.getText","TypeScript.SyntaxFacts.isAnyKeyword","TypeScript.SyntaxFacts.isAnyPunctuation","TypeScript.SyntaxFacts.isPrefixUnaryExpressionOperatorToken","TypeScript.SyntaxFacts.isBinaryExpressionOperatorToken","TypeScript.SyntaxFacts.isAssignmentOperatorToken","TypeScript.SyntaxFacts.isType","firstKind","getStringWithoutSuffix","getNameWithoutSuffix","getType","camelCase","getSafeName","generateConstructorFunction","generateSyntaxInterfaces","generateSyntaxInterface","generateNodes","isInterface","generateWalker","firstEnumName","groupBy","generateKeywordCondition","min","max","generateUtilities","generateScannerUtilities","syntaxKindName","generateVisitor"],"mappings":"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"} +>>>>>>> f89de4c... Remove redundant syntax type. diff --git a/src/services/syntax/parser.ts b/src/services/syntax/parser.ts index ab33c1f7ed2..a8a481f22ba 100644 --- a/src/services/syntax/parser.ts +++ b/src/services/syntax/parser.ts @@ -3620,7 +3620,8 @@ module TypeScript.Parser { // 'async' might start an asynchronous property, or it might just be the name // of a property. if (peekToken(1).kind === SyntaxKind.AsteriskToken || isPropertyName(/*peekIndex:*/ 1, inErrorRecovery)) { - return parseFunctionPropertyAssignment(eatToken(SyntaxKind.AsyncKeyword), tryEatToken(SyntaxKind.AsteriskToken), parsePropertyName()); + return parseMemberFunctionDeclaration( + Syntax.list([eatToken(SyntaxKind.AsyncKeyword)]), tryEatToken(SyntaxKind.AsteriskToken), parsePropertyName()); } } @@ -3657,7 +3658,7 @@ module TypeScript.Parser { var propertyName = parsePropertyName(); if (asterixToken !== undefined || isCallSignature(/*peekIndex:*/ 0)) { - return parseFunctionPropertyAssignment(undefined, asterixToken, propertyName); + return parseMemberFunctionDeclaration([], asterixToken, propertyName); } else { // PropertyName[?Yield] : AssignmentExpression[In, ?Yield] @@ -3761,15 +3762,6 @@ module TypeScript.Parser { eatToken(SyntaxKind.CloseBracketToken)); } - function parseFunctionPropertyAssignment(asyncKeyword: ISyntaxToken, asteriskToken: ISyntaxToken, propertyName: IPropertyNameSyntax): FunctionPropertyAssignmentSyntax { - return new FunctionPropertyAssignmentSyntax(contextFlags, - asyncKeyword, - asteriskToken, - propertyName, - parseCallSignature(/*requireCompleteTypeParameterList:*/ false, /*yieldAndGeneratorParameterContext:*/ !!asteriskToken, !!asyncKeyword), - parseFunctionBody(!!asteriskToken, !!asyncKeyword)); - } - function parseArrayLiteralExpression(openBracketToken: ISyntaxToken): ArrayLiteralExpressionSyntax { // Debug.assert(currentToken().kind === SyntaxKind.OpenBracketToken); return new ArrayLiteralExpressionSyntax(contextFlags, diff --git a/src/services/syntax/prettyPrinter.ts b/src/services/syntax/prettyPrinter.ts index 0b65ba0317c..c202c714643 100644 --- a/src/services/syntax/prettyPrinter.ts +++ b/src/services/syntax/prettyPrinter.ts @@ -938,13 +938,6 @@ module TypeScript.PrettyPrinter { visitNodeOrToken(this, node.expression); } - public visitFunctionPropertyAssignment(node: FunctionPropertyAssignmentSyntax): void { - visitNodeOrToken(this, node.propertyName); - visitNodeOrToken(this, node.callSignature); - this.ensureSpace(); - visitNodeOrToken(this, node.body); - } - public visitFunctionExpression(node: FunctionExpressionSyntax): void { this.appendToken(node.functionKeyword); diff --git a/src/services/syntax/syntaxGenerator.ts b/src/services/syntax/syntaxGenerator.ts index bda3b39e928..ad63ee818b4 100644 --- a/src/services/syntax/syntaxGenerator.ts +++ b/src/services/syntax/syntaxGenerator.ts @@ -653,7 +653,7 @@ var definitions:ITypeDefinition[] = [ { name: 'MemberFunctionDeclarationSyntax', baseType: 'ISyntaxNode', - interfaces: ['IMemberDeclarationSyntax'], + interfaces: ['IMemberDeclarationSyntax', 'IPropertyAssignmentSyntax'], children: [ { name: 'modifiers', isList: true, elementType: 'ISyntaxToken' }, { name: 'asterixToken', isToken: true, isOptional: true }, @@ -913,18 +913,6 @@ var definitions:ITypeDefinition[] = [ { name: 'expression', type: 'IExpressionSyntax' } ] }, - { - name: 'FunctionPropertyAssignmentSyntax', - baseType: 'ISyntaxNode', - interfaces: ['IPropertyAssignmentSyntax'], - children: [ - { name: 'asyncKeyword', isToken: true, isOptional: true }, - { name: 'asterixToken', isToken: true, isOptional: true }, - { name: 'propertyName', type: 'IPropertyNameSyntax' }, - { name: 'callSignature', type: 'CallSignatureSyntax' }, - { name: 'body', type: 'BlockSyntax | ExpressionBody | ISyntaxToken', isOptional: true } - ] - }, { name: 'FunctionExpressionSyntax', baseType: 'ISyntaxNode', diff --git a/src/services/syntax/syntaxInterfaces.generated.ts b/src/services/syntax/syntaxInterfaces.generated.ts index 724018fed54..28704e6a709 100644 --- a/src/services/syntax/syntaxInterfaces.generated.ts +++ b/src/services/syntax/syntaxInterfaces.generated.ts @@ -149,7 +149,7 @@ module TypeScript { } export interface ExportAssignmentConstructor { new (data: number, exportKeyword: ISyntaxToken, equalsToken: ISyntaxToken, identifier: ISyntaxToken, semicolonToken: ISyntaxToken): ExportAssignmentSyntax } - export interface MemberFunctionDeclarationSyntax extends ISyntaxNode, IMemberDeclarationSyntax { + export interface MemberFunctionDeclarationSyntax extends ISyntaxNode, IMemberDeclarationSyntax, IPropertyAssignmentSyntax { modifiers: ISyntaxToken[]; asterixToken: ISyntaxToken; propertyName: IPropertyNameSyntax; @@ -649,22 +649,6 @@ module TypeScript { } export interface ConstraintConstructor { new (data: number, extendsKeyword: ISyntaxToken, typeOrExpression: ISyntaxNodeOrToken): ConstraintSyntax } - export interface SimplePropertyAssignmentSyntax extends ISyntaxNode, IPropertyAssignmentSyntax { - propertyName: IPropertyNameSyntax; - colonToken: ISyntaxToken; - expression: IExpressionSyntax; - } - export interface SimplePropertyAssignmentConstructor { new (data: number, propertyName: IPropertyNameSyntax, colonToken: ISyntaxToken, expression: IExpressionSyntax): SimplePropertyAssignmentSyntax } - - export interface FunctionPropertyAssignmentSyntax extends ISyntaxNode, IPropertyAssignmentSyntax { - asyncKeyword: ISyntaxToken; - asterixToken: ISyntaxToken; - propertyName: IPropertyNameSyntax; - callSignature: CallSignatureSyntax; - body: BlockSyntax | ExpressionBody | ISyntaxToken; - } - export interface FunctionPropertyAssignmentConstructor { new (data: number, asyncKeyword: ISyntaxToken, asterixToken: ISyntaxToken, propertyName: IPropertyNameSyntax, callSignature: CallSignatureSyntax, body: BlockSyntax | ExpressionBody | ISyntaxToken): FunctionPropertyAssignmentSyntax } - export interface ParameterSyntax extends ISyntaxNode { dotDotDotToken: ISyntaxToken; modifiers: ISyntaxToken[]; @@ -700,6 +684,13 @@ module TypeScript { } export interface ComputedPropertyNameConstructor { new (data: number, openBracketToken: ISyntaxToken, expression: IExpressionSyntax, closeBracketToken: ISyntaxToken): ComputedPropertyNameSyntax } + export interface SimplePropertyAssignmentSyntax extends ISyntaxNode, IPropertyAssignmentSyntax { + propertyName: IPropertyNameSyntax; + colonToken: ISyntaxToken; + expression: IExpressionSyntax; + } + export interface SimplePropertyAssignmentConstructor { new (data: number, propertyName: IPropertyNameSyntax, colonToken: ISyntaxToken, expression: IExpressionSyntax): SimplePropertyAssignmentSyntax } + export interface ExternalModuleReferenceSyntax extends ISyntaxNode, IModuleReferenceSyntax { requireKeyword: ISyntaxToken; openParenToken: ISyntaxToken; diff --git a/src/services/syntax/syntaxKind.ts b/src/services/syntax/syntaxKind.ts index 988f27c3052..d3573dea829 100644 --- a/src/services/syntax/syntaxKind.ts +++ b/src/services/syntax/syntaxKind.ts @@ -263,16 +263,13 @@ module TypeScript { TypeParameter, Constraint, - // Property Assignment - SimplePropertyAssignment, - FunctionPropertyAssignment, - // Misc. Parameter, EnumElement, TypeAnnotation, ExpressionBody, ComputedPropertyName, + SimplePropertyAssignment, ExternalModuleReference, ModuleNameModuleReference, diff --git a/src/services/syntax/syntaxNodes.concrete.generated.ts b/src/services/syntax/syntaxNodes.concrete.generated.ts index 7755c1803f0..db9821b0c84 100644 --- a/src/services/syntax/syntaxNodes.concrete.generated.ts +++ b/src/services/syntax/syntaxNodes.concrete.generated.ts @@ -1769,50 +1769,6 @@ module TypeScript { } } - export var SimplePropertyAssignmentSyntax: SimplePropertyAssignmentConstructor = function(data: number, propertyName: IPropertyNameSyntax, colonToken: ISyntaxToken, expression: IExpressionSyntax) { - if (data) { this.__data = data; } - this.propertyName = propertyName, - this.colonToken = colonToken, - this.expression = expression, - propertyName.parent = this, - colonToken.parent = this, - expression.parent = this; - }; - SimplePropertyAssignmentSyntax.prototype.kind = SyntaxKind.SimplePropertyAssignment; - SimplePropertyAssignmentSyntax.prototype.childCount = 3; - SimplePropertyAssignmentSyntax.prototype.childAt = function(index: number): ISyntaxElement { - switch (index) { - case 0: return this.propertyName; - case 1: return this.colonToken; - case 2: return this.expression; - } - } - - export var FunctionPropertyAssignmentSyntax: FunctionPropertyAssignmentConstructor = function(data: number, asyncKeyword: ISyntaxToken, asterixToken: ISyntaxToken, propertyName: IPropertyNameSyntax, callSignature: CallSignatureSyntax, body: BlockSyntax | ExpressionBody | ISyntaxToken) { - if (data) { this.__data = data; } - this.asyncKeyword = asyncKeyword, - this.asterixToken = asterixToken, - this.propertyName = propertyName, - this.callSignature = callSignature, - this.body = body, - asyncKeyword && (asyncKeyword.parent = this), - asterixToken && (asterixToken.parent = this), - propertyName.parent = this, - callSignature.parent = this, - body && (body.parent = this); - }; - FunctionPropertyAssignmentSyntax.prototype.kind = SyntaxKind.FunctionPropertyAssignment; - FunctionPropertyAssignmentSyntax.prototype.childCount = 5; - FunctionPropertyAssignmentSyntax.prototype.childAt = function(index: number): ISyntaxElement { - switch (index) { - case 0: return this.asyncKeyword; - case 1: return this.asterixToken; - case 2: return this.propertyName; - case 3: return this.callSignature; - case 4: return this.body; - } - } - export var ParameterSyntax: ParameterConstructor = function(data: number, dotDotDotToken: ISyntaxToken, modifiers: ISyntaxToken[], identifier: ISyntaxToken, questionToken: ISyntaxToken, typeAnnotation: TypeAnnotationSyntax, equalsValueClause: EqualsValueClauseSyntax) { if (data) { this.__data = data; } this.dotDotDotToken = dotDotDotToken, @@ -1908,6 +1864,25 @@ module TypeScript { } } + export var SimplePropertyAssignmentSyntax: SimplePropertyAssignmentConstructor = function(data: number, propertyName: IPropertyNameSyntax, colonToken: ISyntaxToken, expression: IExpressionSyntax) { + if (data) { this.__data = data; } + this.propertyName = propertyName, + this.colonToken = colonToken, + this.expression = expression, + propertyName.parent = this, + colonToken.parent = this, + expression.parent = this; + }; + SimplePropertyAssignmentSyntax.prototype.kind = SyntaxKind.SimplePropertyAssignment; + SimplePropertyAssignmentSyntax.prototype.childCount = 3; + SimplePropertyAssignmentSyntax.prototype.childAt = function(index: number): ISyntaxElement { + switch (index) { + case 0: return this.propertyName; + case 1: return this.colonToken; + case 2: return this.expression; + } + } + export var ExternalModuleReferenceSyntax: ExternalModuleReferenceConstructor = function(data: number, requireKeyword: ISyntaxToken, openParenToken: ISyntaxToken, stringLiteral: ISyntaxToken, closeParenToken: ISyntaxToken) { if (data) { this.__data = data; } this.requireKeyword = requireKeyword, diff --git a/src/services/syntax/syntaxTree.ts b/src/services/syntax/syntaxTree.ts index 5f5694123e2..198c3ee348b 100644 --- a/src/services/syntax/syntaxTree.ts +++ b/src/services/syntax/syntaxTree.ts @@ -580,15 +580,43 @@ module TypeScript { } public visitMemberFunctionDeclaration(node: MemberFunctionDeclarationSyntax): void { - if (this.checkClassElementModifiers(node.modifiers) || - this.checkForDisallowedTemplatePropertyName(node.propertyName) || + if (node.parent && node.parent.parent && + node.parent.kind === SyntaxKind.List && node.parent.parent.kind === SyntaxKind.ObjectLiteralExpression) { + + // Method in an object literal. + if (this.checkForSemicolonInsteadOfBlock(node, node.body) || + this.checkForDisallowedObjectLiteralMethod(node.modifiers)) { + return; + } + } + else { + // Method in a class literal. + if (this.checkClassElementModifiers(node.modifiers)) { + return; + } + } + + // Object literal or class method. + if (this.checkForDisallowedTemplatePropertyName(node.propertyName) || this.checkForAsyncGenerator(this.getAsyncModifier(node.modifiers), node.asterixToken)) { + return; } super.visitMemberFunctionDeclaration(node); } + private checkForDisallowedObjectLiteralMethod(modifiers: ISyntaxToken[]): boolean { + for (var i = 0, n = modifiers.length; i < n; i++) { + var modifier = modifiers[i]; + if (modifier.kind !== SyntaxKind.AsyncKeyword) { + return this.pushDiagnostic(modifier, DiagnosticCode.Modifiers_cannot_appear_here); + } + } + + return false; + } + private checkGetAccessorParameter(node: GetAccessorSyntax): boolean { if (node.callSignature.parameterList.parameters.length !== 0) { this.pushDiagnostic(node.propertyName, DiagnosticCode.get_accessor_cannot_have_parameters); @@ -1490,16 +1518,6 @@ module TypeScript { super.visitFunctionExpression(node); } - public visitFunctionPropertyAssignment(node: FunctionPropertyAssignmentSyntax): void { - if (this.checkForDisallowedTemplatePropertyName(node.propertyName) || - this.checkForSemicolonInsteadOfBlock(node, node.body) || - this.checkForAsyncGenerator(node.asyncKeyword, node.asterixToken)) { - return; - } - - super.visitFunctionPropertyAssignment(node); - } - public visitVariableStatement(node: VariableStatementSyntax): void { if (this.checkForDisallowedDeclareModifier(node.modifiers) || this.checkForDisallowedModifiers(node.modifiers) || diff --git a/src/services/syntax/syntaxUtilities.ts b/src/services/syntax/syntaxUtilities.ts index 8c799edb4d9..ff47df44d16 100644 --- a/src/services/syntax/syntaxUtilities.ts +++ b/src/services/syntax/syntaxUtilities.ts @@ -19,7 +19,6 @@ module TypeScript { case SyntaxKind.FunctionExpression: case SyntaxKind.FunctionDeclaration: case SyntaxKind.MemberFunctionDeclaration: - case SyntaxKind.FunctionPropertyAssignment: case SyntaxKind.ConstructorDeclaration: case SyntaxKind.GetAccessor: case SyntaxKind.SetAccessor: diff --git a/src/services/syntax/syntaxVisitor.generated.ts b/src/services/syntax/syntaxVisitor.generated.ts index 5a2ae68870a..33d2caa0aa1 100644 --- a/src/services/syntax/syntaxVisitor.generated.ts +++ b/src/services/syntax/syntaxVisitor.generated.ts @@ -90,13 +90,12 @@ module TypeScript { case SyntaxKind.TemplateClause: return visitor.visitTemplateClause(element); case SyntaxKind.TypeParameter: return visitor.visitTypeParameter(element); case SyntaxKind.Constraint: return visitor.visitConstraint(element); - case SyntaxKind.SimplePropertyAssignment: return visitor.visitSimplePropertyAssignment(element); - case SyntaxKind.FunctionPropertyAssignment: return visitor.visitFunctionPropertyAssignment(element); case SyntaxKind.Parameter: return visitor.visitParameter(element); case SyntaxKind.EnumElement: return visitor.visitEnumElement(element); case SyntaxKind.TypeAnnotation: return visitor.visitTypeAnnotation(element); case SyntaxKind.ExpressionBody: return visitor.visitExpressionBody(element); case SyntaxKind.ComputedPropertyName: return visitor.visitComputedPropertyName(element); + case SyntaxKind.SimplePropertyAssignment: return visitor.visitSimplePropertyAssignment(element); case SyntaxKind.ExternalModuleReference: return visitor.visitExternalModuleReference(element); case SyntaxKind.ModuleNameModuleReference: return visitor.visitModuleNameModuleReference(element); default: return visitor.visitToken(element); @@ -191,13 +190,12 @@ module TypeScript { visitTemplateClause(node: TemplateClauseSyntax): any; visitTypeParameter(node: TypeParameterSyntax): any; visitConstraint(node: ConstraintSyntax): any; - visitSimplePropertyAssignment(node: SimplePropertyAssignmentSyntax): any; - visitFunctionPropertyAssignment(node: FunctionPropertyAssignmentSyntax): any; visitParameter(node: ParameterSyntax): any; visitEnumElement(node: EnumElementSyntax): any; visitTypeAnnotation(node: TypeAnnotationSyntax): any; visitExpressionBody(node: ExpressionBody): any; visitComputedPropertyName(node: ComputedPropertyNameSyntax): any; + visitSimplePropertyAssignment(node: SimplePropertyAssignmentSyntax): any; visitExternalModuleReference(node: ExternalModuleReferenceSyntax): any; visitModuleNameModuleReference(node: ModuleNameModuleReferenceSyntax): any; } diff --git a/src/services/syntax/syntaxWalker.generated.ts b/src/services/syntax/syntaxWalker.generated.ts index 4ce6f1c740d..7899abc2441 100644 --- a/src/services/syntax/syntaxWalker.generated.ts +++ b/src/services/syntax/syntaxWalker.generated.ts @@ -580,20 +580,6 @@ module TypeScript { visitNodeOrToken(this, node.typeOrExpression); } - public visitSimplePropertyAssignment(node: SimplePropertyAssignmentSyntax): void { - visitNodeOrToken(this, node.propertyName); - this.visitToken(node.colonToken); - visitNodeOrToken(this, node.expression); - } - - public visitFunctionPropertyAssignment(node: FunctionPropertyAssignmentSyntax): void { - this.visitOptionalToken(node.asyncKeyword); - this.visitOptionalToken(node.asterixToken); - visitNodeOrToken(this, node.propertyName); - visitNodeOrToken(this, node.callSignature); - visitNodeOrToken(this, node.body); - } - public visitParameter(node: ParameterSyntax): void { this.visitOptionalToken(node.dotDotDotToken); this.visitList(node.modifiers); @@ -624,6 +610,12 @@ module TypeScript { this.visitToken(node.closeBracketToken); } + public visitSimplePropertyAssignment(node: SimplePropertyAssignmentSyntax): void { + visitNodeOrToken(this, node.propertyName); + this.visitToken(node.colonToken); + visitNodeOrToken(this, node.expression); + } + public visitExternalModuleReference(node: ExternalModuleReferenceSyntax): void { this.visitToken(node.requireKeyword); this.visitToken(node.openParenToken); From 2233a01fb3e98bf9c8bab6d2e064e084d356c567 Mon Sep 17 00:00:00 2001 From: Cyrus Najmabadi Date: Tue, 25 Nov 2014 19:32:55 -0800 Subject: [PATCH 080/195] Rename SimplePropertyAssignment to PropertyAssignment. Conflicts: src/services/syntax/SyntaxGenerator.js.map --- src/services/syntax/SyntaxGenerator.js | 4 ++-- src/services/syntax/SyntaxGenerator.js.map | 4 ++++ src/services/syntax/parser.ts | 11 +++++++---- src/services/syntax/prettyPrinter.ts | 2 +- src/services/syntax/syntaxGenerator.ts | 2 +- src/services/syntax/syntaxInterfaces.generated.ts | 4 ++-- src/services/syntax/syntaxKind.ts | 2 +- src/services/syntax/syntaxNodes.concrete.generated.ts | 8 ++++---- src/services/syntax/syntaxTree.ts | 4 ++-- src/services/syntax/syntaxVisitor.generated.ts | 4 ++-- src/services/syntax/syntaxWalker.generated.ts | 2 +- 11 files changed, 27 insertions(+), 20 deletions(-) diff --git a/src/services/syntax/SyntaxGenerator.js b/src/services/syntax/SyntaxGenerator.js index b56f45ff4a2..14b1242fd52 100644 --- a/src/services/syntax/SyntaxGenerator.js +++ b/src/services/syntax/SyntaxGenerator.js @@ -624,7 +624,7 @@ var TypeScript; SyntaxKind[SyntaxKind["TypeAnnotation"] = 212] = "TypeAnnotation"; SyntaxKind[SyntaxKind["ExpressionBody"] = 213] = "ExpressionBody"; SyntaxKind[SyntaxKind["ComputedPropertyName"] = 214] = "ComputedPropertyName"; - SyntaxKind[SyntaxKind["SimplePropertyAssignment"] = 215] = "SimplePropertyAssignment"; + SyntaxKind[SyntaxKind["PropertyAssignment"] = 215] = "PropertyAssignment"; SyntaxKind[SyntaxKind["ExternalModuleReference"] = 216] = "ExternalModuleReference"; SyntaxKind[SyntaxKind["ModuleNameModuleReference"] = 217] = "ModuleNameModuleReference"; SyntaxKind[SyntaxKind["FirstStandardKeyword"] = SyntaxKind.BreakKeyword] = "FirstStandardKeyword"; @@ -1762,7 +1762,7 @@ var definitions = [ ] }, { - name: 'SimplePropertyAssignmentSyntax', + name: 'PropertyAssignmentSyntax', baseType: 'ISyntaxNode', interfaces: ['IPropertyAssignmentSyntax'], children: [ diff --git a/src/services/syntax/SyntaxGenerator.js.map b/src/services/syntax/SyntaxGenerator.js.map index d32e4b2549e..b1e3863844e 100644 --- a/src/services/syntax/SyntaxGenerator.js.map +++ b/src/services/syntax/SyntaxGenerator.js.map @@ -12,6 +12,7 @@ <<<<<<< HEAD <<<<<<< HEAD <<<<<<< HEAD +<<<<<<< HEAD <<<<<<< Updated upstream {"version":3,"file":"SyntaxGenerator.js","sourceRoot":"","sources":["file:///C:/VSPro_1/src/typescript/public_cyrusn/src/compiler/sys.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/core/errors.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/core/arrayUtilities.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/core/stringUtilities.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/syntax/syntaxKind.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/syntax/syntaxFacts.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/syntax/SyntaxGenerator.ts"],"names":["getWScriptSystem","getWScriptSystem.readFile","getWScriptSystem.writeFile","getNodeSystem","getNodeSystem.readFile","getNodeSystem.writeFile","getNodeSystem.fileChanged","TypeScript","TypeScript.Errors","TypeScript.Errors.constructor","TypeScript.Errors.argument","TypeScript.Errors.argumentOutOfRange","TypeScript.Errors.argumentNull","TypeScript.Errors.abstract","TypeScript.Errors.notYetImplemented","TypeScript.Errors.invalidOperation","TypeScript.ArrayUtilities","TypeScript.ArrayUtilities.constructor","TypeScript.ArrayUtilities.sequenceEquals","TypeScript.ArrayUtilities.contains","TypeScript.ArrayUtilities.distinct","TypeScript.ArrayUtilities.last","TypeScript.ArrayUtilities.lastOrDefault","TypeScript.ArrayUtilities.firstOrDefault","TypeScript.ArrayUtilities.first","TypeScript.ArrayUtilities.sum","TypeScript.ArrayUtilities.select","TypeScript.ArrayUtilities.where","TypeScript.ArrayUtilities.any","TypeScript.ArrayUtilities.all","TypeScript.ArrayUtilities.binarySearch","TypeScript.ArrayUtilities.createArray","TypeScript.ArrayUtilities.grow","TypeScript.ArrayUtilities.copy","TypeScript.ArrayUtilities.indexOf","TypeScript.StringUtilities","TypeScript.StringUtilities.constructor","TypeScript.StringUtilities.isString","TypeScript.StringUtilities.endsWith","TypeScript.StringUtilities.startsWith","TypeScript.StringUtilities.repeat","TypeScript.SyntaxKind","TypeScript.SyntaxFacts","TypeScript.SyntaxFacts.getTokenKind","TypeScript.SyntaxFacts.getText","TypeScript.SyntaxFacts.isAnyKeyword","TypeScript.SyntaxFacts.isAnyPunctuation","TypeScript.SyntaxFacts.isPrefixUnaryExpressionOperatorToken","TypeScript.SyntaxFacts.isBinaryExpressionOperatorToken","TypeScript.SyntaxFacts.isAssignmentOperatorToken","TypeScript.SyntaxFacts.isType","firstKind","getStringWithoutSuffix","getNameWithoutSuffix","getType","camelCase","getSafeName","generateConstructorFunction","generateSyntaxInterfaces","generateSyntaxInterface","generateNodes","isInterface","generateWalker","firstEnumName","groupBy","generateKeywordCondition","min","max","generateUtilities","generateScannerUtilities","syntaxKindName","generateVisitor"],"mappings":"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"} ======= @@ -59,3 +60,6 @@ ======= {"version":3,"file":"SyntaxGenerator.js","sourceRoot":"","sources":["file:///C:/VSPro_1/src/typescript/public_cyrusn/src/compiler/sys.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/core/errors.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/core/arrayUtilities.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/core/stringUtilities.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/syntax/syntaxKind.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/syntax/syntaxFacts.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/syntax/SyntaxGenerator.ts"],"names":["getWScriptSystem","getWScriptSystem.readFile","getWScriptSystem.writeFile","getNodeSystem","getNodeSystem.readFile","getNodeSystem.writeFile","getNodeSystem.fileChanged","TypeScript","TypeScript.Errors","TypeScript.Errors.constructor","TypeScript.Errors.argument","TypeScript.Errors.argumentOutOfRange","TypeScript.Errors.argumentNull","TypeScript.Errors.abstract","TypeScript.Errors.notYetImplemented","TypeScript.Errors.invalidOperation","TypeScript.ArrayUtilities","TypeScript.ArrayUtilities.constructor","TypeScript.ArrayUtilities.sequenceEquals","TypeScript.ArrayUtilities.contains","TypeScript.ArrayUtilities.distinct","TypeScript.ArrayUtilities.last","TypeScript.ArrayUtilities.lastOrDefault","TypeScript.ArrayUtilities.firstOrDefault","TypeScript.ArrayUtilities.first","TypeScript.ArrayUtilities.sum","TypeScript.ArrayUtilities.select","TypeScript.ArrayUtilities.where","TypeScript.ArrayUtilities.any","TypeScript.ArrayUtilities.all","TypeScript.ArrayUtilities.binarySearch","TypeScript.ArrayUtilities.createArray","TypeScript.ArrayUtilities.grow","TypeScript.ArrayUtilities.copy","TypeScript.ArrayUtilities.indexOf","TypeScript.StringUtilities","TypeScript.StringUtilities.constructor","TypeScript.StringUtilities.isString","TypeScript.StringUtilities.endsWith","TypeScript.StringUtilities.startsWith","TypeScript.StringUtilities.repeat","TypeScript.SyntaxKind","TypeScript.SyntaxFacts","TypeScript.SyntaxFacts.getTokenKind","TypeScript.SyntaxFacts.getText","TypeScript.SyntaxFacts.isAnyKeyword","TypeScript.SyntaxFacts.isAnyPunctuation","TypeScript.SyntaxFacts.isPrefixUnaryExpressionOperatorToken","TypeScript.SyntaxFacts.isBinaryExpressionOperatorToken","TypeScript.SyntaxFacts.isAssignmentOperatorToken","TypeScript.SyntaxFacts.isType","firstKind","getStringWithoutSuffix","getNameWithoutSuffix","getType","camelCase","getSafeName","generateConstructorFunction","generateSyntaxInterfaces","generateSyntaxInterface","generateNodes","isInterface","generateWalker","firstEnumName","groupBy","generateKeywordCondition","min","max","generateUtilities","generateScannerUtilities","syntaxKindName","generateVisitor"],"mappings":"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"} >>>>>>> f89de4c... Remove redundant syntax type. +======= +{"version":3,"file":"SyntaxGenerator.js","sourceRoot":"","sources":["file:///C:/VSPro_1/src/typescript/public_cyrusn/src/compiler/sys.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/core/errors.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/core/arrayUtilities.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/core/stringUtilities.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/syntax/syntaxKind.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/syntax/syntaxFacts.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/syntax/SyntaxGenerator.ts"],"names":["getWScriptSystem","getWScriptSystem.readFile","getWScriptSystem.writeFile","getNodeSystem","getNodeSystem.readFile","getNodeSystem.writeFile","getNodeSystem.fileChanged","TypeScript","TypeScript.Errors","TypeScript.Errors.constructor","TypeScript.Errors.argument","TypeScript.Errors.argumentOutOfRange","TypeScript.Errors.argumentNull","TypeScript.Errors.abstract","TypeScript.Errors.notYetImplemented","TypeScript.Errors.invalidOperation","TypeScript.ArrayUtilities","TypeScript.ArrayUtilities.constructor","TypeScript.ArrayUtilities.sequenceEquals","TypeScript.ArrayUtilities.contains","TypeScript.ArrayUtilities.distinct","TypeScript.ArrayUtilities.last","TypeScript.ArrayUtilities.lastOrDefault","TypeScript.ArrayUtilities.firstOrDefault","TypeScript.ArrayUtilities.first","TypeScript.ArrayUtilities.sum","TypeScript.ArrayUtilities.select","TypeScript.ArrayUtilities.where","TypeScript.ArrayUtilities.any","TypeScript.ArrayUtilities.all","TypeScript.ArrayUtilities.binarySearch","TypeScript.ArrayUtilities.createArray","TypeScript.ArrayUtilities.grow","TypeScript.ArrayUtilities.copy","TypeScript.ArrayUtilities.indexOf","TypeScript.StringUtilities","TypeScript.StringUtilities.constructor","TypeScript.StringUtilities.isString","TypeScript.StringUtilities.endsWith","TypeScript.StringUtilities.startsWith","TypeScript.StringUtilities.repeat","TypeScript.SyntaxKind","TypeScript.SyntaxFacts","TypeScript.SyntaxFacts.getTokenKind","TypeScript.SyntaxFacts.getText","TypeScript.SyntaxFacts.isAnyKeyword","TypeScript.SyntaxFacts.isAnyPunctuation","TypeScript.SyntaxFacts.isPrefixUnaryExpressionOperatorToken","TypeScript.SyntaxFacts.isBinaryExpressionOperatorToken","TypeScript.SyntaxFacts.isAssignmentOperatorToken","TypeScript.SyntaxFacts.isType","firstKind","getStringWithoutSuffix","getNameWithoutSuffix","getType","camelCase","getSafeName","generateConstructorFunction","generateSyntaxInterfaces","generateSyntaxInterface","generateNodes","isInterface","generateWalker","firstEnumName","groupBy","generateKeywordCondition","min","max","generateUtilities","generateScannerUtilities","syntaxKindName","generateVisitor"],"mappings":"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"} +>>>>>>> 9a2e8e3... Rename SimplePropertyAssignment to PropertyAssignment. diff --git a/src/services/syntax/parser.ts b/src/services/syntax/parser.ts index a8a481f22ba..5afb53d1ba9 100644 --- a/src/services/syntax/parser.ts +++ b/src/services/syntax/parser.ts @@ -3619,9 +3619,12 @@ module TypeScript.Parser { if (_currentToken.kind === SyntaxKind.AsyncKeyword) { // 'async' might start an asynchronous property, or it might just be the name // of a property. - if (peekToken(1).kind === SyntaxKind.AsteriskToken || isPropertyName(/*peekIndex:*/ 1, inErrorRecovery)) { - return parseMemberFunctionDeclaration( - Syntax.list([eatToken(SyntaxKind.AsyncKeyword)]), tryEatToken(SyntaxKind.AsteriskToken), parsePropertyName()); + var token1 = peekToken(1); + if (!token1.hasLeadingNewLine()) { + if (token1.kind === SyntaxKind.AsteriskToken || isPropertyName(/*peekIndex:*/ 1, inErrorRecovery)) { + return parseMemberFunctionDeclaration( + Syntax.list([eatToken(SyntaxKind.AsyncKeyword)]), tryEatToken(SyntaxKind.AsteriskToken), parsePropertyName()); + } } } @@ -3669,7 +3672,7 @@ module TypeScript.Parser { // // Also, if we have an identifier and it is followed by a colon then this is // definitely a simple property assignment. - return new SimplePropertyAssignmentSyntax(contextFlags, + return new PropertyAssignmentSyntax(contextFlags, propertyName, eatToken(SyntaxKind.ColonToken), allowInAnd(parseAssignmentExpressionOrHigher)); diff --git a/src/services/syntax/prettyPrinter.ts b/src/services/syntax/prettyPrinter.ts index c202c714643..c8b08dc876e 100644 --- a/src/services/syntax/prettyPrinter.ts +++ b/src/services/syntax/prettyPrinter.ts @@ -931,7 +931,7 @@ module TypeScript.PrettyPrinter { this.appendToken(node.closeBracketToken); } - public visitSimplePropertyAssignment(node: SimplePropertyAssignmentSyntax): void { + public visitPropertyAssignment(node: PropertyAssignmentSyntax): void { visitNodeOrToken(this, node.propertyName); this.appendToken(node.colonToken); this.ensureSpace(); diff --git a/src/services/syntax/syntaxGenerator.ts b/src/services/syntax/syntaxGenerator.ts index ad63ee818b4..db2fc41ef35 100644 --- a/src/services/syntax/syntaxGenerator.ts +++ b/src/services/syntax/syntaxGenerator.ts @@ -904,7 +904,7 @@ var definitions:ITypeDefinition[] = [ ] }, { - name: 'SimplePropertyAssignmentSyntax', + name: 'PropertyAssignmentSyntax', baseType: 'ISyntaxNode', interfaces: ['IPropertyAssignmentSyntax'], children: [ diff --git a/src/services/syntax/syntaxInterfaces.generated.ts b/src/services/syntax/syntaxInterfaces.generated.ts index 28704e6a709..d71521ab8a6 100644 --- a/src/services/syntax/syntaxInterfaces.generated.ts +++ b/src/services/syntax/syntaxInterfaces.generated.ts @@ -684,12 +684,12 @@ module TypeScript { } export interface ComputedPropertyNameConstructor { new (data: number, openBracketToken: ISyntaxToken, expression: IExpressionSyntax, closeBracketToken: ISyntaxToken): ComputedPropertyNameSyntax } - export interface SimplePropertyAssignmentSyntax extends ISyntaxNode, IPropertyAssignmentSyntax { + export interface PropertyAssignmentSyntax extends ISyntaxNode, IPropertyAssignmentSyntax { propertyName: IPropertyNameSyntax; colonToken: ISyntaxToken; expression: IExpressionSyntax; } - export interface SimplePropertyAssignmentConstructor { new (data: number, propertyName: IPropertyNameSyntax, colonToken: ISyntaxToken, expression: IExpressionSyntax): SimplePropertyAssignmentSyntax } + export interface PropertyAssignmentConstructor { new (data: number, propertyName: IPropertyNameSyntax, colonToken: ISyntaxToken, expression: IExpressionSyntax): PropertyAssignmentSyntax } export interface ExternalModuleReferenceSyntax extends ISyntaxNode, IModuleReferenceSyntax { requireKeyword: ISyntaxToken; diff --git a/src/services/syntax/syntaxKind.ts b/src/services/syntax/syntaxKind.ts index d3573dea829..5658fd4403c 100644 --- a/src/services/syntax/syntaxKind.ts +++ b/src/services/syntax/syntaxKind.ts @@ -269,7 +269,7 @@ module TypeScript { TypeAnnotation, ExpressionBody, ComputedPropertyName, - SimplePropertyAssignment, + PropertyAssignment, ExternalModuleReference, ModuleNameModuleReference, diff --git a/src/services/syntax/syntaxNodes.concrete.generated.ts b/src/services/syntax/syntaxNodes.concrete.generated.ts index db9821b0c84..f8a352a4966 100644 --- a/src/services/syntax/syntaxNodes.concrete.generated.ts +++ b/src/services/syntax/syntaxNodes.concrete.generated.ts @@ -1864,7 +1864,7 @@ module TypeScript { } } - export var SimplePropertyAssignmentSyntax: SimplePropertyAssignmentConstructor = function(data: number, propertyName: IPropertyNameSyntax, colonToken: ISyntaxToken, expression: IExpressionSyntax) { + export var PropertyAssignmentSyntax: PropertyAssignmentConstructor = function(data: number, propertyName: IPropertyNameSyntax, colonToken: ISyntaxToken, expression: IExpressionSyntax) { if (data) { this.__data = data; } this.propertyName = propertyName, this.colonToken = colonToken, @@ -1873,9 +1873,9 @@ module TypeScript { colonToken.parent = this, expression.parent = this; }; - SimplePropertyAssignmentSyntax.prototype.kind = SyntaxKind.SimplePropertyAssignment; - SimplePropertyAssignmentSyntax.prototype.childCount = 3; - SimplePropertyAssignmentSyntax.prototype.childAt = function(index: number): ISyntaxElement { + PropertyAssignmentSyntax.prototype.kind = SyntaxKind.PropertyAssignment; + PropertyAssignmentSyntax.prototype.childCount = 3; + PropertyAssignmentSyntax.prototype.childAt = function(index: number): ISyntaxElement { switch (index) { case 0: return this.propertyName; case 1: return this.colonToken; diff --git a/src/services/syntax/syntaxTree.ts b/src/services/syntax/syntaxTree.ts index 198c3ee348b..60d104bf5f5 100644 --- a/src/services/syntax/syntaxTree.ts +++ b/src/services/syntax/syntaxTree.ts @@ -751,12 +751,12 @@ module TypeScript { super.visitSimpleArrowFunctionExpression(node); } - public visitSimplePropertyAssignment(node: SimplePropertyAssignmentSyntax): void { + public visitPropertyAssignment(node: PropertyAssignmentSyntax): void { if (this.checkForDisallowedTemplatePropertyName(node.propertyName)) { return; } - super.visitSimplePropertyAssignment(node); + super.visitPropertyAssignment(node); } public visitSetAccessor(node: SetAccessorSyntax): void { diff --git a/src/services/syntax/syntaxVisitor.generated.ts b/src/services/syntax/syntaxVisitor.generated.ts index 33d2caa0aa1..3ffebf86633 100644 --- a/src/services/syntax/syntaxVisitor.generated.ts +++ b/src/services/syntax/syntaxVisitor.generated.ts @@ -95,7 +95,7 @@ module TypeScript { case SyntaxKind.TypeAnnotation: return visitor.visitTypeAnnotation(element); case SyntaxKind.ExpressionBody: return visitor.visitExpressionBody(element); case SyntaxKind.ComputedPropertyName: return visitor.visitComputedPropertyName(element); - case SyntaxKind.SimplePropertyAssignment: return visitor.visitSimplePropertyAssignment(element); + case SyntaxKind.PropertyAssignment: return visitor.visitPropertyAssignment(element); case SyntaxKind.ExternalModuleReference: return visitor.visitExternalModuleReference(element); case SyntaxKind.ModuleNameModuleReference: return visitor.visitModuleNameModuleReference(element); default: return visitor.visitToken(element); @@ -195,7 +195,7 @@ module TypeScript { visitTypeAnnotation(node: TypeAnnotationSyntax): any; visitExpressionBody(node: ExpressionBody): any; visitComputedPropertyName(node: ComputedPropertyNameSyntax): any; - visitSimplePropertyAssignment(node: SimplePropertyAssignmentSyntax): any; + visitPropertyAssignment(node: PropertyAssignmentSyntax): any; visitExternalModuleReference(node: ExternalModuleReferenceSyntax): any; visitModuleNameModuleReference(node: ModuleNameModuleReferenceSyntax): any; } diff --git a/src/services/syntax/syntaxWalker.generated.ts b/src/services/syntax/syntaxWalker.generated.ts index 7899abc2441..ff7cfcd618f 100644 --- a/src/services/syntax/syntaxWalker.generated.ts +++ b/src/services/syntax/syntaxWalker.generated.ts @@ -610,7 +610,7 @@ module TypeScript { this.visitToken(node.closeBracketToken); } - public visitSimplePropertyAssignment(node: SimplePropertyAssignmentSyntax): void { + public visitPropertyAssignment(node: PropertyAssignmentSyntax): void { visitNodeOrToken(this, node.propertyName); this.visitToken(node.colonToken); visitNodeOrToken(this, node.expression); From 70ecd0b00c5097ac4834e212e259dd92760b3932 Mon Sep 17 00:00:00 2001 From: Cyrus Najmabadi Date: Tue, 25 Nov 2014 21:30:26 -0800 Subject: [PATCH 081/195] Simplify parsing. --- src/services/syntax/parser.ts | 127 ++++++++++++++++------------------ 1 file changed, 60 insertions(+), 67 deletions(-) diff --git a/src/services/syntax/parser.ts b/src/services/syntax/parser.ts index 5afb53d1ba9..467b12056dd 100644 --- a/src/services/syntax/parser.ts +++ b/src/services/syntax/parser.ts @@ -1219,18 +1219,17 @@ module TypeScript.Parser { return parseSyntaxList(ListParsingState.ClassDeclaration_ClassElements) } - function isAccessor(modifierCount: number, inErrorRecovery: boolean): boolean { - var tokenKind = peekToken(modifierCount).kind; + function isAccessor(inErrorRecovery: boolean): boolean { + var tokenKind = currentToken().kind; if (tokenKind !== SyntaxKind.GetKeyword && tokenKind !== SyntaxKind.SetKeyword) { return false; } - return isPropertyName(/*peekIndex:*/ modifierCount + 1, inErrorRecovery); + return isPropertyName(/*peekIndex:*/ 1, inErrorRecovery); } - function parseAccessor(): IAccessorSyntax { - var modifiers = parseModifiers(); + function parseAccessor(modifiers: ISyntaxToken[]): IAccessorSyntax { var _currentToken = currentToken(); var tokenKind = _currentToken.kind; @@ -1267,36 +1266,36 @@ module TypeScript.Parser { // Note: the order of these calls is important. Specifically, isMemberVariableDeclaration // checks for a subset of the conditions of the previous two calls. var _modifierCount = modifierCount(); - return isConstructorDeclaration(_modifierCount) || - isAccessor(_modifierCount, inErrorRecovery) || - isIndexMemberDeclaration(_modifierCount) || - isMemberVariableOrFunctionDeclaration(_modifierCount, inErrorRecovery); + return _modifierCount > 0 || + isConstructorDeclaration() || + isAccessor(inErrorRecovery) || + isIndexMemberDeclaration() || + isMemberVariableOrFunctionDeclaration(inErrorRecovery); } - function isMemberVariableOrFunctionDeclaration(peekIndex: number, inErrorRecovery: boolean) { - var tokenN = peekToken(peekIndex); - var tokenNKind = tokenN.kind; + function isMemberVariableOrFunctionDeclaration(inErrorRecovery: boolean) { + var token0 = currentToken(); + var token0Kind = token0.kind; // If we have a '*', then this is a generator function. - if (tokenNKind === SyntaxKind.AsteriskToken) { + if (token0Kind === SyntaxKind.AsteriskToken) { if (inErrorRecovery) { // If we're in error recovery, we might see a random * that is part of some // expression. Really, in order to view this as a generator function, we want // to see at least '*id<' or '*id('. Otherwise, we won't think of this as the // start of a member variable/function. - return peekToken(peekIndex + 1).kind === SyntaxKind.IdentifierName && - (peekToken(peekIndex + 2).kind === SyntaxKind.LessThanToken || peekToken(peekIndex + 2).kind === SyntaxKind.OpenParenToken); + return peekToken(1).kind === SyntaxKind.IdentifierName && isCallSignature(/*peekIndex:*/ 2); } return true; } // Check if its the start of a property or method. Both must start with a property name. - if (!isPropertyName(peekIndex, inErrorRecovery)) { + if (!isPropertyName(0, inErrorRecovery)) { return false; } - if (!SyntaxFacts.isAnyKeyword(tokenNKind)) { + if (!SyntaxFacts.isAnyKeyword(token0Kind)) { // It wasn't a keyword. So this is definitely a member variable or function. return true; } @@ -1314,7 +1313,7 @@ module TypeScript.Parser { // public< // public // public - var nextToken = peekToken(peekIndex + 1); + var nextToken = peekToken(1); switch (nextToken.kind) { case SyntaxKind.SemicolonToken: case SyntaxKind.EqualsToken: @@ -1338,18 +1337,17 @@ module TypeScript.Parser { // Have to check for indexers before anything else. That way if we see "[foo:" we // parse it out as an indexer and not a member function or variable. - var _modifierCount = modifierCount(); - if (isConstructorDeclaration(_modifierCount)) { - return parseConstructorDeclaration(); + var modifiers = parseModifiers(); + if (isConstructorDeclaration()) { + return parseConstructorDeclaration(modifiers); } - else if (isIndexMemberDeclaration(_modifierCount)) { - return parseIndexMemberDeclaration(); + else if (isIndexMemberDeclaration()) { + return parseIndexMemberDeclaration(modifiers); } - else if (isAccessor(_modifierCount, inErrorRecovery)) { - return parseAccessor(); + else if (isAccessor(inErrorRecovery)) { + return parseAccessor(modifiers); } - else if (isMemberVariableOrFunctionDeclaration(/*peekIndex:*/ _modifierCount, inErrorRecovery)) { - var modifiers = parseModifiers(); + else if (modifiers.length > 0 || isMemberVariableOrFunctionDeclaration(inErrorRecovery)) { var asterixToken = tryEatToken(SyntaxKind.AsteriskToken); var propertyName = parsePropertyName(); @@ -1369,20 +1367,20 @@ module TypeScript.Parser { } } - function isConstructorDeclaration(modifierCount: number): boolean { + function isConstructorDeclaration(): boolean { // Note: we deviate slightly from the spec here. If we see 'constructor' then we // assume this is a constructor. That means, if a user writes "public constructor;" // it won't be viewed as a member. As a workaround, they can simply write: // public 'constructor'; - return peekToken(modifierCount).kind === SyntaxKind.ConstructorKeyword; + return currentToken().kind === SyntaxKind.ConstructorKeyword; } - function parseConstructorDeclaration(): ConstructorDeclarationSyntax { + function parseConstructorDeclaration(modifiers: ISyntaxToken[]): ConstructorDeclarationSyntax { // Note: if we see an arrow after the close paren, then try to parse out a function // block anyways. It's likely the user just though '=> expr' was legal anywhere a // block was legal. return new ConstructorDeclarationSyntax(contextFlags, - parseModifiers(), + modifiers, eatToken(SyntaxKind.ConstructorKeyword), parseCallSignature(/*requireCompleteTypeParameterList:*/ false, /*yieldAndGeneratorParameterContext:*/ false, /*asyncContext:*/ false), parseFunctionBody(/*isGenerator:*/ false, /*asyncContext:*/ false)); @@ -1421,13 +1419,15 @@ module TypeScript.Parser { eatExplicitOrAutomaticSemicolon(/*allowWithoutNewline:*/ false)); } - function isIndexMemberDeclaration(modifierCount: number): boolean { - return isIndexSignature(modifierCount); + function isIndexMemberDeclaration(): boolean { + return isIndexSignature(/*peekIndex:*/ 0); } - function parseIndexMemberDeclaration(): IndexMemberDeclarationSyntax { + function parseIndexMemberDeclaration(modifiers: ISyntaxToken[]): IndexMemberDeclarationSyntax { return new IndexMemberDeclarationSyntax(contextFlags, - parseModifiers(), parseIndexSignature(), eatExplicitOrAutomaticSemicolon(/*allowWithoutNewLine:*/ false)); + modifiers, + parseIndexSignature(), + eatExplicitOrAutomaticSemicolon(/*allowWithoutNewLine:*/ false)); } function isFunctionDeclaration(modifierCount: number): boolean { @@ -3607,8 +3607,9 @@ module TypeScript.Parser { function tryParsePropertyAssignment(inErrorRecovery: boolean): IPropertyAssignmentSyntax { // Debug.assert(isPropertyAssignment(/*inErrorRecovery:*/ false)); - if (isAccessor(modifierCount(), inErrorRecovery)) { - return parseAccessor(); + var modifiers = parseModifiers(); + if (isAccessor(inErrorRecovery)) { + return parseAccessor(modifiers); } // Note: we don't want to call parsePropertyName here yet as it will convert a keyword @@ -3616,36 +3617,26 @@ module TypeScript.Parser { // shorthand property assignment. var _currentToken = currentToken(); - if (_currentToken.kind === SyntaxKind.AsyncKeyword) { - // 'async' might start an asynchronous property, or it might just be the name - // of a property. - var token1 = peekToken(1); - if (!token1.hasLeadingNewLine()) { - if (token1.kind === SyntaxKind.AsteriskToken || isPropertyName(/*peekIndex:*/ 1, inErrorRecovery)) { - return parseMemberFunctionDeclaration( - Syntax.list([eatToken(SyntaxKind.AsyncKeyword)]), tryEatToken(SyntaxKind.AsteriskToken), parsePropertyName()); + if (modifiers.length === 0) { + if (isIdentifier(_currentToken)) { + var token1 = peekToken(1); + if (token1.kind !== SyntaxKind.ColonToken && + token1.kind !== SyntaxKind.OpenParenToken && + token1.kind !== SyntaxKind.LessThanToken) { + + // If we don't have one of: + // + // id: + // id( + // id< + // + // then this is a shorthand property assignment. Just return the identifier + // token as is. + return eatIdentifierToken(); } } } - if (isIdentifier(_currentToken)) { - var token1 = peekToken(1); - if (token1.kind !== SyntaxKind.ColonToken && - token1.kind !== SyntaxKind.OpenParenToken && - token1.kind !== SyntaxKind.LessThanToken) { - - // If we don't have one of: - // - // id: - // id( - // id< - // - // then this is a shorthand property assignment. Just return the identifier - // token as is. - return eatIdentifierToken(); - } - } - // All the rest of the property assignments start with property names, an asterix. // They are: // id: e @@ -3656,12 +3647,12 @@ module TypeScript.Parser { // *[e]() { } // async id() { } // async [e]() { } - if (_currentToken.kind === SyntaxKind.AsteriskToken || isPropertyName(/*peekIndex:*/ 0, inErrorRecovery)) { + if (modifiers.length > 0 || _currentToken.kind === SyntaxKind.AsteriskToken || isPropertyName(/*peekIndex:*/ 0, inErrorRecovery)) { var asterixToken = tryEatToken(SyntaxKind.AsteriskToken); var propertyName = parsePropertyName(); - if (asterixToken !== undefined || isCallSignature(/*peekIndex:*/ 0)) { - return parseMemberFunctionDeclaration([], asterixToken, propertyName); + if (modifiers.length > 0 || asterixToken !== undefined || isCallSignature(/*peekIndex:*/ 0)) { + return parseMemberFunctionDeclaration(modifiers, asterixToken, propertyName); } else { // PropertyName[?Yield] : AssignmentExpression[In, ?Yield] @@ -3683,7 +3674,9 @@ module TypeScript.Parser { } function isPropertyAssignment(inErrorRecovery: boolean): boolean { - return isAccessor(modifierCount(), inErrorRecovery) || + var _modifierCount = modifierCount(); + return _modifierCount > 0 || + isAccessor(inErrorRecovery) || currentToken().kind === SyntaxKind.AsteriskToken || isPropertyName(/*peekIndex:*/ 0, inErrorRecovery); } From ac5d670d7c7a8893916c9684b9cf624efdc6988c Mon Sep 17 00:00:00 2001 From: Cyrus Najmabadi Date: Tue, 25 Nov 2014 21:44:37 -0800 Subject: [PATCH 082/195] Simplify parsing. --- src/services/syntax/parser.ts | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/src/services/syntax/parser.ts b/src/services/syntax/parser.ts index 467b12056dd..52b6f4c0e52 100644 --- a/src/services/syntax/parser.ts +++ b/src/services/syntax/parser.ts @@ -1092,11 +1092,11 @@ module TypeScript.Parser { return false; } - function isModifier(token: ISyntaxToken, index: number): boolean { + function isModifier(token: ISyntaxToken, peekIndex: number): boolean { if (isModifierKind(token.kind)) { // Because modifiers are also identifiers, we only want to consider something to // be truly a modifier if the thing following it is something that can be modified. - var nextToken = peekToken(index + 1); + var nextToken = peekToken(peekIndex + 1); if (token.kind === SyntaxKind.AsyncKeyword) { // In order for async to be modifier, the next token must be on the same line. @@ -1141,6 +1141,10 @@ module TypeScript.Parser { return false; } + function isAtModifier(): boolean { + return isModifier(currentToken(), /*peekIndex:*/ 0); + } + function modifierCount(): number { var modifierCount = 0; while (isModifier(peekToken(modifierCount), modifierCount)) { @@ -1263,10 +1267,7 @@ module TypeScript.Parser { return true; } - // Note: the order of these calls is important. Specifically, isMemberVariableDeclaration - // checks for a subset of the conditions of the previous two calls. - var _modifierCount = modifierCount(); - return _modifierCount > 0 || + return isAtModifier() || isConstructorDeclaration() || isAccessor(inErrorRecovery) || isIndexMemberDeclaration() || @@ -3674,8 +3675,7 @@ module TypeScript.Parser { } function isPropertyAssignment(inErrorRecovery: boolean): boolean { - var _modifierCount = modifierCount(); - return _modifierCount > 0 || + return isAtModifier() || isAccessor(inErrorRecovery) || currentToken().kind === SyntaxKind.AsteriskToken || isPropertyName(/*peekIndex:*/ 0, inErrorRecovery); From 480020e1d6d1f87caab6512d4fabd4405c243946 Mon Sep 17 00:00:00 2001 From: Cyrus Najmabadi Date: Tue, 25 Nov 2014 23:17:02 -0800 Subject: [PATCH 083/195] Allow modifiers on an Export Assignment node. Conflicts: src/services/syntax/SyntaxGenerator.js.map --- src/services/syntax/SyntaxGenerator.js | 1 + src/services/syntax/SyntaxGenerator.js.map | 4 ++++ src/services/syntax/parser.ts | 7 ++++++- src/services/syntax/syntaxGenerator.ts | 1 + src/services/syntax/syntaxInterfaces.generated.ts | 3 ++- .../syntax/syntaxNodes.concrete.generated.ts | 15 +++++++++------ src/services/syntax/syntaxTree.ts | 9 +++++++++ src/services/syntax/syntaxWalker.generated.ts | 1 + 8 files changed, 33 insertions(+), 8 deletions(-) diff --git a/src/services/syntax/SyntaxGenerator.js b/src/services/syntax/SyntaxGenerator.js index 14b1242fd52..29f94baa41f 100644 --- a/src/services/syntax/SyntaxGenerator.js +++ b/src/services/syntax/SyntaxGenerator.js @@ -951,6 +951,7 @@ var definitions = [ baseType: 'ISyntaxNode', interfaces: ['IModuleElementSyntax'], children: [ + { name: 'modifiers', isList: true, elementType: 'ISyntaxToken' }, { name: 'exportKeyword', isToken: true, excludeFromAST: true }, { name: 'equalsToken', isToken: true, excludeFromAST: true }, { name: 'identifier', isToken: true }, diff --git a/src/services/syntax/SyntaxGenerator.js.map b/src/services/syntax/SyntaxGenerator.js.map index b1e3863844e..d53116de107 100644 --- a/src/services/syntax/SyntaxGenerator.js.map +++ b/src/services/syntax/SyntaxGenerator.js.map @@ -13,6 +13,7 @@ <<<<<<< HEAD <<<<<<< HEAD <<<<<<< HEAD +<<<<<<< HEAD <<<<<<< Updated upstream {"version":3,"file":"SyntaxGenerator.js","sourceRoot":"","sources":["file:///C:/VSPro_1/src/typescript/public_cyrusn/src/compiler/sys.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/core/errors.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/core/arrayUtilities.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/core/stringUtilities.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/syntax/syntaxKind.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/syntax/syntaxFacts.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/syntax/SyntaxGenerator.ts"],"names":["getWScriptSystem","getWScriptSystem.readFile","getWScriptSystem.writeFile","getNodeSystem","getNodeSystem.readFile","getNodeSystem.writeFile","getNodeSystem.fileChanged","TypeScript","TypeScript.Errors","TypeScript.Errors.constructor","TypeScript.Errors.argument","TypeScript.Errors.argumentOutOfRange","TypeScript.Errors.argumentNull","TypeScript.Errors.abstract","TypeScript.Errors.notYetImplemented","TypeScript.Errors.invalidOperation","TypeScript.ArrayUtilities","TypeScript.ArrayUtilities.constructor","TypeScript.ArrayUtilities.sequenceEquals","TypeScript.ArrayUtilities.contains","TypeScript.ArrayUtilities.distinct","TypeScript.ArrayUtilities.last","TypeScript.ArrayUtilities.lastOrDefault","TypeScript.ArrayUtilities.firstOrDefault","TypeScript.ArrayUtilities.first","TypeScript.ArrayUtilities.sum","TypeScript.ArrayUtilities.select","TypeScript.ArrayUtilities.where","TypeScript.ArrayUtilities.any","TypeScript.ArrayUtilities.all","TypeScript.ArrayUtilities.binarySearch","TypeScript.ArrayUtilities.createArray","TypeScript.ArrayUtilities.grow","TypeScript.ArrayUtilities.copy","TypeScript.ArrayUtilities.indexOf","TypeScript.StringUtilities","TypeScript.StringUtilities.constructor","TypeScript.StringUtilities.isString","TypeScript.StringUtilities.endsWith","TypeScript.StringUtilities.startsWith","TypeScript.StringUtilities.repeat","TypeScript.SyntaxKind","TypeScript.SyntaxFacts","TypeScript.SyntaxFacts.getTokenKind","TypeScript.SyntaxFacts.getText","TypeScript.SyntaxFacts.isAnyKeyword","TypeScript.SyntaxFacts.isAnyPunctuation","TypeScript.SyntaxFacts.isPrefixUnaryExpressionOperatorToken","TypeScript.SyntaxFacts.isBinaryExpressionOperatorToken","TypeScript.SyntaxFacts.isAssignmentOperatorToken","TypeScript.SyntaxFacts.isType","firstKind","getStringWithoutSuffix","getNameWithoutSuffix","getType","camelCase","getSafeName","generateConstructorFunction","generateSyntaxInterfaces","generateSyntaxInterface","generateNodes","isInterface","generateWalker","firstEnumName","groupBy","generateKeywordCondition","min","max","generateUtilities","generateScannerUtilities","syntaxKindName","generateVisitor"],"mappings":"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"} ======= @@ -63,3 +64,6 @@ ======= {"version":3,"file":"SyntaxGenerator.js","sourceRoot":"","sources":["file:///C:/VSPro_1/src/typescript/public_cyrusn/src/compiler/sys.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/core/errors.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/core/arrayUtilities.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/core/stringUtilities.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/syntax/syntaxKind.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/syntax/syntaxFacts.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/syntax/SyntaxGenerator.ts"],"names":["getWScriptSystem","getWScriptSystem.readFile","getWScriptSystem.writeFile","getNodeSystem","getNodeSystem.readFile","getNodeSystem.writeFile","getNodeSystem.fileChanged","TypeScript","TypeScript.Errors","TypeScript.Errors.constructor","TypeScript.Errors.argument","TypeScript.Errors.argumentOutOfRange","TypeScript.Errors.argumentNull","TypeScript.Errors.abstract","TypeScript.Errors.notYetImplemented","TypeScript.Errors.invalidOperation","TypeScript.ArrayUtilities","TypeScript.ArrayUtilities.constructor","TypeScript.ArrayUtilities.sequenceEquals","TypeScript.ArrayUtilities.contains","TypeScript.ArrayUtilities.distinct","TypeScript.ArrayUtilities.last","TypeScript.ArrayUtilities.lastOrDefault","TypeScript.ArrayUtilities.firstOrDefault","TypeScript.ArrayUtilities.first","TypeScript.ArrayUtilities.sum","TypeScript.ArrayUtilities.select","TypeScript.ArrayUtilities.where","TypeScript.ArrayUtilities.any","TypeScript.ArrayUtilities.all","TypeScript.ArrayUtilities.binarySearch","TypeScript.ArrayUtilities.createArray","TypeScript.ArrayUtilities.grow","TypeScript.ArrayUtilities.copy","TypeScript.ArrayUtilities.indexOf","TypeScript.StringUtilities","TypeScript.StringUtilities.constructor","TypeScript.StringUtilities.isString","TypeScript.StringUtilities.endsWith","TypeScript.StringUtilities.startsWith","TypeScript.StringUtilities.repeat","TypeScript.SyntaxKind","TypeScript.SyntaxFacts","TypeScript.SyntaxFacts.getTokenKind","TypeScript.SyntaxFacts.getText","TypeScript.SyntaxFacts.isAnyKeyword","TypeScript.SyntaxFacts.isAnyPunctuation","TypeScript.SyntaxFacts.isPrefixUnaryExpressionOperatorToken","TypeScript.SyntaxFacts.isBinaryExpressionOperatorToken","TypeScript.SyntaxFacts.isAssignmentOperatorToken","TypeScript.SyntaxFacts.isType","firstKind","getStringWithoutSuffix","getNameWithoutSuffix","getType","camelCase","getSafeName","generateConstructorFunction","generateSyntaxInterfaces","generateSyntaxInterface","generateNodes","isInterface","generateWalker","firstEnumName","groupBy","generateKeywordCondition","min","max","generateUtilities","generateScannerUtilities","syntaxKindName","generateVisitor"],"mappings":"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"} >>>>>>> 9a2e8e3... Rename SimplePropertyAssignment to PropertyAssignment. +======= +{"version":3,"file":"SyntaxGenerator.js","sourceRoot":"","sources":["file:///C:/VSPro_1/src/typescript/public_cyrusn/src/compiler/sys.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/core/errors.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/core/arrayUtilities.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/core/stringUtilities.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/syntax/syntaxKind.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/syntax/syntaxFacts.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/syntax/SyntaxGenerator.ts"],"names":["getWScriptSystem","getWScriptSystem.readFile","getWScriptSystem.writeFile","getNodeSystem","getNodeSystem.readFile","getNodeSystem.writeFile","getNodeSystem.fileChanged","TypeScript","TypeScript.Errors","TypeScript.Errors.constructor","TypeScript.Errors.argument","TypeScript.Errors.argumentOutOfRange","TypeScript.Errors.argumentNull","TypeScript.Errors.abstract","TypeScript.Errors.notYetImplemented","TypeScript.Errors.invalidOperation","TypeScript.ArrayUtilities","TypeScript.ArrayUtilities.constructor","TypeScript.ArrayUtilities.sequenceEquals","TypeScript.ArrayUtilities.contains","TypeScript.ArrayUtilities.distinct","TypeScript.ArrayUtilities.last","TypeScript.ArrayUtilities.lastOrDefault","TypeScript.ArrayUtilities.firstOrDefault","TypeScript.ArrayUtilities.first","TypeScript.ArrayUtilities.sum","TypeScript.ArrayUtilities.select","TypeScript.ArrayUtilities.where","TypeScript.ArrayUtilities.any","TypeScript.ArrayUtilities.all","TypeScript.ArrayUtilities.binarySearch","TypeScript.ArrayUtilities.createArray","TypeScript.ArrayUtilities.grow","TypeScript.ArrayUtilities.copy","TypeScript.ArrayUtilities.indexOf","TypeScript.StringUtilities","TypeScript.StringUtilities.constructor","TypeScript.StringUtilities.isString","TypeScript.StringUtilities.endsWith","TypeScript.StringUtilities.startsWith","TypeScript.StringUtilities.repeat","TypeScript.SyntaxKind","TypeScript.SyntaxFacts","TypeScript.SyntaxFacts.getTokenKind","TypeScript.SyntaxFacts.getText","TypeScript.SyntaxFacts.isAnyKeyword","TypeScript.SyntaxFacts.isAnyPunctuation","TypeScript.SyntaxFacts.isPrefixUnaryExpressionOperatorToken","TypeScript.SyntaxFacts.isBinaryExpressionOperatorToken","TypeScript.SyntaxFacts.isAssignmentOperatorToken","TypeScript.SyntaxFacts.isType","firstKind","getStringWithoutSuffix","getNameWithoutSuffix","getType","camelCase","getSafeName","generateConstructorFunction","generateSyntaxInterfaces","generateSyntaxInterface","generateNodes","isInterface","generateWalker","firstEnumName","groupBy","generateKeywordCondition","min","max","generateUtilities","generateScannerUtilities","syntaxKindName","generateVisitor"],"mappings":"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"} +>>>>>>> 2e3c262... Allow modifiers on an Export Assignment node. diff --git a/src/services/syntax/parser.ts b/src/services/syntax/parser.ts index 52b6f4c0e52..29301fdf0b3 100644 --- a/src/services/syntax/parser.ts +++ b/src/services/syntax/parser.ts @@ -821,6 +821,7 @@ module TypeScript.Parser { case SyntaxKind.InterfaceKeyword: return parseInterfaceDeclaration(); case SyntaxKind.ClassKeyword: return parseClassDeclaration(); case SyntaxKind.EnumKeyword: return parseEnumDeclaration(); + case SyntaxKind.ExportKeyword: return parseExportAssignment(); } } @@ -882,7 +883,11 @@ module TypeScript.Parser { function parseExportAssignment(): ExportAssignmentSyntax { return new ExportAssignmentSyntax(contextFlags, - eatToken(SyntaxKind.ExportKeyword), eatToken(SyntaxKind.EqualsToken), eatIdentifierToken(), eatExplicitOrAutomaticSemicolon(/*allowWithoutNewline:*/ false)); + parseModifiers(), + eatToken(SyntaxKind.ExportKeyword), + eatToken(SyntaxKind.EqualsToken), + eatIdentifierToken(), + eatExplicitOrAutomaticSemicolon(/*allowWithoutNewline:*/ false)); } function parseModuleReference(): IModuleReferenceSyntax { diff --git a/src/services/syntax/syntaxGenerator.ts b/src/services/syntax/syntaxGenerator.ts index db2fc41ef35..c3fccb79ba9 100644 --- a/src/services/syntax/syntaxGenerator.ts +++ b/src/services/syntax/syntaxGenerator.ts @@ -90,6 +90,7 @@ var definitions:ITypeDefinition[] = [ baseType: 'ISyntaxNode', interfaces: ['IModuleElementSyntax'], children: [ + { name: 'modifiers', isList: true, elementType: 'ISyntaxToken' }, { name: 'exportKeyword', isToken: true, excludeFromAST: true }, { name: 'equalsToken', isToken: true, excludeFromAST: true }, { name: 'identifier', isToken: true }, diff --git a/src/services/syntax/syntaxInterfaces.generated.ts b/src/services/syntax/syntaxInterfaces.generated.ts index d71521ab8a6..ee7cfe41d5b 100644 --- a/src/services/syntax/syntaxInterfaces.generated.ts +++ b/src/services/syntax/syntaxInterfaces.generated.ts @@ -142,12 +142,13 @@ module TypeScript { export interface ImportDeclarationConstructor { new (data: number, modifiers: ISyntaxToken[], importKeyword: ISyntaxToken, identifier: ISyntaxToken, equalsToken: ISyntaxToken, moduleReference: IModuleReferenceSyntax, semicolonToken: ISyntaxToken): ImportDeclarationSyntax } export interface ExportAssignmentSyntax extends ISyntaxNode, IModuleElementSyntax { + modifiers: ISyntaxToken[]; exportKeyword: ISyntaxToken; equalsToken: ISyntaxToken; identifier: ISyntaxToken; semicolonToken: ISyntaxToken; } - export interface ExportAssignmentConstructor { new (data: number, exportKeyword: ISyntaxToken, equalsToken: ISyntaxToken, identifier: ISyntaxToken, semicolonToken: ISyntaxToken): ExportAssignmentSyntax } + export interface ExportAssignmentConstructor { new (data: number, modifiers: ISyntaxToken[], exportKeyword: ISyntaxToken, equalsToken: ISyntaxToken, identifier: ISyntaxToken, semicolonToken: ISyntaxToken): ExportAssignmentSyntax } export interface MemberFunctionDeclarationSyntax extends ISyntaxNode, IMemberDeclarationSyntax, IPropertyAssignmentSyntax { modifiers: ISyntaxToken[]; diff --git a/src/services/syntax/syntaxNodes.concrete.generated.ts b/src/services/syntax/syntaxNodes.concrete.generated.ts index f8a352a4966..59136093529 100644 --- a/src/services/syntax/syntaxNodes.concrete.generated.ts +++ b/src/services/syntax/syntaxNodes.concrete.generated.ts @@ -384,25 +384,28 @@ module TypeScript { } } - export var ExportAssignmentSyntax: ExportAssignmentConstructor = function(data: number, exportKeyword: ISyntaxToken, equalsToken: ISyntaxToken, identifier: ISyntaxToken, semicolonToken: ISyntaxToken) { + export var ExportAssignmentSyntax: ExportAssignmentConstructor = function(data: number, modifiers: ISyntaxToken[], exportKeyword: ISyntaxToken, equalsToken: ISyntaxToken, identifier: ISyntaxToken, semicolonToken: ISyntaxToken) { if (data) { this.__data = data; } + this.modifiers = modifiers, this.exportKeyword = exportKeyword, this.equalsToken = equalsToken, this.identifier = identifier, this.semicolonToken = semicolonToken, + modifiers.parent = this, exportKeyword.parent = this, equalsToken.parent = this, identifier.parent = this, semicolonToken && (semicolonToken.parent = this); }; ExportAssignmentSyntax.prototype.kind = SyntaxKind.ExportAssignment; - ExportAssignmentSyntax.prototype.childCount = 4; + ExportAssignmentSyntax.prototype.childCount = 5; ExportAssignmentSyntax.prototype.childAt = function(index: number): ISyntaxElement { switch (index) { - case 0: return this.exportKeyword; - case 1: return this.equalsToken; - case 2: return this.identifier; - case 3: return this.semicolonToken; + case 0: return this.modifiers; + case 1: return this.exportKeyword; + case 2: return this.equalsToken; + case 3: return this.identifier; + case 4: return this.semicolonToken; } } diff --git a/src/services/syntax/syntaxTree.ts b/src/services/syntax/syntaxTree.ts index 60d104bf5f5..5e56adee8ed 100644 --- a/src/services/syntax/syntaxTree.ts +++ b/src/services/syntax/syntaxTree.ts @@ -1054,6 +1054,15 @@ module TypeScript { return false; } + public visitExportAssignment(node: ExportAssignmentSyntax): void { + if (node.modifiers.length > 0) { + this.pushDiagnostic(node.modifiers[0], DiagnosticCode.Modifiers_cannot_appear_here); + return; + } + + super.visitExportAssignment(node); + } + public visitExpressionBody(node: ExpressionBody): void { // These are always errors. So no need to ever recurse on them. this.pushDiagnostic(node.equalsGreaterThanToken, DiagnosticCode._0_expected, ["{"]); diff --git a/src/services/syntax/syntaxWalker.generated.ts b/src/services/syntax/syntaxWalker.generated.ts index ff7cfcd618f..7a1796ae9a5 100644 --- a/src/services/syntax/syntaxWalker.generated.ts +++ b/src/services/syntax/syntaxWalker.generated.ts @@ -142,6 +142,7 @@ module TypeScript { } public visitExportAssignment(node: ExportAssignmentSyntax): void { + this.visitList(node.modifiers); this.visitToken(node.exportKeyword); this.visitToken(node.equalsToken); this.visitToken(node.identifier); From 01ce9f8cc8f3c8f4bc0eea903f31e58b777a8e6d Mon Sep 17 00:00:00 2001 From: Cyrus Najmabadi Date: Tue, 25 Nov 2014 23:38:40 -0800 Subject: [PATCH 084/195] Add appropriate switch case. --- src/services/syntax/parser.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/src/services/syntax/parser.ts b/src/services/syntax/parser.ts index 29301fdf0b3..ebd1e5eb599 100644 --- a/src/services/syntax/parser.ts +++ b/src/services/syntax/parser.ts @@ -1705,6 +1705,7 @@ module TypeScript.Parser { case SyntaxKind.InterfaceKeyword: case SyntaxKind.ClassKeyword: case SyntaxKind.EnumKeyword: + case SyntaxKind.ExportKeyword: return true; } } From 1ac2f818b3e4ae02c10727d56ebde778c7604dd7 Mon Sep 17 00:00:00 2001 From: Cyrus Najmabadi Date: Wed, 26 Nov 2014 00:15:25 -0800 Subject: [PATCH 085/195] Simplify syntaxtree. --- src/services/syntax/syntaxTree.ts | 268 ++++++++---------------------- 1 file changed, 73 insertions(+), 195 deletions(-) diff --git a/src/services/syntax/syntaxTree.ts b/src/services/syntax/syntaxTree.ts index 5e56adee8ed..8da347144b1 100644 --- a/src/services/syntax/syntaxTree.ts +++ b/src/services/syntax/syntaxTree.ts @@ -158,8 +158,7 @@ module TypeScript { private checkForCatchClauseTypeAnnotation(node: CatchClauseSyntax): boolean { if (node.typeAnnotation) { - this.pushDiagnostic(node.typeAnnotation.colonToken, DiagnosticCode.Catch_clause_parameter_cannot_have_a_type_annotation); - return true; + return this.pushDiagnostic(node.typeAnnotation.colonToken, DiagnosticCode.Catch_clause_parameter_cannot_have_a_type_annotation); } return false; @@ -174,32 +173,27 @@ module TypeScript { if (parameter.dotDotDotToken) { if (i !== (parameterCount - 1)) { - this.pushDiagnostic(parameter, DiagnosticCode.A_rest_parameter_must_be_last_in_a_parameter_list); - return true; + return this.pushDiagnostic(parameter, DiagnosticCode.A_rest_parameter_must_be_last_in_a_parameter_list); } if (parameter.questionToken) { - this.pushDiagnostic(parameter, DiagnosticCode.A_rest_parameter_cannot_be_optional); - return true; + return this.pushDiagnostic(parameter, DiagnosticCode.A_rest_parameter_cannot_be_optional); } if (parameter.equalsValueClause) { - this.pushDiagnostic(parameter, DiagnosticCode.A_rest_parameter_cannot_have_an_initializer); - return true; + return this.pushDiagnostic(parameter, DiagnosticCode.A_rest_parameter_cannot_have_an_initializer); } } else if (parameter.questionToken || parameter.equalsValueClause) { seenOptionalParameter = true; if (parameter.questionToken && parameter.equalsValueClause) { - this.pushDiagnostic(parameter, DiagnosticCode.Parameter_cannot_have_question_mark_and_initializer); - return true; + return this.pushDiagnostic(parameter, DiagnosticCode.Parameter_cannot_have_question_mark_and_initializer); } } else { if (seenOptionalParameter) { - this.pushDiagnostic(parameter, DiagnosticCode.A_required_parameter_cannot_follow_an_optional_parameter); - return true; + return this.pushDiagnostic(parameter, DiagnosticCode.A_required_parameter_cannot_follow_an_optional_parameter); } } } @@ -225,13 +219,11 @@ module TypeScript { private checkParameterAccessibilityModifier(modifier: ISyntaxToken, modifierIndex: number): boolean { if (!SyntaxFacts.isAccessibilityModifier(modifier.kind)) { - this.pushDiagnostic(modifier, DiagnosticCode._0_modifier_cannot_appear_on_a_parameter, [modifier.text()]); - return true; + return this.pushDiagnostic(modifier, DiagnosticCode._0_modifier_cannot_appear_on_a_parameter, [modifier.text()]); } else { if (modifierIndex > 0) { - this.pushDiagnostic(modifier, DiagnosticCode.Accessibility_modifier_already_seen); - return true; + return this.pushDiagnostic(modifier, DiagnosticCode.Accessibility_modifier_already_seen); } } @@ -246,9 +238,7 @@ module TypeScript { } var child = list[list.length - 1]; - this.pushDiagnostic(child, DiagnosticCode.Trailing_comma_not_allowed); - - return true; + return this.pushDiagnostic(child, DiagnosticCode.Trailing_comma_not_allowed); } private checkForAtLeastOneElement(list: ISyntaxNodeOrToken[], reportToken: ISyntaxToken, listKind: string): boolean { @@ -256,8 +246,7 @@ module TypeScript { return false; } - this.pushDiagnostic(reportToken, DiagnosticCode._0_list_cannot_be_empty, [listKind]); - return true; + return this.pushDiagnostic(reportToken, DiagnosticCode._0_list_cannot_be_empty, [listKind]); } public visitParameterList(node: ParameterListSyntax): void { @@ -325,37 +314,26 @@ module TypeScript { private checkIndexSignatureParameter(node: IndexSignatureSyntax): boolean { if (node.parameters.length !== 1) { - this.pushDiagnostic(node.openBracketToken, DiagnosticCode.Index_signature_must_have_exactly_one_parameter); - return true; + return this.pushDiagnostic(node.openBracketToken, DiagnosticCode.Index_signature_must_have_exactly_one_parameter); } var parameter = nonSeparatorAt(node.parameters, 0); if (parameter.dotDotDotToken) { - this.pushDiagnostic(parameter, DiagnosticCode.Index_signatures_cannot_have_rest_parameters); - return true; + return this.pushDiagnostic(parameter, DiagnosticCode.Index_signatures_cannot_have_rest_parameters); } else if (parameter.modifiers.length > 0) { - this.pushDiagnostic(parameter, DiagnosticCode.Index_signature_parameter_cannot_have_modifiers); - return true; + return this.pushDiagnostic(parameter, DiagnosticCode.Index_signature_parameter_cannot_have_modifiers); } else if (parameter.questionToken) { - this.pushDiagnostic(parameter, DiagnosticCode.Index_signature_parameter_cannot_have_a_question_mark); - return true; - } + return this.pushDiagnostic(parameter, DiagnosticCode.Index_signature_parameter_cannot_have_a_question_mark); } else if (parameter.equalsValueClause) { - this.pushDiagnostic(parameter, DiagnosticCode.Index_signature_parameter_cannot_have_an_initializer); - return true; - } + return this.pushDiagnostic(parameter, DiagnosticCode.Index_signature_parameter_cannot_have_an_initializer); } else if (!parameter.typeAnnotation) { - this.pushDiagnostic(parameter, DiagnosticCode.Index_signature_parameter_must_have_a_type_annotation); - return true; - } + return this.pushDiagnostic(parameter, DiagnosticCode.Index_signature_parameter_must_have_a_type_annotation); } else if (parameter.typeAnnotation.type.kind !== SyntaxKind.StringKeyword && parameter.typeAnnotation.type.kind !== SyntaxKind.NumberKeyword) { - this.pushDiagnostic(parameter, DiagnosticCode.Index_signature_parameter_type_must_be_string_or_number); - return true; - } + return this.pushDiagnostic(parameter, DiagnosticCode.Index_signature_parameter_type_must_be_string_or_number); } return false; } @@ -383,28 +361,20 @@ module TypeScript { if (heritageClause.extendsOrImplementsKeyword.kind === SyntaxKind.ExtendsKeyword) { if (seenExtendsClause) { - this.pushDiagnostic(heritageClause, DiagnosticCode.extends_clause_already_seen); - return true; - } + return this.pushDiagnostic(heritageClause, DiagnosticCode.extends_clause_already_seen); } if (seenImplementsClause) { - this.pushDiagnostic(heritageClause, DiagnosticCode.extends_clause_must_precede_implements_clause); - return true; - } + return this.pushDiagnostic(heritageClause, DiagnosticCode.extends_clause_must_precede_implements_clause); } if (nonSeparatorCount(heritageClause.typeNames) > 1) { - this.pushDiagnostic(heritageClause, DiagnosticCode.Classes_can_only_extend_a_single_class); - return true; - } + return this.pushDiagnostic(heritageClause, DiagnosticCode.Classes_can_only_extend_a_single_class); } seenExtendsClause = true; } else { Debug.assert(heritageClause.extendsOrImplementsKeyword.kind === SyntaxKind.ImplementsKeyword); if (seenImplementsClause) { - this.pushDiagnostic(heritageClause, DiagnosticCode.implements_clause_already_seen); - return true; - } + return this.pushDiagnostic(heritageClause, DiagnosticCode.implements_clause_already_seen); } seenImplementsClause = true; } @@ -419,9 +389,7 @@ module TypeScript { var declareToken = SyntaxUtilities.getToken(modifiers, SyntaxKind.DeclareKeyword); if (declareToken) { - this.pushDiagnostic(declareToken, DiagnosticCode.A_declare_modifier_cannot_be_used_in_an_already_ambient_context); - return true; - } + return this.pushDiagnostic(declareToken, DiagnosticCode.A_declare_modifier_cannot_be_used_in_an_already_ambient_context); } } return false; @@ -432,9 +400,7 @@ module TypeScript { // We're at the top level in a declaration file, a 'declare' modifiers is required // on most module elements. if (!SyntaxUtilities.containsToken(modifiers, SyntaxKind.DeclareKeyword)) { - this.pushDiagnostic(reportToken, DiagnosticCode.A_declare_modifier_is_required_for_a_top_level_declaration_in_a_d_ts_file); - return true; - } + return this.pushDiagnostic(reportToken, DiagnosticCode.A_declare_modifier_is_required_for_a_top_level_declaration_in_a_d_ts_file); } } } @@ -463,17 +429,13 @@ module TypeScript { if (heritageClause.extendsOrImplementsKeyword.kind === SyntaxKind.ExtendsKeyword) { if (seenExtendsClause) { - this.pushDiagnostic(heritageClause, DiagnosticCode.extends_clause_already_seen); - return true; - } + return this.pushDiagnostic(heritageClause, DiagnosticCode.extends_clause_already_seen); } seenExtendsClause = true; } else { Debug.assert(heritageClause.extendsOrImplementsKeyword.kind === SyntaxKind.ImplementsKeyword); - this.pushDiagnostic(heritageClause, DiagnosticCode.Interface_declaration_cannot_have_implements_clause); - return true; - } + return this.pushDiagnostic(heritageClause, DiagnosticCode.Interface_declaration_cannot_have_implements_clause); } } return false; @@ -483,9 +445,7 @@ module TypeScript { for (var i = 0, n = modifiers.length; i < n; i++) { var modifier = modifiers[i]; if (modifier.kind === SyntaxKind.DeclareKeyword) { - this.pushDiagnostic(modifier, - DiagnosticCode.A_declare_modifier_cannot_be_used_with_an_interface_declaration); - return true; + return this.pushDiagnostic(modifier, DiagnosticCode.A_declare_modifier_cannot_be_used_with_an_interface_declaration); } } @@ -619,9 +579,7 @@ module TypeScript { private checkGetAccessorParameter(node: GetAccessorSyntax): boolean { if (node.callSignature.parameterList.parameters.length !== 0) { - this.pushDiagnostic(node.propertyName, DiagnosticCode.get_accessor_cannot_have_parameters); - return true; - } + return this.pushDiagnostic(node.propertyName, DiagnosticCode.get_accessor_cannot_have_parameters); } return false; } @@ -636,18 +594,14 @@ module TypeScript { private checkIndexMemberModifiers(node: IndexMemberDeclarationSyntax): boolean { if (node.modifiers.length > 0) { - this.pushDiagnostic(node.modifiers[0], DiagnosticCode.Modifiers_cannot_appear_here); - return true; - } + return this.pushDiagnostic(node.modifiers[0], DiagnosticCode.Modifiers_cannot_appear_here); } return false; } private checkEcmaScriptVersionIsAtLeast(reportToken: ISyntaxToken, languageVersion: ts.ScriptTarget, diagnosticKey: string): boolean { if (this.syntaxTree.languageVersion() < languageVersion) { - this.pushDiagnostic(reportToken, diagnosticKey); - return true; - } + return this.pushDiagnostic(reportToken, diagnosticKey); } return false; } @@ -677,40 +631,30 @@ module TypeScript { private checkForSemicolonInsteadOfBlock(parent: ISyntaxNode, node: BlockSyntax | ExpressionBody | ISyntaxToken): boolean { if (node === undefined) { - this.pushDiagnosticAt(fullEnd(parent), 0, DiagnosticCode._0_expected, ["{"]); - return true; - } + return this.pushDiagnosticAt(fullEnd(parent), 0, DiagnosticCode._0_expected, ["{"]); } else if (node.kind === SyntaxKind.SemicolonToken) { - this.pushDiagnostic(node, DiagnosticCode._0_expected, ["{"]); - return true; - } + return this.pushDiagnostic(node, DiagnosticCode._0_expected, ["{"]); } return false; } private checkForDisallowedSetAccessorTypeAnnotation(accessor: SetAccessorSyntax): boolean { if (accessor.callSignature.typeAnnotation) { - this.pushDiagnostic(accessor.callSignature.typeAnnotation, DiagnosticCode.Type_annotation_cannot_appear_on_a_set_accessor); - return true; - } + return this.pushDiagnostic(accessor.callSignature.typeAnnotation, DiagnosticCode.Type_annotation_cannot_appear_on_a_set_accessor); } return false; } private checkForDisallowedAccessorTypeParameters(callSignature: CallSignatureSyntax): boolean { if (callSignature.typeParameterList) { - this.pushDiagnostic(callSignature.typeParameterList, DiagnosticCode.Type_parameters_cannot_appear_on_an_accessor); - return true; - } + return this.pushDiagnostic(callSignature.typeParameterList, DiagnosticCode.Type_parameters_cannot_appear_on_an_accessor); } return false; } private checkForAccessorDeclarationInAmbientContext(accessor: ISyntaxNode): boolean { if (this.inAmbientDeclaration) { - this.pushDiagnostic(accessor, DiagnosticCode.Accessors_are_not_allowed_in_ambient_contexts); - return true; - } + return this.pushDiagnostic(accessor, DiagnosticCode.Accessors_are_not_allowed_in_ambient_contexts); } return false; } @@ -718,26 +662,18 @@ module TypeScript { private checkSetAccessorParameter(node: SetAccessorSyntax): boolean { var parameters = node.callSignature.parameterList.parameters; if (nonSeparatorCount(parameters) !== 1) { - this.pushDiagnostic(node.propertyName, DiagnosticCode.set_accessor_must_have_exactly_one_parameter); - return true; - } + return this.pushDiagnostic(node.propertyName, DiagnosticCode.set_accessor_must_have_exactly_one_parameter); } var parameter = nonSeparatorAt(parameters, 0); if (parameter.questionToken) { - this.pushDiagnostic(parameter, DiagnosticCode.set_accessor_parameter_cannot_be_optional); - return true; - } + return this.pushDiagnostic(parameter, DiagnosticCode.set_accessor_parameter_cannot_be_optional); } if (parameter.equalsValueClause) { - this.pushDiagnostic(parameter, DiagnosticCode.set_accessor_parameter_cannot_have_an_initializer); - return true; - } + return this.pushDiagnostic(parameter, DiagnosticCode.set_accessor_parameter_cannot_have_an_initializer); } if (parameter.dotDotDotToken) { - this.pushDiagnostic(parameter, DiagnosticCode.set_accessor_cannot_have_rest_parameter); - return true; - } + return this.pushDiagnostic(parameter, DiagnosticCode.set_accessor_cannot_have_rest_parameter); } return false; } @@ -800,13 +736,11 @@ module TypeScript { // new Foo[] var start = TypeScript.start(node.openBracketToken); var end = TypeScript.fullEnd(node.closeBracketToken); - this.pushDiagnosticAt(start, end - start, DiagnosticCode.new_T_cannot_be_used_to_create_an_array_Use_new_Array_T_instead); + return this.pushDiagnosticAt(start, end - start, DiagnosticCode.new_T_cannot_be_used_to_create_an_array_Use_new_Array_T_instead); } else { - this.pushDiagnostic(node.closeBracketToken, DiagnosticCode.Expression_expected); + return this.pushDiagnostic(node.closeBracketToken, DiagnosticCode.Expression_expected); } - - return true; } return false; @@ -834,9 +768,7 @@ module TypeScript { var enumElement = nonSeparatorAt(node.enumElements, i); if (!enumElement.equalsValueClause && previousValueWasComputed) { - this.pushDiagnostic(enumElement, DiagnosticCode.Enum_member_must_have_initializer); - return true; - } + return this.pushDiagnostic(enumElement, DiagnosticCode.Enum_member_must_have_initializer); } if (enumElement.equalsValueClause) { var value = enumElement.equalsValueClause.value; @@ -881,9 +813,7 @@ module TypeScript { var modifier = modifiers[i]; if (SyntaxFacts.isAccessibilityModifier(modifier.kind) || modifier.kind === SyntaxKind.StaticKeyword) { - this.pushDiagnostic(modifier, DiagnosticCode._0_modifier_cannot_appear_on_a_module_element, [modifier.text()]); - return true; - } + return this.pushDiagnostic(modifier, DiagnosticCode._0_modifier_cannot_appear_on_a_module_element, [modifier.text()]); } if (modifier.kind === SyntaxKind.DeclareKeyword) { if (seenDeclareModifier) { @@ -952,9 +882,7 @@ module TypeScript { var declareToken = SyntaxUtilities.getToken(modifiers, SyntaxKind.DeclareKeyword); if (declareToken) { - this.pushDiagnostic(declareToken, DiagnosticCode.A_declare_modifier_cannot_be_used_with_an_import_declaration); - return true; - } + return this.pushDiagnostic(declareToken, DiagnosticCode.A_declare_modifier_cannot_be_used_with_an_import_declaration); } } public visitImportDeclaration(node: ImportDeclarationSyntax): any { @@ -999,9 +927,7 @@ module TypeScript { var child = node.moduleElements[i]; if (child.kind === SyntaxKind.ExportAssignment) { - this.pushDiagnostic(child, DiagnosticCode.Export_assignment_cannot_be_used_in_internal_modules); - return true; - } + return this.pushDiagnostic(child, DiagnosticCode.Export_assignment_cannot_be_used_in_internal_modules); } } return false; @@ -1021,9 +947,7 @@ module TypeScript { public checkForMalformedBlock(node: BlockSyntax): boolean { if (node.equalsGreaterThanToken || node.openBraceToken === undefined) { - this.pushDiagnostic(firstToken(node), DiagnosticCode._0_expected, ["{"]); - return true; - } + return this.pushDiagnostic(firstToken(node), DiagnosticCode._0_expected, ["{"]); } return false; } @@ -1033,13 +957,11 @@ module TypeScript { // Provide a specialized message for a block as a statement versus the block as a // function body. if (node.parent.kind === SyntaxKind.List) { - this.pushDiagnostic(firstToken(node), DiagnosticCode.Statements_are_not_allowed_in_ambient_contexts); + return this.pushDiagnostic(firstToken(node), DiagnosticCode.Statements_are_not_allowed_in_ambient_contexts); } else { - this.pushDiagnostic(firstToken(node), DiagnosticCode.A_function_implementation_cannot_be_declared_in_an_ambient_context); + return this.pushDiagnostic(firstToken(node), DiagnosticCode.A_function_implementation_cannot_be_declared_in_an_ambient_context); } - - return true; } return false; @@ -1047,9 +969,7 @@ module TypeScript { private checkForStatementInAmbientContxt(node: IStatementSyntax): boolean { if (this.inAmbientDeclaration || this.syntaxTree.isDeclaration()) { - this.pushDiagnostic(firstToken(node), DiagnosticCode.Statements_are_not_allowed_in_ambient_contexts); - return true; - } + return this.pushDiagnostic(firstToken(node), DiagnosticCode.Statements_are_not_allowed_in_ambient_contexts); } return false; } @@ -1111,24 +1031,20 @@ module TypeScript { // unreachable label (as opposed to a non-existed label) var breakableLabels = this.getEnclosingLabels(node, /*breakable:*/ true, /*crossFunctions:*/ true); if (ArrayUtilities.any(breakableLabels, s => tokenValueText(s.identifier) === tokenValueText(node.identifier))) { - this.pushDiagnostic(node, DiagnosticCode.Jump_target_cannot_cross_function_boundary); + return this.pushDiagnostic(node, DiagnosticCode.Jump_target_cannot_cross_function_boundary); } else { - this.pushDiagnostic(node, DiagnosticCode.Jump_target_not_found); + return this.pushDiagnostic(node, DiagnosticCode.Jump_target_not_found); } - - return true; } } else if (!this.inIterationStatement(node, /*crossFunctions:*/ false) && !this.inSwitchStatement(node)) { if (this.inIterationStatement(node, /*crossFunctions:*/ true)) { - this.pushDiagnostic(node, DiagnosticCode.Jump_target_cannot_cross_function_boundary); + return this.pushDiagnostic(node, DiagnosticCode.Jump_target_cannot_cross_function_boundary); } else { - this.pushDiagnostic(node, DiagnosticCode.break_statement_can_only_be_used_within_an_enclosing_iteration_or_switch_statement); + return this.pushDiagnostic(node, DiagnosticCode.break_statement_can_only_be_used_within_an_enclosing_iteration_or_switch_statement); } - - return true; } return false; @@ -1236,13 +1152,11 @@ module TypeScript { if (!this.inIterationStatement(node, /*crossFunctions:*/ false)) { if (this.inIterationStatement(node, /*crossFunctions:*/ true)) { - this.pushDiagnostic(node, DiagnosticCode.Jump_target_cannot_cross_function_boundary); + return this.pushDiagnostic(node, DiagnosticCode.Jump_target_cannot_cross_function_boundary); } else { - this.pushDiagnostic(node, DiagnosticCode.continue_statement_can_only_be_used_within_an_enclosing_iteration_statement); + return this.pushDiagnostic(node, DiagnosticCode.continue_statement_can_only_be_used_within_an_enclosing_iteration_statement); } - - return true; } else if (node.identifier) { var continuableLabels = this.getEnclosingLabels(node, /*breakable:*/ false, /*crossFunctions:*/ false); @@ -1255,13 +1169,11 @@ module TypeScript { var continuableLabels = this.getEnclosingLabels(node, /*breakable:*/ false, /*crossFunctions:*/ true); if (ArrayUtilities.any(continuableLabels, s => tokenValueText(s.identifier) === tokenValueText(node.identifier))) { - this.pushDiagnostic(node, DiagnosticCode.Jump_target_cannot_cross_function_boundary); + return this.pushDiagnostic(node, DiagnosticCode.Jump_target_cannot_cross_function_boundary); } else { - this.pushDiagnostic(node, DiagnosticCode.Jump_target_not_found); + return this.pushDiagnostic(node, DiagnosticCode.Jump_target_not_found); } - - return true; } } @@ -1313,9 +1225,7 @@ module TypeScript { private checkForInLeftHandSideExpression(node: ForInStatementSyntax): boolean { if (node.left.kind !== SyntaxKind.VariableDeclaration && !SyntaxUtilities.isLeftHandSizeExpression(node.left)) { - this.pushDiagnostic(node.left, DiagnosticCode.Invalid_left_hand_side_in_for_in_statement); - return true; - } + return this.pushDiagnostic(node.left, DiagnosticCode.Invalid_left_hand_side_in_for_in_statement); } return false; } @@ -1325,9 +1235,7 @@ module TypeScript { // allows a very restricted form. Specifically, there must be only a single Variable // Declarator in the Declaration. if (node.left.kind === SyntaxKind.VariableDeclaration && (node.left).variableDeclarators.length > 1) { - this.pushDiagnostic(node.left, DiagnosticCode.Only_a_single_variable_declaration_is_allowed_in_a_for_in_statement); - return true; - } + return this.pushDiagnostic(node.left, DiagnosticCode.Only_a_single_variable_declaration_is_allowed_in_a_for_in_statement); } return false; } @@ -1382,9 +1290,7 @@ module TypeScript { // It is invalid to have a label enclosed in a label of the same name. var matchingLabel = ArrayUtilities.firstOrDefault(breakableLabels, s => tokenValueText(s.identifier) === labelIdentifier); if (matchingLabel) { - this.pushDiagnostic(node.identifier, DiagnosticCode.Duplicate_identifier_0, [labelIdentifier]); - return true; - } + return this.pushDiagnostic(node.identifier, DiagnosticCode.Duplicate_identifier_0, [labelIdentifier]); } return false; } @@ -1405,9 +1311,7 @@ module TypeScript { } } - this.pushDiagnostic(firstToken(node), DiagnosticCode.return_statement_must_be_contained_within_a_function_body); - return true; - } + return this.pushDiagnostic(firstToken(node), DiagnosticCode.return_statement_must_be_contained_within_a_function_body); } public visitSwitchStatement(node: SwitchStatementSyntax): void { if (this.checkForStatementInAmbientContxt(node)) { @@ -1428,9 +1332,7 @@ module TypeScript { public checkForMissingThrowStatementExpression(node: ThrowStatementSyntax): boolean { if (node.expression === undefined) { - this.pushDiagnosticAt(fullEnd(node.throwKeyword), 0, DiagnosticCode.Expression_expected); - return true; - } + return this.pushDiagnosticAt(fullEnd(node.throwKeyword), 0, DiagnosticCode.Expression_expected); } return false; } @@ -1462,9 +1364,7 @@ module TypeScript { private checkForWithInStrictMode(node: WithStatementSyntax): boolean { if (parsedInStrictModeContext(node)) { - this.pushDiagnostic(firstToken(node), DiagnosticCode.with_statements_are_not_allowed_in_strict_mode); - return true; - } + return this.pushDiagnostic(firstToken(node), DiagnosticCode.with_statements_are_not_allowed_in_strict_mode); } return false; } @@ -1472,9 +1372,7 @@ module TypeScript { private checkForDisallowedModifiers(modifiers: ISyntaxToken[]): boolean { if (this.inBlock || this.inObjectLiteralExpression) { if (modifiers.length > 0) { - this.pushDiagnostic(modifiers[0], DiagnosticCode.Modifiers_cannot_appear_here); - return true; - } + return this.pushDiagnostic(modifiers[0], DiagnosticCode.Modifiers_cannot_appear_here); } } return false; @@ -1510,9 +1408,7 @@ module TypeScript { private checkForAsyncGenerator(asyncKeyword: ISyntaxToken, asterixToken: ISyntaxToken) { if (asyncKeyword && asterixToken) { - this.pushDiagnostic(asyncKeyword, DiagnosticCode.A_generator_declaration_cannot_have_the_async_modifier); - return true; - } + return this.pushDiagnostic(asyncKeyword, DiagnosticCode.A_generator_declaration_cannot_have_the_async_modifier); } return false; } @@ -1602,18 +1498,14 @@ module TypeScript { private checkForDisallowedTemplatePropertyName(propertyName: IPropertyNameSyntax): boolean { if (propertyName.kind === SyntaxKind.NoSubstitutionTemplateToken) { - this.pushDiagnostic(propertyName, DiagnosticCode.Template_literal_cannot_be_used_as_an_element_name); - return true; - } + return this.pushDiagnostic(propertyName, DiagnosticCode.Template_literal_cannot_be_used_as_an_element_name); } return false; } private checkForDisallowedComputedPropertyName(propertyName: IPropertyNameSyntax): boolean { if (propertyName.kind === SyntaxKind.ComputedPropertyName) { - this.pushDiagnostic(propertyName, DiagnosticCode.Computed_property_names_cannot_be_used_here); - return true; - } + return this.pushDiagnostic(propertyName, DiagnosticCode.Computed_property_names_cannot_be_used_here); } return false; } @@ -1631,9 +1523,7 @@ module TypeScript { private checkVariableDeclaratorInitializer(node: VariableDeclaratorSyntax): boolean { if (this.inAmbientDeclaration && node.equalsValueClause) { - this.pushDiagnostic(firstToken(node.equalsValueClause.value), DiagnosticCode.Initializers_are_not_allowed_in_ambient_contexts); - return true; - } + return this.pushDiagnostic(firstToken(node.equalsValueClause.value), DiagnosticCode.Initializers_are_not_allowed_in_ambient_contexts); } return false; } @@ -1655,9 +1545,7 @@ module TypeScript { for (var i = 0, n = modifiers.length; i < n; i++) { var child = modifiers[i]; if (child.kind !== SyntaxKind.PublicKeyword) { - this.pushDiagnostic(child, DiagnosticCode._0_modifier_cannot_appear_on_a_constructor_declaration, [SyntaxFacts.getText(child.kind)]); - return true; - } + return this.pushDiagnostic(child, DiagnosticCode._0_modifier_cannot_appear_on_a_constructor_declaration, [SyntaxFacts.getText(child.kind)]); } } return false; @@ -1665,18 +1553,14 @@ module TypeScript { private checkConstructorTypeParameterList(node: ConstructorDeclarationSyntax): boolean { if (node.callSignature.typeParameterList) { - this.pushDiagnostic(node.callSignature.typeParameterList, DiagnosticCode.Type_parameters_cannot_appear_on_a_constructor_declaration); - return true; - } + return this.pushDiagnostic(node.callSignature.typeParameterList, DiagnosticCode.Type_parameters_cannot_appear_on_a_constructor_declaration); } return false; } private checkConstructorTypeAnnotation(node: ConstructorDeclarationSyntax): boolean { if (node.callSignature.typeAnnotation) { - this.pushDiagnostic(node.callSignature.typeAnnotation, DiagnosticCode.Type_annotation_cannot_appear_on_a_constructor_declaration); - return true; - } + return this.pushDiagnostic(node.callSignature.typeAnnotation, DiagnosticCode.Type_annotation_cannot_appear_on_a_constructor_declaration); } return false; } @@ -1717,9 +1601,7 @@ module TypeScript { private checkForDisallowedEvalOrArguments(node: ISyntaxNode, token: ISyntaxToken): boolean { if (token) { if (parsedInStrictModeContext(node) && this.isEvalOrArguments(token)) { - this.pushDiagnostic(token, DiagnosticCode.Invalid_use_of_0_in_strict_mode, [this.getEvalOrArguments(token)]); - return true; - } + return this.pushDiagnostic(token, DiagnosticCode.Invalid_use_of_0_in_strict_mode, [this.getEvalOrArguments(token)]); } } return false; @@ -1764,9 +1646,7 @@ module TypeScript { private checkIllegalAssignment(node: BinaryExpressionSyntax): boolean { if (parsedInStrictModeContext(node) && SyntaxFacts.isAssignmentOperatorToken(node.operatorToken.kind) && this.isEvalOrArguments(node.left)) { - this.pushDiagnostic(node.operatorToken, DiagnosticCode.Invalid_use_of_0_in_strict_mode, [this.getEvalOrArguments(node.left)]); - return true; - } + return this.pushDiagnostic(node.operatorToken, DiagnosticCode.Invalid_use_of_0_in_strict_mode, [this.getEvalOrArguments(node.left)]); } return false; } @@ -1796,9 +1676,7 @@ module TypeScript { private checkConstraintType(node: ConstraintSyntax): boolean { if (!SyntaxFacts.isType(node.typeOrExpression.kind)) { - this.pushDiagnostic(node.typeOrExpression, DiagnosticCode.Type_expected); - return true; - } + return this.pushDiagnostic(node.typeOrExpression, DiagnosticCode.Type_expected); } return false; } From eda4b1bea050ec025c6cbb1a7d6104c6f3f6dca3 Mon Sep 17 00:00:00 2001 From: Vladimir Matveev Date: Wed, 26 Nov 2014 00:29:20 -0800 Subject: [PATCH 086/195] handle regexes correctly in formatting --- src/services/formatting.ts | 2 +- src/services/formatting/formattingScanner.ts | 3 ++- tests/cases/fourslash/formattingRegexes.ts | 8 ++++++++ 3 files changed, 11 insertions(+), 2 deletions(-) create mode 100644 tests/cases/fourslash/formattingRegexes.ts diff --git a/src/services/formatting.ts b/src/services/formatting.ts index 2fdbebad79c..f58f1ccb33e 100644 --- a/src/services/formatting.ts +++ b/src/services/formatting.ts @@ -505,7 +505,7 @@ module ts.formatting { if (isToken(child)) { // if child node is a token, it does not impact indentation, proceed it using parent indentation scope rules - var tokenInfo = formattingScanner.readTokenInfo(node); + var tokenInfo = formattingScanner.readTokenInfo(child); Debug.assert(tokenInfo.token.end === child.end); consumeTokenAndAdvanceScanner(tokenInfo, node, parentDynamicIndentation); return inheritedIndentation; diff --git a/src/services/formatting/formattingScanner.ts b/src/services/formatting/formattingScanner.ts index 9cf2a05a5d9..220ac21bd8b 100644 --- a/src/services/formatting/formattingScanner.ts +++ b/src/services/formatting/formattingScanner.ts @@ -114,7 +114,8 @@ module ts.formatting { } function shouldRescanTemplateToken(container: Node): boolean { - return container.kind === SyntaxKind.TemplateSpan; + return container.kind === SyntaxKind.TemplateMiddle || + container.kind === SyntaxKind.TemplateTail; } function startsWithSlashToken(t: SyntaxKind): boolean { diff --git a/tests/cases/fourslash/formattingRegexes.ts b/tests/cases/fourslash/formattingRegexes.ts new file mode 100644 index 00000000000..136fba6a8b6 --- /dev/null +++ b/tests/cases/fourslash/formattingRegexes.ts @@ -0,0 +1,8 @@ +/// + +////removeAllButLast(sortedTypes, undefinedType, /keepNullableType**/ true)/*1*/ + +goTo.marker("1"); +edit.insert(";"); +verify.currentLineContentIs("removeAllButLast(sortedTypes, undefinedType, /keepNullableType**/ true);"); + From 498a3274b8f22c39f7683f9452f7a06afde5d02c Mon Sep 17 00:00:00 2001 From: Cyrus Najmabadi Date: Wed, 26 Nov 2014 01:06:10 -0800 Subject: [PATCH 087/195] Emit modules that contain only const enums, if the preserveConstEnum flag is provided. --- src/compiler/emitter.ts | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/compiler/emitter.ts b/src/compiler/emitter.ts index 5cdf98aa63e..11ecd3a37b8 100644 --- a/src/compiler/emitter.ts +++ b/src/compiler/emitter.ts @@ -715,7 +715,7 @@ module ts { }; } } - + function emitEnumDeclaration(node: EnumDeclaration) { if (resolver.isDeclarationVisible(node)) { emitJsDocComments(node); @@ -3176,7 +3176,10 @@ module ts { } function emitModuleDeclaration(node: ModuleDeclaration) { - if (getModuleInstanceState(node) !== ModuleInstanceState.Instantiated) { + var shouldEmit = getModuleInstanceState(node) === ModuleInstanceState.Instantiated || + (getModuleInstanceState(node) === ModuleInstanceState.ConstEnumOnly && compilerOptions.preserveConstEnums); + + if (!shouldEmit) { return emitPinnedOrTripleSlashComments(node); } emitLeadingComments(node); @@ -3558,7 +3561,7 @@ module ts { return leadingComments; } - + function getLeadingCommentsToEmit(node: Node) { // Emit the leading comments only if the parent's pos doesn't match because parent should take care of emitting these comments if (node.parent.kind === SyntaxKind.SourceFile || node.pos !== node.parent.pos) { From 7cb4fef7a31d9d8db92f6bbc4bd615db4689bc01 Mon Sep 17 00:00:00 2001 From: Cyrus Najmabadi Date: Wed, 26 Nov 2014 01:20:34 -0800 Subject: [PATCH 088/195] Update LKG. --- bin/tsc.js | 3905 ++++++++++++++++------------- bin/typescriptServices.js | 4919 ++++++++++++++++++++----------------- 2 files changed, 4818 insertions(+), 4006 deletions(-) diff --git a/bin/tsc.js b/bin/tsc.js index 7818785929e..07f12e2b334 100644 --- a/bin/tsc.js +++ b/bin/tsc.js @@ -418,6 +418,10 @@ var ts; 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); @@ -908,6 +912,7 @@ var ts; Unterminated_template_literal: { code: 1160, category: 1 /* Error */, key: "Unterminated template literal." }, Unterminated_regular_expression_literal: { code: 1161, category: 1 /* Error */, key: "Unterminated regular expression literal." }, An_object_member_cannot_be_declared_optional: { code: 1162, category: 1 /* Error */, key: "An object member cannot be declared optional." }, + yield_expression_must_be_contained_within_a_generator_declaration: { code: 1163, category: 1 /* Error */, key: "'yield' expression must be contained_within a generator declaration." }, Duplicate_identifier_0: { code: 2300, category: 1 /* Error */, key: "Duplicate identifier '{0}'." }, Initializer_of_instance_member_variable_0_cannot_reference_identifier_1_declared_in_the_constructor: { code: 2301, category: 1 /* 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: 1 /* Error */, key: "Static members cannot reference class type parameters." }, @@ -1058,27 +1063,16 @@ var ts; Type_alias_name_cannot_be_0: { code: 2457, category: 1 /* Error */, key: "Type alias name cannot be '{0}'" }, An_AMD_module_cannot_have_multiple_name_assignments: { code: 2458, category: 1 /* Error */, key: "An AMD module cannot have multiple name assignments." }, Import_declaration_0_is_using_private_name_1: { code: 4000, category: 1 /* Error */, key: "Import declaration '{0}' is using private name '{1}'." }, - Type_parameter_0_of_exported_class_has_or_is_using_name_1_from_private_module_2: { code: 4001, category: 1 /* Error */, key: "Type parameter '{0}' of exported class has or is using name '{1}' from private module '{2}'." }, Type_parameter_0_of_exported_class_has_or_is_using_private_name_1: { code: 4002, category: 1 /* 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_name_1_from_private_module_2: { code: 4003, category: 1 /* Error */, key: "Type parameter '{0}' of exported interface has or is using name '{1}' from private module '{2}'." }, Type_parameter_0_of_exported_interface_has_or_is_using_private_name_1: { code: 4004, category: 1 /* 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_name_1_from_private_module_2: { code: 4005, category: 1 /* Error */, key: "Type parameter '{0}' of constructor signature from exported interface has or is using name '{1}' from private module '{2}'." }, Type_parameter_0_of_constructor_signature_from_exported_interface_has_or_is_using_private_name_1: { code: 4006, category: 1 /* 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_name_1_from_private_module_2: { code: 4007, category: 1 /* Error */, key: "Type parameter '{0}' of call signature from exported interface has or is using name '{1}' from private module '{2}'." }, Type_parameter_0_of_call_signature_from_exported_interface_has_or_is_using_private_name_1: { code: 4008, category: 1 /* 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_name_1_from_private_module_2: { code: 4009, category: 1 /* Error */, key: "Type parameter '{0}' of public static method from exported class has or is using name '{1}' from private module '{2}'." }, Type_parameter_0_of_public_static_method_from_exported_class_has_or_is_using_private_name_1: { code: 4010, category: 1 /* 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_name_1_from_private_module_2: { code: 4011, category: 1 /* Error */, key: "Type parameter '{0}' of public method from exported class has or is using name '{1}' from private module '{2}'." }, Type_parameter_0_of_public_method_from_exported_class_has_or_is_using_private_name_1: { code: 4012, category: 1 /* 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_name_1_from_private_module_2: { code: 4013, category: 1 /* Error */, key: "Type parameter '{0}' of method from exported interface has or is using name '{1}' from private module '{2}'." }, Type_parameter_0_of_method_from_exported_interface_has_or_is_using_private_name_1: { code: 4014, category: 1 /* 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_name_1_from_private_module_2: { code: 4015, category: 1 /* Error */, key: "Type parameter '{0}' of exported function has or is using name '{1}' from private module '{2}'." }, Type_parameter_0_of_exported_function_has_or_is_using_private_name_1: { code: 4016, category: 1 /* 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_name_1_from_private_module_2: { code: 4017, category: 1 /* Error */, key: "Implements clause of exported class '{0}' has or is using name '{1}' from private module '{2}'." }, - Extends_clause_of_exported_class_0_has_or_is_using_name_1_from_private_module_2: { code: 4018, category: 1 /* Error */, key: "Extends clause of exported class '{0}' has or is using name '{1}' from private module '{2}'." }, Implements_clause_of_exported_class_0_has_or_is_using_private_name_1: { code: 4019, category: 1 /* 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: 1 /* 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_name_1_from_private_module_2: { code: 4021, category: 1 /* Error */, key: "Extends clause of exported interface '{0}' has or is using name '{1}' from private module '{2}'." }, Extends_clause_of_exported_interface_0_has_or_is_using_private_name_1: { code: 4022, category: 1 /* 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: 1 /* 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: 1 /* Error */, key: "Exported variable '{0}' has or is using name '{1}' from private module '{2}'." }, @@ -1136,8 +1130,6 @@ var ts; Parameter_0_of_exported_function_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named: { code: 4076, category: 1 /* 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: 1 /* 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: 1 /* Error */, key: "Parameter '{0}' of exported function has or is using private name '{1}'." }, - Exported_type_alias_0_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named: { code: 4079, category: 1 /* Error */, key: "Exported type alias '{0}' has or is using name '{1}' from external module {2} but cannot be named." }, - Exported_type_alias_0_has_or_is_using_name_1_from_private_module_2: { code: 4080, category: 1 /* Error */, key: "Exported type alias '{0}' has or is using name '{1}' from private module '{2}'." }, Exported_type_alias_0_has_or_is_using_private_name_1: { code: 4081, category: 1 /* Error */, key: "Exported type alias '{0}' has or is using private name '{1}'." }, Enum_declarations_must_all_be_const_or_non_const: { code: 4082, category: 1 /* Error */, key: "Enum declarations must all be const or non-const." }, In_const_enum_declarations_member_initializer_must_be_constant_expression: { code: 4083, category: 1 /* Error */, key: "In 'const' enum declarations member initializer must be constant expression.", isEarly: true }, @@ -1208,7 +1200,9 @@ var ts; _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: 1 /* 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: 1 /* 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: 1 /* 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: 1 /* Error */, key: "You cannot rename this element." } + You_cannot_rename_this_element: { code: 8000, category: 1 /* Error */, key: "You cannot rename this element." }, + yield_expressions_are_not_currently_supported: { code: 9000, category: 1 /* Error */, key: "'yield' expressions are not currently supported." }, + generators_are_not_currently_supported: { code: 9001, category: 1 /* Error */, key: "'generators' are not currently supported." } }; })(ts || (ts = {})); var ts; @@ -2206,7 +2200,7 @@ var ts; })(ts || (ts = {})); var ts; (function (ts) { - var nodeConstructors = new Array(199 /* Count */); + var nodeConstructors = new Array(200 /* Count */); function getNodeConstructor(kind) { return nodeConstructors[kind] || (nodeConstructors[kind] = ts.objectAllocator.getNodeConstructor(kind)); } @@ -2219,7 +2213,7 @@ var ts; return node; } function getSourceFileOfNode(node) { - while (node && node.kind !== 196 /* SourceFile */) + while (node && node.kind !== 197 /* SourceFile */) node = node.parent; return node; } @@ -2241,13 +2235,17 @@ var ts; return ts.skipTrivia((sourceFile || getSourceFileOfNode(node)).text, node.pos); } ts.getTokenPosOfNode = getTokenPosOfNode; + function getSourceTextOfNodeFromSourceFile(sourceFile, node) { + var text = sourceFile.text; + return text.substring(ts.skipTrivia(text, node.pos), node.end); + } + ts.getSourceTextOfNodeFromSourceFile = getSourceTextOfNodeFromSourceFile; function getTextOfNodeFromSourceText(sourceText, node) { return sourceText.substring(ts.skipTrivia(sourceText, node.pos), node.end); } ts.getTextOfNodeFromSourceText = getTextOfNodeFromSourceText; function getTextOfNode(node) { - var text = getSourceFileOfNode(node).text; - return text.substring(ts.skipTrivia(text, node.pos), node.end); + return getSourceTextOfNodeFromSourceFile(getSourceFileOfNode(node), node); } ts.getTextOfNode = getTextOfNode; function escapeIdentifier(identifier) { @@ -2281,12 +2279,12 @@ var ts; function getErrorSpanForNode(node) { var errorSpan; switch (node.kind) { - case 184 /* VariableDeclaration */: - case 187 /* ClassDeclaration */: - case 188 /* InterfaceDeclaration */: - case 191 /* ModuleDeclaration */: - case 190 /* EnumDeclaration */: - case 195 /* EnumMember */: + case 185 /* VariableDeclaration */: + case 188 /* ClassDeclaration */: + case 189 /* InterfaceDeclaration */: + case 192 /* ModuleDeclaration */: + case 191 /* EnumDeclaration */: + case 196 /* EnumMember */: errorSpan = node.name; break; } @@ -2302,11 +2300,19 @@ var ts; } ts.isDeclarationFile = isDeclarationFile; function isConstEnumDeclaration(node) { - return (node.flags & 4096 /* Const */) !== 0; + return node.kind === 191 /* EnumDeclaration */ && isConst(node); } ts.isConstEnumDeclaration = isConstEnumDeclaration; + function isConst(node) { + return !!(node.flags & 4096 /* Const */); + } + ts.isConst = isConst; + function isLet(node) { + return !!(node.flags & 2048 /* Let */); + } + ts.isLet = isLet; function isPrologueDirective(node) { - return node.kind === 164 /* ExpressionStatement */ && node.expression.kind === 7 /* StringLiteral */; + return node.kind === 165 /* ExpressionStatement */ && node.expression.kind === 7 /* StringLiteral */; } ts.isPrologueDirective = isPrologueDirective; function isEvalOrArgumentsIdentifier(node) { @@ -2375,7 +2381,7 @@ var ts; case 127 /* GetAccessor */: case 128 /* SetAccessor */: case 152 /* FunctionExpression */: - case 185 /* FunctionDeclaration */: + case 186 /* FunctionDeclaration */: case 153 /* ArrowFunction */: return child(node.name) || children(node.typeParameters) || children(node.parameters) || child(node.type) || child(node.body); case 132 /* TypeReference */: @@ -2416,64 +2422,64 @@ var ts; return child(node.left) || child(node.right); case 157 /* ConditionalExpression */: return child(node.condition) || child(node.whenTrue) || child(node.whenFalse); - case 161 /* Block */: - case 180 /* TryBlock */: - case 182 /* FinallyBlock */: - case 186 /* FunctionBlock */: - case 192 /* ModuleBlock */: - case 196 /* SourceFile */: + case 162 /* Block */: + case 181 /* TryBlock */: + case 183 /* FinallyBlock */: + case 187 /* FunctionBlock */: + case 193 /* ModuleBlock */: + case 197 /* SourceFile */: return children(node.statements); - case 162 /* VariableStatement */: + case 163 /* VariableStatement */: return children(node.declarations); - case 164 /* ExpressionStatement */: + case 165 /* ExpressionStatement */: return child(node.expression); - case 165 /* IfStatement */: + case 166 /* IfStatement */: return child(node.expression) || child(node.thenStatement) || child(node.elseStatement); - case 166 /* DoStatement */: + case 167 /* DoStatement */: return child(node.statement) || child(node.expression); - case 167 /* WhileStatement */: + case 168 /* WhileStatement */: return child(node.expression) || child(node.statement); - case 168 /* ForStatement */: + case 169 /* ForStatement */: return children(node.declarations) || child(node.initializer) || child(node.condition) || child(node.iterator) || child(node.statement); - case 169 /* ForInStatement */: + case 170 /* ForInStatement */: return children(node.declarations) || child(node.variable) || child(node.expression) || child(node.statement); - case 170 /* ContinueStatement */: - case 171 /* BreakStatement */: + case 171 /* ContinueStatement */: + case 172 /* BreakStatement */: return child(node.label); - case 172 /* ReturnStatement */: + case 173 /* ReturnStatement */: return child(node.expression); - case 173 /* WithStatement */: + case 174 /* WithStatement */: return child(node.expression) || child(node.statement); - case 174 /* SwitchStatement */: + case 175 /* SwitchStatement */: return child(node.expression) || children(node.clauses); - case 175 /* CaseClause */: - case 176 /* DefaultClause */: + case 176 /* CaseClause */: + case 177 /* DefaultClause */: return child(node.expression) || children(node.statements); - case 177 /* LabeledStatement */: + case 178 /* LabeledStatement */: return child(node.label) || child(node.statement); - case 178 /* ThrowStatement */: + case 179 /* ThrowStatement */: return child(node.expression); - case 179 /* TryStatement */: + case 180 /* TryStatement */: return child(node.tryBlock) || child(node.catchBlock) || child(node.finallyBlock); - case 181 /* CatchBlock */: + case 182 /* CatchBlock */: return child(node.variable) || children(node.statements); - case 184 /* VariableDeclaration */: + case 185 /* VariableDeclaration */: return child(node.name) || child(node.type) || child(node.initializer); - case 187 /* ClassDeclaration */: + case 188 /* ClassDeclaration */: return child(node.name) || children(node.typeParameters) || child(node.baseType) || children(node.implementedTypes) || children(node.members); - case 188 /* InterfaceDeclaration */: + case 189 /* InterfaceDeclaration */: return child(node.name) || children(node.typeParameters) || children(node.baseTypes) || children(node.members); - case 189 /* TypeAliasDeclaration */: + case 190 /* TypeAliasDeclaration */: return child(node.name) || child(node.type); - case 190 /* EnumDeclaration */: + case 191 /* EnumDeclaration */: return child(node.name) || children(node.members); - case 195 /* EnumMember */: + case 196 /* EnumMember */: return child(node.name) || child(node.initializer); - case 191 /* ModuleDeclaration */: + case 192 /* ModuleDeclaration */: return child(node.name) || child(node.body); - case 193 /* ImportDeclaration */: + case 194 /* ImportDeclaration */: return child(node.name) || child(node.entityName) || child(node.externalModuleName); - case 194 /* ExportAssignment */: + case 195 /* ExportAssignment */: return child(node.exportName); case 158 /* TemplateExpression */: return child(node.head) || children(node.templateSpans); @@ -2486,24 +2492,24 @@ var ts; return traverse(body); function traverse(node) { switch (node.kind) { - case 172 /* ReturnStatement */: + case 173 /* ReturnStatement */: return visitor(node); - case 161 /* Block */: - case 186 /* FunctionBlock */: - case 165 /* IfStatement */: - case 166 /* DoStatement */: - case 167 /* WhileStatement */: - case 168 /* ForStatement */: - case 169 /* ForInStatement */: - case 173 /* WithStatement */: - case 174 /* SwitchStatement */: - case 175 /* CaseClause */: - case 176 /* DefaultClause */: - case 177 /* LabeledStatement */: - case 179 /* TryStatement */: - case 180 /* TryBlock */: - case 181 /* CatchBlock */: - case 182 /* FinallyBlock */: + case 162 /* Block */: + case 187 /* FunctionBlock */: + case 166 /* IfStatement */: + case 167 /* DoStatement */: + case 168 /* WhileStatement */: + case 169 /* ForStatement */: + case 170 /* ForInStatement */: + case 174 /* WithStatement */: + case 175 /* SwitchStatement */: + case 176 /* CaseClause */: + case 177 /* DefaultClause */: + case 178 /* LabeledStatement */: + case 180 /* TryStatement */: + case 181 /* TryBlock */: + case 182 /* CatchBlock */: + case 183 /* FinallyBlock */: return forEachChild(node, traverse); } } @@ -2513,7 +2519,7 @@ var ts; if (node) { switch (node.kind) { case 152 /* FunctionExpression */: - case 185 /* FunctionDeclaration */: + case 186 /* FunctionDeclaration */: case 153 /* ArrowFunction */: case 125 /* Method */: case 127 /* GetAccessor */: @@ -2545,16 +2551,16 @@ var ts; if (!includeArrowFunctions) { continue; } - case 185 /* FunctionDeclaration */: + case 186 /* FunctionDeclaration */: case 152 /* FunctionExpression */: - case 191 /* ModuleDeclaration */: + case 192 /* ModuleDeclaration */: case 124 /* Property */: case 125 /* Method */: case 126 /* Constructor */: case 127 /* GetAccessor */: case 128 /* SetAccessor */: - case 190 /* EnumDeclaration */: - case 196 /* SourceFile */: + case 191 /* EnumDeclaration */: + case 197 /* SourceFile */: return node; } } @@ -2577,6 +2583,13 @@ var ts; } } ts.getSuperContainer = getSuperContainer; + function getInvokedExpression(node) { + if (node.kind === 149 /* TaggedTemplateExpression */) { + return node.tag; + } + return node.func; + } + ts.getInvokedExpression = getInvokedExpression; function isExpression(node) { switch (node.kind) { case 91 /* ThisKeyword */: @@ -2602,7 +2615,7 @@ var ts; case 157 /* ConditionalExpression */: case 158 /* TemplateExpression */: case 9 /* NoSubstitutionTemplateLiteral */: - case 160 /* OmittedExpression */: + case 161 /* OmittedExpression */: return true; case 121 /* QualifiedName */: while (node.parent.kind === 121 /* QualifiedName */) @@ -2616,26 +2629,26 @@ var ts; case 7 /* StringLiteral */: var parent = node.parent; switch (parent.kind) { - case 184 /* VariableDeclaration */: + case 185 /* VariableDeclaration */: case 123 /* Parameter */: case 124 /* Property */: - case 195 /* EnumMember */: + case 196 /* EnumMember */: case 143 /* PropertyAssignment */: return parent.initializer === node; - case 164 /* ExpressionStatement */: - case 165 /* IfStatement */: - case 166 /* DoStatement */: - case 167 /* WhileStatement */: - case 172 /* ReturnStatement */: - case 173 /* WithStatement */: - case 174 /* SwitchStatement */: - case 175 /* CaseClause */: - case 178 /* ThrowStatement */: - case 174 /* SwitchStatement */: + case 165 /* ExpressionStatement */: + case 166 /* IfStatement */: + case 167 /* DoStatement */: + case 168 /* WhileStatement */: + case 173 /* ReturnStatement */: + case 174 /* WithStatement */: + case 175 /* SwitchStatement */: + case 176 /* CaseClause */: + case 179 /* ThrowStatement */: + case 175 /* SwitchStatement */: return parent.expression === node; - case 168 /* ForStatement */: + case 169 /* ForStatement */: return parent.initializer === node || parent.condition === node || parent.iterator === node; - case 169 /* ForInStatement */: + case 170 /* ForInStatement */: return parent.variable === node || parent.expression === node; case 150 /* TypeAssertion */: return node === parent.operand; @@ -2679,21 +2692,22 @@ var ts; switch (node.kind) { case 122 /* TypeParameter */: case 123 /* Parameter */: - case 184 /* VariableDeclaration */: + case 185 /* VariableDeclaration */: case 124 /* Property */: case 143 /* PropertyAssignment */: case 144 /* ShorthandPropertyAssignment */: - case 195 /* EnumMember */: + case 196 /* EnumMember */: case 125 /* Method */: - case 185 /* FunctionDeclaration */: + case 186 /* FunctionDeclaration */: case 127 /* GetAccessor */: case 128 /* SetAccessor */: - case 187 /* ClassDeclaration */: - case 188 /* InterfaceDeclaration */: - case 189 /* TypeAliasDeclaration */: - case 190 /* EnumDeclaration */: - case 191 /* ModuleDeclaration */: - case 193 /* ImportDeclaration */: + case 126 /* Constructor */: + case 188 /* ClassDeclaration */: + case 189 /* InterfaceDeclaration */: + case 190 /* TypeAliasDeclaration */: + case 191 /* EnumDeclaration */: + case 192 /* ModuleDeclaration */: + case 194 /* ImportDeclaration */: return true; } return false; @@ -2701,24 +2715,24 @@ var ts; ts.isDeclaration = isDeclaration; function isStatement(n) { switch (n.kind) { - case 171 /* BreakStatement */: - case 170 /* ContinueStatement */: - case 183 /* DebuggerStatement */: - case 166 /* DoStatement */: - case 164 /* ExpressionStatement */: - case 163 /* EmptyStatement */: - case 169 /* ForInStatement */: - case 168 /* ForStatement */: - case 165 /* IfStatement */: - case 177 /* LabeledStatement */: - case 172 /* ReturnStatement */: - case 174 /* SwitchStatement */: + case 172 /* BreakStatement */: + case 171 /* ContinueStatement */: + case 184 /* DebuggerStatement */: + case 167 /* DoStatement */: + case 165 /* ExpressionStatement */: + case 164 /* EmptyStatement */: + case 170 /* ForInStatement */: + case 169 /* ForStatement */: + case 166 /* IfStatement */: + case 178 /* LabeledStatement */: + case 173 /* ReturnStatement */: + case 175 /* SwitchStatement */: case 92 /* ThrowKeyword */: - case 179 /* TryStatement */: - case 162 /* VariableStatement */: - case 167 /* WhileStatement */: - case 173 /* WithStatement */: - case 194 /* ExportAssignment */: + case 180 /* TryStatement */: + case 163 /* VariableStatement */: + case 168 /* WhileStatement */: + case 174 /* WithStatement */: + case 195 /* ExportAssignment */: return true; default: return false; @@ -2733,24 +2747,32 @@ var ts; if (isDeclaration(parent) || parent.kind === 152 /* FunctionExpression */) { return parent.name === name; } - if (parent.kind === 181 /* CatchBlock */) { + if (parent.kind === 182 /* CatchBlock */) { return parent.variable === name; } return false; } ts.isDeclarationOrFunctionExpressionOrCatchVariableName = isDeclarationOrFunctionExpressionOrCatchVariableName; + function tryResolveScriptReference(program, sourceFile, reference) { + if (!program.getCompilerOptions().noResolve) { + var referenceFileName = ts.isRootedDiskPath(reference.filename) ? reference.filename : ts.combinePaths(ts.getDirectoryPath(sourceFile.filename), reference.filename); + referenceFileName = ts.getNormalizedAbsolutePath(referenceFileName, program.getCompilerHost().getCurrentDirectory()); + return program.getSourceFile(referenceFileName); + } + } + ts.tryResolveScriptReference = tryResolveScriptReference; function getAncestor(node, kind) { switch (kind) { - case 187 /* ClassDeclaration */: + case 188 /* ClassDeclaration */: while (node) { switch (node.kind) { - case 187 /* ClassDeclaration */: + case 188 /* ClassDeclaration */: return node; - case 190 /* EnumDeclaration */: - case 188 /* InterfaceDeclaration */: - case 189 /* TypeAliasDeclaration */: - case 191 /* ModuleDeclaration */: - case 193 /* ImportDeclaration */: + case 191 /* EnumDeclaration */: + case 189 /* InterfaceDeclaration */: + case 190 /* TypeAliasDeclaration */: + case 192 /* ModuleDeclaration */: + case 194 /* ImportDeclaration */: return undefined; default: node = node.parent; @@ -2835,11 +2857,14 @@ var ts; } ts.isTrivia = isTrivia; function isUnterminatedTemplateEnd(node) { - ts.Debug.assert(node.kind === 9 /* NoSubstitutionTemplateLiteral */ || node.kind === 12 /* TemplateTail */); + ts.Debug.assert(isTemplateLiteralKind(node.kind)); var sourceText = getSourceFileOfNode(node).text; if (node.end !== sourceText.length) { return false; } + if (node.kind !== 12 /* TemplateTail */ && node.kind !== 9 /* NoSubstitutionTemplateLiteral */) { + return false; + } return sourceText.charCodeAt(node.end - 1) !== 96 /* backtick */ || node.text.length === 0; } ts.isUnterminatedTemplateEnd = isUnterminatedTemplateEnd; @@ -2878,8 +2903,76 @@ var ts; var identifierCount = 0; var nodeCount = 0; var lineStarts; - var isInStrictMode = false; var lookAheadMode = 0 /* NotLookingAhead */; + var contextFlags = 0; + function setContextFlag(val, flag) { + if (val) { + contextFlags |= flag; + } + else { + contextFlags &= ~flag; + } + } + function setStrictModeContext(val) { + setContextFlag(val, 1 /* StrictMode */); + } + function setDisallowInContext(val) { + setContextFlag(val, 2 /* DisallowIn */); + } + function setYieldContext(val) { + setContextFlag(val, 4 /* Yield */); + } + function setGeneratorParameterContext(val) { + setContextFlag(val, 8 /* GeneratorParameter */); + } + function allowInAnd(func) { + if (contextFlags & 2 /* DisallowIn */) { + setDisallowInContext(false); + var result = func(); + setDisallowInContext(true); + return result; + } + return func(); + } + function disallowInAnd(func) { + if (contextFlags & 2 /* DisallowIn */) { + return func(); + } + setDisallowInContext(true); + var result = func(); + setDisallowInContext(false); + return result; + } + function doInYieldContext(func) { + if (contextFlags & 4 /* Yield */) { + return func(); + } + setYieldContext(true); + var result = func(); + setYieldContext(false); + return result; + } + function doOutsideOfYieldContext(func) { + if (contextFlags & 4 /* Yield */) { + setYieldContext(false); + var result = func(); + setYieldContext(true); + return result; + } + return func(); + } + function inYieldContext() { + return (contextFlags & 4 /* Yield */) !== 0; + } + function inStrictModeContext() { + return (contextFlags & 1 /* StrictMode */) !== 0; + } + function inGeneratorParameterContext() { + return (contextFlags & 8 /* GeneratorParameter */) !== 0; + } + function inDisallowInContext() { + return (contextFlags & 2 /* DisallowIn */) !== 0; + } function getLineStarts() { return lineStarts || (lineStarts = ts.computeLineStarts(sourceText)); } @@ -2963,7 +3056,13 @@ var ts; return scanner.tryScan(function () { return lookAheadHelper(callback, false); }); } function isIdentifier() { - return token === 63 /* Identifier */ || (isInStrictMode ? token > 108 /* LastFutureReservedWord */ : token > 99 /* LastReservedWord */); + if (token === 63 /* Identifier */) { + return true; + } + if (token === 108 /* YieldKeyword */ && inYieldContext()) { + return false; + } + return inStrictModeContext() ? token > 108 /* LastFutureReservedWord */ : token > 99 /* LastReservedWord */; } function parseExpected(t) { if (token === t) { @@ -2980,6 +3079,14 @@ var ts; } return false; } + function parseOptionalToken(t) { + if (token === t) { + var node = createNode(t); + nextToken(); + return finishNode(node); + } + return undefined; + } function canParseSemicolon() { if (token === 21 /* SemicolonToken */) { return true; @@ -3008,8 +3115,8 @@ var ts; } function finishNode(node) { node.end = scanner.getStartPos(); - if (isInStrictMode) { - node.flags |= 8192 /* ParsedInStrictMode */; + if (contextFlags) { + node.parserContextFlags = contextFlags; } return node; } @@ -3057,7 +3164,7 @@ var ts; function parseAnyContextualModifier() { return isModifier(token) && tryParse(function () { nextToken(); - return token === 17 /* OpenBracketToken */ || isPropertyName(); + return token === 17 /* OpenBracketToken */ || token === 34 /* AsteriskToken */ || isPropertyName(); }); } function isListElement(kind, inErrorRecovery) { @@ -3075,8 +3182,9 @@ var ts; case 6 /* ClassMembers */: return lookAhead(isClassMemberStart); case 7 /* EnumMembers */: - case 11 /* ObjectLiteralMembers */: return isPropertyName(); + case 11 /* ObjectLiteralMembers */: + return token === 34 /* AsteriskToken */ || isPropertyName(); case 8 /* BaseTypeReferences */: return isIdentifier() && ((token !== 77 /* ExtendsKeyword */ && token !== 100 /* ImplementsKeyword */) || !lookAhead(function () { return (nextToken(), isIdentifier()); })); case 9 /* VariableDeclarations */: @@ -3153,15 +3261,15 @@ var ts; parsingContext |= 1 << kind; var result = []; result.pos = getNodePos(); - var saveIsInStrictMode = isInStrictMode; + var savedStrictModeContext = inStrictModeContext(); while (!isListTerminator(kind)) { if (isListElement(kind, false)) { var element = parseElement(); result.push(element); - if (!isInStrictMode && checkForStrictMode) { + if (!inStrictModeContext() && checkForStrictMode) { if (isPrologueDirective(element)) { if (isUseStrictPrologueDirective(element)) { - isInStrictMode = true; + setStrictModeContext(true); checkForStrictMode = false; } } @@ -3178,7 +3286,7 @@ var ts; nextToken(); } } - isInStrictMode = saveIsInStrictMode; + setStrictModeContext(savedStrictModeContext); result.end = getNodeEnd(); parsingContext = saveParsingContext; return result; @@ -3227,16 +3335,10 @@ var ts; result.end = pos; return result; } - function createNodeArray(node) { - var result = [node]; - result.pos = node.pos; - result.end = node.end; - return result; - } - function parseBracketedList(kind, parseElement, startToken, endToken) { - if (parseExpected(startToken)) { + function parseBracketedList(kind, parseElement, open, close) { + if (parseExpected(open)) { var result = parseDelimitedList(kind, parseElement); - parseExpected(endToken); + parseExpected(close); return result; } return createMissingList(); @@ -3271,7 +3373,7 @@ var ts; } function parseTemplateSpan() { var span = createNode(159 /* TemplateSpan */); - span.expression = parseExpression(false); + span.expression = allowInAnd(parseExpression); var literal; if (token === 14 /* CloseBraceToken */) { reScanTemplateToken(); @@ -3293,7 +3395,7 @@ var ts; nextToken(); finishNode(node); if (node.kind === 6 /* NumericLiteral */ && sourceText.charCodeAt(tokenPos) === 48 /* _0 */ && ts.isOctalDigit(sourceText.charCodeAt(tokenPos + 1))) { - node.flags |= 16384 /* OctalLiteral */; + node.flags |= 8192 /* OctalLiteral */; } return node; } @@ -3348,15 +3450,14 @@ var ts; node.modifiers = modifiers; } } - function parseParameter(flags) { - if (flags === void 0) { flags = 0; } + function parseParameter() { var node = createNode(123 /* Parameter */); - var modifiers = parseModifiers(3 /* Parameters */); + var modifiers = parseModifiers(); setModifiers(node, modifiers); if (parseOptional(20 /* DotDotDotToken */)) { node.flags |= 8 /* Rest */; } - node.name = parseIdentifier(); + node.name = inGeneratorParameterContext() ? doInYieldContext(parseIdentifier) : parseIdentifier(); if (node.name.kind === 120 /* Missing */ && node.flags === 0 && isModifier(token)) { nextToken(); } @@ -3364,68 +3465,82 @@ var ts; node.flags |= 4 /* QuestionMark */; } node.type = parseParameterType(); - node.initializer = parseInitializer(true); + node.initializer = inGeneratorParameterContext() ? doOutsideOfYieldContext(parseParameterInitializer) : parseParameterInitializer(); return finishNode(node); } - function parseSignature(kind, returnToken, returnTokenRequired) { + function parseParameterInitializer() { + return parseInitializer(true); + } + function parseSignature(kind, returnToken, returnTokenRequired, yieldAndGeneratorParameterContext) { + var signature = {}; + fillSignature(kind, returnToken, returnTokenRequired, yieldAndGeneratorParameterContext, signature); + return signature; + } + function fillSignature(kind, returnToken, returnTokenRequired, yieldAndGeneratorParameterContext, signature) { if (kind === 130 /* ConstructSignature */) { parseExpected(86 /* NewKeyword */); } - var typeParameters = parseTypeParameters(); - var parameters = parseParameterList(15 /* OpenParenToken */, 16 /* CloseParenToken */); - var type; + signature.typeParameters = parseTypeParameters(); + signature.parameters = parseParameterList(yieldAndGeneratorParameterContext); if (returnTokenRequired) { parseExpected(returnToken); - type = parseType(); + signature.type = parseType(); } else if (parseOptional(returnToken)) { - type = parseType(); + signature.type = parseType(); } - return { - typeParameters: typeParameters, - parameters: parameters, - type: type - }; } - function parseParameterList(startDelimiter, endDelimiter) { - return parseBracketedList(13 /* Parameters */, parseParameter, startDelimiter, endDelimiter); + function parseParameterList(yieldAndGeneratorParameterContext) { + if (parseExpected(15 /* OpenParenToken */)) { + var savedYieldContext = inYieldContext(); + var savedGeneratorParameterContext = inGeneratorParameterContext(); + setYieldContext(yieldAndGeneratorParameterContext); + setGeneratorParameterContext(yieldAndGeneratorParameterContext); + var result = parseDelimitedList(13 /* Parameters */, parseParameter); + parseExpected(16 /* CloseParenToken */); + setYieldContext(savedYieldContext); + setGeneratorParameterContext(savedGeneratorParameterContext); + return result; + } + return createMissingList(); } function parseSignatureMember(kind, returnToken) { var node = createNode(kind); - var sig = parseSignature(kind, returnToken, false); - node.typeParameters = sig.typeParameters; - node.parameters = sig.parameters; - node.type = sig.type; + fillSignature(kind, returnToken, false, false, node); parseSemicolon(); return finishNode(node); } - function parseIndexSignatureMember(modifiers, pos) { - var node = createNode(131 /* IndexSignature */, pos); + function parseIndexSignatureMember(fullStart, modifiers) { + var node = createNode(131 /* IndexSignature */, fullStart); setModifiers(node, modifiers); - node.parameters = parseParameterList(17 /* OpenBracketToken */, 18 /* CloseBracketToken */); + node.parameters = parseBracketedList(13 /* Parameters */, parseParameter, 17 /* OpenBracketToken */, 18 /* CloseBracketToken */); node.type = parseTypeAnnotation(); parseSemicolon(); return finishNode(node); } function parsePropertyOrMethod() { - var node = createNode(0 /* Unknown */); - node.name = parsePropertyName(); + var fullStart = scanner.getStartPos(); + var name = parsePropertyName(); + var flags = 0; if (parseOptional(49 /* QuestionToken */)) { - node.flags |= 4 /* QuestionMark */; + flags = 4 /* QuestionMark */; } if (token === 15 /* OpenParenToken */ || token === 23 /* LessThanToken */) { - node.kind = 125 /* Method */; - var sig = parseSignature(129 /* CallSignature */, 50 /* ColonToken */, false); - node.typeParameters = sig.typeParameters; - node.parameters = sig.parameters; - node.type = sig.type; + var method = createNode(125 /* Method */, fullStart); + method.name = name; + method.flags = flags; + fillSignature(129 /* CallSignature */, 50 /* ColonToken */, false, false, method); + parseSemicolon(); + return finishNode(method); } else { - node.kind = 124 /* Property */; - node.type = parseTypeAnnotation(); + var property = createNode(124 /* Property */, fullStart); + property.name = name; + property.flags = flags; + property.type = parseTypeAnnotation(); + parseSemicolon(); + return finishNode(property); } - parseSemicolon(); - return finishNode(node); } function isStartOfTypeMember() { switch (token) { @@ -3443,7 +3558,7 @@ var ts; case 23 /* LessThanToken */: return parseSignatureMember(129 /* CallSignature */, 50 /* ColonToken */); case 17 /* OpenBracketToken */: - return parseIndexSignatureMember(undefined); + return parseIndexSignatureMember(scanner.getStartPos(), undefined); case 86 /* NewKeyword */: if (lookAhead(function () { return nextToken() === 15 /* OpenParenToken */ || token === 23 /* LessThanToken */; })) { return parseSignatureMember(130 /* ConstructSignature */, 50 /* ColonToken */); @@ -3459,14 +3574,19 @@ var ts; } function parseTypeLiteral() { var node = createNode(136 /* TypeLiteral */); + node.members = parseObjectType(); + return finishNode(node); + } + function parseObjectType() { + var members; if (parseExpected(13 /* OpenBraceToken */)) { - node.members = parseList(5 /* TypeMembers */, false, parseTypeMember); + members = parseList(5 /* TypeMembers */, false, parseTypeMember); parseExpected(14 /* CloseBraceToken */); } else { - node.members = createMissingList(); + members = createMissingList(); } - return finishNode(node); + return members; } function parseTupleType() { var node = createNode(138 /* TupleType */); @@ -3481,13 +3601,9 @@ var ts; return finishNode(node); } function parseFunctionType(typeKind) { - var member = createNode(typeKind); - var sig = parseSignature(typeKind === 133 /* FunctionType */ ? 129 /* CallSignature */ : 130 /* ConstructSignature */, 31 /* EqualsGreaterThanToken */, true); - member.typeParameters = sig.typeParameters; - member.parameters = sig.parameters; - member.type = sig.type; - finishNode(member); - return member; + var node = createNode(typeKind); + fillSignature(typeKind === 133 /* FunctionType */ ? 129 /* CallSignature */ : 130 /* ConstructSignature */, 31 /* EqualsGreaterThanToken */, true, false, node); + return finishNode(node); } function parseKeywordAndNoDot() { var node = parseTokenNode(); @@ -3587,6 +3703,16 @@ var ts; }); } 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 parseFunctionType(133 /* FunctionType */); } @@ -3627,6 +3753,7 @@ var ts; case 38 /* MinusMinusToken */: case 23 /* LessThanToken */: case 63 /* Identifier */: + case 108 /* YieldKeyword */: return true; default: return isIdentifier(); @@ -3635,38 +3762,68 @@ var ts; function isStartOfExpressionStatement() { return token !== 13 /* OpenBraceToken */ && token !== 81 /* FunctionKeyword */ && isStartOfExpression(); } - function parseExpression(noIn) { - var expr = parseAssignmentExpression(noIn); + function parseExpression() { + var expr = parseAssignmentExpression(); while (parseOptional(22 /* CommaToken */)) { - expr = makeBinaryExpression(expr, 22 /* CommaToken */, parseAssignmentExpression(noIn)); + expr = makeBinaryExpression(expr, 22 /* CommaToken */, parseAssignmentExpression()); } return expr; } - function parseInitializer(inParameter, noIn) { + function parseInitializer(inParameter) { if (token !== 51 /* EqualsToken */) { if (scanner.hasPrecedingLineBreak() || (inParameter && token === 13 /* OpenBraceToken */) || !isStartOfExpression()) { return undefined; } } parseExpected(51 /* EqualsToken */); - return parseAssignmentExpression(noIn); + return parseAssignmentExpression(); } - function parseAssignmentExpression(noIn) { + function parseAssignmentExpression() { + if (isYieldExpression()) { + return parseYieldExpression(); + } var arrowExpression = tryParseParenthesizedArrowFunctionExpression(); if (arrowExpression) { return arrowExpression; } - var expr = parseConditionalExpression(noIn); + var expr = parseConditionalExpression(); if (expr.kind === 63 /* Identifier */ && token === 31 /* EqualsGreaterThanToken */) { return parseSimpleArrowFunctionExpression(expr); } if (isLeftHandSideExpression(expr) && isAssignmentOperator(token)) { var operator = token; nextToken(); - return makeBinaryExpression(expr, operator, parseAssignmentExpression(noIn)); + return makeBinaryExpression(expr, operator, parseAssignmentExpression()); } return expr; } + function isYieldExpression() { + if (token === 108 /* YieldKeyword */) { + if (inYieldContext()) { + return true; + } + if (inStrictModeContext()) { + return true; + } + return lookAhead(function () { + nextToken(); + return !scanner.hasPrecedingLineBreak() && isIdentifier(); + }); + } + return false; + } + function parseYieldExpression() { + var node = createNode(160 /* YieldExpression */); + nextToken(); + if (!scanner.hasPrecedingLineBreak() && (token === 34 /* AsteriskToken */ || isStartOfExpression())) { + node.asteriskToken = parseOptionalToken(34 /* AsteriskToken */); + node.expression = parseAssignmentExpression(); + return finishNode(node); + } + else { + return finishNode(node); + } + } function parseSimpleArrowFunctionExpression(identifier) { ts.Debug.assert(token === 31 /* EqualsGreaterThanToken */, "parseSimpleArrowFunctionExpression should only have been called if we had a =>"); parseExpected(31 /* EqualsGreaterThanToken */); @@ -3678,7 +3835,7 @@ var ts; parameters.pos = parameter.pos; parameters.end = parameter.end; var signature = { parameters: parameters }; - return parseArrowExpressionTail(identifier.pos, signature, false); + return parseArrowExpressionTail(identifier.pos, signature); } function tryParseParenthesizedArrowFunctionExpression() { var triState = isParenthesizedArrowFunctionExpression(); @@ -3687,18 +3844,18 @@ var ts; } var pos = getNodePos(); if (triState === 1 /* True */) { - var sig = parseSignature(129 /* CallSignature */, 50 /* ColonToken */, false); + var sig = parseSignature(129 /* CallSignature */, 50 /* ColonToken */, false, false); if (parseExpected(31 /* EqualsGreaterThanToken */) || token === 13 /* OpenBraceToken */) { - return parseArrowExpressionTail(pos, sig, false); + return parseArrowExpressionTail(pos, sig); } else { - return makeFunctionExpression(153 /* ArrowFunction */, pos, undefined, sig, createMissingNode()); + return makeFunctionExpression(153 /* ArrowFunction */, pos, undefined, undefined, sig, createMissingNode()); } } var sig = tryParseSignatureIfArrowOrBraceFollows(); if (sig) { parseExpected(31 /* EqualsGreaterThanToken */); - return parseArrowExpressionTail(pos, sig, false); + return parseArrowExpressionTail(pos, sig); } else { return undefined; @@ -3748,49 +3905,46 @@ var ts; } function tryParseSignatureIfArrowOrBraceFollows() { return tryParse(function () { - var sig = parseSignature(129 /* CallSignature */, 50 /* ColonToken */, false); + var sig = parseSignature(129 /* CallSignature */, 50 /* ColonToken */, false, false); if (token === 31 /* EqualsGreaterThanToken */ || token === 13 /* OpenBraceToken */) { return sig; } return undefined; }); } - function parseArrowExpressionTail(pos, sig, noIn) { + function parseArrowExpressionTail(pos, sig) { var body; if (token === 13 /* OpenBraceToken */) { - body = parseFunctionBlock(false); + body = parseFunctionBlock(false, false); } else if (isStatement(true) && !isStartOfExpressionStatement() && token !== 81 /* FunctionKeyword */) { - body = parseFunctionBlock(true); + body = parseFunctionBlock(false, true); } else { - body = parseAssignmentExpression(noIn); + body = parseAssignmentExpression(); } - return makeFunctionExpression(153 /* ArrowFunction */, pos, undefined, sig, body); + return makeFunctionExpression(153 /* ArrowFunction */, pos, undefined, undefined, sig, body); } - function parseConditionalExpression(noIn) { - var expr = parseBinaryExpression(noIn); + function parseConditionalExpression() { + var expr = parseBinaryOperators(parseUnaryExpression(), 0); while (parseOptional(49 /* QuestionToken */)) { var node = createNode(157 /* ConditionalExpression */, expr.pos); node.condition = expr; - node.whenTrue = parseAssignmentExpression(false); + node.whenTrue = allowInAnd(parseAssignmentExpression); parseExpected(50 /* ColonToken */); - node.whenFalse = parseAssignmentExpression(noIn); + node.whenFalse = parseAssignmentExpression(); expr = finishNode(node); } return expr; } - function parseBinaryExpression(noIn) { - return parseBinaryOperators(parseUnaryExpression(), 0, noIn); - } - function parseBinaryOperators(expr, minPrecedence, noIn) { + function parseBinaryOperators(expr, minPrecedence) { while (true) { reScanGreaterToken(); var precedence = getOperatorPrecedence(); - if (precedence && precedence > minPrecedence && (!noIn || token !== 84 /* InKeyword */)) { + if (precedence && precedence > minPrecedence && (!inDisallowInContext() || token !== 84 /* InKeyword */)) { var operator = token; nextToken(); - expr = makeBinaryExpression(expr, operator, parseBinaryOperators(parseUnaryExpression(), precedence, noIn)); + expr = makeBinaryExpression(expr, operator, parseBinaryOperators(parseUnaryExpression(), precedence)); continue; } return expr; @@ -3915,7 +4069,7 @@ var ts; indexedAccess.index = createMissingNode(); } else { - indexedAccess.index = parseExpression(); + indexedAccess.index = allowInAnd(parseExpression); if (indexedAccess.index.kind === 7 /* StringLiteral */ || indexedAccess.index.kind === 6 /* NumericLiteral */) { var literal = indexedAccess.index; literal.text = internIdentifier(literal.text); @@ -4005,18 +4159,18 @@ var ts; function parseParenExpression() { var node = createNode(151 /* ParenExpression */); parseExpected(15 /* OpenParenToken */); - node.expression = parseExpression(); + node.expression = allowInAnd(parseExpression); parseExpected(16 /* CloseParenToken */); return finishNode(node); } function parseAssignmentExpressionOrOmittedExpression() { - return token === 22 /* CommaToken */ ? createNode(160 /* OmittedExpression */) : parseAssignmentExpression(); + return token === 22 /* CommaToken */ ? createNode(161 /* OmittedExpression */) : parseAssignmentExpression(); } function parseArrayLiteralElement() { return parseAssignmentExpressionOrOmittedExpression(); } function parseArgumentExpression() { - return parseAssignmentExpressionOrOmittedExpression(); + return allowInAnd(parseAssignmentExpressionOrOmittedExpression); } function parseArrayLiteral() { var node = createNode(141 /* ArrayLiteral */); @@ -4029,16 +4183,17 @@ var ts; } function parsePropertyAssignment() { var nodePos = scanner.getStartPos(); + var asteriskToken = parseOptionalToken(34 /* AsteriskToken */); var tokenIsIdentifier = isIdentifier(); var nameToken = token; var propertyName = parsePropertyName(); var node; - if (token === 15 /* OpenParenToken */ || token === 23 /* LessThanToken */) { + if (asteriskToken || token === 15 /* OpenParenToken */ || token === 23 /* LessThanToken */) { node = createNode(143 /* PropertyAssignment */, nodePos); node.name = propertyName; - var sig = parseSignature(129 /* CallSignature */, 50 /* ColonToken */, false); - var body = parseFunctionBlock(false); - node.initializer = makeFunctionExpression(152 /* FunctionExpression */, node.pos, undefined, sig, body); + var sig = parseSignature(129 /* CallSignature */, 50 /* ColonToken */, false, !!asteriskToken); + var body = parseFunctionBlock(!!asteriskToken, false); + node.initializer = makeFunctionExpression(152 /* FunctionExpression */, node.pos, asteriskToken, undefined, sig, body); return finishNode(node); } var flags = 0; @@ -4054,7 +4209,7 @@ var ts; node = createNode(143 /* PropertyAssignment */, nodePos); node.name = propertyName; parseExpected(50 /* ColonToken */); - node.initializer = parseAssignmentExpression(false); + node.initializer = allowInAnd(parseAssignmentExpression); } node.flags = flags; return finishNode(node); @@ -4081,13 +4236,18 @@ var ts; function parseFunctionExpression() { var pos = getNodePos(); parseExpected(81 /* FunctionKeyword */); - var name = isIdentifier() ? parseIdentifier() : undefined; - var sig = parseSignature(129 /* CallSignature */, 50 /* ColonToken */, false); - var body = parseFunctionBlock(false); - return makeFunctionExpression(152 /* FunctionExpression */, pos, name, sig, body); + var asteriskToken = parseOptionalToken(34 /* AsteriskToken */); + var name = asteriskToken ? doInYieldContext(parseOptionalIdentifier) : parseOptionalIdentifier(); + var sig = parseSignature(129 /* CallSignature */, 50 /* ColonToken */, false, !!asteriskToken); + var body = parseFunctionBlock(!!asteriskToken, false); + return makeFunctionExpression(152 /* FunctionExpression */, pos, asteriskToken, name, sig, body); } - function makeFunctionExpression(kind, pos, name, sig, body) { + function parseOptionalIdentifier() { + return isIdentifier() ? parseIdentifier() : undefined; + } + function makeFunctionExpression(kind, pos, asteriskToken, name, sig, body) { var node = createNode(kind, pos); + node.asteriskToken = asteriskToken; node.name = name; node.typeParameters = sig.typeParameters; node.parameters = sig.parameters; @@ -4106,7 +4266,7 @@ var ts; return finishNode(node); } function parseBlock(ignoreMissingOpenBrace, checkForStrictMode) { - var node = createNode(161 /* Block */); + var node = createNode(162 /* Block */); if (parseExpected(13 /* OpenBraceToken */) || ignoreMissingOpenBrace) { node.statements = parseList(2 /* BlockStatements */, checkForStrictMode, parseStatement); parseExpected(14 /* CloseBraceToken */); @@ -4116,42 +4276,45 @@ var ts; } return finishNode(node); } - function parseFunctionBlock(ignoreMissingOpenBrace) { + function parseFunctionBlock(allowYield, ignoreMissingOpenBrace) { + var savedYieldContext = inYieldContext(); + setYieldContext(allowYield); var block = parseBlock(ignoreMissingOpenBrace, true); - block.kind = 186 /* FunctionBlock */; + block.kind = 187 /* FunctionBlock */; + setYieldContext(savedYieldContext); return block; } function parseEmptyStatement() { - var node = createNode(163 /* EmptyStatement */); + var node = createNode(164 /* EmptyStatement */); parseExpected(21 /* SemicolonToken */); return finishNode(node); } function parseIfStatement() { - var node = createNode(165 /* IfStatement */); + var node = createNode(166 /* IfStatement */); parseExpected(82 /* IfKeyword */); parseExpected(15 /* OpenParenToken */); - node.expression = parseExpression(); + node.expression = allowInAnd(parseExpression); parseExpected(16 /* CloseParenToken */); node.thenStatement = parseStatement(); node.elseStatement = parseOptional(74 /* ElseKeyword */) ? parseStatement() : undefined; return finishNode(node); } function parseDoStatement() { - var node = createNode(166 /* DoStatement */); + var node = createNode(167 /* DoStatement */); parseExpected(73 /* DoKeyword */); node.statement = parseStatement(); parseExpected(98 /* WhileKeyword */); parseExpected(15 /* OpenParenToken */); - node.expression = parseExpression(); + node.expression = allowInAnd(parseExpression); parseExpected(16 /* CloseParenToken */); parseOptional(21 /* SemicolonToken */); return finishNode(node); } function parseWhileStatement() { - var node = createNode(167 /* WhileStatement */); + var node = createNode(168 /* WhileStatement */); parseExpected(98 /* WhileKeyword */); parseExpected(15 /* OpenParenToken */); - node.expression = parseExpression(); + node.expression = allowInAnd(parseExpression); parseExpected(16 /* CloseParenToken */); node.statement = parseStatement(); return finishNode(node); @@ -4162,33 +4325,33 @@ var ts; parseExpected(15 /* OpenParenToken */); if (token !== 21 /* SemicolonToken */) { if (parseOptional(96 /* VarKeyword */)) { - var declarations = parseVariableDeclarationList(0, true); + var declarations = disallowInAnd(parseVariableDeclarationList); } else if (parseOptional(102 /* LetKeyword */)) { - var declarations = parseVariableDeclarationList(2048 /* Let */, true); + var declarations = setFlag(disallowInAnd(parseVariableDeclarationList), 2048 /* Let */); } else if (parseOptional(68 /* ConstKeyword */)) { - var declarations = parseVariableDeclarationList(4096 /* Const */, true); + var declarations = setFlag(disallowInAnd(parseVariableDeclarationList), 4096 /* Const */); } else { - var varOrInit = parseExpression(true); + var varOrInit = disallowInAnd(parseExpression); } } var forOrForInStatement; if (parseOptional(84 /* InKeyword */)) { - var forInStatement = createNode(169 /* ForInStatement */, pos); + var forInStatement = createNode(170 /* ForInStatement */, pos); if (declarations) { forInStatement.declarations = declarations; } else { forInStatement.variable = varOrInit; } - forInStatement.expression = parseExpression(); + forInStatement.expression = allowInAnd(parseExpression); parseExpected(16 /* CloseParenToken */); forOrForInStatement = forInStatement; } else { - var forStatement = createNode(168 /* ForStatement */, pos); + var forStatement = createNode(169 /* ForStatement */, pos); if (declarations) { forStatement.declarations = declarations; } @@ -4197,11 +4360,11 @@ var ts; } parseExpected(21 /* SemicolonToken */); if (token !== 21 /* SemicolonToken */ && token !== 16 /* CloseParenToken */) { - forStatement.condition = parseExpression(); + forStatement.condition = allowInAnd(parseExpression); } parseExpected(21 /* SemicolonToken */); if (token !== 16 /* CloseParenToken */) { - forStatement.iterator = parseExpression(); + forStatement.iterator = allowInAnd(parseExpression); } parseExpected(16 /* CloseParenToken */); forOrForInStatement = forStatement; @@ -4211,7 +4374,7 @@ var ts; } function parseBreakOrContinueStatement(kind) { var node = createNode(kind); - parseExpected(kind === 171 /* BreakStatement */ ? 64 /* BreakKeyword */ : 69 /* ContinueKeyword */); + parseExpected(kind === 172 /* BreakStatement */ ? 64 /* BreakKeyword */ : 69 /* ContinueKeyword */); if (!canParseSemicolon()) { node.label = parseIdentifier(); } @@ -4219,35 +4382,33 @@ var ts; return finishNode(node); } function parseReturnStatement() { - var node = createNode(172 /* ReturnStatement */); - var returnTokenStart = scanner.getTokenPos(); - var returnTokenLength = scanner.getTextPos() - returnTokenStart; + var node = createNode(173 /* ReturnStatement */); parseExpected(88 /* ReturnKeyword */); if (!canParseSemicolon()) { - node.expression = parseExpression(); + node.expression = allowInAnd(parseExpression); } parseSemicolon(); return finishNode(node); } function parseWithStatement() { - var node = createNode(173 /* WithStatement */); + var node = createNode(174 /* WithStatement */); parseExpected(99 /* WithKeyword */); parseExpected(15 /* OpenParenToken */); - node.expression = parseExpression(); + node.expression = allowInAnd(parseExpression); parseExpected(16 /* CloseParenToken */); node.statement = parseStatement(); return finishNode(node); } function parseCaseClause() { - var node = createNode(175 /* CaseClause */); + var node = createNode(176 /* CaseClause */); parseExpected(65 /* CaseKeyword */); - node.expression = parseExpression(); + node.expression = allowInAnd(parseExpression); parseExpected(50 /* ColonToken */); node.statements = parseList(4 /* SwitchClauseStatements */, false, parseStatement); return finishNode(node); } function parseDefaultClause() { - var node = createNode(176 /* DefaultClause */); + var node = createNode(177 /* DefaultClause */); parseExpected(71 /* DefaultKeyword */); parseExpected(50 /* ColonToken */); node.statements = parseList(4 /* SwitchClauseStatements */, false, parseStatement); @@ -4257,10 +4418,10 @@ var ts; return token === 65 /* CaseKeyword */ ? parseCaseClause() : parseDefaultClause(); } function parseSwitchStatement() { - var node = createNode(174 /* SwitchStatement */); + var node = createNode(175 /* SwitchStatement */); parseExpected(90 /* SwitchKeyword */); parseExpected(15 /* OpenParenToken */); - node.expression = parseExpression(); + node.expression = allowInAnd(parseExpression); parseExpected(16 /* CloseParenToken */); parseExpected(13 /* OpenBraceToken */); node.clauses = parseList(3 /* SwitchClauses */, false, parseCaseOrDefaultClause); @@ -4268,23 +4429,23 @@ var ts; return finishNode(node); } function parseThrowStatement() { - var node = createNode(178 /* ThrowStatement */); + var node = createNode(179 /* ThrowStatement */); parseExpected(92 /* ThrowKeyword */); if (scanner.hasPrecedingLineBreak()) { error(ts.Diagnostics.Line_break_not_permitted_here); } - node.expression = parseExpression(); + node.expression = allowInAnd(parseExpression); parseSemicolon(); return finishNode(node); } function parseTryStatement() { - var node = createNode(179 /* TryStatement */); - node.tryBlock = parseTokenAndBlock(94 /* TryKeyword */, 180 /* TryBlock */); + var node = createNode(180 /* TryStatement */); + node.tryBlock = parseTokenAndBlock(94 /* TryKeyword */, 181 /* TryBlock */); if (token === 66 /* CatchKeyword */) { node.catchBlock = parseCatchBlock(); } if (token === 79 /* FinallyKeyword */) { - node.finallyBlock = parseTokenAndBlock(79 /* FinallyKeyword */, 182 /* FinallyBlock */); + node.finallyBlock = parseTokenAndBlock(79 /* FinallyKeyword */, 183 /* FinallyBlock */); } if (!(node.catchBlock || node.finallyBlock)) { error(ts.Diagnostics.catch_or_finally_expected); @@ -4307,34 +4468,31 @@ var ts; var typeAnnotation = parseTypeAnnotation(); parseExpected(16 /* CloseParenToken */); var result = parseBlock(false, false); - result.kind = 181 /* CatchBlock */; + result.kind = 182 /* CatchBlock */; result.pos = pos; result.variable = variable; result.type = typeAnnotation; return result; } function parseDebuggerStatement() { - var node = createNode(183 /* DebuggerStatement */); + var node = createNode(184 /* DebuggerStatement */); parseExpected(70 /* DebuggerKeyword */); parseSemicolon(); return finishNode(node); } - function isIterationStatementStart() { - return token === 98 /* WhileKeyword */ || token === 73 /* DoKeyword */ || token === 80 /* ForKeyword */; - } function isLabel() { return isIdentifier() && lookAhead(function () { return nextToken() === 50 /* ColonToken */; }); } function parseLabeledStatement() { - var node = createNode(177 /* LabeledStatement */); + var node = createNode(178 /* LabeledStatement */); node.label = parseIdentifier(); parseExpected(50 /* ColonToken */); - node.statement = isLabel() ? parseLabeledStatement() : parseStatement(); + node.statement = parseStatement(); return finishNode(node); } function parseExpressionStatement() { - var node = createNode(164 /* ExpressionStatement */); - node.expression = parseExpression(); + var node = createNode(165 /* ExpressionStatement */); + node.expression = allowInAnd(parseExpression); parseSemicolon(); return finishNode(node); } @@ -4390,9 +4548,9 @@ var ts; case 96 /* VarKeyword */: case 102 /* LetKeyword */: case 68 /* ConstKeyword */: - return parseVariableStatement(); + return parseVariableStatement(scanner.getStartPos(), undefined); case 81 /* FunctionKeyword */: - return parseFunctionDeclaration(); + return parseFunctionDeclaration(scanner.getStartPos(), undefined); case 21 /* SemicolonToken */: return parseEmptyStatement(); case 82 /* IfKeyword */: @@ -4404,9 +4562,9 @@ var ts; case 80 /* ForKeyword */: return parseForOrForInStatement(); case 69 /* ContinueKeyword */: - return parseBreakOrContinueStatement(170 /* ContinueStatement */); + return parseBreakOrContinueStatement(171 /* ContinueStatement */); case 64 /* BreakKeyword */: - return parseBreakOrContinueStatement(171 /* BreakStatement */); + return parseBreakOrContinueStatement(172 /* BreakStatement */); case 88 /* ReturnKeyword */: return parseReturnStatement(); case 99 /* WithKeyword */: @@ -4425,9 +4583,9 @@ var ts; return isLabel() ? parseLabeledStatement() : parseExpressionStatement(); } } - function parseFunctionBlockOrSemicolon() { + function parseFunctionBlockOrSemicolon(isGenerator) { if (token === 13 /* OpenBraceToken */) { - return parseFunctionBlock(false); + return parseFunctionBlock(isGenerator, false); } if (canParseSemicolon()) { parseSemicolon(); @@ -4435,24 +4593,25 @@ var ts; } error(ts.Diagnostics.Block_or_expected); } - function parseVariableDeclaration(flags, noIn) { - var node = createNode(184 /* VariableDeclaration */); - node.flags = flags; + function parseVariableDeclaration() { + var node = createNode(185 /* VariableDeclaration */); node.name = parseIdentifier(); node.type = parseTypeAnnotation(); - var initializerStart = scanner.getTokenPos(); - var initializerFirstTokenLength = scanner.getTextPos() - initializerStart; - node.initializer = parseInitializer(false, noIn); + node.initializer = parseInitializer(false); return finishNode(node); } - function parseVariableDeclarationList(flags, noIn) { - return parseDelimitedList(9 /* VariableDeclarations */, function () { return parseVariableDeclaration(flags, noIn); }); - } - function parseVariableStatement(pos, flags) { - var node = createNode(162 /* VariableStatement */, pos); - if (flags) { - node.flags = flags; + function setFlag(array, flag) { + for (var i = 0, n = array.length; i < n; i++) { + array[i].flags |= flag; } + return array; + } + function parseVariableDeclarationList() { + return parseDelimitedList(9 /* VariableDeclarations */, parseVariableDeclaration); + } + function parseVariableStatement(fullStart, modifiers) { + var node = createNode(163 /* VariableStatement */, fullStart); + setModifiers(node, modifiers); if (token === 102 /* LetKeyword */) { node.flags |= 2048 /* Let */; } @@ -4463,79 +4622,67 @@ var ts; ts.Debug.assert(token === 96 /* VarKeyword */); } nextToken(); - node.declarations = parseVariableDeclarationList(node.flags, false); + node.declarations = allowInAnd(parseVariableDeclarationList); + setFlag(node.declarations, node.flags); parseSemicolon(); return finishNode(node); } - function parseFunctionDeclaration(pos, flags) { - var node = createNode(185 /* FunctionDeclaration */, pos); - if (flags) - node.flags = flags; + function parseFunctionDeclaration(fullStart, modifiers) { + var node = createNode(186 /* FunctionDeclaration */, fullStart); + setModifiers(node, modifiers); parseExpected(81 /* FunctionKeyword */); + node.asteriskToken = parseOptionalToken(34 /* AsteriskToken */); node.name = parseIdentifier(); - var sig = parseSignature(129 /* CallSignature */, 50 /* ColonToken */, false); - node.typeParameters = sig.typeParameters; - node.parameters = sig.parameters; - node.type = sig.type; - node.body = parseFunctionBlockOrSemicolon(); + fillSignature(129 /* CallSignature */, 50 /* ColonToken */, false, !!node.asteriskToken, node); + node.body = parseFunctionBlockOrSemicolon(!!node.asteriskToken); return finishNode(node); } function parseConstructorDeclaration(pos, modifiers) { var node = createNode(126 /* Constructor */, pos); setModifiers(node, modifiers); parseExpected(111 /* ConstructorKeyword */); - var sig = parseSignature(129 /* CallSignature */, 50 /* ColonToken */, false); - node.typeParameters = sig.typeParameters; - node.parameters = sig.parameters; - node.type = sig.type; - node.body = parseFunctionBlockOrSemicolon(); + fillSignature(129 /* CallSignature */, 50 /* ColonToken */, false, false, node); + node.body = parseFunctionBlockOrSemicolon(false); return finishNode(node); } - function parsePropertyMemberDeclaration(pos, modifiers) { - var name = parsePropertyName(); + function parsePropertyMemberDeclaration(fullStart, modifiers) { var flags = modifiers ? modifiers.flags : 0; - var questionStart = scanner.getTokenPos(); + var asteriskToken = parseOptionalToken(34 /* AsteriskToken */); + var name = parsePropertyName(); if (parseOptional(49 /* QuestionToken */)) { flags |= 4 /* QuestionMark */; } - if (token === 15 /* OpenParenToken */ || token === 23 /* LessThanToken */) { - var method = createNode(125 /* Method */, pos); + if (asteriskToken || token === 15 /* OpenParenToken */ || token === 23 /* LessThanToken */) { + var method = createNode(125 /* Method */, fullStart); setModifiers(method, modifiers); if (flags) { method.flags = flags; } + method.asteriskToken = asteriskToken; method.name = name; - var sig = parseSignature(129 /* CallSignature */, 50 /* ColonToken */, false); - method.typeParameters = sig.typeParameters; - method.parameters = sig.parameters; - method.type = sig.type; - method.body = parseFunctionBlockOrSemicolon(); + fillSignature(129 /* CallSignature */, 50 /* ColonToken */, false, !!asteriskToken, method); + method.body = parseFunctionBlockOrSemicolon(!!asteriskToken); return finishNode(method); } else { - var property = createNode(124 /* Property */, pos); + var property = createNode(124 /* Property */, fullStart); setModifiers(property, modifiers); if (flags) { property.flags = flags; } property.name = name; property.type = parseTypeAnnotation(); - var initializerStart = scanner.getTokenPos(); - var initializerFirstTokenLength = scanner.getTextPos() - initializerStart; - property.initializer = parseInitializer(false); + property.initializer = allowInAnd(function () { return parseInitializer(false); }); parseSemicolon(); return finishNode(property); } } - function parseMemberAccessorDeclaration(kind, pos, modifiers) { - var node = createNode(kind, pos); + function parseMemberAccessorDeclaration(kind, fullStart, modifiers) { + var node = createNode(kind, fullStart); setModifiers(node, modifiers); node.name = parsePropertyName(); - var sig = parseSignature(129 /* CallSignature */, 50 /* ColonToken */, false); - node.typeParameters = sig.typeParameters; - node.parameters = sig.parameters; - node.type = sig.type; - node.body = parseFunctionBlockOrSemicolon(); + fillSignature(129 /* CallSignature */, 50 /* ColonToken */, false, false, node); + node.body = parseFunctionBlockOrSemicolon(false); return finishNode(node); } function isClassMemberStart() { @@ -4544,6 +4691,9 @@ var ts; idToken = token; nextToken(); } + if (token === 34 /* AsteriskToken */) { + return true; + } if (isPropertyName()) { idToken = token; nextToken(); @@ -4568,19 +4718,20 @@ var ts; } return false; } - function parseModifiers(context) { + function parseModifiers() { var flags = 0; var modifiers; while (true) { var modifierStart = scanner.getTokenPos(); - var modifierToken = token; - if (!parseAnyContextualModifier()) + var modifierKind = token; + if (!parseAnyContextualModifier()) { break; + } if (!modifiers) { modifiers = []; } - flags |= modifierToFlag(modifierToken); - modifiers.push(finishNode(createNode(modifierToken, modifierStart))); + flags |= modifierToFlag(modifierKind); + modifiers.push(finishNode(createNode(modifierKind, modifierStart))); } if (modifiers) { modifiers.flags = flags; @@ -4588,37 +4739,37 @@ var ts; return modifiers; } function parseClassMemberDeclaration() { - var pos = getNodePos(); - var modifiers = parseModifiers(2 /* ClassMembers */); + var fullStart = getNodePos(); + var modifiers = parseModifiers(); if (parseContextualModifier(113 /* GetKeyword */)) { - return parseMemberAccessorDeclaration(127 /* GetAccessor */, pos, modifiers); + return parseMemberAccessorDeclaration(127 /* GetAccessor */, fullStart, modifiers); } if (parseContextualModifier(117 /* SetKeyword */)) { - return parseMemberAccessorDeclaration(128 /* SetAccessor */, pos, modifiers); + return parseMemberAccessorDeclaration(128 /* SetAccessor */, fullStart, modifiers); } if (token === 111 /* ConstructorKeyword */) { - return parseConstructorDeclaration(pos, modifiers); + return parseConstructorDeclaration(fullStart, modifiers); } - if (token >= 63 /* Identifier */ || token === 7 /* StringLiteral */ || token === 6 /* NumericLiteral */) { - return parsePropertyMemberDeclaration(pos, modifiers); + if (token >= 63 /* Identifier */ || token === 7 /* StringLiteral */ || token === 6 /* NumericLiteral */ || token === 34 /* AsteriskToken */) { + return parsePropertyMemberDeclaration(fullStart, modifiers); } if (token === 17 /* OpenBracketToken */) { - return parseIndexSignatureMember(modifiers, pos); + return parseIndexSignatureMember(fullStart, modifiers); } ts.Debug.fail("Should not have attempted to parse class member declaration."); } - function parseClassDeclaration(pos, flags) { - var node = createNode(187 /* ClassDeclaration */, pos); - node.flags = flags; + function parseClassDeclaration(fullStart, modifiers) { + var node = createNode(188 /* ClassDeclaration */, fullStart); + setModifiers(node, modifiers); parseExpected(67 /* ClassKeyword */); node.name = parseIdentifier(); node.typeParameters = parseTypeParameters(); - node.baseType = parseOptional(77 /* ExtendsKeyword */) ? parseTypeReference() : undefined; + node.baseType = inGeneratorParameterContext() ? doOutsideOfYieldContext(parseClassBaseType) : parseClassBaseType(); if (parseOptional(100 /* ImplementsKeyword */)) { node.implementedTypes = parseDelimitedList(8 /* BaseTypeReferences */, parseTypeReference); } if (parseExpected(13 /* OpenBraceToken */)) { - node.members = parseList(6 /* ClassMembers */, false, parseClassMemberDeclaration); + node.members = inGeneratorParameterContext() ? doOutsideOfYieldContext(parseClassMembers) : parseClassMembers(); parseExpected(14 /* CloseBraceToken */); } else { @@ -4626,21 +4777,27 @@ var ts; } return finishNode(node); } - function parseInterfaceDeclaration(pos, flags) { - var node = createNode(188 /* InterfaceDeclaration */, pos); - node.flags = flags; + function parseClassMembers() { + return parseList(6 /* ClassMembers */, false, parseClassMemberDeclaration); + } + function parseClassBaseType() { + return parseOptional(77 /* ExtendsKeyword */) ? parseTypeReference() : undefined; + } + function parseInterfaceDeclaration(fullStart, modifiers) { + var node = createNode(189 /* InterfaceDeclaration */, fullStart); + setModifiers(node, modifiers); parseExpected(101 /* InterfaceKeyword */); node.name = parseIdentifier(); node.typeParameters = parseTypeParameters(); if (parseOptional(77 /* ExtendsKeyword */)) { node.baseTypes = parseDelimitedList(8 /* BaseTypeReferences */, parseTypeReference); } - node.members = parseTypeLiteral().members; + node.members = parseObjectType(); return finishNode(node); } - function parseTypeAliasDeclaration(pos, flags) { - var node = createNode(189 /* TypeAliasDeclaration */, pos); - node.flags = flags; + function parseTypeAliasDeclaration(fullStart, modifiers) { + var node = createNode(190 /* TypeAliasDeclaration */, fullStart); + setModifiers(node, modifiers); parseExpected(119 /* TypeKeyword */); node.name = parseIdentifier(); parseExpected(51 /* EqualsToken */); @@ -4648,17 +4805,16 @@ var ts; parseSemicolon(); return finishNode(node); } - function parseAndCheckEnumDeclaration(pos, flags) { - var enumIsConst = flags & 4096 /* Const */; - function parseEnumMember() { - var node = createNode(195 /* EnumMember */); - node.name = parsePropertyName(); - node.initializer = parseInitializer(false); - return finishNode(node); - } - var node = createNode(190 /* EnumDeclaration */, pos); + function parseEnumMember() { + var node = createNode(196 /* EnumMember */, scanner.getStartPos()); + node.name = parsePropertyName(); + node.initializer = allowInAnd(function () { return parseInitializer(false); }); + return finishNode(node); + } + function parseAndCheckEnumDeclaration(fullStart, flags) { + var node = createNode(191 /* EnumDeclaration */, fullStart); node.flags = flags; - if (enumIsConst) { + if (flags & 4096 /* Const */) { parseExpected(68 /* ConstKeyword */); } parseExpected(75 /* EnumKeyword */); @@ -4673,7 +4829,7 @@ var ts; return finishNode(node); } function parseModuleBody() { - var node = createNode(192 /* ModuleBlock */); + var node = createNode(193 /* ModuleBlock */, scanner.getStartPos()); if (parseExpected(13 /* OpenBraceToken */)) { node.statements = parseList(1 /* ModuleElements */, false, parseModuleElement); parseExpected(14 /* CloseBraceToken */); @@ -4683,32 +4839,27 @@ var ts; } return finishNode(node); } - function parseInternalModuleTail(pos, flags) { - var node = createNode(191 /* ModuleDeclaration */, pos); + function parseInternalModuleTail(fullStart, flags) { + var node = createNode(192 /* ModuleDeclaration */, fullStart); node.flags = flags; node.name = parseIdentifier(); - if (parseOptional(19 /* DotToken */)) { - node.body = parseInternalModuleTail(getNodePos(), 1 /* Export */); - } - else { - node.body = parseModuleBody(); - } + node.body = parseOptional(19 /* DotToken */) ? parseInternalModuleTail(getNodePos(), 1 /* Export */) : parseModuleBody(); return finishNode(node); } - function parseAmbientExternalModuleDeclaration(pos, flags) { - var node = createNode(191 /* ModuleDeclaration */, pos); + function parseAmbientExternalModuleDeclaration(fullStart, flags) { + var node = createNode(192 /* ModuleDeclaration */, fullStart); node.flags = flags; node.name = parseStringLiteral(); node.body = parseModuleBody(); return finishNode(node); } - function parseModuleDeclaration(pos, flags) { + function parseModuleDeclaration(fullStart, flags) { parseExpected(114 /* ModuleKeyword */); - return token === 7 /* StringLiteral */ ? parseAmbientExternalModuleDeclaration(pos, flags) : parseInternalModuleTail(pos, flags); + return token === 7 /* StringLiteral */ ? parseAmbientExternalModuleDeclaration(fullStart, flags) : parseInternalModuleTail(fullStart, flags); } - function parseImportDeclaration(pos, flags) { - var node = createNode(193 /* ImportDeclaration */, pos); - node.flags = flags; + function parseImportDeclaration(fullStart, modifiers) { + var node = createNode(194 /* ImportDeclaration */, fullStart); + setModifiers(node, modifiers); parseExpected(83 /* ImportKeyword */); node.name = parseIdentifier(); parseExpected(51 /* EqualsToken */); @@ -4723,8 +4874,8 @@ var ts; parseSemicolon(); return finishNode(node); } - function parseExportAssignmentTail(pos, modifiers) { - var node = createNode(194 /* ExportAssignment */, pos); + function parseExportAssignmentTail(fullStart, modifiers) { + var node = createNode(195 /* ExportAssignment */, fullStart); setModifiers(node, modifiers); node.exportName = parseIdentifier(); parseSemicolon(); @@ -4758,14 +4909,13 @@ var ts; }); } } - function parseDeclaration(modifierContext) { - var pos = getNodePos(); - var modifiers = parseModifiers(modifierContext); + function parseDeclaration() { + var fullStart = getNodePos(); + var modifiers = parseModifiers(); if (token === 76 /* ExportKeyword */) { - var modifiersEnd = scanner.getStartPos(); nextToken(); if (parseOptional(51 /* EqualsToken */)) { - return parseExportAssignmentTail(pos, modifiers); + return parseExportAssignmentTail(fullStart, modifiers); } } var flags = modifiers ? modifiers.flags : 0; @@ -4773,37 +4923,37 @@ var ts; switch (token) { case 96 /* VarKeyword */: case 102 /* LetKeyword */: - result = parseVariableStatement(pos, flags); + result = parseVariableStatement(fullStart, modifiers); break; case 68 /* ConstKeyword */: var isConstEnum = lookAhead(function () { return nextToken() === 75 /* EnumKeyword */; }); if (isConstEnum) { - result = parseAndCheckEnumDeclaration(pos, flags | 4096 /* Const */); + result = parseAndCheckEnumDeclaration(fullStart, flags | 4096 /* Const */); } else { - result = parseVariableStatement(pos, flags); + result = parseVariableStatement(fullStart, modifiers); } break; case 81 /* FunctionKeyword */: - result = parseFunctionDeclaration(pos, flags); + result = parseFunctionDeclaration(fullStart, modifiers); break; case 67 /* ClassKeyword */: - result = parseClassDeclaration(pos, flags); + result = parseClassDeclaration(fullStart, modifiers); break; case 101 /* InterfaceKeyword */: - result = parseInterfaceDeclaration(pos, flags); + result = parseInterfaceDeclaration(fullStart, modifiers); break; case 119 /* TypeKeyword */: - result = parseTypeAliasDeclaration(pos, flags); + result = parseTypeAliasDeclaration(fullStart, modifiers); break; case 75 /* EnumKeyword */: - result = parseAndCheckEnumDeclaration(pos, flags); + result = parseAndCheckEnumDeclaration(fullStart, flags); break; case 114 /* ModuleKeyword */: - result = parseModuleDeclaration(pos, flags); + result = parseModuleDeclaration(fullStart, flags); break; case 83 /* ImportKeyword */: - result = parseImportDeclaration(pos, flags); + result = parseImportDeclaration(fullStart, modifiers); break; default: error(ts.Diagnostics.Declaration_expected); @@ -4817,13 +4967,13 @@ var ts; return isDeclarationStart() || isStatement(inErrorRecovery); } function parseSourceElement() { - return parseSourceElementOrModuleElement(0 /* SourceElements */); + return parseSourceElementOrModuleElement(); } function parseModuleElement() { - return parseSourceElementOrModuleElement(1 /* ModuleElements */); + return parseSourceElementOrModuleElement(); } - function parseSourceElementOrModuleElement(modifierContext) { - return isDeclarationStart() ? parseDeclaration(modifierContext) : parseStatement(); + function parseSourceElementOrModuleElement() { + return isDeclarationStart() ? parseDeclaration() : parseStatement(); } function processReferenceComments() { var referencedFiles = []; @@ -4870,7 +5020,7 @@ var ts; }; } function getExternalModuleIndicator() { - return ts.forEach(file.statements, function (node) { return node.flags & 1 /* Export */ || node.kind === 193 /* ImportDeclaration */ && node.externalModuleName || node.kind === 194 /* ExportAssignment */ ? node : undefined; }); + return ts.forEach(file.statements, function (node) { return node.flags & 1 /* Export */ || node.kind === 194 /* ImportDeclaration */ && node.externalModuleName || node.kind === 195 /* ExportAssignment */ ? node : undefined; }); } var syntacticDiagnostics; function getSyntacticDiagnostics() { @@ -4891,7 +5041,7 @@ var ts; if (ts.fileExtensionIs(filename, ".d.ts")) { rootNodeFlags = 1024 /* DeclarationFile */; } - file = createRootNode(196 /* SourceFile */, 0, sourceText.length, rootNodeFlags); + file = createRootNode(197 /* SourceFile */, 0, sourceText.length, rootNodeFlags); file.filename = ts.normalizePath(filename); file.text = sourceText; file.getLineAndCharacterFromPosition = getLineAndCharacterFromSourcePosition; @@ -4961,7 +5111,7 @@ var ts; parent = node; if (!checkModifiers(node)) { var savedInFunctionBlock = inFunctionBlock; - if (node.kind === 186 /* FunctionBlock */) { + if (node.kind === 187 /* FunctionBlock */) { inFunctionBlock = true; } var savedInAmbientContext = inAmbientContext; @@ -4992,48 +5142,49 @@ var ts; case 130 /* ConstructSignature */: case 133 /* FunctionType */: return checkAnyParsedSignature(node); - case 171 /* BreakStatement */: - case 170 /* ContinueStatement */: + case 172 /* BreakStatement */: + case 171 /* ContinueStatement */: return checkBreakOrContinueStatement(node); case 147 /* CallExpression */: case 148 /* NewExpression */: return checkCallOrNewExpression(node); - case 190 /* EnumDeclaration */: return checkEnumDeclaration(node); - case 123 /* Parameter */: return checkParameter(node); + case 191 /* EnumDeclaration */: return checkEnumDeclaration(node); case 156 /* BinaryExpression */: return checkBinaryExpression(node); - case 181 /* CatchBlock */: return checkCatchBlock(node); - case 187 /* ClassDeclaration */: return checkClassDeclaration(node); + case 182 /* CatchBlock */: return checkCatchBlock(node); + case 188 /* ClassDeclaration */: return checkClassDeclaration(node); case 126 /* Constructor */: return checkConstructor(node); - case 194 /* ExportAssignment */: return checkExportAssignment(node); - case 169 /* ForInStatement */: return checkForInStatement(node); - case 168 /* ForStatement */: return checkForStatement(node); - case 185 /* FunctionDeclaration */: return checkFunctionDeclaration(node); + case 195 /* ExportAssignment */: return checkExportAssignment(node); + case 170 /* ForInStatement */: return checkForInStatement(node); + case 169 /* ForStatement */: return checkForStatement(node); + case 186 /* FunctionDeclaration */: return checkFunctionDeclaration(node); case 152 /* FunctionExpression */: return checkFunctionExpression(node); case 127 /* GetAccessor */: return checkGetAccessor(node); case 146 /* IndexedAccess */: return checkIndexedAccess(node); case 131 /* IndexSignature */: return checkIndexSignature(node); - case 188 /* InterfaceDeclaration */: return checkInterfaceDeclaration(node); - case 177 /* LabeledStatement */: return checkLabeledStatement(node); + case 189 /* InterfaceDeclaration */: return checkInterfaceDeclaration(node); + case 178 /* LabeledStatement */: return checkLabeledStatement(node); case 125 /* Method */: return checkMethod(node); - case 191 /* ModuleDeclaration */: return checkModuleDeclaration(node); + case 192 /* ModuleDeclaration */: return checkModuleDeclaration(node); case 142 /* ObjectLiteral */: return checkObjectLiteral(node); case 6 /* NumericLiteral */: return checkNumericLiteral(node); + case 123 /* Parameter */: return checkParameter(node); case 155 /* PostfixOperator */: return checkPostfixOperator(node); case 154 /* PrefixOperator */: return checkPrefixOperator(node); case 124 /* Property */: return checkProperty(node); case 143 /* PropertyAssignment */: return checkPropertyAssignment(node); - case 172 /* ReturnStatement */: return checkReturnStatement(node); + case 173 /* ReturnStatement */: return checkReturnStatement(node); case 128 /* SetAccessor */: return checkSetAccessor(node); - case 196 /* SourceFile */: return checkSourceFile(node); + case 197 /* SourceFile */: return checkSourceFile(node); case 144 /* ShorthandPropertyAssignment */: return checkShorthandPropertyAssignment(node); - case 174 /* SwitchStatement */: return checkSwitchStatement(node); + case 175 /* SwitchStatement */: return checkSwitchStatement(node); case 149 /* TaggedTemplateExpression */: return checkTaggedTemplateExpression(node); case 138 /* TupleType */: return checkTupleType(node); case 122 /* TypeParameter */: return checkTypeParameter(node); case 132 /* TypeReference */: return checkTypeReference(node); - case 184 /* VariableDeclaration */: return checkVariableDeclaration(node); - case 162 /* VariableStatement */: return checkVariableStatement(node); - case 173 /* WithStatement */: return checkWithStatement(node); + case 185 /* VariableDeclaration */: return checkVariableDeclaration(node); + case 163 /* VariableStatement */: return checkVariableStatement(node); + case 174 /* WithStatement */: return checkWithStatement(node); + case 160 /* YieldExpression */: return checkYieldExpression(node); } } function grammarErrorOnFirstToken(node, message, arg0, arg1, arg2) { @@ -5061,23 +5212,23 @@ var ts; } function checkForStatementInAmbientContext(node, kind) { switch (kind) { - case 161 /* Block */: - case 163 /* EmptyStatement */: - case 165 /* IfStatement */: - case 166 /* DoStatement */: - case 167 /* WhileStatement */: - case 168 /* ForStatement */: - case 169 /* ForInStatement */: - case 170 /* ContinueStatement */: - case 171 /* BreakStatement */: - case 172 /* ReturnStatement */: - case 173 /* WithStatement */: - case 174 /* SwitchStatement */: - case 178 /* ThrowStatement */: - case 179 /* TryStatement */: - case 183 /* DebuggerStatement */: - case 177 /* LabeledStatement */: - case 164 /* ExpressionStatement */: + case 162 /* Block */: + case 164 /* EmptyStatement */: + case 166 /* IfStatement */: + case 167 /* DoStatement */: + case 168 /* WhileStatement */: + case 169 /* ForStatement */: + case 170 /* ForInStatement */: + case 171 /* ContinueStatement */: + case 172 /* BreakStatement */: + case 173 /* ReturnStatement */: + case 174 /* WithStatement */: + case 175 /* SwitchStatement */: + case 179 /* ThrowStatement */: + case 180 /* TryStatement */: + case 184 /* DebuggerStatement */: + case 178 /* LabeledStatement */: + case 165 /* ExpressionStatement */: return grammarErrorOnFirstToken(node, ts.Diagnostics.Statements_are_not_allowed_in_ambient_contexts); } } @@ -5085,7 +5236,7 @@ var ts; return checkTypeParameterList(node.typeParameters) || checkParameterList(node.parameters); } function checkBinaryExpression(node) { - if (node.flags & 8192 /* ParsedInStrictMode */) { + if (node.parserContextFlags & 1 /* StrictMode */) { if (isLeftHandSideExpression(node.left) && isAssignmentOperator(node.operator)) { if (isEvalOrArgumentsIdentifier(node.left)) { return reportInvalidUseInStrictMode(node.left); @@ -5095,12 +5246,12 @@ var ts; } function isIterationStatement(node, lookInLabeledStatements) { switch (node.kind) { - case 168 /* ForStatement */: - case 169 /* ForInStatement */: - case 166 /* DoStatement */: - case 167 /* WhileStatement */: + case 169 /* ForStatement */: + case 170 /* ForInStatement */: + case 167 /* DoStatement */: + case 168 /* WhileStatement */: return true; - case 177 /* LabeledStatement */: + case 178 /* LabeledStatement */: return lookInLabeledStatements && isIterationStatement(node.statement, lookInLabeledStatements); } return false; @@ -5111,7 +5262,7 @@ var ts; if (isAnyFunction(current)) { break; } - if (current.kind === 177 /* LabeledStatement */ && current.label.text === node.label.text) { + if (current.kind === 178 /* LabeledStatement */ && current.label.text === node.label.text) { return grammarErrorOnNode(node.label, ts.Diagnostics.Duplicate_label_0, getTextOfNodeFromSourceText(sourceText, node.label)); } current = current.parent; @@ -5124,17 +5275,17 @@ var ts; return grammarErrorOnNode(node, ts.Diagnostics.Jump_target_cannot_cross_function_boundary); } switch (current.kind) { - case 177 /* LabeledStatement */: + case 178 /* LabeledStatement */: if (node.label && current.label.text === node.label.text) { - var isMisplacedContinueLabel = node.kind === 170 /* ContinueStatement */ && !isIterationStatement(current.statement, true); + var isMisplacedContinueLabel = node.kind === 171 /* ContinueStatement */ && !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 174 /* SwitchStatement */: - if (node.kind === 171 /* BreakStatement */ && !node.label) { + case 175 /* SwitchStatement */: + if (node.kind === 172 /* BreakStatement */ && !node.label) { return false; } break; @@ -5147,11 +5298,11 @@ var ts; current = current.parent; } if (node.label) { - var message = node.kind === 171 /* BreakStatement */ ? 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; + var message = node.kind === 172 /* BreakStatement */ ? 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 === 171 /* BreakStatement */ ? 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; + var message = node.kind === 172 /* BreakStatement */ ? 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); } } @@ -5168,7 +5319,7 @@ var ts; if (arguments) { for (var i = 0, n = arguments.length; i < n; i++) { var arg = arguments[i]; - if (arg.kind === 160 /* OmittedExpression */) { + if (arg.kind === 161 /* OmittedExpression */) { return grammarErrorAtPos(arg.pos, 0, ts.Diagnostics.Argument_expression_expected); } } @@ -5203,7 +5354,7 @@ var ts; var colonStart = ts.skipTrivia(sourceText, node.variable.end); return grammarErrorAtPos(colonStart, ":".length, ts.Diagnostics.Catch_clause_parameter_cannot_have_a_type_annotation); } - if (node.flags & 8192 /* ParsedInStrictMode */ && isEvalOrArgumentsIdentifier(node.variable)) { + if (node.parserContextFlags & 1 /* StrictMode */ && isEvalOrArgumentsIdentifier(node.variable)) { return reportInvalidUseInStrictMode(node.variable); } } @@ -5282,13 +5433,18 @@ var ts; } } function checkFunctionDeclaration(node) { - return checkAnyParsedSignature(node) || checkFunctionName(node.name) || checkForBodyInAmbientContext(node.body, false); + return checkAnyParsedSignature(node) || checkFunctionName(node.name) || checkForBodyInAmbientContext(node.body, false) || checkForGenerator(node); + } + function checkForGenerator(node) { + if (node.asteriskToken) { + return grammarErrorOnNode(node.asteriskToken, ts.Diagnostics.generators_are_not_currently_supported); + } } function checkFunctionExpression(node) { - return checkAnyParsedSignature(node) || checkFunctionName(node.name); + return checkAnyParsedSignature(node) || checkFunctionName(node.name) || checkForGenerator(node); } function checkFunctionName(name) { - if (name && name.flags & 8192 /* ParsedInStrictMode */ && isEvalOrArgumentsIdentifier(name)) { + if (name && name.parserContextFlags & 1 /* StrictMode */ && isEvalOrArgumentsIdentifier(name)) { return reportInvalidUseInStrictMode(name); } } @@ -5346,10 +5502,10 @@ var ts; return checkForDisallowedTrailingComma(node.baseTypes) || checkForAtLeastOneHeritageClause(node.baseTypes, "extends"); } function checkMethod(node) { - return checkAnyParsedSignature(node) || checkForBodyInAmbientContext(node.body, false) || (node.parent.kind === 187 /* ClassDeclaration */ && checkForInvalidQuestionMark(node, ts.Diagnostics.A_class_member_cannot_be_declared_optional)); + return checkAnyParsedSignature(node) || checkForBodyInAmbientContext(node.body, false) || (node.parent.kind === 188 /* ClassDeclaration */ && checkForInvalidQuestionMark(node, ts.Diagnostics.A_class_member_cannot_be_declared_optional)) || checkForGenerator(node); } function checkForBodyInAmbientContext(body, isConstructor) { - if (inAmbientContext && body && body.kind === 186 /* FunctionBlock */) { + if (inAmbientContext && body && body.kind === 187 /* FunctionBlock */) { var diagnostic = isConstructor ? ts.Diagnostics.A_constructor_implementation_cannot_be_declared_in_an_ambient_context : ts.Diagnostics.A_function_implementation_cannot_be_declared_in_an_ambient_context; return grammarErrorOnFirstToken(body, diagnostic); } @@ -5363,14 +5519,14 @@ var ts; } } function checkModuleDeclarationStatements(node) { - if (node.name.kind === 63 /* Identifier */ && node.body.kind === 192 /* ModuleBlock */) { + if (node.name.kind === 63 /* Identifier */ && node.body.kind === 193 /* ModuleBlock */) { var statements = node.body.statements; for (var i = 0, n = statements.length; i < n; i++) { var statement = statements[i]; - if (statement.kind === 194 /* ExportAssignment */) { + if (statement.kind === 195 /* ExportAssignment */) { return grammarErrorOnNode(statement, ts.Diagnostics.An_export_assignment_cannot_be_used_in_an_internal_module); } - else if (statement.kind === 193 /* ImportDeclaration */ && statement.externalModuleName) { + else if (statement.kind === 194 /* ImportDeclaration */ && statement.externalModuleName) { return grammarErrorOnNode(statement.externalModuleName, ts.Diagnostics.Import_declarations_in_an_internal_module_cannot_reference_an_external_module); } } @@ -5382,10 +5538,10 @@ var ts; var GetAccessor = 2; var SetAccesor = 4; var GetOrSetAccessor = GetAccessor | SetAccesor; - var inStrictMode = (node.flags & 8192 /* ParsedInStrictMode */) !== 0; + var inStrictMode = (node.parserContextFlags & 1 /* StrictMode */) !== 0; for (var i = 0, n = node.properties.length; i < n; i++) { var prop = node.properties[i]; - if (prop.kind === 160 /* OmittedExpression */) { + if (prop.kind === 161 /* OmittedExpression */) { continue; } var p = prop; @@ -5431,8 +5587,8 @@ var ts; } } function checkNumericLiteral(node) { - if (node.flags & 16384 /* OctalLiteral */) { - if (node.flags & 8192 /* ParsedInStrictMode */) { + if (node.flags & 8192 /* OctalLiteral */) { + if (node.parserContextFlags & 1 /* StrictMode */) { return grammarErrorOnNode(node, ts.Diagnostics.Octal_literals_are_not_allowed_in_strict_mode); } else if (languageVersion >= 1 /* ES5 */) { @@ -5448,15 +5604,15 @@ var ts; case 124 /* Property */: case 125 /* Method */: case 131 /* IndexSignature */: - case 187 /* ClassDeclaration */: - case 188 /* InterfaceDeclaration */: - case 191 /* ModuleDeclaration */: - case 190 /* EnumDeclaration */: - case 194 /* ExportAssignment */: - case 162 /* VariableStatement */: - case 185 /* FunctionDeclaration */: - case 189 /* TypeAliasDeclaration */: - case 193 /* ImportDeclaration */: + case 188 /* ClassDeclaration */: + case 189 /* InterfaceDeclaration */: + case 192 /* ModuleDeclaration */: + case 191 /* EnumDeclaration */: + case 195 /* ExportAssignment */: + case 163 /* VariableStatement */: + case 186 /* FunctionDeclaration */: + case 190 /* TypeAliasDeclaration */: + case 194 /* ImportDeclaration */: case 123 /* Parameter */: break; default: @@ -5491,7 +5647,7 @@ var ts; else if (flags & 128 /* Static */) { return grammarErrorOnNode(modifier, ts.Diagnostics._0_modifier_must_precede_1_modifier, text, "static"); } - else if (node.parent.kind === 192 /* ModuleBlock */ || node.parent.kind === 196 /* SourceFile */) { + else if (node.parent.kind === 193 /* ModuleBlock */ || node.parent.kind === 197 /* SourceFile */) { return grammarErrorOnNode(modifier, ts.Diagnostics._0_modifier_cannot_appear_on_a_module_element, text); } flags |= modifierToFlag(modifier.kind); @@ -5500,7 +5656,7 @@ var ts; if (flags & 128 /* Static */) { return grammarErrorOnNode(modifier, ts.Diagnostics._0_modifier_already_seen, "static"); } - else if (node.parent.kind === 192 /* ModuleBlock */ || node.parent.kind === 196 /* SourceFile */) { + else if (node.parent.kind === 193 /* ModuleBlock */ || node.parent.kind === 197 /* SourceFile */) { return grammarErrorOnNode(modifier, ts.Diagnostics._0_modifier_cannot_appear_on_a_module_element, "static"); } else if (node.kind === 123 /* Parameter */) { @@ -5516,7 +5672,7 @@ var ts; else if (flags & 2 /* Ambient */) { return grammarErrorOnNode(modifier, ts.Diagnostics._0_modifier_must_precede_1_modifier, "export", "declare"); } - else if (node.parent.kind === 187 /* ClassDeclaration */) { + else if (node.parent.kind === 188 /* ClassDeclaration */) { return grammarErrorOnNode(modifier, ts.Diagnostics._0_modifier_cannot_appear_on_a_class_element, "export"); } else if (node.kind === 123 /* Parameter */) { @@ -5528,13 +5684,13 @@ var ts; if (flags & 2 /* Ambient */) { return grammarErrorOnNode(modifier, ts.Diagnostics._0_modifier_already_seen, "declare"); } - else if (node.parent.kind === 187 /* ClassDeclaration */) { + else if (node.parent.kind === 188 /* ClassDeclaration */) { return grammarErrorOnNode(modifier, ts.Diagnostics._0_modifier_cannot_appear_on_a_class_element, "declare"); } else if (node.kind === 123 /* Parameter */) { return grammarErrorOnNode(modifier, ts.Diagnostics._0_modifier_cannot_appear_on_a_parameter, "declare"); } - else if (inAmbientContext && node.parent.kind === 192 /* ModuleBlock */) { + else if (inAmbientContext && node.parent.kind === 193 /* ModuleBlock */) { return grammarErrorOnNode(modifier, ts.Diagnostics.A_declare_modifier_cannot_be_used_in_an_already_ambient_context); } flags |= 2 /* Ambient */; @@ -5553,15 +5709,15 @@ var ts; return grammarErrorOnNode(lastPrivate, ts.Diagnostics._0_modifier_cannot_appear_on_a_constructor_declaration, "private"); } } - else if (node.kind === 193 /* ImportDeclaration */ && flags & 2 /* Ambient */) { + else if (node.kind === 194 /* ImportDeclaration */ && flags & 2 /* Ambient */) { return grammarErrorOnNode(lastDeclare, ts.Diagnostics.A_declare_modifier_cannot_be_used_with_an_import_declaration, "declare"); } - else if (node.kind === 188 /* InterfaceDeclaration */ && flags & 2 /* Ambient */) { + else if (node.kind === 189 /* InterfaceDeclaration */ && flags & 2 /* Ambient */) { return grammarErrorOnNode(lastDeclare, ts.Diagnostics.A_declare_modifier_cannot_be_used_with_an_interface_declaration, "declare"); } } function checkParameter(node) { - if (node.flags & 8192 /* ParsedInStrictMode */ && isEvalOrArgumentsIdentifier(node.name)) { + if (node.parserContextFlags & 1 /* StrictMode */ && isEvalOrArgumentsIdentifier(node.name)) { return reportInvalidUseInStrictMode(node.name); } } @@ -5608,12 +5764,12 @@ var ts; } } function checkPostfixOperator(node) { - if (node.flags & 8192 /* ParsedInStrictMode */ && isEvalOrArgumentsIdentifier(node.operand)) { + if (node.parserContextFlags & 1 /* StrictMode */ && isEvalOrArgumentsIdentifier(node.operand)) { return reportInvalidUseInStrictMode(node.operand); } } function checkPrefixOperator(node) { - if (node.flags & 8192 /* ParsedInStrictMode */) { + if (node.parserContextFlags & 1 /* StrictMode */) { if ((node.operator === 37 /* PlusPlusToken */ || node.operator === 38 /* MinusMinusToken */) && isEvalOrArgumentsIdentifier(node.operand)) { return reportInvalidUseInStrictMode(node.operand); } @@ -5623,7 +5779,7 @@ var ts; } } function checkProperty(node) { - return (node.parent.kind === 187 /* ClassDeclaration */ && checkForInvalidQuestionMark(node, ts.Diagnostics.A_class_member_cannot_be_declared_optional)) || checkForInitializerInAmbientContext(node); + return (node.parent.kind === 188 /* ClassDeclaration */ && checkForInvalidQuestionMark(node, ts.Diagnostics.A_class_member_cannot_be_declared_optional)) || checkForInitializerInAmbientContext(node); } function checkForInitializerInAmbientContext(node) { if (inAmbientContext && node.initializer) { @@ -5694,7 +5850,7 @@ var ts; function checkTopLevelElementsForRequiredDeclareModifier(file) { for (var i = 0, n = file.statements.length; i < n; i++) { var decl = file.statements[i]; - if (isDeclaration(decl) || decl.kind === 162 /* VariableStatement */) { + if (isDeclaration(decl) || decl.kind === 163 /* VariableStatement */) { if (checkTopLevelElementForRequiredDeclareModifier(decl)) { return true; } @@ -5702,7 +5858,7 @@ var ts; } } function checkTopLevelElementForRequiredDeclareModifier(node) { - if (node.kind === 188 /* InterfaceDeclaration */ || node.kind === 193 /* ImportDeclaration */ || node.kind === 194 /* ExportAssignment */ || (node.flags & 2 /* Ambient */)) { + if (node.kind === 189 /* InterfaceDeclaration */ || node.kind === 194 /* ImportDeclaration */ || node.kind === 195 /* ExportAssignment */ || (node.flags & 2 /* Ambient */)) { return false; } return grammarErrorOnFirstToken(node, ts.Diagnostics.A_declare_modifier_is_required_for_a_top_level_declaration_in_a_d_ts_file); @@ -5714,7 +5870,7 @@ var ts; var firstDefaultClause; for (var i = 0, n = node.clauses.length; i < n; i++) { var clause = node.clauses[i]; - if (clause.kind === 176 /* DefaultClause */) { + if (clause.kind === 177 /* DefaultClause */) { if (firstDefaultClause === undefined) { firstDefaultClause = clause; } @@ -5752,10 +5908,10 @@ var ts; var equalsPos = node.type ? ts.skipTrivia(sourceText, node.type.end) : ts.skipTrivia(sourceText, node.name.end); return grammarErrorAtPos(equalsPos, "=".length, ts.Diagnostics.Initializers_are_not_allowed_in_ambient_contexts); } - if (!inAmbientContext && !node.initializer && node.flags & 4096 /* Const */) { + if (!inAmbientContext && !node.initializer && isConst(node)) { return grammarErrorOnNode(node, ts.Diagnostics.const_declarations_must_be_initialized); } - if (node.flags & 8192 /* ParsedInStrictMode */ && isEvalOrArgumentsIdentifier(node.name)) { + if (node.parserContextFlags & 1 /* StrictMode */ && isEvalOrArgumentsIdentifier(node.name)) { return reportInvalidUseInStrictMode(node.name); } } @@ -5769,10 +5925,10 @@ var ts; } var decl = declarations[0]; if (languageVersion < 2 /* ES6 */) { - if (decl.flags & 2048 /* Let */) { + if (isLet(decl)) { return grammarErrorOnFirstToken(decl, ts.Diagnostics.let_declarations_are_only_available_when_targeting_ECMAScript_6_and_higher); } - else if (decl.flags & 4096 /* Const */) { + else if (isConst(decl)) { return grammarErrorOnFirstToken(decl, ts.Diagnostics.const_declarations_are_only_available_when_targeting_ECMAScript_6_and_higher); } } @@ -5783,33 +5939,39 @@ var ts; } function checkForDisallowedLetOrConstStatement(node) { if (!allowLetAndConstDeclarations(node.parent)) { - if (node.flags & 2048 /* Let */) { + if (isLet(node)) { return grammarErrorOnNode(node, ts.Diagnostics.let_declarations_can_only_be_declared_inside_a_block); } - else if (node.flags & 4096 /* Const */) { + else if (isConst(node)) { return grammarErrorOnNode(node, ts.Diagnostics.const_declarations_can_only_be_declared_inside_a_block); } } } function allowLetAndConstDeclarations(parent) { switch (parent.kind) { - case 165 /* IfStatement */: - case 166 /* DoStatement */: - case 167 /* WhileStatement */: - case 173 /* WithStatement */: - case 168 /* ForStatement */: - case 169 /* ForInStatement */: + case 166 /* IfStatement */: + case 167 /* DoStatement */: + case 168 /* WhileStatement */: + case 174 /* WithStatement */: + case 169 /* ForStatement */: + case 170 /* ForInStatement */: return false; - case 177 /* LabeledStatement */: + case 178 /* LabeledStatement */: return allowLetAndConstDeclarations(parent.parent); } return true; } function checkWithStatement(node) { - if (node.flags & 8192 /* ParsedInStrictMode */) { + if (node.parserContextFlags & 1 /* StrictMode */) { return grammarErrorOnFirstToken(node, ts.Diagnostics.with_statements_are_not_allowed_in_strict_mode); } } + function checkYieldExpression(node) { + if (!(node.parserContextFlags & 4 /* Yield */)) { + return grammarErrorOnFirstToken(node, ts.Diagnostics.yield_expression_must_be_contained_within_a_generator_declaration); + } + return grammarErrorOnFirstToken(node, ts.Diagnostics.yield_expressions_are_not_currently_supported); + } } function createProgram(rootNames, options, host) { var program; @@ -5886,17 +6048,20 @@ var ts; function findSourceFile(filename, isDefaultLib, refFile, refStart, refLength) { var canonicalName = host.getCanonicalFileName(filename); if (ts.hasProperty(filesByName, canonicalName)) { - var file = filesByName[canonicalName]; - if (file && host.useCaseSensitiveFileNames() && canonicalName !== file.filename) { - errors.push(ts.createFileDiagnostic(refFile, refStart, refLength, ts.Diagnostics.Filename_0_differs_from_already_included_filename_1_only_in_casing, filename, file.filename)); - } + 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) { errors.push(ts.createFileDiagnostic(refFile, refStart, refLength, 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); @@ -5914,6 +6079,16 @@ var ts; } } 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) { + errors.push(ts.createFileDiagnostic(refFile, refStart, refLength, ts.Diagnostics.Filename_0_differs_from_already_included_filename_1_only_in_casing, filename, sourceFileName)); + } + } + return file; + } } function processReferencedFiles(file, basePath) { ts.forEach(file.referencedFiles, function (ref) { @@ -5923,7 +6098,7 @@ var ts; } function processImportedModules(file, basePath) { ts.forEach(file.statements, function (node) { - if (node.kind === 193 /* ImportDeclaration */ && node.externalModuleName) { + if (node.kind === 194 /* ImportDeclaration */ && node.externalModuleName) { var nameLiteral = node.externalModuleName; var moduleName = nameLiteral.text; if (moduleName) { @@ -5941,9 +6116,9 @@ var ts; } } } - else if (node.kind === 191 /* ModuleDeclaration */ && node.name.kind === 7 /* StringLiteral */ && (node.flags & 2 /* Ambient */ || isDeclarationFile(file))) { + else if (node.kind === 192 /* ModuleDeclaration */ && node.name.kind === 7 /* StringLiteral */ && (node.flags & 2 /* Ambient */ || isDeclarationFile(file))) { forEachChild(node.body, function (node) { - if (node.kind === 193 /* ImportDeclaration */ && node.externalModuleName) { + if (node.kind === 194 /* ImportDeclaration */ && node.externalModuleName) { var nameLiteral = node.externalModuleName; var moduleName = nameLiteral.text; if (moduleName) { @@ -6016,16 +6191,16 @@ var ts; var ts; (function (ts) { function getModuleInstanceState(node) { - if (node.kind === 188 /* InterfaceDeclaration */) { + if (node.kind === 189 /* InterfaceDeclaration */) { return 0 /* NonInstantiated */; } - else if (node.kind === 190 /* EnumDeclaration */ && ts.isConstEnumDeclaration(node)) { + else if (ts.isConstEnumDeclaration(node)) { return 2 /* ConstEnumOnly */; } - else if (node.kind === 193 /* ImportDeclaration */ && !(node.flags & 1 /* Export */)) { + else if (node.kind === 194 /* ImportDeclaration */ && !(node.flags & 1 /* Export */)) { return 0 /* NonInstantiated */; } - else if (node.kind === 192 /* ModuleBlock */) { + else if (node.kind === 193 /* ModuleBlock */) { var state = 0 /* NonInstantiated */; ts.forEachChild(node, function (n) { switch (getModuleInstanceState(n)) { @@ -6041,7 +6216,7 @@ var ts; }); return state; } - else if (node.kind === 191 /* ModuleDeclaration */) { + else if (node.kind === 192 /* ModuleDeclaration */) { return getModuleInstanceState(node.body); } else { @@ -6081,7 +6256,7 @@ var ts; } function getDeclarationName(node) { if (node.name) { - if (node.kind === 191 /* ModuleDeclaration */ && node.name.kind === 7 /* StringLiteral */) { + if (node.kind === 192 /* ModuleDeclaration */ && node.name.kind === 7 /* StringLiteral */) { return '"' + node.name.text + '"'; } return node.name.text; @@ -6123,7 +6298,7 @@ var ts; } addDeclarationToSymbol(symbol, node, includes); symbol.parent = parent; - if (node.kind === 187 /* ClassDeclaration */ && symbol.exports) { + if (node.kind === 188 /* ClassDeclaration */ && symbol.exports) { var prototypeSymbol = createSymbol(4 /* Property */ | 536870912 /* Prototype */, "prototype"); if (ts.hasProperty(symbol.exports, prototypeSymbol.name)) { if (node.name) { @@ -6155,7 +6330,7 @@ var ts; if (symbolKind & 1536 /* Namespace */) { exportKind |= 16777216 /* ExportNamespace */; } - if (node.flags & 1 /* Export */ || (node.kind !== 193 /* ImportDeclaration */ && isAmbientContext(container))) { + if (node.flags & 1 /* Export */ || (node.kind !== 194 /* ImportDeclaration */ && isAmbientContext(container))) { if (exportKind) { var local = declareSymbol(container.locals, undefined, node, exportKind, symbolExcludes); local.exportSymbol = declareSymbol(container.symbol.exports, container.symbol, node, symbolKind, symbolExcludes); @@ -6196,10 +6371,10 @@ var ts; } function bindDeclaration(node, symbolKind, symbolExcludes, isBlockScopeContainer) { switch (container.kind) { - case 191 /* ModuleDeclaration */: + case 192 /* ModuleDeclaration */: declareModuleMember(node, symbolKind, symbolExcludes); break; - case 196 /* SourceFile */: + case 197 /* SourceFile */: if (ts.isExternalModule(container)) { declareModuleMember(node, symbolKind, symbolExcludes); break; @@ -6213,22 +6388,22 @@ var ts; case 126 /* Constructor */: case 127 /* GetAccessor */: case 128 /* SetAccessor */: - case 185 /* FunctionDeclaration */: + case 186 /* FunctionDeclaration */: case 152 /* FunctionExpression */: case 153 /* ArrowFunction */: declareSymbol(container.locals, undefined, node, symbolKind, symbolExcludes); break; - case 187 /* ClassDeclaration */: + case 188 /* ClassDeclaration */: if (node.flags & 128 /* Static */) { declareSymbol(container.symbol.exports, container.symbol, node, symbolKind, symbolExcludes); break; } case 136 /* TypeLiteral */: case 142 /* ObjectLiteral */: - case 188 /* InterfaceDeclaration */: + case 189 /* InterfaceDeclaration */: declareSymbol(container.symbol.members, container.symbol, node, symbolKind, symbolExcludes); break; - case 190 /* EnumDeclaration */: + case 191 /* EnumDeclaration */: declareSymbol(container.symbol.exports, container.symbol, node, symbolKind, symbolExcludes); break; } @@ -6289,10 +6464,10 @@ var ts; } function bindBlockScopedVariableDeclaration(node) { switch (blockScopeContainer.kind) { - case 191 /* ModuleDeclaration */: + case 192 /* ModuleDeclaration */: declareModuleMember(node, 2 /* BlockScopedVariable */, 107455 /* BlockScopedVariableExcludes */); break; - case 196 /* SourceFile */: + case 197 /* SourceFile */: if (ts.isExternalModule(container)) { declareModuleMember(node, 2 /* BlockScopedVariable */, 107455 /* BlockScopedVariableExcludes */); break; @@ -6314,7 +6489,7 @@ var ts; case 123 /* Parameter */: bindDeclaration(node, 1 /* FunctionScopedVariable */, 107455 /* ParameterExcludes */, false); break; - case 184 /* VariableDeclaration */: + case 185 /* VariableDeclaration */: if (node.flags & 6144 /* BlockScoped */) { bindBlockScopedVariableDeclaration(node); } @@ -6327,7 +6502,7 @@ var ts; case 144 /* ShorthandPropertyAssignment */: bindDeclaration(node, 4 /* Property */, 107455 /* PropertyExcludes */, false); break; - case 195 /* EnumMember */: + case 196 /* EnumMember */: bindDeclaration(node, 8 /* EnumMember */, 107455 /* EnumMemberExcludes */, false); break; case 129 /* CallSignature */: @@ -6342,7 +6517,7 @@ var ts; case 131 /* IndexSignature */: bindDeclaration(node, 524288 /* IndexSignature */, 0, false); break; - case 185 /* FunctionDeclaration */: + case 186 /* FunctionDeclaration */: bindDeclaration(node, 16 /* Function */, 106927 /* FunctionExcludes */, true); break; case 126 /* Constructor */: @@ -6368,44 +6543,44 @@ var ts; case 153 /* ArrowFunction */: bindAnonymousDeclaration(node, 16 /* Function */, "__function", true); break; - case 181 /* CatchBlock */: + case 182 /* CatchBlock */: bindCatchVariableDeclaration(node); break; - case 187 /* ClassDeclaration */: + case 188 /* ClassDeclaration */: bindDeclaration(node, 32 /* Class */, 3258879 /* ClassExcludes */, false); break; - case 188 /* InterfaceDeclaration */: + case 189 /* InterfaceDeclaration */: bindDeclaration(node, 64 /* Interface */, 3152288 /* InterfaceExcludes */, false); break; - case 189 /* TypeAliasDeclaration */: + case 190 /* TypeAliasDeclaration */: bindDeclaration(node, 2097152 /* TypeAlias */, 3152352 /* TypeAliasExcludes */, false); break; - case 190 /* EnumDeclaration */: - if (ts.isConstEnumDeclaration(node)) { + case 191 /* EnumDeclaration */: + if (ts.isConst(node)) { bindDeclaration(node, 128 /* ConstEnum */, 3259263 /* ConstEnumExcludes */, false); } else { bindDeclaration(node, 256 /* RegularEnum */, 3258623 /* RegularEnumExcludes */, false); } break; - case 191 /* ModuleDeclaration */: + case 192 /* ModuleDeclaration */: bindModuleDeclaration(node); break; - case 193 /* ImportDeclaration */: + case 194 /* ImportDeclaration */: bindDeclaration(node, 33554432 /* Import */, 33554432 /* ImportExcludes */, false); break; - case 196 /* SourceFile */: + case 197 /* SourceFile */: if (ts.isExternalModule(node)) { bindAnonymousDeclaration(node, 512 /* ValueModule */, '"' + ts.removeFileExtension(node.filename) + '"', true); break; } - case 161 /* Block */: - case 180 /* TryBlock */: - case 181 /* CatchBlock */: - case 182 /* FinallyBlock */: - case 168 /* ForStatement */: - case 169 /* ForInStatement */: - case 174 /* SwitchStatement */: + case 162 /* Block */: + case 181 /* TryBlock */: + case 182 /* CatchBlock */: + case 183 /* FinallyBlock */: + case 169 /* ForStatement */: + case 170 /* ForInStatement */: + case 175 /* SwitchStatement */: bindChildren(node, 0, true); break; default: @@ -6445,6 +6620,1057 @@ var ts; return ts.isExternalModule(sourceFile) || ts.isDeclarationFile(sourceFile); } ts.isExternalModuleOrDeclarationFile = isExternalModuleOrDeclarationFile; + 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(ts.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; } + }; + } + function getLineOfLocalPosition(currentSourceFile, pos) { + return currentSourceFile.getLineAndCharacterFromPosition(pos).line; + } + 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(); + } + } + 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; + } + }); + } + function writeCommentRange(currentSourceFile, writer, comment, newLine) { + if (currentSourceFile.text.charCodeAt(comment.pos + 1) === 42 /* asterisk */) { + var firstCommentLineAndCharacter = currentSourceFile.getLineAndCharacterFromPosition(comment.pos); + var firstCommentLineIndent; + for (var pos = comment.pos, currentLine = firstCommentLineAndCharacter.line; pos < comment.end; currentLine++) { + var nextLineStart = currentSourceFile.getPositionFromLineAndCharacter(currentLine + 1, 1); + if (pos !== comment.pos) { + if (firstCommentLineIndent === undefined) { + firstCommentLineIndent = calculateIndent(currentSourceFile.getPositionFromLineAndCharacter(firstCommentLineAndCharacter.line, 1), 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 /* tab */) { + currentLineIndent += getIndentSize() - (currentLineIndent % getIndentSize()); + } + else { + currentLineIndent++; + } + } + return currentLineIndent; + } + } + function getFirstConstructorWithBody(node) { + return ts.forEach(node.members, function (member) { + if (member.kind === 126 /* Constructor */ && member.body) { + return member; + } + }); + } + function getAllAccessorDeclarations(node, accessor) { + var firstAccessor; + var getAccessor; + var setAccessor; + ts.forEach(node.members, function (member) { + if ((member.kind === 127 /* GetAccessor */ || member.kind === 128 /* SetAccessor */) && member.name.text === accessor.name.text && (member.flags & 128 /* Static */) === (accessor.flags & 128 /* Static */)) { + if (!firstAccessor) { + firstAccessor = member; + } + if (member.kind === 127 /* GetAccessor */ && !getAccessor) { + getAccessor = member; + } + if (member.kind === 128 /* SetAccessor */ && !setAccessor) { + setAccessor = member; + } + } + }); + return { + firstAccessor: firstAccessor, + getAccessor: getAccessor, + setAccessor: setAccessor + }; + } + function getSourceFilePathInNewDir(sourceFile, program, newDirPath) { + var compilerHost = program.getCompilerHost(); + var sourceFilePath = ts.getNormalizedAbsolutePath(sourceFile.filename, compilerHost.getCurrentDirectory()); + sourceFilePath = sourceFilePath.replace(program.getCommonSourceDirectory(), ""); + return ts.combinePaths(newDirPath, sourceFilePath); + } + function getOwnEmitOutputFilePath(sourceFile, program, extension) { + var compilerOptions = program.getCompilerOptions(); + if (compilerOptions.outDir) { + var emitOutputFilePathWithoutExtension = ts.removeFileExtension(getSourceFilePathInNewDir(sourceFile, program, compilerOptions.outDir)); + } + else { + var emitOutputFilePathWithoutExtension = ts.removeFileExtension(sourceFile.filename); + } + return emitOutputFilePathWithoutExtension + extension; + } + function writeFile(compilerHost, diagnostics, filename, data, writeByteOrderMark) { + compilerHost.writeFile(filename, data, writeByteOrderMark, function (hostErrorMessage) { + diagnostics.push(ts.createCompilerDiagnostic(ts.Diagnostics.Could_not_write_file_0_Colon_1, filename, hostErrorMessage)); + }); + } + function emitDeclarations(program, resolver, diagnostics, jsFilePath, root) { + var newLine = program.getCompilerHost().getNewLine(); + var compilerOptions = program.getCompilerOptions(); + var compilerHost = program.getCompilerHost(); + 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 aliasDeclarationEmitInfo = []; + function createAndSetNewTextWriterWithSymbolWriter() { + var writer = 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 writeAsychronousImportDeclarations(importDeclarations) { + var oldWriter = writer; + ts.forEach(importDeclarations, function (aliasToWrite) { + var aliasEmitInfo = ts.forEach(aliasDeclarationEmitInfo, function (declEmitInfo) { return declEmitInfo.declaration === aliasToWrite ? declEmitInfo : undefined; }); + if (aliasEmitInfo) { + createAndSetNewTextWriterWithSymbolWriter(); + for (var declarationIndent = aliasEmitInfo.indent; declarationIndent; declarationIndent--) { + increaseIndent(); + } + writeImportDeclaration(aliasToWrite); + aliasEmitInfo.asynchronousOutput = writer.getText(); + } + }); + setWriter(oldWriter); + } + function handleSymbolAccessibilityError(symbolAccesibilityResult) { + if (symbolAccesibilityResult.accessibility === 0 /* Accessible */) { + if (symbolAccesibilityResult && symbolAccesibilityResult.aliasesToMakeVisible) { + writeAsychronousImportDeclarations(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 writeTypeAtLocation(location, type, getSymbolAccessibilityDiagnostic) { + writer.getSymbolAccessibilityDiagnostic = getSymbolAccessibilityDiagnostic; + write(": "); + if (type) { + emitType(type); + } + else { + resolver.writeTypeAtLocation(location, enclosingDeclaration, 2 /* UseTypeOfFunction */, writer); + } + } + function writeReturnTypeAtSignature(signature, getSymbolAccessibilityDiagnostic) { + writer.getSymbolAccessibilityDiagnostic = getSymbolAccessibilityDiagnostic; + write(": "); + if (signature.type) { + emitType(signature.type); + } + else { + resolver.writeReturnTypeOfSignatureDeclaration(signature, enclosingDeclaration, 2 /* UseTypeOfFunction */, writer); + } + } + function emitLines(nodes) { + for (var i = 0, n = nodes.length; i < n; i++) { + emitNode(nodes[i]); + } + } + function emitSeparatedList(nodes, separator, eachNodeEmitFn) { + var currentWriterPos = writer.getTextPos(); + for (var i = 0, n = nodes.length; i < n; i++) { + if (currentWriterPos !== writer.getTextPos()) { + write(separator); + } + currentWriterPos = writer.getTextPos(); + eachNodeEmitFn(nodes[i]); + } + } + function emitCommaList(nodes, eachNodeEmitFn) { + emitSeparatedList(nodes, ", ", eachNodeEmitFn); + } + function writeJsDocComments(declaration) { + if (declaration) { + var jsDocComments = ts.getJsDocComments(declaration, currentSourceFile); + emitNewLineBeforeLeadingComments(currentSourceFile, writer, declaration, jsDocComments); + emitComments(currentSourceFile, writer, jsDocComments, true, newLine, writeCommentRange); + } + } + function emitTypeWithNewGetSymbolAccessibilityDiangostic(type, getSymbolAccessibilityDiagnostic) { + writer.getSymbolAccessibilityDiagnostic = getSymbolAccessibilityDiagnostic; + emitType(type); + } + function emitType(type) { + switch (type.kind) { + case 109 /* AnyKeyword */: + case 118 /* StringKeyword */: + case 116 /* NumberKeyword */: + case 110 /* BooleanKeyword */: + case 97 /* VoidKeyword */: + case 7 /* StringLiteral */: + return writeTextOfNode(currentSourceFile, type); + case 132 /* TypeReference */: + return emitTypeReference(type); + case 135 /* TypeQuery */: + return emitTypeQuery(type); + case 137 /* ArrayType */: + return emitArrayType(type); + case 138 /* TupleType */: + return emitTupleType(type); + case 139 /* UnionType */: + return emitUnionType(type); + case 140 /* ParenType */: + return emitParenType(type); + case 133 /* FunctionType */: + case 134 /* ConstructorType */: + return emitSignatureDeclarationWithJsDocComments(type); + case 136 /* TypeLiteral */: + return emitTypeLiteral(type); + case 63 /* Identifier */: + return emitEntityName(type); + case 121 /* QualifiedName */: + return emitEntityName(type); + default: + ts.Debug.fail("Unknown type annotation: " + type.kind); + } + function emitEntityName(entityName) { + var visibilityResult = resolver.isEntityNameVisible(entityName, entityName.parent.kind === 194 /* ImportDeclaration */ ? entityName.parent : enclosingDeclaration); + handleSymbolAccessibilityError(visibilityResult); + writeEntityName(entityName); + function writeEntityName(entityName) { + if (entityName.kind === 63 /* Identifier */) { + 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("export = "); + writeTextOfNode(currentSourceFile, node.exportName); + write(";"); + writeLine(); + } + function emitModuleElementDeclarationFlags(node) { + if (node.parent === currentSourceFile) { + if (node.flags & 1 /* Export */) { + write("export "); + } + if (node.kind !== 189 /* InterfaceDeclaration */) { + write("declare "); + } + } + } + function emitClassMemberDeclarationFlags(node) { + if (node.flags & 32 /* Private */) { + write("private "); + } + else if (node.flags & 64 /* Protected */) { + write("protected "); + } + if (node.flags & 128 /* Static */) { + write("static "); + } + } + function emitImportDeclaration(node) { + var nodeEmitInfo = { + declaration: node, + outputPos: writer.getTextPos(), + indent: writer.getIndent(), + hasWritten: resolver.isDeclarationVisible(node) + }; + aliasDeclarationEmitInfo.push(nodeEmitInfo); + if (nodeEmitInfo.hasWritten) { + writeImportDeclaration(node); + } + } + function writeImportDeclaration(node) { + emitJsDocComments(node); + if (node.flags & 1 /* Export */) { + write("export "); + } + write("import "); + writeTextOfNode(currentSourceFile, node.name); + write(" = "); + if (node.entityName) { + emitTypeWithNewGetSymbolAccessibilityDiangostic(node.entityName, getImportEntityNameVisibilityError); + write(";"); + } + else { + write("require("); + writeTextOfNode(currentSourceFile, node.externalModuleName); + write(");"); + } + writer.writeLine(); + function getImportEntityNameVisibilityError(symbolAccesibilityResult) { + return { + diagnosticMessage: ts.Diagnostics.Import_declaration_0_is_using_private_name_1, + errorNode: node, + typeName: node.name + }; + } + } + function emitModuleDeclaration(node) { + if (resolver.isDeclarationVisible(node)) { + emitJsDocComments(node); + emitModuleElementDeclarationFlags(node); + write("module "); + writeTextOfNode(currentSourceFile, node.name); + while (node.body.kind !== 193 /* ModuleBlock */) { + 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 emitTypeAliasDeclaration(node) { + if (resolver.isDeclarationVisible(node)) { + emitJsDocComments(node); + emitModuleElementDeclarationFlags(node); + write("type "); + writeTextOfNode(currentSourceFile, node.name); + write(" = "); + emitTypeWithNewGetSymbolAccessibilityDiangostic(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 emitEnumDeclaration(node) { + if (resolver.isDeclarationVisible(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.getEnumMemberValue(node); + if (enumMemberValue !== undefined) { + write(" = "); + write(enumMemberValue.toString()); + } + write(","); + writeLine(); + } + function emitTypeParameters(typeParameters) { + function emitTypeParameter(node) { + increaseIndent(); + emitJsDocComments(node); + decreaseIndent(); + writeTextOfNode(currentSourceFile, node.name); + if (node.constraint && (node.parent.kind !== 125 /* Method */ || !(node.parent.flags & 32 /* Private */))) { + write(" extends "); + if (node.parent.kind === 133 /* FunctionType */ || node.parent.kind === 134 /* ConstructorType */ || (node.parent.parent && node.parent.parent.kind === 136 /* TypeLiteral */)) { + ts.Debug.assert(node.parent.kind === 125 /* Method */ || node.parent.kind === 133 /* FunctionType */ || node.parent.kind === 134 /* ConstructorType */ || node.parent.kind === 129 /* CallSignature */ || node.parent.kind === 130 /* ConstructSignature */); + emitType(node.constraint); + } + else { + emitTypeWithNewGetSymbolAccessibilityDiangostic(node.constraint, getTypeParameterConstraintVisibilityError); + } + } + function getTypeParameterConstraintVisibilityError(symbolAccesibilityResult) { + var diagnosticMessage; + switch (node.parent.kind) { + case 188 /* ClassDeclaration */: + diagnosticMessage = ts.Diagnostics.Type_parameter_0_of_exported_class_has_or_is_using_private_name_1; + break; + case 189 /* InterfaceDeclaration */: + diagnosticMessage = ts.Diagnostics.Type_parameter_0_of_exported_interface_has_or_is_using_private_name_1; + break; + case 130 /* ConstructSignature */: + diagnosticMessage = ts.Diagnostics.Type_parameter_0_of_constructor_signature_from_exported_interface_has_or_is_using_private_name_1; + break; + case 129 /* CallSignature */: + diagnosticMessage = ts.Diagnostics.Type_parameter_0_of_call_signature_from_exported_interface_has_or_is_using_private_name_1; + break; + case 125 /* Method */: + if (node.parent.flags & 128 /* Static */) { + 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 === 188 /* ClassDeclaration */) { + 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 186 /* FunctionDeclaration */: + 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) { + emitTypeWithNewGetSymbolAccessibilityDiangostic(node, getHeritageClauseVisibilityError); + function getHeritageClauseVisibilityError(symbolAccesibilityResult) { + var diagnosticMessage; + if (node.parent.kind === 188 /* ClassDeclaration */) { + 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.name + }; + } + } + } + function emitClassDeclaration(node) { + function emitParameterProperties(constructorDeclaration) { + if (constructorDeclaration) { + ts.forEach(constructorDeclaration.parameters, function (param) { + if (param.flags & 112 /* AccessibilityModifier */) { + emitPropertyDeclaration(param); + } + }); + } + } + if (resolver.isDeclarationVisible(node)) { + emitJsDocComments(node); + emitModuleElementDeclarationFlags(node); + write("class "); + writeTextOfNode(currentSourceFile, node.name); + var prevEnclosingDeclaration = enclosingDeclaration; + enclosingDeclaration = node; + emitTypeParameters(node.typeParameters); + if (node.baseType) { + emitHeritageClause([node.baseType], false); + } + emitHeritageClause(node.implementedTypes, true); + write(" {"); + writeLine(); + increaseIndent(); + emitParameterProperties(getFirstConstructorWithBody(node)); + emitLines(node.members); + decreaseIndent(); + write("}"); + writeLine(); + enclosingDeclaration = prevEnclosingDeclaration; + } + } + function emitInterfaceDeclaration(node) { + if (resolver.isDeclarationVisible(node)) { + emitJsDocComments(node); + emitModuleElementDeclarationFlags(node); + write("interface "); + writeTextOfNode(currentSourceFile, node.name); + var prevEnclosingDeclaration = enclosingDeclaration; + enclosingDeclaration = node; + emitTypeParameters(node.typeParameters); + emitHeritageClause(node.baseTypes, false); + write(" {"); + writeLine(); + increaseIndent(); + emitLines(node.members); + decreaseIndent(); + write("}"); + writeLine(); + enclosingDeclaration = prevEnclosingDeclaration; + } + } + function emitPropertyDeclaration(node) { + emitJsDocComments(node); + emitClassMemberDeclarationFlags(node); + emitVariableDeclaration(node); + write(";"); + writeLine(); + } + function emitVariableDeclaration(node) { + if (node.kind !== 185 /* VariableDeclaration */ || resolver.isDeclarationVisible(node)) { + writeTextOfNode(currentSourceFile, node.name); + if (node.kind === 124 /* Property */ && (node.flags & 4 /* QuestionMark */)) { + write("?"); + } + if (node.kind === 124 /* Property */ && node.parent.kind === 136 /* TypeLiteral */) { + emitTypeOfVariableDeclarationFromTypeLiteral(node); + } + else if (!(node.flags & 32 /* Private */)) { + writeTypeAtLocation(node, node.type, getVariableDeclarationTypeVisibilityError); + } + } + function getVariableDeclarationTypeVisibilityError(symbolAccesibilityResult) { + var diagnosticMessage; + if (node.kind === 185 /* VariableDeclaration */) { + diagnosticMessage = symbolAccesibilityResult.errorModuleName ? symbolAccesibilityResult.accessibility === 2 /* CannotBeNamed */ ? 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 === 124 /* Property */) { + if (node.flags & 128 /* Static */) { + diagnosticMessage = symbolAccesibilityResult.errorModuleName ? symbolAccesibilityResult.accessibility === 2 /* CannotBeNamed */ ? 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 === 188 /* ClassDeclaration */) { + diagnosticMessage = symbolAccesibilityResult.errorModuleName ? symbolAccesibilityResult.accessibility === 2 /* CannotBeNamed */ ? 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 { + diagnosticMessage = 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; + } + } + return diagnosticMessage !== undefined ? { + diagnosticMessage: diagnosticMessage, + errorNode: node, + typeName: node.name + } : undefined; + } + } + function emitTypeOfVariableDeclarationFromTypeLiteral(node) { + if (node.type) { + write(": "); + emitType(node.type); + } + } + function emitVariableStatement(node) { + var hasDeclarationWithEmit = ts.forEach(node.declarations, function (varDeclaration) { return resolver.isDeclarationVisible(varDeclaration); }); + if (hasDeclarationWithEmit) { + emitJsDocComments(node); + emitModuleElementDeclarationFlags(node); + if (ts.isLet(node)) { + write("let "); + } + else if (ts.isConst(node)) { + write("const "); + } + else { + write("var "); + } + emitCommaList(node.declarations, emitVariableDeclaration); + write(";"); + writeLine(); + } + } + function emitAccessorDeclaration(node) { + var accessors = getAllAccessorDeclarations(node.parent, node); + if (node === accessors.firstAccessor) { + emitJsDocComments(accessors.getAccessor); + emitJsDocComments(accessors.setAccessor); + emitClassMemberDeclarationFlags(node); + writeTextOfNode(currentSourceFile, node.name); + if (!(node.flags & 32 /* Private */)) { + var accessorWithTypeAnnotation = node; + var type = getTypeAnnotationFromAccessor(node); + if (!type) { + var anotherAccessor = node.kind === 127 /* GetAccessor */ ? accessors.setAccessor : accessors.getAccessor; + type = getTypeAnnotationFromAccessor(anotherAccessor); + if (type) { + accessorWithTypeAnnotation = anotherAccessor; + } + } + writeTypeAtLocation(node, type, getAccessorDeclarationTypeVisibilityError); + } + write(";"); + writeLine(); + } + function getTypeAnnotationFromAccessor(accessor) { + if (accessor) { + return accessor.kind === 127 /* GetAccessor */ ? accessor.type : accessor.parameters[0].type; + } + } + function getAccessorDeclarationTypeVisibilityError(symbolAccesibilityResult) { + var diagnosticMessage; + if (accessorWithTypeAnnotation.kind === 128 /* SetAccessor */) { + if (accessorWithTypeAnnotation.parent.flags & 128 /* Static */) { + 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 /* Static */) { + diagnosticMessage = symbolAccesibilityResult.errorModuleName ? symbolAccesibilityResult.accessibility === 2 /* CannotBeNamed */ ? 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 /* CannotBeNamed */ ? 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 emitFunctionDeclaration(node) { + if ((node.kind !== 186 /* FunctionDeclaration */ || resolver.isDeclarationVisible(node)) && !resolver.isImplementationOfOverload(node)) { + emitJsDocComments(node); + if (node.kind === 186 /* FunctionDeclaration */) { + emitModuleElementDeclarationFlags(node); + } + else if (node.kind === 125 /* Method */) { + emitClassMemberDeclarationFlags(node); + } + if (node.kind === 186 /* FunctionDeclaration */) { + write("function "); + writeTextOfNode(currentSourceFile, node.name); + } + else if (node.kind === 126 /* Constructor */) { + write("constructor"); + } + else { + writeTextOfNode(currentSourceFile, node.name); + if (node.flags & 4 /* QuestionMark */) { + write("?"); + } + } + emitSignatureDeclaration(node); + } + } + function emitSignatureDeclarationWithJsDocComments(node) { + emitJsDocComments(node); + emitSignatureDeclaration(node); + } + function emitSignatureDeclaration(node) { + if (node.kind === 130 /* ConstructSignature */ || node.kind === 134 /* ConstructorType */) { + write("new "); + } + emitTypeParameters(node.typeParameters); + if (node.kind === 131 /* IndexSignature */) { + write("["); + } + else { + write("("); + } + var prevEnclosingDeclaration = enclosingDeclaration; + enclosingDeclaration = node; + emitCommaList(node.parameters, emitParameterDeclaration); + if (node.kind === 131 /* IndexSignature */) { + write("]"); + } + else { + write(")"); + } + var isFunctionTypeOrConstructorType = node.kind === 133 /* FunctionType */ || node.kind === 134 /* ConstructorType */; + if (isFunctionTypeOrConstructorType || node.parent.kind === 136 /* TypeLiteral */) { + if (node.type) { + write(isFunctionTypeOrConstructorType ? " => " : ": "); + emitType(node.type); + } + } + else if (node.kind !== 126 /* Constructor */ && !(node.flags & 32 /* Private */)) { + writeReturnTypeAtSignature(node, getReturnTypeVisibilityError); + } + enclosingDeclaration = prevEnclosingDeclaration; + if (!isFunctionTypeOrConstructorType) { + write(";"); + writeLine(); + } + function getReturnTypeVisibilityError(symbolAccesibilityResult) { + var diagnosticMessage; + switch (node.kind) { + case 130 /* ConstructSignature */: + 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 129 /* CallSignature */: + 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 131 /* IndexSignature */: + 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 125 /* Method */: + if (node.flags & 128 /* Static */) { + diagnosticMessage = symbolAccesibilityResult.errorModuleName ? symbolAccesibilityResult.accessibility === 2 /* CannotBeNamed */ ? 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 === 188 /* ClassDeclaration */) { + diagnosticMessage = symbolAccesibilityResult.errorModuleName ? symbolAccesibilityResult.accessibility === 2 /* CannotBeNamed */ ? 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 186 /* FunctionDeclaration */: + diagnosticMessage = symbolAccesibilityResult.errorModuleName ? symbolAccesibilityResult.accessibility === 2 /* CannotBeNamed */ ? 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.flags & 8 /* Rest */) { + write("..."); + } + writeTextOfNode(currentSourceFile, node.name); + if (node.initializer || (node.flags & 4 /* QuestionMark */)) { + write("?"); + } + decreaseIndent(); + if (node.parent.kind === 133 /* FunctionType */ || node.parent.kind === 134 /* ConstructorType */ || node.parent.parent.kind === 136 /* TypeLiteral */) { + emitTypeOfVariableDeclarationFromTypeLiteral(node); + } + else if (!(node.parent.flags & 32 /* Private */)) { + writeTypeAtLocation(node, node.type, getParameterDeclarationTypeVisibilityError); + } + function getParameterDeclarationTypeVisibilityError(symbolAccesibilityResult) { + var diagnosticMessage; + switch (node.parent.kind) { + case 126 /* Constructor */: + diagnosticMessage = symbolAccesibilityResult.errorModuleName ? symbolAccesibilityResult.accessibility === 2 /* CannotBeNamed */ ? 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 130 /* ConstructSignature */: + 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 129 /* CallSignature */: + 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 125 /* Method */: + if (node.parent.flags & 128 /* Static */) { + diagnosticMessage = symbolAccesibilityResult.errorModuleName ? symbolAccesibilityResult.accessibility === 2 /* CannotBeNamed */ ? 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 === 188 /* ClassDeclaration */) { + diagnosticMessage = symbolAccesibilityResult.errorModuleName ? symbolAccesibilityResult.accessibility === 2 /* CannotBeNamed */ ? 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 186 /* FunctionDeclaration */: + diagnosticMessage = symbolAccesibilityResult.errorModuleName ? symbolAccesibilityResult.accessibility === 2 /* CannotBeNamed */ ? 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 126 /* Constructor */: + case 186 /* FunctionDeclaration */: + case 125 /* Method */: + return emitFunctionDeclaration(node); + case 130 /* ConstructSignature */: + case 129 /* CallSignature */: + case 131 /* IndexSignature */: + return emitSignatureDeclarationWithJsDocComments(node); + case 127 /* GetAccessor */: + case 128 /* SetAccessor */: + return emitAccessorDeclaration(node); + case 163 /* VariableStatement */: + return emitVariableStatement(node); + case 124 /* Property */: + return emitPropertyDeclaration(node); + case 189 /* InterfaceDeclaration */: + return emitInterfaceDeclaration(node); + case 188 /* ClassDeclaration */: + return emitClassDeclaration(node); + case 190 /* TypeAliasDeclaration */: + return emitTypeAliasDeclaration(node); + case 196 /* EnumMember */: + return emitEnumMemberDeclaration(node); + case 191 /* EnumDeclaration */: + return emitEnumDeclaration(node); + case 192 /* ModuleDeclaration */: + return emitModuleDeclaration(node); + case 194 /* ImportDeclaration */: + return emitImportDeclaration(node); + case 195 /* ExportAssignment */: + return emitExportAssignment(node); + case 197 /* SourceFile */: + return emitSourceFile(node); + } + } + var referencePathsOutput = ""; + function writeReferencePath(referencedFile) { + var declFileName = referencedFile.flags & 1024 /* DeclarationFile */ ? referencedFile.filename : shouldEmitToOwnFile(referencedFile, compilerOptions) ? getOwnEmitOutputFilePath(referencedFile, program, ".d.ts") : ts.removeFileExtension(compilerOptions.out) + ".d.ts"; + declFileName = ts.getRelativePathToDirectoryOrUrl(ts.getDirectoryPath(ts.normalizeSlashes(jsFilePath)), declFileName, compilerHost.getCurrentDirectory(), compilerHost.getCanonicalFileName, false); + referencePathsOutput += "/// " + newLine; + } + if (root) { + if (!compilerOptions.noResolve) { + var addedGlobalFileReference = false; + ts.forEach(root.referencedFiles, function (fileReference) { + var referencedFile = ts.tryResolveScriptReference(program, root, fileReference); + if (referencedFile && ((referencedFile.flags & 1024 /* DeclarationFile */) || shouldEmitToOwnFile(referencedFile, compilerOptions) || !addedGlobalFileReference)) { + writeReferencePath(referencedFile); + if (!isExternalModuleOrDeclarationFile(referencedFile)) { + addedGlobalFileReference = true; + } + } + }); + } + emitNode(root); + } + else { + var emittedReferencedFiles = []; + ts.forEach(program.getSourceFiles(), function (sourceFile) { + if (!isExternalModuleOrDeclarationFile(sourceFile)) { + if (!compilerOptions.noResolve) { + ts.forEach(sourceFile.referencedFiles, function (fileReference) { + var referencedFile = ts.tryResolveScriptReference(program, sourceFile, fileReference); + if (referencedFile && (isExternalModuleOrDeclarationFile(referencedFile) && !ts.contains(emittedReferencedFiles, referencedFile))) { + writeReferencePath(referencedFile); + emittedReferencedFiles.push(referencedFile); + } + }); + } + emitNode(sourceFile); + } + }); + } + return { + reportedDeclarationError: reportedDeclarationError, + aliasDeclarationEmitInfo: aliasDeclarationEmitInfo, + synchronousDeclarationOutput: writer.getText(), + referencePathsOutput: referencePathsOutput + }; + } + function getDeclarationDiagnostics(program, resolver, targetSourceFile) { + var diagnostics = []; + var jsFilePath = getOwnEmitOutputFilePath(targetSourceFile, program, ".js"); + emitDeclarations(program, resolver, diagnostics, jsFilePath, targetSourceFile); + return diagnostics; + } + ts.getDeclarationDiagnostics = getDeclarationDiagnostics; function emitFiles(resolver, targetSourceFile) { var program = resolver.getProgram(); var compilerHost = program.getCompilerHost(); @@ -6452,206 +7678,14 @@ var ts; var sourceMapDataList = compilerOptions.sourceMap ? [] : undefined; var diagnostics = []; var newLine = program.getCompilerHost().getNewLine(); - function getSourceFilePathInNewDir(newDirPath, sourceFile) { - var sourceFilePath = ts.getNormalizedPathFromPathComponents(ts.getNormalizedPathComponents(sourceFile.filename, compilerHost.getCurrentDirectory())); - sourceFilePath = sourceFilePath.replace(program.getCommonSourceDirectory(), ""); - return ts.combinePaths(newDirPath, sourceFilePath); - } - function getOwnEmitOutputFilePath(sourceFile, extension) { - if (compilerOptions.outDir) { - var emitOutputFilePathWithoutExtension = ts.removeFileExtension(getSourceFilePathInNewDir(compilerOptions.outDir, sourceFile)); - } - else { - var emitOutputFilePathWithoutExtension = ts.removeFileExtension(sourceFile.filename); - } - return emitOutputFilePathWithoutExtension + extension; - } - function getFirstConstructorWithBody(node) { - return ts.forEach(node.members, function (member) { - if (member.kind === 126 /* Constructor */ && member.body) { - return member; - } - }); - } - function getAllAccessorDeclarations(node, accessor) { - var firstAccessor; - var getAccessor; - var setAccessor; - ts.forEach(node.members, function (member) { - if ((member.kind === 127 /* GetAccessor */ || member.kind === 128 /* SetAccessor */) && member.name.text === accessor.name.text && (member.flags & 128 /* Static */) === (accessor.flags & 128 /* Static */)) { - if (!firstAccessor) { - firstAccessor = member; - } - if (member.kind === 127 /* GetAccessor */ && !getAccessor) { - getAccessor = member; - } - if (member.kind === 128 /* SetAccessor */ && !setAccessor) { - setAccessor = member; - } - } - }); - return { - firstAccessor: firstAccessor, - getAccessor: getAccessor, - setAccessor: setAccessor - }; - } - function createTextWriter() { - 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; - } - } - return { - write: write, - rawWrite: rawWrite, - 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; } - }; - } - var currentSourceFile; - function getSourceTextOfLocalNode(node) { - var text = currentSourceFile.text; - return text.substring(ts.skipTrivia(text, node.pos), node.end); - } - function getLineOfLocalPosition(pos) { - return currentSourceFile.getLineAndCharacterFromPosition(pos).line; - } - function writeFile(filename, data, writeByteOrderMark) { - compilerHost.writeFile(filename, data, writeByteOrderMark, function (hostErrorMessage) { - diagnostics.push(ts.createCompilerDiagnostic(ts.Diagnostics.Could_not_write_file_0_Colon_1, filename, hostErrorMessage)); - }); - } - function emitComments(comments, trailingSeparator, writer, writeComment) { - var emitLeadingSpace = !trailingSeparator; - ts.forEach(comments, function (comment) { - if (emitLeadingSpace) { - writer.write(" "); - emitLeadingSpace = false; - } - writeComment(comment, writer); - if (comment.hasTrailingNewLine) { - writer.writeLine(); - } - else if (trailingSeparator) { - writer.write(" "); - } - else { - emitLeadingSpace = true; - } - }); - } - function emitNewLineBeforeLeadingComments(node, leadingComments, writer) { - if (leadingComments && leadingComments.length && node.pos !== leadingComments[0].pos && getLineOfLocalPosition(node.pos) !== getLineOfLocalPosition(leadingComments[0].pos)) { - writer.writeLine(); - } - } - function writeCommentRange(comment, writer) { - if (currentSourceFile.text.charCodeAt(comment.pos + 1) === 42 /* asterisk */) { - var firstCommentLineAndCharacter = currentSourceFile.getLineAndCharacterFromPosition(comment.pos); - var firstCommentLineIndent; - for (var pos = comment.pos, currentLine = firstCommentLineAndCharacter.line; pos < comment.end; currentLine++) { - var nextLineStart = currentSourceFile.getPositionFromLineAndCharacter(currentLine + 1, 1); - if (pos !== comment.pos) { - if (firstCommentLineIndent === undefined) { - firstCommentLineIndent = calculateIndent(currentSourceFile.getPositionFromLineAndCharacter(firstCommentLineAndCharacter.line, 1), 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 /* tab */) { - currentLineIndent += getIndentSize() - (currentLineIndent % getIndentSize()); - } - else { - currentLineIndent++; - } - } - return currentLineIndent; - } - } function emitJavaScript(jsFilePath, root) { - var writer = createTextWriter(); + var writer = 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 extendsEmitted = false; var writeEmittedFiles = writeJavaScriptFile; var emitLeadingComments = compilerOptions.removeComments ? function (node) { @@ -6808,7 +7842,7 @@ var ts; if (scopeName) { recordScopeNameStart(scopeName); } - else if (node.kind === 185 /* FunctionDeclaration */ || node.kind === 152 /* FunctionExpression */ || node.kind === 125 /* Method */ || node.kind === 127 /* GetAccessor */ || node.kind === 128 /* SetAccessor */ || node.kind === 191 /* ModuleDeclaration */ || node.kind === 187 /* ClassDeclaration */ || node.kind === 190 /* EnumDeclaration */) { + else if (node.kind === 186 /* FunctionDeclaration */ || node.kind === 152 /* FunctionExpression */ || node.kind === 125 /* Method */ || node.kind === 127 /* GetAccessor */ || node.kind === 128 /* SetAccessor */ || node.kind === 192 /* ModuleDeclaration */ || node.kind === 188 /* ClassDeclaration */ || node.kind === 191 /* EnumDeclaration */) { if (node.name) { scopeName = node.name.text; } @@ -6822,9 +7856,9 @@ var ts; sourceMapNameIndices.pop(); } ; - function writeCommentRangeWithMap(comment, writer) { + function writeCommentRangeWithMap(curentSourceFile, writer, comment, newLine) { recordSourceMapSpan(comment.pos); - writeCommentRange(comment, writer); + writeCommentRange(currentSourceFile, writer, comment, newLine); recordSourceMapSpan(comment.end); } function serializeSourceMapContents(version, file, sourceRoot, sources, names, mappings) { @@ -6852,7 +7886,7 @@ var ts; } function writeJavaScriptAndSourceMapFile(emitOutput, writeByteOrderMark) { encodeLastRecordedSourceMapSpan(); - writeFile(sourceMapData.sourceMapFilePath, serializeSourceMapContents(3, sourceMapData.sourceMapFile, sourceMapData.sourceMapSourceRoot, sourceMapData.sourceMapSources, sourceMapData.sourceMapNames, sourceMapData.sourceMapMappings), false); + writeFile(compilerHost, 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); } @@ -6875,7 +7909,7 @@ var ts; if (compilerOptions.mapRoot) { sourceMapDir = ts.normalizeSlashes(compilerOptions.mapRoot); if (root) { - sourceMapDir = ts.getDirectoryPath(getSourceFilePathInNewDir(sourceMapDir, root)); + sourceMapDir = ts.getDirectoryPath(getSourceFilePathInNewDir(root, program, sourceMapDir)); } if (!ts.isRootedDiskPath(sourceMapDir) && !ts.isUrl(sourceMapDir)) { sourceMapDir = ts.combinePaths(program.getCommonSourceDirectory(), sourceMapDir); @@ -6890,7 +7924,7 @@ var ts; } function emitNodeWithMap(node) { if (node) { - if (node.kind != 196 /* SourceFile */) { + if (node.kind != 197 /* SourceFile */) { recordEmitNodeStartSpan(node); emitNode(node); recordEmitNodeEndSpan(node); @@ -6911,7 +7945,7 @@ var ts; writeComment = writeCommentRangeWithMap; } function writeJavaScriptFile(emitOutput, writeByteOrderMark) { - writeFile(jsFilePath, emitOutput, writeByteOrderMark); + writeFile(compilerHost, diagnostics, jsFilePath, emitOutput, writeByteOrderMark); } function emitTokenText(tokenKind, startPos, emitFn) { var tokenString = ts.tokenToString(tokenKind); @@ -6988,7 +8022,7 @@ var ts; if (compilerOptions.target < 2 /* ES6 */ && ts.isTemplateLiteralKind(node.kind)) { return getTemplateLiteralAsStringLiteral(node); } - return getSourceTextOfLocalNode(node); + return ts.getSourceTextOfNodeFromSourceFile(currentSourceFile, node); } } function getTemplateLiteralAsStringLiteral(node) { @@ -7071,7 +8105,7 @@ var ts; write(node.text); } else { - write(getSourceTextOfLocalNode(node)); + writeTextOfNode(currentSourceFile, node); } write("\""); } @@ -7080,29 +8114,29 @@ var ts; var parent = node.parent; switch (parent.kind) { case 123 /* Parameter */: - case 184 /* VariableDeclaration */: + case 185 /* VariableDeclaration */: case 124 /* Property */: case 143 /* PropertyAssignment */: case 144 /* ShorthandPropertyAssignment */: - case 195 /* EnumMember */: + case 196 /* EnumMember */: case 125 /* Method */: - case 185 /* FunctionDeclaration */: + case 186 /* FunctionDeclaration */: case 127 /* GetAccessor */: case 128 /* SetAccessor */: case 152 /* FunctionExpression */: - case 187 /* ClassDeclaration */: - case 188 /* InterfaceDeclaration */: - case 190 /* EnumDeclaration */: - case 191 /* ModuleDeclaration */: - case 193 /* ImportDeclaration */: + case 188 /* ClassDeclaration */: + case 189 /* InterfaceDeclaration */: + case 191 /* EnumDeclaration */: + case 192 /* ModuleDeclaration */: + case 194 /* ImportDeclaration */: return parent.name === node; - case 171 /* BreakStatement */: - case 170 /* ContinueStatement */: - case 194 /* ExportAssignment */: + case 172 /* BreakStatement */: + case 171 /* ContinueStatement */: + case 195 /* ExportAssignment */: return false; - case 177 /* LabeledStatement */: + case 178 /* LabeledStatement */: return node.parent.label === node; - case 181 /* CatchBlock */: + case 182 /* CatchBlock */: return node.parent.variable === node; } } @@ -7112,14 +8146,14 @@ var ts; write(prefix); write("."); } - write(getSourceTextOfLocalNode(node)); + writeTextOfNode(currentSourceFile, node); } function emitIdentifier(node) { if (!isNotExpressionIdentifier(node)) { emitExpressionIdentifier(node); } else { - write(getSourceTextOfLocalNode(node)); + writeTextOfNode(currentSourceFile, node); } } function emitThis(node) { @@ -7326,8 +8360,8 @@ var ts; emitToken(13 /* OpenBraceToken */, node.pos); increaseIndent(); scopeEmitStart(node.parent); - if (node.kind === 192 /* ModuleBlock */) { - ts.Debug.assert(node.parent.kind === 191 /* ModuleDeclaration */); + if (node.kind === 193 /* ModuleBlock */) { + ts.Debug.assert(node.parent.kind === 192 /* ModuleDeclaration */); emitCaptureThisForNodeIfNecessary(node.parent); } emitLines(node.statements); @@ -7337,7 +8371,7 @@ var ts; scopeEmitEnd(); } function emitEmbeddedStatement(node) { - if (node.kind === 161 /* Block */) { + if (node.kind === 162 /* Block */) { write(" "); emit(node); } @@ -7370,7 +8404,7 @@ var ts; if (node.elseStatement) { writeLine(); emitToken(74 /* ElseKeyword */, node.thenStatement.end); - if (node.elseStatement.kind === 165 /* IfStatement */) { + if (node.elseStatement.kind === 166 /* IfStatement */) { write(" "); emit(node.elseStatement); } @@ -7383,7 +8417,7 @@ var ts; function emitDoStatement(node) { write("do"); emitEmbeddedStatement(node.statement); - if (node.statement.kind === 161 /* Block */) { + if (node.statement.kind === 162 /* Block */) { write(" "); } else { @@ -7404,10 +8438,10 @@ var ts; write(" "); endPos = emitToken(15 /* OpenParenToken */, endPos); if (node.declarations) { - if (node.declarations[0] && node.declarations[0].flags & 2048 /* Let */) { + if (node.declarations[0] && ts.isLet(node.declarations[0])) { emitToken(102 /* LetKeyword */, endPos); } - else if (node.declarations[0] && node.declarations[0].flags & 4096 /* Const */) { + else if (node.declarations[0] && ts.isConst(node.declarations[0])) { emitToken(68 /* ConstKeyword */, endPos); } else { @@ -7433,7 +8467,7 @@ var ts; if (node.declarations) { if (node.declarations.length >= 1) { var decl = node.declarations[0]; - if (decl.flags & 2048 /* Let */) { + if (ts.isLet(decl)) { emitToken(102 /* LetKeyword */, endPos); } else { @@ -7452,7 +8486,7 @@ var ts; emitEmbeddedStatement(node.statement); } function emitBreakOrContinueStatement(node) { - emitToken(node.kind === 171 /* BreakStatement */ ? 64 /* BreakKeyword */ : 69 /* ContinueKeyword */, node.pos); + emitToken(node.kind === 172 /* BreakStatement */ ? 64 /* BreakKeyword */ : 69 /* ContinueKeyword */, node.pos); emitOptional(" ", node.label); write(";"); } @@ -7484,10 +8518,10 @@ var ts; emitToken(14 /* CloseBraceToken */, node.clauses.end); } function isOnSameLine(node1, node2) { - return getLineOfLocalPosition(ts.skipTrivia(currentSourceFile.text, node1.pos)) === getLineOfLocalPosition(ts.skipTrivia(currentSourceFile.text, node2.pos)); + return getLineOfLocalPosition(currentSourceFile, ts.skipTrivia(currentSourceFile.text, node1.pos)) === getLineOfLocalPosition(currentSourceFile, ts.skipTrivia(currentSourceFile.text, node2.pos)); } function emitCaseOrDefaultClause(node) { - if (node.kind === 175 /* CaseClause */) { + if (node.kind === 176 /* CaseClause */) { write("case "); emit(node.expression); write(":"); @@ -7542,7 +8576,7 @@ var ts; function getContainingModule(node) { do { node = node.parent; - } while (node && node.kind !== 191 /* ModuleDeclaration */); + } while (node && node.kind !== 192 /* ModuleDeclaration */); return node; } function emitModuleMemberName(node) { @@ -7564,10 +8598,10 @@ var ts; function emitVariableStatement(node) { emitLeadingComments(node); if (!(node.flags & 1 /* Export */)) { - if (node.flags & 2048 /* Let */) { + if (ts.isLet(node)) { write("let "); } - else if (node.flags & 4096 /* Const */) { + else if (ts.isConst(node)) { write("const "); } else { @@ -7654,7 +8688,7 @@ var ts; emitLeadingComments(node); } write("function "); - if (node.kind === 185 /* FunctionDeclaration */ || (node.kind === 152 /* FunctionExpression */ && node.name)) { + if (node.kind === 186 /* FunctionDeclaration */ || (node.kind === 152 /* FunctionExpression */ && node.name)) { emit(node.name); } emitSignatureAndBody(node); @@ -7684,16 +8718,16 @@ var ts; write(" {"); scopeEmitStart(node); increaseIndent(); - emitDetachedComments(node.body.kind === 186 /* FunctionBlock */ ? node.body.statements : node.body); + emitDetachedComments(node.body.kind === 187 /* FunctionBlock */ ? node.body.statements : node.body); var startIndex = 0; - if (node.body.kind === 186 /* FunctionBlock */) { + if (node.body.kind === 187 /* FunctionBlock */) { startIndex = emitDirectivePrologues(node.body.statements, true); } var outPos = writer.getTextPos(); emitCaptureThisForNodeIfNecessary(node); emitDefaultValueAssignments(node); emitRestParameter(node); - if (node.body.kind !== 186 /* FunctionBlock */ && outPos === writer.getTextPos()) { + if (node.body.kind !== 187 /* FunctionBlock */ && outPos === writer.getTextPos()) { decreaseIndent(); write(" "); emitStart(node.body); @@ -7706,7 +8740,7 @@ var ts; emitEnd(node.body); } else { - if (node.body.kind === 186 /* FunctionBlock */) { + if (node.body.kind === 187 /* FunctionBlock */) { emitLinesStartingAt(node.body.statements, startIndex); } else { @@ -7718,7 +8752,7 @@ var ts; emitTrailingComments(node.body); } writeLine(); - if (node.body.kind === 186 /* FunctionBlock */) { + if (node.body.kind === 187 /* FunctionBlock */) { emitLeadingCommentsOfPosition(node.body.statements.end); decreaseIndent(); emitToken(14 /* CloseBraceToken */, node.body.statements.end); @@ -7744,7 +8778,7 @@ var ts; function findInitialSuperCall(ctor) { if (ctor.body) { var statement = ctor.body.statements[0]; - if (statement && statement.kind === 164 /* ExpressionStatement */) { + if (statement && statement.kind === 165 /* ExpressionStatement */) { var expr = statement.expression; if (expr && expr.kind === 147 /* CallExpression */) { var func = expr.func; @@ -7995,7 +9029,7 @@ var ts; emitPinnedOrTripleSlashComments(node); } function emitEnumDeclaration(node) { - var isConstEnum = ts.isConstEnumDeclaration(node); + var isConstEnum = ts.isConst(node); if (isConstEnum && !compilerOptions.preserveConstEnums) { return; } @@ -8064,7 +9098,7 @@ var ts; } } function getInnerMostModuleDeclarationFromDottedModule(moduleDeclaration) { - if (moduleDeclaration.body.kind === 191 /* ModuleDeclaration */) { + if (moduleDeclaration.body.kind === 192 /* ModuleDeclaration */) { var recursiveInnerModule = getInnerMostModuleDeclarationFromDottedModule(moduleDeclaration.body); return recursiveInnerModule || moduleDeclaration.body; } @@ -8086,7 +9120,7 @@ var ts; write(resolver.getLocalNameOfContainer(node)); emitEnd(node.name); write(") "); - if (node.body.kind === 192 /* ModuleBlock */) { + if (node.body.kind === 193 /* ModuleBlock */) { emit(node.body); } else { @@ -8120,7 +9154,7 @@ var ts; emitImportDeclaration = !ts.isExternalModule(currentSourceFile) && resolver.isTopLevelValueImportWithEntityName(node); } if (emitImportDeclaration) { - if (node.externalModuleName && node.parent.kind === 196 /* SourceFile */ && compilerOptions.module === 2 /* AMD */) { + if (node.externalModuleName && node.parent.kind === 197 /* SourceFile */ && compilerOptions.module === 2 /* AMD */) { if (node.flags & 1 /* Export */) { writeLine(); emitLeadingComments(node); @@ -8160,7 +9194,7 @@ var ts; function getExternalImportDeclarations(node) { var result = []; ts.forEach(node.statements, function (stat) { - if (stat.kind === 193 /* ImportDeclaration */ && stat.externalModuleName && resolver.isReferencedImportDeclaration(stat)) { + if (stat.kind === 194 /* ImportDeclaration */ && stat.externalModuleName && resolver.isReferencedImportDeclaration(stat)) { result.push(stat); } }); @@ -8168,7 +9202,7 @@ var ts; } function getFirstExportAssignment(sourceFile) { return ts.forEach(sourceFile.statements, function (node) { - if (node.kind === 194 /* ExportAssignment */) { + if (node.kind === 195 /* ExportAssignment */) { return node; } }); @@ -8341,7 +9375,7 @@ var ts; return emit(node.operand); case 151 /* ParenExpression */: return emitParenExpression(node); - case 185 /* FunctionDeclaration */: + case 186 /* FunctionDeclaration */: case 152 /* FunctionExpression */: case 153 /* ArrowFunction */: return emitFunctionDeclaration(node); @@ -8352,65 +9386,65 @@ var ts; return emitBinaryExpression(node); case 157 /* ConditionalExpression */: return emitConditionalExpression(node); - case 160 /* OmittedExpression */: + case 161 /* OmittedExpression */: return; - case 161 /* Block */: - case 180 /* TryBlock */: - case 182 /* FinallyBlock */: - case 186 /* FunctionBlock */: - case 192 /* ModuleBlock */: + case 162 /* Block */: + case 181 /* TryBlock */: + case 183 /* FinallyBlock */: + case 187 /* FunctionBlock */: + case 193 /* ModuleBlock */: return emitBlock(node); - case 162 /* VariableStatement */: + case 163 /* VariableStatement */: return emitVariableStatement(node); - case 163 /* EmptyStatement */: + case 164 /* EmptyStatement */: return write(";"); - case 164 /* ExpressionStatement */: + case 165 /* ExpressionStatement */: return emitExpressionStatement(node); - case 165 /* IfStatement */: + case 166 /* IfStatement */: return emitIfStatement(node); - case 166 /* DoStatement */: + case 167 /* DoStatement */: return emitDoStatement(node); - case 167 /* WhileStatement */: + case 168 /* WhileStatement */: return emitWhileStatement(node); - case 168 /* ForStatement */: + case 169 /* ForStatement */: return emitForStatement(node); - case 169 /* ForInStatement */: + case 170 /* ForInStatement */: return emitForInStatement(node); - case 170 /* ContinueStatement */: - case 171 /* BreakStatement */: + case 171 /* ContinueStatement */: + case 172 /* BreakStatement */: return emitBreakOrContinueStatement(node); - case 172 /* ReturnStatement */: + case 173 /* ReturnStatement */: return emitReturnStatement(node); - case 173 /* WithStatement */: + case 174 /* WithStatement */: return emitWithStatement(node); - case 174 /* SwitchStatement */: + case 175 /* SwitchStatement */: return emitSwitchStatement(node); - case 175 /* CaseClause */: - case 176 /* DefaultClause */: + case 176 /* CaseClause */: + case 177 /* DefaultClause */: return emitCaseOrDefaultClause(node); - case 177 /* LabeledStatement */: + case 178 /* LabeledStatement */: return emitLabelledStatement(node); - case 178 /* ThrowStatement */: + case 179 /* ThrowStatement */: return emitThrowStatement(node); - case 179 /* TryStatement */: + case 180 /* TryStatement */: return emitTryStatement(node); - case 181 /* CatchBlock */: + case 182 /* CatchBlock */: return emitCatchBlock(node); - case 183 /* DebuggerStatement */: + case 184 /* DebuggerStatement */: return emitDebuggerStatement(node); - case 184 /* VariableDeclaration */: + case 185 /* VariableDeclaration */: return emitVariableDeclaration(node); - case 187 /* ClassDeclaration */: + case 188 /* ClassDeclaration */: return emitClassDeclaration(node); - case 188 /* InterfaceDeclaration */: + case 189 /* InterfaceDeclaration */: return emitInterfaceDeclaration(node); - case 190 /* EnumDeclaration */: + case 191 /* EnumDeclaration */: return emitEnumDeclaration(node); - case 191 /* ModuleDeclaration */: + case 192 /* ModuleDeclaration */: return emitModuleDeclaration(node); - case 193 /* ImportDeclaration */: + case 194 /* ImportDeclaration */: return emitImportDeclaration(node); - case 196 /* SourceFile */: + case 197 /* SourceFile */: return emitSourceFile(node); } } @@ -8428,7 +9462,7 @@ var ts; return leadingComments; } function getLeadingCommentsToEmit(node) { - if (node.parent.kind === 196 /* SourceFile */ || node.pos !== node.parent.pos) { + if (node.parent.kind === 197 /* SourceFile */ || node.pos !== node.parent.pos) { var leadingComments; if (hasDetachedComments(node.pos)) { leadingComments = getLeadingCommentsWithoutDetachedComments(); @@ -8441,13 +9475,13 @@ var ts; } function emitLeadingDeclarationComments(node) { var leadingComments = getLeadingCommentsToEmit(node); - emitNewLineBeforeLeadingComments(node, leadingComments, writer); - emitComments(leadingComments, true, writer, writeComment); + emitNewLineBeforeLeadingComments(currentSourceFile, writer, node, leadingComments); + emitComments(currentSourceFile, writer, leadingComments, true, newLine, writeComment); } function emitTrailingDeclarationComments(node) { - if (node.parent.kind === 196 /* SourceFile */ || node.end !== node.parent.end) { + if (node.parent.kind === 197 /* SourceFile */ || node.end !== node.parent.end) { var trailingComments = ts.getTrailingCommentRanges(currentSourceFile.text, node.end); - emitComments(trailingComments, false, writer, writeComment); + emitComments(currentSourceFile, writer, trailingComments, false, newLine, writeComment); } } function emitLeadingCommentsOfLocalPosition(pos) { @@ -8458,8 +9492,8 @@ var ts; else { leadingComments = ts.getLeadingCommentRanges(currentSourceFile.text, pos); } - emitNewLineBeforeLeadingComments({ pos: pos, end: pos }, leadingComments, writer); - emitComments(leadingComments, true, writer, writeComment); + emitNewLineBeforeLeadingComments(currentSourceFile, writer, { pos: pos, end: pos }, leadingComments); + emitComments(currentSourceFile, writer, leadingComments, true, newLine, writeComment); } function emitDetachedCommentsAtPosition(node) { var leadingComments = ts.getLeadingCommentRanges(currentSourceFile.text, node.pos); @@ -8468,8 +9502,8 @@ var ts; var lastComment; ts.forEach(leadingComments, function (comment) { if (lastComment) { - var lastCommentLine = getLineOfLocalPosition(lastComment.end); - var commentLine = getLineOfLocalPosition(comment.pos); + var lastCommentLine = getLineOfLocalPosition(currentSourceFile, lastComment.end); + var commentLine = getLineOfLocalPosition(currentSourceFile, comment.pos); if (commentLine >= lastCommentLine + 2) { return detachedComments; } @@ -8478,11 +9512,11 @@ var ts; lastComment = comment; }); if (detachedComments.length) { - var lastCommentLine = getLineOfLocalPosition(detachedComments[detachedComments.length - 1].end); - var astLine = getLineOfLocalPosition(ts.skipTrivia(currentSourceFile.text, node.pos)); + var lastCommentLine = getLineOfLocalPosition(currentSourceFile, detachedComments[detachedComments.length - 1].end); + var astLine = getLineOfLocalPosition(currentSourceFile, ts.skipTrivia(currentSourceFile.text, node.pos)); if (astLine >= lastCommentLine + 2) { - emitNewLineBeforeLeadingComments(node, leadingComments, writer); - emitComments(detachedComments, true, writer, writeComment); + emitNewLineBeforeLeadingComments(currentSourceFile, writer, node, leadingComments); + emitComments(currentSourceFile, writer, detachedComments, true, newLine, writeComment); var currentDetachedCommentInfo = { nodePos: node.pos, detachedCommentEndPos: detachedComments[detachedComments.length - 1].end }; if (detachedCommentsInfo) { detachedCommentsInfo.push(currentDetachedCommentInfo); @@ -8504,8 +9538,8 @@ var ts; return true; } } - emitNewLineBeforeLeadingComments(node, pinnedComments, writer); - emitComments(pinnedComments, true, writer, writeComment); + emitNewLineBeforeLeadingComments(currentSourceFile, writer, node, pinnedComments); + emitComments(currentSourceFile, writer, pinnedComments, true, newLine, writeComment); } if (compilerOptions.sourceMap) { initializeEmitterWithSourceMaps(); @@ -8523,722 +9557,20 @@ var ts; writeLine(); writeEmittedFiles(writer.getText(), compilerOptions.emitBOM); } - function emitDeclarations(jsFilePath, root) { - var writer = createTextWriterWithSymbolWriter(); - var write = writer.write; - var writeLine = writer.writeLine; - var increaseIndent = writer.increaseIndent; - var decreaseIndent = writer.decreaseIndent; - var enclosingDeclaration; - var reportedDeclarationError = false; - var emitJsDocComments = compilerOptions.removeComments ? function (declaration) { - } : writeJsDocComments; - var aliasDeclarationEmitInfo = []; - var getSymbolVisibilityDiagnosticMessage; - function createTextWriterWithSymbolWriter() { - var writer = createTextWriter(); - 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; - return writer; - } - function writeAsychronousImportDeclarations(importDeclarations) { - var oldWriter = writer; - ts.forEach(importDeclarations, function (aliasToWrite) { - var aliasEmitInfo = ts.forEach(aliasDeclarationEmitInfo, function (declEmitInfo) { return declEmitInfo.declaration === aliasToWrite ? declEmitInfo : undefined; }); - writer = createTextWriterWithSymbolWriter(); - for (var declarationIndent = aliasEmitInfo.indent; declarationIndent; declarationIndent--) { - writer.increaseIndent(); - } - writeImportDeclaration(aliasToWrite); - aliasEmitInfo.asynchronousOutput = writer.getText(); - }); - writer = oldWriter; - } - function trackSymbol(symbol, enclosingDeclaration, meaning) { - var symbolAccesibilityResult = resolver.isSymbolAccessible(symbol, enclosingDeclaration, meaning); - if (symbolAccesibilityResult.accessibility === 0 /* Accessible */) { - if (symbolAccesibilityResult && symbolAccesibilityResult.aliasesToMakeVisible) { - writeAsychronousImportDeclarations(symbolAccesibilityResult.aliasesToMakeVisible); - } - } - else { - reportedDeclarationError = true; - var errorInfo = getSymbolVisibilityDiagnosticMessage(symbolAccesibilityResult); - if (errorInfo) { - if (errorInfo.typeName) { - diagnostics.push(ts.createDiagnosticForNode(errorInfo.errorNode, errorInfo.diagnosticMessage, getSourceTextOfLocalNode(errorInfo.typeName), symbolAccesibilityResult.errorSymbolName, symbolAccesibilityResult.errorModuleName)); - } - else { - diagnostics.push(ts.createDiagnosticForNode(errorInfo.errorNode, errorInfo.diagnosticMessage, symbolAccesibilityResult.errorSymbolName, symbolAccesibilityResult.errorModuleName)); - } - } - } - } - function emitLines(nodes) { - for (var i = 0, n = nodes.length; i < n; i++) { - emitNode(nodes[i]); - } - } - function emitCommaList(nodes, eachNodeEmitFn) { - var currentWriterPos = writer.getTextPos(); - for (var i = 0, n = nodes.length; i < n; i++) { - if (currentWriterPos !== writer.getTextPos()) { - write(", "); - } - currentWriterPos = writer.getTextPos(); - eachNodeEmitFn(nodes[i]); - } - } - function writeJsDocComments(declaration) { - if (declaration) { - var jsDocComments = ts.getJsDocComments(declaration, currentSourceFile); - emitNewLineBeforeLeadingComments(declaration, jsDocComments, writer); - emitComments(jsDocComments, true, writer, writeCommentRange); - } - } - function emitSourceTextOfNode(node) { - write(getSourceTextOfLocalNode(node)); - } - function emitSourceFile(node) { - currentSourceFile = node; - enclosingDeclaration = node; - emitLines(node.statements); - } - function emitExportAssignment(node) { - write("export = "); - emitSourceTextOfNode(node.exportName); - write(";"); - writeLine(); - } - function emitDeclarationFlags(node) { - if (node.flags & 128 /* Static */) { - if (node.flags & 32 /* Private */) { - write("private "); - } - else if (node.flags & 64 /* Protected */) { - write("protected "); - } - write("static "); - } - else { - if (node.flags & 32 /* Private */) { - write("private "); - } - else if (node.flags & 64 /* Protected */) { - write("protected "); - } - else if (node.parent === currentSourceFile) { - if (node.flags & 1 /* Export */) { - write("export "); - } - if (node.kind !== 188 /* InterfaceDeclaration */) { - write("declare "); - } - } - } - } - function emitImportDeclaration(node) { - var nodeEmitInfo = { - declaration: node, - outputPos: writer.getTextPos(), - indent: writer.getIndent(), - hasWritten: resolver.isDeclarationVisible(node) - }; - aliasDeclarationEmitInfo.push(nodeEmitInfo); - if (nodeEmitInfo.hasWritten) { - writeImportDeclaration(node); - } - } - function writeImportDeclaration(node) { - emitJsDocComments(node); - if (node.flags & 1 /* Export */) { - writer.write("export "); - } - writer.write("import "); - writer.write(getSourceTextOfLocalNode(node.name)); - writer.write(" = "); - if (node.entityName) { - checkEntityNameAccessible(); - writer.write(getSourceTextOfLocalNode(node.entityName)); - writer.write(";"); - } - else { - writer.write("require("); - writer.write(getSourceTextOfLocalNode(node.externalModuleName)); - writer.write(");"); - } - writer.writeLine(); - function checkEntityNameAccessible() { - var symbolAccesibilityResult = resolver.isImportDeclarationEntityNameReferenceDeclarationVisibile(node.entityName); - if (symbolAccesibilityResult.accessibility === 0 /* Accessible */) { - if (symbolAccesibilityResult.aliasesToMakeVisible) { - writeAsychronousImportDeclarations(symbolAccesibilityResult.aliasesToMakeVisible); - } - } - else { - reportedDeclarationError = true; - diagnostics.push(ts.createDiagnosticForNode(node, ts.Diagnostics.Import_declaration_0_is_using_private_name_1, getSourceTextOfLocalNode(node.name), symbolAccesibilityResult.errorSymbolName)); - } - } - } - function emitModuleDeclaration(node) { - if (resolver.isDeclarationVisible(node)) { - emitJsDocComments(node); - emitDeclarationFlags(node); - write("module "); - emitSourceTextOfNode(node.name); - while (node.body.kind !== 192 /* ModuleBlock */) { - node = node.body; - write("."); - emitSourceTextOfNode(node.name); - } - var prevEnclosingDeclaration = enclosingDeclaration; - enclosingDeclaration = node; - write(" {"); - writeLine(); - increaseIndent(); - emitLines(node.body.statements); - decreaseIndent(); - write("}"); - writeLine(); - enclosingDeclaration = prevEnclosingDeclaration; - } - } - function emitTypeAliasDeclaration(node) { - if (resolver.isDeclarationVisible(node)) { - emitJsDocComments(node); - emitDeclarationFlags(node); - write("type "); - emitSourceTextOfNode(node.name); - write(" = "); - getSymbolVisibilityDiagnosticMessage = getTypeAliasDeclarationVisibilityError; - resolver.writeTypeAtLocation(node.type, enclosingDeclaration, 2 /* UseTypeOfFunction */, writer); - write(";"); - writeLine(); - } - function getTypeAliasDeclarationVisibilityError(symbolAccesibilityResult) { - var diagnosticMessage = symbolAccesibilityResult.errorModuleName ? symbolAccesibilityResult.accessibility === 2 /* CannotBeNamed */ ? ts.Diagnostics.Exported_type_alias_0_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named : ts.Diagnostics.Exported_type_alias_0_has_or_is_using_name_1_from_private_module_2 : ts.Diagnostics.Exported_type_alias_0_has_or_is_using_private_name_1; - return { - diagnosticMessage: diagnosticMessage, - errorNode: node, - typeName: node.name - }; - } - } - function emitEnumDeclaration(node) { - if (resolver.isDeclarationVisible(node)) { - emitJsDocComments(node); - emitDeclarationFlags(node); - if (ts.isConstEnumDeclaration(node)) { - write("const "); - } - write("enum "); - emitSourceTextOfNode(node.name); - write(" {"); - writeLine(); - increaseIndent(); - emitLines(node.members); - decreaseIndent(); - write("}"); - writeLine(); - } - } - function emitEnumMemberDeclaration(node) { - emitJsDocComments(node); - emitSourceTextOfNode(node.name); - var enumMemberValue = resolver.getEnumMemberValue(node); - if (enumMemberValue !== undefined) { - write(" = "); - write(enumMemberValue.toString()); - } - write(","); - writeLine(); - } - function emitTypeParameters(typeParameters) { - function emitTypeParameter(node) { - function getTypeParameterConstraintVisibilityError(symbolAccesibilityResult) { - var diagnosticMessage; - switch (node.parent.kind) { - case 187 /* ClassDeclaration */: - diagnosticMessage = symbolAccesibilityResult.errorModuleName ? ts.Diagnostics.Type_parameter_0_of_exported_class_has_or_is_using_name_1_from_private_module_2 : ts.Diagnostics.Type_parameter_0_of_exported_class_has_or_is_using_private_name_1; - break; - case 188 /* InterfaceDeclaration */: - diagnosticMessage = symbolAccesibilityResult.errorModuleName ? ts.Diagnostics.Type_parameter_0_of_exported_interface_has_or_is_using_name_1_from_private_module_2 : ts.Diagnostics.Type_parameter_0_of_exported_interface_has_or_is_using_private_name_1; - break; - case 130 /* ConstructSignature */: - diagnosticMessage = symbolAccesibilityResult.errorModuleName ? ts.Diagnostics.Type_parameter_0_of_constructor_signature_from_exported_interface_has_or_is_using_name_1_from_private_module_2 : ts.Diagnostics.Type_parameter_0_of_constructor_signature_from_exported_interface_has_or_is_using_private_name_1; - break; - case 129 /* CallSignature */: - diagnosticMessage = symbolAccesibilityResult.errorModuleName ? ts.Diagnostics.Type_parameter_0_of_call_signature_from_exported_interface_has_or_is_using_name_1_from_private_module_2 : ts.Diagnostics.Type_parameter_0_of_call_signature_from_exported_interface_has_or_is_using_private_name_1; - break; - case 125 /* Method */: - if (node.parent.flags & 128 /* Static */) { - diagnosticMessage = symbolAccesibilityResult.errorModuleName ? ts.Diagnostics.Type_parameter_0_of_public_static_method_from_exported_class_has_or_is_using_name_1_from_private_module_2 : 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 === 187 /* ClassDeclaration */) { - diagnosticMessage = symbolAccesibilityResult.errorModuleName ? ts.Diagnostics.Type_parameter_0_of_public_method_from_exported_class_has_or_is_using_name_1_from_private_module_2 : ts.Diagnostics.Type_parameter_0_of_public_method_from_exported_class_has_or_is_using_private_name_1; - } - else { - diagnosticMessage = symbolAccesibilityResult.errorModuleName ? ts.Diagnostics.Type_parameter_0_of_method_from_exported_interface_has_or_is_using_name_1_from_private_module_2 : ts.Diagnostics.Type_parameter_0_of_method_from_exported_interface_has_or_is_using_private_name_1; - } - break; - case 185 /* FunctionDeclaration */: - diagnosticMessage = symbolAccesibilityResult.errorModuleName ? ts.Diagnostics.Type_parameter_0_of_exported_function_has_or_is_using_name_1_from_private_module_2 : 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 - }; - } - increaseIndent(); - emitJsDocComments(node); - decreaseIndent(); - emitSourceTextOfNode(node.name); - if (node.constraint && (node.parent.kind !== 125 /* Method */ || !(node.parent.flags & 32 /* Private */))) { - write(" extends "); - getSymbolVisibilityDiagnosticMessage = getTypeParameterConstraintVisibilityError; - resolver.writeTypeAtLocation(node.constraint, enclosingDeclaration, 2 /* UseTypeOfFunction */, writer); - } - } - if (typeParameters) { - write("<"); - emitCommaList(typeParameters, emitTypeParameter); - write(">"); - } - } - function emitHeritageClause(typeReferences, isImplementsList) { - if (typeReferences) { - write(isImplementsList ? " implements " : " extends "); - emitCommaList(typeReferences, emitTypeOfTypeReference); - } - function emitTypeOfTypeReference(node) { - getSymbolVisibilityDiagnosticMessage = getHeritageClauseVisibilityError; - resolver.writeTypeAtLocation(node, enclosingDeclaration, 1 /* WriteArrayAsGenericType */ | 2 /* UseTypeOfFunction */, writer); - function getHeritageClauseVisibilityError(symbolAccesibilityResult) { - var diagnosticMessage; - if (node.parent.kind === 187 /* ClassDeclaration */) { - if (symbolAccesibilityResult.errorModuleName) { - diagnosticMessage = isImplementsList ? ts.Diagnostics.Implements_clause_of_exported_class_0_has_or_is_using_name_1_from_private_module_2 : ts.Diagnostics.Extends_clause_of_exported_class_0_has_or_is_using_name_1_from_private_module_2; - } - else { - 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 { - if (symbolAccesibilityResult.errorModuleName) { - diagnosticMessage = ts.Diagnostics.Extends_clause_of_exported_interface_0_has_or_is_using_name_1_from_private_module_2; - } - 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.name - }; - } - } - } - function emitClassDeclaration(node) { - function emitParameterProperties(constructorDeclaration) { - if (constructorDeclaration) { - ts.forEach(constructorDeclaration.parameters, function (param) { - if (param.flags & 112 /* AccessibilityModifier */) { - emitPropertyDeclaration(param); - } - }); - } - } - if (resolver.isDeclarationVisible(node)) { - emitJsDocComments(node); - emitDeclarationFlags(node); - write("class "); - emitSourceTextOfNode(node.name); - var prevEnclosingDeclaration = enclosingDeclaration; - enclosingDeclaration = node; - emitTypeParameters(node.typeParameters); - if (node.baseType) { - emitHeritageClause([node.baseType], false); - } - emitHeritageClause(node.implementedTypes, true); - write(" {"); - writeLine(); - increaseIndent(); - emitParameterProperties(getFirstConstructorWithBody(node)); - emitLines(node.members); - decreaseIndent(); - write("}"); - writeLine(); - enclosingDeclaration = prevEnclosingDeclaration; - } - } - function emitInterfaceDeclaration(node) { - if (resolver.isDeclarationVisible(node)) { - emitJsDocComments(node); - emitDeclarationFlags(node); - write("interface "); - emitSourceTextOfNode(node.name); - var prevEnclosingDeclaration = enclosingDeclaration; - enclosingDeclaration = node; - emitTypeParameters(node.typeParameters); - emitHeritageClause(node.baseTypes, false); - write(" {"); - writeLine(); - increaseIndent(); - emitLines(node.members); - decreaseIndent(); - write("}"); - writeLine(); - enclosingDeclaration = prevEnclosingDeclaration; - } - } - function emitPropertyDeclaration(node) { - emitJsDocComments(node); - emitDeclarationFlags(node); - emitVariableDeclaration(node); - write(";"); - writeLine(); - } - function emitVariableDeclaration(node) { - if (node.kind !== 184 /* VariableDeclaration */ || resolver.isDeclarationVisible(node)) { - emitSourceTextOfNode(node.name); - if (node.kind === 124 /* Property */ && (node.flags & 4 /* QuestionMark */)) { - write("?"); - } - if (!(node.flags & 32 /* Private */)) { - write(": "); - getSymbolVisibilityDiagnosticMessage = getVariableDeclarationTypeVisibilityError; - resolver.writeTypeAtLocation(node, enclosingDeclaration, 2 /* UseTypeOfFunction */, writer); - } - } - function getVariableDeclarationTypeVisibilityError(symbolAccesibilityResult) { - var diagnosticMessage; - if (node.kind === 184 /* VariableDeclaration */) { - diagnosticMessage = symbolAccesibilityResult.errorModuleName ? symbolAccesibilityResult.accessibility === 2 /* CannotBeNamed */ ? 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 === 124 /* Property */) { - if (node.flags & 128 /* Static */) { - diagnosticMessage = symbolAccesibilityResult.errorModuleName ? symbolAccesibilityResult.accessibility === 2 /* CannotBeNamed */ ? 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 === 187 /* ClassDeclaration */) { - diagnosticMessage = symbolAccesibilityResult.errorModuleName ? symbolAccesibilityResult.accessibility === 2 /* CannotBeNamed */ ? 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 { - diagnosticMessage = 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; - } - } - return diagnosticMessage !== undefined ? { - diagnosticMessage: diagnosticMessage, - errorNode: node, - typeName: node.name - } : undefined; - } - } - function emitVariableStatement(node) { - var hasDeclarationWithEmit = ts.forEach(node.declarations, function (varDeclaration) { return resolver.isDeclarationVisible(varDeclaration); }); - if (hasDeclarationWithEmit) { - emitJsDocComments(node); - emitDeclarationFlags(node); - if (node.flags & 2048 /* Let */) { - write("let "); - } - else if (node.flags & 4096 /* Const */) { - write("const "); - } - else { - write("var "); - } - emitCommaList(node.declarations, emitVariableDeclaration); - write(";"); - writeLine(); - } - } - function emitAccessorDeclaration(node) { - var accessors = getAllAccessorDeclarations(node.parent, node); - if (node === accessors.firstAccessor) { - emitJsDocComments(accessors.getAccessor); - emitJsDocComments(accessors.setAccessor); - emitDeclarationFlags(node); - emitSourceTextOfNode(node.name); - if (!(node.flags & 32 /* Private */)) { - write(": "); - getSymbolVisibilityDiagnosticMessage = getAccessorDeclarationTypeVisibilityError; - resolver.writeTypeAtLocation(node, enclosingDeclaration, 2 /* UseTypeOfFunction */, writer); - } - write(";"); - writeLine(); - } - function getAccessorDeclarationTypeVisibilityError(symbolAccesibilityResult) { - var diagnosticMessage; - if (node.kind === 128 /* SetAccessor */) { - if (node.parent.flags & 128 /* Static */) { - 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: node.parameters[0], - typeName: node.name - }; - } - else { - if (node.flags & 128 /* Static */) { - diagnosticMessage = symbolAccesibilityResult.errorModuleName ? symbolAccesibilityResult.accessibility === 2 /* CannotBeNamed */ ? 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 /* CannotBeNamed */ ? 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: node.name, - typeName: undefined - }; - } - } - } - function emitFunctionDeclaration(node) { - if ((node.kind !== 185 /* FunctionDeclaration */ || resolver.isDeclarationVisible(node)) && !resolver.isImplementationOfOverload(node)) { - emitJsDocComments(node); - emitDeclarationFlags(node); - if (node.kind === 185 /* FunctionDeclaration */) { - write("function "); - emitSourceTextOfNode(node.name); - } - else if (node.kind === 126 /* Constructor */) { - write("constructor"); - } - else { - emitSourceTextOfNode(node.name); - if (node.flags & 4 /* QuestionMark */) { - write("?"); - } - } - emitSignatureDeclaration(node); - } - } - function emitConstructSignatureDeclaration(node) { - emitJsDocComments(node); - write("new "); - emitSignatureDeclaration(node); - } - function emitSignatureDeclaration(node) { - if (node.kind === 129 /* CallSignature */ || node.kind === 131 /* IndexSignature */) { - emitJsDocComments(node); - } - emitTypeParameters(node.typeParameters); - if (node.kind === 131 /* IndexSignature */) { - write("["); - } - else { - write("("); - } - emitCommaList(node.parameters, emitParameterDeclaration); - if (node.kind === 131 /* IndexSignature */) { - write("]"); - } - else { - write(")"); - } - if (node.kind !== 126 /* Constructor */ && !(node.flags & 32 /* Private */)) { - write(": "); - getSymbolVisibilityDiagnosticMessage = getReturnTypeVisibilityError; - resolver.writeReturnTypeOfSignatureDeclaration(node, enclosingDeclaration, 2 /* UseTypeOfFunction */, writer); - } - write(";"); - writeLine(); - function getReturnTypeVisibilityError(symbolAccesibilityResult) { - var diagnosticMessage; - switch (node.kind) { - case 130 /* ConstructSignature */: - 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 129 /* CallSignature */: - 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 131 /* IndexSignature */: - 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 125 /* Method */: - if (node.flags & 128 /* Static */) { - diagnosticMessage = symbolAccesibilityResult.errorModuleName ? symbolAccesibilityResult.accessibility === 2 /* CannotBeNamed */ ? 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 === 187 /* ClassDeclaration */) { - diagnosticMessage = symbolAccesibilityResult.errorModuleName ? symbolAccesibilityResult.accessibility === 2 /* CannotBeNamed */ ? 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 185 /* FunctionDeclaration */: - diagnosticMessage = symbolAccesibilityResult.errorModuleName ? symbolAccesibilityResult.accessibility === 2 /* CannotBeNamed */ ? 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.flags & 8 /* Rest */) { - write("..."); - } - emitSourceTextOfNode(node.name); - if (node.initializer || (node.flags & 4 /* QuestionMark */)) { - write("?"); - } - decreaseIndent(); - if (!(node.parent.flags & 32 /* Private */)) { - write(": "); - getSymbolVisibilityDiagnosticMessage = getParameterDeclarationTypeVisibilityError; - resolver.writeTypeAtLocation(node, enclosingDeclaration, 2 /* UseTypeOfFunction */, writer); - } - function getParameterDeclarationTypeVisibilityError(symbolAccesibilityResult) { - var diagnosticMessage; - switch (node.parent.kind) { - case 126 /* Constructor */: - diagnosticMessage = symbolAccesibilityResult.errorModuleName ? symbolAccesibilityResult.accessibility === 2 /* CannotBeNamed */ ? 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 130 /* ConstructSignature */: - 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 129 /* CallSignature */: - 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 125 /* Method */: - if (node.parent.flags & 128 /* Static */) { - diagnosticMessage = symbolAccesibilityResult.errorModuleName ? symbolAccesibilityResult.accessibility === 2 /* CannotBeNamed */ ? 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 === 187 /* ClassDeclaration */) { - diagnosticMessage = symbolAccesibilityResult.errorModuleName ? symbolAccesibilityResult.accessibility === 2 /* CannotBeNamed */ ? 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 185 /* FunctionDeclaration */: - diagnosticMessage = symbolAccesibilityResult.errorModuleName ? symbolAccesibilityResult.accessibility === 2 /* CannotBeNamed */ ? 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 126 /* Constructor */: - case 185 /* FunctionDeclaration */: - case 125 /* Method */: - return emitFunctionDeclaration(node); - case 130 /* ConstructSignature */: - return emitConstructSignatureDeclaration(node); - case 129 /* CallSignature */: - case 131 /* IndexSignature */: - return emitSignatureDeclaration(node); - case 127 /* GetAccessor */: - case 128 /* SetAccessor */: - return emitAccessorDeclaration(node); - case 162 /* VariableStatement */: - return emitVariableStatement(node); - case 124 /* Property */: - return emitPropertyDeclaration(node); - case 188 /* InterfaceDeclaration */: - return emitInterfaceDeclaration(node); - case 187 /* ClassDeclaration */: - return emitClassDeclaration(node); - case 189 /* TypeAliasDeclaration */: - return emitTypeAliasDeclaration(node); - case 195 /* EnumMember */: - return emitEnumMemberDeclaration(node); - case 190 /* EnumDeclaration */: - return emitEnumDeclaration(node); - case 191 /* ModuleDeclaration */: - return emitModuleDeclaration(node); - case 193 /* ImportDeclaration */: - return emitImportDeclaration(node); - case 194 /* ExportAssignment */: - return emitExportAssignment(node); - case 196 /* SourceFile */: - return emitSourceFile(node); - } - } - function tryResolveScriptReference(sourceFile, reference) { - var referenceFileName = ts.normalizePath(ts.combinePaths(ts.getDirectoryPath(sourceFile.filename), reference.filename)); - return program.getSourceFile(referenceFileName); - } - var referencePathsOutput = ""; - function writeReferencePath(referencedFile) { - var declFileName = referencedFile.flags & 1024 /* DeclarationFile */ ? referencedFile.filename : shouldEmitToOwnFile(referencedFile, compilerOptions) ? getOwnEmitOutputFilePath(referencedFile, ".d.ts") : ts.removeFileExtension(compilerOptions.out) + ".d.ts"; - declFileName = ts.getRelativePathToDirectoryOrUrl(ts.getDirectoryPath(ts.normalizeSlashes(jsFilePath)), declFileName, compilerHost.getCurrentDirectory(), compilerHost.getCanonicalFileName, false); - referencePathsOutput += "/// " + newLine; - } - if (root) { - if (!compilerOptions.noResolve) { - var addedGlobalFileReference = false; - ts.forEach(root.referencedFiles, function (fileReference) { - var referencedFile = tryResolveScriptReference(root, fileReference); - if (referencedFile && ((referencedFile.flags & 1024 /* DeclarationFile */) || shouldEmitToOwnFile(referencedFile, compilerOptions) || !addedGlobalFileReference)) { - writeReferencePath(referencedFile); - if (!isExternalModuleOrDeclarationFile(referencedFile)) { - addedGlobalFileReference = true; - } - } - }); - } - emitNode(root); - } - else { - var emittedReferencedFiles = []; - ts.forEach(program.getSourceFiles(), function (sourceFile) { - if (!isExternalModuleOrDeclarationFile(sourceFile)) { - if (!compilerOptions.noResolve) { - ts.forEach(sourceFile.referencedFiles, function (fileReference) { - var referencedFile = tryResolveScriptReference(sourceFile, fileReference); - if (referencedFile && (isExternalModuleOrDeclarationFile(referencedFile) && !ts.contains(emittedReferencedFiles, referencedFile))) { - writeReferencePath(referencedFile); - emittedReferencedFiles.push(referencedFile); - } - }); - } - emitNode(sourceFile); - } - }); - } - if (!reportedDeclarationError) { - var declarationOutput = referencePathsOutput; - var synchronousDeclarationOutput = writer.getText(); + function writeDeclarationFile(jsFilePath, sourceFile) { + var emitDeclarationResult = emitDeclarations(program, resolver, diagnostics, jsFilePath, sourceFile); + if (!emitDeclarationResult.reportedDeclarationError) { + var declarationOutput = emitDeclarationResult.referencePathsOutput; var appliedSyncOutputPos = 0; - ts.forEach(aliasDeclarationEmitInfo, function (aliasEmitInfo) { + ts.forEach(emitDeclarationResult.aliasDeclarationEmitInfo, function (aliasEmitInfo) { if (aliasEmitInfo.asynchronousOutput) { - declarationOutput += synchronousDeclarationOutput.substring(appliedSyncOutputPos, aliasEmitInfo.outputPos); + declarationOutput += emitDeclarationResult.synchronousDeclarationOutput.substring(appliedSyncOutputPos, aliasEmitInfo.outputPos); declarationOutput += aliasEmitInfo.asynchronousOutput; appliedSyncOutputPos = aliasEmitInfo.outputPos; } }); - declarationOutput += synchronousDeclarationOutput.substring(appliedSyncOutputPos); - writeFile(ts.removeFileExtension(jsFilePath) + ".d.ts", declarationOutput, compilerOptions.emitBOM); + declarationOutput += emitDeclarationResult.synchronousDeclarationOutput.substring(appliedSyncOutputPos); + writeFile(compilerHost, diagnostics, ts.removeFileExtension(jsFilePath) + ".d.ts", declarationOutput, compilerOptions.emitBOM); } } var hasSemanticErrors = resolver.hasSemanticErrors(); @@ -9247,14 +9579,14 @@ var ts; if (!isEmitBlocked) { emitJavaScript(jsFilePath, sourceFile); if (!hasSemanticErrors && compilerOptions.declaration) { - emitDeclarations(jsFilePath, sourceFile); + writeDeclarationFile(jsFilePath, sourceFile); } } } if (targetSourceFile === undefined) { ts.forEach(program.getSourceFiles(), function (sourceFile) { if (shouldEmitToOwnFile(sourceFile, compilerOptions)) { - var jsFilePath = getOwnEmitOutputFilePath(sourceFile, ".js"); + var jsFilePath = getOwnEmitOutputFilePath(sourceFile, program, ".js"); emitFile(jsFilePath, sourceFile); } }); @@ -9264,7 +9596,7 @@ var ts; } else { if (shouldEmitToOwnFile(targetSourceFile, compilerOptions)) { - var jsFilePath = getOwnEmitOutputFilePath(targetSourceFile, ".js"); + var jsFilePath = getOwnEmitOutputFilePath(targetSourceFile, program, ".js"); emitFile(jsFilePath, targetSourceFile); } else if (!ts.isDeclarationFile(targetSourceFile) && compilerOptions.out) { @@ -9357,10 +9689,11 @@ var ts; getTypeCount: function () { return typeCount; }, isUndefinedSymbol: function (symbol) { return symbol === undefinedSymbol; }, isArgumentsSymbol: function (symbol) { return symbol === argumentsSymbol; }, + emitFiles: invokeEmitter, getDiagnostics: getDiagnostics, + getDeclarationDiagnostics: getDeclarationDiagnostics, getGlobalDiagnostics: getGlobalDiagnostics, checkProgram: checkProgram, - invokeEmitter: invokeEmitter, getParentOfSymbol: getParentOfSymbol, getNarrowedTypeOfSymbol: getNarrowedTypeOfSymbol, getDeclaredTypeOfSymbol: getDeclaredTypeOfSymbol, @@ -9566,10 +9899,10 @@ var ts; return nodeLinks[node.id] || (nodeLinks[node.id] = {}); } function getSourceFile(node) { - return ts.getAncestor(node, 196 /* SourceFile */); + return ts.getAncestor(node, 197 /* SourceFile */); } function isGlobalSourceFile(node) { - return node.kind === 196 /* SourceFile */ && !ts.isExternalModule(node); + return node.kind === 197 /* SourceFile */ && !ts.isExternalModule(node); } function getSymbol(symbols, name, meaning) { if (meaning && ts.hasProperty(symbols, name)) { @@ -9610,21 +9943,21 @@ var ts; } } switch (location.kind) { - case 196 /* SourceFile */: + case 197 /* SourceFile */: if (!ts.isExternalModule(location)) break; - case 191 /* ModuleDeclaration */: + case 192 /* ModuleDeclaration */: if (result = getSymbol(getSymbolOfNode(location).exports, name, meaning & 35653619 /* ModuleMember */)) { break loop; } break; - case 190 /* EnumDeclaration */: + case 191 /* EnumDeclaration */: if (result = getSymbol(getSymbolOfNode(location).exports, name, meaning & 8 /* EnumMember */)) { break loop; } break; case 124 /* Property */: - if (location.parent.kind === 187 /* ClassDeclaration */ && !(location.flags & 128 /* Static */)) { + if (location.parent.kind === 188 /* ClassDeclaration */ && !(location.flags & 128 /* Static */)) { var ctor = findConstructorDeclaration(location.parent); if (ctor && ctor.locals) { if (getSymbol(ctor.locals, name, meaning & 107455 /* Value */)) { @@ -9633,8 +9966,8 @@ var ts; } } break; - case 187 /* ClassDeclaration */: - case 188 /* InterfaceDeclaration */: + case 188 /* ClassDeclaration */: + case 189 /* InterfaceDeclaration */: if (result = getSymbol(getSymbolOfNode(location).members, name, meaning & 3152352 /* Type */)) { if (lastLocation && lastLocation.flags & 128 /* Static */) { error(errorLocation, ts.Diagnostics.Static_members_cannot_reference_class_type_parameters); @@ -9647,7 +9980,7 @@ var ts; case 126 /* Constructor */: case 127 /* GetAccessor */: case 128 /* SetAccessor */: - case 185 /* FunctionDeclaration */: + case 186 /* FunctionDeclaration */: case 153 /* ArrowFunction */: if (name === "arguments") { result = argumentsSymbol; @@ -9665,7 +9998,7 @@ var ts; break loop; } break; - case 181 /* CatchBlock */: + case 182 /* CatchBlock */: var id = location.variable; if (name === id.text) { result = location.symbol; @@ -9706,7 +10039,7 @@ var ts; var links = getSymbolLinks(symbol); if (!links.target) { links.target = resolvingSymbol; - var node = getDeclarationOfKind(symbol, 193 /* ImportDeclaration */); + var node = getDeclarationOfKind(symbol, 194 /* ImportDeclaration */); var target = node.externalModuleName ? resolveExternalModuleName(node, node.externalModuleName) : getSymbolOfPartOfRightHandSideOfImport(node.entityName, node); if (links.target === resolvingSymbol) { links.target = target || unknownSymbol; @@ -9722,7 +10055,7 @@ var ts; } function getSymbolOfPartOfRightHandSideOfImport(entityName, importDeclaration) { if (!importDeclaration) { - importDeclaration = ts.getAncestor(entityName, 193 /* ImportDeclaration */); + importDeclaration = ts.getAncestor(entityName, 194 /* ImportDeclaration */); ts.Debug.assert(importDeclaration !== undefined); } if (entityName.kind === 63 /* Identifier */ && isRightSideOfQualifiedNameOrPropertyAccess(entityName)) { @@ -9732,7 +10065,7 @@ var ts; return resolveEntityName(importDeclaration, entityName, 1536 /* Namespace */); } else { - ts.Debug.assert(entityName.parent.kind === 193 /* ImportDeclaration */); + ts.Debug.assert(entityName.parent.kind === 194 /* ImportDeclaration */); return resolveEntityName(importDeclaration, entityName, 107455 /* Value */ | 3152352 /* Type */ | 1536 /* Namespace */); } } @@ -9837,9 +10170,9 @@ var ts; var seenExportedMember = false; var result = []; ts.forEach(symbol.declarations, function (declaration) { - var block = (declaration.kind === 196 /* SourceFile */ ? declaration : declaration.body); + var block = (declaration.kind === 197 /* SourceFile */ ? declaration : declaration.body); ts.forEach(block.statements, function (node) { - if (node.kind === 194 /* ExportAssignment */) { + if (node.kind === 195 /* ExportAssignment */) { result.push(node); } else { @@ -9946,17 +10279,17 @@ var ts; } } switch (location.kind) { - case 196 /* SourceFile */: + case 197 /* SourceFile */: if (!ts.isExternalModule(location)) { break; } - case 191 /* ModuleDeclaration */: + case 192 /* ModuleDeclaration */: if (result = callback(getSymbolOfNode(location).exports)) { return result; } break; - case 187 /* ClassDeclaration */: - case 188 /* InterfaceDeclaration */: + case 188 /* ClassDeclaration */: + case 189 /* InterfaceDeclaration */: if (result = callback(getSymbolOfNode(location).members)) { return result; } @@ -9987,7 +10320,7 @@ var ts; } return ts.forEachValue(symbols, function (symbolFromSymbolTable) { if (symbolFromSymbolTable.flags & 33554432 /* Import */) { - if (!useOnlyExternalAliasing || ts.forEach(symbolFromSymbolTable.declarations, function (declaration) { return declaration.kind === 193 /* ImportDeclaration */ && declaration.externalModuleName; })) { + if (!useOnlyExternalAliasing || ts.forEach(symbolFromSymbolTable.declarations, function (declaration) { return declaration.kind === 194 /* ImportDeclaration */ && declaration.externalModuleName; })) { var resolvedImportedSymbol = resolveImport(symbolFromSymbolTable); if (isAccessible(symbolFromSymbolTable, resolveImport(symbolFromSymbolTable))) { return [symbolFromSymbolTable]; @@ -10038,7 +10371,7 @@ var ts; errorModuleName: symbol !== initialSymbol ? symbolToString(symbol, enclosingDeclaration, 1536 /* Namespace */) : undefined }; } - return { accessibility: 0 /* Accessible */, aliasesToMakeVisible: hasAccessibleDeclarations.aliasesToMakeVisible }; + return hasAccessibleDeclarations; } meaningToLook = getQualifiedLeftMeaning(meaning); symbol = getParentOfSymbol(symbol); @@ -10069,17 +10402,17 @@ var ts; } } function hasExternalModuleSymbol(declaration) { - return (declaration.kind === 191 /* ModuleDeclaration */ && declaration.name.kind === 7 /* StringLiteral */) || (declaration.kind === 196 /* SourceFile */ && ts.isExternalModule(declaration)); + return (declaration.kind === 192 /* ModuleDeclaration */ && declaration.name.kind === 7 /* StringLiteral */) || (declaration.kind === 197 /* SourceFile */ && ts.isExternalModule(declaration)); } function hasVisibleDeclarations(symbol) { var aliasesToMakeVisible; if (ts.forEach(symbol.declarations, function (declaration) { return !getIsDeclarationVisible(declaration); })) { return undefined; } - return { aliasesToMakeVisible: aliasesToMakeVisible }; + return { accessibility: 0 /* Accessible */, aliasesToMakeVisible: aliasesToMakeVisible }; function getIsDeclarationVisible(declaration) { if (!isDeclarationVisible(declaration)) { - if (declaration.kind === 193 /* ImportDeclaration */ && !(declaration.flags & 1 /* Export */) && isDeclarationVisible(declaration.parent)) { + if (declaration.kind === 194 /* ImportDeclaration */ && !(declaration.flags & 1 /* Export */) && isDeclarationVisible(declaration.parent)) { getNodeLinks(declaration).isVisible = true; if (aliasesToMakeVisible) { if (!ts.contains(aliasesToMakeVisible, declaration)) { @@ -10096,11 +10429,24 @@ var ts; return true; } } - function isImportDeclarationEntityNameReferenceDeclarationVisibile(entityName) { + function isEntityNameVisible(entityName, enclosingDeclaration) { + var meaning; + if (entityName.parent.kind === 135 /* TypeQuery */) { + meaning = 107455 /* Value */ | 4194304 /* ExportValue */; + } + else if (entityName.kind === 121 /* QualifiedName */ || entityName.parent.kind === 194 /* ImportDeclaration */) { + meaning = 1536 /* Namespace */; + } + else { + meaning = 3152352 /* Type */; + } var firstIdentifier = getFirstIdentifier(entityName); - var symbolOfNameSpace = resolveName(entityName.parent, firstIdentifier.text, 1536 /* Namespace */, ts.Diagnostics.Cannot_find_name_0, firstIdentifier); - var hasNamespaceDeclarationsVisibile = hasVisibleDeclarations(symbolOfNameSpace); - return hasNamespaceDeclarationsVisibile ? { accessibility: 0 /* Accessible */, aliasesToMakeVisible: hasNamespaceDeclarationsVisibile.aliasesToMakeVisible } : { accessibility: 1 /* NotAccessible */, errorSymbolName: ts.declarationNameToString(firstIdentifier) }; + var symbol = resolveName(enclosingDeclaration, firstIdentifier.text, meaning, undefined, undefined); + return hasVisibleDeclarations(symbol) || { + accessibility: 1 /* NotAccessible */, + errorSymbolName: ts.getTextOfNode(firstIdentifier), + errorNode: firstIdentifier + }; } function releaseStringWriter(writer) { writer.clear(); @@ -10142,7 +10488,7 @@ var ts; while (node.kind === 140 /* ParenType */) { node = node.parent; } - if (node.kind === 189 /* TypeAliasDeclaration */) { + if (node.kind === 190 /* TypeAliasDeclaration */) { return getSymbolOfNode(node); } } @@ -10305,7 +10651,7 @@ var ts; function shouldWriteTypeOfFunctionSymbol() { if (type.symbol) { var isStaticMethodSymbol = !!(type.symbol.flags & 8192 /* Method */ && ts.forEach(type.symbol.declarations, function (declaration) { return declaration.flags & 128 /* Static */; })); - var isNonLocalFunctionSymbol = !!(type.symbol.flags & 16 /* Function */) && (type.symbol.parent || ts.forEach(type.symbol.declarations, function (declaration) { return declaration.parent.kind === 196 /* SourceFile */ || declaration.parent.kind === 192 /* ModuleBlock */; })); + var isNonLocalFunctionSymbol = !!(type.symbol.flags & 16 /* Function */) && (type.symbol.parent || ts.forEach(type.symbol.declarations, function (declaration) { return declaration.parent.kind === 197 /* SourceFile */ || declaration.parent.kind === 193 /* ModuleBlock */; })); if (isStaticMethodSymbol || isNonLocalFunctionSymbol) { return !!(flags & 2 /* UseTypeOfFunction */) || (typeStack && ts.contains(typeStack, type)); } @@ -10524,12 +10870,12 @@ var ts; function isDeclarationVisible(node) { function getContainingExternalModule(node) { for (; node; node = node.parent) { - if (node.kind === 191 /* ModuleDeclaration */) { + if (node.kind === 192 /* ModuleDeclaration */) { if (node.name.kind === 7 /* StringLiteral */) { return node; } } - else if (node.kind === 196 /* SourceFile */) { + else if (node.kind === 197 /* SourceFile */) { return ts.isExternalModule(node) ? node : undefined; } } @@ -10571,16 +10917,16 @@ var ts; } function determineIfDeclarationIsVisible() { switch (node.kind) { - case 184 /* VariableDeclaration */: - case 191 /* ModuleDeclaration */: - case 187 /* ClassDeclaration */: - case 188 /* InterfaceDeclaration */: - case 189 /* TypeAliasDeclaration */: - case 185 /* FunctionDeclaration */: - case 190 /* EnumDeclaration */: - case 193 /* ImportDeclaration */: - var parent = node.kind === 184 /* VariableDeclaration */ ? node.parent.parent : node.parent; - if (!(node.flags & 1 /* Export */) && !(node.kind !== 193 /* ImportDeclaration */ && parent.kind !== 196 /* SourceFile */ && ts.isInAmbientContext(parent))) { + case 185 /* VariableDeclaration */: + case 192 /* ModuleDeclaration */: + case 188 /* ClassDeclaration */: + case 189 /* InterfaceDeclaration */: + case 190 /* TypeAliasDeclaration */: + case 186 /* FunctionDeclaration */: + case 191 /* EnumDeclaration */: + case 194 /* ImportDeclaration */: + var parent = node.kind === 185 /* VariableDeclaration */ ? node.parent.parent : node.parent; + if (!(node.flags & 1 /* Export */) && !(node.kind !== 194 /* ImportDeclaration */ && parent.kind !== 197 /* SourceFile */ && ts.isInAmbientContext(parent))) { return isGlobalSourceFile(parent) || isUsedInExportAssignment(node); } return isDeclarationVisible(parent); @@ -10594,9 +10940,10 @@ var ts; case 129 /* CallSignature */: case 131 /* IndexSignature */: case 123 /* Parameter */: - case 192 /* ModuleBlock */: + case 193 /* ModuleBlock */: + case 122 /* TypeParameter */: return isDeclarationVisible(node.parent); - case 196 /* SourceFile */: + case 197 /* SourceFile */: return true; default: ts.Debug.fail("isDeclarationVisible unknown: SyntaxKind: " + node.kind); @@ -10615,7 +10962,7 @@ var ts; return classType.typeParameters ? createTypeReference(classType, ts.map(classType.typeParameters, function (_) { return anyType; })) : classType; } function getTypeOfVariableOrPropertyDeclaration(declaration) { - if (declaration.parent.kind === 169 /* ForInStatement */) { + if (declaration.parent.kind === 170 /* ForInStatement */) { return anyType; } if (declaration.type) { @@ -10682,7 +11029,7 @@ var ts; return links.type = getTypeOfPrototypeProperty(symbol); } var declaration = symbol.valueDeclaration; - if (declaration.kind === 181 /* CatchBlock */) { + if (declaration.kind === 182 /* CatchBlock */) { return links.type = anyType; } links.type = resolvingType; @@ -10822,7 +11169,7 @@ var ts; function getTypeParametersOfClassOrInterface(symbol) { var result; ts.forEach(symbol.declarations, function (node) { - if (node.kind === 188 /* InterfaceDeclaration */ || node.kind === 187 /* ClassDeclaration */) { + if (node.kind === 189 /* InterfaceDeclaration */ || node.kind === 188 /* ClassDeclaration */) { var declaration = node; if (declaration.typeParameters && declaration.typeParameters.length) { ts.forEach(declaration.typeParameters, function (node) { @@ -10853,7 +11200,7 @@ var ts; type.typeArguments = type.typeParameters; } type.baseTypes = []; - var declaration = getDeclarationOfKind(symbol, 187 /* ClassDeclaration */); + var declaration = getDeclarationOfKind(symbol, 188 /* ClassDeclaration */); if (declaration.baseType) { var baseType = getTypeFromTypeReferenceNode(declaration.baseType); if (baseType !== unknownType) { @@ -10893,7 +11240,7 @@ var ts; } type.baseTypes = []; ts.forEach(symbol.declarations, function (declaration) { - if (declaration.kind === 188 /* InterfaceDeclaration */ && declaration.baseTypes) { + if (declaration.kind === 189 /* InterfaceDeclaration */ && declaration.baseTypes) { ts.forEach(declaration.baseTypes, function (node) { var baseType = getTypeFromTypeReferenceNode(node); if (baseType !== unknownType) { @@ -10924,7 +11271,7 @@ var ts; var links = getSymbolLinks(symbol); if (!links.declaredType) { links.declaredType = resolvingType; - var declaration = getDeclarationOfKind(symbol, 189 /* TypeAliasDeclaration */); + var declaration = getDeclarationOfKind(symbol, 190 /* TypeAliasDeclaration */); var type = getTypeFromTypeNode(declaration.type); if (links.declaredType === resolvingType) { links.declaredType = type; @@ -10932,7 +11279,7 @@ var ts; } else if (links.declaredType === resolvingType) { links.declaredType = unknownType; - var declaration = getDeclarationOfKind(symbol, 189 /* TypeAliasDeclaration */); + var declaration = getDeclarationOfKind(symbol, 190 /* TypeAliasDeclaration */); error(declaration.name, ts.Diagnostics.Type_alias_0_circularly_references_itself, symbolToString(symbol)); } return links.declaredType; @@ -11403,7 +11750,7 @@ var ts; switch (node.kind) { case 133 /* FunctionType */: case 134 /* ConstructorType */: - case 185 /* FunctionDeclaration */: + case 186 /* FunctionDeclaration */: case 125 /* Method */: case 126 /* Constructor */: case 129 /* CallSignature */: @@ -11633,9 +11980,9 @@ var ts; for (var i = 0; i < declarations.length; i++) { var declaration = declarations[i]; switch (declaration.kind) { - case 187 /* ClassDeclaration */: - case 188 /* InterfaceDeclaration */: - case 190 /* EnumDeclaration */: + case 188 /* ClassDeclaration */: + case 189 /* InterfaceDeclaration */: + case 191 /* EnumDeclaration */: return declaration; } } @@ -12944,7 +13291,7 @@ var ts; switch (node.kind) { case 156 /* BinaryExpression */: return isAssignedInBinaryExpression(node); - case 184 /* VariableDeclaration */: + case 185 /* VariableDeclaration */: return isAssignedInVariableDeclaration(node); case 141 /* ArrayLiteral */: case 142 /* ObjectLiteral */: @@ -12957,25 +13304,25 @@ var ts; case 154 /* PrefixOperator */: case 155 /* PostfixOperator */: case 157 /* ConditionalExpression */: - case 161 /* Block */: - case 162 /* VariableStatement */: - case 164 /* ExpressionStatement */: - case 165 /* IfStatement */: - case 166 /* DoStatement */: - case 167 /* WhileStatement */: - case 168 /* ForStatement */: - case 169 /* ForInStatement */: - case 172 /* ReturnStatement */: - case 173 /* WithStatement */: - case 174 /* SwitchStatement */: - case 175 /* CaseClause */: - case 176 /* DefaultClause */: - case 177 /* LabeledStatement */: - case 178 /* ThrowStatement */: - case 179 /* TryStatement */: - case 180 /* TryBlock */: - case 181 /* CatchBlock */: - case 182 /* FinallyBlock */: + case 162 /* Block */: + case 163 /* VariableStatement */: + case 165 /* ExpressionStatement */: + case 166 /* IfStatement */: + case 167 /* DoStatement */: + case 168 /* WhileStatement */: + case 169 /* ForStatement */: + case 170 /* ForInStatement */: + case 173 /* ReturnStatement */: + case 174 /* WithStatement */: + case 175 /* SwitchStatement */: + case 176 /* CaseClause */: + case 177 /* DefaultClause */: + case 178 /* LabeledStatement */: + case 179 /* ThrowStatement */: + case 180 /* TryStatement */: + case 181 /* TryBlock */: + case 182 /* CatchBlock */: + case 183 /* FinallyBlock */: return ts.forEachChild(node, isAssignedIn); } return false; @@ -12989,7 +13336,7 @@ var ts; node = node.parent; var narrowedType = type; switch (node.kind) { - case 165 /* IfStatement */: + case 166 /* IfStatement */: if (child !== node.expression) { narrowedType = narrowType(type, node.expression, child === node.thenStatement); } @@ -13009,9 +13356,9 @@ var ts; } } break; - case 196 /* SourceFile */: - case 191 /* ModuleDeclaration */: - case 185 /* FunctionDeclaration */: + case 197 /* SourceFile */: + case 192 /* ModuleDeclaration */: + case 186 /* FunctionDeclaration */: case 125 /* Method */: case 127 /* GetAccessor */: case 128 /* SetAccessor */: @@ -13121,7 +13468,7 @@ var ts; return getNarrowedTypeOfSymbol(getExportSymbolOfValueSymbolIfExported(symbol), node); } function captureLexicalThis(node, container) { - var classNode = container.parent && container.parent.kind === 187 /* ClassDeclaration */ ? container.parent : undefined; + var classNode = container.parent && container.parent.kind === 188 /* ClassDeclaration */ ? container.parent : undefined; getNodeLinks(node).flags |= 2 /* LexicalThis */; if (container.kind === 124 /* Property */ || container.kind === 126 /* Constructor */) { getNodeLinks(classNode).flags |= 4 /* CaptureThis */; @@ -13138,10 +13485,10 @@ var ts; needToCaptureLexicalThis = true; } switch (container.kind) { - case 191 /* ModuleDeclaration */: + case 192 /* ModuleDeclaration */: error(node, ts.Diagnostics.this_cannot_be_referenced_in_a_module_body); break; - case 190 /* EnumDeclaration */: + case 191 /* EnumDeclaration */: error(node, ts.Diagnostics.this_cannot_be_referenced_in_current_location); break; case 126 /* Constructor */: @@ -13158,7 +13505,7 @@ var ts; if (needToCaptureLexicalThis) { captureLexicalThis(node, container); } - var classNode = container.parent && container.parent.kind === 187 /* ClassDeclaration */ ? container.parent : undefined; + var classNode = container.parent && container.parent.kind === 188 /* ClassDeclaration */ ? container.parent : undefined; if (classNode) { var symbol = getSymbolOfNode(classNode); return container.flags & 128 /* Static */ ? getTypeOfSymbol(symbol) : getDeclaredTypeOfSymbol(symbol); @@ -13171,7 +13518,7 @@ var ts; if (!node) return node; switch (node.kind) { - case 185 /* FunctionDeclaration */: + case 186 /* FunctionDeclaration */: case 152 /* FunctionExpression */: case 153 /* ArrowFunction */: case 124 /* Property */: @@ -13193,7 +13540,7 @@ var ts; } function checkSuperExpression(node) { var isCallExpression = node.parent.kind === 147 /* CallExpression */ && node.parent.func === node; - var enclosingClass = ts.getAncestor(node, 187 /* ClassDeclaration */); + var enclosingClass = ts.getAncestor(node, 188 /* ClassDeclaration */); var baseClass; if (enclosingClass && enclosingClass.baseType) { var classType = getDeclaredTypeOfSymbol(getSymbolOfNode(enclosingClass)); @@ -13215,7 +13562,7 @@ var ts; container = getSuperContainer(container); needToCaptureLexicalThis = true; } - if (container && container.parent && container.parent.kind === 187 /* ClassDeclaration */) { + if (container && container.parent && container.parent.kind === 188 /* ClassDeclaration */) { if (container.flags & 128 /* Static */) { canUseSuperExpression = container.kind === 125 /* Method */ || container.kind === 127 /* GetAccessor */ || container.kind === 128 /* SetAccessor */; } @@ -13393,12 +13740,12 @@ var ts; } var parent = node.parent; switch (parent.kind) { - case 184 /* VariableDeclaration */: + case 185 /* VariableDeclaration */: case 123 /* Parameter */: case 124 /* Property */: return getContextualTypeForInitializerExpression(node); case 153 /* ArrowFunction */: - case 172 /* ReturnStatement */: + case 173 /* ReturnStatement */: return getContextualTypeForReturnExpression(node); case 147 /* CallExpression */: case 148 /* NewExpression */: @@ -13549,7 +13896,7 @@ var ts; if (!(flags & (32 /* Private */ | 64 /* Protected */))) { return; } - var enclosingClassDeclaration = ts.getAncestor(node, 187 /* ClassDeclaration */); + var enclosingClassDeclaration = ts.getAncestor(node, 188 /* ClassDeclaration */); var enclosingClass = enclosingClassDeclaration ? getDeclaredTypeOfSymbol(getSymbolOfNode(enclosingClassDeclaration)) : undefined; var declaringClass = getDeclaredTypeOfSymbol(prop.parent); if (flags & 32 /* Private */) { @@ -13734,7 +14081,7 @@ var ts; var context = createInferenceContext(typeParameters, false); var mapper = createInferenceMapper(context); for (var i = 0; i < args.length; i++) { - if (args[i].kind === 160 /* OmittedExpression */) { + if (args[i].kind === 161 /* OmittedExpression */) { continue; } if (!excludeArgument || excludeArgument[i] === undefined) { @@ -13748,7 +14095,7 @@ var ts; } if (excludeArgument) { for (var i = 0; i < args.length; i++) { - if (args[i].kind === 160 /* OmittedExpression */) { + if (args[i].kind === 161 /* OmittedExpression */) { continue; } if (excludeArgument[i] === false) { @@ -13786,7 +14133,7 @@ var ts; for (var i = 0; i < args.length; i++) { var arg = args[i]; var argType; - if (arg.kind === 160 /* OmittedExpression */) { + if (arg.kind === 161 /* OmittedExpression */) { continue; } var paramType = getTypeAtPosition(signature, i); @@ -14109,7 +14456,7 @@ var ts; } function getReturnTypeFromBody(func, contextualMapper) { var contextualSignature = getContextualSignature(func); - if (func.body.kind !== 186 /* FunctionBlock */) { + if (func.body.kind !== 187 /* FunctionBlock */) { var unwidenedType = checkAndMarkExpression(func.body, contextualMapper); var widenedType = getWidenedType(unwidenedType); if (fullTypeCheck && compilerOptions.noImplicitAny && !contextualSignature && widenedType !== unwidenedType && getInnermostTypeOfNestedArrayTypes(widenedType) === anyType) { @@ -14157,7 +14504,7 @@ var ts; }); } function bodyContainsSingleThrowStatement(body) { - return (body.statements.length === 1) && (body.statements[0].kind === 178 /* ThrowStatement */); + return (body.statements.length === 1) && (body.statements[0].kind === 179 /* ThrowStatement */); } function checkIfNonVoidFunctionHasReturnExpressionsOrSingleThrowStatment(func, returnType) { if (!fullTypeCheck) { @@ -14166,7 +14513,7 @@ var ts; if (returnType === voidType || returnType === anyType) { return; } - if (!func.body || func.body.kind !== 186 /* FunctionBlock */) { + if (!func.body || func.body.kind !== 187 /* FunctionBlock */) { return; } var bodyBlock = func.body; @@ -14210,7 +14557,7 @@ var ts; if (node.type) { checkIfNonVoidFunctionHasReturnExpressionsOrSingleThrowStatment(node, getTypeFromTypeNode(node.type)); } - if (node.body.kind === 186 /* FunctionBlock */) { + if (node.body.kind === 187 /* FunctionBlock */) { checkSourceElement(node.body); } else { @@ -14558,7 +14905,7 @@ var ts; return checkBinaryExpression(node, contextualMapper); case 157 /* ConditionalExpression */: return checkConditionalExpression(node, contextualMapper); - case 160 /* OmittedExpression */: + case 161 /* OmittedExpression */: return undefinedType; } return unknownType; @@ -14638,7 +14985,7 @@ var ts; checkSpecializedSignatureDeclaration(node); } function checkTypeForDuplicateIndexSignatures(node) { - if (node.kind === 188 /* InterfaceDeclaration */) { + if (node.kind === 189 /* InterfaceDeclaration */) { var nodeSymbol = getSymbolOfNode(node); if (nodeSymbol.declarations.length > 0 && nodeSymbol.declarations[0] !== node) { return; @@ -14702,7 +15049,7 @@ var ts; } switch (n.kind) { case 152 /* FunctionExpression */: - case 185 /* FunctionDeclaration */: + case 186 /* FunctionDeclaration */: case 153 /* ArrowFunction */: case 142 /* ObjectLiteral */: return false; default: return ts.forEachChild(n, containsSuperCall); @@ -14712,7 +15059,7 @@ var ts; if (n.kind === 91 /* ThisKeyword */) { error(n, ts.Diagnostics.this_cannot_be_referenced_in_current_location); } - else if (n.kind !== 152 /* FunctionExpression */ && n.kind !== 185 /* FunctionDeclaration */) { + else if (n.kind !== 152 /* FunctionExpression */ && n.kind !== 186 /* FunctionDeclaration */) { ts.forEachChild(n, markThisReferencesAsErrors); } } @@ -14724,7 +15071,7 @@ var ts; var superCallShouldBeFirst = ts.forEach(node.parent.members, isInstancePropertyWithInitializer) || ts.forEach(node.parameters, function (p) { return p.flags & (16 /* Public */ | 32 /* Private */ | 64 /* Protected */); }); if (superCallShouldBeFirst) { var statements = node.body.statements; - if (!statements.length || statements[0].kind !== 164 /* ExpressionStatement */ || !isSuperCallExpression(statements[0].expression)) { + if (!statements.length || statements[0].kind !== 165 /* ExpressionStatement */ || !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 { @@ -14812,7 +15159,7 @@ var ts; return; } var signaturesToCheck; - if (!signatureDeclarationNode.name && signatureDeclarationNode.parent && signatureDeclarationNode.parent.kind === 188 /* InterfaceDeclaration */) { + if (!signatureDeclarationNode.name && signatureDeclarationNode.parent && signatureDeclarationNode.parent.kind === 189 /* InterfaceDeclaration */) { ts.Debug.assert(signatureDeclarationNode.kind === 129 /* CallSignature */ || signatureDeclarationNode.kind === 130 /* ConstructSignature */); var signatureKind = signatureDeclarationNode.kind === 129 /* CallSignature */ ? 0 /* Call */ : 1 /* Construct */; var containingSymbol = getSymbolOfNode(signatureDeclarationNode.parent); @@ -14832,7 +15179,7 @@ var ts; } function getEffectiveDeclarationFlags(n, flagsToCheck) { var flags = n.flags; - if (n.parent.kind !== 188 /* InterfaceDeclaration */ && ts.isInAmbientContext(n)) { + if (n.parent.kind !== 189 /* InterfaceDeclaration */ && ts.isInAmbientContext(n)) { if (!(flags & 2 /* Ambient */)) { flags |= 1 /* Export */; } @@ -14918,11 +15265,11 @@ var ts; for (var i = 0; i < declarations.length; i++) { var node = declarations[i]; var inAmbientContext = ts.isInAmbientContext(node); - var inAmbientContextOrInterface = node.parent.kind === 188 /* InterfaceDeclaration */ || node.parent.kind === 136 /* TypeLiteral */ || inAmbientContext; + var inAmbientContextOrInterface = node.parent.kind === 189 /* InterfaceDeclaration */ || node.parent.kind === 136 /* TypeLiteral */ || inAmbientContext; if (inAmbientContextOrInterface) { previousDeclaration = undefined; } - if (node.kind === 185 /* FunctionDeclaration */ || node.kind === 125 /* Method */ || node.kind === 126 /* Constructor */) { + if (node.kind === 186 /* FunctionDeclaration */ || node.kind === 125 /* Method */ || node.kind === 126 /* Constructor */) { var currentNodeFlags = getEffectiveDeclarationFlags(node, flagsToCheck); someNodeFlags |= currentNodeFlags; allNodeFlags &= currentNodeFlags; @@ -15016,14 +15363,14 @@ var ts; } function getDeclarationSpaces(d) { switch (d.kind) { - case 188 /* InterfaceDeclaration */: + case 189 /* InterfaceDeclaration */: return 8388608 /* ExportType */; - case 191 /* ModuleDeclaration */: + case 192 /* ModuleDeclaration */: return d.name.kind === 7 /* StringLiteral */ || ts.getModuleInstanceState(d) !== 0 /* NonInstantiated */ ? 16777216 /* ExportNamespace */ | 4194304 /* ExportValue */ : 16777216 /* ExportNamespace */; - case 187 /* ClassDeclaration */: - case 190 /* EnumDeclaration */: + case 188 /* ClassDeclaration */: + case 191 /* EnumDeclaration */: return 8388608 /* ExportType */ | 4194304 /* ExportValue */; - case 193 /* ImportDeclaration */: + case 194 /* ImportDeclaration */: var result = 0; var target = resolveImport(getSymbolOfNode(d)); ts.forEach(target.declarations, function (d) { @@ -15098,7 +15445,7 @@ var ts; return; } switch (current.kind) { - case 185 /* FunctionDeclaration */: + case 186 /* FunctionDeclaration */: case 152 /* FunctionExpression */: case 125 /* Method */: case 153 /* ArrowFunction */: @@ -15153,7 +15500,7 @@ var ts; if (!needCollisionCheckForIdentifier(node, name, "_super")) { return; } - var enclosingClass = ts.getAncestor(node, 187 /* ClassDeclaration */); + var enclosingClass = ts.getAncestor(node, 188 /* ClassDeclaration */); if (!enclosingClass || ts.isInAmbientContext(enclosingClass)) { return; } @@ -15171,11 +15518,11 @@ var ts; if (!needCollisionCheckForIdentifier(node, name, "require") && !needCollisionCheckForIdentifier(node, name, "exports")) { return; } - if (node.kind === 191 /* ModuleDeclaration */ && ts.getModuleInstanceState(node) !== 1 /* Instantiated */) { + if (node.kind === 192 /* ModuleDeclaration */ && ts.getModuleInstanceState(node) !== 1 /* Instantiated */) { return; } - var parent = node.kind === 184 /* VariableDeclaration */ ? node.parent.parent : node.parent; - if (parent.kind === 196 /* SourceFile */ && ts.isExternalModule(parent)) { + var parent = node.kind === 185 /* VariableDeclaration */ ? node.parent.parent : node.parent; + if (parent.kind === 197 /* SourceFile */ && 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)); } } @@ -15566,7 +15913,7 @@ var ts; checkTypeNameIsReserved(node.name, ts.Diagnostics.Interface_name_cannot_be_0); checkExportsOnMergedDeclarations(node); var symbol = getSymbolOfNode(node); - var firstInterfaceDecl = getDeclarationOfKind(symbol, 188 /* InterfaceDeclaration */); + var firstInterfaceDecl = getDeclarationOfKind(symbol, 189 /* InterfaceDeclaration */); 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); @@ -15599,7 +15946,7 @@ var ts; var enumType = getDeclaredTypeOfSymbol(enumSymbol); var autoValue = 0; var ambient = ts.isInAmbientContext(node); - var enumIsConst = ts.isConstEnumDeclaration(node); + var enumIsConst = ts.isConst(node); ts.forEach(node.members, function (member) { if (isNumericName(member.name.text)) { error(member.name, ts.Diagnostics.An_enum_member_cannot_have_a_numeric_name); @@ -15740,7 +16087,7 @@ var ts; var firstDeclaration = getDeclarationOfKind(enumSymbol, node.kind); if (node === firstDeclaration) { if (enumSymbol.declarations.length > 1) { - var enumIsConst = ts.isConstEnumDeclaration(node); + 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); @@ -15749,7 +16096,7 @@ var ts; } var seenEnumMissingInitialInitializer = false; ts.forEach(enumSymbol.declarations, function (declaration) { - if (declaration.kind !== 190 /* EnumDeclaration */) { + if (declaration.kind !== 191 /* EnumDeclaration */) { return false; } var enumDeclaration = declaration; @@ -15772,7 +16119,7 @@ var ts; var declarations = symbol.declarations; for (var i = 0; i < declarations.length; i++) { var declaration = declarations[i]; - if ((declaration.kind === 187 /* ClassDeclaration */ || (declaration.kind === 185 /* FunctionDeclaration */ && declaration.body)) && !ts.isInAmbientContext(declaration)) { + if ((declaration.kind === 188 /* ClassDeclaration */ || (declaration.kind === 186 /* FunctionDeclaration */ && declaration.body)) && !ts.isInAmbientContext(declaration)) { return declaration; } } @@ -15835,10 +16182,10 @@ var ts; } } else { - if (node.parent.kind === 196 /* SourceFile */) { + if (node.parent.kind === 197 /* SourceFile */) { target = resolveImport(symbol); } - else if (node.parent.kind === 192 /* ModuleBlock */ && node.parent.parent.name.kind === 7 /* StringLiteral */) { + else if (node.parent.kind === 193 /* ModuleBlock */ && node.parent.parent.name.kind === 7 /* StringLiteral */) { if (isExternalModuleNameRelative(node.externalModuleName.text)) { error(node, ts.Diagnostics.Import_declaration_in_an_ambient_external_module_declaration_cannot_reference_external_module_through_relative_external_module_name); target = unknownSymbol; @@ -15860,7 +16207,7 @@ var ts; } function checkExportAssignment(node) { var container = node.parent; - if (container.kind !== 196 /* SourceFile */) { + if (container.kind !== 197 /* SourceFile */) { container = container.parent; } checkTypeOfExportAssignmentSymbol(getSymbolOfNode(container)); @@ -15902,57 +16249,57 @@ var ts; return checkUnionType(node); case 140 /* ParenType */: return checkSourceElement(node.type); - case 185 /* FunctionDeclaration */: + case 186 /* FunctionDeclaration */: return checkFunctionDeclaration(node); - case 161 /* Block */: + case 162 /* Block */: return checkBlock(node); - case 186 /* FunctionBlock */: - case 192 /* ModuleBlock */: + case 187 /* FunctionBlock */: + case 193 /* ModuleBlock */: return checkBody(node); - case 162 /* VariableStatement */: + case 163 /* VariableStatement */: return checkVariableStatement(node); - case 164 /* ExpressionStatement */: + case 165 /* ExpressionStatement */: return checkExpressionStatement(node); - case 165 /* IfStatement */: + case 166 /* IfStatement */: return checkIfStatement(node); - case 166 /* DoStatement */: + case 167 /* DoStatement */: return checkDoStatement(node); - case 167 /* WhileStatement */: + case 168 /* WhileStatement */: return checkWhileStatement(node); - case 168 /* ForStatement */: + case 169 /* ForStatement */: return checkForStatement(node); - case 169 /* ForInStatement */: + case 170 /* ForInStatement */: return checkForInStatement(node); - case 170 /* ContinueStatement */: - case 171 /* BreakStatement */: + case 171 /* ContinueStatement */: + case 172 /* BreakStatement */: return checkBreakOrContinueStatement(node); - case 172 /* ReturnStatement */: + case 173 /* ReturnStatement */: return checkReturnStatement(node); - case 173 /* WithStatement */: + case 174 /* WithStatement */: return checkWithStatement(node); - case 174 /* SwitchStatement */: + case 175 /* SwitchStatement */: return checkSwitchStatement(node); - case 177 /* LabeledStatement */: + case 178 /* LabeledStatement */: return checkLabeledStatement(node); - case 178 /* ThrowStatement */: + case 179 /* ThrowStatement */: return checkThrowStatement(node); - case 179 /* TryStatement */: + case 180 /* TryStatement */: return checkTryStatement(node); - case 184 /* VariableDeclaration */: + case 185 /* VariableDeclaration */: return ts.Debug.fail("Checker encountered variable declaration"); - case 187 /* ClassDeclaration */: + case 188 /* ClassDeclaration */: return checkClassDeclaration(node); - case 188 /* InterfaceDeclaration */: + case 189 /* InterfaceDeclaration */: return checkInterfaceDeclaration(node); - case 189 /* TypeAliasDeclaration */: + case 190 /* TypeAliasDeclaration */: return checkTypeAliasDeclaration(node); - case 190 /* EnumDeclaration */: + case 191 /* EnumDeclaration */: return checkEnumDeclaration(node); - case 191 /* ModuleDeclaration */: + case 192 /* ModuleDeclaration */: return checkModuleDeclaration(node); - case 193 /* ImportDeclaration */: + case 194 /* ImportDeclaration */: return checkImportDeclaration(node); - case 194 /* ExportAssignment */: + case 195 /* ExportAssignment */: return checkExportAssignment(node); } } @@ -15967,10 +16314,10 @@ var ts; case 126 /* Constructor */: case 127 /* GetAccessor */: case 128 /* SetAccessor */: - case 185 /* FunctionDeclaration */: + case 186 /* FunctionDeclaration */: ts.forEach(node.parameters, checkFunctionExpressionBodies); break; - case 173 /* WithStatement */: + case 174 /* WithStatement */: checkFunctionExpressionBodies(node.expression); break; case 123 /* Parameter */: @@ -15989,33 +16336,33 @@ var ts; case 155 /* PostfixOperator */: case 156 /* BinaryExpression */: case 157 /* ConditionalExpression */: - case 161 /* Block */: - case 186 /* FunctionBlock */: - case 192 /* ModuleBlock */: - case 162 /* VariableStatement */: - case 164 /* ExpressionStatement */: - case 165 /* IfStatement */: - case 166 /* DoStatement */: - case 167 /* WhileStatement */: - case 168 /* ForStatement */: - case 169 /* ForInStatement */: - case 170 /* ContinueStatement */: - case 171 /* BreakStatement */: - case 172 /* ReturnStatement */: - case 174 /* SwitchStatement */: - case 175 /* CaseClause */: - case 176 /* DefaultClause */: - case 177 /* LabeledStatement */: - case 178 /* ThrowStatement */: - case 179 /* TryStatement */: - case 180 /* TryBlock */: - case 181 /* CatchBlock */: - case 182 /* FinallyBlock */: - case 184 /* VariableDeclaration */: - case 187 /* ClassDeclaration */: - case 190 /* EnumDeclaration */: - case 195 /* EnumMember */: - case 196 /* SourceFile */: + case 162 /* Block */: + case 187 /* FunctionBlock */: + case 193 /* ModuleBlock */: + case 163 /* VariableStatement */: + case 165 /* ExpressionStatement */: + case 166 /* IfStatement */: + case 167 /* DoStatement */: + case 168 /* WhileStatement */: + case 169 /* ForStatement */: + case 170 /* ForInStatement */: + case 171 /* ContinueStatement */: + case 172 /* BreakStatement */: + case 173 /* ReturnStatement */: + case 175 /* SwitchStatement */: + case 176 /* CaseClause */: + case 177 /* DefaultClause */: + case 178 /* LabeledStatement */: + case 179 /* ThrowStatement */: + case 180 /* TryStatement */: + case 181 /* TryBlock */: + case 182 /* CatchBlock */: + case 183 /* FinallyBlock */: + case 185 /* VariableDeclaration */: + case 188 /* ClassDeclaration */: + case 191 /* EnumDeclaration */: + case 196 /* EnumMember */: + case 197 /* SourceFile */: ts.forEachChild(node, checkFunctionExpressionBodies); break; } @@ -16065,6 +16412,11 @@ var ts; checkProgram(); return getSortedDiagnostics(); } + function getDeclarationDiagnostics(targetSourceFile) { + var resolver = createResolver(); + checkSourceFile(targetSourceFile); + return ts.getDeclarationDiagnostics(program, resolver, targetSourceFile); + } function getGlobalDiagnostics() { return ts.filter(getSortedDiagnostics(), function (d) { return !d.file; }); } @@ -16086,7 +16438,7 @@ var ts; function isInsideWithStatementBody(node) { if (node) { while (node.parent) { - if (node.parent.kind === 173 /* WithStatement */ && node.parent.statement === node) { + if (node.parent.kind === 174 /* WithStatement */ && node.parent.statement === node) { return true; } node = node.parent; @@ -16122,17 +16474,17 @@ var ts; copySymbols(location.locals, meaning); } switch (location.kind) { - case 196 /* SourceFile */: + case 197 /* SourceFile */: if (!ts.isExternalModule(location)) break; - case 191 /* ModuleDeclaration */: + case 192 /* ModuleDeclaration */: copySymbols(getSymbolOfNode(location).exports, meaning & 35653619 /* ModuleMember */); break; - case 190 /* EnumDeclaration */: + case 191 /* EnumDeclaration */: copySymbols(getSymbolOfNode(location).exports, meaning & 8 /* EnumMember */); break; - case 187 /* ClassDeclaration */: - case 188 /* InterfaceDeclaration */: + case 188 /* ClassDeclaration */: + case 189 /* InterfaceDeclaration */: if (!(memberFlags & 128 /* Static */)) { copySymbols(getSymbolOfNode(location).members, meaning & 3152352 /* Type */); } @@ -16142,7 +16494,7 @@ var ts; copySymbol(location.symbol, meaning); } break; - case 181 /* CatchBlock */: + case 182 /* CatchBlock */: if (location.variable.text) { copySymbol(location.symbol, meaning); } @@ -16160,10 +16512,10 @@ var ts; function isTypeDeclaration(node) { switch (node.kind) { case 122 /* TypeParameter */: - case 187 /* ClassDeclaration */: - case 188 /* InterfaceDeclaration */: - case 189 /* TypeAliasDeclaration */: - case 190 /* EnumDeclaration */: + case 188 /* ClassDeclaration */: + case 189 /* InterfaceDeclaration */: + case 190 /* TypeAliasDeclaration */: + case 191 /* EnumDeclaration */: return true; } } @@ -16205,9 +16557,9 @@ var ts; return node === parent.constraint; case 124 /* Property */: case 123 /* Parameter */: - case 184 /* VariableDeclaration */: + case 185 /* VariableDeclaration */: return node === parent.type; - case 185 /* FunctionDeclaration */: + case 186 /* FunctionDeclaration */: case 152 /* FunctionExpression */: case 153 /* ArrowFunction */: case 126 /* Constructor */: @@ -16234,10 +16586,10 @@ var ts; while (node.parent.kind === 121 /* QualifiedName */) { node = node.parent; } - if (node.parent.kind === 193 /* ImportDeclaration */) { + if (node.parent.kind === 194 /* ImportDeclaration */) { return node.parent.entityName === node; } - if (node.parent.kind === 194 /* ExportAssignment */) { + if (node.parent.kind === 195 /* ExportAssignment */) { return node.parent.exportName === node; } return false; @@ -16249,7 +16601,7 @@ var ts; if (ts.isDeclarationOrFunctionExpressionOrCatchVariableName(entityName)) { return getSymbolOfNode(entityName.parent); } - if (entityName.parent.kind === 194 /* ExportAssignment */) { + if (entityName.parent.kind === 195 /* ExportAssignment */) { return resolveEntityName(entityName.parent.parent, entityName, 107455 /* Value */ | 3152352 /* Type */ | 1536 /* Namespace */ | 33554432 /* Import */); } if (isInRightSideOfImportOrExportAssignment(entityName)) { @@ -16289,7 +16641,7 @@ var ts; return getSymbolOfNode(node.parent); } if (node.kind === 63 /* Identifier */ && isInRightSideOfImportOrExportAssignment(node)) { - return node.parent.kind === 194 /* ExportAssignment */ ? getSymbolOfEntityName(node) : getSymbolOfPartOfRightHandSideOfImport(node); + return node.parent.kind === 195 /* ExportAssignment */ ? getSymbolOfEntityName(node) : getSymbolOfPartOfRightHandSideOfImport(node); } switch (node.kind) { case 63 /* Identifier */: @@ -16307,7 +16659,7 @@ var ts; } return undefined; case 7 /* StringLiteral */: - if (node.parent.kind === 193 /* ImportDeclaration */ && node.parent.externalModuleName === node) { + if (node.parent.kind === 194 /* ImportDeclaration */ && node.parent.externalModuleName === node) { var importSymbol = getSymbolOfNode(node.parent); var moduleType = getTypeOfSymbol(importSymbol); return moduleType ? moduleType.symbol : undefined; @@ -16401,7 +16753,7 @@ var ts; return [symbol]; } function isExternalModuleSymbol(symbol) { - return symbol.flags & 512 /* ValueModule */ && symbol.declarations.length === 1 && symbol.declarations[0].kind === 196 /* SourceFile */; + return symbol.flags & 512 /* ValueModule */ && symbol.declarations.length === 1 && symbol.declarations[0].kind === 197 /* SourceFile */; } function isNodeDescendentOf(node, ancestor) { while (node) { @@ -16434,7 +16786,7 @@ var ts; function getLocalNameForSymbol(symbol, location) { var node = location; while (node) { - if ((node.kind === 191 /* ModuleDeclaration */ || node.kind === 190 /* EnumDeclaration */) && getSymbolOfNode(node) === symbol) { + if ((node.kind === 192 /* ModuleDeclaration */ || node.kind === 191 /* EnumDeclaration */) && getSymbolOfNode(node) === symbol) { return getLocalNameOfContainer(node); } node = node.parent; @@ -16458,7 +16810,7 @@ var ts; return symbol && symbolIsValue(symbol) && !isConstEnumSymbol(symbol) ? symbolToString(symbol) : undefined; } function isTopLevelValueImportWithEntityName(node) { - if (node.parent.kind !== 196 /* SourceFile */ || !node.entityName) { + if (node.parent.kind !== 197 /* SourceFile */ || !node.entityName) { return false; } return isImportResolvedToValue(getSymbolOfNode(node)); @@ -16509,7 +16861,7 @@ var ts; if (symbol && (symbol.flags & 8 /* EnumMember */)) { var declaration = symbol.valueDeclaration; var constantValue; - if (declaration.kind === 195 /* EnumMember */ && (constantValue = getNodeLinks(declaration).enumMemberValue) !== undefined) { + if (declaration.kind === 196 /* EnumMember */ && (constantValue = getNodeLinks(declaration).enumMemberValue) !== undefined) { return constantValue; } } @@ -16524,8 +16876,8 @@ var ts; var signature = getSignatureFromDeclaration(signatureDeclaration); getSymbolDisplayBuilder().buildTypeDisplay(getReturnTypeOfSignature(signature), writer, enclosingDeclaration, flags); } - function invokeEmitter(targetSourceFile) { - var resolver = { + function createResolver() { + return { getProgram: function () { return program; }, getLocalNameOfContainer: getLocalNameOfContainer, getExpressionNamePrefix: getExpressionNamePrefix, @@ -16541,9 +16893,12 @@ var ts; writeTypeAtLocation: writeTypeAtLocation, writeReturnTypeOfSignatureDeclaration: writeReturnTypeOfSignatureDeclaration, isSymbolAccessible: isSymbolAccessible, - isImportDeclarationEntityNameReferenceDeclarationVisibile: isImportDeclarationEntityNameReferenceDeclarationVisibile, + isEntityNameVisible: isEntityNameVisible, getConstantValue: getConstantValue }; + } + function invokeEmitter(targetSourceFile) { + var resolver = createResolver(); checkProgram(); return ts.emitFiles(resolver, targetSourceFile); } @@ -17078,7 +17433,7 @@ var ts; } else { var emitStart = new Date().getTime(); - var emitOutput = checker.invokeEmitter(); + var emitOutput = checker.emitFiles(); var emitErrors = emitOutput.diagnostics; exitStatus = emitOutput.emitResultStatus; var reportStart = new Date().getTime(); diff --git a/bin/typescriptServices.js b/bin/typescriptServices.js index 367a79bd47a..3fdcc628581 100644 --- a/bin/typescriptServices.js +++ b/bin/typescriptServices.js @@ -418,6 +418,10 @@ var ts; 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); @@ -713,6 +717,7 @@ var ts; Unterminated_template_literal: { code: 1160, category: 1 /* Error */, key: "Unterminated template literal." }, Unterminated_regular_expression_literal: { code: 1161, category: 1 /* Error */, key: "Unterminated regular expression literal." }, An_object_member_cannot_be_declared_optional: { code: 1162, category: 1 /* Error */, key: "An object member cannot be declared optional." }, + yield_expression_must_be_contained_within_a_generator_declaration: { code: 1163, category: 1 /* Error */, key: "'yield' expression must be contained_within a generator declaration." }, Duplicate_identifier_0: { code: 2300, category: 1 /* Error */, key: "Duplicate identifier '{0}'." }, Initializer_of_instance_member_variable_0_cannot_reference_identifier_1_declared_in_the_constructor: { code: 2301, category: 1 /* 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: 1 /* Error */, key: "Static members cannot reference class type parameters." }, @@ -863,27 +868,16 @@ var ts; Type_alias_name_cannot_be_0: { code: 2457, category: 1 /* Error */, key: "Type alias name cannot be '{0}'" }, An_AMD_module_cannot_have_multiple_name_assignments: { code: 2458, category: 1 /* Error */, key: "An AMD module cannot have multiple name assignments." }, Import_declaration_0_is_using_private_name_1: { code: 4000, category: 1 /* Error */, key: "Import declaration '{0}' is using private name '{1}'." }, - Type_parameter_0_of_exported_class_has_or_is_using_name_1_from_private_module_2: { code: 4001, category: 1 /* Error */, key: "Type parameter '{0}' of exported class has or is using name '{1}' from private module '{2}'." }, Type_parameter_0_of_exported_class_has_or_is_using_private_name_1: { code: 4002, category: 1 /* 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_name_1_from_private_module_2: { code: 4003, category: 1 /* Error */, key: "Type parameter '{0}' of exported interface has or is using name '{1}' from private module '{2}'." }, Type_parameter_0_of_exported_interface_has_or_is_using_private_name_1: { code: 4004, category: 1 /* 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_name_1_from_private_module_2: { code: 4005, category: 1 /* Error */, key: "Type parameter '{0}' of constructor signature from exported interface has or is using name '{1}' from private module '{2}'." }, Type_parameter_0_of_constructor_signature_from_exported_interface_has_or_is_using_private_name_1: { code: 4006, category: 1 /* 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_name_1_from_private_module_2: { code: 4007, category: 1 /* Error */, key: "Type parameter '{0}' of call signature from exported interface has or is using name '{1}' from private module '{2}'." }, Type_parameter_0_of_call_signature_from_exported_interface_has_or_is_using_private_name_1: { code: 4008, category: 1 /* 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_name_1_from_private_module_2: { code: 4009, category: 1 /* Error */, key: "Type parameter '{0}' of public static method from exported class has or is using name '{1}' from private module '{2}'." }, Type_parameter_0_of_public_static_method_from_exported_class_has_or_is_using_private_name_1: { code: 4010, category: 1 /* 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_name_1_from_private_module_2: { code: 4011, category: 1 /* Error */, key: "Type parameter '{0}' of public method from exported class has or is using name '{1}' from private module '{2}'." }, Type_parameter_0_of_public_method_from_exported_class_has_or_is_using_private_name_1: { code: 4012, category: 1 /* 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_name_1_from_private_module_2: { code: 4013, category: 1 /* Error */, key: "Type parameter '{0}' of method from exported interface has or is using name '{1}' from private module '{2}'." }, Type_parameter_0_of_method_from_exported_interface_has_or_is_using_private_name_1: { code: 4014, category: 1 /* 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_name_1_from_private_module_2: { code: 4015, category: 1 /* Error */, key: "Type parameter '{0}' of exported function has or is using name '{1}' from private module '{2}'." }, Type_parameter_0_of_exported_function_has_or_is_using_private_name_1: { code: 4016, category: 1 /* 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_name_1_from_private_module_2: { code: 4017, category: 1 /* Error */, key: "Implements clause of exported class '{0}' has or is using name '{1}' from private module '{2}'." }, - Extends_clause_of_exported_class_0_has_or_is_using_name_1_from_private_module_2: { code: 4018, category: 1 /* Error */, key: "Extends clause of exported class '{0}' has or is using name '{1}' from private module '{2}'." }, Implements_clause_of_exported_class_0_has_or_is_using_private_name_1: { code: 4019, category: 1 /* 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: 1 /* 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_name_1_from_private_module_2: { code: 4021, category: 1 /* Error */, key: "Extends clause of exported interface '{0}' has or is using name '{1}' from private module '{2}'." }, Extends_clause_of_exported_interface_0_has_or_is_using_private_name_1: { code: 4022, category: 1 /* 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: 1 /* 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: 1 /* Error */, key: "Exported variable '{0}' has or is using name '{1}' from private module '{2}'." }, @@ -941,8 +935,6 @@ var ts; Parameter_0_of_exported_function_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named: { code: 4076, category: 1 /* 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: 1 /* 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: 1 /* Error */, key: "Parameter '{0}' of exported function has or is using private name '{1}'." }, - Exported_type_alias_0_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named: { code: 4079, category: 1 /* Error */, key: "Exported type alias '{0}' has or is using name '{1}' from external module {2} but cannot be named." }, - Exported_type_alias_0_has_or_is_using_name_1_from_private_module_2: { code: 4080, category: 1 /* Error */, key: "Exported type alias '{0}' has or is using name '{1}' from private module '{2}'." }, Exported_type_alias_0_has_or_is_using_private_name_1: { code: 4081, category: 1 /* Error */, key: "Exported type alias '{0}' has or is using private name '{1}'." }, Enum_declarations_must_all_be_const_or_non_const: { code: 4082, category: 1 /* Error */, key: "Enum declarations must all be const or non-const." }, In_const_enum_declarations_member_initializer_must_be_constant_expression: { code: 4083, category: 1 /* Error */, key: "In 'const' enum declarations member initializer must be constant expression.", isEarly: true }, @@ -1013,7 +1005,9 @@ var ts; _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: 1 /* 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: 1 /* 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: 1 /* 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: 1 /* Error */, key: "You cannot rename this element." } + You_cannot_rename_this_element: { code: 8000, category: 1 /* Error */, key: "You cannot rename this element." }, + yield_expressions_are_not_currently_supported: { code: 9000, category: 1 /* Error */, key: "'yield' expressions are not currently supported." }, + generators_are_not_currently_supported: { code: 9001, category: 1 /* Error */, key: "'generators' are not currently supported." } }; })(ts || (ts = {})); var ts; @@ -2011,7 +2005,7 @@ var ts; })(ts || (ts = {})); var ts; (function (ts) { - var nodeConstructors = new Array(199 /* Count */); + var nodeConstructors = new Array(200 /* Count */); function getNodeConstructor(kind) { return nodeConstructors[kind] || (nodeConstructors[kind] = ts.objectAllocator.getNodeConstructor(kind)); } @@ -2024,7 +2018,7 @@ var ts; return node; } function getSourceFileOfNode(node) { - while (node && node.kind !== 196 /* SourceFile */) + while (node && node.kind !== 197 /* SourceFile */) node = node.parent; return node; } @@ -2046,13 +2040,17 @@ var ts; return ts.skipTrivia((sourceFile || getSourceFileOfNode(node)).text, node.pos); } ts.getTokenPosOfNode = getTokenPosOfNode; + function getSourceTextOfNodeFromSourceFile(sourceFile, node) { + var text = sourceFile.text; + return text.substring(ts.skipTrivia(text, node.pos), node.end); + } + ts.getSourceTextOfNodeFromSourceFile = getSourceTextOfNodeFromSourceFile; function getTextOfNodeFromSourceText(sourceText, node) { return sourceText.substring(ts.skipTrivia(sourceText, node.pos), node.end); } ts.getTextOfNodeFromSourceText = getTextOfNodeFromSourceText; function getTextOfNode(node) { - var text = getSourceFileOfNode(node).text; - return text.substring(ts.skipTrivia(text, node.pos), node.end); + return getSourceTextOfNodeFromSourceFile(getSourceFileOfNode(node), node); } ts.getTextOfNode = getTextOfNode; function escapeIdentifier(identifier) { @@ -2086,12 +2084,12 @@ var ts; function getErrorSpanForNode(node) { var errorSpan; switch (node.kind) { - case 184 /* VariableDeclaration */: - case 187 /* ClassDeclaration */: - case 188 /* InterfaceDeclaration */: - case 191 /* ModuleDeclaration */: - case 190 /* EnumDeclaration */: - case 195 /* EnumMember */: + case 185 /* VariableDeclaration */: + case 188 /* ClassDeclaration */: + case 189 /* InterfaceDeclaration */: + case 192 /* ModuleDeclaration */: + case 191 /* EnumDeclaration */: + case 196 /* EnumMember */: errorSpan = node.name; break; } @@ -2107,11 +2105,19 @@ var ts; } ts.isDeclarationFile = isDeclarationFile; function isConstEnumDeclaration(node) { - return (node.flags & 4096 /* Const */) !== 0; + return node.kind === 191 /* EnumDeclaration */ && isConst(node); } ts.isConstEnumDeclaration = isConstEnumDeclaration; + function isConst(node) { + return !!(node.flags & 4096 /* Const */); + } + ts.isConst = isConst; + function isLet(node) { + return !!(node.flags & 2048 /* Let */); + } + ts.isLet = isLet; function isPrologueDirective(node) { - return node.kind === 164 /* ExpressionStatement */ && node.expression.kind === 7 /* StringLiteral */; + return node.kind === 165 /* ExpressionStatement */ && node.expression.kind === 7 /* StringLiteral */; } ts.isPrologueDirective = isPrologueDirective; function isEvalOrArgumentsIdentifier(node) { @@ -2180,7 +2186,7 @@ var ts; case 127 /* GetAccessor */: case 128 /* SetAccessor */: case 152 /* FunctionExpression */: - case 185 /* FunctionDeclaration */: + case 186 /* FunctionDeclaration */: case 153 /* ArrowFunction */: return child(node.name) || children(node.typeParameters) || children(node.parameters) || child(node.type) || child(node.body); case 132 /* TypeReference */: @@ -2221,64 +2227,64 @@ var ts; return child(node.left) || child(node.right); case 157 /* ConditionalExpression */: return child(node.condition) || child(node.whenTrue) || child(node.whenFalse); - case 161 /* Block */: - case 180 /* TryBlock */: - case 182 /* FinallyBlock */: - case 186 /* FunctionBlock */: - case 192 /* ModuleBlock */: - case 196 /* SourceFile */: + case 162 /* Block */: + case 181 /* TryBlock */: + case 183 /* FinallyBlock */: + case 187 /* FunctionBlock */: + case 193 /* ModuleBlock */: + case 197 /* SourceFile */: return children(node.statements); - case 162 /* VariableStatement */: + case 163 /* VariableStatement */: return children(node.declarations); - case 164 /* ExpressionStatement */: + case 165 /* ExpressionStatement */: return child(node.expression); - case 165 /* IfStatement */: + case 166 /* IfStatement */: return child(node.expression) || child(node.thenStatement) || child(node.elseStatement); - case 166 /* DoStatement */: + case 167 /* DoStatement */: return child(node.statement) || child(node.expression); - case 167 /* WhileStatement */: + case 168 /* WhileStatement */: return child(node.expression) || child(node.statement); - case 168 /* ForStatement */: + case 169 /* ForStatement */: return children(node.declarations) || child(node.initializer) || child(node.condition) || child(node.iterator) || child(node.statement); - case 169 /* ForInStatement */: + case 170 /* ForInStatement */: return children(node.declarations) || child(node.variable) || child(node.expression) || child(node.statement); - case 170 /* ContinueStatement */: - case 171 /* BreakStatement */: + case 171 /* ContinueStatement */: + case 172 /* BreakStatement */: return child(node.label); - case 172 /* ReturnStatement */: + case 173 /* ReturnStatement */: return child(node.expression); - case 173 /* WithStatement */: + case 174 /* WithStatement */: return child(node.expression) || child(node.statement); - case 174 /* SwitchStatement */: + case 175 /* SwitchStatement */: return child(node.expression) || children(node.clauses); - case 175 /* CaseClause */: - case 176 /* DefaultClause */: + case 176 /* CaseClause */: + case 177 /* DefaultClause */: return child(node.expression) || children(node.statements); - case 177 /* LabeledStatement */: + case 178 /* LabeledStatement */: return child(node.label) || child(node.statement); - case 178 /* ThrowStatement */: + case 179 /* ThrowStatement */: return child(node.expression); - case 179 /* TryStatement */: + case 180 /* TryStatement */: return child(node.tryBlock) || child(node.catchBlock) || child(node.finallyBlock); - case 181 /* CatchBlock */: + case 182 /* CatchBlock */: return child(node.variable) || children(node.statements); - case 184 /* VariableDeclaration */: + case 185 /* VariableDeclaration */: return child(node.name) || child(node.type) || child(node.initializer); - case 187 /* ClassDeclaration */: + case 188 /* ClassDeclaration */: return child(node.name) || children(node.typeParameters) || child(node.baseType) || children(node.implementedTypes) || children(node.members); - case 188 /* InterfaceDeclaration */: + case 189 /* InterfaceDeclaration */: return child(node.name) || children(node.typeParameters) || children(node.baseTypes) || children(node.members); - case 189 /* TypeAliasDeclaration */: + case 190 /* TypeAliasDeclaration */: return child(node.name) || child(node.type); - case 190 /* EnumDeclaration */: + case 191 /* EnumDeclaration */: return child(node.name) || children(node.members); - case 195 /* EnumMember */: + case 196 /* EnumMember */: return child(node.name) || child(node.initializer); - case 191 /* ModuleDeclaration */: + case 192 /* ModuleDeclaration */: return child(node.name) || child(node.body); - case 193 /* ImportDeclaration */: + case 194 /* ImportDeclaration */: return child(node.name) || child(node.entityName) || child(node.externalModuleName); - case 194 /* ExportAssignment */: + case 195 /* ExportAssignment */: return child(node.exportName); case 158 /* TemplateExpression */: return child(node.head) || children(node.templateSpans); @@ -2291,24 +2297,24 @@ var ts; return traverse(body); function traverse(node) { switch (node.kind) { - case 172 /* ReturnStatement */: + case 173 /* ReturnStatement */: return visitor(node); - case 161 /* Block */: - case 186 /* FunctionBlock */: - case 165 /* IfStatement */: - case 166 /* DoStatement */: - case 167 /* WhileStatement */: - case 168 /* ForStatement */: - case 169 /* ForInStatement */: - case 173 /* WithStatement */: - case 174 /* SwitchStatement */: - case 175 /* CaseClause */: - case 176 /* DefaultClause */: - case 177 /* LabeledStatement */: - case 179 /* TryStatement */: - case 180 /* TryBlock */: - case 181 /* CatchBlock */: - case 182 /* FinallyBlock */: + case 162 /* Block */: + case 187 /* FunctionBlock */: + case 166 /* IfStatement */: + case 167 /* DoStatement */: + case 168 /* WhileStatement */: + case 169 /* ForStatement */: + case 170 /* ForInStatement */: + case 174 /* WithStatement */: + case 175 /* SwitchStatement */: + case 176 /* CaseClause */: + case 177 /* DefaultClause */: + case 178 /* LabeledStatement */: + case 180 /* TryStatement */: + case 181 /* TryBlock */: + case 182 /* CatchBlock */: + case 183 /* FinallyBlock */: return forEachChild(node, traverse); } } @@ -2318,7 +2324,7 @@ var ts; if (node) { switch (node.kind) { case 152 /* FunctionExpression */: - case 185 /* FunctionDeclaration */: + case 186 /* FunctionDeclaration */: case 153 /* ArrowFunction */: case 125 /* Method */: case 127 /* GetAccessor */: @@ -2350,16 +2356,16 @@ var ts; if (!includeArrowFunctions) { continue; } - case 185 /* FunctionDeclaration */: + case 186 /* FunctionDeclaration */: case 152 /* FunctionExpression */: - case 191 /* ModuleDeclaration */: + case 192 /* ModuleDeclaration */: case 124 /* Property */: case 125 /* Method */: case 126 /* Constructor */: case 127 /* GetAccessor */: case 128 /* SetAccessor */: - case 190 /* EnumDeclaration */: - case 196 /* SourceFile */: + case 191 /* EnumDeclaration */: + case 197 /* SourceFile */: return node; } } @@ -2382,6 +2388,13 @@ var ts; } } ts.getSuperContainer = getSuperContainer; + function getInvokedExpression(node) { + if (node.kind === 149 /* TaggedTemplateExpression */) { + return node.tag; + } + return node.func; + } + ts.getInvokedExpression = getInvokedExpression; function isExpression(node) { switch (node.kind) { case 91 /* ThisKeyword */: @@ -2407,7 +2420,7 @@ var ts; case 157 /* ConditionalExpression */: case 158 /* TemplateExpression */: case 9 /* NoSubstitutionTemplateLiteral */: - case 160 /* OmittedExpression */: + case 161 /* OmittedExpression */: return true; case 121 /* QualifiedName */: while (node.parent.kind === 121 /* QualifiedName */) @@ -2421,26 +2434,26 @@ var ts; case 7 /* StringLiteral */: var parent = node.parent; switch (parent.kind) { - case 184 /* VariableDeclaration */: + case 185 /* VariableDeclaration */: case 123 /* Parameter */: case 124 /* Property */: - case 195 /* EnumMember */: + case 196 /* EnumMember */: case 143 /* PropertyAssignment */: return parent.initializer === node; - case 164 /* ExpressionStatement */: - case 165 /* IfStatement */: - case 166 /* DoStatement */: - case 167 /* WhileStatement */: - case 172 /* ReturnStatement */: - case 173 /* WithStatement */: - case 174 /* SwitchStatement */: - case 175 /* CaseClause */: - case 178 /* ThrowStatement */: - case 174 /* SwitchStatement */: + case 165 /* ExpressionStatement */: + case 166 /* IfStatement */: + case 167 /* DoStatement */: + case 168 /* WhileStatement */: + case 173 /* ReturnStatement */: + case 174 /* WithStatement */: + case 175 /* SwitchStatement */: + case 176 /* CaseClause */: + case 179 /* ThrowStatement */: + case 175 /* SwitchStatement */: return parent.expression === node; - case 168 /* ForStatement */: + case 169 /* ForStatement */: return parent.initializer === node || parent.condition === node || parent.iterator === node; - case 169 /* ForInStatement */: + case 170 /* ForInStatement */: return parent.variable === node || parent.expression === node; case 150 /* TypeAssertion */: return node === parent.operand; @@ -2484,21 +2497,22 @@ var ts; switch (node.kind) { case 122 /* TypeParameter */: case 123 /* Parameter */: - case 184 /* VariableDeclaration */: + case 185 /* VariableDeclaration */: case 124 /* Property */: case 143 /* PropertyAssignment */: case 144 /* ShorthandPropertyAssignment */: - case 195 /* EnumMember */: + case 196 /* EnumMember */: case 125 /* Method */: - case 185 /* FunctionDeclaration */: + case 186 /* FunctionDeclaration */: case 127 /* GetAccessor */: case 128 /* SetAccessor */: - case 187 /* ClassDeclaration */: - case 188 /* InterfaceDeclaration */: - case 189 /* TypeAliasDeclaration */: - case 190 /* EnumDeclaration */: - case 191 /* ModuleDeclaration */: - case 193 /* ImportDeclaration */: + case 126 /* Constructor */: + case 188 /* ClassDeclaration */: + case 189 /* InterfaceDeclaration */: + case 190 /* TypeAliasDeclaration */: + case 191 /* EnumDeclaration */: + case 192 /* ModuleDeclaration */: + case 194 /* ImportDeclaration */: return true; } return false; @@ -2506,24 +2520,24 @@ var ts; ts.isDeclaration = isDeclaration; function isStatement(n) { switch (n.kind) { - case 171 /* BreakStatement */: - case 170 /* ContinueStatement */: - case 183 /* DebuggerStatement */: - case 166 /* DoStatement */: - case 164 /* ExpressionStatement */: - case 163 /* EmptyStatement */: - case 169 /* ForInStatement */: - case 168 /* ForStatement */: - case 165 /* IfStatement */: - case 177 /* LabeledStatement */: - case 172 /* ReturnStatement */: - case 174 /* SwitchStatement */: + case 172 /* BreakStatement */: + case 171 /* ContinueStatement */: + case 184 /* DebuggerStatement */: + case 167 /* DoStatement */: + case 165 /* ExpressionStatement */: + case 164 /* EmptyStatement */: + case 170 /* ForInStatement */: + case 169 /* ForStatement */: + case 166 /* IfStatement */: + case 178 /* LabeledStatement */: + case 173 /* ReturnStatement */: + case 175 /* SwitchStatement */: case 92 /* ThrowKeyword */: - case 179 /* TryStatement */: - case 162 /* VariableStatement */: - case 167 /* WhileStatement */: - case 173 /* WithStatement */: - case 194 /* ExportAssignment */: + case 180 /* TryStatement */: + case 163 /* VariableStatement */: + case 168 /* WhileStatement */: + case 174 /* WithStatement */: + case 195 /* ExportAssignment */: return true; default: return false; @@ -2538,24 +2552,32 @@ var ts; if (isDeclaration(parent) || parent.kind === 152 /* FunctionExpression */) { return parent.name === name; } - if (parent.kind === 181 /* CatchBlock */) { + if (parent.kind === 182 /* CatchBlock */) { return parent.variable === name; } return false; } ts.isDeclarationOrFunctionExpressionOrCatchVariableName = isDeclarationOrFunctionExpressionOrCatchVariableName; + function tryResolveScriptReference(program, sourceFile, reference) { + if (!program.getCompilerOptions().noResolve) { + var referenceFileName = ts.isRootedDiskPath(reference.filename) ? reference.filename : ts.combinePaths(ts.getDirectoryPath(sourceFile.filename), reference.filename); + referenceFileName = ts.getNormalizedAbsolutePath(referenceFileName, program.getCompilerHost().getCurrentDirectory()); + return program.getSourceFile(referenceFileName); + } + } + ts.tryResolveScriptReference = tryResolveScriptReference; function getAncestor(node, kind) { switch (kind) { - case 187 /* ClassDeclaration */: + case 188 /* ClassDeclaration */: while (node) { switch (node.kind) { - case 187 /* ClassDeclaration */: + case 188 /* ClassDeclaration */: return node; - case 190 /* EnumDeclaration */: - case 188 /* InterfaceDeclaration */: - case 189 /* TypeAliasDeclaration */: - case 191 /* ModuleDeclaration */: - case 193 /* ImportDeclaration */: + case 191 /* EnumDeclaration */: + case 189 /* InterfaceDeclaration */: + case 190 /* TypeAliasDeclaration */: + case 192 /* ModuleDeclaration */: + case 194 /* ImportDeclaration */: return undefined; default: node = node.parent; @@ -2640,11 +2662,14 @@ var ts; } ts.isTrivia = isTrivia; function isUnterminatedTemplateEnd(node) { - ts.Debug.assert(node.kind === 9 /* NoSubstitutionTemplateLiteral */ || node.kind === 12 /* TemplateTail */); + ts.Debug.assert(isTemplateLiteralKind(node.kind)); var sourceText = getSourceFileOfNode(node).text; if (node.end !== sourceText.length) { return false; } + if (node.kind !== 12 /* TemplateTail */ && node.kind !== 9 /* NoSubstitutionTemplateLiteral */) { + return false; + } return sourceText.charCodeAt(node.end - 1) !== 96 /* backtick */ || node.text.length === 0; } ts.isUnterminatedTemplateEnd = isUnterminatedTemplateEnd; @@ -2683,8 +2708,76 @@ var ts; var identifierCount = 0; var nodeCount = 0; var lineStarts; - var isInStrictMode = false; var lookAheadMode = 0 /* NotLookingAhead */; + var contextFlags = 0; + function setContextFlag(val, flag) { + if (val) { + contextFlags |= flag; + } + else { + contextFlags &= ~flag; + } + } + function setStrictModeContext(val) { + setContextFlag(val, 1 /* StrictMode */); + } + function setDisallowInContext(val) { + setContextFlag(val, 2 /* DisallowIn */); + } + function setYieldContext(val) { + setContextFlag(val, 4 /* Yield */); + } + function setGeneratorParameterContext(val) { + setContextFlag(val, 8 /* GeneratorParameter */); + } + function allowInAnd(func) { + if (contextFlags & 2 /* DisallowIn */) { + setDisallowInContext(false); + var result = func(); + setDisallowInContext(true); + return result; + } + return func(); + } + function disallowInAnd(func) { + if (contextFlags & 2 /* DisallowIn */) { + return func(); + } + setDisallowInContext(true); + var result = func(); + setDisallowInContext(false); + return result; + } + function doInYieldContext(func) { + if (contextFlags & 4 /* Yield */) { + return func(); + } + setYieldContext(true); + var result = func(); + setYieldContext(false); + return result; + } + function doOutsideOfYieldContext(func) { + if (contextFlags & 4 /* Yield */) { + setYieldContext(false); + var result = func(); + setYieldContext(true); + return result; + } + return func(); + } + function inYieldContext() { + return (contextFlags & 4 /* Yield */) !== 0; + } + function inStrictModeContext() { + return (contextFlags & 1 /* StrictMode */) !== 0; + } + function inGeneratorParameterContext() { + return (contextFlags & 8 /* GeneratorParameter */) !== 0; + } + function inDisallowInContext() { + return (contextFlags & 2 /* DisallowIn */) !== 0; + } function getLineStarts() { return lineStarts || (lineStarts = ts.computeLineStarts(sourceText)); } @@ -2768,7 +2861,13 @@ var ts; return scanner.tryScan(function () { return lookAheadHelper(callback, false); }); } function isIdentifier() { - return token === 63 /* Identifier */ || (isInStrictMode ? token > 108 /* LastFutureReservedWord */ : token > 99 /* LastReservedWord */); + if (token === 63 /* Identifier */) { + return true; + } + if (token === 108 /* YieldKeyword */ && inYieldContext()) { + return false; + } + return inStrictModeContext() ? token > 108 /* LastFutureReservedWord */ : token > 99 /* LastReservedWord */; } function parseExpected(t) { if (token === t) { @@ -2785,6 +2884,14 @@ var ts; } return false; } + function parseOptionalToken(t) { + if (token === t) { + var node = createNode(t); + nextToken(); + return finishNode(node); + } + return undefined; + } function canParseSemicolon() { if (token === 21 /* SemicolonToken */) { return true; @@ -2813,8 +2920,8 @@ var ts; } function finishNode(node) { node.end = scanner.getStartPos(); - if (isInStrictMode) { - node.flags |= 8192 /* ParsedInStrictMode */; + if (contextFlags) { + node.parserContextFlags = contextFlags; } return node; } @@ -2862,7 +2969,7 @@ var ts; function parseAnyContextualModifier() { return isModifier(token) && tryParse(function () { nextToken(); - return token === 17 /* OpenBracketToken */ || isPropertyName(); + return token === 17 /* OpenBracketToken */ || token === 34 /* AsteriskToken */ || isPropertyName(); }); } function isListElement(kind, inErrorRecovery) { @@ -2880,8 +2987,9 @@ var ts; case 6 /* ClassMembers */: return lookAhead(isClassMemberStart); case 7 /* EnumMembers */: - case 11 /* ObjectLiteralMembers */: return isPropertyName(); + case 11 /* ObjectLiteralMembers */: + return token === 34 /* AsteriskToken */ || isPropertyName(); case 8 /* BaseTypeReferences */: return isIdentifier() && ((token !== 77 /* ExtendsKeyword */ && token !== 100 /* ImplementsKeyword */) || !lookAhead(function () { return (nextToken(), isIdentifier()); })); case 9 /* VariableDeclarations */: @@ -2958,15 +3066,15 @@ var ts; parsingContext |= 1 << kind; var result = []; result.pos = getNodePos(); - var saveIsInStrictMode = isInStrictMode; + var savedStrictModeContext = inStrictModeContext(); while (!isListTerminator(kind)) { if (isListElement(kind, false)) { var element = parseElement(); result.push(element); - if (!isInStrictMode && checkForStrictMode) { + if (!inStrictModeContext() && checkForStrictMode) { if (isPrologueDirective(element)) { if (isUseStrictPrologueDirective(element)) { - isInStrictMode = true; + setStrictModeContext(true); checkForStrictMode = false; } } @@ -2983,7 +3091,7 @@ var ts; nextToken(); } } - isInStrictMode = saveIsInStrictMode; + setStrictModeContext(savedStrictModeContext); result.end = getNodeEnd(); parsingContext = saveParsingContext; return result; @@ -3032,16 +3140,10 @@ var ts; result.end = pos; return result; } - function createNodeArray(node) { - var result = [node]; - result.pos = node.pos; - result.end = node.end; - return result; - } - function parseBracketedList(kind, parseElement, startToken, endToken) { - if (parseExpected(startToken)) { + function parseBracketedList(kind, parseElement, open, close) { + if (parseExpected(open)) { var result = parseDelimitedList(kind, parseElement); - parseExpected(endToken); + parseExpected(close); return result; } return createMissingList(); @@ -3076,7 +3178,7 @@ var ts; } function parseTemplateSpan() { var span = createNode(159 /* TemplateSpan */); - span.expression = parseExpression(false); + span.expression = allowInAnd(parseExpression); var literal; if (token === 14 /* CloseBraceToken */) { reScanTemplateToken(); @@ -3098,7 +3200,7 @@ var ts; nextToken(); finishNode(node); if (node.kind === 6 /* NumericLiteral */ && sourceText.charCodeAt(tokenPos) === 48 /* _0 */ && ts.isOctalDigit(sourceText.charCodeAt(tokenPos + 1))) { - node.flags |= 16384 /* OctalLiteral */; + node.flags |= 8192 /* OctalLiteral */; } return node; } @@ -3153,15 +3255,14 @@ var ts; node.modifiers = modifiers; } } - function parseParameter(flags) { - if (flags === void 0) { flags = 0; } + function parseParameter() { var node = createNode(123 /* Parameter */); - var modifiers = parseModifiers(3 /* Parameters */); + var modifiers = parseModifiers(); setModifiers(node, modifiers); if (parseOptional(20 /* DotDotDotToken */)) { node.flags |= 8 /* Rest */; } - node.name = parseIdentifier(); + node.name = inGeneratorParameterContext() ? doInYieldContext(parseIdentifier) : parseIdentifier(); if (node.name.kind === 120 /* Missing */ && node.flags === 0 && isModifier(token)) { nextToken(); } @@ -3169,68 +3270,82 @@ var ts; node.flags |= 4 /* QuestionMark */; } node.type = parseParameterType(); - node.initializer = parseInitializer(true); + node.initializer = inGeneratorParameterContext() ? doOutsideOfYieldContext(parseParameterInitializer) : parseParameterInitializer(); return finishNode(node); } - function parseSignature(kind, returnToken, returnTokenRequired) { + function parseParameterInitializer() { + return parseInitializer(true); + } + function parseSignature(kind, returnToken, returnTokenRequired, yieldAndGeneratorParameterContext) { + var signature = {}; + fillSignature(kind, returnToken, returnTokenRequired, yieldAndGeneratorParameterContext, signature); + return signature; + } + function fillSignature(kind, returnToken, returnTokenRequired, yieldAndGeneratorParameterContext, signature) { if (kind === 130 /* ConstructSignature */) { parseExpected(86 /* NewKeyword */); } - var typeParameters = parseTypeParameters(); - var parameters = parseParameterList(15 /* OpenParenToken */, 16 /* CloseParenToken */); - var type; + signature.typeParameters = parseTypeParameters(); + signature.parameters = parseParameterList(yieldAndGeneratorParameterContext); if (returnTokenRequired) { parseExpected(returnToken); - type = parseType(); + signature.type = parseType(); } else if (parseOptional(returnToken)) { - type = parseType(); + signature.type = parseType(); } - return { - typeParameters: typeParameters, - parameters: parameters, - type: type - }; } - function parseParameterList(startDelimiter, endDelimiter) { - return parseBracketedList(13 /* Parameters */, parseParameter, startDelimiter, endDelimiter); + function parseParameterList(yieldAndGeneratorParameterContext) { + if (parseExpected(15 /* OpenParenToken */)) { + var savedYieldContext = inYieldContext(); + var savedGeneratorParameterContext = inGeneratorParameterContext(); + setYieldContext(yieldAndGeneratorParameterContext); + setGeneratorParameterContext(yieldAndGeneratorParameterContext); + var result = parseDelimitedList(13 /* Parameters */, parseParameter); + parseExpected(16 /* CloseParenToken */); + setYieldContext(savedYieldContext); + setGeneratorParameterContext(savedGeneratorParameterContext); + return result; + } + return createMissingList(); } function parseSignatureMember(kind, returnToken) { var node = createNode(kind); - var sig = parseSignature(kind, returnToken, false); - node.typeParameters = sig.typeParameters; - node.parameters = sig.parameters; - node.type = sig.type; + fillSignature(kind, returnToken, false, false, node); parseSemicolon(); return finishNode(node); } - function parseIndexSignatureMember(modifiers, pos) { - var node = createNode(131 /* IndexSignature */, pos); + function parseIndexSignatureMember(fullStart, modifiers) { + var node = createNode(131 /* IndexSignature */, fullStart); setModifiers(node, modifiers); - node.parameters = parseParameterList(17 /* OpenBracketToken */, 18 /* CloseBracketToken */); + node.parameters = parseBracketedList(13 /* Parameters */, parseParameter, 17 /* OpenBracketToken */, 18 /* CloseBracketToken */); node.type = parseTypeAnnotation(); parseSemicolon(); return finishNode(node); } function parsePropertyOrMethod() { - var node = createNode(0 /* Unknown */); - node.name = parsePropertyName(); + var fullStart = scanner.getStartPos(); + var name = parsePropertyName(); + var flags = 0; if (parseOptional(49 /* QuestionToken */)) { - node.flags |= 4 /* QuestionMark */; + flags = 4 /* QuestionMark */; } if (token === 15 /* OpenParenToken */ || token === 23 /* LessThanToken */) { - node.kind = 125 /* Method */; - var sig = parseSignature(129 /* CallSignature */, 50 /* ColonToken */, false); - node.typeParameters = sig.typeParameters; - node.parameters = sig.parameters; - node.type = sig.type; + var method = createNode(125 /* Method */, fullStart); + method.name = name; + method.flags = flags; + fillSignature(129 /* CallSignature */, 50 /* ColonToken */, false, false, method); + parseSemicolon(); + return finishNode(method); } else { - node.kind = 124 /* Property */; - node.type = parseTypeAnnotation(); + var property = createNode(124 /* Property */, fullStart); + property.name = name; + property.flags = flags; + property.type = parseTypeAnnotation(); + parseSemicolon(); + return finishNode(property); } - parseSemicolon(); - return finishNode(node); } function isStartOfTypeMember() { switch (token) { @@ -3248,7 +3363,7 @@ var ts; case 23 /* LessThanToken */: return parseSignatureMember(129 /* CallSignature */, 50 /* ColonToken */); case 17 /* OpenBracketToken */: - return parseIndexSignatureMember(undefined); + return parseIndexSignatureMember(scanner.getStartPos(), undefined); case 86 /* NewKeyword */: if (lookAhead(function () { return nextToken() === 15 /* OpenParenToken */ || token === 23 /* LessThanToken */; })) { return parseSignatureMember(130 /* ConstructSignature */, 50 /* ColonToken */); @@ -3264,14 +3379,19 @@ var ts; } function parseTypeLiteral() { var node = createNode(136 /* TypeLiteral */); + node.members = parseObjectType(); + return finishNode(node); + } + function parseObjectType() { + var members; if (parseExpected(13 /* OpenBraceToken */)) { - node.members = parseList(5 /* TypeMembers */, false, parseTypeMember); + members = parseList(5 /* TypeMembers */, false, parseTypeMember); parseExpected(14 /* CloseBraceToken */); } else { - node.members = createMissingList(); + members = createMissingList(); } - return finishNode(node); + return members; } function parseTupleType() { var node = createNode(138 /* TupleType */); @@ -3286,13 +3406,9 @@ var ts; return finishNode(node); } function parseFunctionType(typeKind) { - var member = createNode(typeKind); - var sig = parseSignature(typeKind === 133 /* FunctionType */ ? 129 /* CallSignature */ : 130 /* ConstructSignature */, 31 /* EqualsGreaterThanToken */, true); - member.typeParameters = sig.typeParameters; - member.parameters = sig.parameters; - member.type = sig.type; - finishNode(member); - return member; + var node = createNode(typeKind); + fillSignature(typeKind === 133 /* FunctionType */ ? 129 /* CallSignature */ : 130 /* ConstructSignature */, 31 /* EqualsGreaterThanToken */, true, false, node); + return finishNode(node); } function parseKeywordAndNoDot() { var node = parseTokenNode(); @@ -3392,6 +3508,16 @@ var ts; }); } 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 parseFunctionType(133 /* FunctionType */); } @@ -3432,6 +3558,7 @@ var ts; case 38 /* MinusMinusToken */: case 23 /* LessThanToken */: case 63 /* Identifier */: + case 108 /* YieldKeyword */: return true; default: return isIdentifier(); @@ -3440,38 +3567,68 @@ var ts; function isStartOfExpressionStatement() { return token !== 13 /* OpenBraceToken */ && token !== 81 /* FunctionKeyword */ && isStartOfExpression(); } - function parseExpression(noIn) { - var expr = parseAssignmentExpression(noIn); + function parseExpression() { + var expr = parseAssignmentExpression(); while (parseOptional(22 /* CommaToken */)) { - expr = makeBinaryExpression(expr, 22 /* CommaToken */, parseAssignmentExpression(noIn)); + expr = makeBinaryExpression(expr, 22 /* CommaToken */, parseAssignmentExpression()); } return expr; } - function parseInitializer(inParameter, noIn) { + function parseInitializer(inParameter) { if (token !== 51 /* EqualsToken */) { if (scanner.hasPrecedingLineBreak() || (inParameter && token === 13 /* OpenBraceToken */) || !isStartOfExpression()) { return undefined; } } parseExpected(51 /* EqualsToken */); - return parseAssignmentExpression(noIn); + return parseAssignmentExpression(); } - function parseAssignmentExpression(noIn) { + function parseAssignmentExpression() { + if (isYieldExpression()) { + return parseYieldExpression(); + } var arrowExpression = tryParseParenthesizedArrowFunctionExpression(); if (arrowExpression) { return arrowExpression; } - var expr = parseConditionalExpression(noIn); + var expr = parseConditionalExpression(); if (expr.kind === 63 /* Identifier */ && token === 31 /* EqualsGreaterThanToken */) { return parseSimpleArrowFunctionExpression(expr); } if (isLeftHandSideExpression(expr) && isAssignmentOperator(token)) { var operator = token; nextToken(); - return makeBinaryExpression(expr, operator, parseAssignmentExpression(noIn)); + return makeBinaryExpression(expr, operator, parseAssignmentExpression()); } return expr; } + function isYieldExpression() { + if (token === 108 /* YieldKeyword */) { + if (inYieldContext()) { + return true; + } + if (inStrictModeContext()) { + return true; + } + return lookAhead(function () { + nextToken(); + return !scanner.hasPrecedingLineBreak() && isIdentifier(); + }); + } + return false; + } + function parseYieldExpression() { + var node = createNode(160 /* YieldExpression */); + nextToken(); + if (!scanner.hasPrecedingLineBreak() && (token === 34 /* AsteriskToken */ || isStartOfExpression())) { + node.asteriskToken = parseOptionalToken(34 /* AsteriskToken */); + node.expression = parseAssignmentExpression(); + return finishNode(node); + } + else { + return finishNode(node); + } + } function parseSimpleArrowFunctionExpression(identifier) { ts.Debug.assert(token === 31 /* EqualsGreaterThanToken */, "parseSimpleArrowFunctionExpression should only have been called if we had a =>"); parseExpected(31 /* EqualsGreaterThanToken */); @@ -3483,7 +3640,7 @@ var ts; parameters.pos = parameter.pos; parameters.end = parameter.end; var signature = { parameters: parameters }; - return parseArrowExpressionTail(identifier.pos, signature, false); + return parseArrowExpressionTail(identifier.pos, signature); } function tryParseParenthesizedArrowFunctionExpression() { var triState = isParenthesizedArrowFunctionExpression(); @@ -3492,18 +3649,18 @@ var ts; } var pos = getNodePos(); if (triState === 1 /* True */) { - var sig = parseSignature(129 /* CallSignature */, 50 /* ColonToken */, false); + var sig = parseSignature(129 /* CallSignature */, 50 /* ColonToken */, false, false); if (parseExpected(31 /* EqualsGreaterThanToken */) || token === 13 /* OpenBraceToken */) { - return parseArrowExpressionTail(pos, sig, false); + return parseArrowExpressionTail(pos, sig); } else { - return makeFunctionExpression(153 /* ArrowFunction */, pos, undefined, sig, createMissingNode()); + return makeFunctionExpression(153 /* ArrowFunction */, pos, undefined, undefined, sig, createMissingNode()); } } var sig = tryParseSignatureIfArrowOrBraceFollows(); if (sig) { parseExpected(31 /* EqualsGreaterThanToken */); - return parseArrowExpressionTail(pos, sig, false); + return parseArrowExpressionTail(pos, sig); } else { return undefined; @@ -3553,49 +3710,46 @@ var ts; } function tryParseSignatureIfArrowOrBraceFollows() { return tryParse(function () { - var sig = parseSignature(129 /* CallSignature */, 50 /* ColonToken */, false); + var sig = parseSignature(129 /* CallSignature */, 50 /* ColonToken */, false, false); if (token === 31 /* EqualsGreaterThanToken */ || token === 13 /* OpenBraceToken */) { return sig; } return undefined; }); } - function parseArrowExpressionTail(pos, sig, noIn) { + function parseArrowExpressionTail(pos, sig) { var body; if (token === 13 /* OpenBraceToken */) { - body = parseFunctionBlock(false); + body = parseFunctionBlock(false, false); } else if (isStatement(true) && !isStartOfExpressionStatement() && token !== 81 /* FunctionKeyword */) { - body = parseFunctionBlock(true); + body = parseFunctionBlock(false, true); } else { - body = parseAssignmentExpression(noIn); + body = parseAssignmentExpression(); } - return makeFunctionExpression(153 /* ArrowFunction */, pos, undefined, sig, body); + return makeFunctionExpression(153 /* ArrowFunction */, pos, undefined, undefined, sig, body); } - function parseConditionalExpression(noIn) { - var expr = parseBinaryExpression(noIn); + function parseConditionalExpression() { + var expr = parseBinaryOperators(parseUnaryExpression(), 0); while (parseOptional(49 /* QuestionToken */)) { var node = createNode(157 /* ConditionalExpression */, expr.pos); node.condition = expr; - node.whenTrue = parseAssignmentExpression(false); + node.whenTrue = allowInAnd(parseAssignmentExpression); parseExpected(50 /* ColonToken */); - node.whenFalse = parseAssignmentExpression(noIn); + node.whenFalse = parseAssignmentExpression(); expr = finishNode(node); } return expr; } - function parseBinaryExpression(noIn) { - return parseBinaryOperators(parseUnaryExpression(), 0, noIn); - } - function parseBinaryOperators(expr, minPrecedence, noIn) { + function parseBinaryOperators(expr, minPrecedence) { while (true) { reScanGreaterToken(); var precedence = getOperatorPrecedence(); - if (precedence && precedence > minPrecedence && (!noIn || token !== 84 /* InKeyword */)) { + if (precedence && precedence > minPrecedence && (!inDisallowInContext() || token !== 84 /* InKeyword */)) { var operator = token; nextToken(); - expr = makeBinaryExpression(expr, operator, parseBinaryOperators(parseUnaryExpression(), precedence, noIn)); + expr = makeBinaryExpression(expr, operator, parseBinaryOperators(parseUnaryExpression(), precedence)); continue; } return expr; @@ -3720,7 +3874,7 @@ var ts; indexedAccess.index = createMissingNode(); } else { - indexedAccess.index = parseExpression(); + indexedAccess.index = allowInAnd(parseExpression); if (indexedAccess.index.kind === 7 /* StringLiteral */ || indexedAccess.index.kind === 6 /* NumericLiteral */) { var literal = indexedAccess.index; literal.text = internIdentifier(literal.text); @@ -3810,18 +3964,18 @@ var ts; function parseParenExpression() { var node = createNode(151 /* ParenExpression */); parseExpected(15 /* OpenParenToken */); - node.expression = parseExpression(); + node.expression = allowInAnd(parseExpression); parseExpected(16 /* CloseParenToken */); return finishNode(node); } function parseAssignmentExpressionOrOmittedExpression() { - return token === 22 /* CommaToken */ ? createNode(160 /* OmittedExpression */) : parseAssignmentExpression(); + return token === 22 /* CommaToken */ ? createNode(161 /* OmittedExpression */) : parseAssignmentExpression(); } function parseArrayLiteralElement() { return parseAssignmentExpressionOrOmittedExpression(); } function parseArgumentExpression() { - return parseAssignmentExpressionOrOmittedExpression(); + return allowInAnd(parseAssignmentExpressionOrOmittedExpression); } function parseArrayLiteral() { var node = createNode(141 /* ArrayLiteral */); @@ -3834,16 +3988,17 @@ var ts; } function parsePropertyAssignment() { var nodePos = scanner.getStartPos(); + var asteriskToken = parseOptionalToken(34 /* AsteriskToken */); var tokenIsIdentifier = isIdentifier(); var nameToken = token; var propertyName = parsePropertyName(); var node; - if (token === 15 /* OpenParenToken */ || token === 23 /* LessThanToken */) { + if (asteriskToken || token === 15 /* OpenParenToken */ || token === 23 /* LessThanToken */) { node = createNode(143 /* PropertyAssignment */, nodePos); node.name = propertyName; - var sig = parseSignature(129 /* CallSignature */, 50 /* ColonToken */, false); - var body = parseFunctionBlock(false); - node.initializer = makeFunctionExpression(152 /* FunctionExpression */, node.pos, undefined, sig, body); + var sig = parseSignature(129 /* CallSignature */, 50 /* ColonToken */, false, !!asteriskToken); + var body = parseFunctionBlock(!!asteriskToken, false); + node.initializer = makeFunctionExpression(152 /* FunctionExpression */, node.pos, asteriskToken, undefined, sig, body); return finishNode(node); } var flags = 0; @@ -3859,7 +4014,7 @@ var ts; node = createNode(143 /* PropertyAssignment */, nodePos); node.name = propertyName; parseExpected(50 /* ColonToken */); - node.initializer = parseAssignmentExpression(false); + node.initializer = allowInAnd(parseAssignmentExpression); } node.flags = flags; return finishNode(node); @@ -3886,13 +4041,18 @@ var ts; function parseFunctionExpression() { var pos = getNodePos(); parseExpected(81 /* FunctionKeyword */); - var name = isIdentifier() ? parseIdentifier() : undefined; - var sig = parseSignature(129 /* CallSignature */, 50 /* ColonToken */, false); - var body = parseFunctionBlock(false); - return makeFunctionExpression(152 /* FunctionExpression */, pos, name, sig, body); + var asteriskToken = parseOptionalToken(34 /* AsteriskToken */); + var name = asteriskToken ? doInYieldContext(parseOptionalIdentifier) : parseOptionalIdentifier(); + var sig = parseSignature(129 /* CallSignature */, 50 /* ColonToken */, false, !!asteriskToken); + var body = parseFunctionBlock(!!asteriskToken, false); + return makeFunctionExpression(152 /* FunctionExpression */, pos, asteriskToken, name, sig, body); } - function makeFunctionExpression(kind, pos, name, sig, body) { + function parseOptionalIdentifier() { + return isIdentifier() ? parseIdentifier() : undefined; + } + function makeFunctionExpression(kind, pos, asteriskToken, name, sig, body) { var node = createNode(kind, pos); + node.asteriskToken = asteriskToken; node.name = name; node.typeParameters = sig.typeParameters; node.parameters = sig.parameters; @@ -3911,7 +4071,7 @@ var ts; return finishNode(node); } function parseBlock(ignoreMissingOpenBrace, checkForStrictMode) { - var node = createNode(161 /* Block */); + var node = createNode(162 /* Block */); if (parseExpected(13 /* OpenBraceToken */) || ignoreMissingOpenBrace) { node.statements = parseList(2 /* BlockStatements */, checkForStrictMode, parseStatement); parseExpected(14 /* CloseBraceToken */); @@ -3921,42 +4081,45 @@ var ts; } return finishNode(node); } - function parseFunctionBlock(ignoreMissingOpenBrace) { + function parseFunctionBlock(allowYield, ignoreMissingOpenBrace) { + var savedYieldContext = inYieldContext(); + setYieldContext(allowYield); var block = parseBlock(ignoreMissingOpenBrace, true); - block.kind = 186 /* FunctionBlock */; + block.kind = 187 /* FunctionBlock */; + setYieldContext(savedYieldContext); return block; } function parseEmptyStatement() { - var node = createNode(163 /* EmptyStatement */); + var node = createNode(164 /* EmptyStatement */); parseExpected(21 /* SemicolonToken */); return finishNode(node); } function parseIfStatement() { - var node = createNode(165 /* IfStatement */); + var node = createNode(166 /* IfStatement */); parseExpected(82 /* IfKeyword */); parseExpected(15 /* OpenParenToken */); - node.expression = parseExpression(); + node.expression = allowInAnd(parseExpression); parseExpected(16 /* CloseParenToken */); node.thenStatement = parseStatement(); node.elseStatement = parseOptional(74 /* ElseKeyword */) ? parseStatement() : undefined; return finishNode(node); } function parseDoStatement() { - var node = createNode(166 /* DoStatement */); + var node = createNode(167 /* DoStatement */); parseExpected(73 /* DoKeyword */); node.statement = parseStatement(); parseExpected(98 /* WhileKeyword */); parseExpected(15 /* OpenParenToken */); - node.expression = parseExpression(); + node.expression = allowInAnd(parseExpression); parseExpected(16 /* CloseParenToken */); parseOptional(21 /* SemicolonToken */); return finishNode(node); } function parseWhileStatement() { - var node = createNode(167 /* WhileStatement */); + var node = createNode(168 /* WhileStatement */); parseExpected(98 /* WhileKeyword */); parseExpected(15 /* OpenParenToken */); - node.expression = parseExpression(); + node.expression = allowInAnd(parseExpression); parseExpected(16 /* CloseParenToken */); node.statement = parseStatement(); return finishNode(node); @@ -3967,33 +4130,33 @@ var ts; parseExpected(15 /* OpenParenToken */); if (token !== 21 /* SemicolonToken */) { if (parseOptional(96 /* VarKeyword */)) { - var declarations = parseVariableDeclarationList(0, true); + var declarations = disallowInAnd(parseVariableDeclarationList); } else if (parseOptional(102 /* LetKeyword */)) { - var declarations = parseVariableDeclarationList(2048 /* Let */, true); + var declarations = setFlag(disallowInAnd(parseVariableDeclarationList), 2048 /* Let */); } else if (parseOptional(68 /* ConstKeyword */)) { - var declarations = parseVariableDeclarationList(4096 /* Const */, true); + var declarations = setFlag(disallowInAnd(parseVariableDeclarationList), 4096 /* Const */); } else { - var varOrInit = parseExpression(true); + var varOrInit = disallowInAnd(parseExpression); } } var forOrForInStatement; if (parseOptional(84 /* InKeyword */)) { - var forInStatement = createNode(169 /* ForInStatement */, pos); + var forInStatement = createNode(170 /* ForInStatement */, pos); if (declarations) { forInStatement.declarations = declarations; } else { forInStatement.variable = varOrInit; } - forInStatement.expression = parseExpression(); + forInStatement.expression = allowInAnd(parseExpression); parseExpected(16 /* CloseParenToken */); forOrForInStatement = forInStatement; } else { - var forStatement = createNode(168 /* ForStatement */, pos); + var forStatement = createNode(169 /* ForStatement */, pos); if (declarations) { forStatement.declarations = declarations; } @@ -4002,11 +4165,11 @@ var ts; } parseExpected(21 /* SemicolonToken */); if (token !== 21 /* SemicolonToken */ && token !== 16 /* CloseParenToken */) { - forStatement.condition = parseExpression(); + forStatement.condition = allowInAnd(parseExpression); } parseExpected(21 /* SemicolonToken */); if (token !== 16 /* CloseParenToken */) { - forStatement.iterator = parseExpression(); + forStatement.iterator = allowInAnd(parseExpression); } parseExpected(16 /* CloseParenToken */); forOrForInStatement = forStatement; @@ -4016,7 +4179,7 @@ var ts; } function parseBreakOrContinueStatement(kind) { var node = createNode(kind); - parseExpected(kind === 171 /* BreakStatement */ ? 64 /* BreakKeyword */ : 69 /* ContinueKeyword */); + parseExpected(kind === 172 /* BreakStatement */ ? 64 /* BreakKeyword */ : 69 /* ContinueKeyword */); if (!canParseSemicolon()) { node.label = parseIdentifier(); } @@ -4024,35 +4187,33 @@ var ts; return finishNode(node); } function parseReturnStatement() { - var node = createNode(172 /* ReturnStatement */); - var returnTokenStart = scanner.getTokenPos(); - var returnTokenLength = scanner.getTextPos() - returnTokenStart; + var node = createNode(173 /* ReturnStatement */); parseExpected(88 /* ReturnKeyword */); if (!canParseSemicolon()) { - node.expression = parseExpression(); + node.expression = allowInAnd(parseExpression); } parseSemicolon(); return finishNode(node); } function parseWithStatement() { - var node = createNode(173 /* WithStatement */); + var node = createNode(174 /* WithStatement */); parseExpected(99 /* WithKeyword */); parseExpected(15 /* OpenParenToken */); - node.expression = parseExpression(); + node.expression = allowInAnd(parseExpression); parseExpected(16 /* CloseParenToken */); node.statement = parseStatement(); return finishNode(node); } function parseCaseClause() { - var node = createNode(175 /* CaseClause */); + var node = createNode(176 /* CaseClause */); parseExpected(65 /* CaseKeyword */); - node.expression = parseExpression(); + node.expression = allowInAnd(parseExpression); parseExpected(50 /* ColonToken */); node.statements = parseList(4 /* SwitchClauseStatements */, false, parseStatement); return finishNode(node); } function parseDefaultClause() { - var node = createNode(176 /* DefaultClause */); + var node = createNode(177 /* DefaultClause */); parseExpected(71 /* DefaultKeyword */); parseExpected(50 /* ColonToken */); node.statements = parseList(4 /* SwitchClauseStatements */, false, parseStatement); @@ -4062,10 +4223,10 @@ var ts; return token === 65 /* CaseKeyword */ ? parseCaseClause() : parseDefaultClause(); } function parseSwitchStatement() { - var node = createNode(174 /* SwitchStatement */); + var node = createNode(175 /* SwitchStatement */); parseExpected(90 /* SwitchKeyword */); parseExpected(15 /* OpenParenToken */); - node.expression = parseExpression(); + node.expression = allowInAnd(parseExpression); parseExpected(16 /* CloseParenToken */); parseExpected(13 /* OpenBraceToken */); node.clauses = parseList(3 /* SwitchClauses */, false, parseCaseOrDefaultClause); @@ -4073,23 +4234,23 @@ var ts; return finishNode(node); } function parseThrowStatement() { - var node = createNode(178 /* ThrowStatement */); + var node = createNode(179 /* ThrowStatement */); parseExpected(92 /* ThrowKeyword */); if (scanner.hasPrecedingLineBreak()) { error(ts.Diagnostics.Line_break_not_permitted_here); } - node.expression = parseExpression(); + node.expression = allowInAnd(parseExpression); parseSemicolon(); return finishNode(node); } function parseTryStatement() { - var node = createNode(179 /* TryStatement */); - node.tryBlock = parseTokenAndBlock(94 /* TryKeyword */, 180 /* TryBlock */); + var node = createNode(180 /* TryStatement */); + node.tryBlock = parseTokenAndBlock(94 /* TryKeyword */, 181 /* TryBlock */); if (token === 66 /* CatchKeyword */) { node.catchBlock = parseCatchBlock(); } if (token === 79 /* FinallyKeyword */) { - node.finallyBlock = parseTokenAndBlock(79 /* FinallyKeyword */, 182 /* FinallyBlock */); + node.finallyBlock = parseTokenAndBlock(79 /* FinallyKeyword */, 183 /* FinallyBlock */); } if (!(node.catchBlock || node.finallyBlock)) { error(ts.Diagnostics.catch_or_finally_expected); @@ -4112,34 +4273,31 @@ var ts; var typeAnnotation = parseTypeAnnotation(); parseExpected(16 /* CloseParenToken */); var result = parseBlock(false, false); - result.kind = 181 /* CatchBlock */; + result.kind = 182 /* CatchBlock */; result.pos = pos; result.variable = variable; result.type = typeAnnotation; return result; } function parseDebuggerStatement() { - var node = createNode(183 /* DebuggerStatement */); + var node = createNode(184 /* DebuggerStatement */); parseExpected(70 /* DebuggerKeyword */); parseSemicolon(); return finishNode(node); } - function isIterationStatementStart() { - return token === 98 /* WhileKeyword */ || token === 73 /* DoKeyword */ || token === 80 /* ForKeyword */; - } function isLabel() { return isIdentifier() && lookAhead(function () { return nextToken() === 50 /* ColonToken */; }); } function parseLabeledStatement() { - var node = createNode(177 /* LabeledStatement */); + var node = createNode(178 /* LabeledStatement */); node.label = parseIdentifier(); parseExpected(50 /* ColonToken */); - node.statement = isLabel() ? parseLabeledStatement() : parseStatement(); + node.statement = parseStatement(); return finishNode(node); } function parseExpressionStatement() { - var node = createNode(164 /* ExpressionStatement */); - node.expression = parseExpression(); + var node = createNode(165 /* ExpressionStatement */); + node.expression = allowInAnd(parseExpression); parseSemicolon(); return finishNode(node); } @@ -4195,9 +4353,9 @@ var ts; case 96 /* VarKeyword */: case 102 /* LetKeyword */: case 68 /* ConstKeyword */: - return parseVariableStatement(); + return parseVariableStatement(scanner.getStartPos(), undefined); case 81 /* FunctionKeyword */: - return parseFunctionDeclaration(); + return parseFunctionDeclaration(scanner.getStartPos(), undefined); case 21 /* SemicolonToken */: return parseEmptyStatement(); case 82 /* IfKeyword */: @@ -4209,9 +4367,9 @@ var ts; case 80 /* ForKeyword */: return parseForOrForInStatement(); case 69 /* ContinueKeyword */: - return parseBreakOrContinueStatement(170 /* ContinueStatement */); + return parseBreakOrContinueStatement(171 /* ContinueStatement */); case 64 /* BreakKeyword */: - return parseBreakOrContinueStatement(171 /* BreakStatement */); + return parseBreakOrContinueStatement(172 /* BreakStatement */); case 88 /* ReturnKeyword */: return parseReturnStatement(); case 99 /* WithKeyword */: @@ -4230,9 +4388,9 @@ var ts; return isLabel() ? parseLabeledStatement() : parseExpressionStatement(); } } - function parseFunctionBlockOrSemicolon() { + function parseFunctionBlockOrSemicolon(isGenerator) { if (token === 13 /* OpenBraceToken */) { - return parseFunctionBlock(false); + return parseFunctionBlock(isGenerator, false); } if (canParseSemicolon()) { parseSemicolon(); @@ -4240,24 +4398,25 @@ var ts; } error(ts.Diagnostics.Block_or_expected); } - function parseVariableDeclaration(flags, noIn) { - var node = createNode(184 /* VariableDeclaration */); - node.flags = flags; + function parseVariableDeclaration() { + var node = createNode(185 /* VariableDeclaration */); node.name = parseIdentifier(); node.type = parseTypeAnnotation(); - var initializerStart = scanner.getTokenPos(); - var initializerFirstTokenLength = scanner.getTextPos() - initializerStart; - node.initializer = parseInitializer(false, noIn); + node.initializer = parseInitializer(false); return finishNode(node); } - function parseVariableDeclarationList(flags, noIn) { - return parseDelimitedList(9 /* VariableDeclarations */, function () { return parseVariableDeclaration(flags, noIn); }); - } - function parseVariableStatement(pos, flags) { - var node = createNode(162 /* VariableStatement */, pos); - if (flags) { - node.flags = flags; + function setFlag(array, flag) { + for (var i = 0, n = array.length; i < n; i++) { + array[i].flags |= flag; } + return array; + } + function parseVariableDeclarationList() { + return parseDelimitedList(9 /* VariableDeclarations */, parseVariableDeclaration); + } + function parseVariableStatement(fullStart, modifiers) { + var node = createNode(163 /* VariableStatement */, fullStart); + setModifiers(node, modifiers); if (token === 102 /* LetKeyword */) { node.flags |= 2048 /* Let */; } @@ -4268,79 +4427,67 @@ var ts; ts.Debug.assert(token === 96 /* VarKeyword */); } nextToken(); - node.declarations = parseVariableDeclarationList(node.flags, false); + node.declarations = allowInAnd(parseVariableDeclarationList); + setFlag(node.declarations, node.flags); parseSemicolon(); return finishNode(node); } - function parseFunctionDeclaration(pos, flags) { - var node = createNode(185 /* FunctionDeclaration */, pos); - if (flags) - node.flags = flags; + function parseFunctionDeclaration(fullStart, modifiers) { + var node = createNode(186 /* FunctionDeclaration */, fullStart); + setModifiers(node, modifiers); parseExpected(81 /* FunctionKeyword */); + node.asteriskToken = parseOptionalToken(34 /* AsteriskToken */); node.name = parseIdentifier(); - var sig = parseSignature(129 /* CallSignature */, 50 /* ColonToken */, false); - node.typeParameters = sig.typeParameters; - node.parameters = sig.parameters; - node.type = sig.type; - node.body = parseFunctionBlockOrSemicolon(); + fillSignature(129 /* CallSignature */, 50 /* ColonToken */, false, !!node.asteriskToken, node); + node.body = parseFunctionBlockOrSemicolon(!!node.asteriskToken); return finishNode(node); } function parseConstructorDeclaration(pos, modifiers) { var node = createNode(126 /* Constructor */, pos); setModifiers(node, modifiers); parseExpected(111 /* ConstructorKeyword */); - var sig = parseSignature(129 /* CallSignature */, 50 /* ColonToken */, false); - node.typeParameters = sig.typeParameters; - node.parameters = sig.parameters; - node.type = sig.type; - node.body = parseFunctionBlockOrSemicolon(); + fillSignature(129 /* CallSignature */, 50 /* ColonToken */, false, false, node); + node.body = parseFunctionBlockOrSemicolon(false); return finishNode(node); } - function parsePropertyMemberDeclaration(pos, modifiers) { - var name = parsePropertyName(); + function parsePropertyMemberDeclaration(fullStart, modifiers) { var flags = modifiers ? modifiers.flags : 0; - var questionStart = scanner.getTokenPos(); + var asteriskToken = parseOptionalToken(34 /* AsteriskToken */); + var name = parsePropertyName(); if (parseOptional(49 /* QuestionToken */)) { flags |= 4 /* QuestionMark */; } - if (token === 15 /* OpenParenToken */ || token === 23 /* LessThanToken */) { - var method = createNode(125 /* Method */, pos); + if (asteriskToken || token === 15 /* OpenParenToken */ || token === 23 /* LessThanToken */) { + var method = createNode(125 /* Method */, fullStart); setModifiers(method, modifiers); if (flags) { method.flags = flags; } + method.asteriskToken = asteriskToken; method.name = name; - var sig = parseSignature(129 /* CallSignature */, 50 /* ColonToken */, false); - method.typeParameters = sig.typeParameters; - method.parameters = sig.parameters; - method.type = sig.type; - method.body = parseFunctionBlockOrSemicolon(); + fillSignature(129 /* CallSignature */, 50 /* ColonToken */, false, !!asteriskToken, method); + method.body = parseFunctionBlockOrSemicolon(!!asteriskToken); return finishNode(method); } else { - var property = createNode(124 /* Property */, pos); + var property = createNode(124 /* Property */, fullStart); setModifiers(property, modifiers); if (flags) { property.flags = flags; } property.name = name; property.type = parseTypeAnnotation(); - var initializerStart = scanner.getTokenPos(); - var initializerFirstTokenLength = scanner.getTextPos() - initializerStart; - property.initializer = parseInitializer(false); + property.initializer = allowInAnd(function () { return parseInitializer(false); }); parseSemicolon(); return finishNode(property); } } - function parseMemberAccessorDeclaration(kind, pos, modifiers) { - var node = createNode(kind, pos); + function parseMemberAccessorDeclaration(kind, fullStart, modifiers) { + var node = createNode(kind, fullStart); setModifiers(node, modifiers); node.name = parsePropertyName(); - var sig = parseSignature(129 /* CallSignature */, 50 /* ColonToken */, false); - node.typeParameters = sig.typeParameters; - node.parameters = sig.parameters; - node.type = sig.type; - node.body = parseFunctionBlockOrSemicolon(); + fillSignature(129 /* CallSignature */, 50 /* ColonToken */, false, false, node); + node.body = parseFunctionBlockOrSemicolon(false); return finishNode(node); } function isClassMemberStart() { @@ -4349,6 +4496,9 @@ var ts; idToken = token; nextToken(); } + if (token === 34 /* AsteriskToken */) { + return true; + } if (isPropertyName()) { idToken = token; nextToken(); @@ -4373,19 +4523,20 @@ var ts; } return false; } - function parseModifiers(context) { + function parseModifiers() { var flags = 0; var modifiers; while (true) { var modifierStart = scanner.getTokenPos(); - var modifierToken = token; - if (!parseAnyContextualModifier()) + var modifierKind = token; + if (!parseAnyContextualModifier()) { break; + } if (!modifiers) { modifiers = []; } - flags |= modifierToFlag(modifierToken); - modifiers.push(finishNode(createNode(modifierToken, modifierStart))); + flags |= modifierToFlag(modifierKind); + modifiers.push(finishNode(createNode(modifierKind, modifierStart))); } if (modifiers) { modifiers.flags = flags; @@ -4393,37 +4544,37 @@ var ts; return modifiers; } function parseClassMemberDeclaration() { - var pos = getNodePos(); - var modifiers = parseModifiers(2 /* ClassMembers */); + var fullStart = getNodePos(); + var modifiers = parseModifiers(); if (parseContextualModifier(113 /* GetKeyword */)) { - return parseMemberAccessorDeclaration(127 /* GetAccessor */, pos, modifiers); + return parseMemberAccessorDeclaration(127 /* GetAccessor */, fullStart, modifiers); } if (parseContextualModifier(117 /* SetKeyword */)) { - return parseMemberAccessorDeclaration(128 /* SetAccessor */, pos, modifiers); + return parseMemberAccessorDeclaration(128 /* SetAccessor */, fullStart, modifiers); } if (token === 111 /* ConstructorKeyword */) { - return parseConstructorDeclaration(pos, modifiers); + return parseConstructorDeclaration(fullStart, modifiers); } - if (token >= 63 /* Identifier */ || token === 7 /* StringLiteral */ || token === 6 /* NumericLiteral */) { - return parsePropertyMemberDeclaration(pos, modifiers); + if (token >= 63 /* Identifier */ || token === 7 /* StringLiteral */ || token === 6 /* NumericLiteral */ || token === 34 /* AsteriskToken */) { + return parsePropertyMemberDeclaration(fullStart, modifiers); } if (token === 17 /* OpenBracketToken */) { - return parseIndexSignatureMember(modifiers, pos); + return parseIndexSignatureMember(fullStart, modifiers); } ts.Debug.fail("Should not have attempted to parse class member declaration."); } - function parseClassDeclaration(pos, flags) { - var node = createNode(187 /* ClassDeclaration */, pos); - node.flags = flags; + function parseClassDeclaration(fullStart, modifiers) { + var node = createNode(188 /* ClassDeclaration */, fullStart); + setModifiers(node, modifiers); parseExpected(67 /* ClassKeyword */); node.name = parseIdentifier(); node.typeParameters = parseTypeParameters(); - node.baseType = parseOptional(77 /* ExtendsKeyword */) ? parseTypeReference() : undefined; + node.baseType = inGeneratorParameterContext() ? doOutsideOfYieldContext(parseClassBaseType) : parseClassBaseType(); if (parseOptional(100 /* ImplementsKeyword */)) { node.implementedTypes = parseDelimitedList(8 /* BaseTypeReferences */, parseTypeReference); } if (parseExpected(13 /* OpenBraceToken */)) { - node.members = parseList(6 /* ClassMembers */, false, parseClassMemberDeclaration); + node.members = inGeneratorParameterContext() ? doOutsideOfYieldContext(parseClassMembers) : parseClassMembers(); parseExpected(14 /* CloseBraceToken */); } else { @@ -4431,21 +4582,27 @@ var ts; } return finishNode(node); } - function parseInterfaceDeclaration(pos, flags) { - var node = createNode(188 /* InterfaceDeclaration */, pos); - node.flags = flags; + function parseClassMembers() { + return parseList(6 /* ClassMembers */, false, parseClassMemberDeclaration); + } + function parseClassBaseType() { + return parseOptional(77 /* ExtendsKeyword */) ? parseTypeReference() : undefined; + } + function parseInterfaceDeclaration(fullStart, modifiers) { + var node = createNode(189 /* InterfaceDeclaration */, fullStart); + setModifiers(node, modifiers); parseExpected(101 /* InterfaceKeyword */); node.name = parseIdentifier(); node.typeParameters = parseTypeParameters(); if (parseOptional(77 /* ExtendsKeyword */)) { node.baseTypes = parseDelimitedList(8 /* BaseTypeReferences */, parseTypeReference); } - node.members = parseTypeLiteral().members; + node.members = parseObjectType(); return finishNode(node); } - function parseTypeAliasDeclaration(pos, flags) { - var node = createNode(189 /* TypeAliasDeclaration */, pos); - node.flags = flags; + function parseTypeAliasDeclaration(fullStart, modifiers) { + var node = createNode(190 /* TypeAliasDeclaration */, fullStart); + setModifiers(node, modifiers); parseExpected(119 /* TypeKeyword */); node.name = parseIdentifier(); parseExpected(51 /* EqualsToken */); @@ -4453,17 +4610,16 @@ var ts; parseSemicolon(); return finishNode(node); } - function parseAndCheckEnumDeclaration(pos, flags) { - var enumIsConst = flags & 4096 /* Const */; - function parseEnumMember() { - var node = createNode(195 /* EnumMember */); - node.name = parsePropertyName(); - node.initializer = parseInitializer(false); - return finishNode(node); - } - var node = createNode(190 /* EnumDeclaration */, pos); + function parseEnumMember() { + var node = createNode(196 /* EnumMember */, scanner.getStartPos()); + node.name = parsePropertyName(); + node.initializer = allowInAnd(function () { return parseInitializer(false); }); + return finishNode(node); + } + function parseAndCheckEnumDeclaration(fullStart, flags) { + var node = createNode(191 /* EnumDeclaration */, fullStart); node.flags = flags; - if (enumIsConst) { + if (flags & 4096 /* Const */) { parseExpected(68 /* ConstKeyword */); } parseExpected(75 /* EnumKeyword */); @@ -4478,7 +4634,7 @@ var ts; return finishNode(node); } function parseModuleBody() { - var node = createNode(192 /* ModuleBlock */); + var node = createNode(193 /* ModuleBlock */, scanner.getStartPos()); if (parseExpected(13 /* OpenBraceToken */)) { node.statements = parseList(1 /* ModuleElements */, false, parseModuleElement); parseExpected(14 /* CloseBraceToken */); @@ -4488,32 +4644,27 @@ var ts; } return finishNode(node); } - function parseInternalModuleTail(pos, flags) { - var node = createNode(191 /* ModuleDeclaration */, pos); + function parseInternalModuleTail(fullStart, flags) { + var node = createNode(192 /* ModuleDeclaration */, fullStart); node.flags = flags; node.name = parseIdentifier(); - if (parseOptional(19 /* DotToken */)) { - node.body = parseInternalModuleTail(getNodePos(), 1 /* Export */); - } - else { - node.body = parseModuleBody(); - } + node.body = parseOptional(19 /* DotToken */) ? parseInternalModuleTail(getNodePos(), 1 /* Export */) : parseModuleBody(); return finishNode(node); } - function parseAmbientExternalModuleDeclaration(pos, flags) { - var node = createNode(191 /* ModuleDeclaration */, pos); + function parseAmbientExternalModuleDeclaration(fullStart, flags) { + var node = createNode(192 /* ModuleDeclaration */, fullStart); node.flags = flags; node.name = parseStringLiteral(); node.body = parseModuleBody(); return finishNode(node); } - function parseModuleDeclaration(pos, flags) { + function parseModuleDeclaration(fullStart, flags) { parseExpected(114 /* ModuleKeyword */); - return token === 7 /* StringLiteral */ ? parseAmbientExternalModuleDeclaration(pos, flags) : parseInternalModuleTail(pos, flags); + return token === 7 /* StringLiteral */ ? parseAmbientExternalModuleDeclaration(fullStart, flags) : parseInternalModuleTail(fullStart, flags); } - function parseImportDeclaration(pos, flags) { - var node = createNode(193 /* ImportDeclaration */, pos); - node.flags = flags; + function parseImportDeclaration(fullStart, modifiers) { + var node = createNode(194 /* ImportDeclaration */, fullStart); + setModifiers(node, modifiers); parseExpected(83 /* ImportKeyword */); node.name = parseIdentifier(); parseExpected(51 /* EqualsToken */); @@ -4528,8 +4679,8 @@ var ts; parseSemicolon(); return finishNode(node); } - function parseExportAssignmentTail(pos, modifiers) { - var node = createNode(194 /* ExportAssignment */, pos); + function parseExportAssignmentTail(fullStart, modifiers) { + var node = createNode(195 /* ExportAssignment */, fullStart); setModifiers(node, modifiers); node.exportName = parseIdentifier(); parseSemicolon(); @@ -4563,14 +4714,13 @@ var ts; }); } } - function parseDeclaration(modifierContext) { - var pos = getNodePos(); - var modifiers = parseModifiers(modifierContext); + function parseDeclaration() { + var fullStart = getNodePos(); + var modifiers = parseModifiers(); if (token === 76 /* ExportKeyword */) { - var modifiersEnd = scanner.getStartPos(); nextToken(); if (parseOptional(51 /* EqualsToken */)) { - return parseExportAssignmentTail(pos, modifiers); + return parseExportAssignmentTail(fullStart, modifiers); } } var flags = modifiers ? modifiers.flags : 0; @@ -4578,37 +4728,37 @@ var ts; switch (token) { case 96 /* VarKeyword */: case 102 /* LetKeyword */: - result = parseVariableStatement(pos, flags); + result = parseVariableStatement(fullStart, modifiers); break; case 68 /* ConstKeyword */: var isConstEnum = lookAhead(function () { return nextToken() === 75 /* EnumKeyword */; }); if (isConstEnum) { - result = parseAndCheckEnumDeclaration(pos, flags | 4096 /* Const */); + result = parseAndCheckEnumDeclaration(fullStart, flags | 4096 /* Const */); } else { - result = parseVariableStatement(pos, flags); + result = parseVariableStatement(fullStart, modifiers); } break; case 81 /* FunctionKeyword */: - result = parseFunctionDeclaration(pos, flags); + result = parseFunctionDeclaration(fullStart, modifiers); break; case 67 /* ClassKeyword */: - result = parseClassDeclaration(pos, flags); + result = parseClassDeclaration(fullStart, modifiers); break; case 101 /* InterfaceKeyword */: - result = parseInterfaceDeclaration(pos, flags); + result = parseInterfaceDeclaration(fullStart, modifiers); break; case 119 /* TypeKeyword */: - result = parseTypeAliasDeclaration(pos, flags); + result = parseTypeAliasDeclaration(fullStart, modifiers); break; case 75 /* EnumKeyword */: - result = parseAndCheckEnumDeclaration(pos, flags); + result = parseAndCheckEnumDeclaration(fullStart, flags); break; case 114 /* ModuleKeyword */: - result = parseModuleDeclaration(pos, flags); + result = parseModuleDeclaration(fullStart, flags); break; case 83 /* ImportKeyword */: - result = parseImportDeclaration(pos, flags); + result = parseImportDeclaration(fullStart, modifiers); break; default: error(ts.Diagnostics.Declaration_expected); @@ -4622,13 +4772,13 @@ var ts; return isDeclarationStart() || isStatement(inErrorRecovery); } function parseSourceElement() { - return parseSourceElementOrModuleElement(0 /* SourceElements */); + return parseSourceElementOrModuleElement(); } function parseModuleElement() { - return parseSourceElementOrModuleElement(1 /* ModuleElements */); + return parseSourceElementOrModuleElement(); } - function parseSourceElementOrModuleElement(modifierContext) { - return isDeclarationStart() ? parseDeclaration(modifierContext) : parseStatement(); + function parseSourceElementOrModuleElement() { + return isDeclarationStart() ? parseDeclaration() : parseStatement(); } function processReferenceComments() { var referencedFiles = []; @@ -4675,7 +4825,7 @@ var ts; }; } function getExternalModuleIndicator() { - return ts.forEach(file.statements, function (node) { return node.flags & 1 /* Export */ || node.kind === 193 /* ImportDeclaration */ && node.externalModuleName || node.kind === 194 /* ExportAssignment */ ? node : undefined; }); + return ts.forEach(file.statements, function (node) { return node.flags & 1 /* Export */ || node.kind === 194 /* ImportDeclaration */ && node.externalModuleName || node.kind === 195 /* ExportAssignment */ ? node : undefined; }); } var syntacticDiagnostics; function getSyntacticDiagnostics() { @@ -4696,7 +4846,7 @@ var ts; if (ts.fileExtensionIs(filename, ".d.ts")) { rootNodeFlags = 1024 /* DeclarationFile */; } - file = createRootNode(196 /* SourceFile */, 0, sourceText.length, rootNodeFlags); + file = createRootNode(197 /* SourceFile */, 0, sourceText.length, rootNodeFlags); file.filename = ts.normalizePath(filename); file.text = sourceText; file.getLineAndCharacterFromPosition = getLineAndCharacterFromSourcePosition; @@ -4766,7 +4916,7 @@ var ts; parent = node; if (!checkModifiers(node)) { var savedInFunctionBlock = inFunctionBlock; - if (node.kind === 186 /* FunctionBlock */) { + if (node.kind === 187 /* FunctionBlock */) { inFunctionBlock = true; } var savedInAmbientContext = inAmbientContext; @@ -4797,48 +4947,49 @@ var ts; case 130 /* ConstructSignature */: case 133 /* FunctionType */: return checkAnyParsedSignature(node); - case 171 /* BreakStatement */: - case 170 /* ContinueStatement */: + case 172 /* BreakStatement */: + case 171 /* ContinueStatement */: return checkBreakOrContinueStatement(node); case 147 /* CallExpression */: case 148 /* NewExpression */: return checkCallOrNewExpression(node); - case 190 /* EnumDeclaration */: return checkEnumDeclaration(node); - case 123 /* Parameter */: return checkParameter(node); + case 191 /* EnumDeclaration */: return checkEnumDeclaration(node); case 156 /* BinaryExpression */: return checkBinaryExpression(node); - case 181 /* CatchBlock */: return checkCatchBlock(node); - case 187 /* ClassDeclaration */: return checkClassDeclaration(node); + case 182 /* CatchBlock */: return checkCatchBlock(node); + case 188 /* ClassDeclaration */: return checkClassDeclaration(node); case 126 /* Constructor */: return checkConstructor(node); - case 194 /* ExportAssignment */: return checkExportAssignment(node); - case 169 /* ForInStatement */: return checkForInStatement(node); - case 168 /* ForStatement */: return checkForStatement(node); - case 185 /* FunctionDeclaration */: return checkFunctionDeclaration(node); + case 195 /* ExportAssignment */: return checkExportAssignment(node); + case 170 /* ForInStatement */: return checkForInStatement(node); + case 169 /* ForStatement */: return checkForStatement(node); + case 186 /* FunctionDeclaration */: return checkFunctionDeclaration(node); case 152 /* FunctionExpression */: return checkFunctionExpression(node); case 127 /* GetAccessor */: return checkGetAccessor(node); case 146 /* IndexedAccess */: return checkIndexedAccess(node); case 131 /* IndexSignature */: return checkIndexSignature(node); - case 188 /* InterfaceDeclaration */: return checkInterfaceDeclaration(node); - case 177 /* LabeledStatement */: return checkLabeledStatement(node); + case 189 /* InterfaceDeclaration */: return checkInterfaceDeclaration(node); + case 178 /* LabeledStatement */: return checkLabeledStatement(node); case 125 /* Method */: return checkMethod(node); - case 191 /* ModuleDeclaration */: return checkModuleDeclaration(node); + case 192 /* ModuleDeclaration */: return checkModuleDeclaration(node); case 142 /* ObjectLiteral */: return checkObjectLiteral(node); case 6 /* NumericLiteral */: return checkNumericLiteral(node); + case 123 /* Parameter */: return checkParameter(node); case 155 /* PostfixOperator */: return checkPostfixOperator(node); case 154 /* PrefixOperator */: return checkPrefixOperator(node); case 124 /* Property */: return checkProperty(node); case 143 /* PropertyAssignment */: return checkPropertyAssignment(node); - case 172 /* ReturnStatement */: return checkReturnStatement(node); + case 173 /* ReturnStatement */: return checkReturnStatement(node); case 128 /* SetAccessor */: return checkSetAccessor(node); - case 196 /* SourceFile */: return checkSourceFile(node); + case 197 /* SourceFile */: return checkSourceFile(node); case 144 /* ShorthandPropertyAssignment */: return checkShorthandPropertyAssignment(node); - case 174 /* SwitchStatement */: return checkSwitchStatement(node); + case 175 /* SwitchStatement */: return checkSwitchStatement(node); case 149 /* TaggedTemplateExpression */: return checkTaggedTemplateExpression(node); case 138 /* TupleType */: return checkTupleType(node); case 122 /* TypeParameter */: return checkTypeParameter(node); case 132 /* TypeReference */: return checkTypeReference(node); - case 184 /* VariableDeclaration */: return checkVariableDeclaration(node); - case 162 /* VariableStatement */: return checkVariableStatement(node); - case 173 /* WithStatement */: return checkWithStatement(node); + case 185 /* VariableDeclaration */: return checkVariableDeclaration(node); + case 163 /* VariableStatement */: return checkVariableStatement(node); + case 174 /* WithStatement */: return checkWithStatement(node); + case 160 /* YieldExpression */: return checkYieldExpression(node); } } function grammarErrorOnFirstToken(node, message, arg0, arg1, arg2) { @@ -4866,23 +5017,23 @@ var ts; } function checkForStatementInAmbientContext(node, kind) { switch (kind) { - case 161 /* Block */: - case 163 /* EmptyStatement */: - case 165 /* IfStatement */: - case 166 /* DoStatement */: - case 167 /* WhileStatement */: - case 168 /* ForStatement */: - case 169 /* ForInStatement */: - case 170 /* ContinueStatement */: - case 171 /* BreakStatement */: - case 172 /* ReturnStatement */: - case 173 /* WithStatement */: - case 174 /* SwitchStatement */: - case 178 /* ThrowStatement */: - case 179 /* TryStatement */: - case 183 /* DebuggerStatement */: - case 177 /* LabeledStatement */: - case 164 /* ExpressionStatement */: + case 162 /* Block */: + case 164 /* EmptyStatement */: + case 166 /* IfStatement */: + case 167 /* DoStatement */: + case 168 /* WhileStatement */: + case 169 /* ForStatement */: + case 170 /* ForInStatement */: + case 171 /* ContinueStatement */: + case 172 /* BreakStatement */: + case 173 /* ReturnStatement */: + case 174 /* WithStatement */: + case 175 /* SwitchStatement */: + case 179 /* ThrowStatement */: + case 180 /* TryStatement */: + case 184 /* DebuggerStatement */: + case 178 /* LabeledStatement */: + case 165 /* ExpressionStatement */: return grammarErrorOnFirstToken(node, ts.Diagnostics.Statements_are_not_allowed_in_ambient_contexts); } } @@ -4890,7 +5041,7 @@ var ts; return checkTypeParameterList(node.typeParameters) || checkParameterList(node.parameters); } function checkBinaryExpression(node) { - if (node.flags & 8192 /* ParsedInStrictMode */) { + if (node.parserContextFlags & 1 /* StrictMode */) { if (isLeftHandSideExpression(node.left) && isAssignmentOperator(node.operator)) { if (isEvalOrArgumentsIdentifier(node.left)) { return reportInvalidUseInStrictMode(node.left); @@ -4900,12 +5051,12 @@ var ts; } function isIterationStatement(node, lookInLabeledStatements) { switch (node.kind) { - case 168 /* ForStatement */: - case 169 /* ForInStatement */: - case 166 /* DoStatement */: - case 167 /* WhileStatement */: + case 169 /* ForStatement */: + case 170 /* ForInStatement */: + case 167 /* DoStatement */: + case 168 /* WhileStatement */: return true; - case 177 /* LabeledStatement */: + case 178 /* LabeledStatement */: return lookInLabeledStatements && isIterationStatement(node.statement, lookInLabeledStatements); } return false; @@ -4916,7 +5067,7 @@ var ts; if (isAnyFunction(current)) { break; } - if (current.kind === 177 /* LabeledStatement */ && current.label.text === node.label.text) { + if (current.kind === 178 /* LabeledStatement */ && current.label.text === node.label.text) { return grammarErrorOnNode(node.label, ts.Diagnostics.Duplicate_label_0, getTextOfNodeFromSourceText(sourceText, node.label)); } current = current.parent; @@ -4929,17 +5080,17 @@ var ts; return grammarErrorOnNode(node, ts.Diagnostics.Jump_target_cannot_cross_function_boundary); } switch (current.kind) { - case 177 /* LabeledStatement */: + case 178 /* LabeledStatement */: if (node.label && current.label.text === node.label.text) { - var isMisplacedContinueLabel = node.kind === 170 /* ContinueStatement */ && !isIterationStatement(current.statement, true); + var isMisplacedContinueLabel = node.kind === 171 /* ContinueStatement */ && !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 174 /* SwitchStatement */: - if (node.kind === 171 /* BreakStatement */ && !node.label) { + case 175 /* SwitchStatement */: + if (node.kind === 172 /* BreakStatement */ && !node.label) { return false; } break; @@ -4952,11 +5103,11 @@ var ts; current = current.parent; } if (node.label) { - var message = node.kind === 171 /* BreakStatement */ ? 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; + var message = node.kind === 172 /* BreakStatement */ ? 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 === 171 /* BreakStatement */ ? 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; + var message = node.kind === 172 /* BreakStatement */ ? 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); } } @@ -4973,7 +5124,7 @@ var ts; if (arguments) { for (var i = 0, n = arguments.length; i < n; i++) { var arg = arguments[i]; - if (arg.kind === 160 /* OmittedExpression */) { + if (arg.kind === 161 /* OmittedExpression */) { return grammarErrorAtPos(arg.pos, 0, ts.Diagnostics.Argument_expression_expected); } } @@ -5008,7 +5159,7 @@ var ts; var colonStart = ts.skipTrivia(sourceText, node.variable.end); return grammarErrorAtPos(colonStart, ":".length, ts.Diagnostics.Catch_clause_parameter_cannot_have_a_type_annotation); } - if (node.flags & 8192 /* ParsedInStrictMode */ && isEvalOrArgumentsIdentifier(node.variable)) { + if (node.parserContextFlags & 1 /* StrictMode */ && isEvalOrArgumentsIdentifier(node.variable)) { return reportInvalidUseInStrictMode(node.variable); } } @@ -5087,13 +5238,18 @@ var ts; } } function checkFunctionDeclaration(node) { - return checkAnyParsedSignature(node) || checkFunctionName(node.name) || checkForBodyInAmbientContext(node.body, false); + return checkAnyParsedSignature(node) || checkFunctionName(node.name) || checkForBodyInAmbientContext(node.body, false) || checkForGenerator(node); + } + function checkForGenerator(node) { + if (node.asteriskToken) { + return grammarErrorOnNode(node.asteriskToken, ts.Diagnostics.generators_are_not_currently_supported); + } } function checkFunctionExpression(node) { - return checkAnyParsedSignature(node) || checkFunctionName(node.name); + return checkAnyParsedSignature(node) || checkFunctionName(node.name) || checkForGenerator(node); } function checkFunctionName(name) { - if (name && name.flags & 8192 /* ParsedInStrictMode */ && isEvalOrArgumentsIdentifier(name)) { + if (name && name.parserContextFlags & 1 /* StrictMode */ && isEvalOrArgumentsIdentifier(name)) { return reportInvalidUseInStrictMode(name); } } @@ -5151,10 +5307,10 @@ var ts; return checkForDisallowedTrailingComma(node.baseTypes) || checkForAtLeastOneHeritageClause(node.baseTypes, "extends"); } function checkMethod(node) { - return checkAnyParsedSignature(node) || checkForBodyInAmbientContext(node.body, false) || (node.parent.kind === 187 /* ClassDeclaration */ && checkForInvalidQuestionMark(node, ts.Diagnostics.A_class_member_cannot_be_declared_optional)); + return checkAnyParsedSignature(node) || checkForBodyInAmbientContext(node.body, false) || (node.parent.kind === 188 /* ClassDeclaration */ && checkForInvalidQuestionMark(node, ts.Diagnostics.A_class_member_cannot_be_declared_optional)) || checkForGenerator(node); } function checkForBodyInAmbientContext(body, isConstructor) { - if (inAmbientContext && body && body.kind === 186 /* FunctionBlock */) { + if (inAmbientContext && body && body.kind === 187 /* FunctionBlock */) { var diagnostic = isConstructor ? ts.Diagnostics.A_constructor_implementation_cannot_be_declared_in_an_ambient_context : ts.Diagnostics.A_function_implementation_cannot_be_declared_in_an_ambient_context; return grammarErrorOnFirstToken(body, diagnostic); } @@ -5168,14 +5324,14 @@ var ts; } } function checkModuleDeclarationStatements(node) { - if (node.name.kind === 63 /* Identifier */ && node.body.kind === 192 /* ModuleBlock */) { + if (node.name.kind === 63 /* Identifier */ && node.body.kind === 193 /* ModuleBlock */) { var statements = node.body.statements; for (var i = 0, n = statements.length; i < n; i++) { var statement = statements[i]; - if (statement.kind === 194 /* ExportAssignment */) { + if (statement.kind === 195 /* ExportAssignment */) { return grammarErrorOnNode(statement, ts.Diagnostics.An_export_assignment_cannot_be_used_in_an_internal_module); } - else if (statement.kind === 193 /* ImportDeclaration */ && statement.externalModuleName) { + else if (statement.kind === 194 /* ImportDeclaration */ && statement.externalModuleName) { return grammarErrorOnNode(statement.externalModuleName, ts.Diagnostics.Import_declarations_in_an_internal_module_cannot_reference_an_external_module); } } @@ -5187,10 +5343,10 @@ var ts; var GetAccessor = 2; var SetAccesor = 4; var GetOrSetAccessor = GetAccessor | SetAccesor; - var inStrictMode = (node.flags & 8192 /* ParsedInStrictMode */) !== 0; + var inStrictMode = (node.parserContextFlags & 1 /* StrictMode */) !== 0; for (var i = 0, n = node.properties.length; i < n; i++) { var prop = node.properties[i]; - if (prop.kind === 160 /* OmittedExpression */) { + if (prop.kind === 161 /* OmittedExpression */) { continue; } var p = prop; @@ -5236,8 +5392,8 @@ var ts; } } function checkNumericLiteral(node) { - if (node.flags & 16384 /* OctalLiteral */) { - if (node.flags & 8192 /* ParsedInStrictMode */) { + if (node.flags & 8192 /* OctalLiteral */) { + if (node.parserContextFlags & 1 /* StrictMode */) { return grammarErrorOnNode(node, ts.Diagnostics.Octal_literals_are_not_allowed_in_strict_mode); } else if (languageVersion >= 1 /* ES5 */) { @@ -5253,15 +5409,15 @@ var ts; case 124 /* Property */: case 125 /* Method */: case 131 /* IndexSignature */: - case 187 /* ClassDeclaration */: - case 188 /* InterfaceDeclaration */: - case 191 /* ModuleDeclaration */: - case 190 /* EnumDeclaration */: - case 194 /* ExportAssignment */: - case 162 /* VariableStatement */: - case 185 /* FunctionDeclaration */: - case 189 /* TypeAliasDeclaration */: - case 193 /* ImportDeclaration */: + case 188 /* ClassDeclaration */: + case 189 /* InterfaceDeclaration */: + case 192 /* ModuleDeclaration */: + case 191 /* EnumDeclaration */: + case 195 /* ExportAssignment */: + case 163 /* VariableStatement */: + case 186 /* FunctionDeclaration */: + case 190 /* TypeAliasDeclaration */: + case 194 /* ImportDeclaration */: case 123 /* Parameter */: break; default: @@ -5296,7 +5452,7 @@ var ts; else if (flags & 128 /* Static */) { return grammarErrorOnNode(modifier, ts.Diagnostics._0_modifier_must_precede_1_modifier, text, "static"); } - else if (node.parent.kind === 192 /* ModuleBlock */ || node.parent.kind === 196 /* SourceFile */) { + else if (node.parent.kind === 193 /* ModuleBlock */ || node.parent.kind === 197 /* SourceFile */) { return grammarErrorOnNode(modifier, ts.Diagnostics._0_modifier_cannot_appear_on_a_module_element, text); } flags |= modifierToFlag(modifier.kind); @@ -5305,7 +5461,7 @@ var ts; if (flags & 128 /* Static */) { return grammarErrorOnNode(modifier, ts.Diagnostics._0_modifier_already_seen, "static"); } - else if (node.parent.kind === 192 /* ModuleBlock */ || node.parent.kind === 196 /* SourceFile */) { + else if (node.parent.kind === 193 /* ModuleBlock */ || node.parent.kind === 197 /* SourceFile */) { return grammarErrorOnNode(modifier, ts.Diagnostics._0_modifier_cannot_appear_on_a_module_element, "static"); } else if (node.kind === 123 /* Parameter */) { @@ -5321,7 +5477,7 @@ var ts; else if (flags & 2 /* Ambient */) { return grammarErrorOnNode(modifier, ts.Diagnostics._0_modifier_must_precede_1_modifier, "export", "declare"); } - else if (node.parent.kind === 187 /* ClassDeclaration */) { + else if (node.parent.kind === 188 /* ClassDeclaration */) { return grammarErrorOnNode(modifier, ts.Diagnostics._0_modifier_cannot_appear_on_a_class_element, "export"); } else if (node.kind === 123 /* Parameter */) { @@ -5333,13 +5489,13 @@ var ts; if (flags & 2 /* Ambient */) { return grammarErrorOnNode(modifier, ts.Diagnostics._0_modifier_already_seen, "declare"); } - else if (node.parent.kind === 187 /* ClassDeclaration */) { + else if (node.parent.kind === 188 /* ClassDeclaration */) { return grammarErrorOnNode(modifier, ts.Diagnostics._0_modifier_cannot_appear_on_a_class_element, "declare"); } else if (node.kind === 123 /* Parameter */) { return grammarErrorOnNode(modifier, ts.Diagnostics._0_modifier_cannot_appear_on_a_parameter, "declare"); } - else if (inAmbientContext && node.parent.kind === 192 /* ModuleBlock */) { + else if (inAmbientContext && node.parent.kind === 193 /* ModuleBlock */) { return grammarErrorOnNode(modifier, ts.Diagnostics.A_declare_modifier_cannot_be_used_in_an_already_ambient_context); } flags |= 2 /* Ambient */; @@ -5358,15 +5514,15 @@ var ts; return grammarErrorOnNode(lastPrivate, ts.Diagnostics._0_modifier_cannot_appear_on_a_constructor_declaration, "private"); } } - else if (node.kind === 193 /* ImportDeclaration */ && flags & 2 /* Ambient */) { + else if (node.kind === 194 /* ImportDeclaration */ && flags & 2 /* Ambient */) { return grammarErrorOnNode(lastDeclare, ts.Diagnostics.A_declare_modifier_cannot_be_used_with_an_import_declaration, "declare"); } - else if (node.kind === 188 /* InterfaceDeclaration */ && flags & 2 /* Ambient */) { + else if (node.kind === 189 /* InterfaceDeclaration */ && flags & 2 /* Ambient */) { return grammarErrorOnNode(lastDeclare, ts.Diagnostics.A_declare_modifier_cannot_be_used_with_an_interface_declaration, "declare"); } } function checkParameter(node) { - if (node.flags & 8192 /* ParsedInStrictMode */ && isEvalOrArgumentsIdentifier(node.name)) { + if (node.parserContextFlags & 1 /* StrictMode */ && isEvalOrArgumentsIdentifier(node.name)) { return reportInvalidUseInStrictMode(node.name); } } @@ -5413,12 +5569,12 @@ var ts; } } function checkPostfixOperator(node) { - if (node.flags & 8192 /* ParsedInStrictMode */ && isEvalOrArgumentsIdentifier(node.operand)) { + if (node.parserContextFlags & 1 /* StrictMode */ && isEvalOrArgumentsIdentifier(node.operand)) { return reportInvalidUseInStrictMode(node.operand); } } function checkPrefixOperator(node) { - if (node.flags & 8192 /* ParsedInStrictMode */) { + if (node.parserContextFlags & 1 /* StrictMode */) { if ((node.operator === 37 /* PlusPlusToken */ || node.operator === 38 /* MinusMinusToken */) && isEvalOrArgumentsIdentifier(node.operand)) { return reportInvalidUseInStrictMode(node.operand); } @@ -5428,7 +5584,7 @@ var ts; } } function checkProperty(node) { - return (node.parent.kind === 187 /* ClassDeclaration */ && checkForInvalidQuestionMark(node, ts.Diagnostics.A_class_member_cannot_be_declared_optional)) || checkForInitializerInAmbientContext(node); + return (node.parent.kind === 188 /* ClassDeclaration */ && checkForInvalidQuestionMark(node, ts.Diagnostics.A_class_member_cannot_be_declared_optional)) || checkForInitializerInAmbientContext(node); } function checkForInitializerInAmbientContext(node) { if (inAmbientContext && node.initializer) { @@ -5499,7 +5655,7 @@ var ts; function checkTopLevelElementsForRequiredDeclareModifier(file) { for (var i = 0, n = file.statements.length; i < n; i++) { var decl = file.statements[i]; - if (isDeclaration(decl) || decl.kind === 162 /* VariableStatement */) { + if (isDeclaration(decl) || decl.kind === 163 /* VariableStatement */) { if (checkTopLevelElementForRequiredDeclareModifier(decl)) { return true; } @@ -5507,7 +5663,7 @@ var ts; } } function checkTopLevelElementForRequiredDeclareModifier(node) { - if (node.kind === 188 /* InterfaceDeclaration */ || node.kind === 193 /* ImportDeclaration */ || node.kind === 194 /* ExportAssignment */ || (node.flags & 2 /* Ambient */)) { + if (node.kind === 189 /* InterfaceDeclaration */ || node.kind === 194 /* ImportDeclaration */ || node.kind === 195 /* ExportAssignment */ || (node.flags & 2 /* Ambient */)) { return false; } return grammarErrorOnFirstToken(node, ts.Diagnostics.A_declare_modifier_is_required_for_a_top_level_declaration_in_a_d_ts_file); @@ -5519,7 +5675,7 @@ var ts; var firstDefaultClause; for (var i = 0, n = node.clauses.length; i < n; i++) { var clause = node.clauses[i]; - if (clause.kind === 176 /* DefaultClause */) { + if (clause.kind === 177 /* DefaultClause */) { if (firstDefaultClause === undefined) { firstDefaultClause = clause; } @@ -5557,10 +5713,10 @@ var ts; var equalsPos = node.type ? ts.skipTrivia(sourceText, node.type.end) : ts.skipTrivia(sourceText, node.name.end); return grammarErrorAtPos(equalsPos, "=".length, ts.Diagnostics.Initializers_are_not_allowed_in_ambient_contexts); } - if (!inAmbientContext && !node.initializer && node.flags & 4096 /* Const */) { + if (!inAmbientContext && !node.initializer && isConst(node)) { return grammarErrorOnNode(node, ts.Diagnostics.const_declarations_must_be_initialized); } - if (node.flags & 8192 /* ParsedInStrictMode */ && isEvalOrArgumentsIdentifier(node.name)) { + if (node.parserContextFlags & 1 /* StrictMode */ && isEvalOrArgumentsIdentifier(node.name)) { return reportInvalidUseInStrictMode(node.name); } } @@ -5574,10 +5730,10 @@ var ts; } var decl = declarations[0]; if (languageVersion < 2 /* ES6 */) { - if (decl.flags & 2048 /* Let */) { + if (isLet(decl)) { return grammarErrorOnFirstToken(decl, ts.Diagnostics.let_declarations_are_only_available_when_targeting_ECMAScript_6_and_higher); } - else if (decl.flags & 4096 /* Const */) { + else if (isConst(decl)) { return grammarErrorOnFirstToken(decl, ts.Diagnostics.const_declarations_are_only_available_when_targeting_ECMAScript_6_and_higher); } } @@ -5588,33 +5744,39 @@ var ts; } function checkForDisallowedLetOrConstStatement(node) { if (!allowLetAndConstDeclarations(node.parent)) { - if (node.flags & 2048 /* Let */) { + if (isLet(node)) { return grammarErrorOnNode(node, ts.Diagnostics.let_declarations_can_only_be_declared_inside_a_block); } - else if (node.flags & 4096 /* Const */) { + else if (isConst(node)) { return grammarErrorOnNode(node, ts.Diagnostics.const_declarations_can_only_be_declared_inside_a_block); } } } function allowLetAndConstDeclarations(parent) { switch (parent.kind) { - case 165 /* IfStatement */: - case 166 /* DoStatement */: - case 167 /* WhileStatement */: - case 173 /* WithStatement */: - case 168 /* ForStatement */: - case 169 /* ForInStatement */: + case 166 /* IfStatement */: + case 167 /* DoStatement */: + case 168 /* WhileStatement */: + case 174 /* WithStatement */: + case 169 /* ForStatement */: + case 170 /* ForInStatement */: return false; - case 177 /* LabeledStatement */: + case 178 /* LabeledStatement */: return allowLetAndConstDeclarations(parent.parent); } return true; } function checkWithStatement(node) { - if (node.flags & 8192 /* ParsedInStrictMode */) { + if (node.parserContextFlags & 1 /* StrictMode */) { return grammarErrorOnFirstToken(node, ts.Diagnostics.with_statements_are_not_allowed_in_strict_mode); } } + function checkYieldExpression(node) { + if (!(node.parserContextFlags & 4 /* Yield */)) { + return grammarErrorOnFirstToken(node, ts.Diagnostics.yield_expression_must_be_contained_within_a_generator_declaration); + } + return grammarErrorOnFirstToken(node, ts.Diagnostics.yield_expressions_are_not_currently_supported); + } } function createProgram(rootNames, options, host) { var program; @@ -5691,17 +5853,20 @@ var ts; function findSourceFile(filename, isDefaultLib, refFile, refStart, refLength) { var canonicalName = host.getCanonicalFileName(filename); if (ts.hasProperty(filesByName, canonicalName)) { - var file = filesByName[canonicalName]; - if (file && host.useCaseSensitiveFileNames() && canonicalName !== file.filename) { - errors.push(ts.createFileDiagnostic(refFile, refStart, refLength, ts.Diagnostics.Filename_0_differs_from_already_included_filename_1_only_in_casing, filename, file.filename)); - } + 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) { errors.push(ts.createFileDiagnostic(refFile, refStart, refLength, 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); @@ -5719,6 +5884,16 @@ var ts; } } 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) { + errors.push(ts.createFileDiagnostic(refFile, refStart, refLength, ts.Diagnostics.Filename_0_differs_from_already_included_filename_1_only_in_casing, filename, sourceFileName)); + } + } + return file; + } } function processReferencedFiles(file, basePath) { ts.forEach(file.referencedFiles, function (ref) { @@ -5728,7 +5903,7 @@ var ts; } function processImportedModules(file, basePath) { ts.forEach(file.statements, function (node) { - if (node.kind === 193 /* ImportDeclaration */ && node.externalModuleName) { + if (node.kind === 194 /* ImportDeclaration */ && node.externalModuleName) { var nameLiteral = node.externalModuleName; var moduleName = nameLiteral.text; if (moduleName) { @@ -5746,9 +5921,9 @@ var ts; } } } - else if (node.kind === 191 /* ModuleDeclaration */ && node.name.kind === 7 /* StringLiteral */ && (node.flags & 2 /* Ambient */ || isDeclarationFile(file))) { + else if (node.kind === 192 /* ModuleDeclaration */ && node.name.kind === 7 /* StringLiteral */ && (node.flags & 2 /* Ambient */ || isDeclarationFile(file))) { forEachChild(node.body, function (node) { - if (node.kind === 193 /* ImportDeclaration */ && node.externalModuleName) { + if (node.kind === 194 /* ImportDeclaration */ && node.externalModuleName) { var nameLiteral = node.externalModuleName; var moduleName = nameLiteral.text; if (moduleName) { @@ -5821,16 +5996,16 @@ var ts; var ts; (function (ts) { function getModuleInstanceState(node) { - if (node.kind === 188 /* InterfaceDeclaration */) { + if (node.kind === 189 /* InterfaceDeclaration */) { return 0 /* NonInstantiated */; } - else if (node.kind === 190 /* EnumDeclaration */ && ts.isConstEnumDeclaration(node)) { + else if (ts.isConstEnumDeclaration(node)) { return 2 /* ConstEnumOnly */; } - else if (node.kind === 193 /* ImportDeclaration */ && !(node.flags & 1 /* Export */)) { + else if (node.kind === 194 /* ImportDeclaration */ && !(node.flags & 1 /* Export */)) { return 0 /* NonInstantiated */; } - else if (node.kind === 192 /* ModuleBlock */) { + else if (node.kind === 193 /* ModuleBlock */) { var state = 0 /* NonInstantiated */; ts.forEachChild(node, function (n) { switch (getModuleInstanceState(n)) { @@ -5846,7 +6021,7 @@ var ts; }); return state; } - else if (node.kind === 191 /* ModuleDeclaration */) { + else if (node.kind === 192 /* ModuleDeclaration */) { return getModuleInstanceState(node.body); } else { @@ -5886,7 +6061,7 @@ var ts; } function getDeclarationName(node) { if (node.name) { - if (node.kind === 191 /* ModuleDeclaration */ && node.name.kind === 7 /* StringLiteral */) { + if (node.kind === 192 /* ModuleDeclaration */ && node.name.kind === 7 /* StringLiteral */) { return '"' + node.name.text + '"'; } return node.name.text; @@ -5928,7 +6103,7 @@ var ts; } addDeclarationToSymbol(symbol, node, includes); symbol.parent = parent; - if (node.kind === 187 /* ClassDeclaration */ && symbol.exports) { + if (node.kind === 188 /* ClassDeclaration */ && symbol.exports) { var prototypeSymbol = createSymbol(4 /* Property */ | 536870912 /* Prototype */, "prototype"); if (ts.hasProperty(symbol.exports, prototypeSymbol.name)) { if (node.name) { @@ -5960,7 +6135,7 @@ var ts; if (symbolKind & 1536 /* Namespace */) { exportKind |= 16777216 /* ExportNamespace */; } - if (node.flags & 1 /* Export */ || (node.kind !== 193 /* ImportDeclaration */ && isAmbientContext(container))) { + if (node.flags & 1 /* Export */ || (node.kind !== 194 /* ImportDeclaration */ && isAmbientContext(container))) { if (exportKind) { var local = declareSymbol(container.locals, undefined, node, exportKind, symbolExcludes); local.exportSymbol = declareSymbol(container.symbol.exports, container.symbol, node, symbolKind, symbolExcludes); @@ -6001,10 +6176,10 @@ var ts; } function bindDeclaration(node, symbolKind, symbolExcludes, isBlockScopeContainer) { switch (container.kind) { - case 191 /* ModuleDeclaration */: + case 192 /* ModuleDeclaration */: declareModuleMember(node, symbolKind, symbolExcludes); break; - case 196 /* SourceFile */: + case 197 /* SourceFile */: if (ts.isExternalModule(container)) { declareModuleMember(node, symbolKind, symbolExcludes); break; @@ -6018,22 +6193,22 @@ var ts; case 126 /* Constructor */: case 127 /* GetAccessor */: case 128 /* SetAccessor */: - case 185 /* FunctionDeclaration */: + case 186 /* FunctionDeclaration */: case 152 /* FunctionExpression */: case 153 /* ArrowFunction */: declareSymbol(container.locals, undefined, node, symbolKind, symbolExcludes); break; - case 187 /* ClassDeclaration */: + case 188 /* ClassDeclaration */: if (node.flags & 128 /* Static */) { declareSymbol(container.symbol.exports, container.symbol, node, symbolKind, symbolExcludes); break; } case 136 /* TypeLiteral */: case 142 /* ObjectLiteral */: - case 188 /* InterfaceDeclaration */: + case 189 /* InterfaceDeclaration */: declareSymbol(container.symbol.members, container.symbol, node, symbolKind, symbolExcludes); break; - case 190 /* EnumDeclaration */: + case 191 /* EnumDeclaration */: declareSymbol(container.symbol.exports, container.symbol, node, symbolKind, symbolExcludes); break; } @@ -6094,10 +6269,10 @@ var ts; } function bindBlockScopedVariableDeclaration(node) { switch (blockScopeContainer.kind) { - case 191 /* ModuleDeclaration */: + case 192 /* ModuleDeclaration */: declareModuleMember(node, 2 /* BlockScopedVariable */, 107455 /* BlockScopedVariableExcludes */); break; - case 196 /* SourceFile */: + case 197 /* SourceFile */: if (ts.isExternalModule(container)) { declareModuleMember(node, 2 /* BlockScopedVariable */, 107455 /* BlockScopedVariableExcludes */); break; @@ -6119,7 +6294,7 @@ var ts; case 123 /* Parameter */: bindDeclaration(node, 1 /* FunctionScopedVariable */, 107455 /* ParameterExcludes */, false); break; - case 184 /* VariableDeclaration */: + case 185 /* VariableDeclaration */: if (node.flags & 6144 /* BlockScoped */) { bindBlockScopedVariableDeclaration(node); } @@ -6132,7 +6307,7 @@ var ts; case 144 /* ShorthandPropertyAssignment */: bindDeclaration(node, 4 /* Property */, 107455 /* PropertyExcludes */, false); break; - case 195 /* EnumMember */: + case 196 /* EnumMember */: bindDeclaration(node, 8 /* EnumMember */, 107455 /* EnumMemberExcludes */, false); break; case 129 /* CallSignature */: @@ -6147,7 +6322,7 @@ var ts; case 131 /* IndexSignature */: bindDeclaration(node, 524288 /* IndexSignature */, 0, false); break; - case 185 /* FunctionDeclaration */: + case 186 /* FunctionDeclaration */: bindDeclaration(node, 16 /* Function */, 106927 /* FunctionExcludes */, true); break; case 126 /* Constructor */: @@ -6173,44 +6348,44 @@ var ts; case 153 /* ArrowFunction */: bindAnonymousDeclaration(node, 16 /* Function */, "__function", true); break; - case 181 /* CatchBlock */: + case 182 /* CatchBlock */: bindCatchVariableDeclaration(node); break; - case 187 /* ClassDeclaration */: + case 188 /* ClassDeclaration */: bindDeclaration(node, 32 /* Class */, 3258879 /* ClassExcludes */, false); break; - case 188 /* InterfaceDeclaration */: + case 189 /* InterfaceDeclaration */: bindDeclaration(node, 64 /* Interface */, 3152288 /* InterfaceExcludes */, false); break; - case 189 /* TypeAliasDeclaration */: + case 190 /* TypeAliasDeclaration */: bindDeclaration(node, 2097152 /* TypeAlias */, 3152352 /* TypeAliasExcludes */, false); break; - case 190 /* EnumDeclaration */: - if (ts.isConstEnumDeclaration(node)) { + case 191 /* EnumDeclaration */: + if (ts.isConst(node)) { bindDeclaration(node, 128 /* ConstEnum */, 3259263 /* ConstEnumExcludes */, false); } else { bindDeclaration(node, 256 /* RegularEnum */, 3258623 /* RegularEnumExcludes */, false); } break; - case 191 /* ModuleDeclaration */: + case 192 /* ModuleDeclaration */: bindModuleDeclaration(node); break; - case 193 /* ImportDeclaration */: + case 194 /* ImportDeclaration */: bindDeclaration(node, 33554432 /* Import */, 33554432 /* ImportExcludes */, false); break; - case 196 /* SourceFile */: + case 197 /* SourceFile */: if (ts.isExternalModule(node)) { bindAnonymousDeclaration(node, 512 /* ValueModule */, '"' + ts.removeFileExtension(node.filename) + '"', true); break; } - case 161 /* Block */: - case 180 /* TryBlock */: - case 181 /* CatchBlock */: - case 182 /* FinallyBlock */: - case 168 /* ForStatement */: - case 169 /* ForInStatement */: - case 174 /* SwitchStatement */: + case 162 /* Block */: + case 181 /* TryBlock */: + case 182 /* CatchBlock */: + case 183 /* FinallyBlock */: + case 169 /* ForStatement */: + case 170 /* ForInStatement */: + case 175 /* SwitchStatement */: bindChildren(node, 0, true); break; default: @@ -6250,6 +6425,1057 @@ var ts; return ts.isExternalModule(sourceFile) || ts.isDeclarationFile(sourceFile); } ts.isExternalModuleOrDeclarationFile = isExternalModuleOrDeclarationFile; + 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(ts.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; } + }; + } + function getLineOfLocalPosition(currentSourceFile, pos) { + return currentSourceFile.getLineAndCharacterFromPosition(pos).line; + } + 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(); + } + } + 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; + } + }); + } + function writeCommentRange(currentSourceFile, writer, comment, newLine) { + if (currentSourceFile.text.charCodeAt(comment.pos + 1) === 42 /* asterisk */) { + var firstCommentLineAndCharacter = currentSourceFile.getLineAndCharacterFromPosition(comment.pos); + var firstCommentLineIndent; + for (var pos = comment.pos, currentLine = firstCommentLineAndCharacter.line; pos < comment.end; currentLine++) { + var nextLineStart = currentSourceFile.getPositionFromLineAndCharacter(currentLine + 1, 1); + if (pos !== comment.pos) { + if (firstCommentLineIndent === undefined) { + firstCommentLineIndent = calculateIndent(currentSourceFile.getPositionFromLineAndCharacter(firstCommentLineAndCharacter.line, 1), 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 /* tab */) { + currentLineIndent += getIndentSize() - (currentLineIndent % getIndentSize()); + } + else { + currentLineIndent++; + } + } + return currentLineIndent; + } + } + function getFirstConstructorWithBody(node) { + return ts.forEach(node.members, function (member) { + if (member.kind === 126 /* Constructor */ && member.body) { + return member; + } + }); + } + function getAllAccessorDeclarations(node, accessor) { + var firstAccessor; + var getAccessor; + var setAccessor; + ts.forEach(node.members, function (member) { + if ((member.kind === 127 /* GetAccessor */ || member.kind === 128 /* SetAccessor */) && member.name.text === accessor.name.text && (member.flags & 128 /* Static */) === (accessor.flags & 128 /* Static */)) { + if (!firstAccessor) { + firstAccessor = member; + } + if (member.kind === 127 /* GetAccessor */ && !getAccessor) { + getAccessor = member; + } + if (member.kind === 128 /* SetAccessor */ && !setAccessor) { + setAccessor = member; + } + } + }); + return { + firstAccessor: firstAccessor, + getAccessor: getAccessor, + setAccessor: setAccessor + }; + } + function getSourceFilePathInNewDir(sourceFile, program, newDirPath) { + var compilerHost = program.getCompilerHost(); + var sourceFilePath = ts.getNormalizedAbsolutePath(sourceFile.filename, compilerHost.getCurrentDirectory()); + sourceFilePath = sourceFilePath.replace(program.getCommonSourceDirectory(), ""); + return ts.combinePaths(newDirPath, sourceFilePath); + } + function getOwnEmitOutputFilePath(sourceFile, program, extension) { + var compilerOptions = program.getCompilerOptions(); + if (compilerOptions.outDir) { + var emitOutputFilePathWithoutExtension = ts.removeFileExtension(getSourceFilePathInNewDir(sourceFile, program, compilerOptions.outDir)); + } + else { + var emitOutputFilePathWithoutExtension = ts.removeFileExtension(sourceFile.filename); + } + return emitOutputFilePathWithoutExtension + extension; + } + function writeFile(compilerHost, diagnostics, filename, data, writeByteOrderMark) { + compilerHost.writeFile(filename, data, writeByteOrderMark, function (hostErrorMessage) { + diagnostics.push(ts.createCompilerDiagnostic(ts.Diagnostics.Could_not_write_file_0_Colon_1, filename, hostErrorMessage)); + }); + } + function emitDeclarations(program, resolver, diagnostics, jsFilePath, root) { + var newLine = program.getCompilerHost().getNewLine(); + var compilerOptions = program.getCompilerOptions(); + var compilerHost = program.getCompilerHost(); + 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 aliasDeclarationEmitInfo = []; + function createAndSetNewTextWriterWithSymbolWriter() { + var writer = 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 writeAsychronousImportDeclarations(importDeclarations) { + var oldWriter = writer; + ts.forEach(importDeclarations, function (aliasToWrite) { + var aliasEmitInfo = ts.forEach(aliasDeclarationEmitInfo, function (declEmitInfo) { return declEmitInfo.declaration === aliasToWrite ? declEmitInfo : undefined; }); + if (aliasEmitInfo) { + createAndSetNewTextWriterWithSymbolWriter(); + for (var declarationIndent = aliasEmitInfo.indent; declarationIndent; declarationIndent--) { + increaseIndent(); + } + writeImportDeclaration(aliasToWrite); + aliasEmitInfo.asynchronousOutput = writer.getText(); + } + }); + setWriter(oldWriter); + } + function handleSymbolAccessibilityError(symbolAccesibilityResult) { + if (symbolAccesibilityResult.accessibility === 0 /* Accessible */) { + if (symbolAccesibilityResult && symbolAccesibilityResult.aliasesToMakeVisible) { + writeAsychronousImportDeclarations(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 writeTypeAtLocation(location, type, getSymbolAccessibilityDiagnostic) { + writer.getSymbolAccessibilityDiagnostic = getSymbolAccessibilityDiagnostic; + write(": "); + if (type) { + emitType(type); + } + else { + resolver.writeTypeAtLocation(location, enclosingDeclaration, 2 /* UseTypeOfFunction */, writer); + } + } + function writeReturnTypeAtSignature(signature, getSymbolAccessibilityDiagnostic) { + writer.getSymbolAccessibilityDiagnostic = getSymbolAccessibilityDiagnostic; + write(": "); + if (signature.type) { + emitType(signature.type); + } + else { + resolver.writeReturnTypeOfSignatureDeclaration(signature, enclosingDeclaration, 2 /* UseTypeOfFunction */, writer); + } + } + function emitLines(nodes) { + for (var i = 0, n = nodes.length; i < n; i++) { + emitNode(nodes[i]); + } + } + function emitSeparatedList(nodes, separator, eachNodeEmitFn) { + var currentWriterPos = writer.getTextPos(); + for (var i = 0, n = nodes.length; i < n; i++) { + if (currentWriterPos !== writer.getTextPos()) { + write(separator); + } + currentWriterPos = writer.getTextPos(); + eachNodeEmitFn(nodes[i]); + } + } + function emitCommaList(nodes, eachNodeEmitFn) { + emitSeparatedList(nodes, ", ", eachNodeEmitFn); + } + function writeJsDocComments(declaration) { + if (declaration) { + var jsDocComments = ts.getJsDocComments(declaration, currentSourceFile); + emitNewLineBeforeLeadingComments(currentSourceFile, writer, declaration, jsDocComments); + emitComments(currentSourceFile, writer, jsDocComments, true, newLine, writeCommentRange); + } + } + function emitTypeWithNewGetSymbolAccessibilityDiangostic(type, getSymbolAccessibilityDiagnostic) { + writer.getSymbolAccessibilityDiagnostic = getSymbolAccessibilityDiagnostic; + emitType(type); + } + function emitType(type) { + switch (type.kind) { + case 109 /* AnyKeyword */: + case 118 /* StringKeyword */: + case 116 /* NumberKeyword */: + case 110 /* BooleanKeyword */: + case 97 /* VoidKeyword */: + case 7 /* StringLiteral */: + return writeTextOfNode(currentSourceFile, type); + case 132 /* TypeReference */: + return emitTypeReference(type); + case 135 /* TypeQuery */: + return emitTypeQuery(type); + case 137 /* ArrayType */: + return emitArrayType(type); + case 138 /* TupleType */: + return emitTupleType(type); + case 139 /* UnionType */: + return emitUnionType(type); + case 140 /* ParenType */: + return emitParenType(type); + case 133 /* FunctionType */: + case 134 /* ConstructorType */: + return emitSignatureDeclarationWithJsDocComments(type); + case 136 /* TypeLiteral */: + return emitTypeLiteral(type); + case 63 /* Identifier */: + return emitEntityName(type); + case 121 /* QualifiedName */: + return emitEntityName(type); + default: + ts.Debug.fail("Unknown type annotation: " + type.kind); + } + function emitEntityName(entityName) { + var visibilityResult = resolver.isEntityNameVisible(entityName, entityName.parent.kind === 194 /* ImportDeclaration */ ? entityName.parent : enclosingDeclaration); + handleSymbolAccessibilityError(visibilityResult); + writeEntityName(entityName); + function writeEntityName(entityName) { + if (entityName.kind === 63 /* Identifier */) { + 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("export = "); + writeTextOfNode(currentSourceFile, node.exportName); + write(";"); + writeLine(); + } + function emitModuleElementDeclarationFlags(node) { + if (node.parent === currentSourceFile) { + if (node.flags & 1 /* Export */) { + write("export "); + } + if (node.kind !== 189 /* InterfaceDeclaration */) { + write("declare "); + } + } + } + function emitClassMemberDeclarationFlags(node) { + if (node.flags & 32 /* Private */) { + write("private "); + } + else if (node.flags & 64 /* Protected */) { + write("protected "); + } + if (node.flags & 128 /* Static */) { + write("static "); + } + } + function emitImportDeclaration(node) { + var nodeEmitInfo = { + declaration: node, + outputPos: writer.getTextPos(), + indent: writer.getIndent(), + hasWritten: resolver.isDeclarationVisible(node) + }; + aliasDeclarationEmitInfo.push(nodeEmitInfo); + if (nodeEmitInfo.hasWritten) { + writeImportDeclaration(node); + } + } + function writeImportDeclaration(node) { + emitJsDocComments(node); + if (node.flags & 1 /* Export */) { + write("export "); + } + write("import "); + writeTextOfNode(currentSourceFile, node.name); + write(" = "); + if (node.entityName) { + emitTypeWithNewGetSymbolAccessibilityDiangostic(node.entityName, getImportEntityNameVisibilityError); + write(";"); + } + else { + write("require("); + writeTextOfNode(currentSourceFile, node.externalModuleName); + write(");"); + } + writer.writeLine(); + function getImportEntityNameVisibilityError(symbolAccesibilityResult) { + return { + diagnosticMessage: ts.Diagnostics.Import_declaration_0_is_using_private_name_1, + errorNode: node, + typeName: node.name + }; + } + } + function emitModuleDeclaration(node) { + if (resolver.isDeclarationVisible(node)) { + emitJsDocComments(node); + emitModuleElementDeclarationFlags(node); + write("module "); + writeTextOfNode(currentSourceFile, node.name); + while (node.body.kind !== 193 /* ModuleBlock */) { + 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 emitTypeAliasDeclaration(node) { + if (resolver.isDeclarationVisible(node)) { + emitJsDocComments(node); + emitModuleElementDeclarationFlags(node); + write("type "); + writeTextOfNode(currentSourceFile, node.name); + write(" = "); + emitTypeWithNewGetSymbolAccessibilityDiangostic(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 emitEnumDeclaration(node) { + if (resolver.isDeclarationVisible(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.getEnumMemberValue(node); + if (enumMemberValue !== undefined) { + write(" = "); + write(enumMemberValue.toString()); + } + write(","); + writeLine(); + } + function emitTypeParameters(typeParameters) { + function emitTypeParameter(node) { + increaseIndent(); + emitJsDocComments(node); + decreaseIndent(); + writeTextOfNode(currentSourceFile, node.name); + if (node.constraint && (node.parent.kind !== 125 /* Method */ || !(node.parent.flags & 32 /* Private */))) { + write(" extends "); + if (node.parent.kind === 133 /* FunctionType */ || node.parent.kind === 134 /* ConstructorType */ || (node.parent.parent && node.parent.parent.kind === 136 /* TypeLiteral */)) { + ts.Debug.assert(node.parent.kind === 125 /* Method */ || node.parent.kind === 133 /* FunctionType */ || node.parent.kind === 134 /* ConstructorType */ || node.parent.kind === 129 /* CallSignature */ || node.parent.kind === 130 /* ConstructSignature */); + emitType(node.constraint); + } + else { + emitTypeWithNewGetSymbolAccessibilityDiangostic(node.constraint, getTypeParameterConstraintVisibilityError); + } + } + function getTypeParameterConstraintVisibilityError(symbolAccesibilityResult) { + var diagnosticMessage; + switch (node.parent.kind) { + case 188 /* ClassDeclaration */: + diagnosticMessage = ts.Diagnostics.Type_parameter_0_of_exported_class_has_or_is_using_private_name_1; + break; + case 189 /* InterfaceDeclaration */: + diagnosticMessage = ts.Diagnostics.Type_parameter_0_of_exported_interface_has_or_is_using_private_name_1; + break; + case 130 /* ConstructSignature */: + diagnosticMessage = ts.Diagnostics.Type_parameter_0_of_constructor_signature_from_exported_interface_has_or_is_using_private_name_1; + break; + case 129 /* CallSignature */: + diagnosticMessage = ts.Diagnostics.Type_parameter_0_of_call_signature_from_exported_interface_has_or_is_using_private_name_1; + break; + case 125 /* Method */: + if (node.parent.flags & 128 /* Static */) { + 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 === 188 /* ClassDeclaration */) { + 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 186 /* FunctionDeclaration */: + 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) { + emitTypeWithNewGetSymbolAccessibilityDiangostic(node, getHeritageClauseVisibilityError); + function getHeritageClauseVisibilityError(symbolAccesibilityResult) { + var diagnosticMessage; + if (node.parent.kind === 188 /* ClassDeclaration */) { + 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.name + }; + } + } + } + function emitClassDeclaration(node) { + function emitParameterProperties(constructorDeclaration) { + if (constructorDeclaration) { + ts.forEach(constructorDeclaration.parameters, function (param) { + if (param.flags & 112 /* AccessibilityModifier */) { + emitPropertyDeclaration(param); + } + }); + } + } + if (resolver.isDeclarationVisible(node)) { + emitJsDocComments(node); + emitModuleElementDeclarationFlags(node); + write("class "); + writeTextOfNode(currentSourceFile, node.name); + var prevEnclosingDeclaration = enclosingDeclaration; + enclosingDeclaration = node; + emitTypeParameters(node.typeParameters); + if (node.baseType) { + emitHeritageClause([node.baseType], false); + } + emitHeritageClause(node.implementedTypes, true); + write(" {"); + writeLine(); + increaseIndent(); + emitParameterProperties(getFirstConstructorWithBody(node)); + emitLines(node.members); + decreaseIndent(); + write("}"); + writeLine(); + enclosingDeclaration = prevEnclosingDeclaration; + } + } + function emitInterfaceDeclaration(node) { + if (resolver.isDeclarationVisible(node)) { + emitJsDocComments(node); + emitModuleElementDeclarationFlags(node); + write("interface "); + writeTextOfNode(currentSourceFile, node.name); + var prevEnclosingDeclaration = enclosingDeclaration; + enclosingDeclaration = node; + emitTypeParameters(node.typeParameters); + emitHeritageClause(node.baseTypes, false); + write(" {"); + writeLine(); + increaseIndent(); + emitLines(node.members); + decreaseIndent(); + write("}"); + writeLine(); + enclosingDeclaration = prevEnclosingDeclaration; + } + } + function emitPropertyDeclaration(node) { + emitJsDocComments(node); + emitClassMemberDeclarationFlags(node); + emitVariableDeclaration(node); + write(";"); + writeLine(); + } + function emitVariableDeclaration(node) { + if (node.kind !== 185 /* VariableDeclaration */ || resolver.isDeclarationVisible(node)) { + writeTextOfNode(currentSourceFile, node.name); + if (node.kind === 124 /* Property */ && (node.flags & 4 /* QuestionMark */)) { + write("?"); + } + if (node.kind === 124 /* Property */ && node.parent.kind === 136 /* TypeLiteral */) { + emitTypeOfVariableDeclarationFromTypeLiteral(node); + } + else if (!(node.flags & 32 /* Private */)) { + writeTypeAtLocation(node, node.type, getVariableDeclarationTypeVisibilityError); + } + } + function getVariableDeclarationTypeVisibilityError(symbolAccesibilityResult) { + var diagnosticMessage; + if (node.kind === 185 /* VariableDeclaration */) { + diagnosticMessage = symbolAccesibilityResult.errorModuleName ? symbolAccesibilityResult.accessibility === 2 /* CannotBeNamed */ ? 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 === 124 /* Property */) { + if (node.flags & 128 /* Static */) { + diagnosticMessage = symbolAccesibilityResult.errorModuleName ? symbolAccesibilityResult.accessibility === 2 /* CannotBeNamed */ ? 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 === 188 /* ClassDeclaration */) { + diagnosticMessage = symbolAccesibilityResult.errorModuleName ? symbolAccesibilityResult.accessibility === 2 /* CannotBeNamed */ ? 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 { + diagnosticMessage = 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; + } + } + return diagnosticMessage !== undefined ? { + diagnosticMessage: diagnosticMessage, + errorNode: node, + typeName: node.name + } : undefined; + } + } + function emitTypeOfVariableDeclarationFromTypeLiteral(node) { + if (node.type) { + write(": "); + emitType(node.type); + } + } + function emitVariableStatement(node) { + var hasDeclarationWithEmit = ts.forEach(node.declarations, function (varDeclaration) { return resolver.isDeclarationVisible(varDeclaration); }); + if (hasDeclarationWithEmit) { + emitJsDocComments(node); + emitModuleElementDeclarationFlags(node); + if (ts.isLet(node)) { + write("let "); + } + else if (ts.isConst(node)) { + write("const "); + } + else { + write("var "); + } + emitCommaList(node.declarations, emitVariableDeclaration); + write(";"); + writeLine(); + } + } + function emitAccessorDeclaration(node) { + var accessors = getAllAccessorDeclarations(node.parent, node); + if (node === accessors.firstAccessor) { + emitJsDocComments(accessors.getAccessor); + emitJsDocComments(accessors.setAccessor); + emitClassMemberDeclarationFlags(node); + writeTextOfNode(currentSourceFile, node.name); + if (!(node.flags & 32 /* Private */)) { + var accessorWithTypeAnnotation = node; + var type = getTypeAnnotationFromAccessor(node); + if (!type) { + var anotherAccessor = node.kind === 127 /* GetAccessor */ ? accessors.setAccessor : accessors.getAccessor; + type = getTypeAnnotationFromAccessor(anotherAccessor); + if (type) { + accessorWithTypeAnnotation = anotherAccessor; + } + } + writeTypeAtLocation(node, type, getAccessorDeclarationTypeVisibilityError); + } + write(";"); + writeLine(); + } + function getTypeAnnotationFromAccessor(accessor) { + if (accessor) { + return accessor.kind === 127 /* GetAccessor */ ? accessor.type : accessor.parameters[0].type; + } + } + function getAccessorDeclarationTypeVisibilityError(symbolAccesibilityResult) { + var diagnosticMessage; + if (accessorWithTypeAnnotation.kind === 128 /* SetAccessor */) { + if (accessorWithTypeAnnotation.parent.flags & 128 /* Static */) { + 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 /* Static */) { + diagnosticMessage = symbolAccesibilityResult.errorModuleName ? symbolAccesibilityResult.accessibility === 2 /* CannotBeNamed */ ? 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 /* CannotBeNamed */ ? 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 emitFunctionDeclaration(node) { + if ((node.kind !== 186 /* FunctionDeclaration */ || resolver.isDeclarationVisible(node)) && !resolver.isImplementationOfOverload(node)) { + emitJsDocComments(node); + if (node.kind === 186 /* FunctionDeclaration */) { + emitModuleElementDeclarationFlags(node); + } + else if (node.kind === 125 /* Method */) { + emitClassMemberDeclarationFlags(node); + } + if (node.kind === 186 /* FunctionDeclaration */) { + write("function "); + writeTextOfNode(currentSourceFile, node.name); + } + else if (node.kind === 126 /* Constructor */) { + write("constructor"); + } + else { + writeTextOfNode(currentSourceFile, node.name); + if (node.flags & 4 /* QuestionMark */) { + write("?"); + } + } + emitSignatureDeclaration(node); + } + } + function emitSignatureDeclarationWithJsDocComments(node) { + emitJsDocComments(node); + emitSignatureDeclaration(node); + } + function emitSignatureDeclaration(node) { + if (node.kind === 130 /* ConstructSignature */ || node.kind === 134 /* ConstructorType */) { + write("new "); + } + emitTypeParameters(node.typeParameters); + if (node.kind === 131 /* IndexSignature */) { + write("["); + } + else { + write("("); + } + var prevEnclosingDeclaration = enclosingDeclaration; + enclosingDeclaration = node; + emitCommaList(node.parameters, emitParameterDeclaration); + if (node.kind === 131 /* IndexSignature */) { + write("]"); + } + else { + write(")"); + } + var isFunctionTypeOrConstructorType = node.kind === 133 /* FunctionType */ || node.kind === 134 /* ConstructorType */; + if (isFunctionTypeOrConstructorType || node.parent.kind === 136 /* TypeLiteral */) { + if (node.type) { + write(isFunctionTypeOrConstructorType ? " => " : ": "); + emitType(node.type); + } + } + else if (node.kind !== 126 /* Constructor */ && !(node.flags & 32 /* Private */)) { + writeReturnTypeAtSignature(node, getReturnTypeVisibilityError); + } + enclosingDeclaration = prevEnclosingDeclaration; + if (!isFunctionTypeOrConstructorType) { + write(";"); + writeLine(); + } + function getReturnTypeVisibilityError(symbolAccesibilityResult) { + var diagnosticMessage; + switch (node.kind) { + case 130 /* ConstructSignature */: + 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 129 /* CallSignature */: + 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 131 /* IndexSignature */: + 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 125 /* Method */: + if (node.flags & 128 /* Static */) { + diagnosticMessage = symbolAccesibilityResult.errorModuleName ? symbolAccesibilityResult.accessibility === 2 /* CannotBeNamed */ ? 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 === 188 /* ClassDeclaration */) { + diagnosticMessage = symbolAccesibilityResult.errorModuleName ? symbolAccesibilityResult.accessibility === 2 /* CannotBeNamed */ ? 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 186 /* FunctionDeclaration */: + diagnosticMessage = symbolAccesibilityResult.errorModuleName ? symbolAccesibilityResult.accessibility === 2 /* CannotBeNamed */ ? 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.flags & 8 /* Rest */) { + write("..."); + } + writeTextOfNode(currentSourceFile, node.name); + if (node.initializer || (node.flags & 4 /* QuestionMark */)) { + write("?"); + } + decreaseIndent(); + if (node.parent.kind === 133 /* FunctionType */ || node.parent.kind === 134 /* ConstructorType */ || node.parent.parent.kind === 136 /* TypeLiteral */) { + emitTypeOfVariableDeclarationFromTypeLiteral(node); + } + else if (!(node.parent.flags & 32 /* Private */)) { + writeTypeAtLocation(node, node.type, getParameterDeclarationTypeVisibilityError); + } + function getParameterDeclarationTypeVisibilityError(symbolAccesibilityResult) { + var diagnosticMessage; + switch (node.parent.kind) { + case 126 /* Constructor */: + diagnosticMessage = symbolAccesibilityResult.errorModuleName ? symbolAccesibilityResult.accessibility === 2 /* CannotBeNamed */ ? 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 130 /* ConstructSignature */: + 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 129 /* CallSignature */: + 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 125 /* Method */: + if (node.parent.flags & 128 /* Static */) { + diagnosticMessage = symbolAccesibilityResult.errorModuleName ? symbolAccesibilityResult.accessibility === 2 /* CannotBeNamed */ ? 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 === 188 /* ClassDeclaration */) { + diagnosticMessage = symbolAccesibilityResult.errorModuleName ? symbolAccesibilityResult.accessibility === 2 /* CannotBeNamed */ ? 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 186 /* FunctionDeclaration */: + diagnosticMessage = symbolAccesibilityResult.errorModuleName ? symbolAccesibilityResult.accessibility === 2 /* CannotBeNamed */ ? 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 126 /* Constructor */: + case 186 /* FunctionDeclaration */: + case 125 /* Method */: + return emitFunctionDeclaration(node); + case 130 /* ConstructSignature */: + case 129 /* CallSignature */: + case 131 /* IndexSignature */: + return emitSignatureDeclarationWithJsDocComments(node); + case 127 /* GetAccessor */: + case 128 /* SetAccessor */: + return emitAccessorDeclaration(node); + case 163 /* VariableStatement */: + return emitVariableStatement(node); + case 124 /* Property */: + return emitPropertyDeclaration(node); + case 189 /* InterfaceDeclaration */: + return emitInterfaceDeclaration(node); + case 188 /* ClassDeclaration */: + return emitClassDeclaration(node); + case 190 /* TypeAliasDeclaration */: + return emitTypeAliasDeclaration(node); + case 196 /* EnumMember */: + return emitEnumMemberDeclaration(node); + case 191 /* EnumDeclaration */: + return emitEnumDeclaration(node); + case 192 /* ModuleDeclaration */: + return emitModuleDeclaration(node); + case 194 /* ImportDeclaration */: + return emitImportDeclaration(node); + case 195 /* ExportAssignment */: + return emitExportAssignment(node); + case 197 /* SourceFile */: + return emitSourceFile(node); + } + } + var referencePathsOutput = ""; + function writeReferencePath(referencedFile) { + var declFileName = referencedFile.flags & 1024 /* DeclarationFile */ ? referencedFile.filename : shouldEmitToOwnFile(referencedFile, compilerOptions) ? getOwnEmitOutputFilePath(referencedFile, program, ".d.ts") : ts.removeFileExtension(compilerOptions.out) + ".d.ts"; + declFileName = ts.getRelativePathToDirectoryOrUrl(ts.getDirectoryPath(ts.normalizeSlashes(jsFilePath)), declFileName, compilerHost.getCurrentDirectory(), compilerHost.getCanonicalFileName, false); + referencePathsOutput += "/// " + newLine; + } + if (root) { + if (!compilerOptions.noResolve) { + var addedGlobalFileReference = false; + ts.forEach(root.referencedFiles, function (fileReference) { + var referencedFile = ts.tryResolveScriptReference(program, root, fileReference); + if (referencedFile && ((referencedFile.flags & 1024 /* DeclarationFile */) || shouldEmitToOwnFile(referencedFile, compilerOptions) || !addedGlobalFileReference)) { + writeReferencePath(referencedFile); + if (!isExternalModuleOrDeclarationFile(referencedFile)) { + addedGlobalFileReference = true; + } + } + }); + } + emitNode(root); + } + else { + var emittedReferencedFiles = []; + ts.forEach(program.getSourceFiles(), function (sourceFile) { + if (!isExternalModuleOrDeclarationFile(sourceFile)) { + if (!compilerOptions.noResolve) { + ts.forEach(sourceFile.referencedFiles, function (fileReference) { + var referencedFile = ts.tryResolveScriptReference(program, sourceFile, fileReference); + if (referencedFile && (isExternalModuleOrDeclarationFile(referencedFile) && !ts.contains(emittedReferencedFiles, referencedFile))) { + writeReferencePath(referencedFile); + emittedReferencedFiles.push(referencedFile); + } + }); + } + emitNode(sourceFile); + } + }); + } + return { + reportedDeclarationError: reportedDeclarationError, + aliasDeclarationEmitInfo: aliasDeclarationEmitInfo, + synchronousDeclarationOutput: writer.getText(), + referencePathsOutput: referencePathsOutput + }; + } + function getDeclarationDiagnostics(program, resolver, targetSourceFile) { + var diagnostics = []; + var jsFilePath = getOwnEmitOutputFilePath(targetSourceFile, program, ".js"); + emitDeclarations(program, resolver, diagnostics, jsFilePath, targetSourceFile); + return diagnostics; + } + ts.getDeclarationDiagnostics = getDeclarationDiagnostics; function emitFiles(resolver, targetSourceFile) { var program = resolver.getProgram(); var compilerHost = program.getCompilerHost(); @@ -6257,206 +7483,14 @@ var ts; var sourceMapDataList = compilerOptions.sourceMap ? [] : undefined; var diagnostics = []; var newLine = program.getCompilerHost().getNewLine(); - function getSourceFilePathInNewDir(newDirPath, sourceFile) { - var sourceFilePath = ts.getNormalizedPathFromPathComponents(ts.getNormalizedPathComponents(sourceFile.filename, compilerHost.getCurrentDirectory())); - sourceFilePath = sourceFilePath.replace(program.getCommonSourceDirectory(), ""); - return ts.combinePaths(newDirPath, sourceFilePath); - } - function getOwnEmitOutputFilePath(sourceFile, extension) { - if (compilerOptions.outDir) { - var emitOutputFilePathWithoutExtension = ts.removeFileExtension(getSourceFilePathInNewDir(compilerOptions.outDir, sourceFile)); - } - else { - var emitOutputFilePathWithoutExtension = ts.removeFileExtension(sourceFile.filename); - } - return emitOutputFilePathWithoutExtension + extension; - } - function getFirstConstructorWithBody(node) { - return ts.forEach(node.members, function (member) { - if (member.kind === 126 /* Constructor */ && member.body) { - return member; - } - }); - } - function getAllAccessorDeclarations(node, accessor) { - var firstAccessor; - var getAccessor; - var setAccessor; - ts.forEach(node.members, function (member) { - if ((member.kind === 127 /* GetAccessor */ || member.kind === 128 /* SetAccessor */) && member.name.text === accessor.name.text && (member.flags & 128 /* Static */) === (accessor.flags & 128 /* Static */)) { - if (!firstAccessor) { - firstAccessor = member; - } - if (member.kind === 127 /* GetAccessor */ && !getAccessor) { - getAccessor = member; - } - if (member.kind === 128 /* SetAccessor */ && !setAccessor) { - setAccessor = member; - } - } - }); - return { - firstAccessor: firstAccessor, - getAccessor: getAccessor, - setAccessor: setAccessor - }; - } - function createTextWriter() { - 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; - } - } - return { - write: write, - rawWrite: rawWrite, - 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; } - }; - } - var currentSourceFile; - function getSourceTextOfLocalNode(node) { - var text = currentSourceFile.text; - return text.substring(ts.skipTrivia(text, node.pos), node.end); - } - function getLineOfLocalPosition(pos) { - return currentSourceFile.getLineAndCharacterFromPosition(pos).line; - } - function writeFile(filename, data, writeByteOrderMark) { - compilerHost.writeFile(filename, data, writeByteOrderMark, function (hostErrorMessage) { - diagnostics.push(ts.createCompilerDiagnostic(ts.Diagnostics.Could_not_write_file_0_Colon_1, filename, hostErrorMessage)); - }); - } - function emitComments(comments, trailingSeparator, writer, writeComment) { - var emitLeadingSpace = !trailingSeparator; - ts.forEach(comments, function (comment) { - if (emitLeadingSpace) { - writer.write(" "); - emitLeadingSpace = false; - } - writeComment(comment, writer); - if (comment.hasTrailingNewLine) { - writer.writeLine(); - } - else if (trailingSeparator) { - writer.write(" "); - } - else { - emitLeadingSpace = true; - } - }); - } - function emitNewLineBeforeLeadingComments(node, leadingComments, writer) { - if (leadingComments && leadingComments.length && node.pos !== leadingComments[0].pos && getLineOfLocalPosition(node.pos) !== getLineOfLocalPosition(leadingComments[0].pos)) { - writer.writeLine(); - } - } - function writeCommentRange(comment, writer) { - if (currentSourceFile.text.charCodeAt(comment.pos + 1) === 42 /* asterisk */) { - var firstCommentLineAndCharacter = currentSourceFile.getLineAndCharacterFromPosition(comment.pos); - var firstCommentLineIndent; - for (var pos = comment.pos, currentLine = firstCommentLineAndCharacter.line; pos < comment.end; currentLine++) { - var nextLineStart = currentSourceFile.getPositionFromLineAndCharacter(currentLine + 1, 1); - if (pos !== comment.pos) { - if (firstCommentLineIndent === undefined) { - firstCommentLineIndent = calculateIndent(currentSourceFile.getPositionFromLineAndCharacter(firstCommentLineAndCharacter.line, 1), 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 /* tab */) { - currentLineIndent += getIndentSize() - (currentLineIndent % getIndentSize()); - } - else { - currentLineIndent++; - } - } - return currentLineIndent; - } - } function emitJavaScript(jsFilePath, root) { - var writer = createTextWriter(); + var writer = 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 extendsEmitted = false; var writeEmittedFiles = writeJavaScriptFile; var emitLeadingComments = compilerOptions.removeComments ? function (node) { @@ -6613,7 +7647,7 @@ var ts; if (scopeName) { recordScopeNameStart(scopeName); } - else if (node.kind === 185 /* FunctionDeclaration */ || node.kind === 152 /* FunctionExpression */ || node.kind === 125 /* Method */ || node.kind === 127 /* GetAccessor */ || node.kind === 128 /* SetAccessor */ || node.kind === 191 /* ModuleDeclaration */ || node.kind === 187 /* ClassDeclaration */ || node.kind === 190 /* EnumDeclaration */) { + else if (node.kind === 186 /* FunctionDeclaration */ || node.kind === 152 /* FunctionExpression */ || node.kind === 125 /* Method */ || node.kind === 127 /* GetAccessor */ || node.kind === 128 /* SetAccessor */ || node.kind === 192 /* ModuleDeclaration */ || node.kind === 188 /* ClassDeclaration */ || node.kind === 191 /* EnumDeclaration */) { if (node.name) { scopeName = node.name.text; } @@ -6627,9 +7661,9 @@ var ts; sourceMapNameIndices.pop(); } ; - function writeCommentRangeWithMap(comment, writer) { + function writeCommentRangeWithMap(curentSourceFile, writer, comment, newLine) { recordSourceMapSpan(comment.pos); - writeCommentRange(comment, writer); + writeCommentRange(currentSourceFile, writer, comment, newLine); recordSourceMapSpan(comment.end); } function serializeSourceMapContents(version, file, sourceRoot, sources, names, mappings) { @@ -6657,7 +7691,7 @@ var ts; } function writeJavaScriptAndSourceMapFile(emitOutput, writeByteOrderMark) { encodeLastRecordedSourceMapSpan(); - writeFile(sourceMapData.sourceMapFilePath, serializeSourceMapContents(3, sourceMapData.sourceMapFile, sourceMapData.sourceMapSourceRoot, sourceMapData.sourceMapSources, sourceMapData.sourceMapNames, sourceMapData.sourceMapMappings), false); + writeFile(compilerHost, 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); } @@ -6680,7 +7714,7 @@ var ts; if (compilerOptions.mapRoot) { sourceMapDir = ts.normalizeSlashes(compilerOptions.mapRoot); if (root) { - sourceMapDir = ts.getDirectoryPath(getSourceFilePathInNewDir(sourceMapDir, root)); + sourceMapDir = ts.getDirectoryPath(getSourceFilePathInNewDir(root, program, sourceMapDir)); } if (!ts.isRootedDiskPath(sourceMapDir) && !ts.isUrl(sourceMapDir)) { sourceMapDir = ts.combinePaths(program.getCommonSourceDirectory(), sourceMapDir); @@ -6695,7 +7729,7 @@ var ts; } function emitNodeWithMap(node) { if (node) { - if (node.kind != 196 /* SourceFile */) { + if (node.kind != 197 /* SourceFile */) { recordEmitNodeStartSpan(node); emitNode(node); recordEmitNodeEndSpan(node); @@ -6716,7 +7750,7 @@ var ts; writeComment = writeCommentRangeWithMap; } function writeJavaScriptFile(emitOutput, writeByteOrderMark) { - writeFile(jsFilePath, emitOutput, writeByteOrderMark); + writeFile(compilerHost, diagnostics, jsFilePath, emitOutput, writeByteOrderMark); } function emitTokenText(tokenKind, startPos, emitFn) { var tokenString = ts.tokenToString(tokenKind); @@ -6793,7 +7827,7 @@ var ts; if (compilerOptions.target < 2 /* ES6 */ && ts.isTemplateLiteralKind(node.kind)) { return getTemplateLiteralAsStringLiteral(node); } - return getSourceTextOfLocalNode(node); + return ts.getSourceTextOfNodeFromSourceFile(currentSourceFile, node); } } function getTemplateLiteralAsStringLiteral(node) { @@ -6876,7 +7910,7 @@ var ts; write(node.text); } else { - write(getSourceTextOfLocalNode(node)); + writeTextOfNode(currentSourceFile, node); } write("\""); } @@ -6885,29 +7919,29 @@ var ts; var parent = node.parent; switch (parent.kind) { case 123 /* Parameter */: - case 184 /* VariableDeclaration */: + case 185 /* VariableDeclaration */: case 124 /* Property */: case 143 /* PropertyAssignment */: case 144 /* ShorthandPropertyAssignment */: - case 195 /* EnumMember */: + case 196 /* EnumMember */: case 125 /* Method */: - case 185 /* FunctionDeclaration */: + case 186 /* FunctionDeclaration */: case 127 /* GetAccessor */: case 128 /* SetAccessor */: case 152 /* FunctionExpression */: - case 187 /* ClassDeclaration */: - case 188 /* InterfaceDeclaration */: - case 190 /* EnumDeclaration */: - case 191 /* ModuleDeclaration */: - case 193 /* ImportDeclaration */: + case 188 /* ClassDeclaration */: + case 189 /* InterfaceDeclaration */: + case 191 /* EnumDeclaration */: + case 192 /* ModuleDeclaration */: + case 194 /* ImportDeclaration */: return parent.name === node; - case 171 /* BreakStatement */: - case 170 /* ContinueStatement */: - case 194 /* ExportAssignment */: + case 172 /* BreakStatement */: + case 171 /* ContinueStatement */: + case 195 /* ExportAssignment */: return false; - case 177 /* LabeledStatement */: + case 178 /* LabeledStatement */: return node.parent.label === node; - case 181 /* CatchBlock */: + case 182 /* CatchBlock */: return node.parent.variable === node; } } @@ -6917,14 +7951,14 @@ var ts; write(prefix); write("."); } - write(getSourceTextOfLocalNode(node)); + writeTextOfNode(currentSourceFile, node); } function emitIdentifier(node) { if (!isNotExpressionIdentifier(node)) { emitExpressionIdentifier(node); } else { - write(getSourceTextOfLocalNode(node)); + writeTextOfNode(currentSourceFile, node); } } function emitThis(node) { @@ -7131,8 +8165,8 @@ var ts; emitToken(13 /* OpenBraceToken */, node.pos); increaseIndent(); scopeEmitStart(node.parent); - if (node.kind === 192 /* ModuleBlock */) { - ts.Debug.assert(node.parent.kind === 191 /* ModuleDeclaration */); + if (node.kind === 193 /* ModuleBlock */) { + ts.Debug.assert(node.parent.kind === 192 /* ModuleDeclaration */); emitCaptureThisForNodeIfNecessary(node.parent); } emitLines(node.statements); @@ -7142,7 +8176,7 @@ var ts; scopeEmitEnd(); } function emitEmbeddedStatement(node) { - if (node.kind === 161 /* Block */) { + if (node.kind === 162 /* Block */) { write(" "); emit(node); } @@ -7175,7 +8209,7 @@ var ts; if (node.elseStatement) { writeLine(); emitToken(74 /* ElseKeyword */, node.thenStatement.end); - if (node.elseStatement.kind === 165 /* IfStatement */) { + if (node.elseStatement.kind === 166 /* IfStatement */) { write(" "); emit(node.elseStatement); } @@ -7188,7 +8222,7 @@ var ts; function emitDoStatement(node) { write("do"); emitEmbeddedStatement(node.statement); - if (node.statement.kind === 161 /* Block */) { + if (node.statement.kind === 162 /* Block */) { write(" "); } else { @@ -7209,10 +8243,10 @@ var ts; write(" "); endPos = emitToken(15 /* OpenParenToken */, endPos); if (node.declarations) { - if (node.declarations[0] && node.declarations[0].flags & 2048 /* Let */) { + if (node.declarations[0] && ts.isLet(node.declarations[0])) { emitToken(102 /* LetKeyword */, endPos); } - else if (node.declarations[0] && node.declarations[0].flags & 4096 /* Const */) { + else if (node.declarations[0] && ts.isConst(node.declarations[0])) { emitToken(68 /* ConstKeyword */, endPos); } else { @@ -7238,7 +8272,7 @@ var ts; if (node.declarations) { if (node.declarations.length >= 1) { var decl = node.declarations[0]; - if (decl.flags & 2048 /* Let */) { + if (ts.isLet(decl)) { emitToken(102 /* LetKeyword */, endPos); } else { @@ -7257,7 +8291,7 @@ var ts; emitEmbeddedStatement(node.statement); } function emitBreakOrContinueStatement(node) { - emitToken(node.kind === 171 /* BreakStatement */ ? 64 /* BreakKeyword */ : 69 /* ContinueKeyword */, node.pos); + emitToken(node.kind === 172 /* BreakStatement */ ? 64 /* BreakKeyword */ : 69 /* ContinueKeyword */, node.pos); emitOptional(" ", node.label); write(";"); } @@ -7289,10 +8323,10 @@ var ts; emitToken(14 /* CloseBraceToken */, node.clauses.end); } function isOnSameLine(node1, node2) { - return getLineOfLocalPosition(ts.skipTrivia(currentSourceFile.text, node1.pos)) === getLineOfLocalPosition(ts.skipTrivia(currentSourceFile.text, node2.pos)); + return getLineOfLocalPosition(currentSourceFile, ts.skipTrivia(currentSourceFile.text, node1.pos)) === getLineOfLocalPosition(currentSourceFile, ts.skipTrivia(currentSourceFile.text, node2.pos)); } function emitCaseOrDefaultClause(node) { - if (node.kind === 175 /* CaseClause */) { + if (node.kind === 176 /* CaseClause */) { write("case "); emit(node.expression); write(":"); @@ -7347,7 +8381,7 @@ var ts; function getContainingModule(node) { do { node = node.parent; - } while (node && node.kind !== 191 /* ModuleDeclaration */); + } while (node && node.kind !== 192 /* ModuleDeclaration */); return node; } function emitModuleMemberName(node) { @@ -7369,10 +8403,10 @@ var ts; function emitVariableStatement(node) { emitLeadingComments(node); if (!(node.flags & 1 /* Export */)) { - if (node.flags & 2048 /* Let */) { + if (ts.isLet(node)) { write("let "); } - else if (node.flags & 4096 /* Const */) { + else if (ts.isConst(node)) { write("const "); } else { @@ -7459,7 +8493,7 @@ var ts; emitLeadingComments(node); } write("function "); - if (node.kind === 185 /* FunctionDeclaration */ || (node.kind === 152 /* FunctionExpression */ && node.name)) { + if (node.kind === 186 /* FunctionDeclaration */ || (node.kind === 152 /* FunctionExpression */ && node.name)) { emit(node.name); } emitSignatureAndBody(node); @@ -7489,16 +8523,16 @@ var ts; write(" {"); scopeEmitStart(node); increaseIndent(); - emitDetachedComments(node.body.kind === 186 /* FunctionBlock */ ? node.body.statements : node.body); + emitDetachedComments(node.body.kind === 187 /* FunctionBlock */ ? node.body.statements : node.body); var startIndex = 0; - if (node.body.kind === 186 /* FunctionBlock */) { + if (node.body.kind === 187 /* FunctionBlock */) { startIndex = emitDirectivePrologues(node.body.statements, true); } var outPos = writer.getTextPos(); emitCaptureThisForNodeIfNecessary(node); emitDefaultValueAssignments(node); emitRestParameter(node); - if (node.body.kind !== 186 /* FunctionBlock */ && outPos === writer.getTextPos()) { + if (node.body.kind !== 187 /* FunctionBlock */ && outPos === writer.getTextPos()) { decreaseIndent(); write(" "); emitStart(node.body); @@ -7511,7 +8545,7 @@ var ts; emitEnd(node.body); } else { - if (node.body.kind === 186 /* FunctionBlock */) { + if (node.body.kind === 187 /* FunctionBlock */) { emitLinesStartingAt(node.body.statements, startIndex); } else { @@ -7523,7 +8557,7 @@ var ts; emitTrailingComments(node.body); } writeLine(); - if (node.body.kind === 186 /* FunctionBlock */) { + if (node.body.kind === 187 /* FunctionBlock */) { emitLeadingCommentsOfPosition(node.body.statements.end); decreaseIndent(); emitToken(14 /* CloseBraceToken */, node.body.statements.end); @@ -7549,7 +8583,7 @@ var ts; function findInitialSuperCall(ctor) { if (ctor.body) { var statement = ctor.body.statements[0]; - if (statement && statement.kind === 164 /* ExpressionStatement */) { + if (statement && statement.kind === 165 /* ExpressionStatement */) { var expr = statement.expression; if (expr && expr.kind === 147 /* CallExpression */) { var func = expr.func; @@ -7800,7 +8834,7 @@ var ts; emitPinnedOrTripleSlashComments(node); } function emitEnumDeclaration(node) { - var isConstEnum = ts.isConstEnumDeclaration(node); + var isConstEnum = ts.isConst(node); if (isConstEnum && !compilerOptions.preserveConstEnums) { return; } @@ -7869,7 +8903,7 @@ var ts; } } function getInnerMostModuleDeclarationFromDottedModule(moduleDeclaration) { - if (moduleDeclaration.body.kind === 191 /* ModuleDeclaration */) { + if (moduleDeclaration.body.kind === 192 /* ModuleDeclaration */) { var recursiveInnerModule = getInnerMostModuleDeclarationFromDottedModule(moduleDeclaration.body); return recursiveInnerModule || moduleDeclaration.body; } @@ -7891,7 +8925,7 @@ var ts; write(resolver.getLocalNameOfContainer(node)); emitEnd(node.name); write(") "); - if (node.body.kind === 192 /* ModuleBlock */) { + if (node.body.kind === 193 /* ModuleBlock */) { emit(node.body); } else { @@ -7925,7 +8959,7 @@ var ts; emitImportDeclaration = !ts.isExternalModule(currentSourceFile) && resolver.isTopLevelValueImportWithEntityName(node); } if (emitImportDeclaration) { - if (node.externalModuleName && node.parent.kind === 196 /* SourceFile */ && compilerOptions.module === 2 /* AMD */) { + if (node.externalModuleName && node.parent.kind === 197 /* SourceFile */ && compilerOptions.module === 2 /* AMD */) { if (node.flags & 1 /* Export */) { writeLine(); emitLeadingComments(node); @@ -7965,7 +8999,7 @@ var ts; function getExternalImportDeclarations(node) { var result = []; ts.forEach(node.statements, function (stat) { - if (stat.kind === 193 /* ImportDeclaration */ && stat.externalModuleName && resolver.isReferencedImportDeclaration(stat)) { + if (stat.kind === 194 /* ImportDeclaration */ && stat.externalModuleName && resolver.isReferencedImportDeclaration(stat)) { result.push(stat); } }); @@ -7973,7 +9007,7 @@ var ts; } function getFirstExportAssignment(sourceFile) { return ts.forEach(sourceFile.statements, function (node) { - if (node.kind === 194 /* ExportAssignment */) { + if (node.kind === 195 /* ExportAssignment */) { return node; } }); @@ -8146,7 +9180,7 @@ var ts; return emit(node.operand); case 151 /* ParenExpression */: return emitParenExpression(node); - case 185 /* FunctionDeclaration */: + case 186 /* FunctionDeclaration */: case 152 /* FunctionExpression */: case 153 /* ArrowFunction */: return emitFunctionDeclaration(node); @@ -8157,65 +9191,65 @@ var ts; return emitBinaryExpression(node); case 157 /* ConditionalExpression */: return emitConditionalExpression(node); - case 160 /* OmittedExpression */: + case 161 /* OmittedExpression */: return; - case 161 /* Block */: - case 180 /* TryBlock */: - case 182 /* FinallyBlock */: - case 186 /* FunctionBlock */: - case 192 /* ModuleBlock */: + case 162 /* Block */: + case 181 /* TryBlock */: + case 183 /* FinallyBlock */: + case 187 /* FunctionBlock */: + case 193 /* ModuleBlock */: return emitBlock(node); - case 162 /* VariableStatement */: + case 163 /* VariableStatement */: return emitVariableStatement(node); - case 163 /* EmptyStatement */: + case 164 /* EmptyStatement */: return write(";"); - case 164 /* ExpressionStatement */: + case 165 /* ExpressionStatement */: return emitExpressionStatement(node); - case 165 /* IfStatement */: + case 166 /* IfStatement */: return emitIfStatement(node); - case 166 /* DoStatement */: + case 167 /* DoStatement */: return emitDoStatement(node); - case 167 /* WhileStatement */: + case 168 /* WhileStatement */: return emitWhileStatement(node); - case 168 /* ForStatement */: + case 169 /* ForStatement */: return emitForStatement(node); - case 169 /* ForInStatement */: + case 170 /* ForInStatement */: return emitForInStatement(node); - case 170 /* ContinueStatement */: - case 171 /* BreakStatement */: + case 171 /* ContinueStatement */: + case 172 /* BreakStatement */: return emitBreakOrContinueStatement(node); - case 172 /* ReturnStatement */: + case 173 /* ReturnStatement */: return emitReturnStatement(node); - case 173 /* WithStatement */: + case 174 /* WithStatement */: return emitWithStatement(node); - case 174 /* SwitchStatement */: + case 175 /* SwitchStatement */: return emitSwitchStatement(node); - case 175 /* CaseClause */: - case 176 /* DefaultClause */: + case 176 /* CaseClause */: + case 177 /* DefaultClause */: return emitCaseOrDefaultClause(node); - case 177 /* LabeledStatement */: + case 178 /* LabeledStatement */: return emitLabelledStatement(node); - case 178 /* ThrowStatement */: + case 179 /* ThrowStatement */: return emitThrowStatement(node); - case 179 /* TryStatement */: + case 180 /* TryStatement */: return emitTryStatement(node); - case 181 /* CatchBlock */: + case 182 /* CatchBlock */: return emitCatchBlock(node); - case 183 /* DebuggerStatement */: + case 184 /* DebuggerStatement */: return emitDebuggerStatement(node); - case 184 /* VariableDeclaration */: + case 185 /* VariableDeclaration */: return emitVariableDeclaration(node); - case 187 /* ClassDeclaration */: + case 188 /* ClassDeclaration */: return emitClassDeclaration(node); - case 188 /* InterfaceDeclaration */: + case 189 /* InterfaceDeclaration */: return emitInterfaceDeclaration(node); - case 190 /* EnumDeclaration */: + case 191 /* EnumDeclaration */: return emitEnumDeclaration(node); - case 191 /* ModuleDeclaration */: + case 192 /* ModuleDeclaration */: return emitModuleDeclaration(node); - case 193 /* ImportDeclaration */: + case 194 /* ImportDeclaration */: return emitImportDeclaration(node); - case 196 /* SourceFile */: + case 197 /* SourceFile */: return emitSourceFile(node); } } @@ -8233,7 +9267,7 @@ var ts; return leadingComments; } function getLeadingCommentsToEmit(node) { - if (node.parent.kind === 196 /* SourceFile */ || node.pos !== node.parent.pos) { + if (node.parent.kind === 197 /* SourceFile */ || node.pos !== node.parent.pos) { var leadingComments; if (hasDetachedComments(node.pos)) { leadingComments = getLeadingCommentsWithoutDetachedComments(); @@ -8246,13 +9280,13 @@ var ts; } function emitLeadingDeclarationComments(node) { var leadingComments = getLeadingCommentsToEmit(node); - emitNewLineBeforeLeadingComments(node, leadingComments, writer); - emitComments(leadingComments, true, writer, writeComment); + emitNewLineBeforeLeadingComments(currentSourceFile, writer, node, leadingComments); + emitComments(currentSourceFile, writer, leadingComments, true, newLine, writeComment); } function emitTrailingDeclarationComments(node) { - if (node.parent.kind === 196 /* SourceFile */ || node.end !== node.parent.end) { + if (node.parent.kind === 197 /* SourceFile */ || node.end !== node.parent.end) { var trailingComments = ts.getTrailingCommentRanges(currentSourceFile.text, node.end); - emitComments(trailingComments, false, writer, writeComment); + emitComments(currentSourceFile, writer, trailingComments, false, newLine, writeComment); } } function emitLeadingCommentsOfLocalPosition(pos) { @@ -8263,8 +9297,8 @@ var ts; else { leadingComments = ts.getLeadingCommentRanges(currentSourceFile.text, pos); } - emitNewLineBeforeLeadingComments({ pos: pos, end: pos }, leadingComments, writer); - emitComments(leadingComments, true, writer, writeComment); + emitNewLineBeforeLeadingComments(currentSourceFile, writer, { pos: pos, end: pos }, leadingComments); + emitComments(currentSourceFile, writer, leadingComments, true, newLine, writeComment); } function emitDetachedCommentsAtPosition(node) { var leadingComments = ts.getLeadingCommentRanges(currentSourceFile.text, node.pos); @@ -8273,8 +9307,8 @@ var ts; var lastComment; ts.forEach(leadingComments, function (comment) { if (lastComment) { - var lastCommentLine = getLineOfLocalPosition(lastComment.end); - var commentLine = getLineOfLocalPosition(comment.pos); + var lastCommentLine = getLineOfLocalPosition(currentSourceFile, lastComment.end); + var commentLine = getLineOfLocalPosition(currentSourceFile, comment.pos); if (commentLine >= lastCommentLine + 2) { return detachedComments; } @@ -8283,11 +9317,11 @@ var ts; lastComment = comment; }); if (detachedComments.length) { - var lastCommentLine = getLineOfLocalPosition(detachedComments[detachedComments.length - 1].end); - var astLine = getLineOfLocalPosition(ts.skipTrivia(currentSourceFile.text, node.pos)); + var lastCommentLine = getLineOfLocalPosition(currentSourceFile, detachedComments[detachedComments.length - 1].end); + var astLine = getLineOfLocalPosition(currentSourceFile, ts.skipTrivia(currentSourceFile.text, node.pos)); if (astLine >= lastCommentLine + 2) { - emitNewLineBeforeLeadingComments(node, leadingComments, writer); - emitComments(detachedComments, true, writer, writeComment); + emitNewLineBeforeLeadingComments(currentSourceFile, writer, node, leadingComments); + emitComments(currentSourceFile, writer, detachedComments, true, newLine, writeComment); var currentDetachedCommentInfo = { nodePos: node.pos, detachedCommentEndPos: detachedComments[detachedComments.length - 1].end }; if (detachedCommentsInfo) { detachedCommentsInfo.push(currentDetachedCommentInfo); @@ -8309,8 +9343,8 @@ var ts; return true; } } - emitNewLineBeforeLeadingComments(node, pinnedComments, writer); - emitComments(pinnedComments, true, writer, writeComment); + emitNewLineBeforeLeadingComments(currentSourceFile, writer, node, pinnedComments); + emitComments(currentSourceFile, writer, pinnedComments, true, newLine, writeComment); } if (compilerOptions.sourceMap) { initializeEmitterWithSourceMaps(); @@ -8328,722 +9362,20 @@ var ts; writeLine(); writeEmittedFiles(writer.getText(), compilerOptions.emitBOM); } - function emitDeclarations(jsFilePath, root) { - var writer = createTextWriterWithSymbolWriter(); - var write = writer.write; - var writeLine = writer.writeLine; - var increaseIndent = writer.increaseIndent; - var decreaseIndent = writer.decreaseIndent; - var enclosingDeclaration; - var reportedDeclarationError = false; - var emitJsDocComments = compilerOptions.removeComments ? function (declaration) { - } : writeJsDocComments; - var aliasDeclarationEmitInfo = []; - var getSymbolVisibilityDiagnosticMessage; - function createTextWriterWithSymbolWriter() { - var writer = createTextWriter(); - 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; - return writer; - } - function writeAsychronousImportDeclarations(importDeclarations) { - var oldWriter = writer; - ts.forEach(importDeclarations, function (aliasToWrite) { - var aliasEmitInfo = ts.forEach(aliasDeclarationEmitInfo, function (declEmitInfo) { return declEmitInfo.declaration === aliasToWrite ? declEmitInfo : undefined; }); - writer = createTextWriterWithSymbolWriter(); - for (var declarationIndent = aliasEmitInfo.indent; declarationIndent; declarationIndent--) { - writer.increaseIndent(); - } - writeImportDeclaration(aliasToWrite); - aliasEmitInfo.asynchronousOutput = writer.getText(); - }); - writer = oldWriter; - } - function trackSymbol(symbol, enclosingDeclaration, meaning) { - var symbolAccesibilityResult = resolver.isSymbolAccessible(symbol, enclosingDeclaration, meaning); - if (symbolAccesibilityResult.accessibility === 0 /* Accessible */) { - if (symbolAccesibilityResult && symbolAccesibilityResult.aliasesToMakeVisible) { - writeAsychronousImportDeclarations(symbolAccesibilityResult.aliasesToMakeVisible); - } - } - else { - reportedDeclarationError = true; - var errorInfo = getSymbolVisibilityDiagnosticMessage(symbolAccesibilityResult); - if (errorInfo) { - if (errorInfo.typeName) { - diagnostics.push(ts.createDiagnosticForNode(errorInfo.errorNode, errorInfo.diagnosticMessage, getSourceTextOfLocalNode(errorInfo.typeName), symbolAccesibilityResult.errorSymbolName, symbolAccesibilityResult.errorModuleName)); - } - else { - diagnostics.push(ts.createDiagnosticForNode(errorInfo.errorNode, errorInfo.diagnosticMessage, symbolAccesibilityResult.errorSymbolName, symbolAccesibilityResult.errorModuleName)); - } - } - } - } - function emitLines(nodes) { - for (var i = 0, n = nodes.length; i < n; i++) { - emitNode(nodes[i]); - } - } - function emitCommaList(nodes, eachNodeEmitFn) { - var currentWriterPos = writer.getTextPos(); - for (var i = 0, n = nodes.length; i < n; i++) { - if (currentWriterPos !== writer.getTextPos()) { - write(", "); - } - currentWriterPos = writer.getTextPos(); - eachNodeEmitFn(nodes[i]); - } - } - function writeJsDocComments(declaration) { - if (declaration) { - var jsDocComments = ts.getJsDocComments(declaration, currentSourceFile); - emitNewLineBeforeLeadingComments(declaration, jsDocComments, writer); - emitComments(jsDocComments, true, writer, writeCommentRange); - } - } - function emitSourceTextOfNode(node) { - write(getSourceTextOfLocalNode(node)); - } - function emitSourceFile(node) { - currentSourceFile = node; - enclosingDeclaration = node; - emitLines(node.statements); - } - function emitExportAssignment(node) { - write("export = "); - emitSourceTextOfNode(node.exportName); - write(";"); - writeLine(); - } - function emitDeclarationFlags(node) { - if (node.flags & 128 /* Static */) { - if (node.flags & 32 /* Private */) { - write("private "); - } - else if (node.flags & 64 /* Protected */) { - write("protected "); - } - write("static "); - } - else { - if (node.flags & 32 /* Private */) { - write("private "); - } - else if (node.flags & 64 /* Protected */) { - write("protected "); - } - else if (node.parent === currentSourceFile) { - if (node.flags & 1 /* Export */) { - write("export "); - } - if (node.kind !== 188 /* InterfaceDeclaration */) { - write("declare "); - } - } - } - } - function emitImportDeclaration(node) { - var nodeEmitInfo = { - declaration: node, - outputPos: writer.getTextPos(), - indent: writer.getIndent(), - hasWritten: resolver.isDeclarationVisible(node) - }; - aliasDeclarationEmitInfo.push(nodeEmitInfo); - if (nodeEmitInfo.hasWritten) { - writeImportDeclaration(node); - } - } - function writeImportDeclaration(node) { - emitJsDocComments(node); - if (node.flags & 1 /* Export */) { - writer.write("export "); - } - writer.write("import "); - writer.write(getSourceTextOfLocalNode(node.name)); - writer.write(" = "); - if (node.entityName) { - checkEntityNameAccessible(); - writer.write(getSourceTextOfLocalNode(node.entityName)); - writer.write(";"); - } - else { - writer.write("require("); - writer.write(getSourceTextOfLocalNode(node.externalModuleName)); - writer.write(");"); - } - writer.writeLine(); - function checkEntityNameAccessible() { - var symbolAccesibilityResult = resolver.isImportDeclarationEntityNameReferenceDeclarationVisibile(node.entityName); - if (symbolAccesibilityResult.accessibility === 0 /* Accessible */) { - if (symbolAccesibilityResult.aliasesToMakeVisible) { - writeAsychronousImportDeclarations(symbolAccesibilityResult.aliasesToMakeVisible); - } - } - else { - reportedDeclarationError = true; - diagnostics.push(ts.createDiagnosticForNode(node, ts.Diagnostics.Import_declaration_0_is_using_private_name_1, getSourceTextOfLocalNode(node.name), symbolAccesibilityResult.errorSymbolName)); - } - } - } - function emitModuleDeclaration(node) { - if (resolver.isDeclarationVisible(node)) { - emitJsDocComments(node); - emitDeclarationFlags(node); - write("module "); - emitSourceTextOfNode(node.name); - while (node.body.kind !== 192 /* ModuleBlock */) { - node = node.body; - write("."); - emitSourceTextOfNode(node.name); - } - var prevEnclosingDeclaration = enclosingDeclaration; - enclosingDeclaration = node; - write(" {"); - writeLine(); - increaseIndent(); - emitLines(node.body.statements); - decreaseIndent(); - write("}"); - writeLine(); - enclosingDeclaration = prevEnclosingDeclaration; - } - } - function emitTypeAliasDeclaration(node) { - if (resolver.isDeclarationVisible(node)) { - emitJsDocComments(node); - emitDeclarationFlags(node); - write("type "); - emitSourceTextOfNode(node.name); - write(" = "); - getSymbolVisibilityDiagnosticMessage = getTypeAliasDeclarationVisibilityError; - resolver.writeTypeAtLocation(node.type, enclosingDeclaration, 2 /* UseTypeOfFunction */, writer); - write(";"); - writeLine(); - } - function getTypeAliasDeclarationVisibilityError(symbolAccesibilityResult) { - var diagnosticMessage = symbolAccesibilityResult.errorModuleName ? symbolAccesibilityResult.accessibility === 2 /* CannotBeNamed */ ? ts.Diagnostics.Exported_type_alias_0_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named : ts.Diagnostics.Exported_type_alias_0_has_or_is_using_name_1_from_private_module_2 : ts.Diagnostics.Exported_type_alias_0_has_or_is_using_private_name_1; - return { - diagnosticMessage: diagnosticMessage, - errorNode: node, - typeName: node.name - }; - } - } - function emitEnumDeclaration(node) { - if (resolver.isDeclarationVisible(node)) { - emitJsDocComments(node); - emitDeclarationFlags(node); - if (ts.isConstEnumDeclaration(node)) { - write("const "); - } - write("enum "); - emitSourceTextOfNode(node.name); - write(" {"); - writeLine(); - increaseIndent(); - emitLines(node.members); - decreaseIndent(); - write("}"); - writeLine(); - } - } - function emitEnumMemberDeclaration(node) { - emitJsDocComments(node); - emitSourceTextOfNode(node.name); - var enumMemberValue = resolver.getEnumMemberValue(node); - if (enumMemberValue !== undefined) { - write(" = "); - write(enumMemberValue.toString()); - } - write(","); - writeLine(); - } - function emitTypeParameters(typeParameters) { - function emitTypeParameter(node) { - function getTypeParameterConstraintVisibilityError(symbolAccesibilityResult) { - var diagnosticMessage; - switch (node.parent.kind) { - case 187 /* ClassDeclaration */: - diagnosticMessage = symbolAccesibilityResult.errorModuleName ? ts.Diagnostics.Type_parameter_0_of_exported_class_has_or_is_using_name_1_from_private_module_2 : ts.Diagnostics.Type_parameter_0_of_exported_class_has_or_is_using_private_name_1; - break; - case 188 /* InterfaceDeclaration */: - diagnosticMessage = symbolAccesibilityResult.errorModuleName ? ts.Diagnostics.Type_parameter_0_of_exported_interface_has_or_is_using_name_1_from_private_module_2 : ts.Diagnostics.Type_parameter_0_of_exported_interface_has_or_is_using_private_name_1; - break; - case 130 /* ConstructSignature */: - diagnosticMessage = symbolAccesibilityResult.errorModuleName ? ts.Diagnostics.Type_parameter_0_of_constructor_signature_from_exported_interface_has_or_is_using_name_1_from_private_module_2 : ts.Diagnostics.Type_parameter_0_of_constructor_signature_from_exported_interface_has_or_is_using_private_name_1; - break; - case 129 /* CallSignature */: - diagnosticMessage = symbolAccesibilityResult.errorModuleName ? ts.Diagnostics.Type_parameter_0_of_call_signature_from_exported_interface_has_or_is_using_name_1_from_private_module_2 : ts.Diagnostics.Type_parameter_0_of_call_signature_from_exported_interface_has_or_is_using_private_name_1; - break; - case 125 /* Method */: - if (node.parent.flags & 128 /* Static */) { - diagnosticMessage = symbolAccesibilityResult.errorModuleName ? ts.Diagnostics.Type_parameter_0_of_public_static_method_from_exported_class_has_or_is_using_name_1_from_private_module_2 : 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 === 187 /* ClassDeclaration */) { - diagnosticMessage = symbolAccesibilityResult.errorModuleName ? ts.Diagnostics.Type_parameter_0_of_public_method_from_exported_class_has_or_is_using_name_1_from_private_module_2 : ts.Diagnostics.Type_parameter_0_of_public_method_from_exported_class_has_or_is_using_private_name_1; - } - else { - diagnosticMessage = symbolAccesibilityResult.errorModuleName ? ts.Diagnostics.Type_parameter_0_of_method_from_exported_interface_has_or_is_using_name_1_from_private_module_2 : ts.Diagnostics.Type_parameter_0_of_method_from_exported_interface_has_or_is_using_private_name_1; - } - break; - case 185 /* FunctionDeclaration */: - diagnosticMessage = symbolAccesibilityResult.errorModuleName ? ts.Diagnostics.Type_parameter_0_of_exported_function_has_or_is_using_name_1_from_private_module_2 : 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 - }; - } - increaseIndent(); - emitJsDocComments(node); - decreaseIndent(); - emitSourceTextOfNode(node.name); - if (node.constraint && (node.parent.kind !== 125 /* Method */ || !(node.parent.flags & 32 /* Private */))) { - write(" extends "); - getSymbolVisibilityDiagnosticMessage = getTypeParameterConstraintVisibilityError; - resolver.writeTypeAtLocation(node.constraint, enclosingDeclaration, 2 /* UseTypeOfFunction */, writer); - } - } - if (typeParameters) { - write("<"); - emitCommaList(typeParameters, emitTypeParameter); - write(">"); - } - } - function emitHeritageClause(typeReferences, isImplementsList) { - if (typeReferences) { - write(isImplementsList ? " implements " : " extends "); - emitCommaList(typeReferences, emitTypeOfTypeReference); - } - function emitTypeOfTypeReference(node) { - getSymbolVisibilityDiagnosticMessage = getHeritageClauseVisibilityError; - resolver.writeTypeAtLocation(node, enclosingDeclaration, 1 /* WriteArrayAsGenericType */ | 2 /* UseTypeOfFunction */, writer); - function getHeritageClauseVisibilityError(symbolAccesibilityResult) { - var diagnosticMessage; - if (node.parent.kind === 187 /* ClassDeclaration */) { - if (symbolAccesibilityResult.errorModuleName) { - diagnosticMessage = isImplementsList ? ts.Diagnostics.Implements_clause_of_exported_class_0_has_or_is_using_name_1_from_private_module_2 : ts.Diagnostics.Extends_clause_of_exported_class_0_has_or_is_using_name_1_from_private_module_2; - } - else { - 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 { - if (symbolAccesibilityResult.errorModuleName) { - diagnosticMessage = ts.Diagnostics.Extends_clause_of_exported_interface_0_has_or_is_using_name_1_from_private_module_2; - } - 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.name - }; - } - } - } - function emitClassDeclaration(node) { - function emitParameterProperties(constructorDeclaration) { - if (constructorDeclaration) { - ts.forEach(constructorDeclaration.parameters, function (param) { - if (param.flags & 112 /* AccessibilityModifier */) { - emitPropertyDeclaration(param); - } - }); - } - } - if (resolver.isDeclarationVisible(node)) { - emitJsDocComments(node); - emitDeclarationFlags(node); - write("class "); - emitSourceTextOfNode(node.name); - var prevEnclosingDeclaration = enclosingDeclaration; - enclosingDeclaration = node; - emitTypeParameters(node.typeParameters); - if (node.baseType) { - emitHeritageClause([node.baseType], false); - } - emitHeritageClause(node.implementedTypes, true); - write(" {"); - writeLine(); - increaseIndent(); - emitParameterProperties(getFirstConstructorWithBody(node)); - emitLines(node.members); - decreaseIndent(); - write("}"); - writeLine(); - enclosingDeclaration = prevEnclosingDeclaration; - } - } - function emitInterfaceDeclaration(node) { - if (resolver.isDeclarationVisible(node)) { - emitJsDocComments(node); - emitDeclarationFlags(node); - write("interface "); - emitSourceTextOfNode(node.name); - var prevEnclosingDeclaration = enclosingDeclaration; - enclosingDeclaration = node; - emitTypeParameters(node.typeParameters); - emitHeritageClause(node.baseTypes, false); - write(" {"); - writeLine(); - increaseIndent(); - emitLines(node.members); - decreaseIndent(); - write("}"); - writeLine(); - enclosingDeclaration = prevEnclosingDeclaration; - } - } - function emitPropertyDeclaration(node) { - emitJsDocComments(node); - emitDeclarationFlags(node); - emitVariableDeclaration(node); - write(";"); - writeLine(); - } - function emitVariableDeclaration(node) { - if (node.kind !== 184 /* VariableDeclaration */ || resolver.isDeclarationVisible(node)) { - emitSourceTextOfNode(node.name); - if (node.kind === 124 /* Property */ && (node.flags & 4 /* QuestionMark */)) { - write("?"); - } - if (!(node.flags & 32 /* Private */)) { - write(": "); - getSymbolVisibilityDiagnosticMessage = getVariableDeclarationTypeVisibilityError; - resolver.writeTypeAtLocation(node, enclosingDeclaration, 2 /* UseTypeOfFunction */, writer); - } - } - function getVariableDeclarationTypeVisibilityError(symbolAccesibilityResult) { - var diagnosticMessage; - if (node.kind === 184 /* VariableDeclaration */) { - diagnosticMessage = symbolAccesibilityResult.errorModuleName ? symbolAccesibilityResult.accessibility === 2 /* CannotBeNamed */ ? 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 === 124 /* Property */) { - if (node.flags & 128 /* Static */) { - diagnosticMessage = symbolAccesibilityResult.errorModuleName ? symbolAccesibilityResult.accessibility === 2 /* CannotBeNamed */ ? 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 === 187 /* ClassDeclaration */) { - diagnosticMessage = symbolAccesibilityResult.errorModuleName ? symbolAccesibilityResult.accessibility === 2 /* CannotBeNamed */ ? 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 { - diagnosticMessage = 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; - } - } - return diagnosticMessage !== undefined ? { - diagnosticMessage: diagnosticMessage, - errorNode: node, - typeName: node.name - } : undefined; - } - } - function emitVariableStatement(node) { - var hasDeclarationWithEmit = ts.forEach(node.declarations, function (varDeclaration) { return resolver.isDeclarationVisible(varDeclaration); }); - if (hasDeclarationWithEmit) { - emitJsDocComments(node); - emitDeclarationFlags(node); - if (node.flags & 2048 /* Let */) { - write("let "); - } - else if (node.flags & 4096 /* Const */) { - write("const "); - } - else { - write("var "); - } - emitCommaList(node.declarations, emitVariableDeclaration); - write(";"); - writeLine(); - } - } - function emitAccessorDeclaration(node) { - var accessors = getAllAccessorDeclarations(node.parent, node); - if (node === accessors.firstAccessor) { - emitJsDocComments(accessors.getAccessor); - emitJsDocComments(accessors.setAccessor); - emitDeclarationFlags(node); - emitSourceTextOfNode(node.name); - if (!(node.flags & 32 /* Private */)) { - write(": "); - getSymbolVisibilityDiagnosticMessage = getAccessorDeclarationTypeVisibilityError; - resolver.writeTypeAtLocation(node, enclosingDeclaration, 2 /* UseTypeOfFunction */, writer); - } - write(";"); - writeLine(); - } - function getAccessorDeclarationTypeVisibilityError(symbolAccesibilityResult) { - var diagnosticMessage; - if (node.kind === 128 /* SetAccessor */) { - if (node.parent.flags & 128 /* Static */) { - 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: node.parameters[0], - typeName: node.name - }; - } - else { - if (node.flags & 128 /* Static */) { - diagnosticMessage = symbolAccesibilityResult.errorModuleName ? symbolAccesibilityResult.accessibility === 2 /* CannotBeNamed */ ? 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 /* CannotBeNamed */ ? 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: node.name, - typeName: undefined - }; - } - } - } - function emitFunctionDeclaration(node) { - if ((node.kind !== 185 /* FunctionDeclaration */ || resolver.isDeclarationVisible(node)) && !resolver.isImplementationOfOverload(node)) { - emitJsDocComments(node); - emitDeclarationFlags(node); - if (node.kind === 185 /* FunctionDeclaration */) { - write("function "); - emitSourceTextOfNode(node.name); - } - else if (node.kind === 126 /* Constructor */) { - write("constructor"); - } - else { - emitSourceTextOfNode(node.name); - if (node.flags & 4 /* QuestionMark */) { - write("?"); - } - } - emitSignatureDeclaration(node); - } - } - function emitConstructSignatureDeclaration(node) { - emitJsDocComments(node); - write("new "); - emitSignatureDeclaration(node); - } - function emitSignatureDeclaration(node) { - if (node.kind === 129 /* CallSignature */ || node.kind === 131 /* IndexSignature */) { - emitJsDocComments(node); - } - emitTypeParameters(node.typeParameters); - if (node.kind === 131 /* IndexSignature */) { - write("["); - } - else { - write("("); - } - emitCommaList(node.parameters, emitParameterDeclaration); - if (node.kind === 131 /* IndexSignature */) { - write("]"); - } - else { - write(")"); - } - if (node.kind !== 126 /* Constructor */ && !(node.flags & 32 /* Private */)) { - write(": "); - getSymbolVisibilityDiagnosticMessage = getReturnTypeVisibilityError; - resolver.writeReturnTypeOfSignatureDeclaration(node, enclosingDeclaration, 2 /* UseTypeOfFunction */, writer); - } - write(";"); - writeLine(); - function getReturnTypeVisibilityError(symbolAccesibilityResult) { - var diagnosticMessage; - switch (node.kind) { - case 130 /* ConstructSignature */: - 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 129 /* CallSignature */: - 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 131 /* IndexSignature */: - 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 125 /* Method */: - if (node.flags & 128 /* Static */) { - diagnosticMessage = symbolAccesibilityResult.errorModuleName ? symbolAccesibilityResult.accessibility === 2 /* CannotBeNamed */ ? 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 === 187 /* ClassDeclaration */) { - diagnosticMessage = symbolAccesibilityResult.errorModuleName ? symbolAccesibilityResult.accessibility === 2 /* CannotBeNamed */ ? 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 185 /* FunctionDeclaration */: - diagnosticMessage = symbolAccesibilityResult.errorModuleName ? symbolAccesibilityResult.accessibility === 2 /* CannotBeNamed */ ? 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.flags & 8 /* Rest */) { - write("..."); - } - emitSourceTextOfNode(node.name); - if (node.initializer || (node.flags & 4 /* QuestionMark */)) { - write("?"); - } - decreaseIndent(); - if (!(node.parent.flags & 32 /* Private */)) { - write(": "); - getSymbolVisibilityDiagnosticMessage = getParameterDeclarationTypeVisibilityError; - resolver.writeTypeAtLocation(node, enclosingDeclaration, 2 /* UseTypeOfFunction */, writer); - } - function getParameterDeclarationTypeVisibilityError(symbolAccesibilityResult) { - var diagnosticMessage; - switch (node.parent.kind) { - case 126 /* Constructor */: - diagnosticMessage = symbolAccesibilityResult.errorModuleName ? symbolAccesibilityResult.accessibility === 2 /* CannotBeNamed */ ? 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 130 /* ConstructSignature */: - 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 129 /* CallSignature */: - 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 125 /* Method */: - if (node.parent.flags & 128 /* Static */) { - diagnosticMessage = symbolAccesibilityResult.errorModuleName ? symbolAccesibilityResult.accessibility === 2 /* CannotBeNamed */ ? 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 === 187 /* ClassDeclaration */) { - diagnosticMessage = symbolAccesibilityResult.errorModuleName ? symbolAccesibilityResult.accessibility === 2 /* CannotBeNamed */ ? 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 185 /* FunctionDeclaration */: - diagnosticMessage = symbolAccesibilityResult.errorModuleName ? symbolAccesibilityResult.accessibility === 2 /* CannotBeNamed */ ? 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 126 /* Constructor */: - case 185 /* FunctionDeclaration */: - case 125 /* Method */: - return emitFunctionDeclaration(node); - case 130 /* ConstructSignature */: - return emitConstructSignatureDeclaration(node); - case 129 /* CallSignature */: - case 131 /* IndexSignature */: - return emitSignatureDeclaration(node); - case 127 /* GetAccessor */: - case 128 /* SetAccessor */: - return emitAccessorDeclaration(node); - case 162 /* VariableStatement */: - return emitVariableStatement(node); - case 124 /* Property */: - return emitPropertyDeclaration(node); - case 188 /* InterfaceDeclaration */: - return emitInterfaceDeclaration(node); - case 187 /* ClassDeclaration */: - return emitClassDeclaration(node); - case 189 /* TypeAliasDeclaration */: - return emitTypeAliasDeclaration(node); - case 195 /* EnumMember */: - return emitEnumMemberDeclaration(node); - case 190 /* EnumDeclaration */: - return emitEnumDeclaration(node); - case 191 /* ModuleDeclaration */: - return emitModuleDeclaration(node); - case 193 /* ImportDeclaration */: - return emitImportDeclaration(node); - case 194 /* ExportAssignment */: - return emitExportAssignment(node); - case 196 /* SourceFile */: - return emitSourceFile(node); - } - } - function tryResolveScriptReference(sourceFile, reference) { - var referenceFileName = ts.normalizePath(ts.combinePaths(ts.getDirectoryPath(sourceFile.filename), reference.filename)); - return program.getSourceFile(referenceFileName); - } - var referencePathsOutput = ""; - function writeReferencePath(referencedFile) { - var declFileName = referencedFile.flags & 1024 /* DeclarationFile */ ? referencedFile.filename : shouldEmitToOwnFile(referencedFile, compilerOptions) ? getOwnEmitOutputFilePath(referencedFile, ".d.ts") : ts.removeFileExtension(compilerOptions.out) + ".d.ts"; - declFileName = ts.getRelativePathToDirectoryOrUrl(ts.getDirectoryPath(ts.normalizeSlashes(jsFilePath)), declFileName, compilerHost.getCurrentDirectory(), compilerHost.getCanonicalFileName, false); - referencePathsOutput += "/// " + newLine; - } - if (root) { - if (!compilerOptions.noResolve) { - var addedGlobalFileReference = false; - ts.forEach(root.referencedFiles, function (fileReference) { - var referencedFile = tryResolveScriptReference(root, fileReference); - if (referencedFile && ((referencedFile.flags & 1024 /* DeclarationFile */) || shouldEmitToOwnFile(referencedFile, compilerOptions) || !addedGlobalFileReference)) { - writeReferencePath(referencedFile); - if (!isExternalModuleOrDeclarationFile(referencedFile)) { - addedGlobalFileReference = true; - } - } - }); - } - emitNode(root); - } - else { - var emittedReferencedFiles = []; - ts.forEach(program.getSourceFiles(), function (sourceFile) { - if (!isExternalModuleOrDeclarationFile(sourceFile)) { - if (!compilerOptions.noResolve) { - ts.forEach(sourceFile.referencedFiles, function (fileReference) { - var referencedFile = tryResolveScriptReference(sourceFile, fileReference); - if (referencedFile && (isExternalModuleOrDeclarationFile(referencedFile) && !ts.contains(emittedReferencedFiles, referencedFile))) { - writeReferencePath(referencedFile); - emittedReferencedFiles.push(referencedFile); - } - }); - } - emitNode(sourceFile); - } - }); - } - if (!reportedDeclarationError) { - var declarationOutput = referencePathsOutput; - var synchronousDeclarationOutput = writer.getText(); + function writeDeclarationFile(jsFilePath, sourceFile) { + var emitDeclarationResult = emitDeclarations(program, resolver, diagnostics, jsFilePath, sourceFile); + if (!emitDeclarationResult.reportedDeclarationError) { + var declarationOutput = emitDeclarationResult.referencePathsOutput; var appliedSyncOutputPos = 0; - ts.forEach(aliasDeclarationEmitInfo, function (aliasEmitInfo) { + ts.forEach(emitDeclarationResult.aliasDeclarationEmitInfo, function (aliasEmitInfo) { if (aliasEmitInfo.asynchronousOutput) { - declarationOutput += synchronousDeclarationOutput.substring(appliedSyncOutputPos, aliasEmitInfo.outputPos); + declarationOutput += emitDeclarationResult.synchronousDeclarationOutput.substring(appliedSyncOutputPos, aliasEmitInfo.outputPos); declarationOutput += aliasEmitInfo.asynchronousOutput; appliedSyncOutputPos = aliasEmitInfo.outputPos; } }); - declarationOutput += synchronousDeclarationOutput.substring(appliedSyncOutputPos); - writeFile(ts.removeFileExtension(jsFilePath) + ".d.ts", declarationOutput, compilerOptions.emitBOM); + declarationOutput += emitDeclarationResult.synchronousDeclarationOutput.substring(appliedSyncOutputPos); + writeFile(compilerHost, diagnostics, ts.removeFileExtension(jsFilePath) + ".d.ts", declarationOutput, compilerOptions.emitBOM); } } var hasSemanticErrors = resolver.hasSemanticErrors(); @@ -9052,14 +9384,14 @@ var ts; if (!isEmitBlocked) { emitJavaScript(jsFilePath, sourceFile); if (!hasSemanticErrors && compilerOptions.declaration) { - emitDeclarations(jsFilePath, sourceFile); + writeDeclarationFile(jsFilePath, sourceFile); } } } if (targetSourceFile === undefined) { ts.forEach(program.getSourceFiles(), function (sourceFile) { if (shouldEmitToOwnFile(sourceFile, compilerOptions)) { - var jsFilePath = getOwnEmitOutputFilePath(sourceFile, ".js"); + var jsFilePath = getOwnEmitOutputFilePath(sourceFile, program, ".js"); emitFile(jsFilePath, sourceFile); } }); @@ -9069,7 +9401,7 @@ var ts; } else { if (shouldEmitToOwnFile(targetSourceFile, compilerOptions)) { - var jsFilePath = getOwnEmitOutputFilePath(targetSourceFile, ".js"); + var jsFilePath = getOwnEmitOutputFilePath(targetSourceFile, program, ".js"); emitFile(jsFilePath, targetSourceFile); } else if (!ts.isDeclarationFile(targetSourceFile) && compilerOptions.out) { @@ -9162,10 +9494,11 @@ var ts; getTypeCount: function () { return typeCount; }, isUndefinedSymbol: function (symbol) { return symbol === undefinedSymbol; }, isArgumentsSymbol: function (symbol) { return symbol === argumentsSymbol; }, + emitFiles: invokeEmitter, getDiagnostics: getDiagnostics, + getDeclarationDiagnostics: getDeclarationDiagnostics, getGlobalDiagnostics: getGlobalDiagnostics, checkProgram: checkProgram, - invokeEmitter: invokeEmitter, getParentOfSymbol: getParentOfSymbol, getNarrowedTypeOfSymbol: getNarrowedTypeOfSymbol, getDeclaredTypeOfSymbol: getDeclaredTypeOfSymbol, @@ -9371,10 +9704,10 @@ var ts; return nodeLinks[node.id] || (nodeLinks[node.id] = {}); } function getSourceFile(node) { - return ts.getAncestor(node, 196 /* SourceFile */); + return ts.getAncestor(node, 197 /* SourceFile */); } function isGlobalSourceFile(node) { - return node.kind === 196 /* SourceFile */ && !ts.isExternalModule(node); + return node.kind === 197 /* SourceFile */ && !ts.isExternalModule(node); } function getSymbol(symbols, name, meaning) { if (meaning && ts.hasProperty(symbols, name)) { @@ -9415,21 +9748,21 @@ var ts; } } switch (location.kind) { - case 196 /* SourceFile */: + case 197 /* SourceFile */: if (!ts.isExternalModule(location)) break; - case 191 /* ModuleDeclaration */: + case 192 /* ModuleDeclaration */: if (result = getSymbol(getSymbolOfNode(location).exports, name, meaning & 35653619 /* ModuleMember */)) { break loop; } break; - case 190 /* EnumDeclaration */: + case 191 /* EnumDeclaration */: if (result = getSymbol(getSymbolOfNode(location).exports, name, meaning & 8 /* EnumMember */)) { break loop; } break; case 124 /* Property */: - if (location.parent.kind === 187 /* ClassDeclaration */ && !(location.flags & 128 /* Static */)) { + if (location.parent.kind === 188 /* ClassDeclaration */ && !(location.flags & 128 /* Static */)) { var ctor = findConstructorDeclaration(location.parent); if (ctor && ctor.locals) { if (getSymbol(ctor.locals, name, meaning & 107455 /* Value */)) { @@ -9438,8 +9771,8 @@ var ts; } } break; - case 187 /* ClassDeclaration */: - case 188 /* InterfaceDeclaration */: + case 188 /* ClassDeclaration */: + case 189 /* InterfaceDeclaration */: if (result = getSymbol(getSymbolOfNode(location).members, name, meaning & 3152352 /* Type */)) { if (lastLocation && lastLocation.flags & 128 /* Static */) { error(errorLocation, ts.Diagnostics.Static_members_cannot_reference_class_type_parameters); @@ -9452,7 +9785,7 @@ var ts; case 126 /* Constructor */: case 127 /* GetAccessor */: case 128 /* SetAccessor */: - case 185 /* FunctionDeclaration */: + case 186 /* FunctionDeclaration */: case 153 /* ArrowFunction */: if (name === "arguments") { result = argumentsSymbol; @@ -9470,7 +9803,7 @@ var ts; break loop; } break; - case 181 /* CatchBlock */: + case 182 /* CatchBlock */: var id = location.variable; if (name === id.text) { result = location.symbol; @@ -9511,7 +9844,7 @@ var ts; var links = getSymbolLinks(symbol); if (!links.target) { links.target = resolvingSymbol; - var node = getDeclarationOfKind(symbol, 193 /* ImportDeclaration */); + var node = getDeclarationOfKind(symbol, 194 /* ImportDeclaration */); var target = node.externalModuleName ? resolveExternalModuleName(node, node.externalModuleName) : getSymbolOfPartOfRightHandSideOfImport(node.entityName, node); if (links.target === resolvingSymbol) { links.target = target || unknownSymbol; @@ -9527,7 +9860,7 @@ var ts; } function getSymbolOfPartOfRightHandSideOfImport(entityName, importDeclaration) { if (!importDeclaration) { - importDeclaration = ts.getAncestor(entityName, 193 /* ImportDeclaration */); + importDeclaration = ts.getAncestor(entityName, 194 /* ImportDeclaration */); ts.Debug.assert(importDeclaration !== undefined); } if (entityName.kind === 63 /* Identifier */ && isRightSideOfQualifiedNameOrPropertyAccess(entityName)) { @@ -9537,7 +9870,7 @@ var ts; return resolveEntityName(importDeclaration, entityName, 1536 /* Namespace */); } else { - ts.Debug.assert(entityName.parent.kind === 193 /* ImportDeclaration */); + ts.Debug.assert(entityName.parent.kind === 194 /* ImportDeclaration */); return resolveEntityName(importDeclaration, entityName, 107455 /* Value */ | 3152352 /* Type */ | 1536 /* Namespace */); } } @@ -9642,9 +9975,9 @@ var ts; var seenExportedMember = false; var result = []; ts.forEach(symbol.declarations, function (declaration) { - var block = (declaration.kind === 196 /* SourceFile */ ? declaration : declaration.body); + var block = (declaration.kind === 197 /* SourceFile */ ? declaration : declaration.body); ts.forEach(block.statements, function (node) { - if (node.kind === 194 /* ExportAssignment */) { + if (node.kind === 195 /* ExportAssignment */) { result.push(node); } else { @@ -9751,17 +10084,17 @@ var ts; } } switch (location.kind) { - case 196 /* SourceFile */: + case 197 /* SourceFile */: if (!ts.isExternalModule(location)) { break; } - case 191 /* ModuleDeclaration */: + case 192 /* ModuleDeclaration */: if (result = callback(getSymbolOfNode(location).exports)) { return result; } break; - case 187 /* ClassDeclaration */: - case 188 /* InterfaceDeclaration */: + case 188 /* ClassDeclaration */: + case 189 /* InterfaceDeclaration */: if (result = callback(getSymbolOfNode(location).members)) { return result; } @@ -9792,7 +10125,7 @@ var ts; } return ts.forEachValue(symbols, function (symbolFromSymbolTable) { if (symbolFromSymbolTable.flags & 33554432 /* Import */) { - if (!useOnlyExternalAliasing || ts.forEach(symbolFromSymbolTable.declarations, function (declaration) { return declaration.kind === 193 /* ImportDeclaration */ && declaration.externalModuleName; })) { + if (!useOnlyExternalAliasing || ts.forEach(symbolFromSymbolTable.declarations, function (declaration) { return declaration.kind === 194 /* ImportDeclaration */ && declaration.externalModuleName; })) { var resolvedImportedSymbol = resolveImport(symbolFromSymbolTable); if (isAccessible(symbolFromSymbolTable, resolveImport(symbolFromSymbolTable))) { return [symbolFromSymbolTable]; @@ -9843,7 +10176,7 @@ var ts; errorModuleName: symbol !== initialSymbol ? symbolToString(symbol, enclosingDeclaration, 1536 /* Namespace */) : undefined }; } - return { accessibility: 0 /* Accessible */, aliasesToMakeVisible: hasAccessibleDeclarations.aliasesToMakeVisible }; + return hasAccessibleDeclarations; } meaningToLook = getQualifiedLeftMeaning(meaning); symbol = getParentOfSymbol(symbol); @@ -9874,17 +10207,17 @@ var ts; } } function hasExternalModuleSymbol(declaration) { - return (declaration.kind === 191 /* ModuleDeclaration */ && declaration.name.kind === 7 /* StringLiteral */) || (declaration.kind === 196 /* SourceFile */ && ts.isExternalModule(declaration)); + return (declaration.kind === 192 /* ModuleDeclaration */ && declaration.name.kind === 7 /* StringLiteral */) || (declaration.kind === 197 /* SourceFile */ && ts.isExternalModule(declaration)); } function hasVisibleDeclarations(symbol) { var aliasesToMakeVisible; if (ts.forEach(symbol.declarations, function (declaration) { return !getIsDeclarationVisible(declaration); })) { return undefined; } - return { aliasesToMakeVisible: aliasesToMakeVisible }; + return { accessibility: 0 /* Accessible */, aliasesToMakeVisible: aliasesToMakeVisible }; function getIsDeclarationVisible(declaration) { if (!isDeclarationVisible(declaration)) { - if (declaration.kind === 193 /* ImportDeclaration */ && !(declaration.flags & 1 /* Export */) && isDeclarationVisible(declaration.parent)) { + if (declaration.kind === 194 /* ImportDeclaration */ && !(declaration.flags & 1 /* Export */) && isDeclarationVisible(declaration.parent)) { getNodeLinks(declaration).isVisible = true; if (aliasesToMakeVisible) { if (!ts.contains(aliasesToMakeVisible, declaration)) { @@ -9901,11 +10234,24 @@ var ts; return true; } } - function isImportDeclarationEntityNameReferenceDeclarationVisibile(entityName) { + function isEntityNameVisible(entityName, enclosingDeclaration) { + var meaning; + if (entityName.parent.kind === 135 /* TypeQuery */) { + meaning = 107455 /* Value */ | 4194304 /* ExportValue */; + } + else if (entityName.kind === 121 /* QualifiedName */ || entityName.parent.kind === 194 /* ImportDeclaration */) { + meaning = 1536 /* Namespace */; + } + else { + meaning = 3152352 /* Type */; + } var firstIdentifier = getFirstIdentifier(entityName); - var symbolOfNameSpace = resolveName(entityName.parent, firstIdentifier.text, 1536 /* Namespace */, ts.Diagnostics.Cannot_find_name_0, firstIdentifier); - var hasNamespaceDeclarationsVisibile = hasVisibleDeclarations(symbolOfNameSpace); - return hasNamespaceDeclarationsVisibile ? { accessibility: 0 /* Accessible */, aliasesToMakeVisible: hasNamespaceDeclarationsVisibile.aliasesToMakeVisible } : { accessibility: 1 /* NotAccessible */, errorSymbolName: ts.declarationNameToString(firstIdentifier) }; + var symbol = resolveName(enclosingDeclaration, firstIdentifier.text, meaning, undefined, undefined); + return hasVisibleDeclarations(symbol) || { + accessibility: 1 /* NotAccessible */, + errorSymbolName: ts.getTextOfNode(firstIdentifier), + errorNode: firstIdentifier + }; } function releaseStringWriter(writer) { writer.clear(); @@ -9947,7 +10293,7 @@ var ts; while (node.kind === 140 /* ParenType */) { node = node.parent; } - if (node.kind === 189 /* TypeAliasDeclaration */) { + if (node.kind === 190 /* TypeAliasDeclaration */) { return getSymbolOfNode(node); } } @@ -10110,7 +10456,7 @@ var ts; function shouldWriteTypeOfFunctionSymbol() { if (type.symbol) { var isStaticMethodSymbol = !!(type.symbol.flags & 8192 /* Method */ && ts.forEach(type.symbol.declarations, function (declaration) { return declaration.flags & 128 /* Static */; })); - var isNonLocalFunctionSymbol = !!(type.symbol.flags & 16 /* Function */) && (type.symbol.parent || ts.forEach(type.symbol.declarations, function (declaration) { return declaration.parent.kind === 196 /* SourceFile */ || declaration.parent.kind === 192 /* ModuleBlock */; })); + var isNonLocalFunctionSymbol = !!(type.symbol.flags & 16 /* Function */) && (type.symbol.parent || ts.forEach(type.symbol.declarations, function (declaration) { return declaration.parent.kind === 197 /* SourceFile */ || declaration.parent.kind === 193 /* ModuleBlock */; })); if (isStaticMethodSymbol || isNonLocalFunctionSymbol) { return !!(flags & 2 /* UseTypeOfFunction */) || (typeStack && ts.contains(typeStack, type)); } @@ -10329,12 +10675,12 @@ var ts; function isDeclarationVisible(node) { function getContainingExternalModule(node) { for (; node; node = node.parent) { - if (node.kind === 191 /* ModuleDeclaration */) { + if (node.kind === 192 /* ModuleDeclaration */) { if (node.name.kind === 7 /* StringLiteral */) { return node; } } - else if (node.kind === 196 /* SourceFile */) { + else if (node.kind === 197 /* SourceFile */) { return ts.isExternalModule(node) ? node : undefined; } } @@ -10376,16 +10722,16 @@ var ts; } function determineIfDeclarationIsVisible() { switch (node.kind) { - case 184 /* VariableDeclaration */: - case 191 /* ModuleDeclaration */: - case 187 /* ClassDeclaration */: - case 188 /* InterfaceDeclaration */: - case 189 /* TypeAliasDeclaration */: - case 185 /* FunctionDeclaration */: - case 190 /* EnumDeclaration */: - case 193 /* ImportDeclaration */: - var parent = node.kind === 184 /* VariableDeclaration */ ? node.parent.parent : node.parent; - if (!(node.flags & 1 /* Export */) && !(node.kind !== 193 /* ImportDeclaration */ && parent.kind !== 196 /* SourceFile */ && ts.isInAmbientContext(parent))) { + case 185 /* VariableDeclaration */: + case 192 /* ModuleDeclaration */: + case 188 /* ClassDeclaration */: + case 189 /* InterfaceDeclaration */: + case 190 /* TypeAliasDeclaration */: + case 186 /* FunctionDeclaration */: + case 191 /* EnumDeclaration */: + case 194 /* ImportDeclaration */: + var parent = node.kind === 185 /* VariableDeclaration */ ? node.parent.parent : node.parent; + if (!(node.flags & 1 /* Export */) && !(node.kind !== 194 /* ImportDeclaration */ && parent.kind !== 197 /* SourceFile */ && ts.isInAmbientContext(parent))) { return isGlobalSourceFile(parent) || isUsedInExportAssignment(node); } return isDeclarationVisible(parent); @@ -10399,9 +10745,10 @@ var ts; case 129 /* CallSignature */: case 131 /* IndexSignature */: case 123 /* Parameter */: - case 192 /* ModuleBlock */: + case 193 /* ModuleBlock */: + case 122 /* TypeParameter */: return isDeclarationVisible(node.parent); - case 196 /* SourceFile */: + case 197 /* SourceFile */: return true; default: ts.Debug.fail("isDeclarationVisible unknown: SyntaxKind: " + node.kind); @@ -10420,7 +10767,7 @@ var ts; return classType.typeParameters ? createTypeReference(classType, ts.map(classType.typeParameters, function (_) { return anyType; })) : classType; } function getTypeOfVariableOrPropertyDeclaration(declaration) { - if (declaration.parent.kind === 169 /* ForInStatement */) { + if (declaration.parent.kind === 170 /* ForInStatement */) { return anyType; } if (declaration.type) { @@ -10487,7 +10834,7 @@ var ts; return links.type = getTypeOfPrototypeProperty(symbol); } var declaration = symbol.valueDeclaration; - if (declaration.kind === 181 /* CatchBlock */) { + if (declaration.kind === 182 /* CatchBlock */) { return links.type = anyType; } links.type = resolvingType; @@ -10627,7 +10974,7 @@ var ts; function getTypeParametersOfClassOrInterface(symbol) { var result; ts.forEach(symbol.declarations, function (node) { - if (node.kind === 188 /* InterfaceDeclaration */ || node.kind === 187 /* ClassDeclaration */) { + if (node.kind === 189 /* InterfaceDeclaration */ || node.kind === 188 /* ClassDeclaration */) { var declaration = node; if (declaration.typeParameters && declaration.typeParameters.length) { ts.forEach(declaration.typeParameters, function (node) { @@ -10658,7 +11005,7 @@ var ts; type.typeArguments = type.typeParameters; } type.baseTypes = []; - var declaration = getDeclarationOfKind(symbol, 187 /* ClassDeclaration */); + var declaration = getDeclarationOfKind(symbol, 188 /* ClassDeclaration */); if (declaration.baseType) { var baseType = getTypeFromTypeReferenceNode(declaration.baseType); if (baseType !== unknownType) { @@ -10698,7 +11045,7 @@ var ts; } type.baseTypes = []; ts.forEach(symbol.declarations, function (declaration) { - if (declaration.kind === 188 /* InterfaceDeclaration */ && declaration.baseTypes) { + if (declaration.kind === 189 /* InterfaceDeclaration */ && declaration.baseTypes) { ts.forEach(declaration.baseTypes, function (node) { var baseType = getTypeFromTypeReferenceNode(node); if (baseType !== unknownType) { @@ -10729,7 +11076,7 @@ var ts; var links = getSymbolLinks(symbol); if (!links.declaredType) { links.declaredType = resolvingType; - var declaration = getDeclarationOfKind(symbol, 189 /* TypeAliasDeclaration */); + var declaration = getDeclarationOfKind(symbol, 190 /* TypeAliasDeclaration */); var type = getTypeFromTypeNode(declaration.type); if (links.declaredType === resolvingType) { links.declaredType = type; @@ -10737,7 +11084,7 @@ var ts; } else if (links.declaredType === resolvingType) { links.declaredType = unknownType; - var declaration = getDeclarationOfKind(symbol, 189 /* TypeAliasDeclaration */); + var declaration = getDeclarationOfKind(symbol, 190 /* TypeAliasDeclaration */); error(declaration.name, ts.Diagnostics.Type_alias_0_circularly_references_itself, symbolToString(symbol)); } return links.declaredType; @@ -11208,7 +11555,7 @@ var ts; switch (node.kind) { case 133 /* FunctionType */: case 134 /* ConstructorType */: - case 185 /* FunctionDeclaration */: + case 186 /* FunctionDeclaration */: case 125 /* Method */: case 126 /* Constructor */: case 129 /* CallSignature */: @@ -11438,9 +11785,9 @@ var ts; for (var i = 0; i < declarations.length; i++) { var declaration = declarations[i]; switch (declaration.kind) { - case 187 /* ClassDeclaration */: - case 188 /* InterfaceDeclaration */: - case 190 /* EnumDeclaration */: + case 188 /* ClassDeclaration */: + case 189 /* InterfaceDeclaration */: + case 191 /* EnumDeclaration */: return declaration; } } @@ -12749,7 +13096,7 @@ var ts; switch (node.kind) { case 156 /* BinaryExpression */: return isAssignedInBinaryExpression(node); - case 184 /* VariableDeclaration */: + case 185 /* VariableDeclaration */: return isAssignedInVariableDeclaration(node); case 141 /* ArrayLiteral */: case 142 /* ObjectLiteral */: @@ -12762,25 +13109,25 @@ var ts; case 154 /* PrefixOperator */: case 155 /* PostfixOperator */: case 157 /* ConditionalExpression */: - case 161 /* Block */: - case 162 /* VariableStatement */: - case 164 /* ExpressionStatement */: - case 165 /* IfStatement */: - case 166 /* DoStatement */: - case 167 /* WhileStatement */: - case 168 /* ForStatement */: - case 169 /* ForInStatement */: - case 172 /* ReturnStatement */: - case 173 /* WithStatement */: - case 174 /* SwitchStatement */: - case 175 /* CaseClause */: - case 176 /* DefaultClause */: - case 177 /* LabeledStatement */: - case 178 /* ThrowStatement */: - case 179 /* TryStatement */: - case 180 /* TryBlock */: - case 181 /* CatchBlock */: - case 182 /* FinallyBlock */: + case 162 /* Block */: + case 163 /* VariableStatement */: + case 165 /* ExpressionStatement */: + case 166 /* IfStatement */: + case 167 /* DoStatement */: + case 168 /* WhileStatement */: + case 169 /* ForStatement */: + case 170 /* ForInStatement */: + case 173 /* ReturnStatement */: + case 174 /* WithStatement */: + case 175 /* SwitchStatement */: + case 176 /* CaseClause */: + case 177 /* DefaultClause */: + case 178 /* LabeledStatement */: + case 179 /* ThrowStatement */: + case 180 /* TryStatement */: + case 181 /* TryBlock */: + case 182 /* CatchBlock */: + case 183 /* FinallyBlock */: return ts.forEachChild(node, isAssignedIn); } return false; @@ -12794,7 +13141,7 @@ var ts; node = node.parent; var narrowedType = type; switch (node.kind) { - case 165 /* IfStatement */: + case 166 /* IfStatement */: if (child !== node.expression) { narrowedType = narrowType(type, node.expression, child === node.thenStatement); } @@ -12814,9 +13161,9 @@ var ts; } } break; - case 196 /* SourceFile */: - case 191 /* ModuleDeclaration */: - case 185 /* FunctionDeclaration */: + case 197 /* SourceFile */: + case 192 /* ModuleDeclaration */: + case 186 /* FunctionDeclaration */: case 125 /* Method */: case 127 /* GetAccessor */: case 128 /* SetAccessor */: @@ -12926,7 +13273,7 @@ var ts; return getNarrowedTypeOfSymbol(getExportSymbolOfValueSymbolIfExported(symbol), node); } function captureLexicalThis(node, container) { - var classNode = container.parent && container.parent.kind === 187 /* ClassDeclaration */ ? container.parent : undefined; + var classNode = container.parent && container.parent.kind === 188 /* ClassDeclaration */ ? container.parent : undefined; getNodeLinks(node).flags |= 2 /* LexicalThis */; if (container.kind === 124 /* Property */ || container.kind === 126 /* Constructor */) { getNodeLinks(classNode).flags |= 4 /* CaptureThis */; @@ -12943,10 +13290,10 @@ var ts; needToCaptureLexicalThis = true; } switch (container.kind) { - case 191 /* ModuleDeclaration */: + case 192 /* ModuleDeclaration */: error(node, ts.Diagnostics.this_cannot_be_referenced_in_a_module_body); break; - case 190 /* EnumDeclaration */: + case 191 /* EnumDeclaration */: error(node, ts.Diagnostics.this_cannot_be_referenced_in_current_location); break; case 126 /* Constructor */: @@ -12963,7 +13310,7 @@ var ts; if (needToCaptureLexicalThis) { captureLexicalThis(node, container); } - var classNode = container.parent && container.parent.kind === 187 /* ClassDeclaration */ ? container.parent : undefined; + var classNode = container.parent && container.parent.kind === 188 /* ClassDeclaration */ ? container.parent : undefined; if (classNode) { var symbol = getSymbolOfNode(classNode); return container.flags & 128 /* Static */ ? getTypeOfSymbol(symbol) : getDeclaredTypeOfSymbol(symbol); @@ -12976,7 +13323,7 @@ var ts; if (!node) return node; switch (node.kind) { - case 185 /* FunctionDeclaration */: + case 186 /* FunctionDeclaration */: case 152 /* FunctionExpression */: case 153 /* ArrowFunction */: case 124 /* Property */: @@ -12998,7 +13345,7 @@ var ts; } function checkSuperExpression(node) { var isCallExpression = node.parent.kind === 147 /* CallExpression */ && node.parent.func === node; - var enclosingClass = ts.getAncestor(node, 187 /* ClassDeclaration */); + var enclosingClass = ts.getAncestor(node, 188 /* ClassDeclaration */); var baseClass; if (enclosingClass && enclosingClass.baseType) { var classType = getDeclaredTypeOfSymbol(getSymbolOfNode(enclosingClass)); @@ -13020,7 +13367,7 @@ var ts; container = getSuperContainer(container); needToCaptureLexicalThis = true; } - if (container && container.parent && container.parent.kind === 187 /* ClassDeclaration */) { + if (container && container.parent && container.parent.kind === 188 /* ClassDeclaration */) { if (container.flags & 128 /* Static */) { canUseSuperExpression = container.kind === 125 /* Method */ || container.kind === 127 /* GetAccessor */ || container.kind === 128 /* SetAccessor */; } @@ -13198,12 +13545,12 @@ var ts; } var parent = node.parent; switch (parent.kind) { - case 184 /* VariableDeclaration */: + case 185 /* VariableDeclaration */: case 123 /* Parameter */: case 124 /* Property */: return getContextualTypeForInitializerExpression(node); case 153 /* ArrowFunction */: - case 172 /* ReturnStatement */: + case 173 /* ReturnStatement */: return getContextualTypeForReturnExpression(node); case 147 /* CallExpression */: case 148 /* NewExpression */: @@ -13354,7 +13701,7 @@ var ts; if (!(flags & (32 /* Private */ | 64 /* Protected */))) { return; } - var enclosingClassDeclaration = ts.getAncestor(node, 187 /* ClassDeclaration */); + var enclosingClassDeclaration = ts.getAncestor(node, 188 /* ClassDeclaration */); var enclosingClass = enclosingClassDeclaration ? getDeclaredTypeOfSymbol(getSymbolOfNode(enclosingClassDeclaration)) : undefined; var declaringClass = getDeclaredTypeOfSymbol(prop.parent); if (flags & 32 /* Private */) { @@ -13539,7 +13886,7 @@ var ts; var context = createInferenceContext(typeParameters, false); var mapper = createInferenceMapper(context); for (var i = 0; i < args.length; i++) { - if (args[i].kind === 160 /* OmittedExpression */) { + if (args[i].kind === 161 /* OmittedExpression */) { continue; } if (!excludeArgument || excludeArgument[i] === undefined) { @@ -13553,7 +13900,7 @@ var ts; } if (excludeArgument) { for (var i = 0; i < args.length; i++) { - if (args[i].kind === 160 /* OmittedExpression */) { + if (args[i].kind === 161 /* OmittedExpression */) { continue; } if (excludeArgument[i] === false) { @@ -13591,7 +13938,7 @@ var ts; for (var i = 0; i < args.length; i++) { var arg = args[i]; var argType; - if (arg.kind === 160 /* OmittedExpression */) { + if (arg.kind === 161 /* OmittedExpression */) { continue; } var paramType = getTypeAtPosition(signature, i); @@ -13914,7 +14261,7 @@ var ts; } function getReturnTypeFromBody(func, contextualMapper) { var contextualSignature = getContextualSignature(func); - if (func.body.kind !== 186 /* FunctionBlock */) { + if (func.body.kind !== 187 /* FunctionBlock */) { var unwidenedType = checkAndMarkExpression(func.body, contextualMapper); var widenedType = getWidenedType(unwidenedType); if (fullTypeCheck && compilerOptions.noImplicitAny && !contextualSignature && widenedType !== unwidenedType && getInnermostTypeOfNestedArrayTypes(widenedType) === anyType) { @@ -13962,7 +14309,7 @@ var ts; }); } function bodyContainsSingleThrowStatement(body) { - return (body.statements.length === 1) && (body.statements[0].kind === 178 /* ThrowStatement */); + return (body.statements.length === 1) && (body.statements[0].kind === 179 /* ThrowStatement */); } function checkIfNonVoidFunctionHasReturnExpressionsOrSingleThrowStatment(func, returnType) { if (!fullTypeCheck) { @@ -13971,7 +14318,7 @@ var ts; if (returnType === voidType || returnType === anyType) { return; } - if (!func.body || func.body.kind !== 186 /* FunctionBlock */) { + if (!func.body || func.body.kind !== 187 /* FunctionBlock */) { return; } var bodyBlock = func.body; @@ -14015,7 +14362,7 @@ var ts; if (node.type) { checkIfNonVoidFunctionHasReturnExpressionsOrSingleThrowStatment(node, getTypeFromTypeNode(node.type)); } - if (node.body.kind === 186 /* FunctionBlock */) { + if (node.body.kind === 187 /* FunctionBlock */) { checkSourceElement(node.body); } else { @@ -14363,7 +14710,7 @@ var ts; return checkBinaryExpression(node, contextualMapper); case 157 /* ConditionalExpression */: return checkConditionalExpression(node, contextualMapper); - case 160 /* OmittedExpression */: + case 161 /* OmittedExpression */: return undefinedType; } return unknownType; @@ -14443,7 +14790,7 @@ var ts; checkSpecializedSignatureDeclaration(node); } function checkTypeForDuplicateIndexSignatures(node) { - if (node.kind === 188 /* InterfaceDeclaration */) { + if (node.kind === 189 /* InterfaceDeclaration */) { var nodeSymbol = getSymbolOfNode(node); if (nodeSymbol.declarations.length > 0 && nodeSymbol.declarations[0] !== node) { return; @@ -14507,7 +14854,7 @@ var ts; } switch (n.kind) { case 152 /* FunctionExpression */: - case 185 /* FunctionDeclaration */: + case 186 /* FunctionDeclaration */: case 153 /* ArrowFunction */: case 142 /* ObjectLiteral */: return false; default: return ts.forEachChild(n, containsSuperCall); @@ -14517,7 +14864,7 @@ var ts; if (n.kind === 91 /* ThisKeyword */) { error(n, ts.Diagnostics.this_cannot_be_referenced_in_current_location); } - else if (n.kind !== 152 /* FunctionExpression */ && n.kind !== 185 /* FunctionDeclaration */) { + else if (n.kind !== 152 /* FunctionExpression */ && n.kind !== 186 /* FunctionDeclaration */) { ts.forEachChild(n, markThisReferencesAsErrors); } } @@ -14529,7 +14876,7 @@ var ts; var superCallShouldBeFirst = ts.forEach(node.parent.members, isInstancePropertyWithInitializer) || ts.forEach(node.parameters, function (p) { return p.flags & (16 /* Public */ | 32 /* Private */ | 64 /* Protected */); }); if (superCallShouldBeFirst) { var statements = node.body.statements; - if (!statements.length || statements[0].kind !== 164 /* ExpressionStatement */ || !isSuperCallExpression(statements[0].expression)) { + if (!statements.length || statements[0].kind !== 165 /* ExpressionStatement */ || !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 { @@ -14617,7 +14964,7 @@ var ts; return; } var signaturesToCheck; - if (!signatureDeclarationNode.name && signatureDeclarationNode.parent && signatureDeclarationNode.parent.kind === 188 /* InterfaceDeclaration */) { + if (!signatureDeclarationNode.name && signatureDeclarationNode.parent && signatureDeclarationNode.parent.kind === 189 /* InterfaceDeclaration */) { ts.Debug.assert(signatureDeclarationNode.kind === 129 /* CallSignature */ || signatureDeclarationNode.kind === 130 /* ConstructSignature */); var signatureKind = signatureDeclarationNode.kind === 129 /* CallSignature */ ? 0 /* Call */ : 1 /* Construct */; var containingSymbol = getSymbolOfNode(signatureDeclarationNode.parent); @@ -14637,7 +14984,7 @@ var ts; } function getEffectiveDeclarationFlags(n, flagsToCheck) { var flags = n.flags; - if (n.parent.kind !== 188 /* InterfaceDeclaration */ && ts.isInAmbientContext(n)) { + if (n.parent.kind !== 189 /* InterfaceDeclaration */ && ts.isInAmbientContext(n)) { if (!(flags & 2 /* Ambient */)) { flags |= 1 /* Export */; } @@ -14723,11 +15070,11 @@ var ts; for (var i = 0; i < declarations.length; i++) { var node = declarations[i]; var inAmbientContext = ts.isInAmbientContext(node); - var inAmbientContextOrInterface = node.parent.kind === 188 /* InterfaceDeclaration */ || node.parent.kind === 136 /* TypeLiteral */ || inAmbientContext; + var inAmbientContextOrInterface = node.parent.kind === 189 /* InterfaceDeclaration */ || node.parent.kind === 136 /* TypeLiteral */ || inAmbientContext; if (inAmbientContextOrInterface) { previousDeclaration = undefined; } - if (node.kind === 185 /* FunctionDeclaration */ || node.kind === 125 /* Method */ || node.kind === 126 /* Constructor */) { + if (node.kind === 186 /* FunctionDeclaration */ || node.kind === 125 /* Method */ || node.kind === 126 /* Constructor */) { var currentNodeFlags = getEffectiveDeclarationFlags(node, flagsToCheck); someNodeFlags |= currentNodeFlags; allNodeFlags &= currentNodeFlags; @@ -14821,14 +15168,14 @@ var ts; } function getDeclarationSpaces(d) { switch (d.kind) { - case 188 /* InterfaceDeclaration */: + case 189 /* InterfaceDeclaration */: return 8388608 /* ExportType */; - case 191 /* ModuleDeclaration */: + case 192 /* ModuleDeclaration */: return d.name.kind === 7 /* StringLiteral */ || ts.getModuleInstanceState(d) !== 0 /* NonInstantiated */ ? 16777216 /* ExportNamespace */ | 4194304 /* ExportValue */ : 16777216 /* ExportNamespace */; - case 187 /* ClassDeclaration */: - case 190 /* EnumDeclaration */: + case 188 /* ClassDeclaration */: + case 191 /* EnumDeclaration */: return 8388608 /* ExportType */ | 4194304 /* ExportValue */; - case 193 /* ImportDeclaration */: + case 194 /* ImportDeclaration */: var result = 0; var target = resolveImport(getSymbolOfNode(d)); ts.forEach(target.declarations, function (d) { @@ -14903,7 +15250,7 @@ var ts; return; } switch (current.kind) { - case 185 /* FunctionDeclaration */: + case 186 /* FunctionDeclaration */: case 152 /* FunctionExpression */: case 125 /* Method */: case 153 /* ArrowFunction */: @@ -14958,7 +15305,7 @@ var ts; if (!needCollisionCheckForIdentifier(node, name, "_super")) { return; } - var enclosingClass = ts.getAncestor(node, 187 /* ClassDeclaration */); + var enclosingClass = ts.getAncestor(node, 188 /* ClassDeclaration */); if (!enclosingClass || ts.isInAmbientContext(enclosingClass)) { return; } @@ -14976,11 +15323,11 @@ var ts; if (!needCollisionCheckForIdentifier(node, name, "require") && !needCollisionCheckForIdentifier(node, name, "exports")) { return; } - if (node.kind === 191 /* ModuleDeclaration */ && ts.getModuleInstanceState(node) !== 1 /* Instantiated */) { + if (node.kind === 192 /* ModuleDeclaration */ && ts.getModuleInstanceState(node) !== 1 /* Instantiated */) { return; } - var parent = node.kind === 184 /* VariableDeclaration */ ? node.parent.parent : node.parent; - if (parent.kind === 196 /* SourceFile */ && ts.isExternalModule(parent)) { + var parent = node.kind === 185 /* VariableDeclaration */ ? node.parent.parent : node.parent; + if (parent.kind === 197 /* SourceFile */ && 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)); } } @@ -15371,7 +15718,7 @@ var ts; checkTypeNameIsReserved(node.name, ts.Diagnostics.Interface_name_cannot_be_0); checkExportsOnMergedDeclarations(node); var symbol = getSymbolOfNode(node); - var firstInterfaceDecl = getDeclarationOfKind(symbol, 188 /* InterfaceDeclaration */); + var firstInterfaceDecl = getDeclarationOfKind(symbol, 189 /* InterfaceDeclaration */); 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); @@ -15404,7 +15751,7 @@ var ts; var enumType = getDeclaredTypeOfSymbol(enumSymbol); var autoValue = 0; var ambient = ts.isInAmbientContext(node); - var enumIsConst = ts.isConstEnumDeclaration(node); + var enumIsConst = ts.isConst(node); ts.forEach(node.members, function (member) { if (isNumericName(member.name.text)) { error(member.name, ts.Diagnostics.An_enum_member_cannot_have_a_numeric_name); @@ -15545,7 +15892,7 @@ var ts; var firstDeclaration = getDeclarationOfKind(enumSymbol, node.kind); if (node === firstDeclaration) { if (enumSymbol.declarations.length > 1) { - var enumIsConst = ts.isConstEnumDeclaration(node); + 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); @@ -15554,7 +15901,7 @@ var ts; } var seenEnumMissingInitialInitializer = false; ts.forEach(enumSymbol.declarations, function (declaration) { - if (declaration.kind !== 190 /* EnumDeclaration */) { + if (declaration.kind !== 191 /* EnumDeclaration */) { return false; } var enumDeclaration = declaration; @@ -15577,7 +15924,7 @@ var ts; var declarations = symbol.declarations; for (var i = 0; i < declarations.length; i++) { var declaration = declarations[i]; - if ((declaration.kind === 187 /* ClassDeclaration */ || (declaration.kind === 185 /* FunctionDeclaration */ && declaration.body)) && !ts.isInAmbientContext(declaration)) { + if ((declaration.kind === 188 /* ClassDeclaration */ || (declaration.kind === 186 /* FunctionDeclaration */ && declaration.body)) && !ts.isInAmbientContext(declaration)) { return declaration; } } @@ -15640,10 +15987,10 @@ var ts; } } else { - if (node.parent.kind === 196 /* SourceFile */) { + if (node.parent.kind === 197 /* SourceFile */) { target = resolveImport(symbol); } - else if (node.parent.kind === 192 /* ModuleBlock */ && node.parent.parent.name.kind === 7 /* StringLiteral */) { + else if (node.parent.kind === 193 /* ModuleBlock */ && node.parent.parent.name.kind === 7 /* StringLiteral */) { if (isExternalModuleNameRelative(node.externalModuleName.text)) { error(node, ts.Diagnostics.Import_declaration_in_an_ambient_external_module_declaration_cannot_reference_external_module_through_relative_external_module_name); target = unknownSymbol; @@ -15665,7 +16012,7 @@ var ts; } function checkExportAssignment(node) { var container = node.parent; - if (container.kind !== 196 /* SourceFile */) { + if (container.kind !== 197 /* SourceFile */) { container = container.parent; } checkTypeOfExportAssignmentSymbol(getSymbolOfNode(container)); @@ -15707,57 +16054,57 @@ var ts; return checkUnionType(node); case 140 /* ParenType */: return checkSourceElement(node.type); - case 185 /* FunctionDeclaration */: + case 186 /* FunctionDeclaration */: return checkFunctionDeclaration(node); - case 161 /* Block */: + case 162 /* Block */: return checkBlock(node); - case 186 /* FunctionBlock */: - case 192 /* ModuleBlock */: + case 187 /* FunctionBlock */: + case 193 /* ModuleBlock */: return checkBody(node); - case 162 /* VariableStatement */: + case 163 /* VariableStatement */: return checkVariableStatement(node); - case 164 /* ExpressionStatement */: + case 165 /* ExpressionStatement */: return checkExpressionStatement(node); - case 165 /* IfStatement */: + case 166 /* IfStatement */: return checkIfStatement(node); - case 166 /* DoStatement */: + case 167 /* DoStatement */: return checkDoStatement(node); - case 167 /* WhileStatement */: + case 168 /* WhileStatement */: return checkWhileStatement(node); - case 168 /* ForStatement */: + case 169 /* ForStatement */: return checkForStatement(node); - case 169 /* ForInStatement */: + case 170 /* ForInStatement */: return checkForInStatement(node); - case 170 /* ContinueStatement */: - case 171 /* BreakStatement */: + case 171 /* ContinueStatement */: + case 172 /* BreakStatement */: return checkBreakOrContinueStatement(node); - case 172 /* ReturnStatement */: + case 173 /* ReturnStatement */: return checkReturnStatement(node); - case 173 /* WithStatement */: + case 174 /* WithStatement */: return checkWithStatement(node); - case 174 /* SwitchStatement */: + case 175 /* SwitchStatement */: return checkSwitchStatement(node); - case 177 /* LabeledStatement */: + case 178 /* LabeledStatement */: return checkLabeledStatement(node); - case 178 /* ThrowStatement */: + case 179 /* ThrowStatement */: return checkThrowStatement(node); - case 179 /* TryStatement */: + case 180 /* TryStatement */: return checkTryStatement(node); - case 184 /* VariableDeclaration */: + case 185 /* VariableDeclaration */: return ts.Debug.fail("Checker encountered variable declaration"); - case 187 /* ClassDeclaration */: + case 188 /* ClassDeclaration */: return checkClassDeclaration(node); - case 188 /* InterfaceDeclaration */: + case 189 /* InterfaceDeclaration */: return checkInterfaceDeclaration(node); - case 189 /* TypeAliasDeclaration */: + case 190 /* TypeAliasDeclaration */: return checkTypeAliasDeclaration(node); - case 190 /* EnumDeclaration */: + case 191 /* EnumDeclaration */: return checkEnumDeclaration(node); - case 191 /* ModuleDeclaration */: + case 192 /* ModuleDeclaration */: return checkModuleDeclaration(node); - case 193 /* ImportDeclaration */: + case 194 /* ImportDeclaration */: return checkImportDeclaration(node); - case 194 /* ExportAssignment */: + case 195 /* ExportAssignment */: return checkExportAssignment(node); } } @@ -15772,10 +16119,10 @@ var ts; case 126 /* Constructor */: case 127 /* GetAccessor */: case 128 /* SetAccessor */: - case 185 /* FunctionDeclaration */: + case 186 /* FunctionDeclaration */: ts.forEach(node.parameters, checkFunctionExpressionBodies); break; - case 173 /* WithStatement */: + case 174 /* WithStatement */: checkFunctionExpressionBodies(node.expression); break; case 123 /* Parameter */: @@ -15794,33 +16141,33 @@ var ts; case 155 /* PostfixOperator */: case 156 /* BinaryExpression */: case 157 /* ConditionalExpression */: - case 161 /* Block */: - case 186 /* FunctionBlock */: - case 192 /* ModuleBlock */: - case 162 /* VariableStatement */: - case 164 /* ExpressionStatement */: - case 165 /* IfStatement */: - case 166 /* DoStatement */: - case 167 /* WhileStatement */: - case 168 /* ForStatement */: - case 169 /* ForInStatement */: - case 170 /* ContinueStatement */: - case 171 /* BreakStatement */: - case 172 /* ReturnStatement */: - case 174 /* SwitchStatement */: - case 175 /* CaseClause */: - case 176 /* DefaultClause */: - case 177 /* LabeledStatement */: - case 178 /* ThrowStatement */: - case 179 /* TryStatement */: - case 180 /* TryBlock */: - case 181 /* CatchBlock */: - case 182 /* FinallyBlock */: - case 184 /* VariableDeclaration */: - case 187 /* ClassDeclaration */: - case 190 /* EnumDeclaration */: - case 195 /* EnumMember */: - case 196 /* SourceFile */: + case 162 /* Block */: + case 187 /* FunctionBlock */: + case 193 /* ModuleBlock */: + case 163 /* VariableStatement */: + case 165 /* ExpressionStatement */: + case 166 /* IfStatement */: + case 167 /* DoStatement */: + case 168 /* WhileStatement */: + case 169 /* ForStatement */: + case 170 /* ForInStatement */: + case 171 /* ContinueStatement */: + case 172 /* BreakStatement */: + case 173 /* ReturnStatement */: + case 175 /* SwitchStatement */: + case 176 /* CaseClause */: + case 177 /* DefaultClause */: + case 178 /* LabeledStatement */: + case 179 /* ThrowStatement */: + case 180 /* TryStatement */: + case 181 /* TryBlock */: + case 182 /* CatchBlock */: + case 183 /* FinallyBlock */: + case 185 /* VariableDeclaration */: + case 188 /* ClassDeclaration */: + case 191 /* EnumDeclaration */: + case 196 /* EnumMember */: + case 197 /* SourceFile */: ts.forEachChild(node, checkFunctionExpressionBodies); break; } @@ -15870,6 +16217,11 @@ var ts; checkProgram(); return getSortedDiagnostics(); } + function getDeclarationDiagnostics(targetSourceFile) { + var resolver = createResolver(); + checkSourceFile(targetSourceFile); + return ts.getDeclarationDiagnostics(program, resolver, targetSourceFile); + } function getGlobalDiagnostics() { return ts.filter(getSortedDiagnostics(), function (d) { return !d.file; }); } @@ -15891,7 +16243,7 @@ var ts; function isInsideWithStatementBody(node) { if (node) { while (node.parent) { - if (node.parent.kind === 173 /* WithStatement */ && node.parent.statement === node) { + if (node.parent.kind === 174 /* WithStatement */ && node.parent.statement === node) { return true; } node = node.parent; @@ -15927,17 +16279,17 @@ var ts; copySymbols(location.locals, meaning); } switch (location.kind) { - case 196 /* SourceFile */: + case 197 /* SourceFile */: if (!ts.isExternalModule(location)) break; - case 191 /* ModuleDeclaration */: + case 192 /* ModuleDeclaration */: copySymbols(getSymbolOfNode(location).exports, meaning & 35653619 /* ModuleMember */); break; - case 190 /* EnumDeclaration */: + case 191 /* EnumDeclaration */: copySymbols(getSymbolOfNode(location).exports, meaning & 8 /* EnumMember */); break; - case 187 /* ClassDeclaration */: - case 188 /* InterfaceDeclaration */: + case 188 /* ClassDeclaration */: + case 189 /* InterfaceDeclaration */: if (!(memberFlags & 128 /* Static */)) { copySymbols(getSymbolOfNode(location).members, meaning & 3152352 /* Type */); } @@ -15947,7 +16299,7 @@ var ts; copySymbol(location.symbol, meaning); } break; - case 181 /* CatchBlock */: + case 182 /* CatchBlock */: if (location.variable.text) { copySymbol(location.symbol, meaning); } @@ -15965,10 +16317,10 @@ var ts; function isTypeDeclaration(node) { switch (node.kind) { case 122 /* TypeParameter */: - case 187 /* ClassDeclaration */: - case 188 /* InterfaceDeclaration */: - case 189 /* TypeAliasDeclaration */: - case 190 /* EnumDeclaration */: + case 188 /* ClassDeclaration */: + case 189 /* InterfaceDeclaration */: + case 190 /* TypeAliasDeclaration */: + case 191 /* EnumDeclaration */: return true; } } @@ -16010,9 +16362,9 @@ var ts; return node === parent.constraint; case 124 /* Property */: case 123 /* Parameter */: - case 184 /* VariableDeclaration */: + case 185 /* VariableDeclaration */: return node === parent.type; - case 185 /* FunctionDeclaration */: + case 186 /* FunctionDeclaration */: case 152 /* FunctionExpression */: case 153 /* ArrowFunction */: case 126 /* Constructor */: @@ -16039,10 +16391,10 @@ var ts; while (node.parent.kind === 121 /* QualifiedName */) { node = node.parent; } - if (node.parent.kind === 193 /* ImportDeclaration */) { + if (node.parent.kind === 194 /* ImportDeclaration */) { return node.parent.entityName === node; } - if (node.parent.kind === 194 /* ExportAssignment */) { + if (node.parent.kind === 195 /* ExportAssignment */) { return node.parent.exportName === node; } return false; @@ -16054,7 +16406,7 @@ var ts; if (ts.isDeclarationOrFunctionExpressionOrCatchVariableName(entityName)) { return getSymbolOfNode(entityName.parent); } - if (entityName.parent.kind === 194 /* ExportAssignment */) { + if (entityName.parent.kind === 195 /* ExportAssignment */) { return resolveEntityName(entityName.parent.parent, entityName, 107455 /* Value */ | 3152352 /* Type */ | 1536 /* Namespace */ | 33554432 /* Import */); } if (isInRightSideOfImportOrExportAssignment(entityName)) { @@ -16094,7 +16446,7 @@ var ts; return getSymbolOfNode(node.parent); } if (node.kind === 63 /* Identifier */ && isInRightSideOfImportOrExportAssignment(node)) { - return node.parent.kind === 194 /* ExportAssignment */ ? getSymbolOfEntityName(node) : getSymbolOfPartOfRightHandSideOfImport(node); + return node.parent.kind === 195 /* ExportAssignment */ ? getSymbolOfEntityName(node) : getSymbolOfPartOfRightHandSideOfImport(node); } switch (node.kind) { case 63 /* Identifier */: @@ -16112,7 +16464,7 @@ var ts; } return undefined; case 7 /* StringLiteral */: - if (node.parent.kind === 193 /* ImportDeclaration */ && node.parent.externalModuleName === node) { + if (node.parent.kind === 194 /* ImportDeclaration */ && node.parent.externalModuleName === node) { var importSymbol = getSymbolOfNode(node.parent); var moduleType = getTypeOfSymbol(importSymbol); return moduleType ? moduleType.symbol : undefined; @@ -16206,7 +16558,7 @@ var ts; return [symbol]; } function isExternalModuleSymbol(symbol) { - return symbol.flags & 512 /* ValueModule */ && symbol.declarations.length === 1 && symbol.declarations[0].kind === 196 /* SourceFile */; + return symbol.flags & 512 /* ValueModule */ && symbol.declarations.length === 1 && symbol.declarations[0].kind === 197 /* SourceFile */; } function isNodeDescendentOf(node, ancestor) { while (node) { @@ -16239,7 +16591,7 @@ var ts; function getLocalNameForSymbol(symbol, location) { var node = location; while (node) { - if ((node.kind === 191 /* ModuleDeclaration */ || node.kind === 190 /* EnumDeclaration */) && getSymbolOfNode(node) === symbol) { + if ((node.kind === 192 /* ModuleDeclaration */ || node.kind === 191 /* EnumDeclaration */) && getSymbolOfNode(node) === symbol) { return getLocalNameOfContainer(node); } node = node.parent; @@ -16263,7 +16615,7 @@ var ts; return symbol && symbolIsValue(symbol) && !isConstEnumSymbol(symbol) ? symbolToString(symbol) : undefined; } function isTopLevelValueImportWithEntityName(node) { - if (node.parent.kind !== 196 /* SourceFile */ || !node.entityName) { + if (node.parent.kind !== 197 /* SourceFile */ || !node.entityName) { return false; } return isImportResolvedToValue(getSymbolOfNode(node)); @@ -16314,7 +16666,7 @@ var ts; if (symbol && (symbol.flags & 8 /* EnumMember */)) { var declaration = symbol.valueDeclaration; var constantValue; - if (declaration.kind === 195 /* EnumMember */ && (constantValue = getNodeLinks(declaration).enumMemberValue) !== undefined) { + if (declaration.kind === 196 /* EnumMember */ && (constantValue = getNodeLinks(declaration).enumMemberValue) !== undefined) { return constantValue; } } @@ -16329,8 +16681,8 @@ var ts; var signature = getSignatureFromDeclaration(signatureDeclaration); getSymbolDisplayBuilder().buildTypeDisplay(getReturnTypeOfSignature(signature), writer, enclosingDeclaration, flags); } - function invokeEmitter(targetSourceFile) { - var resolver = { + function createResolver() { + return { getProgram: function () { return program; }, getLocalNameOfContainer: getLocalNameOfContainer, getExpressionNamePrefix: getExpressionNamePrefix, @@ -16346,9 +16698,12 @@ var ts; writeTypeAtLocation: writeTypeAtLocation, writeReturnTypeOfSignatureDeclaration: writeReturnTypeOfSignatureDeclaration, isSymbolAccessible: isSymbolAccessible, - isImportDeclarationEntityNameReferenceDeclarationVisibile: isImportDeclarationEntityNameReferenceDeclarationVisibile, + isEntityNameVisible: isEntityNameVisible, getConstantValue: getConstantValue }; + } + function invokeEmitter(targetSourceFile) { + var resolver = createResolver(); checkProgram(); return ts.emitFiles(resolver, targetSourceFile); } @@ -16518,10 +16873,10 @@ var ts; } function autoCollapse(node) { switch (node.kind) { - case 192 /* ModuleBlock */: - case 187 /* ClassDeclaration */: - case 188 /* InterfaceDeclaration */: - case 190 /* EnumDeclaration */: + case 193 /* ModuleBlock */: + case 188 /* ClassDeclaration */: + case 189 /* InterfaceDeclaration */: + case 191 /* EnumDeclaration */: return false; } return true; @@ -16533,11 +16888,11 @@ var ts; return; } switch (n.kind) { - case 161 /* Block */: + case 162 /* Block */: var parent = n.parent; var openBrace = ts.findChildOfKind(n, 13 /* OpenBraceToken */, sourceFile); var closeBrace = ts.findChildOfKind(n, 14 /* CloseBraceToken */, sourceFile); - if (parent.kind === 166 /* DoStatement */ || parent.kind === 169 /* ForInStatement */ || parent.kind === 168 /* ForStatement */ || parent.kind === 165 /* IfStatement */ || parent.kind === 167 /* WhileStatement */ || parent.kind === 173 /* WithStatement */) { + if (parent.kind === 167 /* DoStatement */ || parent.kind === 170 /* ForInStatement */ || parent.kind === 169 /* ForStatement */ || parent.kind === 166 /* IfStatement */ || parent.kind === 168 /* WhileStatement */ || parent.kind === 174 /* WithStatement */) { addOutliningSpan(parent, openBrace, closeBrace, autoCollapse(n)); } else { @@ -16550,20 +16905,20 @@ var ts; }); } break; - case 186 /* FunctionBlock */: - case 192 /* ModuleBlock */: - case 180 /* TryBlock */: - case 181 /* CatchBlock */: - case 182 /* FinallyBlock */: + case 187 /* FunctionBlock */: + case 193 /* ModuleBlock */: + case 181 /* TryBlock */: + case 182 /* CatchBlock */: + case 183 /* FinallyBlock */: var openBrace = ts.findChildOfKind(n, 13 /* OpenBraceToken */, sourceFile); var closeBrace = ts.findChildOfKind(n, 14 /* CloseBraceToken */, sourceFile); addOutliningSpan(n.parent, openBrace, closeBrace, autoCollapse(n)); break; - case 187 /* ClassDeclaration */: - case 188 /* InterfaceDeclaration */: - case 190 /* EnumDeclaration */: + case 188 /* ClassDeclaration */: + case 189 /* InterfaceDeclaration */: + case 191 /* EnumDeclaration */: case 142 /* ObjectLiteral */: - case 174 /* SwitchStatement */: + case 175 /* SwitchStatement */: var openBrace = ts.findChildOfKind(n, 13 /* OpenBraceToken */, sourceFile); var closeBrace = ts.findChildOfKind(n, 14 /* CloseBraceToken */, sourceFile); addOutliningSpan(n, openBrace, closeBrace, autoCollapse(n)); @@ -16596,14 +16951,14 @@ var ts; var current = node.parent; while (current) { switch (current.kind) { - case 191 /* ModuleDeclaration */: + case 192 /* ModuleDeclaration */: do { current = current.parent; - } while (current.kind === 191 /* ModuleDeclaration */); - case 187 /* ClassDeclaration */: - case 190 /* EnumDeclaration */: - case 188 /* InterfaceDeclaration */: - case 185 /* FunctionDeclaration */: + } while (current.kind === 192 /* ModuleDeclaration */); + case 188 /* ClassDeclaration */: + case 191 /* EnumDeclaration */: + case 189 /* InterfaceDeclaration */: + case 186 /* FunctionDeclaration */: indent++; } current = current.parent; @@ -16614,10 +16969,10 @@ var ts; var childNodes = []; for (var i = 0, n = nodes.length; i < n; i++) { var node = nodes[i]; - if (node.kind === 187 /* ClassDeclaration */ || node.kind === 190 /* EnumDeclaration */ || node.kind === 188 /* InterfaceDeclaration */ || node.kind === 191 /* ModuleDeclaration */ || node.kind === 185 /* FunctionDeclaration */) { + if (node.kind === 188 /* ClassDeclaration */ || node.kind === 191 /* EnumDeclaration */ || node.kind === 189 /* InterfaceDeclaration */ || node.kind === 192 /* ModuleDeclaration */ || node.kind === 186 /* FunctionDeclaration */) { childNodes.push(node); } - else if (node.kind === 162 /* VariableStatement */) { + else if (node.kind === 163 /* VariableStatement */) { childNodes.push.apply(childNodes, node.declarations); } } @@ -16650,17 +17005,17 @@ var ts; for (var i = 0, n = nodes.length; i < n; i++) { var node = nodes[i]; switch (node.kind) { - case 187 /* ClassDeclaration */: - case 190 /* EnumDeclaration */: - case 188 /* InterfaceDeclaration */: + case 188 /* ClassDeclaration */: + case 191 /* EnumDeclaration */: + case 189 /* InterfaceDeclaration */: topLevelNodes.push(node); break; - case 191 /* ModuleDeclaration */: + case 192 /* ModuleDeclaration */: var moduleDeclaration = node; topLevelNodes.push(node); addTopLevelNodes(getInnermostModule(moduleDeclaration).body.statements, topLevelNodes); break; - case 185 /* FunctionDeclaration */: + case 186 /* FunctionDeclaration */: var functionDeclaration = node; if (isTopLevelFunctionDeclaration(functionDeclaration)) { topLevelNodes.push(node); @@ -16671,12 +17026,12 @@ var ts; } } function isTopLevelFunctionDeclaration(functionDeclaration) { - if (functionDeclaration.kind === 185 /* FunctionDeclaration */) { - if (functionDeclaration.body && functionDeclaration.body.kind === 186 /* FunctionBlock */) { - if (ts.forEach(functionDeclaration.body.statements, function (s) { return s.kind === 185 /* FunctionDeclaration */ && !isEmpty(s.name.text); })) { + if (functionDeclaration.kind === 186 /* FunctionDeclaration */) { + if (functionDeclaration.body && functionDeclaration.body.kind === 187 /* FunctionBlock */) { + if (ts.forEach(functionDeclaration.body.statements, function (s) { return s.kind === 186 /* FunctionDeclaration */ && !isEmpty(s.name.text); })) { return true; } - if (functionDeclaration.parent.kind !== 186 /* FunctionBlock */) { + if (functionDeclaration.parent.kind !== 187 /* FunctionBlock */) { return true; } } @@ -16739,7 +17094,7 @@ var ts; return createItem(node, getTextOfNode(node.name), ts.ScriptElementKind.memberSetAccessorElement); case 131 /* IndexSignature */: return createItem(node, "[]", ts.ScriptElementKind.indexSignatureElement); - case 195 /* EnumMember */: + case 196 /* EnumMember */: return createItem(node, getTextOfNode(node.name), ts.ScriptElementKind.memberVariableElement); case 129 /* CallSignature */: return createItem(node, "()", ts.ScriptElementKind.callSignatureElement); @@ -16747,11 +17102,14 @@ var ts; return createItem(node, "new()", ts.ScriptElementKind.constructSignatureElement); case 124 /* Property */: return createItem(node, getTextOfNode(node.name), ts.ScriptElementKind.memberVariableElement); - case 185 /* FunctionDeclaration */: + case 186 /* FunctionDeclaration */: return createItem(node, getTextOfNode(node.name), ts.ScriptElementKind.functionElement); - case 184 /* VariableDeclaration */: - if (node.flags & 4096 /* Const */) { - return createItem(node, getTextOfNode(node.name), ts.ScriptElementKind.constantElement); + case 185 /* VariableDeclaration */: + if (ts.isConst(node)) { + return createItem(node, getTextOfNode(node.name), ts.ScriptElementKind.constElement); + } + else if (ts.isLet(node)) { + return createItem(node, getTextOfNode(node.name), ts.ScriptElementKind.letElement); } else { return createItem(node, getTextOfNode(node.name), ts.ScriptElementKind.variableElement); @@ -16786,17 +17144,17 @@ var ts; } function createTopLevelItem(node) { switch (node.kind) { - case 196 /* SourceFile */: + case 197 /* SourceFile */: return createSourceFileItem(node); - case 187 /* ClassDeclaration */: + case 188 /* ClassDeclaration */: return createClassItem(node); - case 190 /* EnumDeclaration */: + case 191 /* EnumDeclaration */: return createEnumItem(node); - case 188 /* InterfaceDeclaration */: + case 189 /* InterfaceDeclaration */: return createIterfaceItem(node); - case 191 /* ModuleDeclaration */: + case 192 /* ModuleDeclaration */: return createModuleItem(node); - case 185 /* FunctionDeclaration */: + case 186 /* FunctionDeclaration */: return createFunctionItem(node); } return undefined; @@ -16806,7 +17164,7 @@ var ts; } var result = []; result.push(moduleDeclaration.name.text); - while (moduleDeclaration.body && moduleDeclaration.body.kind === 191 /* ModuleDeclaration */) { + while (moduleDeclaration.body && moduleDeclaration.body.kind === 192 /* ModuleDeclaration */) { moduleDeclaration = moduleDeclaration.body; result.push(moduleDeclaration.name.text); } @@ -16818,7 +17176,7 @@ var ts; return getNavigationBarItem(moduleName, ts.ScriptElementKind.moduleElement, ts.getNodeModifiers(node), [getNodeSpan(node)], childItems, getIndent(node)); } function createFunctionItem(node) { - if (node.name && node.body && node.body.kind === 186 /* FunctionBlock */) { + if (node.name && node.body && node.body.kind === 187 /* FunctionBlock */) { var childItems = getItemsWorker(sortNodes(node.body.statements), createChildItem); return getNavigationBarItem(node.name.text, ts.ScriptElementKind.functionElement, ts.getNodeModifiers(node), [getNodeSpan(node)], childItems, getIndent(node)); } @@ -16854,13 +17212,13 @@ var ts; } } function getInnermostModule(node) { - while (node.body.kind === 191 /* ModuleDeclaration */) { + while (node.body.kind === 192 /* ModuleDeclaration */) { node = node.body; } return node; } function getNodeSpan(node) { - return node.kind === 196 /* SourceFile */ ? ts.TextSpan.fromBounds(node.getFullStart(), node.getEnd()) : ts.TextSpan.fromBounds(node.getStart(), node.getEnd()); + return node.kind === 197 /* SourceFile */ ? ts.TextSpan.fromBounds(node.getFullStart(), node.getEnd()) : ts.TextSpan.fromBounds(node.getStart(), node.getEnd()); } function getTextOfNode(node) { return ts.getTextOfNodeFromSourceText(sourceFile.text, node); @@ -16884,7 +17242,7 @@ var ts; if (!argumentInfo) { return undefined; } - var call = argumentInfo.list.parent; + var call = argumentInfo.invocation; var candidates = []; var resolvedSignature = typeInfoResolver.getResolvedSignature(call, candidates); cancellationToken.throwIfCancellationRequested(); @@ -16893,23 +17251,103 @@ var ts; } return createSignatureHelpItems(candidates, resolvedSignature, argumentInfo); function getImmediatelyContainingArgumentInfo(node) { - if (node.parent.kind !== 147 /* CallExpression */ && node.parent.kind !== 148 /* NewExpression */) { - return undefined; + if (node.parent.kind === 147 /* CallExpression */ || node.parent.kind === 148 /* NewExpression */) { + var callExpression = node.parent; + if (node.kind === 23 /* LessThanToken */ || node.kind === 15 /* OpenParenToken */) { + var list = getChildListThatStartsWithOpenerToken(callExpression, node, sourceFile); + var isTypeArgList = callExpression.typeArguments && callExpression.typeArguments.pos === list.pos; + ts.Debug.assert(list !== undefined); + return { + kind: isTypeArgList ? 0 /* TypeArguments */ : 1 /* CallArguments */, + invocation: callExpression, + argumentsSpan: getApplicableSpanForArguments(list), + argumentIndex: 0, + argumentCount: getCommaBasedArgCount(list) + }; + } + var listItemInfo = ts.findListItemInfo(node); + if (listItemInfo) { + var list = listItemInfo.list; + var isTypeArgList = callExpression.typeArguments && callExpression.typeArguments.pos === list.pos; + var argumentIndex = (listItemInfo.listItemIndex + 1) >> 1; + return { + kind: isTypeArgList ? 0 /* TypeArguments */ : 1 /* CallArguments */, + invocation: callExpression, + argumentsSpan: getApplicableSpanForArguments(list), + argumentIndex: argumentIndex, + argumentCount: getCommaBasedArgCount(list) + }; + } } - var parent = node.parent; - if (node.kind === 23 /* LessThanToken */ || node.kind === 15 /* OpenParenToken */) { - var list = getChildListThatStartsWithOpenerToken(parent, node, sourceFile); - ts.Debug.assert(list !== undefined); - return { - list: list, - listItemIndex: 0 - }; + else if (node.kind === 9 /* NoSubstitutionTemplateLiteral */ && node.parent.kind === 149 /* TaggedTemplateExpression */) { + if (ts.isInsideTemplateLiteral(node, position)) { + return getArgumentListInfoForTemplate(node.parent, 0); + } } - return ts.findListItemInfo(node); + else if (node.kind === 10 /* TemplateHead */ && node.parent.parent.kind === 149 /* TaggedTemplateExpression */) { + var templateExpression = node.parent; + var tagExpression = templateExpression.parent; + ts.Debug.assert(templateExpression.kind === 158 /* TemplateExpression */); + var argumentIndex = ts.isInsideTemplateLiteral(node, position) ? 0 : 1; + return getArgumentListInfoForTemplate(tagExpression, argumentIndex); + } + else if (node.parent.kind === 159 /* TemplateSpan */ && node.parent.parent.parent.kind === 149 /* TaggedTemplateExpression */) { + var templateSpan = node.parent; + var templateExpression = templateSpan.parent; + var tagExpression = templateExpression.parent; + ts.Debug.assert(templateExpression.kind === 158 /* TemplateExpression */); + if (node.kind === 12 /* TemplateTail */ && position >= node.getEnd() && !ts.isUnterminatedTemplateEnd(node)) { + return undefined; + } + var spanIndex = templateExpression.templateSpans.indexOf(templateSpan); + var argumentIndex = getArgumentIndexForTemplatePiece(spanIndex, node); + return getArgumentListInfoForTemplate(tagExpression, argumentIndex); + } + return undefined; + } + function getCommaBasedArgCount(argumentsList) { + return argumentsList.getChildCount() === 0 ? 0 : 1 + ts.countWhere(argumentsList.getChildren(), function (arg) { return arg.kind === 22 /* CommaToken */; }); + } + 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 === 9 /* NoSubstitutionTemplateLiteral */ ? 1 : tagExpression.template.templateSpans.length + 1; + return { + kind: 2 /* TaggedTemplateArguments */, + 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 new ts.TextSpan(applicableSpanStart, applicableSpanEnd - applicableSpanStart); + } + function getApplicableSpanForTaggedTemplate(taggedTemplate) { + var template = taggedTemplate.template; + var applicableSpanStart = template.getStart(); + var applicableSpanEnd = template.getEnd(); + if (template.kind === 158 /* TemplateExpression */) { + var lastSpan = ts.lastOrUndefined(template.templateSpans); + if (lastSpan.literal.kind === 120 /* Missing */) { + applicableSpanEnd = ts.skipTrivia(sourceFile.text, applicableSpanEnd, false); + } + } + return new ts.TextSpan(applicableSpanStart, applicableSpanEnd - applicableSpanStart); } function getContainingArgumentInfo(node) { - for (var n = node; n.kind !== 196 /* SourceFile */; n = n.parent) { - if (n.kind === 186 /* FunctionBlock */) { + for (var n = node; n.kind !== 197 /* SourceFile */; n = n.parent) { + if (n.kind === 187 /* FunctionBlock */) { return undefined; } if (n.pos < n.parent.pos || n.end > n.parent.end) { @@ -16943,13 +17381,12 @@ var ts; } return maxParamsSignatureIndex; } - function createSignatureHelpItems(candidates, bestSignature, argumentInfoOrTypeArgumentInfo) { - var argumentListOrTypeArgumentList = argumentInfoOrTypeArgumentInfo.list; - var parent = argumentListOrTypeArgumentList.parent; - var isTypeParameterHelp = parent.typeArguments && parent.typeArguments.pos === argumentListOrTypeArgumentList.pos; - ts.Debug.assert(isTypeParameterHelp || parent.arguments.pos === argumentListOrTypeArgumentList.pos); - var callTargetNode = argumentListOrTypeArgumentList.parent.func; - var callTargetSymbol = typeInfoResolver.getSymbolInfo(callTargetNode); + function createSignatureHelpItems(candidates, bestSignature, argumentListInfo) { + var applicableSpan = argumentListInfo.argumentsSpan; + var isTypeParameterList = argumentListInfo.kind === 0 /* TypeArguments */; + var invocation = argumentListInfo.invocation; + var callTarget = ts.getInvokedExpression(invocation); + var callTargetSymbol = typeInfoResolver.getSymbolInfo(callTarget); var callTargetDisplayParts = callTargetSymbol && ts.symbolToDisplayParts(typeInfoResolver, callTargetSymbol, undefined, undefined); var items = ts.map(candidates, function (candidateSignature) { var signatureHelpParameters; @@ -16958,23 +17395,23 @@ var ts; if (callTargetDisplayParts) { prefixDisplayParts.push.apply(prefixDisplayParts, callTargetDisplayParts); } - if (isTypeParameterHelp) { + if (isTypeParameterList) { prefixDisplayParts.push(ts.punctuationPart(23 /* LessThanToken */)); var typeParameters = candidateSignature.typeParameters; signatureHelpParameters = typeParameters && typeParameters.length > 0 ? ts.map(typeParameters, createSignatureHelpParameterForTypeParameter) : emptyArray; suffixDisplayParts.push(ts.punctuationPart(24 /* GreaterThanToken */)); - var parameterParts = ts.mapToDisplayParts(function (writer) { return typeInfoResolver.getSymbolDisplayBuilder().buildDisplayForParametersAndDelimiters(candidateSignature.parameters, writer, argumentListOrTypeArgumentList); }); + 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, argumentListOrTypeArgumentList); }); + var typeParameterParts = ts.mapToDisplayParts(function (writer) { return typeInfoResolver.getSymbolDisplayBuilder().buildDisplayForTypeParametersAndDelimiters(candidateSignature.typeParameters, writer, invocation); }); prefixDisplayParts.push.apply(prefixDisplayParts, typeParameterParts); prefixDisplayParts.push(ts.punctuationPart(15 /* OpenParenToken */)); var parameters = candidateSignature.parameters; signatureHelpParameters = parameters.length > 0 ? ts.map(parameters, createSignatureHelpParameterForParameter) : emptyArray; suffixDisplayParts.push(ts.punctuationPart(16 /* CloseParenToken */)); } - var returnTypeParts = ts.mapToDisplayParts(function (writer) { return typeInfoResolver.getSymbolDisplayBuilder().buildReturnTypeDisplay(candidateSignature, writer, argumentListOrTypeArgumentList); }); + var returnTypeParts = ts.mapToDisplayParts(function (writer) { return typeInfoResolver.getSymbolDisplayBuilder().buildReturnTypeDisplay(candidateSignature, writer, invocation); }); suffixDisplayParts.push.apply(suffixDisplayParts, returnTypeParts); return { isVariadic: candidateSignature.hasRestParameter, @@ -16985,11 +17422,8 @@ var ts; documentation: candidateSignature.getDocumentationComment() }; }); - var applicableSpanStart = argumentListOrTypeArgumentList.getFullStart(); - var applicableSpanEnd = ts.skipTrivia(sourceFile.text, argumentListOrTypeArgumentList.end, false); - var applicableSpan = new ts.TextSpan(applicableSpanStart, applicableSpanEnd - applicableSpanStart); - var argumentIndex = (argumentInfoOrTypeArgumentInfo.listItemIndex + 1) >> 1; - var argumentCount = argumentListOrTypeArgumentList.getChildCount() === 0 ? 0 : 1 + ts.countWhere(argumentListOrTypeArgumentList.getChildren(), function (arg) { return arg.kind === 22 /* CommaToken */; }); + var argumentIndex = argumentListInfo.argumentIndex; + var argumentCount = argumentListInfo.argumentCount; var selectedItemIndex = candidates.indexOf(bestSignature); if (selectedItemIndex < 0) { selectedItemIndex = selectBestInvalidOverloadIndex(candidates, argumentCount); @@ -17002,7 +17436,7 @@ var ts; argumentCount: argumentCount }; function createSignatureHelpParameterForParameter(parameter) { - var displayParts = ts.mapToDisplayParts(function (writer) { return typeInfoResolver.getSymbolDisplayBuilder().buildParameterDisplay(parameter, writer, argumentListOrTypeArgumentList); }); + var displayParts = ts.mapToDisplayParts(function (writer) { return typeInfoResolver.getSymbolDisplayBuilder().buildParameterDisplay(parameter, writer, invocation); }); var isOptional = !!(parameter.valueDeclaration.flags & 4 /* QuestionMark */); return { name: parameter.name, @@ -17012,7 +17446,7 @@ var ts; }; } function createSignatureHelpParameterForTypeParameter(typeParameter) { - var displayParts = ts.mapToDisplayParts(function (writer) { return typeInfoResolver.getSymbolDisplayBuilder().buildTypeParameterDisplay(typeParameter, writer, argumentListOrTypeArgumentList); }); + var displayParts = ts.mapToDisplayParts(function (writer) { return typeInfoResolver.getSymbolDisplayBuilder().buildTypeParameterDisplay(typeParameter, writer, invocation); }); return { name: typeParameter.symbol.name, documentation: emptyArray, @@ -17097,7 +17531,7 @@ var ts; ts.findChildOfKind = findChildOfKind; function findContainingList(node) { var syntaxList = ts.forEach(node.parent.getChildren(), function (c) { - if (c.kind === 198 /* SyntaxList */ && c.pos <= node.pos && c.end >= node.end) { + if (c.kind === 199 /* SyntaxList */ && c.pos <= node.pos && c.end >= node.end) { return c; } }); @@ -17105,7 +17539,7 @@ var ts; } ts.findContainingList = findContainingList; function findListItemIndexContainingPosition(list, position) { - ts.Debug.assert(list.kind === 198 /* SyntaxList */); + ts.Debug.assert(list.kind === 199 /* SyntaxList */); var children = list.getChildren(); for (var i = 0; i < children.length; i++) { if (children[i].pos <= position && children[i].end > position) { @@ -17212,7 +17646,7 @@ var ts; } } } - ts.Debug.assert(startNode !== undefined || n.kind === 196 /* SourceFile */); + ts.Debug.assert(startNode !== undefined || n.kind === 197 /* SourceFile */); if (children.length) { var candidate = findRightmostChildNodeWithTokens(children, children.length); return candidate && findRightmostToken(candidate); @@ -17237,7 +17671,7 @@ var ts; if (node.kind === 132 /* TypeReference */ || node.kind === 147 /* CallExpression */) { return node.typeArguments; } - if (ts.isAnyFunction(node) || node.kind === 187 /* ClassDeclaration */ || node.kind === 188 /* InterfaceDeclaration */) { + if (ts.isAnyFunction(node) || node.kind === 188 /* ClassDeclaration */ || node.kind === 189 /* InterfaceDeclaration */) { return node.typeParameters; } return undefined; @@ -17261,6 +17695,10 @@ var ts; return 13 /* FirstPunctuation */ <= kind && kind <= 62 /* LastPunctuation */; } ts.isPunctuation = isPunctuation; + function isInsideTemplateLiteral(node, position) { + return (node.getStart() < position && position < node.getEnd()) || (ts.isUnterminatedTemplateEnd(node) && position === node.getEnd()); + } + ts.isInsideTemplateLiteral = isInsideTemplateLiteral; })(ts || (ts = {})); var ts; (function (ts) { @@ -17364,7 +17802,7 @@ var ts; return deriveActualIndentationFromList(commaItemInfo.list.getChildren(), commaItemInfo.listItemIndex - 1, sourceFile, options); } function getActualIndentationForNode(current, parent, currentLineAndChar, parentAndChildShareLine, sourceFile, options) { - var useActualIndentation = (ts.isDeclaration(current) || ts.isStatement(current)) && (parent.kind === 196 /* SourceFile */ || !parentAndChildShareLine); + var useActualIndentation = (ts.isDeclaration(current) || ts.isStatement(current)) && (parent.kind === 197 /* SourceFile */ || !parentAndChildShareLine); if (!useActualIndentation) { return -1; } @@ -17391,7 +17829,7 @@ var ts; return candidate.end > position || !isCompletedNode(candidate, sourceFile); } function childStartsOnTheSameLineWithElseInIfStatement(parent, child, childStartLine, sourceFile) { - if (parent.kind === 165 /* IfStatement */ && parent.elseStatement === child) { + if (parent.kind === 166 /* IfStatement */ && parent.elseStatement === child) { var elseKeyword = ts.findChildOfKind(parent, 74 /* ElseKeyword */, sourceFile); ts.Debug.assert(elseKeyword !== undefined); var elseKeywordStartLine = getStartLineAndCharacterForNode(elseKeyword, sourceFile).line; @@ -17412,7 +17850,7 @@ var ts; return node.parent.properties; case 141 /* ArrayLiteral */: return node.parent.elements; - case 185 /* FunctionDeclaration */: + case 186 /* FunctionDeclaration */: case 152 /* FunctionExpression */: case 153 /* ArrowFunction */: case 125 /* Method */: @@ -17487,28 +17925,28 @@ var ts; SmartIndenter.findFirstNonWhitespaceColumn = findFirstNonWhitespaceColumn; function nodeContentIsAlwaysIndented(kind) { switch (kind) { - case 187 /* ClassDeclaration */: - case 188 /* InterfaceDeclaration */: - case 190 /* EnumDeclaration */: + case 188 /* ClassDeclaration */: + case 189 /* InterfaceDeclaration */: + case 191 /* EnumDeclaration */: case 141 /* ArrayLiteral */: - case 161 /* Block */: - case 186 /* FunctionBlock */: - case 180 /* TryBlock */: - case 181 /* CatchBlock */: - case 182 /* FinallyBlock */: - case 192 /* ModuleBlock */: + case 162 /* Block */: + case 187 /* FunctionBlock */: + case 181 /* TryBlock */: + case 182 /* CatchBlock */: + case 183 /* FinallyBlock */: + case 193 /* ModuleBlock */: case 142 /* ObjectLiteral */: case 136 /* TypeLiteral */: - case 174 /* SwitchStatement */: - case 176 /* DefaultClause */: - case 175 /* CaseClause */: + case 175 /* SwitchStatement */: + case 177 /* DefaultClause */: + case 176 /* CaseClause */: case 151 /* ParenExpression */: case 147 /* CallExpression */: case 148 /* NewExpression */: - case 162 /* VariableStatement */: - case 184 /* VariableDeclaration */: - case 194 /* ExportAssignment */: - case 172 /* ReturnStatement */: + case 163 /* VariableStatement */: + case 185 /* VariableDeclaration */: + case 195 /* ExportAssignment */: + case 173 /* ReturnStatement */: return true; } return false; @@ -17518,20 +17956,20 @@ var ts; return true; } switch (parent) { - case 166 /* DoStatement */: - case 167 /* WhileStatement */: - case 169 /* ForInStatement */: - case 168 /* ForStatement */: - case 165 /* IfStatement */: - return child !== 161 /* Block */; - case 185 /* FunctionDeclaration */: + case 167 /* DoStatement */: + case 168 /* WhileStatement */: + case 170 /* ForInStatement */: + case 169 /* ForStatement */: + case 166 /* IfStatement */: + return child !== 162 /* Block */; + case 186 /* FunctionDeclaration */: case 152 /* FunctionExpression */: case 125 /* Method */: case 153 /* ArrowFunction */: case 126 /* Constructor */: case 127 /* GetAccessor */: case 128 /* SetAccessor */: - return child !== 186 /* FunctionBlock */; + return child !== 187 /* FunctionBlock */; default: return false; } @@ -17552,46 +17990,46 @@ var ts; } function isCompletedNode(n, sourceFile) { switch (n.kind) { - case 187 /* ClassDeclaration */: - case 188 /* InterfaceDeclaration */: - case 190 /* EnumDeclaration */: + case 188 /* ClassDeclaration */: + case 189 /* InterfaceDeclaration */: + case 191 /* EnumDeclaration */: case 142 /* ObjectLiteral */: - case 161 /* Block */: - case 181 /* CatchBlock */: - case 182 /* FinallyBlock */: - case 186 /* FunctionBlock */: - case 192 /* ModuleBlock */: - case 174 /* SwitchStatement */: + case 162 /* Block */: + case 182 /* CatchBlock */: + case 183 /* FinallyBlock */: + case 187 /* FunctionBlock */: + case 193 /* ModuleBlock */: + case 175 /* SwitchStatement */: return nodeEndsWith(n, 14 /* CloseBraceToken */, sourceFile); case 151 /* ParenExpression */: case 129 /* CallSignature */: case 147 /* CallExpression */: case 130 /* ConstructSignature */: return nodeEndsWith(n, 16 /* CloseParenToken */, sourceFile); - case 185 /* FunctionDeclaration */: + case 186 /* FunctionDeclaration */: case 152 /* FunctionExpression */: case 125 /* Method */: case 153 /* ArrowFunction */: return !n.body || isCompletedNode(n.body, sourceFile); - case 191 /* ModuleDeclaration */: + case 192 /* ModuleDeclaration */: return n.body && isCompletedNode(n.body, sourceFile); - case 165 /* IfStatement */: + case 166 /* IfStatement */: if (n.elseStatement) { return isCompletedNode(n.elseStatement, sourceFile); } return isCompletedNode(n.thenStatement, sourceFile); - case 164 /* ExpressionStatement */: + case 165 /* ExpressionStatement */: return isCompletedNode(n.expression, sourceFile); case 141 /* ArrayLiteral */: return nodeEndsWith(n, 18 /* CloseBracketToken */, sourceFile); case 120 /* Missing */: return false; - case 175 /* CaseClause */: - case 176 /* DefaultClause */: + case 176 /* CaseClause */: + case 177 /* DefaultClause */: return false; - case 167 /* WhileStatement */: + case 168 /* WhileStatement */: return isCompletedNode(n.statement, sourceFile); - case 166 /* DoStatement */: + case 167 /* DoStatement */: var hasWhileKeyword = ts.findChildOfKind(n, 98 /* WhileKeyword */, sourceFile); if (hasWhileKeyword) { return nodeEndsWith(n, 16 /* CloseParenToken */, sourceFile); @@ -18166,7 +18604,7 @@ var ts; throw new Error("Unknown rule"); }; Rules.IsForContext = function (context) { - return context.contextNode.kind === 168 /* ForStatement */; + return context.contextNode.kind === 169 /* ForStatement */; }; Rules.IsNotForContext = function (context) { return !Rules.IsForContext(context); @@ -18176,13 +18614,13 @@ var ts; case 156 /* BinaryExpression */: case 157 /* ConditionalExpression */: return true; - case 193 /* ImportDeclaration */: - case 184 /* VariableDeclaration */: + case 194 /* ImportDeclaration */: + case 185 /* VariableDeclaration */: case 123 /* Parameter */: - case 195 /* EnumMember */: + case 196 /* EnumMember */: case 124 /* Property */: return context.currentTokenSpan.kind === 51 /* EqualsToken */ || context.nextTokenSpan.kind === 51 /* EqualsToken */; - case 169 /* ForInStatement */: + case 170 /* ForInStatement */: return context.currentTokenSpan.kind === 84 /* InKeyword */ || context.nextTokenSpan.kind === 84 /* InKeyword */; } return false; @@ -18213,21 +18651,21 @@ var ts; return true; } switch (node.kind) { - case 161 /* Block */: - case 174 /* SwitchStatement */: + case 162 /* Block */: + case 175 /* SwitchStatement */: case 142 /* ObjectLiteral */: - case 180 /* TryBlock */: - case 181 /* CatchBlock */: - case 182 /* FinallyBlock */: - case 186 /* FunctionBlock */: - case 192 /* ModuleBlock */: + case 181 /* TryBlock */: + case 182 /* CatchBlock */: + case 183 /* FinallyBlock */: + case 187 /* FunctionBlock */: + case 193 /* ModuleBlock */: return true; } return false; }; Rules.IsFunctionDeclContext = function (context) { switch (context.contextNode.kind) { - case 185 /* FunctionDeclaration */: + case 186 /* FunctionDeclaration */: case 125 /* Method */: case 127 /* GetAccessor */: case 128 /* SetAccessor */: @@ -18235,7 +18673,7 @@ var ts; case 152 /* FunctionExpression */: case 126 /* Constructor */: case 153 /* ArrowFunction */: - case 188 /* InterfaceDeclaration */: + case 189 /* InterfaceDeclaration */: return true; } return false; @@ -18245,43 +18683,43 @@ var ts; }; Rules.NodeIsTypeScriptDeclWithBlockContext = function (node) { switch (node.kind) { - case 187 /* ClassDeclaration */: - case 188 /* InterfaceDeclaration */: - case 190 /* EnumDeclaration */: + case 188 /* ClassDeclaration */: + case 189 /* InterfaceDeclaration */: + case 191 /* EnumDeclaration */: case 136 /* TypeLiteral */: - case 191 /* ModuleDeclaration */: + case 192 /* ModuleDeclaration */: return true; } return false; }; Rules.IsAfterCodeBlockContext = function (context) { switch (context.currentTokenParent.kind) { - case 187 /* ClassDeclaration */: - case 191 /* ModuleDeclaration */: - case 190 /* EnumDeclaration */: - case 161 /* Block */: - case 180 /* TryBlock */: - case 181 /* CatchBlock */: - case 182 /* FinallyBlock */: - case 186 /* FunctionBlock */: - case 192 /* ModuleBlock */: - case 174 /* SwitchStatement */: + case 188 /* ClassDeclaration */: + case 192 /* ModuleDeclaration */: + case 191 /* EnumDeclaration */: + case 162 /* Block */: + case 181 /* TryBlock */: + case 182 /* CatchBlock */: + case 183 /* FinallyBlock */: + case 187 /* FunctionBlock */: + case 193 /* ModuleBlock */: + case 175 /* SwitchStatement */: return true; } return false; }; Rules.IsControlDeclContext = function (context) { switch (context.contextNode.kind) { - case 165 /* IfStatement */: - case 174 /* SwitchStatement */: - case 168 /* ForStatement */: - case 169 /* ForInStatement */: - case 167 /* WhileStatement */: - case 179 /* TryStatement */: - case 166 /* DoStatement */: - case 173 /* WithStatement */: - case 181 /* CatchBlock */: - case 182 /* FinallyBlock */: + case 166 /* IfStatement */: + case 175 /* SwitchStatement */: + case 169 /* ForStatement */: + case 170 /* ForInStatement */: + case 168 /* WhileStatement */: + case 180 /* TryStatement */: + case 167 /* DoStatement */: + case 174 /* WithStatement */: + case 182 /* CatchBlock */: + case 183 /* FinallyBlock */: return true; default: return false; @@ -18306,7 +18744,7 @@ var ts; return context.formattingRequestKind != 2 /* FormatOnEnter */; }; Rules.IsModuleDeclContext = function (context) { - return context.contextNode.kind === 191 /* ModuleDeclaration */; + return context.contextNode.kind === 192 /* ModuleDeclaration */; }; Rules.IsObjectTypeContext = function (context) { return context.contextNode.kind === 136 /* TypeLiteral */; @@ -18317,9 +18755,9 @@ var ts; } switch (parent.kind) { case 132 /* TypeReference */: - case 187 /* ClassDeclaration */: - case 188 /* InterfaceDeclaration */: - case 185 /* FunctionDeclaration */: + case 188 /* ClassDeclaration */: + case 189 /* InterfaceDeclaration */: + case 186 /* FunctionDeclaration */: case 152 /* FunctionExpression */: case 153 /* ArrowFunction */: case 125 /* Method */: @@ -18756,18 +19194,18 @@ var ts; } function isListElement(parent, node) { switch (parent.kind) { - case 187 /* ClassDeclaration */: - case 188 /* InterfaceDeclaration */: + case 188 /* ClassDeclaration */: + case 189 /* InterfaceDeclaration */: return ts.rangeContainsRange(parent.members, node); - case 191 /* ModuleDeclaration */: + case 192 /* ModuleDeclaration */: var body = parent.body; - return body && body.kind === 161 /* Block */ && ts.rangeContainsRange(body.statements, node); - case 196 /* SourceFile */: - case 161 /* Block */: - case 180 /* TryBlock */: - case 181 /* CatchBlock */: - case 182 /* FinallyBlock */: - case 192 /* ModuleBlock */: + return body && body.kind === 162 /* Block */ && ts.rangeContainsRange(body.statements, node); + case 197 /* SourceFile */: + case 162 /* Block */: + case 181 /* TryBlock */: + case 182 /* CatchBlock */: + case 183 /* FinallyBlock */: + case 193 /* ModuleBlock */: return ts.rangeContainsRange(parent.statements, node); } return false; @@ -18860,7 +19298,7 @@ var ts; var indentation = inheritedIndentation; if (indentation === -1 /* Unknown */) { if (isSomeBlock(node.kind)) { - if (isSomeBlock(parent.kind) || parent.kind === 196 /* SourceFile */ || parent.kind === 175 /* CaseClause */ || parent.kind === 176 /* DefaultClause */) { + if (isSomeBlock(parent.kind) || parent.kind === 197 /* SourceFile */ || parent.kind === 176 /* CaseClause */ || parent.kind === 177 /* DefaultClause */) { indentation = parentDynamicIndentation.getIndentation() + parentDynamicIndentation.getDelta(); } else { @@ -19255,12 +19693,12 @@ var ts; } function isSomeBlock(kind) { switch (kind) { - case 161 /* Block */: - case 186 /* FunctionBlock */: - case 180 /* TryBlock */: - case 181 /* CatchBlock */: - case 182 /* FinallyBlock */: - case 192 /* ModuleBlock */: + case 162 /* Block */: + case 187 /* FunctionBlock */: + case 181 /* TryBlock */: + case 182 /* CatchBlock */: + case 183 /* FinallyBlock */: + case 193 /* ModuleBlock */: return true; } return false; @@ -19268,7 +19706,7 @@ var ts; function getOpenTokenForList(node, list) { switch (node.kind) { case 126 /* Constructor */: - case 185 /* FunctionDeclaration */: + case 186 /* FunctionDeclaration */: case 152 /* FunctionExpression */: case 125 /* Method */: case 153 /* ArrowFunction */: @@ -19388,7 +19826,7 @@ var ts; return pos; }; NodeObject.prototype.createSyntaxList = function (nodes) { - var list = createNode(198 /* SyntaxList */, nodes.pos, nodes.end, 512 /* Synthetic */, this); + var list = createNode(199 /* SyntaxList */, nodes.pos, nodes.end, 512 /* Synthetic */, this); list._children = []; var pos = nodes.pos; for (var i = 0, len = nodes.length; i < len; i++) { @@ -19514,13 +19952,13 @@ var ts; } }); } - if (declaration.kind === 191 /* ModuleDeclaration */ && declaration.body.kind === 191 /* ModuleDeclaration */) { + if (declaration.kind === 192 /* ModuleDeclaration */ && declaration.body.kind === 192 /* ModuleDeclaration */) { return; } - while (declaration.kind === 191 /* ModuleDeclaration */ && declaration.parent.kind === 191 /* ModuleDeclaration */) { + while (declaration.kind === 192 /* ModuleDeclaration */ && declaration.parent.kind === 192 /* ModuleDeclaration */) { declaration = declaration.parent; } - ts.forEach(getJsDocCommentTextRange(declaration.kind === 184 /* VariableDeclaration */ ? declaration.parent : declaration, sourceFileOfDeclaration), function (jsDocCommentTextRange) { + ts.forEach(getJsDocCommentTextRange(declaration.kind === 185 /* VariableDeclaration */ ? declaration.parent : declaration, sourceFileOfDeclaration), function (jsDocCommentTextRange) { var cleanedJsDocComment = getCleanedJsDocComment(jsDocCommentTextRange.pos, jsDocCommentTextRange.end, sourceFileOfDeclaration); if (cleanedJsDocComment) { jsDocCommentParts.push.apply(jsDocCommentParts, cleanedJsDocComment); @@ -19782,18 +20220,6 @@ var ts; function SourceFileObject() { _super.apply(this, arguments); } - SourceFileObject.prototype.getLineAndCharacterFromPosition = function (position) { - return null; - }; - SourceFileObject.prototype.getPositionFromLineAndCharacter = function (line, character) { - return -1; - }; - SourceFileObject.prototype.getLineStarts = function () { - return undefined; - }; - SourceFileObject.prototype.getSyntacticDiagnostics = function () { - return undefined; - }; SourceFileObject.prototype.getScriptSnapshot = function () { return this.scriptSnapshot; }; @@ -19803,7 +20229,7 @@ var ts; var namedDeclarations = []; ts.forEachChild(sourceFile, function visit(node) { switch (node.kind) { - case 185 /* FunctionDeclaration */: + case 186 /* FunctionDeclaration */: case 125 /* Method */: var functionDeclaration = node; if (functionDeclaration.name && functionDeclaration.name.kind !== 120 /* Missing */) { @@ -19819,12 +20245,12 @@ var ts; ts.forEachChild(node, visit); } break; - case 187 /* ClassDeclaration */: - case 188 /* InterfaceDeclaration */: - case 189 /* TypeAliasDeclaration */: - case 190 /* EnumDeclaration */: - case 191 /* ModuleDeclaration */: - case 193 /* ImportDeclaration */: + case 188 /* ClassDeclaration */: + case 189 /* InterfaceDeclaration */: + case 190 /* TypeAliasDeclaration */: + case 191 /* EnumDeclaration */: + case 192 /* ModuleDeclaration */: + case 194 /* ImportDeclaration */: case 127 /* GetAccessor */: case 128 /* SetAccessor */: case 136 /* TypeLiteral */: @@ -19832,17 +20258,17 @@ var ts; namedDeclarations.push(node); } case 126 /* Constructor */: - case 162 /* VariableStatement */: - case 192 /* ModuleBlock */: - case 186 /* FunctionBlock */: + case 163 /* VariableStatement */: + case 193 /* ModuleBlock */: + case 187 /* FunctionBlock */: ts.forEachChild(node, visit); break; case 123 /* Parameter */: if (!(node.flags & 112 /* AccessibilityModifier */)) { break; } - case 184 /* VariableDeclaration */: - case 195 /* EnumMember */: + case 185 /* VariableDeclaration */: + case 196 /* EnumMember */: case 124 /* Property */: namedDeclarations.push(node); break; @@ -19946,7 +20372,8 @@ var ts; ScriptElementKind.primitiveType = "primitive type"; ScriptElementKind.label = "label"; ScriptElementKind.alias = "alias"; - ScriptElementKind.constantElement = "constant"; + ScriptElementKind.constElement = "const"; + ScriptElementKind.letElement = "let"; return ScriptElementKind; })(); ts.ScriptElementKind = ScriptElementKind; @@ -20088,11 +20515,11 @@ var ts; if (declaration.kind === 152 /* FunctionExpression */) { return true; } - if (declaration.kind !== 184 /* VariableDeclaration */ && declaration.kind !== 185 /* FunctionDeclaration */) { + if (declaration.kind !== 185 /* VariableDeclaration */ && declaration.kind !== 186 /* FunctionDeclaration */) { return false; } - for (var parent = declaration.parent; parent.kind !== 186 /* FunctionBlock */; parent = parent.parent) { - if (parent.kind === 196 /* SourceFile */ || parent.kind === 192 /* ModuleBlock */) { + for (var parent = declaration.parent; parent.kind !== 187 /* FunctionBlock */; parent = parent.parent) { + if (parent.kind === 197 /* SourceFile */ || parent.kind === 193 /* ModuleBlock */) { return false; } } @@ -20484,7 +20911,7 @@ var ts; ts.getNodeModifiers = getNodeModifiers; function getTargetLabel(referenceNode, labelName) { while (referenceNode) { - if (referenceNode.kind === 177 /* LabeledStatement */ && referenceNode.label.text === labelName) { + if (referenceNode.kind === 178 /* LabeledStatement */ && referenceNode.label.text === labelName) { return referenceNode.label; } referenceNode = referenceNode.parent; @@ -20492,13 +20919,13 @@ var ts; return undefined; } function isJumpStatementTarget(node) { - return node.kind === 63 /* Identifier */ && (node.parent.kind === 171 /* BreakStatement */ || node.parent.kind === 170 /* ContinueStatement */) && node.parent.label === node; + return node.kind === 63 /* Identifier */ && (node.parent.kind === 172 /* BreakStatement */ || node.parent.kind === 171 /* ContinueStatement */) && node.parent.label === node; } function isLabelOfLabeledStatement(node) { - return node.kind === 63 /* Identifier */ && node.parent.kind === 177 /* LabeledStatement */ && node.parent.label === node; + return node.kind === 63 /* Identifier */ && node.parent.kind === 178 /* LabeledStatement */ && node.parent.label === node; } function isLabeledBy(node, labelName) { - for (var owner = node.parent; owner.kind === 177 /* LabeledStatement */; owner = owner.parent) { + for (var owner = node.parent; owner.kind === 178 /* LabeledStatement */; owner = owner.parent) { if (owner.label.text === labelName) { return true; } @@ -20527,7 +20954,7 @@ var ts; return node && node.parent && node.parent.kind === 148 /* NewExpression */ && node.parent.func === node; } function isNameOfModuleDeclaration(node) { - return node.parent.kind === 191 /* ModuleDeclaration */ && node.parent.name === node; + return node.parent.kind === 192 /* ModuleDeclaration */ && node.parent.name === node; } function isNameOfFunctionDeclaration(node) { return node.kind === 63 /* Identifier */ && ts.isAnyFunction(node.parent) && node.parent.name === node; @@ -20540,11 +20967,11 @@ var ts; switch (node.parent.kind) { case 124 /* Property */: case 143 /* PropertyAssignment */: - case 195 /* EnumMember */: + case 196 /* EnumMember */: case 125 /* Method */: case 127 /* GetAccessor */: case 128 /* SetAccessor */: - case 191 /* ModuleDeclaration */: + case 192 /* ModuleDeclaration */: return node.parent.name === node; case 146 /* IndexedAccess */: return node.parent.index === node; @@ -20553,7 +20980,7 @@ var ts; return false; } function isNameOfExternalModuleImportOrDeclaration(node) { - return node.kind === 7 /* StringLiteral */ && (isNameOfModuleDeclaration(node) || (node.parent.kind === 193 /* ImportDeclaration */ && node.parent.externalModuleName === node)); + return node.kind === 7 /* StringLiteral */ && (isNameOfModuleDeclaration(node) || (node.parent.kind === 194 /* ImportDeclaration */ && node.parent.externalModuleName === node)); } function isInsideComment(sourceFile, token, position) { return position <= token.getStart(sourceFile) && (isInsideCommentRange(ts.getTrailingCommentRanges(sourceFile.text, token.getFullStart())) || isInsideCommentRange(ts.getLeadingCommentRanges(sourceFile.text, token.getFullStart()))); @@ -20600,8 +21027,11 @@ var ts; if (!ts.localizedDiagnosticMessages) { ts.localizedDiagnosticMessages = host.getLocalizedDiagnosticMessages(); } + function getCanonicalFileName(filename) { + return useCaseSensitivefilenames ? filename : filename.toLowerCase(); + } function getSourceFile(filename) { - return ts.lookUp(sourceFilesByName, filename); + return ts.lookUp(sourceFilesByName, getCanonicalFileName(filename)); } function getFullTypeCheckChecker() { return fullTypeCheckChecker_doNotAccessDirectly || (fullTypeCheckChecker_doNotAccessDirectly = program.getTypeChecker(true)); @@ -20669,7 +21099,7 @@ var ts; var filename = oldSourceFiles[i].filename; if (!hostCache.contains(filename) || changesInCompilationSettingsAffectSyntax) { documentRegistry.releaseDocument(filename, oldSettings); - delete sourceFilesByName[filename]; + delete sourceFilesByName[getCanonicalFileName(filename)]; } } } @@ -20693,7 +21123,7 @@ var ts; else { sourceFile = documentRegistry.acquireDocument(filename, compilationSettings, scriptSnapshot, version, isOpen); } - sourceFilesByName[filename] = sourceFile; + sourceFilesByName[getCanonicalFileName(filename)] = sourceFile; } program = ts.createProgram(hostfilenames, compilationSettings, createCompilerHost()); typeInfoResolver = program.getTypeChecker(false); @@ -20725,11 +21155,7 @@ var ts; var targetSourceFile = getSourceFile(filename); var allDiagnostics = checker.getDiagnostics(targetSourceFile); if (compilerOptions.declaration) { - var savedWriter = writer; - writer = function (filename, data, writeByteOrderMark) { - }; - allDiagnostics = allDiagnostics.concat(checker.invokeEmitter(targetSourceFile).diagnostics); - writer = savedWriter; + allDiagnostics = allDiagnostics.concat(checker.getDeclarationDiagnostics(targetSourceFile)); } return allDiagnostics; } @@ -20939,7 +21365,7 @@ var ts; switch (kind) { case 152 /* FunctionExpression */: case 153 /* ArrowFunction */: - case 185 /* FunctionDeclaration */: + case 186 /* FunctionDeclaration */: case 125 /* Method */: case 126 /* Constructor */: case 127 /* GetAccessor */: @@ -20956,13 +21382,13 @@ var ts; var containingNodeKind = previousToken.parent.kind; switch (previousToken.kind) { case 22 /* CommaToken */: - return containingNodeKind === 184 /* VariableDeclaration */ || containingNodeKind === 162 /* VariableStatement */ || containingNodeKind === 190 /* EnumDeclaration */ || isFunction(containingNodeKind); + return containingNodeKind === 185 /* VariableDeclaration */ || containingNodeKind === 163 /* VariableStatement */ || containingNodeKind === 191 /* EnumDeclaration */ || isFunction(containingNodeKind); case 15 /* OpenParenToken */: - return containingNodeKind === 181 /* CatchBlock */ || isFunction(containingNodeKind); + return containingNodeKind === 182 /* CatchBlock */ || isFunction(containingNodeKind); case 13 /* OpenBraceToken */: - return containingNodeKind === 190 /* EnumDeclaration */ || containingNodeKind === 188 /* InterfaceDeclaration */; + return containingNodeKind === 191 /* EnumDeclaration */ || containingNodeKind === 189 /* InterfaceDeclaration */; case 21 /* SemicolonToken */: - return containingNodeKind === 124 /* Property */ && previousToken.parent.parent.kind === 188 /* InterfaceDeclaration */; + return containingNodeKind === 124 /* Property */ && previousToken.parent.parent.kind === 189 /* InterfaceDeclaration */; case 106 /* PublicKeyword */: case 104 /* PrivateKeyword */: case 107 /* StaticKeyword */: @@ -21059,16 +21485,16 @@ var ts; return undefined; } switch (node.kind) { - case 196 /* SourceFile */: + case 197 /* SourceFile */: case 125 /* Method */: - case 185 /* FunctionDeclaration */: + case 186 /* FunctionDeclaration */: case 152 /* FunctionExpression */: case 127 /* GetAccessor */: case 128 /* SetAccessor */: - case 187 /* ClassDeclaration */: - case 188 /* InterfaceDeclaration */: - case 190 /* EnumDeclaration */: - case 191 /* ModuleDeclaration */: + case 188 /* ClassDeclaration */: + case 189 /* InterfaceDeclaration */: + case 191 /* EnumDeclaration */: + case 192 /* ModuleDeclaration */: return node; } } @@ -21107,8 +21533,11 @@ var ts; if (isFirstDeclarationOfSymbolParameter(symbol)) { return ScriptElementKind.parameterElement; } - else if (symbol.valueDeclaration && symbol.valueDeclaration.flags & 4096 /* Const */) { - return ScriptElementKind.constantElement; + else if (symbol.valueDeclaration && ts.isConst(symbol.valueDeclaration)) { + return ScriptElementKind.constElement; + } + else if (ts.forEach(symbol.declarations, function (declaration) { return ts.isLet(declaration); })) { + return ScriptElementKind.letElement; } return isLocalVariableOrFunction(symbol) ? ScriptElementKind.localVariableElement : ScriptElementKind.variableElement; } @@ -21162,13 +21591,13 @@ var ts; } function getNodeKind(node) { switch (node.kind) { - case 191 /* ModuleDeclaration */: return ScriptElementKind.moduleElement; - case 187 /* ClassDeclaration */: return ScriptElementKind.classElement; - case 188 /* InterfaceDeclaration */: return ScriptElementKind.interfaceElement; - case 189 /* TypeAliasDeclaration */: return ScriptElementKind.typeElement; - case 190 /* EnumDeclaration */: return ScriptElementKind.enumElement; - case 184 /* VariableDeclaration */: return node.flags & 4096 /* Const */ ? ScriptElementKind.constantElement : ScriptElementKind.variableElement; - case 185 /* FunctionDeclaration */: return ScriptElementKind.functionElement; + case 192 /* ModuleDeclaration */: return ScriptElementKind.moduleElement; + case 188 /* ClassDeclaration */: return ScriptElementKind.classElement; + case 189 /* InterfaceDeclaration */: return ScriptElementKind.interfaceElement; + case 190 /* TypeAliasDeclaration */: return ScriptElementKind.typeElement; + case 191 /* EnumDeclaration */: return ScriptElementKind.enumElement; + case 185 /* VariableDeclaration */: return ts.isConst(node) ? ScriptElementKind.constElement : node.flags & 2048 /* Let */ ? ScriptElementKind.letElement : ScriptElementKind.variableElement; + case 186 /* FunctionDeclaration */: return ScriptElementKind.functionElement; case 127 /* GetAccessor */: return ScriptElementKind.memberGetAccessorElement; case 128 /* SetAccessor */: return ScriptElementKind.memberSetAccessorElement; case 125 /* Method */: return ScriptElementKind.memberFunctionElement; @@ -21178,7 +21607,7 @@ var ts; case 129 /* CallSignature */: return ScriptElementKind.callSignatureElement; case 126 /* Constructor */: return ScriptElementKind.constructorImplementationElement; case 122 /* TypeParameter */: return ScriptElementKind.typeParameterElement; - case 195 /* EnumMember */: return ScriptElementKind.variableElement; + case 196 /* EnumMember */: return ScriptElementKind.variableElement; case 123 /* Parameter */: return (node.flags & 112 /* AccessibilityModifier */) ? ScriptElementKind.memberVariableElement : ScriptElementKind.parameterElement; } return ScriptElementKind.unknown; @@ -21246,7 +21675,7 @@ var ts; switch (symbolKind) { case ScriptElementKind.memberVariableElement: case ScriptElementKind.variableElement: - case ScriptElementKind.constantElement: + case ScriptElementKind.constElement: case ScriptElementKind.parameterElement: case ScriptElementKind.localVariableElement: displayParts.push(punctuationPart(50 /* ColonToken */)); @@ -21312,6 +21741,10 @@ var ts; } if (symbolFlags & 384 /* Enum */) { addNewLineIfDisplayPartsExist(); + if (ts.forEach(symbol.declarations, function (declaration) { return ts.isConstEnumDeclaration(declaration); })) { + displayParts.push(keywordPart(68 /* ConstKeyword */)); + displayParts.push(spacePart()); + } displayParts.push(keywordPart(75 /* EnumKeyword */)); displayParts.push(spacePart()); addFullSymbolName(symbol); @@ -21352,7 +21785,7 @@ var ts; if (symbolFlags & 8 /* EnumMember */) { addPrefixForAnyFunctionOrVar(symbol, "enum member"); var declaration = symbol.declarations[0]; - if (declaration.kind === 195 /* EnumMember */) { + if (declaration.kind === 196 /* EnumMember */) { var constantValue = typeResolver.getEnumMemberValue(declaration); if (constantValue !== undefined) { displayParts.push(spacePart()); @@ -21368,7 +21801,7 @@ var ts; displayParts.push(spacePart()); addFullSymbolName(symbol); ts.forEach(symbol.declarations, function (declaration) { - if (declaration.kind === 193 /* ImportDeclaration */) { + if (declaration.kind === 194 /* ImportDeclaration */) { var importDeclaration = declaration; if (importDeclaration.externalModuleName) { displayParts.push(spacePart()); @@ -21515,7 +21948,7 @@ var ts; var declarations = []; var definition; ts.forEach(signatureDeclarations, function (d) { - if ((selectConstructors && d.kind === 126 /* Constructor */) || (!selectConstructors && (d.kind === 185 /* FunctionDeclaration */ || d.kind === 125 /* Method */))) { + if ((selectConstructors && d.kind === 126 /* Constructor */) || (!selectConstructors && (d.kind === 186 /* FunctionDeclaration */ || d.kind === 125 /* Method */))) { declarations.push(d); if (d.body) definition = d; @@ -21535,7 +21968,7 @@ var ts; if (isNewExpressionTarget(location) || location.kind === 111 /* ConstructorKeyword */) { if (symbol.flags & 32 /* Class */) { var classDeclaration = symbol.getDeclarations()[0]; - ts.Debug.assert(classDeclaration && classDeclaration.kind === 187 /* ClassDeclaration */); + ts.Debug.assert(classDeclaration && classDeclaration.kind === 188 /* ClassDeclaration */); return tryAddSignature(classDeclaration.members, true, symbolKind, symbolName, containerName, result); } } @@ -21561,11 +21994,10 @@ var ts; } var comment = ts.forEach(sourceFile.referencedFiles, function (r) { return (r.pos <= position && position < r.end) ? r : undefined; }); if (comment) { - var targetFilename = ts.isRootedDiskPath(comment.filename) ? comment.filename : ts.combinePaths(ts.getDirectoryPath(filename), comment.filename); - targetFilename = ts.normalizePath(targetFilename); - if (program.getSourceFile(targetFilename)) { + var referenceFile = ts.tryResolveScriptReference(program, sourceFile, comment); + if (referenceFile) { return [{ - fileName: targetFilename, + fileName: referenceFile.filename, textSpan: ts.TextSpan.fromBounds(0, 0), kind: ScriptElementKind.scriptElement, name: comment.filename, @@ -21617,52 +22049,52 @@ var ts; switch (node.kind) { case 82 /* IfKeyword */: case 74 /* ElseKeyword */: - if (hasKind(node.parent, 165 /* IfStatement */)) { + if (hasKind(node.parent, 166 /* IfStatement */)) { return getIfElseOccurrences(node.parent); } break; case 88 /* ReturnKeyword */: - if (hasKind(node.parent, 172 /* ReturnStatement */)) { + if (hasKind(node.parent, 173 /* ReturnStatement */)) { return getReturnOccurrences(node.parent); } break; case 92 /* ThrowKeyword */: - if (hasKind(node.parent, 178 /* ThrowStatement */)) { + if (hasKind(node.parent, 179 /* ThrowStatement */)) { return getThrowOccurrences(node.parent); } break; case 94 /* TryKeyword */: case 66 /* CatchKeyword */: case 79 /* FinallyKeyword */: - if (hasKind(parent(parent(node)), 179 /* TryStatement */)) { + if (hasKind(parent(parent(node)), 180 /* TryStatement */)) { return getTryCatchFinallyOccurrences(node.parent.parent); } break; case 90 /* SwitchKeyword */: - if (hasKind(node.parent, 174 /* SwitchStatement */)) { + if (hasKind(node.parent, 175 /* SwitchStatement */)) { return getSwitchCaseDefaultOccurrences(node.parent); } break; case 65 /* CaseKeyword */: case 71 /* DefaultKeyword */: - if (hasKind(parent(parent(node)), 174 /* SwitchStatement */)) { + if (hasKind(parent(parent(node)), 175 /* SwitchStatement */)) { return getSwitchCaseDefaultOccurrences(node.parent.parent); } break; case 64 /* BreakKeyword */: case 69 /* ContinueKeyword */: - if (hasKind(node.parent, 171 /* BreakStatement */) || hasKind(node.parent, 170 /* ContinueStatement */)) { + if (hasKind(node.parent, 172 /* BreakStatement */) || hasKind(node.parent, 171 /* ContinueStatement */)) { return getBreakOrContinueStatementOccurences(node.parent); } break; case 80 /* ForKeyword */: - if (hasKind(node.parent, 168 /* ForStatement */) || hasKind(node.parent, 169 /* ForInStatement */)) { + if (hasKind(node.parent, 169 /* ForStatement */) || hasKind(node.parent, 170 /* ForInStatement */)) { return getLoopBreakContinueOccurrences(node.parent); } break; case 98 /* WhileKeyword */: case 73 /* DoKeyword */: - if (hasKind(node.parent, 167 /* WhileStatement */) || hasKind(node.parent, 166 /* DoStatement */)) { + if (hasKind(node.parent, 168 /* WhileStatement */) || hasKind(node.parent, 167 /* DoStatement */)) { return getLoopBreakContinueOccurrences(node.parent); } break; @@ -21676,11 +22108,15 @@ var ts; if (hasKind(node.parent, 127 /* GetAccessor */) || hasKind(node.parent, 128 /* SetAccessor */)) { return getGetAndSetOccurrences(node.parent); } + default: + if (ts.isModifier(node.kind) && node.parent && (ts.isDeclaration(node.parent) || node.parent.kind === 163 /* VariableStatement */)) { + return getModifierOccurrences(node.kind, node.parent); + } } return undefined; function getIfElseOccurrences(ifStatement) { var keywords = []; - while (hasKind(ifStatement.parent, 165 /* IfStatement */) && ifStatement.parent.elseStatement === ifStatement) { + while (hasKind(ifStatement.parent, 166 /* IfStatement */) && ifStatement.parent.elseStatement === ifStatement) { ifStatement = ifStatement.parent; } while (ifStatement) { @@ -21691,7 +22127,7 @@ var ts; break; } } - if (!hasKind(ifStatement.elseStatement, 165 /* IfStatement */)) { + if (!hasKind(ifStatement.elseStatement, 166 /* IfStatement */)) { break; } ifStatement = ifStatement.elseStatement; @@ -21724,7 +22160,7 @@ var ts; } function getReturnOccurrences(returnStatement) { var func = ts.getContainingFunction(returnStatement); - if (!(func && hasKind(func.body, 186 /* FunctionBlock */))) { + if (!(func && hasKind(func.body, 187 /* FunctionBlock */))) { return undefined; } var keywords = []; @@ -21745,7 +22181,7 @@ var ts; ts.forEach(aggregateOwnedThrowStatements(owner), function (throwStatement) { pushKeywordIf(keywords, throwStatement.getFirstToken(), 92 /* ThrowKeyword */); }); - if (owner.kind === 186 /* FunctionBlock */) { + if (owner.kind === 187 /* FunctionBlock */) { ts.forEachReturnStatement(owner, function (returnStatement) { pushKeywordIf(keywords, returnStatement.getFirstToken(), 88 /* ReturnKeyword */); }); @@ -21757,10 +22193,10 @@ var ts; aggregate(node); return statementAccumulator; function aggregate(node) { - if (node.kind === 178 /* ThrowStatement */) { + if (node.kind === 179 /* ThrowStatement */) { statementAccumulator.push(node); } - else if (node.kind === 179 /* TryStatement */) { + else if (node.kind === 180 /* TryStatement */) { var tryStatement = node; if (tryStatement.catchBlock) { aggregate(tryStatement.catchBlock); @@ -21782,10 +22218,10 @@ var ts; var child = throwStatement; while (child.parent) { var parent = child.parent; - if (parent.kind === 186 /* FunctionBlock */ || parent.kind === 196 /* SourceFile */) { + if (parent.kind === 187 /* FunctionBlock */ || parent.kind === 197 /* SourceFile */) { return parent; } - if (parent.kind === 179 /* TryStatement */) { + if (parent.kind === 180 /* TryStatement */) { var tryStatement = parent; if (tryStatement.tryBlock === child && tryStatement.catchBlock) { return child; @@ -21809,7 +22245,7 @@ var ts; function getLoopBreakContinueOccurrences(loopNode) { var keywords = []; if (pushKeywordIf(keywords, loopNode.getFirstToken(), 80 /* ForKeyword */, 98 /* WhileKeyword */, 73 /* DoKeyword */)) { - if (loopNode.kind === 166 /* DoStatement */) { + if (loopNode.kind === 167 /* DoStatement */) { var loopTokens = loopNode.getChildren(); for (var i = loopTokens.length - 1; i >= 0; i--) { if (pushKeywordIf(keywords, loopTokens[i], 98 /* WhileKeyword */)) { @@ -21844,12 +22280,12 @@ var ts; var owner = getBreakOrContinueOwner(breakOrContinueStatement); if (owner) { switch (owner.kind) { - case 168 /* ForStatement */: - case 169 /* ForInStatement */: - case 166 /* DoStatement */: - case 167 /* WhileStatement */: + case 169 /* ForStatement */: + case 170 /* ForInStatement */: + case 167 /* DoStatement */: + case 168 /* WhileStatement */: return getLoopBreakContinueOccurrences(owner); - case 174 /* SwitchStatement */: + case 175 /* SwitchStatement */: return getSwitchCaseDefaultOccurrences(owner); } } @@ -21860,7 +22296,7 @@ var ts; aggregate(node); return statementAccumulator; function aggregate(node) { - if (node.kind === 171 /* BreakStatement */ || node.kind === 170 /* ContinueStatement */) { + if (node.kind === 172 /* BreakStatement */ || node.kind === 171 /* ContinueStatement */) { statementAccumulator.push(node); } else if (!ts.isAnyFunction(node)) { @@ -21876,14 +22312,14 @@ var ts; function getBreakOrContinueOwner(statement) { for (var node = statement.parent; node; node = node.parent) { switch (node.kind) { - case 174 /* SwitchStatement */: - if (statement.kind === 170 /* ContinueStatement */) { + case 175 /* SwitchStatement */: + if (statement.kind === 171 /* ContinueStatement */) { continue; } - case 168 /* ForStatement */: - case 169 /* ForInStatement */: - case 167 /* WhileStatement */: - case 166 /* DoStatement */: + case 169 /* ForStatement */: + case 170 /* ForInStatement */: + case 168 /* WhileStatement */: + case 167 /* DoStatement */: if (!statement.label || isLabeledBy(node, statement.label.text)) { return node; } @@ -21919,6 +22355,73 @@ var ts; } } } + function getModifierOccurrences(modifier, declaration) { + var container = declaration.parent; + if (declaration.flags & 112 /* AccessibilityModifier */) { + if (!(container.kind === 188 /* ClassDeclaration */ || (declaration.kind === 123 /* Parameter */ && hasKind(container, 126 /* Constructor */)))) { + return undefined; + } + } + else if (declaration.flags & 128 /* Static */) { + if (container.kind !== 188 /* ClassDeclaration */) { + return undefined; + } + } + else if (declaration.flags & (1 /* Export */ | 2 /* Ambient */)) { + if (!(container.kind === 193 /* ModuleBlock */ || container.kind === 197 /* SourceFile */)) { + return undefined; + } + } + var keywords = []; + var modifierFlag = getFlagFromModifier(modifier); + var nodes; + switch (container.kind) { + case 193 /* ModuleBlock */: + case 197 /* SourceFile */: + nodes = container.statements; + break; + case 126 /* Constructor */: + nodes = container.parameters.concat(container.parent.members); + break; + case 188 /* ClassDeclaration */: + nodes = container.members; + if (modifierFlag & 112 /* AccessibilityModifier */) { + var constructor = ts.forEach(container.members, function (member) { + return member.kind === 126 /* Constructor */ && member; + }); + if (constructor) { + nodes = nodes.concat(constructor.parameters); + } + } + break; + default: + ts.Debug.fail("Invalid container kind."); + } + ts.forEach(nodes, function (node) { + if (node.flags & modifierFlag) { + ts.forEach(node.getChildren(), function (child) { return pushKeywordIf(keywords, child, modifier); }); + } + }); + return ts.map(keywords, getReferenceEntryFromNode); + function getFlagFromModifier(modifier) { + switch (modifier) { + case 106 /* PublicKeyword */: + return 16 /* Public */; + case 104 /* PrivateKeyword */: + return 32 /* Private */; + case 105 /* ProtectedKeyword */: + return 64 /* Protected */; + case 107 /* StaticKeyword */: + return 128 /* Static */; + case 76 /* ExportKeyword */: + return 1 /* Export */; + case 112 /* DeclareKeyword */: + return 2 /* Ambient */; + default: + ts.Debug.fail(); + } + } + } function hasKind(node, kind) { return node !== undefined && node.kind === kind; } @@ -21983,30 +22486,38 @@ var ts; } var result; var searchMeaning = getIntersectingMeaningFromDeclarations(getMeaningFromLocation(node), declarations); - var symbolName = getNormalizedSymbolName(symbol.name, declarations); + var declaredName = getDeclaredName(symbol); var scope = getSymbolScope(symbol); if (scope) { result = []; - getReferencesInNode(scope, symbol, symbolName, node, searchMeaning, findInStrings, findInComments, result); + getReferencesInNode(scope, symbol, declaredName, node, searchMeaning, findInStrings, findInComments, result); } else { + var internedName = getInternedName(symbol, declarations); ts.forEach(sourceFiles, function (sourceFile) { cancellationToken.throwIfCancellationRequested(); - if (ts.lookUp(sourceFile.identifiers, symbolName)) { + if (ts.lookUp(sourceFile.identifiers, internedName)) { result = result || []; - getReferencesInNode(sourceFile, symbol, symbolName, node, searchMeaning, findInStrings, findInComments, result); + getReferencesInNode(sourceFile, symbol, declaredName, node, searchMeaning, findInStrings, findInComments, result); } }); } return result; - function getNormalizedSymbolName(symbolName, declarations) { + function getDeclaredName(symbol) { + var name = typeInfoResolver.symbolToString(symbol); + return stripQuotes(name); + } + function getInternedName(symbol, declarations) { var functionExpression = ts.forEach(declarations, function (d) { return d.kind === 152 /* FunctionExpression */ ? d : undefined; }); if (functionExpression && functionExpression.name) { var name = functionExpression.name.text; } else { - var name = symbolName; + var name = symbol.name; } + return stripQuotes(name); + } + function stripQuotes(name) { var length = name.length; if (length >= 2 && name.charCodeAt(0) === 34 /* doubleQuote */ && name.charCodeAt(length - 1) === 34 /* doubleQuote */) { return name.substring(1, length - 1); @@ -22018,7 +22529,7 @@ var ts; if (symbol.getFlags() && (4 /* Property */ | 8192 /* Method */)) { var privateDeclaration = ts.forEach(symbol.getDeclarations(), function (d) { return (d.flags & 32 /* Private */) ? d : undefined; }); if (privateDeclaration) { - return ts.getAncestor(privateDeclaration, 187 /* ClassDeclaration */); + return ts.getAncestor(privateDeclaration, 188 /* ClassDeclaration */); } } if (symbol.parent) { @@ -22035,7 +22546,7 @@ var ts; if (scope && scope !== container) { return undefined; } - if (container.kind === 196 /* SourceFile */ && !ts.isExternalModule(container)) { + if (container.kind === 197 /* SourceFile */ && !ts.isExternalModule(container)) { return undefined; } scope = container; @@ -22201,18 +22712,18 @@ var ts; staticFlag &= searchSpaceNode.flags; searchSpaceNode = searchSpaceNode.parent; break; - case 196 /* SourceFile */: + case 197 /* SourceFile */: if (ts.isExternalModule(searchSpaceNode)) { return undefined; } - case 185 /* FunctionDeclaration */: + case 186 /* FunctionDeclaration */: case 152 /* FunctionExpression */: break; default: return undefined; } var result = []; - if (searchSpaceNode.kind === 196 /* SourceFile */) { + if (searchSpaceNode.kind === 197 /* SourceFile */) { ts.forEach(sourceFiles, function (sourceFile) { var possiblePositions = getPossibleSymbolReferencePositions(sourceFile, "this", sourceFile.getStart(), sourceFile.getEnd()); getThisReferencesInFile(sourceFile, sourceFile, possiblePositions, result); @@ -22234,18 +22745,18 @@ var ts; var container = ts.getThisContainer(node, false); switch (searchSpaceNode.kind) { case 152 /* FunctionExpression */: - case 185 /* FunctionDeclaration */: + case 186 /* FunctionDeclaration */: if (searchSpaceNode.symbol === container.symbol) { result.push(getReferenceEntryFromNode(node)); } break; - case 187 /* ClassDeclaration */: + case 188 /* ClassDeclaration */: if (container.parent && searchSpaceNode.symbol === container.parent.symbol && (container.flags & 128 /* Static */) === staticFlag) { result.push(getReferenceEntryFromNode(node)); } break; - case 196 /* SourceFile */: - if (container.kind === 196 /* SourceFile */ && !ts.isExternalModule(container)) { + case 197 /* SourceFile */: + if (container.kind === 197 /* SourceFile */ && !ts.isExternalModule(container)) { result.push(getReferenceEntryFromNode(node)); } break; @@ -22277,11 +22788,11 @@ var ts; function getPropertySymbolsFromBaseTypes(symbol, propertyName, result) { if (symbol && symbol.flags & (32 /* Class */ | 64 /* Interface */)) { ts.forEach(symbol.getDeclarations(), function (declaration) { - if (declaration.kind === 187 /* ClassDeclaration */) { + if (declaration.kind === 188 /* ClassDeclaration */) { getPropertySymbolFromTypeReference(declaration.baseType); ts.forEach(declaration.implementedTypes, getPropertySymbolFromTypeReference); } - else if (declaration.kind === 188 /* InterfaceDeclaration */) { + else if (declaration.kind === 189 /* InterfaceDeclaration */) { ts.forEach(declaration.baseTypes, getPropertySymbolFromTypeReference); } }); @@ -22495,7 +23006,7 @@ var ts; writer = undefined; return emitOutput; } - var emitFilesResult = getFullTypeCheckChecker().invokeEmitter(targetSourceFile); + var emitFilesResult = getFullTypeCheckChecker().emitFiles(targetSourceFile); emitOutput.emitOutputStatus = emitFilesResult.emitResultStatus; writer = undefined; return emitOutput; @@ -22503,29 +23014,29 @@ var ts; function getMeaningFromDeclaration(node) { switch (node.kind) { case 123 /* Parameter */: - case 184 /* VariableDeclaration */: + case 185 /* VariableDeclaration */: case 124 /* Property */: case 143 /* PropertyAssignment */: case 144 /* ShorthandPropertyAssignment */: - case 195 /* EnumMember */: + case 196 /* EnumMember */: case 125 /* Method */: case 126 /* Constructor */: case 127 /* GetAccessor */: case 128 /* SetAccessor */: - case 185 /* FunctionDeclaration */: + case 186 /* FunctionDeclaration */: case 152 /* FunctionExpression */: case 153 /* ArrowFunction */: - case 181 /* CatchBlock */: + case 182 /* CatchBlock */: return 1 /* Value */; case 122 /* TypeParameter */: - case 188 /* InterfaceDeclaration */: - case 189 /* TypeAliasDeclaration */: + case 189 /* InterfaceDeclaration */: + case 190 /* TypeAliasDeclaration */: case 136 /* TypeLiteral */: return 2 /* Type */; - case 187 /* ClassDeclaration */: - case 190 /* EnumDeclaration */: + case 188 /* ClassDeclaration */: + case 191 /* EnumDeclaration */: return 1 /* Value */ | 2 /* Type */; - case 191 /* ModuleDeclaration */: + case 192 /* ModuleDeclaration */: if (node.name.kind === 7 /* StringLiteral */) { return 4 /* Namespace */ | 1 /* Value */; } @@ -22535,9 +23046,9 @@ var ts; else { return 4 /* Namespace */; } - case 193 /* ImportDeclaration */: + case 194 /* ImportDeclaration */: return 1 /* Value */ | 2 /* Type */ | 4 /* Namespace */; - case 196 /* SourceFile */: + case 197 /* SourceFile */: return 4 /* Namespace */ | 1 /* Value */; } ts.Debug.fail("Unknown declaration type"); @@ -22562,17 +23073,17 @@ var ts; while (node.parent.kind === 121 /* QualifiedName */) { node = node.parent; } - return node.parent.kind === 193 /* ImportDeclaration */ && node.parent.entityName === node; + return node.parent.kind === 194 /* ImportDeclaration */ && node.parent.entityName === node; } function getMeaningFromRightHandSideOfImport(node) { ts.Debug.assert(node.kind === 63 /* Identifier */); - if (node.parent.kind === 121 /* QualifiedName */ && node.parent.right === node && node.parent.parent.kind === 193 /* ImportDeclaration */) { + if (node.parent.kind === 121 /* QualifiedName */ && node.parent.right === node && node.parent.parent.kind === 194 /* ImportDeclaration */) { return 1 /* Value */ | 2 /* Type */ | 4 /* Namespace */; } return 4 /* Namespace */; } function getMeaningFromLocation(node) { - if (node.parent.kind === 194 /* ExportAssignment */) { + if (node.parent.kind === 195 /* ExportAssignment */) { return 1 /* Value */ | 2 /* Type */ | 4 /* Namespace */; } else if (isInRightSideOfImport(node)) { @@ -22597,54 +23108,6 @@ var ts; var sourceFile = getSourceFile(fileName); return ts.SignatureHelp.getSignatureHelpItems(sourceFile, position, typeInfoResolver, cancellationToken); } - function getSignatureAtPosition(filename, position) { - var signatureHelpItems = getSignatureHelpItems(filename, position); - if (!signatureHelpItems) { - return undefined; - } - var currentArgumentState = { argumentIndex: signatureHelpItems.argumentIndex, argumentCount: signatureHelpItems.argumentCount }; - var formalSignatures = []; - ts.forEach(signatureHelpItems.items, function (signature) { - var signatureInfoString = displayPartsToString(signature.prefixDisplayParts); - var parameters = []; - if (signature.parameters) { - for (var i = 0, n = signature.parameters.length; i < n; i++) { - var parameter = signature.parameters[i]; - if (i) { - signatureInfoString += displayPartsToString(signature.separatorDisplayParts); - } - var start = signatureInfoString.length; - signatureInfoString += displayPartsToString(parameter.displayParts); - var end = signatureInfoString.length; - parameters.push({ - name: parameter.name, - isVariable: i === n - 1 && signature.isVariadic, - docComment: displayPartsToString(parameter.documentation), - minChar: start, - limChar: end - }); - } - } - signatureInfoString += displayPartsToString(signature.suffixDisplayParts); - formalSignatures.push({ - signatureInfo: signatureInfoString, - docComment: displayPartsToString(signature.documentation), - parameters: parameters, - typeParameters: [] - }); - }); - var actualSignature = { - parameterMinChar: signatureHelpItems.applicableSpan.start(), - parameterLimChar: signatureHelpItems.applicableSpan.end(), - currentParameterIsTypeParameter: false, - currentParameter: currentArgumentState.argumentIndex - }; - return { - actual: actualSignature, - formal: formalSignatures, - activeFormal: 0 - }; - } function getCurrentSourceFile(filename) { filename = ts.normalizeSlashes(filename); var currentSourceFile = syntaxTreeCache.getCurrentSourceFile(filename); @@ -22676,7 +23139,7 @@ var ts; nodeForStartPos = nodeForStartPos.parent; } else if (isNameOfModuleDeclaration(nodeForStartPos)) { - if (nodeForStartPos.parent.parent.kind === 191 /* ModuleDeclaration */ && nodeForStartPos.parent.parent.body === nodeForStartPos.parent) { + if (nodeForStartPos.parent.parent.kind === 192 /* ModuleDeclaration */ && nodeForStartPos.parent.parent.body === nodeForStartPos.parent) { nodeForStartPos = nodeForStartPos.parent.parent.name; } else { @@ -22728,7 +23191,7 @@ var ts; return undefined; function hasValueSideModule(symbol) { return ts.forEach(symbol.declarations, function (declaration) { - return declaration.kind === 191 /* ModuleDeclaration */ && ts.getModuleInstanceState(declaration) == 1 /* Instantiated */; + return declaration.kind === 192 /* ModuleDeclaration */ && ts.getModuleInstanceState(declaration) == 1 /* Instantiated */; }); } } @@ -22789,7 +23252,7 @@ var ts; } } if (ts.isPunctuation(token.kind)) { - if (token.parent.kind === 156 /* BinaryExpression */ || token.parent.kind === 184 /* VariableDeclaration */ || token.parent.kind === 154 /* PrefixOperator */ || token.parent.kind === 155 /* PostfixOperator */ || token.parent.kind === 157 /* ConditionalExpression */) { + if (token.parent.kind === 156 /* BinaryExpression */ || token.parent.kind === 185 /* VariableDeclaration */ || token.parent.kind === 154 /* PrefixOperator */ || token.parent.kind === 155 /* PostfixOperator */ || token.parent.kind === 157 /* ConditionalExpression */) { return ClassificationTypeNames.operator; } else { @@ -22810,7 +23273,7 @@ var ts; } else if (tokenKind === 63 /* Identifier */) { switch (token.parent.kind) { - case 187 /* ClassDeclaration */: + case 188 /* ClassDeclaration */: if (token.parent.name === token) { return ClassificationTypeNames.className; } @@ -22820,17 +23283,17 @@ var ts; return ClassificationTypeNames.typeParameterName; } return; - case 188 /* InterfaceDeclaration */: + case 189 /* InterfaceDeclaration */: if (token.parent.name === token) { return ClassificationTypeNames.interfaceName; } return; - case 190 /* EnumDeclaration */: + case 191 /* EnumDeclaration */: if (token.parent.name === token) { return ClassificationTypeNames.enumName; } return; - case 191 /* ModuleDeclaration */: + case 192 /* ModuleDeclaration */: if (token.parent.name === token) { return ClassificationTypeNames.moduleName; } @@ -23072,7 +23535,7 @@ var ts; getFormattingEditsForDocument: getFormattingEditsForDocument, getFormattingEditsAfterKeystroke: getFormattingEditsAfterKeystroke, getEmitOutput: getEmitOutput, - getSignatureAtPosition: getSignatureAtPosition + getSourceFile: getCurrentSourceFile }; } ts.createLanguageService = createLanguageService; @@ -23109,7 +23572,7 @@ var ts; } return true; } - function getClassificationsForLine(text, lexState) { + function getClassificationsForLine(text, lexState, classifyKeywordsInGenerics) { var offset = 0; var token = 0 /* Unknown */; var lastNonTriviaToken = 0 /* Unknown */; @@ -23154,7 +23617,7 @@ var ts; angleBracketStack--; } else if (token === 109 /* AnyKeyword */ || token === 118 /* StringKeyword */ || token === 116 /* NumberKeyword */ || token === 110 /* BooleanKeyword */) { - if (angleBracketStack > 0) { + if (angleBracketStack > 0 && !classifyKeywordsInGenerics) { token = 63 /* Identifier */; } } @@ -23285,7 +23748,7 @@ var ts; getNodeConstructor: function (kind) { function Node() { } - var proto = kind === 196 /* SourceFile */ ? new SourceFileObject() : new NodeObject(); + var proto = kind === 197 /* SourceFile */ ? new SourceFileObject() : new NodeObject(); proto.kind = kind; proto.pos = 0; proto.end = 0; @@ -23339,10 +23802,10 @@ var ts; function spanInNode(node) { if (node) { if (ts.isExpression(node)) { - if (node.parent.kind === 166 /* DoStatement */) { + if (node.parent.kind === 167 /* DoStatement */) { return spanInPreviousNode(node); } - if (node.parent.kind === 168 /* ForStatement */) { + if (node.parent.kind === 169 /* ForStatement */) { return textSpan(node); } if (node.parent.kind === 156 /* BinaryExpression */ && node.parent.operator === 22 /* CommaToken */) { @@ -23353,14 +23816,14 @@ var ts; } } switch (node.kind) { - case 162 /* VariableStatement */: + case 163 /* VariableStatement */: return spanInVariableDeclaration(node.declarations[0]); - case 184 /* VariableDeclaration */: + case 185 /* VariableDeclaration */: case 124 /* Property */: return spanInVariableDeclaration(node); case 123 /* Parameter */: return spanInParameterDeclaration(node); - case 185 /* FunctionDeclaration */: + case 186 /* FunctionDeclaration */: case 125 /* Method */: case 127 /* GetAccessor */: case 128 /* SetAccessor */: @@ -23368,62 +23831,62 @@ var ts; case 152 /* FunctionExpression */: case 153 /* ArrowFunction */: return spanInFunctionDeclaration(node); - case 186 /* FunctionBlock */: + case 187 /* FunctionBlock */: return spanInFunctionBlock(node); - case 161 /* Block */: - case 180 /* TryBlock */: - case 181 /* CatchBlock */: - case 182 /* FinallyBlock */: - case 192 /* ModuleBlock */: + case 162 /* Block */: + case 181 /* TryBlock */: + case 182 /* CatchBlock */: + case 183 /* FinallyBlock */: + case 193 /* ModuleBlock */: return spanInBlock(node); - case 164 /* ExpressionStatement */: + case 165 /* ExpressionStatement */: return textSpan(node.expression); - case 172 /* ReturnStatement */: + case 173 /* ReturnStatement */: return textSpan(node.getChildAt(0), node.expression); - case 167 /* WhileStatement */: + case 168 /* WhileStatement */: return textSpan(node, ts.findNextToken(node.expression, node)); - case 166 /* DoStatement */: + case 167 /* DoStatement */: return spanInNode(node.statement); - case 183 /* DebuggerStatement */: + case 184 /* DebuggerStatement */: return textSpan(node.getChildAt(0)); - case 165 /* IfStatement */: + case 166 /* IfStatement */: return textSpan(node, ts.findNextToken(node.expression, node)); - case 177 /* LabeledStatement */: + case 178 /* LabeledStatement */: return spanInNode(node.statement); - case 171 /* BreakStatement */: - case 170 /* ContinueStatement */: + case 172 /* BreakStatement */: + case 171 /* ContinueStatement */: return textSpan(node.getChildAt(0), node.label); - case 168 /* ForStatement */: + case 169 /* ForStatement */: return spanInForStatement(node); - case 169 /* ForInStatement */: + case 170 /* ForInStatement */: return textSpan(node, ts.findNextToken(node.expression, node)); - case 174 /* SwitchStatement */: + case 175 /* SwitchStatement */: return textSpan(node, ts.findNextToken(node.expression, node)); - case 175 /* CaseClause */: - case 176 /* DefaultClause */: + case 176 /* CaseClause */: + case 177 /* DefaultClause */: return spanInNode(node.statements[0]); - case 179 /* TryStatement */: + case 180 /* TryStatement */: return spanInBlock(node.tryBlock); - case 178 /* ThrowStatement */: + case 179 /* ThrowStatement */: return textSpan(node, node.expression); - case 194 /* ExportAssignment */: + case 195 /* ExportAssignment */: return textSpan(node, node.exportName); - case 193 /* ImportDeclaration */: + case 194 /* ImportDeclaration */: return textSpan(node, node.entityName || node.externalModuleName); - case 191 /* ModuleDeclaration */: + case 192 /* ModuleDeclaration */: if (ts.getModuleInstanceState(node) !== 1 /* Instantiated */) { return undefined; } - case 187 /* ClassDeclaration */: - case 190 /* EnumDeclaration */: - case 195 /* EnumMember */: + case 188 /* ClassDeclaration */: + case 191 /* EnumDeclaration */: + case 196 /* EnumMember */: case 147 /* CallExpression */: case 148 /* NewExpression */: return textSpan(node); - case 173 /* WithStatement */: + case 174 /* WithStatement */: return spanInNode(node.statement); - case 188 /* InterfaceDeclaration */: - case 189 /* TypeAliasDeclaration */: + case 189 /* InterfaceDeclaration */: + case 190 /* TypeAliasDeclaration */: return undefined; case 21 /* SemicolonToken */: case 1 /* EndOfFileToken */: @@ -23463,11 +23926,11 @@ var ts; } } function spanInVariableDeclaration(variableDeclaration) { - if (variableDeclaration.parent.kind === 169 /* ForInStatement */) { + if (variableDeclaration.parent.kind === 170 /* ForInStatement */) { return spanInNode(variableDeclaration.parent); } - var isParentVariableStatement = variableDeclaration.parent.kind === 162 /* VariableStatement */; - var isDeclarationOfForStatement = variableDeclaration.parent.kind === 168 /* ForStatement */ && ts.contains(variableDeclaration.parent.declarations, variableDeclaration); + var isParentVariableStatement = variableDeclaration.parent.kind === 163 /* VariableStatement */; + var isDeclarationOfForStatement = variableDeclaration.parent.kind === 169 /* ForStatement */ && ts.contains(variableDeclaration.parent.declarations, variableDeclaration); var declarations = isParentVariableStatement ? variableDeclaration.parent.declarations : isDeclarationOfForStatement ? variableDeclaration.parent.declarations : undefined; if (variableDeclaration.initializer || (variableDeclaration.flags & 1 /* Export */)) { if (declarations && declarations[0] === variableDeclaration) { @@ -23507,7 +23970,7 @@ var ts; } } function canFunctionHaveSpanInWholeDeclaration(functionDeclaration) { - return !!(functionDeclaration.flags & 1 /* Export */) || (functionDeclaration.parent.kind === 187 /* ClassDeclaration */ && functionDeclaration.kind !== 126 /* Constructor */); + return !!(functionDeclaration.flags & 1 /* Export */) || (functionDeclaration.parent.kind === 188 /* ClassDeclaration */ && functionDeclaration.kind !== 126 /* Constructor */); } function spanInFunctionDeclaration(functionDeclaration) { if (!functionDeclaration.body) { @@ -23527,15 +23990,15 @@ var ts; } function spanInBlock(block) { switch (block.parent.kind) { - case 191 /* ModuleDeclaration */: + case 192 /* ModuleDeclaration */: if (ts.getModuleInstanceState(block.parent) !== 1 /* Instantiated */) { return undefined; } - case 167 /* WhileStatement */: - case 165 /* IfStatement */: - case 169 /* ForInStatement */: + case 168 /* WhileStatement */: + case 166 /* IfStatement */: + case 170 /* ForInStatement */: return spanInNodeIfStartsOnSameLine(block.parent, block.statements[0]); - case 168 /* ForStatement */: + case 169 /* ForStatement */: return spanInNodeIfStartsOnSameLine(ts.findPrecedingToken(block.pos, sourceFile, block.parent), block.statements[0]); } return spanInNode(block.statements[0]); @@ -23556,34 +24019,34 @@ var ts; } function spanInOpenBraceToken(node) { switch (node.parent.kind) { - case 190 /* EnumDeclaration */: + case 191 /* EnumDeclaration */: var enumDeclaration = node.parent; return spanInNodeIfStartsOnSameLine(ts.findPrecedingToken(node.pos, sourceFile, node.parent), enumDeclaration.members.length ? enumDeclaration.members[0] : enumDeclaration.getLastToken(sourceFile)); - case 187 /* ClassDeclaration */: + case 188 /* ClassDeclaration */: var classDeclaration = node.parent; return spanInNodeIfStartsOnSameLine(ts.findPrecedingToken(node.pos, sourceFile, node.parent), classDeclaration.members.length ? classDeclaration.members[0] : classDeclaration.getLastToken(sourceFile)); - case 174 /* SwitchStatement */: + case 175 /* SwitchStatement */: return spanInNodeIfStartsOnSameLine(node.parent, node.parent.clauses[0]); } return spanInNode(node.parent); } function spanInCloseBraceToken(node) { switch (node.parent.kind) { - case 192 /* ModuleBlock */: + case 193 /* ModuleBlock */: if (ts.getModuleInstanceState(node.parent.parent) !== 1 /* Instantiated */) { return undefined; } - case 186 /* FunctionBlock */: - case 190 /* EnumDeclaration */: - case 187 /* ClassDeclaration */: + case 187 /* FunctionBlock */: + case 191 /* EnumDeclaration */: + case 188 /* ClassDeclaration */: return textSpan(node); - case 161 /* Block */: - case 180 /* TryBlock */: - case 181 /* CatchBlock */: - case 182 /* FinallyBlock */: + case 162 /* Block */: + case 181 /* TryBlock */: + case 182 /* CatchBlock */: + case 183 /* FinallyBlock */: return spanInNode(node.parent.statements[node.parent.statements.length - 1]); ; - case 174 /* SwitchStatement */: + case 175 /* SwitchStatement */: var switchStatement = node.parent; var lastClause = switchStatement.clauses[switchStatement.clauses.length - 1]; if (lastClause) { @@ -23595,7 +24058,7 @@ var ts; } } function spanInOpenParenToken(node) { - if (node.parent.kind === 166 /* DoStatement */) { + if (node.parent.kind === 167 /* DoStatement */) { return spanInPreviousNode(node); } return spanInNode(node.parent); @@ -23603,15 +24066,15 @@ var ts; function spanInCloseParenToken(node) { switch (node.parent.kind) { case 152 /* FunctionExpression */: - case 185 /* FunctionDeclaration */: + case 186 /* FunctionDeclaration */: case 153 /* ArrowFunction */: case 125 /* Method */: case 127 /* GetAccessor */: case 128 /* SetAccessor */: case 126 /* Constructor */: - case 167 /* WhileStatement */: - case 166 /* DoStatement */: - case 168 /* ForStatement */: + case 168 /* WhileStatement */: + case 167 /* DoStatement */: + case 169 /* ForStatement */: return spanInPreviousNode(node); default: return spanInNode(node.parent); @@ -23631,7 +24094,7 @@ var ts; return spanInNode(node.parent); } function spanInWhileKeyword(node) { - if (node.parent.kind === 166 /* DoStatement */) { + if (node.parent.kind === 167 /* DoStatement */) { return textSpan(node, ts.findNextToken(node.parent.expression, node.parent)); } return spanInNode(node.parent); @@ -23950,12 +24413,6 @@ var ts; return signatureInfo; }); }; - LanguageServiceShimObject.prototype.getSignatureAtPosition = function (fileName, position) { - var _this = this; - return this.forwardJSONCall("getSignatureAtPosition('" + fileName + "', " + position + ")", function () { - return _this.languageService.getSignatureAtPosition(fileName, position); - }); - }; LanguageServiceShimObject.prototype.getDefinitionAtPosition = function (fileName, position) { var _this = this; return this.forwardJSONCall("getDefinitionAtPosition('" + fileName + "', " + position + ")", function () { @@ -24082,8 +24539,8 @@ var ts; this.logger = logger; this.classifier = ts.createClassifier(this.logger); } - ClassifierShimObject.prototype.getClassificationsForLine = function (text, lexState) { - var classification = this.classifier.getClassificationsForLine(text, lexState); + ClassifierShimObject.prototype.getClassificationsForLine = function (text, lexState, classifyKeywordsInGenerics) { + var classification = this.classifier.getClassificationsForLine(text, lexState, classifyKeywordsInGenerics); var items = classification.entries; var result = ""; for (var i = 0; i < items.length; i++) { From cf3d28400e57acb5f51c7deaa02794c5f664d84b Mon Sep 17 00:00:00 2001 From: Cyrus Najmabadi Date: Wed, 26 Nov 2014 02:24:03 -0800 Subject: [PATCH 089/195] Update LKG. --- bin/tsc.js | 3 ++- bin/typescriptServices.js | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/bin/tsc.js b/bin/tsc.js index 07f12e2b334..c1ce8cee83d 100644 --- a/bin/tsc.js +++ b/bin/tsc.js @@ -9104,7 +9104,8 @@ var ts; } } function emitModuleDeclaration(node) { - if (ts.getModuleInstanceState(node) !== 1 /* Instantiated */) { + var shouldEmit = ts.getModuleInstanceState(node) === 1 /* Instantiated */ || (ts.getModuleInstanceState(node) === 2 /* ConstEnumOnly */ && compilerOptions.preserveConstEnums); + if (!shouldEmit) { return emitPinnedOrTripleSlashComments(node); } emitLeadingComments(node); diff --git a/bin/typescriptServices.js b/bin/typescriptServices.js index 3fdcc628581..8c36e0b88f6 100644 --- a/bin/typescriptServices.js +++ b/bin/typescriptServices.js @@ -8909,7 +8909,8 @@ var ts; } } function emitModuleDeclaration(node) { - if (ts.getModuleInstanceState(node) !== 1 /* Instantiated */) { + var shouldEmit = ts.getModuleInstanceState(node) === 1 /* Instantiated */ || (ts.getModuleInstanceState(node) === 2 /* ConstEnumOnly */ && compilerOptions.preserveConstEnums); + if (!shouldEmit) { return emitPinnedOrTripleSlashComments(node); } emitLeadingComments(node); From 86c7def8cc45300c80de1c56f235cf6cbcf9797d Mon Sep 17 00:00:00 2001 From: Daniel Rosenwasser Date: Wed, 26 Nov 2014 13:38:27 -0800 Subject: [PATCH 090/195] tokenUnterminated -> tokenIsUnterminated --- src/compiler/scanner.ts | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/src/compiler/scanner.ts b/src/compiler/scanner.ts index f9d23166fee..36cb50e3658 100644 --- a/src/compiler/scanner.ts +++ b/src/compiler/scanner.ts @@ -471,7 +471,7 @@ module ts { var token: SyntaxKind; var tokenValue: string; var precedingLineBreak: boolean; - var tokenUnterminated: boolean; + var tokenIsUnterminated: boolean; function error(message: DiagnosticMessage): void { if (onError) { @@ -555,7 +555,7 @@ module ts { while (true) { if (pos >= len) { result += text.substring(start, pos); - tokenUnterminated = true; + tokenIsUnterminated = true; error(Diagnostics.Unterminated_string_literal); break; } @@ -573,7 +573,7 @@ module ts { } if (isLineBreak(ch)) { result += text.substring(start, pos); - tokenUnterminated = true; + tokenIsUnterminated = true; error(Diagnostics.Unterminated_string_literal); break; } @@ -597,7 +597,7 @@ module ts { while (true) { if (pos >= len) { contents += text.substring(start, pos); - tokenUnterminated = true; + tokenIsUnterminated = true; error(Diagnostics.Unterminated_template_literal); resultingToken = startedWithBacktick ? SyntaxKind.NoSubstitutionTemplateLiteral : SyntaxKind.TemplateTail; break; @@ -761,7 +761,7 @@ module ts { function scan(): SyntaxKind { startPos = pos; precedingLineBreak = false; - tokenUnterminated = false; + tokenIsUnterminated = false; while (true) { tokenPos = pos; if (pos >= len) { @@ -918,7 +918,7 @@ module ts { continue; } else { - tokenUnterminated = !commentClosed; + tokenIsUnterminated = !commentClosed; return token = SyntaxKind.MultiLineCommentTrivia; } } @@ -1076,14 +1076,14 @@ module ts { // If we reach the end of a file, or hit a newline, then this is an unterminated // regex. Report error and return what we have so far. if (p >= len) { - tokenUnterminated = true; + tokenIsUnterminated = true; error(Diagnostics.Unterminated_regular_expression_literal) break; } var ch = text.charCodeAt(p); if (isLineBreak(ch)) { - tokenUnterminated = true; + tokenIsUnterminated = true; error(Diagnostics.Unterminated_regular_expression_literal) break; } @@ -1176,7 +1176,7 @@ module ts { hasPrecedingLineBreak: () => precedingLineBreak, isIdentifier: () => token === SyntaxKind.Identifier || token > SyntaxKind.LastReservedWord, isReservedWord: () => token >= SyntaxKind.FirstReservedWord && token <= SyntaxKind.LastReservedWord, - isUnterminated: () => tokenUnterminated, + isUnterminated: () => tokenIsUnterminated, reScanGreaterToken, reScanSlashToken, reScanTemplateToken, From cef50627919cd43775e5ba542ae64b71d172f9a9 Mon Sep 17 00:00:00 2001 From: Daniel Rosenwasser Date: Wed, 26 Nov 2014 16:32:30 -0800 Subject: [PATCH 091/195] Fixed issue where classifier didn't check for backslash-newline. --- src/services/services.ts | 19 ++++-- .../completionListInStringLiterals1.ts | 10 ++++ .../completionListInStringLiterals2.ts | 11 ++++ ...signatureHelpTaggedTemplatesIncomplete7.ts | 21 +++++++ ...signatureHelpTaggedTemplatesIncomplete8.ts | 18 ++++++ ...signatureHelpTaggedTemplatesIncomplete9.ts | 18 ++++++ .../cases/unittests/services/colorization.ts | 60 ++++++++++++++++++- 7 files changed, 150 insertions(+), 7 deletions(-) create mode 100644 tests/cases/fourslash/completionListInStringLiterals1.ts create mode 100644 tests/cases/fourslash/completionListInStringLiterals2.ts create mode 100644 tests/cases/fourslash/signatureHelpTaggedTemplatesIncomplete7.ts create mode 100644 tests/cases/fourslash/signatureHelpTaggedTemplatesIncomplete8.ts create mode 100644 tests/cases/fourslash/signatureHelpTaggedTemplatesIncomplete9.ts diff --git a/src/services/services.ts b/src/services/services.ts index 8ff61b05a7a..68177066b86 100644 --- a/src/services/services.ts +++ b/src/services/services.ts @@ -5549,15 +5549,24 @@ module ts { addResult(end - start, classFromKind(token)); if (end >= text.length) { - // We're at the end. if (token === SyntaxKind.StringLiteral) { // Check to see if we finished up on a multiline string literal. var tokenText = scanner.getTokenText(); if (scanner.isUnterminated()) { - var quoteChar = tokenText.charCodeAt(0); - result.finalLexState = quoteChar === CharacterCodes.doubleQuote - ? EndOfLineState.InDoubleQuoteStringLiteral - : EndOfLineState.InSingleQuoteStringLiteral; + var lastCharIndex = tokenText.length - 1; + + var numBackslashes = 0; + while (tokenText.charCodeAt(lastCharIndex - numBackslashes) === CharacterCodes.backslash) { + numBackslashes++; + } + + // If we have an odd number of backslashes, then the multiline string is unclosed + if (numBackslashes & 1) { + var quoteChar = tokenText.charCodeAt(0); + result.finalLexState = quoteChar === CharacterCodes.doubleQuote + ? EndOfLineState.InDoubleQuoteStringLiteral + : EndOfLineState.InSingleQuoteStringLiteral; + } } } else if (token === SyntaxKind.MultiLineCommentTrivia) { diff --git a/tests/cases/fourslash/completionListInStringLiterals1.ts b/tests/cases/fourslash/completionListInStringLiterals1.ts new file mode 100644 index 00000000000..e394e8dfe7c --- /dev/null +++ b/tests/cases/fourslash/completionListInStringLiterals1.ts @@ -0,0 +1,10 @@ +/// + +////"/*1*/ /*2*/\/*3*/ +//// /*4*/ \\/*5*/ + +test.markers().forEach(marker => { + goTo.position(marker.position); + + verify.completionListIsEmpty() +}); \ No newline at end of file diff --git a/tests/cases/fourslash/completionListInStringLiterals2.ts b/tests/cases/fourslash/completionListInStringLiterals2.ts new file mode 100644 index 00000000000..10cb05a4f91 --- /dev/null +++ b/tests/cases/fourslash/completionListInStringLiterals2.ts @@ -0,0 +1,11 @@ +/// + +////"/*1*/ /*2*/\/*3*/ +//// /*4*/ \\\/*5*/ +//// /*6*/ + +test.markers().forEach(marker => { + goTo.position(marker.position); + + verify.completionListIsEmpty() +}); \ No newline at end of file diff --git a/tests/cases/fourslash/signatureHelpTaggedTemplatesIncomplete7.ts b/tests/cases/fourslash/signatureHelpTaggedTemplatesIncomplete7.ts new file mode 100644 index 00000000000..ae322acf0b8 --- /dev/null +++ b/tests/cases/fourslash/signatureHelpTaggedTemplatesIncomplete7.ts @@ -0,0 +1,21 @@ +/// + +//// function f(templateStrings, x, y, z) { return 10; } +//// function g(templateStrings, x, y, z) { return ""; } +//// +//// f ` ${ 123 } /*1*/${ } /*2*/\/*3*/ +//// /*4*/\\/*5*/ +//// /*6*/\\\/*7*/ +//// /*8*/ + +test.markers().forEach(m => { + goTo.position(m.position); + + verify.signatureHelpCountIs(1); + verify.signatureHelpArgumentCountIs(1); + + verify.currentSignatureParameterCountIs(4); + verify.currentSignatureHelpIs('f(templateStrings: any, x: any, y: any, z: any): number'); + verify.currentParameterHelpArgumentNameIs("templateStrings"); + verify.currentParameterSpanIs("templateStrings: any"); +}); \ No newline at end of file diff --git a/tests/cases/fourslash/signatureHelpTaggedTemplatesIncomplete8.ts b/tests/cases/fourslash/signatureHelpTaggedTemplatesIncomplete8.ts new file mode 100644 index 00000000000..86455a65ccd --- /dev/null +++ b/tests/cases/fourslash/signatureHelpTaggedTemplatesIncomplete8.ts @@ -0,0 +1,18 @@ +/// + +//// function f(templateStrings, x, y, z) { return 10; } +//// function g(templateStrings, x, y, z) { return ""; } +//// +//// f `/*1*/\/*2*/`/*3*/ /*4*/ + +test.markers().forEach(m => { + goTo.position(m.position); + + verify.signatureHelpCountIs(1); + verify.signatureHelpArgumentCountIs(1); + + verify.currentSignatureParameterCountIs(4); + verify.currentSignatureHelpIs('f(templateStrings: any, x: any, y: any, z: any): number'); + verify.currentParameterHelpArgumentNameIs("templateStrings"); + verify.currentParameterSpanIs("templateStrings: any"); +}); \ No newline at end of file diff --git a/tests/cases/fourslash/signatureHelpTaggedTemplatesIncomplete9.ts b/tests/cases/fourslash/signatureHelpTaggedTemplatesIncomplete9.ts new file mode 100644 index 00000000000..de42a33b397 --- /dev/null +++ b/tests/cases/fourslash/signatureHelpTaggedTemplatesIncomplete9.ts @@ -0,0 +1,18 @@ +/// + +//// function f(templateStrings, x, y, z) { return 10; } +//// function g(templateStrings, x, y, z) { return ""; } +//// +//// f `/*1*/ \\\/*2*/`/*3*/ /*4*/ + +test.markers().forEach(m => { + goTo.position(m.position); + + verify.signatureHelpCountIs(1); + verify.signatureHelpArgumentCountIs(1); + + verify.currentSignatureParameterCountIs(4); + verify.currentSignatureHelpIs('f(templateStrings: any, x: any, y: any, z: any): number'); + verify.currentParameterHelpArgumentNameIs("templateStrings"); + verify.currentParameterSpanIs("templateStrings: any"); +}); \ No newline at end of file diff --git a/tests/cases/unittests/services/colorization.ts b/tests/cases/unittests/services/colorization.ts index 3031cefb56c..b29f119f944 100644 --- a/tests/cases/unittests/services/colorization.ts +++ b/tests/cases/unittests/services/colorization.ts @@ -130,20 +130,76 @@ describe('Colorization', function () { operator(",")); }); - it("correctly classifies an unterminated multi-line string", function () { + it("correctly classifies a multi-line string with one backslash", function () { test("'line1\\", ts.EndOfLineState.Start, stringLiteral("'line1\\"), finalEndOfLineState(ts.EndOfLineState.InSingleQuoteStringLiteral)); }); - it("correctly classifies the second line of an unterminated multi-line string", function () { + it("correctly classifies a multi-line string with three backslashes", function () { + test("'line1\\\\\\", + ts.EndOfLineState.Start, + stringLiteral("'line1\\\\\\"), + finalEndOfLineState(ts.EndOfLineState.InSingleQuoteStringLiteral)); + }); + + it("correctly classifies an unterminated single-line string with no backslashes", function () { + test("'line1", + ts.EndOfLineState.Start, + stringLiteral("'line1"), + finalEndOfLineState(ts.EndOfLineState.Start)); + }); + + it("correctly classifies an unterminated single-line string with two backslashes", function () { + test("'line1\\\\", + ts.EndOfLineState.Start, + stringLiteral("'line1\\\\"), + finalEndOfLineState(ts.EndOfLineState.Start)); + }); + + it("correctly classifies an unterminated single-line string with four backslashes", function () { + test("'line1\\\\\\\\", + ts.EndOfLineState.Start, + stringLiteral("'line1\\\\\\\\"), + finalEndOfLineState(ts.EndOfLineState.Start)); + }); + + it("correctly classifies the continuing line of a multi-line string ending in one backslash", function () { test("\\", ts.EndOfLineState.InDoubleQuoteStringLiteral, stringLiteral("\\"), finalEndOfLineState(ts.EndOfLineState.InDoubleQuoteStringLiteral)); }); + it("correctly classifies the continuing line of a multi-line string ending in three backslashes", function () { + test("\\", + ts.EndOfLineState.InDoubleQuoteStringLiteral, + stringLiteral("\\"), + finalEndOfLineState(ts.EndOfLineState.InDoubleQuoteStringLiteral)); + }); + + it("correctly classifies the last line of an unterminated multi-line string ending in no backslashes", function () { + test(" ", + ts.EndOfLineState.InDoubleQuoteStringLiteral, + stringLiteral(" "), + finalEndOfLineState(ts.EndOfLineState.Start)); + }); + + it("correctly classifies the last line of an unterminated multi-line string ending in two backslashes", function () { + test("\\\\", + ts.EndOfLineState.InDoubleQuoteStringLiteral, + stringLiteral("\\\\"), + finalEndOfLineState(ts.EndOfLineState.Start)); + }); + + it("correctly classifies the last line of an unterminated multi-line string ending in four backslashes", function () { + test("\\\\\\\\", + ts.EndOfLineState.InDoubleQuoteStringLiteral, + stringLiteral("\\\\\\\\"), + finalEndOfLineState(ts.EndOfLineState.Start)); + }); + it("correctly classifies the last line of a multi-line string", function () { test("'", ts.EndOfLineState.InSingleQuoteStringLiteral, From 0c348d28d54fecce630bf73def64e961f03b266d Mon Sep 17 00:00:00 2001 From: Daniel Rosenwasser Date: Wed, 26 Nov 2014 17:00:44 -0800 Subject: [PATCH 092/195] Confused count with index. --- .../cases/fourslash/signatureHelpTaggedTemplatesIncomplete7.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/cases/fourslash/signatureHelpTaggedTemplatesIncomplete7.ts b/tests/cases/fourslash/signatureHelpTaggedTemplatesIncomplete7.ts index ae322acf0b8..a8afe2d9c6d 100644 --- a/tests/cases/fourslash/signatureHelpTaggedTemplatesIncomplete7.ts +++ b/tests/cases/fourslash/signatureHelpTaggedTemplatesIncomplete7.ts @@ -12,7 +12,7 @@ test.markers().forEach(m => { goTo.position(m.position); verify.signatureHelpCountIs(1); - verify.signatureHelpArgumentCountIs(1); + verify.signatureHelpArgumentCountIs(3); verify.currentSignatureParameterCountIs(4); verify.currentSignatureHelpIs('f(templateStrings: any, x: any, y: any, z: any): number'); From ae384470a4ba370e068a356cd65e4195e99d296f Mon Sep 17 00:00:00 2001 From: Daniel Rosenwasser Date: Wed, 26 Nov 2014 17:14:08 -0800 Subject: [PATCH 093/195] Tests for terminated/unterminated template strings. --- tests/baselines/reference/templateStringTermination1.js | 6 ++++++ .../baselines/reference/templateStringTermination1.types | 4 ++++ .../baselines/reference/templateStringTermination1_ES6.js | 5 +++++ .../reference/templateStringTermination1_ES6.types | 3 +++ tests/baselines/reference/templateStringTermination2.js | 6 ++++++ .../baselines/reference/templateStringTermination2.types | 4 ++++ .../baselines/reference/templateStringTermination2_ES6.js | 5 +++++ .../reference/templateStringTermination2_ES6.types | 3 +++ tests/baselines/reference/templateStringTermination3.js | 6 ++++++ .../baselines/reference/templateStringTermination3.types | 4 ++++ .../baselines/reference/templateStringTermination3_ES6.js | 5 +++++ .../reference/templateStringTermination3_ES6.types | 3 +++ tests/baselines/reference/templateStringTermination4.js | 6 ++++++ .../baselines/reference/templateStringTermination4.types | 4 ++++ .../baselines/reference/templateStringTermination4_ES6.js | 5 +++++ .../reference/templateStringTermination4_ES6.types | 3 +++ tests/baselines/reference/templateStringTermination5.js | 6 ++++++ .../baselines/reference/templateStringTermination5.types | 4 ++++ .../baselines/reference/templateStringTermination5_ES6.js | 5 +++++ .../reference/templateStringTermination5_ES6.types | 3 +++ .../reference/templateStringUnterminated1.errors.txt | 8 ++++++++ .../reference/templateStringUnterminated1_ES6.errors.txt | 7 +++++++ .../reference/templateStringUnterminated2.errors.txt | 8 ++++++++ .../reference/templateStringUnterminated2_ES6.errors.txt | 7 +++++++ .../reference/templateStringUnterminated3.errors.txt | 8 ++++++++ .../reference/templateStringUnterminated3_ES6.errors.txt | 7 +++++++ .../reference/templateStringUnterminated4.errors.txt | 8 ++++++++ .../reference/templateStringUnterminated4_ES6.errors.txt | 7 +++++++ .../reference/templateStringUnterminated5.errors.txt | 8 ++++++++ .../reference/templateStringUnterminated5_ES6.errors.txt | 7 +++++++ .../es6/templates/templateStringTermination1.ts | 2 ++ .../es6/templates/templateStringTermination1_ES6.ts | 2 ++ .../es6/templates/templateStringTermination2.ts | 2 ++ .../es6/templates/templateStringTermination2_ES6.ts | 2 ++ .../es6/templates/templateStringTermination3.ts | 2 ++ .../es6/templates/templateStringTermination3_ES6.ts | 2 ++ .../es6/templates/templateStringTermination4.ts | 2 ++ .../es6/templates/templateStringTermination4_ES6.ts | 2 ++ .../es6/templates/templateStringTermination5.ts | 2 ++ .../es6/templates/templateStringTermination5_ES6.ts | 2 ++ .../es6/templates/templateStringUnterminated1.ts | 2 ++ .../es6/templates/templateStringUnterminated1_ES6.ts | 2 ++ .../es6/templates/templateStringUnterminated2.ts | 2 ++ .../es6/templates/templateStringUnterminated2_ES6.ts | 2 ++ .../es6/templates/templateStringUnterminated3.ts | 2 ++ .../es6/templates/templateStringUnterminated3_ES6.ts | 2 ++ .../es6/templates/templateStringUnterminated4.ts | 2 ++ .../es6/templates/templateStringUnterminated4_ES6.ts | 2 ++ .../es6/templates/templateStringUnterminated5.ts | 2 ++ .../es6/templates/templateStringUnterminated5_ES6.ts | 2 ++ 50 files changed, 205 insertions(+) create mode 100644 tests/baselines/reference/templateStringTermination1.js create mode 100644 tests/baselines/reference/templateStringTermination1.types create mode 100644 tests/baselines/reference/templateStringTermination1_ES6.js create mode 100644 tests/baselines/reference/templateStringTermination1_ES6.types create mode 100644 tests/baselines/reference/templateStringTermination2.js create mode 100644 tests/baselines/reference/templateStringTermination2.types create mode 100644 tests/baselines/reference/templateStringTermination2_ES6.js create mode 100644 tests/baselines/reference/templateStringTermination2_ES6.types create mode 100644 tests/baselines/reference/templateStringTermination3.js create mode 100644 tests/baselines/reference/templateStringTermination3.types create mode 100644 tests/baselines/reference/templateStringTermination3_ES6.js create mode 100644 tests/baselines/reference/templateStringTermination3_ES6.types create mode 100644 tests/baselines/reference/templateStringTermination4.js create mode 100644 tests/baselines/reference/templateStringTermination4.types create mode 100644 tests/baselines/reference/templateStringTermination4_ES6.js create mode 100644 tests/baselines/reference/templateStringTermination4_ES6.types create mode 100644 tests/baselines/reference/templateStringTermination5.js create mode 100644 tests/baselines/reference/templateStringTermination5.types create mode 100644 tests/baselines/reference/templateStringTermination5_ES6.js create mode 100644 tests/baselines/reference/templateStringTermination5_ES6.types create mode 100644 tests/baselines/reference/templateStringUnterminated1.errors.txt create mode 100644 tests/baselines/reference/templateStringUnterminated1_ES6.errors.txt create mode 100644 tests/baselines/reference/templateStringUnterminated2.errors.txt create mode 100644 tests/baselines/reference/templateStringUnterminated2_ES6.errors.txt create mode 100644 tests/baselines/reference/templateStringUnterminated3.errors.txt create mode 100644 tests/baselines/reference/templateStringUnterminated3_ES6.errors.txt create mode 100644 tests/baselines/reference/templateStringUnterminated4.errors.txt create mode 100644 tests/baselines/reference/templateStringUnterminated4_ES6.errors.txt create mode 100644 tests/baselines/reference/templateStringUnterminated5.errors.txt create mode 100644 tests/baselines/reference/templateStringUnterminated5_ES6.errors.txt create mode 100644 tests/cases/conformance/es6/templates/templateStringTermination1.ts create mode 100644 tests/cases/conformance/es6/templates/templateStringTermination1_ES6.ts create mode 100644 tests/cases/conformance/es6/templates/templateStringTermination2.ts create mode 100644 tests/cases/conformance/es6/templates/templateStringTermination2_ES6.ts create mode 100644 tests/cases/conformance/es6/templates/templateStringTermination3.ts create mode 100644 tests/cases/conformance/es6/templates/templateStringTermination3_ES6.ts create mode 100644 tests/cases/conformance/es6/templates/templateStringTermination4.ts create mode 100644 tests/cases/conformance/es6/templates/templateStringTermination4_ES6.ts create mode 100644 tests/cases/conformance/es6/templates/templateStringTermination5.ts create mode 100644 tests/cases/conformance/es6/templates/templateStringTermination5_ES6.ts create mode 100644 tests/cases/conformance/es6/templates/templateStringUnterminated1.ts create mode 100644 tests/cases/conformance/es6/templates/templateStringUnterminated1_ES6.ts create mode 100644 tests/cases/conformance/es6/templates/templateStringUnterminated2.ts create mode 100644 tests/cases/conformance/es6/templates/templateStringUnterminated2_ES6.ts create mode 100644 tests/cases/conformance/es6/templates/templateStringUnterminated3.ts create mode 100644 tests/cases/conformance/es6/templates/templateStringUnterminated3_ES6.ts create mode 100644 tests/cases/conformance/es6/templates/templateStringUnterminated4.ts create mode 100644 tests/cases/conformance/es6/templates/templateStringUnterminated4_ES6.ts create mode 100644 tests/cases/conformance/es6/templates/templateStringUnterminated5.ts create mode 100644 tests/cases/conformance/es6/templates/templateStringUnterminated5_ES6.ts diff --git a/tests/baselines/reference/templateStringTermination1.js b/tests/baselines/reference/templateStringTermination1.js new file mode 100644 index 00000000000..2243871f9ae --- /dev/null +++ b/tests/baselines/reference/templateStringTermination1.js @@ -0,0 +1,6 @@ +//// [templateStringTermination1.ts] + +`` + +//// [templateStringTermination1.js] +""; diff --git a/tests/baselines/reference/templateStringTermination1.types b/tests/baselines/reference/templateStringTermination1.types new file mode 100644 index 00000000000..5c3cf73af45 --- /dev/null +++ b/tests/baselines/reference/templateStringTermination1.types @@ -0,0 +1,4 @@ +=== tests/cases/conformance/es6/templates/templateStringTermination1.ts === + +No type information for this code.`` +No type information for this code. \ No newline at end of file diff --git a/tests/baselines/reference/templateStringTermination1_ES6.js b/tests/baselines/reference/templateStringTermination1_ES6.js new file mode 100644 index 00000000000..4d4dc6a2d9c --- /dev/null +++ b/tests/baselines/reference/templateStringTermination1_ES6.js @@ -0,0 +1,5 @@ +//// [templateStringTermination1_ES6.ts] +`` + +//// [templateStringTermination1_ES6.js] +``; diff --git a/tests/baselines/reference/templateStringTermination1_ES6.types b/tests/baselines/reference/templateStringTermination1_ES6.types new file mode 100644 index 00000000000..b0829b31b67 --- /dev/null +++ b/tests/baselines/reference/templateStringTermination1_ES6.types @@ -0,0 +1,3 @@ +=== tests/cases/conformance/es6/templates/templateStringTermination1_ES6.ts === +`` +No type information for this code. \ No newline at end of file diff --git a/tests/baselines/reference/templateStringTermination2.js b/tests/baselines/reference/templateStringTermination2.js new file mode 100644 index 00000000000..de7792482ee --- /dev/null +++ b/tests/baselines/reference/templateStringTermination2.js @@ -0,0 +1,6 @@ +//// [templateStringTermination2.ts] + +`\\` + +//// [templateStringTermination2.js] +"\"; diff --git a/tests/baselines/reference/templateStringTermination2.types b/tests/baselines/reference/templateStringTermination2.types new file mode 100644 index 00000000000..927f257c21f --- /dev/null +++ b/tests/baselines/reference/templateStringTermination2.types @@ -0,0 +1,4 @@ +=== tests/cases/conformance/es6/templates/templateStringTermination2.ts === + +No type information for this code.`\\` +No type information for this code. \ No newline at end of file diff --git a/tests/baselines/reference/templateStringTermination2_ES6.js b/tests/baselines/reference/templateStringTermination2_ES6.js new file mode 100644 index 00000000000..b2a8459968f --- /dev/null +++ b/tests/baselines/reference/templateStringTermination2_ES6.js @@ -0,0 +1,5 @@ +//// [templateStringTermination2_ES6.ts] +`\\` + +//// [templateStringTermination2_ES6.js] +`\\`; diff --git a/tests/baselines/reference/templateStringTermination2_ES6.types b/tests/baselines/reference/templateStringTermination2_ES6.types new file mode 100644 index 00000000000..21bc0e07a23 --- /dev/null +++ b/tests/baselines/reference/templateStringTermination2_ES6.types @@ -0,0 +1,3 @@ +=== tests/cases/conformance/es6/templates/templateStringTermination2_ES6.ts === +`\\` +No type information for this code. \ No newline at end of file diff --git a/tests/baselines/reference/templateStringTermination3.js b/tests/baselines/reference/templateStringTermination3.js new file mode 100644 index 00000000000..1bb2c2ab007 --- /dev/null +++ b/tests/baselines/reference/templateStringTermination3.js @@ -0,0 +1,6 @@ +//// [templateStringTermination3.ts] + +`\`` + +//// [templateStringTermination3.js] +"`"; diff --git a/tests/baselines/reference/templateStringTermination3.types b/tests/baselines/reference/templateStringTermination3.types new file mode 100644 index 00000000000..a59aef6bfea --- /dev/null +++ b/tests/baselines/reference/templateStringTermination3.types @@ -0,0 +1,4 @@ +=== tests/cases/conformance/es6/templates/templateStringTermination3.ts === + +No type information for this code.`\`` +No type information for this code. \ No newline at end of file diff --git a/tests/baselines/reference/templateStringTermination3_ES6.js b/tests/baselines/reference/templateStringTermination3_ES6.js new file mode 100644 index 00000000000..5c632fe83b3 --- /dev/null +++ b/tests/baselines/reference/templateStringTermination3_ES6.js @@ -0,0 +1,5 @@ +//// [templateStringTermination3_ES6.ts] +`\`` + +//// [templateStringTermination3_ES6.js] +`\``; diff --git a/tests/baselines/reference/templateStringTermination3_ES6.types b/tests/baselines/reference/templateStringTermination3_ES6.types new file mode 100644 index 00000000000..8d0119ee5c7 --- /dev/null +++ b/tests/baselines/reference/templateStringTermination3_ES6.types @@ -0,0 +1,3 @@ +=== tests/cases/conformance/es6/templates/templateStringTermination3_ES6.ts === +`\`` +No type information for this code. \ No newline at end of file diff --git a/tests/baselines/reference/templateStringTermination4.js b/tests/baselines/reference/templateStringTermination4.js new file mode 100644 index 00000000000..7ef49703665 --- /dev/null +++ b/tests/baselines/reference/templateStringTermination4.js @@ -0,0 +1,6 @@ +//// [templateStringTermination4.ts] + +`\\\\` + +//// [templateStringTermination4.js] +"\\"; diff --git a/tests/baselines/reference/templateStringTermination4.types b/tests/baselines/reference/templateStringTermination4.types new file mode 100644 index 00000000000..ecf2ad9749f --- /dev/null +++ b/tests/baselines/reference/templateStringTermination4.types @@ -0,0 +1,4 @@ +=== tests/cases/conformance/es6/templates/templateStringTermination4.ts === + +No type information for this code.`\\\\` +No type information for this code. \ No newline at end of file diff --git a/tests/baselines/reference/templateStringTermination4_ES6.js b/tests/baselines/reference/templateStringTermination4_ES6.js new file mode 100644 index 00000000000..c177f863793 --- /dev/null +++ b/tests/baselines/reference/templateStringTermination4_ES6.js @@ -0,0 +1,5 @@ +//// [templateStringTermination4_ES6.ts] +`\\\\` + +//// [templateStringTermination4_ES6.js] +`\\\\`; diff --git a/tests/baselines/reference/templateStringTermination4_ES6.types b/tests/baselines/reference/templateStringTermination4_ES6.types new file mode 100644 index 00000000000..18f5d6f7bd7 --- /dev/null +++ b/tests/baselines/reference/templateStringTermination4_ES6.types @@ -0,0 +1,3 @@ +=== tests/cases/conformance/es6/templates/templateStringTermination4_ES6.ts === +`\\\\` +No type information for this code. \ No newline at end of file diff --git a/tests/baselines/reference/templateStringTermination5.js b/tests/baselines/reference/templateStringTermination5.js new file mode 100644 index 00000000000..af7f1d6a0a6 --- /dev/null +++ b/tests/baselines/reference/templateStringTermination5.js @@ -0,0 +1,6 @@ +//// [templateStringTermination5.ts] + +`\\\\\\` + +//// [templateStringTermination5.js] +"\\\"; diff --git a/tests/baselines/reference/templateStringTermination5.types b/tests/baselines/reference/templateStringTermination5.types new file mode 100644 index 00000000000..8ae94a18038 --- /dev/null +++ b/tests/baselines/reference/templateStringTermination5.types @@ -0,0 +1,4 @@ +=== tests/cases/conformance/es6/templates/templateStringTermination5.ts === + +No type information for this code.`\\\\\\` +No type information for this code. \ No newline at end of file diff --git a/tests/baselines/reference/templateStringTermination5_ES6.js b/tests/baselines/reference/templateStringTermination5_ES6.js new file mode 100644 index 00000000000..120b72970ae --- /dev/null +++ b/tests/baselines/reference/templateStringTermination5_ES6.js @@ -0,0 +1,5 @@ +//// [templateStringTermination5_ES6.ts] +`\\\\\\` + +//// [templateStringTermination5_ES6.js] +`\\\\\\`; diff --git a/tests/baselines/reference/templateStringTermination5_ES6.types b/tests/baselines/reference/templateStringTermination5_ES6.types new file mode 100644 index 00000000000..c687c51df9f --- /dev/null +++ b/tests/baselines/reference/templateStringTermination5_ES6.types @@ -0,0 +1,3 @@ +=== tests/cases/conformance/es6/templates/templateStringTermination5_ES6.ts === +`\\\\\\` +No type information for this code. \ No newline at end of file diff --git a/tests/baselines/reference/templateStringUnterminated1.errors.txt b/tests/baselines/reference/templateStringUnterminated1.errors.txt new file mode 100644 index 00000000000..3353c062448 --- /dev/null +++ b/tests/baselines/reference/templateStringUnterminated1.errors.txt @@ -0,0 +1,8 @@ +tests/cases/conformance/es6/templates/templateStringUnterminated1.ts(2,2): error TS1160: Unterminated template literal. + + +==== tests/cases/conformance/es6/templates/templateStringUnterminated1.ts (1 errors) ==== + + ` + +!!! error TS1160: Unterminated template literal. \ No newline at end of file diff --git a/tests/baselines/reference/templateStringUnterminated1_ES6.errors.txt b/tests/baselines/reference/templateStringUnterminated1_ES6.errors.txt new file mode 100644 index 00000000000..3d55b8aa1ef --- /dev/null +++ b/tests/baselines/reference/templateStringUnterminated1_ES6.errors.txt @@ -0,0 +1,7 @@ +tests/cases/conformance/es6/templates/templateStringUnterminated1_ES6.ts(1,2): error TS1160: Unterminated template literal. + + +==== tests/cases/conformance/es6/templates/templateStringUnterminated1_ES6.ts (1 errors) ==== + ` + +!!! error TS1160: Unterminated template literal. \ No newline at end of file diff --git a/tests/baselines/reference/templateStringUnterminated2.errors.txt b/tests/baselines/reference/templateStringUnterminated2.errors.txt new file mode 100644 index 00000000000..0fd78e097b0 --- /dev/null +++ b/tests/baselines/reference/templateStringUnterminated2.errors.txt @@ -0,0 +1,8 @@ +tests/cases/conformance/es6/templates/templateStringUnterminated2.ts(2,4): error TS1160: Unterminated template literal. + + +==== tests/cases/conformance/es6/templates/templateStringUnterminated2.ts (1 errors) ==== + + `\` + +!!! error TS1160: Unterminated template literal. \ No newline at end of file diff --git a/tests/baselines/reference/templateStringUnterminated2_ES6.errors.txt b/tests/baselines/reference/templateStringUnterminated2_ES6.errors.txt new file mode 100644 index 00000000000..7a5bd9a7789 --- /dev/null +++ b/tests/baselines/reference/templateStringUnterminated2_ES6.errors.txt @@ -0,0 +1,7 @@ +tests/cases/conformance/es6/templates/templateStringUnterminated2_ES6.ts(1,4): error TS1160: Unterminated template literal. + + +==== tests/cases/conformance/es6/templates/templateStringUnterminated2_ES6.ts (1 errors) ==== + `\` + +!!! error TS1160: Unterminated template literal. \ No newline at end of file diff --git a/tests/baselines/reference/templateStringUnterminated3.errors.txt b/tests/baselines/reference/templateStringUnterminated3.errors.txt new file mode 100644 index 00000000000..1b25de284da --- /dev/null +++ b/tests/baselines/reference/templateStringUnterminated3.errors.txt @@ -0,0 +1,8 @@ +tests/cases/conformance/es6/templates/templateStringUnterminated3.ts(2,4): error TS1160: Unterminated template literal. + + +==== tests/cases/conformance/es6/templates/templateStringUnterminated3.ts (1 errors) ==== + + `\\ + +!!! error TS1160: Unterminated template literal. \ No newline at end of file diff --git a/tests/baselines/reference/templateStringUnterminated3_ES6.errors.txt b/tests/baselines/reference/templateStringUnterminated3_ES6.errors.txt new file mode 100644 index 00000000000..e41c0e93622 --- /dev/null +++ b/tests/baselines/reference/templateStringUnterminated3_ES6.errors.txt @@ -0,0 +1,7 @@ +tests/cases/conformance/es6/templates/templateStringUnterminated3_ES6.ts(1,4): error TS1160: Unterminated template literal. + + +==== tests/cases/conformance/es6/templates/templateStringUnterminated3_ES6.ts (1 errors) ==== + `\\ + +!!! error TS1160: Unterminated template literal. \ No newline at end of file diff --git a/tests/baselines/reference/templateStringUnterminated4.errors.txt b/tests/baselines/reference/templateStringUnterminated4.errors.txt new file mode 100644 index 00000000000..8eb41921187 --- /dev/null +++ b/tests/baselines/reference/templateStringUnterminated4.errors.txt @@ -0,0 +1,8 @@ +tests/cases/conformance/es6/templates/templateStringUnterminated4.ts(2,6): error TS1160: Unterminated template literal. + + +==== tests/cases/conformance/es6/templates/templateStringUnterminated4.ts (1 errors) ==== + + `\\\` + +!!! error TS1160: Unterminated template literal. \ No newline at end of file diff --git a/tests/baselines/reference/templateStringUnterminated4_ES6.errors.txt b/tests/baselines/reference/templateStringUnterminated4_ES6.errors.txt new file mode 100644 index 00000000000..a677836b7a4 --- /dev/null +++ b/tests/baselines/reference/templateStringUnterminated4_ES6.errors.txt @@ -0,0 +1,7 @@ +tests/cases/conformance/es6/templates/templateStringUnterminated4_ES6.ts(1,6): error TS1160: Unterminated template literal. + + +==== tests/cases/conformance/es6/templates/templateStringUnterminated4_ES6.ts (1 errors) ==== + `\\\` + +!!! error TS1160: Unterminated template literal. \ No newline at end of file diff --git a/tests/baselines/reference/templateStringUnterminated5.errors.txt b/tests/baselines/reference/templateStringUnterminated5.errors.txt new file mode 100644 index 00000000000..20fd54e8112 --- /dev/null +++ b/tests/baselines/reference/templateStringUnterminated5.errors.txt @@ -0,0 +1,8 @@ +tests/cases/conformance/es6/templates/templateStringUnterminated5.ts(2,8): error TS1160: Unterminated template literal. + + +==== tests/cases/conformance/es6/templates/templateStringUnterminated5.ts (1 errors) ==== + + `\\\\\` + +!!! error TS1160: Unterminated template literal. \ No newline at end of file diff --git a/tests/baselines/reference/templateStringUnterminated5_ES6.errors.txt b/tests/baselines/reference/templateStringUnterminated5_ES6.errors.txt new file mode 100644 index 00000000000..be279696e1d --- /dev/null +++ b/tests/baselines/reference/templateStringUnterminated5_ES6.errors.txt @@ -0,0 +1,7 @@ +tests/cases/conformance/es6/templates/templateStringUnterminated5_ES6.ts(1,8): error TS1160: Unterminated template literal. + + +==== tests/cases/conformance/es6/templates/templateStringUnterminated5_ES6.ts (1 errors) ==== + `\\\\\` + +!!! error TS1160: Unterminated template literal. \ No newline at end of file diff --git a/tests/cases/conformance/es6/templates/templateStringTermination1.ts b/tests/cases/conformance/es6/templates/templateStringTermination1.ts new file mode 100644 index 00000000000..751a7917073 --- /dev/null +++ b/tests/cases/conformance/es6/templates/templateStringTermination1.ts @@ -0,0 +1,2 @@ + +`` \ No newline at end of file diff --git a/tests/cases/conformance/es6/templates/templateStringTermination1_ES6.ts b/tests/cases/conformance/es6/templates/templateStringTermination1_ES6.ts new file mode 100644 index 00000000000..f6577ea8046 --- /dev/null +++ b/tests/cases/conformance/es6/templates/templateStringTermination1_ES6.ts @@ -0,0 +1,2 @@ +// @target: ES6 +`` \ No newline at end of file diff --git a/tests/cases/conformance/es6/templates/templateStringTermination2.ts b/tests/cases/conformance/es6/templates/templateStringTermination2.ts new file mode 100644 index 00000000000..8125524cac9 --- /dev/null +++ b/tests/cases/conformance/es6/templates/templateStringTermination2.ts @@ -0,0 +1,2 @@ + +`\\` \ No newline at end of file diff --git a/tests/cases/conformance/es6/templates/templateStringTermination2_ES6.ts b/tests/cases/conformance/es6/templates/templateStringTermination2_ES6.ts new file mode 100644 index 00000000000..da00446952b --- /dev/null +++ b/tests/cases/conformance/es6/templates/templateStringTermination2_ES6.ts @@ -0,0 +1,2 @@ +// @target: ES6 +`\\` \ No newline at end of file diff --git a/tests/cases/conformance/es6/templates/templateStringTermination3.ts b/tests/cases/conformance/es6/templates/templateStringTermination3.ts new file mode 100644 index 00000000000..0e08c4915e3 --- /dev/null +++ b/tests/cases/conformance/es6/templates/templateStringTermination3.ts @@ -0,0 +1,2 @@ + +`\`` \ No newline at end of file diff --git a/tests/cases/conformance/es6/templates/templateStringTermination3_ES6.ts b/tests/cases/conformance/es6/templates/templateStringTermination3_ES6.ts new file mode 100644 index 00000000000..55c4f689a6e --- /dev/null +++ b/tests/cases/conformance/es6/templates/templateStringTermination3_ES6.ts @@ -0,0 +1,2 @@ +// @target: ES6 +`\`` \ No newline at end of file diff --git a/tests/cases/conformance/es6/templates/templateStringTermination4.ts b/tests/cases/conformance/es6/templates/templateStringTermination4.ts new file mode 100644 index 00000000000..79e622ae6d2 --- /dev/null +++ b/tests/cases/conformance/es6/templates/templateStringTermination4.ts @@ -0,0 +1,2 @@ + +`\\\\` \ No newline at end of file diff --git a/tests/cases/conformance/es6/templates/templateStringTermination4_ES6.ts b/tests/cases/conformance/es6/templates/templateStringTermination4_ES6.ts new file mode 100644 index 00000000000..657d4a6c370 --- /dev/null +++ b/tests/cases/conformance/es6/templates/templateStringTermination4_ES6.ts @@ -0,0 +1,2 @@ +// @target: ES6 +`\\\\` \ No newline at end of file diff --git a/tests/cases/conformance/es6/templates/templateStringTermination5.ts b/tests/cases/conformance/es6/templates/templateStringTermination5.ts new file mode 100644 index 00000000000..f94422a087e --- /dev/null +++ b/tests/cases/conformance/es6/templates/templateStringTermination5.ts @@ -0,0 +1,2 @@ + +`\\\\\\` \ No newline at end of file diff --git a/tests/cases/conformance/es6/templates/templateStringTermination5_ES6.ts b/tests/cases/conformance/es6/templates/templateStringTermination5_ES6.ts new file mode 100644 index 00000000000..14e66aff84a --- /dev/null +++ b/tests/cases/conformance/es6/templates/templateStringTermination5_ES6.ts @@ -0,0 +1,2 @@ +// @target: ES6 +`\\\\\\` \ No newline at end of file diff --git a/tests/cases/conformance/es6/templates/templateStringUnterminated1.ts b/tests/cases/conformance/es6/templates/templateStringUnterminated1.ts new file mode 100644 index 00000000000..7165d308229 --- /dev/null +++ b/tests/cases/conformance/es6/templates/templateStringUnterminated1.ts @@ -0,0 +1,2 @@ + +` \ No newline at end of file diff --git a/tests/cases/conformance/es6/templates/templateStringUnterminated1_ES6.ts b/tests/cases/conformance/es6/templates/templateStringUnterminated1_ES6.ts new file mode 100644 index 00000000000..0d96bf6030a --- /dev/null +++ b/tests/cases/conformance/es6/templates/templateStringUnterminated1_ES6.ts @@ -0,0 +1,2 @@ +// @target: ES6 +` \ No newline at end of file diff --git a/tests/cases/conformance/es6/templates/templateStringUnterminated2.ts b/tests/cases/conformance/es6/templates/templateStringUnterminated2.ts new file mode 100644 index 00000000000..11b2627cada --- /dev/null +++ b/tests/cases/conformance/es6/templates/templateStringUnterminated2.ts @@ -0,0 +1,2 @@ + +`\` \ No newline at end of file diff --git a/tests/cases/conformance/es6/templates/templateStringUnterminated2_ES6.ts b/tests/cases/conformance/es6/templates/templateStringUnterminated2_ES6.ts new file mode 100644 index 00000000000..6de78a5b15a --- /dev/null +++ b/tests/cases/conformance/es6/templates/templateStringUnterminated2_ES6.ts @@ -0,0 +1,2 @@ +// @target: ES6 +`\` \ No newline at end of file diff --git a/tests/cases/conformance/es6/templates/templateStringUnterminated3.ts b/tests/cases/conformance/es6/templates/templateStringUnterminated3.ts new file mode 100644 index 00000000000..2f5ae600854 --- /dev/null +++ b/tests/cases/conformance/es6/templates/templateStringUnterminated3.ts @@ -0,0 +1,2 @@ + +`\\ \ No newline at end of file diff --git a/tests/cases/conformance/es6/templates/templateStringUnterminated3_ES6.ts b/tests/cases/conformance/es6/templates/templateStringUnterminated3_ES6.ts new file mode 100644 index 00000000000..b8430e6a727 --- /dev/null +++ b/tests/cases/conformance/es6/templates/templateStringUnterminated3_ES6.ts @@ -0,0 +1,2 @@ +// @target: ES6 +`\\ \ No newline at end of file diff --git a/tests/cases/conformance/es6/templates/templateStringUnterminated4.ts b/tests/cases/conformance/es6/templates/templateStringUnterminated4.ts new file mode 100644 index 00000000000..2654b1895c6 --- /dev/null +++ b/tests/cases/conformance/es6/templates/templateStringUnterminated4.ts @@ -0,0 +1,2 @@ + +`\\\` \ No newline at end of file diff --git a/tests/cases/conformance/es6/templates/templateStringUnterminated4_ES6.ts b/tests/cases/conformance/es6/templates/templateStringUnterminated4_ES6.ts new file mode 100644 index 00000000000..4cfc3143c5c --- /dev/null +++ b/tests/cases/conformance/es6/templates/templateStringUnterminated4_ES6.ts @@ -0,0 +1,2 @@ +// @target: ES6 +`\\\` \ No newline at end of file diff --git a/tests/cases/conformance/es6/templates/templateStringUnterminated5.ts b/tests/cases/conformance/es6/templates/templateStringUnterminated5.ts new file mode 100644 index 00000000000..06574b58523 --- /dev/null +++ b/tests/cases/conformance/es6/templates/templateStringUnterminated5.ts @@ -0,0 +1,2 @@ + +`\\\\\` \ No newline at end of file diff --git a/tests/cases/conformance/es6/templates/templateStringUnterminated5_ES6.ts b/tests/cases/conformance/es6/templates/templateStringUnterminated5_ES6.ts new file mode 100644 index 00000000000..6beeb157278 --- /dev/null +++ b/tests/cases/conformance/es6/templates/templateStringUnterminated5_ES6.ts @@ -0,0 +1,2 @@ +// @target: ES6 +`\\\\\` \ No newline at end of file From 1a8816f45994af2874768076f9007c63cc5f27e6 Mon Sep 17 00:00:00 2001 From: Jason Freeman Date: Wed, 26 Nov 2014 20:10:49 -0800 Subject: [PATCH 094/195] Address feedback --- src/compiler/binder.ts | 12 ++- src/compiler/checker.ts | 75 ++++++++++--------- .../diagnosticInformationMap.generated.ts | 4 +- src/compiler/diagnosticMessages.json | 10 ++- src/compiler/parser.ts | 64 ++++++++++++---- src/compiler/types.ts | 2 +- .../FunctionDeclaration9_es6.errors.txt | 6 +- ...unctionPropertyAssignments5_es6.errors.txt | 5 +- .../MemberFunctionDeclaration3_es6.errors.txt | 6 +- tests/baselines/reference/giant.errors.txt | 32 ++++---- ...SignatureMustHaveTypeAnnotation.errors.txt | 4 +- .../indexSignatureWithInitializer.errors.txt | 4 +- .../parserComputedPropertyName13.errors.txt | 4 +- .../parserComputedPropertyName14.errors.txt | 4 +- .../parserComputedPropertyName15.errors.txt | 4 +- .../parserComputedPropertyName18.errors.txt | 4 +- .../parserComputedPropertyName19.errors.txt | 4 +- .../parserComputedPropertyName20.errors.txt | 4 +- .../parserComputedPropertyName21.errors.txt | 4 +- .../parserComputedPropertyName35.errors.txt | 9 +++ .../parserComputedPropertyName36.errors.txt | 9 +++ .../reference/parserComputedPropertyName37.js | 9 +++ .../reference/parserComputedPropertyName38.js | 13 ++++ .../parserComputedPropertyName39.errors.txt | 22 ++++++ .../reference/parserComputedPropertyName40.js | 13 ++++ .../reference/parserComputedPropertyName41.js | 9 +++ .../parserES5ComputedPropertyName5.errors.txt | 4 +- .../parserES5ComputedPropertyName8.errors.txt | 4 +- .../parserIndexSignature11.errors.txt | 4 +- .../parserIndexSignature4.errors.txt | 4 +- .../parserIndexSignature5.errors.txt | 4 +- .../reference/propertyAssignment.errors.txt | 4 +- .../parserComputedPropertyName35.ts | 4 + .../parserComputedPropertyName36.ts | 4 + .../parserComputedPropertyName37.ts | 4 + .../parserComputedPropertyName38.ts | 4 + .../parserComputedPropertyName39.ts | 5 ++ .../parserComputedPropertyName40.ts | 4 + .../parserComputedPropertyName41.ts | 4 + 39 files changed, 282 insertions(+), 107 deletions(-) create mode 100644 tests/baselines/reference/parserComputedPropertyName35.errors.txt create mode 100644 tests/baselines/reference/parserComputedPropertyName36.errors.txt create mode 100644 tests/baselines/reference/parserComputedPropertyName37.js create mode 100644 tests/baselines/reference/parserComputedPropertyName38.js create mode 100644 tests/baselines/reference/parserComputedPropertyName39.errors.txt create mode 100644 tests/baselines/reference/parserComputedPropertyName40.js create mode 100644 tests/baselines/reference/parserComputedPropertyName41.js create mode 100644 tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName35.ts create mode 100644 tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName36.ts create mode 100644 tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName37.ts create mode 100644 tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName38.ts create mode 100644 tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName39.ts create mode 100644 tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName40.ts create mode 100644 tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName41.ts diff --git a/src/compiler/binder.ts b/src/compiler/binder.ts index 195782a9e1f..5098b16e4bb 100644 --- a/src/compiler/binder.ts +++ b/src/compiler/binder.ts @@ -53,7 +53,13 @@ module ts { } } - export function hasUnknownComputedName(declaration: Declaration): boolean { + /** + * Returns false if any of the following are true: + * 1. declaration has no name + * 2. declaration has a literal name (not computed) + * 3. declaration has a computed property name that is a known symbol + */ + export function hasComputedNameButNotSymbol(declaration: Declaration): boolean { return declaration.name && declaration.name.kind === SyntaxKind.ComputedPropertyName; } @@ -94,7 +100,7 @@ module ts { if (node.kind === SyntaxKind.ModuleDeclaration && node.name.kind === SyntaxKind.StringLiteral) { return '"' + (node.name).text + '"'; } - Debug.assert(node.name.kind !== SyntaxKind.ComputedPropertyName); + Debug.assert(!hasComputedNameButNotSymbol(node)); return (node.name).text; } switch (node.kind) { @@ -118,7 +124,7 @@ module ts { function declareSymbol(symbols: SymbolTable, parent: Symbol, node: Declaration, includes: SymbolFlags, excludes: SymbolFlags): Symbol { // Nodes with computed property names will not get symbols, because the type checker // does not make properties for them. - if (node.name && node.name.kind === SyntaxKind.ComputedPropertyName) { + if (hasComputedNameButNotSymbol(node)) { return undefined; } diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index f4a94f854f7..6afbbcdd510 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -1663,7 +1663,7 @@ module ts { if (declaration.kind === SyntaxKind.Parameter) { var func = declaration.parent; // For a parameter of a set accessor, use the type of the get accessor if one is present - if (func.kind === SyntaxKind.SetAccessor && !hasUnknownComputedName(func)) { + if (func.kind === SyntaxKind.SetAccessor && !hasComputedNameButNotSymbol(func)) { var getter = getDeclarationOfKind(declaration.parent.symbol, SyntaxKind.GetAccessor); if (getter) { return getReturnTypeOfSignature(getSignatureFromDeclaration(getter)); @@ -2531,7 +2531,7 @@ module ts { else { // TypeScript 1.0 spec (April 2014): // If only one accessor includes a type annotation, the other behaves as if it had the same type annotation. - if (declaration.kind === SyntaxKind.GetAccessor && !hasUnknownComputedName(declaration)) { + if (declaration.kind === SyntaxKind.GetAccessor && !hasComputedNameButNotSymbol(declaration)) { var setter = getDeclarationOfKind(declaration.symbol, SyntaxKind.SetAccessor); returnType = getAnnotatedAccessorType(setter); } @@ -6106,6 +6106,12 @@ module ts { checkSignatureDeclaration(node); } } + + if (fullTypeCheck) { + checkCollisionWithCapturedSuperVariable(node, node.name); + checkCollisionWithCapturedThisVariable(node, node.name); + } + return type; } @@ -6708,7 +6714,9 @@ module ts { } function checkPropertyDeclaration(node: PropertyDeclaration) { - checkVariableOrPropertyCommon(node); + if (fullTypeCheck) { + checkVariableOrPropertyInFullTypeCheck(node); + } } function checkMethodDeclaration(node: MethodDeclaration) { @@ -6806,7 +6814,7 @@ module ts { } } - if (!hasUnknownComputedName(node)) { + if (!hasComputedNameButNotSymbol(node)) { // TypeScript 1.0 spec (April 2014): 8.4.3 // Accessors for the same member name must specify the same accessibility. var otherKind = node.kind === SyntaxKind.GetAccessor ? SyntaxKind.SetAccessor : SyntaxKind.GetAccessor; @@ -6816,12 +6824,12 @@ module ts { error(node.name, Diagnostics.Getter_and_setter_accessors_do_not_agree_in_visibility); } - var thisType = getAnnotatedAccessorType(node); - var otherType = getAnnotatedAccessorType(otherAccessor); + var currentAccessorType = getAnnotatedAccessorType(node); + var otherAccessorType = getAnnotatedAccessorType(otherAccessor); // TypeScript 1.0 spec (April 2014): 4.5 // If both accessors include type annotations, the specified types must be identical. - if (thisType && otherType) { - if (!isTypeIdenticalTo(thisType, otherType)) { + if (currentAccessorType && otherAccessorType) { + if (!isTypeIdenticalTo(currentAccessorType, otherAccessorType)) { error(node, Diagnostics.get_and_set_accessor_must_have_the_same_type); } } @@ -7213,7 +7221,7 @@ module ts { function checkFunctionLikeDeclaration(node: FunctionLikeDeclaration): void { checkSignatureDeclaration(node); - if (!hasUnknownComputedName(node)) { + if (!hasComputedNameButNotSymbol(node)) { // first we want to check the local symbol that contain this declaration // - if node.localSymbol !== undefined - this is current declaration is exported and localSymbol points to the local symbol // - if node.localSymbol === undefined - this node is non-exported so we can just pick the result of getSymbolOfNode @@ -7353,7 +7361,7 @@ module ts { } function needCollisionCheckForIdentifier(node: Node, identifier: Identifier, name: string): boolean { - if (!(identifier && identifier.text === name)) { + if (!identifier || identifier.text !== name) { return false; } @@ -7379,10 +7387,9 @@ module ts { } function checkCollisionWithCapturedThisVariable(node: Node, name: Identifier): void { - if (!needCollisionCheckForIdentifier(node, name, "_this")) { - return; + if (needCollisionCheckForIdentifier(node, name, "_this")) { + potentialThisCollisions.push(node); } - potentialThisCollisions.push(node); } // this function will run after checking the source file so 'CaptureThis' is correct for all nodes @@ -7477,35 +7484,35 @@ module ts { } } - function checkVariableOrPropertyCommon(node: VariableDeclaration | PropertyDeclaration) { + function checkVariableOrPropertyInFullTypeCheck(node: VariableDeclaration | PropertyDeclaration) { + Debug.assert(fullTypeCheck); checkSourceElement(node.type); - if (fullTypeCheck) { - var symbol = getSymbolOfNode(node); - var type: Type; - if (hasUnknownComputedName(node) || symbol.valueDeclaration !== node) { - type = getTypeOfVariableOrPropertyDeclaration(node); - } - else { - type = getTypeOfVariableOrParameterOrProperty(symbol); - } - - if (node.initializer && !(getNodeLinks(node.initializer).flags & NodeCheckFlags.TypeChecked)) { - // Use default messages - checkTypeAssignableTo(checkAndMarkExpression(node.initializer), type, node, /*headMessage*/ undefined); - } - - return type; + if (hasComputedNameButNotSymbol(node)) { + // Just check the initializer, since this property won't contribute to the enclosing type + return node.initializer ? checkAndMarkExpression(node.initializer) : anyType; } - // All callers who expect a value to be returned are in fullTypeCheck mode. - // If we are not in type check mode, no need to get the type. - return undefined; + var symbol = getSymbolOfNode(node); + var type: Type; + if (symbol.valueDeclaration !== node) { + type = getTypeOfVariableOrPropertyDeclaration(node); + } + else { + type = getTypeOfVariableOrParameterOrProperty(symbol); + } + + if (node.initializer && !(getNodeLinks(node.initializer).flags & NodeCheckFlags.TypeChecked)) { + // Use default messages + checkTypeAssignableTo(checkAndMarkExpression(node.initializer), type, node, /*headMessage*/ undefined); + } + + return type; } function checkVariableDeclaration(node: VariableDeclaration) { - var type = checkVariableOrPropertyCommon(node); if (fullTypeCheck) { + var type = checkVariableOrPropertyInFullTypeCheck(node); checkExportsOnMergedDeclarations(node); if (node.initializer) { checkCollisionWithConstDeclarations(node); diff --git a/src/compiler/diagnosticInformationMap.generated.ts b/src/compiler/diagnosticInformationMap.generated.ts index 5187fc2512b..4b4909a54f3 100644 --- a/src/compiler/diagnosticInformationMap.generated.ts +++ b/src/compiler/diagnosticInformationMap.generated.ts @@ -131,7 +131,9 @@ module ts { Computed_property_names_are_not_allowed_in_class_property_declarations: { code: 1166, category: DiagnosticCategory.Error, key: "Computed property names are not allowed in class property declarations." }, Computed_property_names_are_only_available_when_targeting_ECMAScript_6_and_higher: { code: 1167, category: DiagnosticCategory.Error, key: "Computed property names are only available when targeting ECMAScript 6 and higher." }, Computed_property_names_are_not_allowed_in_method_overloads: { code: 1168, category: DiagnosticCategory.Error, key: "Computed property names are not allowed in method overloads." }, - Computed_property_names_are_not_allowed_in_interfaces_or_type_literals: { code: 1169, category: DiagnosticCategory.Error, key: "Computed property names are not allowed in interfaces or type literals." }, + Computed_property_names_are_not_allowed_in_interfaces: { code: 1169, category: DiagnosticCategory.Error, key: "Computed property names are not allowed in interfaces." }, + Computed_property_names_are_not_allowed_in_type_literals: { code: 1170, category: DiagnosticCategory.Error, key: "Computed property names are not allowed in type literals." }, + A_comma_expression_is_not_allowed_in_a_computed_property_name: { code: 1171, category: DiagnosticCategory.Error, key: "A comma expression is not allowed in a computed property name." }, Duplicate_identifier_0: { code: 2300, category: DiagnosticCategory.Error, key: "Duplicate identifier '{0}'." }, Initializer_of_instance_member_variable_0_cannot_reference_identifier_1_declared_in_the_constructor: { code: 2301, category: 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: DiagnosticCategory.Error, key: "Static members cannot reference class type parameters." }, diff --git a/src/compiler/diagnosticMessages.json b/src/compiler/diagnosticMessages.json index 8b3cd797c63..c05d612b534 100644 --- a/src/compiler/diagnosticMessages.json +++ b/src/compiler/diagnosticMessages.json @@ -515,10 +515,18 @@ "category": "Error", "code": 1168 }, - "Computed property names are not allowed in interfaces or type literals.": { + "Computed property names are not allowed in interfaces.": { "category": "Error", "code": 1169 }, + "Computed property names are not allowed in type literals.": { + "category": "Error", + "code": 1170 + }, + "A comma expression is not allowed in a computed property name.": { + "category": "Error", + "code": 1171 + }, "Duplicate identifier '{0}'.": { "category": "Error", diff --git a/src/compiler/parser.ts b/src/compiler/parser.ts index d3c179b5381..a796e163a30 100644 --- a/src/compiler/parser.ts +++ b/src/compiler/parser.ts @@ -1262,9 +1262,29 @@ module ts { } function parseComputedPropertyName(): ComputedPropertyName { + // PropertyName[Yield,GeneratorParameter] : + // LiteralPropertyName + // [+GeneratorParameter] ComputedPropertyName + // [~GeneratorParameter] ComputedPropertyName[?Yield] + // + // ComputedPropertyName[Yield] : + // [ AssignmentExpression[In, ?Yield] ] + // var node = createNode(SyntaxKind.ComputedPropertyName); parseExpected(SyntaxKind.OpenBracketToken); - node.expression = allowInAnd(parseAssignmentExpression); + + // We parse any expression (including a comma expression). But the grammar + // says that only an assignment expression is allowed, so the grammar checker + // will error if it sees a comma expression. + var yieldContext = inYieldContext(); + if (inGeneratorParameterContext()) { + setYieldContext(false); + } + node.expression = allowInAnd(parseExpression); + if (inGeneratorParameterContext()) { + setYieldContext(yieldContext); + } + parseExpected(SyntaxKind.CloseBracketToken); return finishNode(node); } @@ -1816,23 +1836,28 @@ module ts { // [protected id // [] // - if (nextToken() === SyntaxKind.DotDotDotToken - || token === SyntaxKind.CloseBracketToken - || token === SyntaxKind.PublicKeyword - || token === SyntaxKind.PrivateKeyword - || token === SyntaxKind.ProtectedKeyword) { - + if (nextToken() === SyntaxKind.DotDotDotToken || token === SyntaxKind.CloseBracketToken) { return true; } - if (!isIdentifier()) { + if (isModifier(token)) { + nextToken(); + if (isIdentifier()) { + return true; + } + } + else if (!isIdentifier()) { return false; } + else { + // Skip the identifier + nextToken(); + } // A colon signifies a well formed indexer // A comma should be a badly formed indexer because comma expressions are not allowed // in computed properties. - if (nextToken() === SyntaxKind.ColonToken || token === SyntaxKind.CommaToken) { + if (token === SyntaxKind.ColonToken || token === SyntaxKind.CommaToken) { return true; } @@ -4489,8 +4514,11 @@ module ts { return checkForDisallowedComputedProperty(node.name, Diagnostics.Computed_property_names_are_not_allowed_in_method_overloads); } } - else if (node.parent.kind === SyntaxKind.InterfaceDeclaration || node.parent.kind === SyntaxKind.TypeLiteral) { - return checkForDisallowedComputedProperty(node.name, Diagnostics.Computed_property_names_are_not_allowed_in_interfaces_or_type_literals); + else if (node.parent.kind === SyntaxKind.InterfaceDeclaration) { + return checkForDisallowedComputedProperty(node.name, Diagnostics.Computed_property_names_are_not_allowed_in_interfaces); + } + else if (node.parent.kind === SyntaxKind.TypeLiteral) { + return checkForDisallowedComputedProperty(node.name, Diagnostics.Computed_property_names_are_not_allowed_in_type_literals); } } @@ -4829,19 +4857,27 @@ module ts { return true; } } - else if (node.parent.kind === SyntaxKind.InterfaceDeclaration || node.parent.kind === SyntaxKind.TypeLiteral) { - if (checkForDisallowedComputedProperty(node.name, Diagnostics.Computed_property_names_are_not_allowed_in_interfaces_or_type_literals)) { + else if (node.parent.kind === SyntaxKind.InterfaceDeclaration) { + if (checkForDisallowedComputedProperty(node.name, Diagnostics.Computed_property_names_are_not_allowed_in_interfaces)) { + return true; + } + } + else if (node.parent.kind === SyntaxKind.TypeLiteral) { + if (checkForDisallowedComputedProperty(node.name, Diagnostics.Computed_property_names_are_not_allowed_in_type_literals)) { return true; } } - checkForInitializerInAmbientContext(node); + return checkForInitializerInAmbientContext(node); } function checkComputedPropertyName(node: ComputedPropertyName) { if (languageVersion < ScriptTarget.ES6) { return grammarErrorOnNode(node, Diagnostics.Computed_property_names_are_only_available_when_targeting_ECMAScript_6_and_higher); } + else if (node.expression.kind === SyntaxKind.BinaryExpression && (node.expression).operator === SyntaxKind.CommaToken) { + return grammarErrorOnNode(node.expression, Diagnostics.A_comma_expression_is_not_allowed_in_a_computed_property_name); + } } function checkForDisallowedComputedProperty(node: DeclarationName, message: DiagnosticMessage) { diff --git a/src/compiler/types.ts b/src/compiler/types.ts index 687adb5f119..597d85ccca0 100644 --- a/src/compiler/types.ts +++ b/src/compiler/types.ts @@ -456,7 +456,7 @@ module ts { whenFalse: Expression; } - export interface FunctionExpression extends Expression, SignatureDeclaration { + export interface FunctionExpression extends Expression, FunctionLikeDeclaration { name?: Identifier; body: Block | Expression; // Required, whereas the member inherited from FunctionDeclaration is optional } diff --git a/tests/baselines/reference/FunctionDeclaration9_es6.errors.txt b/tests/baselines/reference/FunctionDeclaration9_es6.errors.txt index 1288a09e47f..7d51bf56ca4 100644 --- a/tests/baselines/reference/FunctionDeclaration9_es6.errors.txt +++ b/tests/baselines/reference/FunctionDeclaration9_es6.errors.txt @@ -1,9 +1,9 @@ -tests/cases/conformance/es6/functionDeclarations/FunctionDeclaration9_es6.ts(2,13): error TS1167: Computed property names are only available when targeting ECMAScript 6 and higher. +tests/cases/conformance/es6/functionDeclarations/FunctionDeclaration9_es6.ts(1,10): error TS9001: 'generators' are not currently supported. ==== tests/cases/conformance/es6/functionDeclarations/FunctionDeclaration9_es6.ts (1 errors) ==== function * foo() { + ~ +!!! error TS9001: 'generators' are not currently supported. var v = { [yield]: foo } - ~~~~~~~ -!!! error TS1167: Computed property names are only available when targeting ECMAScript 6 and higher. } \ No newline at end of file diff --git a/tests/baselines/reference/FunctionPropertyAssignments5_es6.errors.txt b/tests/baselines/reference/FunctionPropertyAssignments5_es6.errors.txt index 430dd503667..24a12267dc5 100644 --- a/tests/baselines/reference/FunctionPropertyAssignments5_es6.errors.txt +++ b/tests/baselines/reference/FunctionPropertyAssignments5_es6.errors.txt @@ -1,7 +1,10 @@ +tests/cases/conformance/es6/functionPropertyAssignments/FunctionPropertyAssignments5_es6.ts(1,11): error TS9001: 'generators' are not currently supported. tests/cases/conformance/es6/functionPropertyAssignments/FunctionPropertyAssignments5_es6.ts(1,12): error TS1167: Computed property names are only available when targeting ECMAScript 6 and higher. -==== tests/cases/conformance/es6/functionPropertyAssignments/FunctionPropertyAssignments5_es6.ts (1 errors) ==== +==== tests/cases/conformance/es6/functionPropertyAssignments/FunctionPropertyAssignments5_es6.ts (2 errors) ==== var v = { *[foo()]() { } } + ~ +!!! error TS9001: 'generators' are not currently supported. ~~~~~~~ !!! error TS1167: Computed property names are only available when targeting ECMAScript 6 and higher. \ No newline at end of file diff --git a/tests/baselines/reference/MemberFunctionDeclaration3_es6.errors.txt b/tests/baselines/reference/MemberFunctionDeclaration3_es6.errors.txt index d1d3c3c1223..b61137f1f3d 100644 --- a/tests/baselines/reference/MemberFunctionDeclaration3_es6.errors.txt +++ b/tests/baselines/reference/MemberFunctionDeclaration3_es6.errors.txt @@ -1,9 +1,9 @@ -tests/cases/conformance/es6/memberFunctionDeclarations/MemberFunctionDeclaration3_es6.ts(2,5): error TS1167: Computed property names are only available when targeting ECMAScript 6 and higher. +tests/cases/conformance/es6/memberFunctionDeclarations/MemberFunctionDeclaration3_es6.ts(2,4): error TS9001: 'generators' are not currently supported. ==== tests/cases/conformance/es6/memberFunctionDeclarations/MemberFunctionDeclaration3_es6.ts (1 errors) ==== class C { *[foo]() { } - ~~~~~ -!!! error TS1167: Computed property names are only available when targeting ECMAScript 6 and higher. + ~ +!!! error TS9001: 'generators' are not currently supported. } \ No newline at end of file diff --git a/tests/baselines/reference/giant.errors.txt b/tests/baselines/reference/giant.errors.txt index bd2e2fa6935..f971c067768 100644 --- a/tests/baselines/reference/giant.errors.txt +++ b/tests/baselines/reference/giant.errors.txt @@ -4,7 +4,7 @@ tests/cases/compiler/giant.ts(28,17): error TS1056: Accessors are only available tests/cases/compiler/giant.ts(30,17): error TS1056: Accessors are only available when targeting ECMAScript 5 and higher. tests/cases/compiler/giant.ts(34,16): error TS1056: Accessors are only available when targeting ECMAScript 5 and higher. tests/cases/compiler/giant.ts(36,16): error TS1056: Accessors are only available when targeting ECMAScript 5 and higher. -tests/cases/compiler/giant.ts(61,5): error TS1169: Computed property names are not allowed in interfaces or type literals. +tests/cases/compiler/giant.ts(61,5): error TS1169: Computed property names are not allowed in interfaces. tests/cases/compiler/giant.ts(62,5): error TS1021: An index signature must have a type annotation. tests/cases/compiler/giant.ts(63,6): error TS1096: An index signature must have exactly one parameter. tests/cases/compiler/giant.ts(88,20): error TS1056: Accessors are only available when targeting ECMAScript 5 and higher. @@ -13,7 +13,7 @@ tests/cases/compiler/giant.ts(92,21): error TS1056: Accessors are only available tests/cases/compiler/giant.ts(94,21): error TS1056: Accessors are only available when targeting ECMAScript 5 and higher. tests/cases/compiler/giant.ts(98,20): error TS1056: Accessors are only available when targeting ECMAScript 5 and higher. tests/cases/compiler/giant.ts(100,20): error TS1056: Accessors are only available when targeting ECMAScript 5 and higher. -tests/cases/compiler/giant.ts(125,9): error TS1169: Computed property names are not allowed in interfaces or type literals. +tests/cases/compiler/giant.ts(125,9): error TS1169: Computed property names are not allowed in interfaces. tests/cases/compiler/giant.ts(126,9): error TS1021: An index signature must have a type annotation. tests/cases/compiler/giant.ts(127,10): error TS1096: An index signature must have exactly one parameter. tests/cases/compiler/giant.ts(154,39): error TS1037: A function implementation cannot be declared in an ambient context. @@ -23,7 +23,7 @@ tests/cases/compiler/giant.ts(171,21): error TS1056: Accessors are only availabl tests/cases/compiler/giant.ts(173,21): error TS1056: Accessors are only available when targeting ECMAScript 5 and higher. tests/cases/compiler/giant.ts(177,20): error TS1056: Accessors are only available when targeting ECMAScript 5 and higher. tests/cases/compiler/giant.ts(179,20): error TS1056: Accessors are only available when targeting ECMAScript 5 and higher. -tests/cases/compiler/giant.ts(204,9): error TS1169: Computed property names are not allowed in interfaces or type literals. +tests/cases/compiler/giant.ts(204,9): error TS1169: Computed property names are not allowed in interfaces. tests/cases/compiler/giant.ts(205,9): error TS1021: An index signature must have a type annotation. tests/cases/compiler/giant.ts(206,10): error TS1096: An index signature must have exactly one parameter. tests/cases/compiler/giant.ts(233,39): error TS1037: A function implementation cannot be declared in an ambient context. @@ -54,7 +54,7 @@ tests/cases/compiler/giant.ts(286,17): error TS1056: Accessors are only availabl tests/cases/compiler/giant.ts(288,17): error TS1056: Accessors are only available when targeting ECMAScript 5 and higher. tests/cases/compiler/giant.ts(292,16): error TS1056: Accessors are only available when targeting ECMAScript 5 and higher. tests/cases/compiler/giant.ts(294,16): error TS1056: Accessors are only available when targeting ECMAScript 5 and higher. -tests/cases/compiler/giant.ts(319,5): error TS1169: Computed property names are not allowed in interfaces or type literals. +tests/cases/compiler/giant.ts(319,5): error TS1169: Computed property names are not allowed in interfaces. tests/cases/compiler/giant.ts(320,5): error TS1021: An index signature must have a type annotation. tests/cases/compiler/giant.ts(321,6): error TS1096: An index signature must have exactly one parameter. tests/cases/compiler/giant.ts(346,20): error TS1056: Accessors are only available when targeting ECMAScript 5 and higher. @@ -63,7 +63,7 @@ tests/cases/compiler/giant.ts(350,21): error TS1056: Accessors are only availabl tests/cases/compiler/giant.ts(352,21): error TS1056: Accessors are only available when targeting ECMAScript 5 and higher. tests/cases/compiler/giant.ts(356,20): error TS1056: Accessors are only available when targeting ECMAScript 5 and higher. tests/cases/compiler/giant.ts(358,20): error TS1056: Accessors are only available when targeting ECMAScript 5 and higher. -tests/cases/compiler/giant.ts(383,9): error TS1169: Computed property names are not allowed in interfaces or type literals. +tests/cases/compiler/giant.ts(383,9): error TS1169: Computed property names are not allowed in interfaces. tests/cases/compiler/giant.ts(384,9): error TS1021: An index signature must have a type annotation. tests/cases/compiler/giant.ts(385,10): error TS1096: An index signature must have exactly one parameter. tests/cases/compiler/giant.ts(412,39): error TS1037: A function implementation cannot be declared in an ambient context. @@ -73,7 +73,7 @@ tests/cases/compiler/giant.ts(429,21): error TS1056: Accessors are only availabl tests/cases/compiler/giant.ts(431,21): error TS1056: Accessors are only available when targeting ECMAScript 5 and higher. tests/cases/compiler/giant.ts(435,20): error TS1056: Accessors are only available when targeting ECMAScript 5 and higher. tests/cases/compiler/giant.ts(437,20): error TS1056: Accessors are only available when targeting ECMAScript 5 and higher. -tests/cases/compiler/giant.ts(462,9): error TS1169: Computed property names are not allowed in interfaces or type literals. +tests/cases/compiler/giant.ts(462,9): error TS1169: Computed property names are not allowed in interfaces. tests/cases/compiler/giant.ts(463,9): error TS1021: An index signature must have a type annotation. tests/cases/compiler/giant.ts(464,10): error TS1096: An index signature must have exactly one parameter. tests/cases/compiler/giant.ts(491,39): error TS1037: A function implementation cannot be declared in an ambient context. @@ -120,7 +120,7 @@ tests/cases/compiler/giant.ts(556,21): error TS1036: Statements are not allowed tests/cases/compiler/giant.ts(558,24): error TS1111: A constructor implementation cannot be declared in an ambient context. tests/cases/compiler/giant.ts(561,21): error TS1037: A function implementation cannot be declared in an ambient context. tests/cases/compiler/giant.ts(563,21): error TS1037: A function implementation cannot be declared in an ambient context. -tests/cases/compiler/giant.ts(587,9): error TS1169: Computed property names are not allowed in interfaces or type literals. +tests/cases/compiler/giant.ts(587,9): error TS1169: Computed property names are not allowed in interfaces. tests/cases/compiler/giant.ts(588,9): error TS1021: An index signature must have a type annotation. tests/cases/compiler/giant.ts(589,10): error TS1096: An index signature must have exactly one parameter. tests/cases/compiler/giant.ts(606,22): error TS1037: A function implementation cannot be declared in an ambient context. @@ -137,7 +137,7 @@ tests/cases/compiler/giant.ts(621,29): error TS1036: Statements are not allowed tests/cases/compiler/giant.ts(623,24): error TS1111: A constructor implementation cannot be declared in an ambient context. tests/cases/compiler/giant.ts(626,21): error TS1037: A function implementation cannot be declared in an ambient context. tests/cases/compiler/giant.ts(628,21): error TS1037: A function implementation cannot be declared in an ambient context. -tests/cases/compiler/giant.ts(653,9): error TS1169: Computed property names are not allowed in interfaces or type literals. +tests/cases/compiler/giant.ts(653,9): error TS1169: Computed property names are not allowed in interfaces. tests/cases/compiler/giant.ts(654,9): error TS1021: An index signature must have a type annotation. tests/cases/compiler/giant.ts(655,10): error TS1096: An index signature must have exactly one parameter. tests/cases/compiler/giant.ts(672,22): error TS1037: A function implementation cannot be declared in an ambient context. @@ -361,7 +361,7 @@ tests/cases/compiler/giant.ts(668,9): error TS2386: Overload signatures must all //Index Signature [p]; ~~~ -!!! error TS1169: Computed property names are not allowed in interfaces or type literals. +!!! error TS1169: Computed property names are not allowed in interfaces. [p1: string]; ~~~~~~~~~~~~~ !!! error TS1021: An index signature must have a type annotation. @@ -469,7 +469,7 @@ tests/cases/compiler/giant.ts(668,9): error TS2386: Overload signatures must all //Index Signature [p]; ~~~ -!!! error TS1169: Computed property names are not allowed in interfaces or type literals. +!!! error TS1169: Computed property names are not allowed in interfaces. [p1: string]; ~~~~~~~~~~~~~ !!! error TS1021: An index signature must have a type annotation. @@ -594,7 +594,7 @@ tests/cases/compiler/giant.ts(668,9): error TS2386: Overload signatures must all //Index Signature [p]; ~~~ -!!! error TS1169: Computed property names are not allowed in interfaces or type literals. +!!! error TS1169: Computed property names are not allowed in interfaces. [p1: string]; ~~~~~~~~~~~~~ !!! error TS1021: An index signature must have a type annotation. @@ -821,7 +821,7 @@ tests/cases/compiler/giant.ts(668,9): error TS2386: Overload signatures must all //Index Signature [p]; ~~~ -!!! error TS1169: Computed property names are not allowed in interfaces or type literals. +!!! error TS1169: Computed property names are not allowed in interfaces. [p1: string]; ~~~~~~~~~~~~~ !!! error TS1021: An index signature must have a type annotation. @@ -929,7 +929,7 @@ tests/cases/compiler/giant.ts(668,9): error TS2386: Overload signatures must all //Index Signature [p]; ~~~ -!!! error TS1169: Computed property names are not allowed in interfaces or type literals. +!!! error TS1169: Computed property names are not allowed in interfaces. [p1: string]; ~~~~~~~~~~~~~ !!! error TS1021: An index signature must have a type annotation. @@ -1054,7 +1054,7 @@ tests/cases/compiler/giant.ts(668,9): error TS2386: Overload signatures must all //Index Signature [p]; ~~~ -!!! error TS1169: Computed property names are not allowed in interfaces or type literals. +!!! error TS1169: Computed property names are not allowed in interfaces. [p1: string]; ~~~~~~~~~~~~~ !!! error TS1021: An index signature must have a type annotation. @@ -1323,7 +1323,7 @@ tests/cases/compiler/giant.ts(668,9): error TS2386: Overload signatures must all //Index Signature [p]; ~~~ -!!! error TS1169: Computed property names are not allowed in interfaces or type literals. +!!! error TS1169: Computed property names are not allowed in interfaces. [p1: string]; ~~~~~~~~~~~~~ !!! error TS1021: An index signature must have a type annotation. @@ -1425,7 +1425,7 @@ tests/cases/compiler/giant.ts(668,9): error TS2386: Overload signatures must all //Index Signature [p]; ~~~ -!!! error TS1169: Computed property names are not allowed in interfaces or type literals. +!!! error TS1169: Computed property names are not allowed in interfaces. [p1: string]; ~~~~~~~~~~~~~ !!! error TS1021: An index signature must have a type annotation. diff --git a/tests/baselines/reference/indexSignatureMustHaveTypeAnnotation.errors.txt b/tests/baselines/reference/indexSignatureMustHaveTypeAnnotation.errors.txt index f0bd02524c8..294282d1e9e 100644 --- a/tests/baselines/reference/indexSignatureMustHaveTypeAnnotation.errors.txt +++ b/tests/baselines/reference/indexSignatureMustHaveTypeAnnotation.errors.txt @@ -1,4 +1,4 @@ -tests/cases/compiler/indexSignatureMustHaveTypeAnnotation.ts(2,5): error TS1169: Computed property names are not allowed in interfaces or type literals. +tests/cases/compiler/indexSignatureMustHaveTypeAnnotation.ts(2,5): error TS1169: Computed property names are not allowed in interfaces. tests/cases/compiler/indexSignatureMustHaveTypeAnnotation.ts(3,5): error TS1021: An index signature must have a type annotation. tests/cases/compiler/indexSignatureMustHaveTypeAnnotation.ts(7,5): error TS1166: Computed property names are not allowed in class property declarations. tests/cases/compiler/indexSignatureMustHaveTypeAnnotation.ts(12,5): error TS1021: An index signature must have a type annotation. @@ -8,7 +8,7 @@ tests/cases/compiler/indexSignatureMustHaveTypeAnnotation.ts(12,5): error TS1021 interface I { [x]: string; ~~~ -!!! error TS1169: Computed property names are not allowed in interfaces or type literals. +!!! error TS1169: Computed property names are not allowed in interfaces. [x: string]; ~~~~~~~~~~~~ !!! error TS1021: An index signature must have a type annotation. diff --git a/tests/baselines/reference/indexSignatureWithInitializer.errors.txt b/tests/baselines/reference/indexSignatureWithInitializer.errors.txt index cc4e4a9bf4d..6fb708a3b80 100644 --- a/tests/baselines/reference/indexSignatureWithInitializer.errors.txt +++ b/tests/baselines/reference/indexSignatureWithInitializer.errors.txt @@ -1,4 +1,4 @@ -tests/cases/compiler/indexSignatureWithInitializer.ts(2,5): error TS1169: Computed property names are not allowed in interfaces or type literals. +tests/cases/compiler/indexSignatureWithInitializer.ts(2,5): error TS1169: Computed property names are not allowed in interfaces. tests/cases/compiler/indexSignatureWithInitializer.ts(6,5): error TS1166: Computed property names are not allowed in class property declarations. @@ -6,7 +6,7 @@ tests/cases/compiler/indexSignatureWithInitializer.ts(6,5): error TS1166: Comput interface I { [x = '']: string; ~~~~~~~~ -!!! error TS1169: Computed property names are not allowed in interfaces or type literals. +!!! error TS1169: Computed property names are not allowed in interfaces. } class C { diff --git a/tests/baselines/reference/parserComputedPropertyName13.errors.txt b/tests/baselines/reference/parserComputedPropertyName13.errors.txt index 38ad6c1c74c..33ef5f9141a 100644 --- a/tests/baselines/reference/parserComputedPropertyName13.errors.txt +++ b/tests/baselines/reference/parserComputedPropertyName13.errors.txt @@ -1,7 +1,7 @@ -tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName13.ts(1,10): error TS1169: Computed property names are not allowed in interfaces or type literals. +tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName13.ts(1,10): error TS1170: Computed property names are not allowed in type literals. ==== tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName13.ts (1 errors) ==== var v: { [e]: number }; ~~~ -!!! error TS1169: Computed property names are not allowed in interfaces or type literals. \ No newline at end of file +!!! error TS1170: Computed property names are not allowed in type literals. \ No newline at end of file diff --git a/tests/baselines/reference/parserComputedPropertyName14.errors.txt b/tests/baselines/reference/parserComputedPropertyName14.errors.txt index fe26de08c9d..d2f7ad34ed9 100644 --- a/tests/baselines/reference/parserComputedPropertyName14.errors.txt +++ b/tests/baselines/reference/parserComputedPropertyName14.errors.txt @@ -1,7 +1,7 @@ -tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName14.ts(1,10): error TS1169: Computed property names are not allowed in interfaces or type literals. +tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName14.ts(1,10): error TS1170: Computed property names are not allowed in type literals. ==== tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName14.ts (1 errors) ==== var v: { [e](): number }; ~~~ -!!! error TS1169: Computed property names are not allowed in interfaces or type literals. \ No newline at end of file +!!! error TS1170: Computed property names are not allowed in type literals. \ No newline at end of file diff --git a/tests/baselines/reference/parserComputedPropertyName15.errors.txt b/tests/baselines/reference/parserComputedPropertyName15.errors.txt index eaa86105727..b09ddb73112 100644 --- a/tests/baselines/reference/parserComputedPropertyName15.errors.txt +++ b/tests/baselines/reference/parserComputedPropertyName15.errors.txt @@ -1,7 +1,7 @@ -tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName15.ts(1,31): error TS1169: Computed property names are not allowed in interfaces or type literals. +tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName15.ts(1,31): error TS1170: Computed property names are not allowed in type literals. ==== tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName15.ts (1 errors) ==== var v: { [e: number]: string; [e]: number }; ~~~ -!!! error TS1169: Computed property names are not allowed in interfaces or type literals. \ No newline at end of file +!!! error TS1170: Computed property names are not allowed in type literals. \ No newline at end of file diff --git a/tests/baselines/reference/parserComputedPropertyName18.errors.txt b/tests/baselines/reference/parserComputedPropertyName18.errors.txt index c8241febfe4..72833dda837 100644 --- a/tests/baselines/reference/parserComputedPropertyName18.errors.txt +++ b/tests/baselines/reference/parserComputedPropertyName18.errors.txt @@ -1,7 +1,7 @@ -tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName18.ts(1,10): error TS1169: Computed property names are not allowed in interfaces or type literals. +tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName18.ts(1,10): error TS1170: Computed property names are not allowed in type literals. ==== tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName18.ts (1 errors) ==== var v: { [e]?(): number }; ~~~ -!!! error TS1169: Computed property names are not allowed in interfaces or type literals. \ No newline at end of file +!!! error TS1170: Computed property names are not allowed in type literals. \ No newline at end of file diff --git a/tests/baselines/reference/parserComputedPropertyName19.errors.txt b/tests/baselines/reference/parserComputedPropertyName19.errors.txt index fd17b02724d..22dbfff3c61 100644 --- a/tests/baselines/reference/parserComputedPropertyName19.errors.txt +++ b/tests/baselines/reference/parserComputedPropertyName19.errors.txt @@ -1,7 +1,7 @@ -tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName19.ts(1,10): error TS1169: Computed property names are not allowed in interfaces or type literals. +tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName19.ts(1,10): error TS1170: Computed property names are not allowed in type literals. ==== tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName19.ts (1 errors) ==== var v: { [e]? }; ~~~ -!!! error TS1169: Computed property names are not allowed in interfaces or type literals. \ No newline at end of file +!!! error TS1170: Computed property names are not allowed in type literals. \ No newline at end of file diff --git a/tests/baselines/reference/parserComputedPropertyName20.errors.txt b/tests/baselines/reference/parserComputedPropertyName20.errors.txt index 12a82cc6f68..36a7e2d4866 100644 --- a/tests/baselines/reference/parserComputedPropertyName20.errors.txt +++ b/tests/baselines/reference/parserComputedPropertyName20.errors.txt @@ -1,9 +1,9 @@ -tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName20.ts(2,5): error TS1169: Computed property names are not allowed in interfaces or type literals. +tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName20.ts(2,5): error TS1169: Computed property names are not allowed in interfaces. ==== tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName20.ts (1 errors) ==== interface I { [e](): number ~~~ -!!! error TS1169: Computed property names are not allowed in interfaces or type literals. +!!! error TS1169: Computed property names are not allowed in interfaces. } \ No newline at end of file diff --git a/tests/baselines/reference/parserComputedPropertyName21.errors.txt b/tests/baselines/reference/parserComputedPropertyName21.errors.txt index b25b1484a90..5850de24b76 100644 --- a/tests/baselines/reference/parserComputedPropertyName21.errors.txt +++ b/tests/baselines/reference/parserComputedPropertyName21.errors.txt @@ -1,9 +1,9 @@ -tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName21.ts(2,5): error TS1169: Computed property names are not allowed in interfaces or type literals. +tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName21.ts(2,5): error TS1169: Computed property names are not allowed in interfaces. ==== tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName21.ts (1 errors) ==== interface I { [e]: number ~~~ -!!! error TS1169: Computed property names are not allowed in interfaces or type literals. +!!! error TS1169: Computed property names are not allowed in interfaces. } \ No newline at end of file diff --git a/tests/baselines/reference/parserComputedPropertyName35.errors.txt b/tests/baselines/reference/parserComputedPropertyName35.errors.txt new file mode 100644 index 00000000000..e603d1c73fd --- /dev/null +++ b/tests/baselines/reference/parserComputedPropertyName35.errors.txt @@ -0,0 +1,9 @@ +tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName35.ts(2,6): error TS1171: A comma expression is not allowed in a computed property name. + + +==== tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName35.ts (1 errors) ==== + var x = { + [0, 1]: { } + ~~~~ +!!! error TS1171: A comma expression is not allowed in a computed property name. + } \ No newline at end of file diff --git a/tests/baselines/reference/parserComputedPropertyName36.errors.txt b/tests/baselines/reference/parserComputedPropertyName36.errors.txt new file mode 100644 index 00000000000..d10d826d1a9 --- /dev/null +++ b/tests/baselines/reference/parserComputedPropertyName36.errors.txt @@ -0,0 +1,9 @@ +tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName36.ts(2,5): error TS1166: Computed property names are not allowed in class property declarations. + + +==== tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName36.ts (1 errors) ==== + class C { + [public ]: string; + ~~~~~~~~~ +!!! error TS1166: Computed property names are not allowed in class property declarations. + } \ No newline at end of file diff --git a/tests/baselines/reference/parserComputedPropertyName37.js b/tests/baselines/reference/parserComputedPropertyName37.js new file mode 100644 index 00000000000..eb16d5ade37 --- /dev/null +++ b/tests/baselines/reference/parserComputedPropertyName37.js @@ -0,0 +1,9 @@ +//// [parserComputedPropertyName37.ts] +var v = { + [public]: 0 +}; + +//// [parserComputedPropertyName37.js] +var v = { + [public]: 0 +}; diff --git a/tests/baselines/reference/parserComputedPropertyName38.js b/tests/baselines/reference/parserComputedPropertyName38.js new file mode 100644 index 00000000000..487ff4078fd --- /dev/null +++ b/tests/baselines/reference/parserComputedPropertyName38.js @@ -0,0 +1,13 @@ +//// [parserComputedPropertyName38.ts] +class C { + [public]() { } +} + +//// [parserComputedPropertyName38.js] +var C = (function () { + function C() { + } + C.prototype[public] = function () { + }; + return C; +})(); diff --git a/tests/baselines/reference/parserComputedPropertyName39.errors.txt b/tests/baselines/reference/parserComputedPropertyName39.errors.txt new file mode 100644 index 00000000000..32d59ad2403 --- /dev/null +++ b/tests/baselines/reference/parserComputedPropertyName39.errors.txt @@ -0,0 +1,22 @@ +tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName39.ts(3,6): error TS1109: Expression expected. +tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName39.ts(3,12): error TS1068: Unexpected token. A constructor, method, accessor, or property was expected. +tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName39.ts(3,13): error TS1068: Unexpected token. A constructor, method, accessor, or property was expected. +tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName39.ts(3,16): error TS1005: '=>' expected. +tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName39.ts(4,1): error TS1128: Declaration or statement expected. + + +==== tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName39.ts (5 errors) ==== + "use strict"; + class C { + [public]() { } + ~~~~~~ +!!! error TS1109: Expression expected. + ~ +!!! error TS1068: Unexpected token. A constructor, method, accessor, or property was expected. + ~ +!!! error TS1068: Unexpected token. A constructor, method, accessor, or property was expected. + ~ +!!! error TS1005: '=>' expected. + } + ~ +!!! error TS1128: Declaration or statement expected. \ No newline at end of file diff --git a/tests/baselines/reference/parserComputedPropertyName40.js b/tests/baselines/reference/parserComputedPropertyName40.js new file mode 100644 index 00000000000..5f6381360fc --- /dev/null +++ b/tests/baselines/reference/parserComputedPropertyName40.js @@ -0,0 +1,13 @@ +//// [parserComputedPropertyName40.ts] +class C { + [a ? "" : ""]() {} +} + +//// [parserComputedPropertyName40.js] +var C = (function () { + function C() { + } + C.prototype[a ? "" : ""] = function () { + }; + return C; +})(); diff --git a/tests/baselines/reference/parserComputedPropertyName41.js b/tests/baselines/reference/parserComputedPropertyName41.js new file mode 100644 index 00000000000..b19cc3e7b3f --- /dev/null +++ b/tests/baselines/reference/parserComputedPropertyName41.js @@ -0,0 +1,9 @@ +//// [parserComputedPropertyName41.ts] +var v = { + [0 in []]: true +} + +//// [parserComputedPropertyName41.js] +var v = { + [0 in []]: true +}; diff --git a/tests/baselines/reference/parserES5ComputedPropertyName5.errors.txt b/tests/baselines/reference/parserES5ComputedPropertyName5.errors.txt index 1cc70551961..8eeeef1516f 100644 --- a/tests/baselines/reference/parserES5ComputedPropertyName5.errors.txt +++ b/tests/baselines/reference/parserES5ComputedPropertyName5.errors.txt @@ -1,9 +1,9 @@ -tests/cases/conformance/parser/ecmascript5/ComputedPropertyNames/parserES5ComputedPropertyName5.ts(2,5): error TS1169: Computed property names are not allowed in interfaces or type literals. +tests/cases/conformance/parser/ecmascript5/ComputedPropertyNames/parserES5ComputedPropertyName5.ts(2,5): error TS1169: Computed property names are not allowed in interfaces. ==== tests/cases/conformance/parser/ecmascript5/ComputedPropertyNames/parserES5ComputedPropertyName5.ts (1 errors) ==== interface I { [e]: number ~~~ -!!! error TS1169: Computed property names are not allowed in interfaces or type literals. +!!! error TS1169: Computed property names are not allowed in interfaces. } \ No newline at end of file diff --git a/tests/baselines/reference/parserES5ComputedPropertyName8.errors.txt b/tests/baselines/reference/parserES5ComputedPropertyName8.errors.txt index 6a6964849a1..4595081c145 100644 --- a/tests/baselines/reference/parserES5ComputedPropertyName8.errors.txt +++ b/tests/baselines/reference/parserES5ComputedPropertyName8.errors.txt @@ -1,7 +1,7 @@ -tests/cases/conformance/parser/ecmascript5/ComputedPropertyNames/parserES5ComputedPropertyName8.ts(1,10): error TS1169: Computed property names are not allowed in interfaces or type literals. +tests/cases/conformance/parser/ecmascript5/ComputedPropertyNames/parserES5ComputedPropertyName8.ts(1,10): error TS1170: Computed property names are not allowed in type literals. ==== tests/cases/conformance/parser/ecmascript5/ComputedPropertyNames/parserES5ComputedPropertyName8.ts (1 errors) ==== var v: { [e]: number }; ~~~ -!!! error TS1169: Computed property names are not allowed in interfaces or type literals. \ No newline at end of file +!!! error TS1170: Computed property names are not allowed in type literals. \ No newline at end of file diff --git a/tests/baselines/reference/parserIndexSignature11.errors.txt b/tests/baselines/reference/parserIndexSignature11.errors.txt index dfdd9955daa..c9976e2bc4a 100644 --- a/tests/baselines/reference/parserIndexSignature11.errors.txt +++ b/tests/baselines/reference/parserIndexSignature11.errors.txt @@ -1,4 +1,4 @@ -tests/cases/conformance/parser/ecmascript5/IndexSignatures/parserIndexSignature11.ts(2,9): error TS1169: Computed property names are not allowed in interfaces or type literals. +tests/cases/conformance/parser/ecmascript5/IndexSignatures/parserIndexSignature11.ts(2,9): error TS1169: Computed property names are not allowed in interfaces. tests/cases/conformance/parser/ecmascript5/IndexSignatures/parserIndexSignature11.ts(3,9): error TS1021: An index signature must have a type annotation. tests/cases/conformance/parser/ecmascript5/IndexSignatures/parserIndexSignature11.ts(4,10): error TS1096: An index signature must have exactly one parameter. @@ -7,7 +7,7 @@ tests/cases/conformance/parser/ecmascript5/IndexSignatures/parserIndexSignature1 interface I { [p]; ~~~ -!!! error TS1169: Computed property names are not allowed in interfaces or type literals. +!!! error TS1169: Computed property names are not allowed in interfaces. [p1: string]; ~~~~~~~~~~~~~ !!! error TS1021: An index signature must have a type annotation. diff --git a/tests/baselines/reference/parserIndexSignature4.errors.txt b/tests/baselines/reference/parserIndexSignature4.errors.txt index b658dfdd69e..0f11eb17f3c 100644 --- a/tests/baselines/reference/parserIndexSignature4.errors.txt +++ b/tests/baselines/reference/parserIndexSignature4.errors.txt @@ -1,9 +1,9 @@ -tests/cases/conformance/parser/ecmascript5/IndexSignatures/parserIndexSignature4.ts(2,3): error TS1169: Computed property names are not allowed in interfaces or type literals. +tests/cases/conformance/parser/ecmascript5/IndexSignatures/parserIndexSignature4.ts(2,3): error TS1169: Computed property names are not allowed in interfaces. ==== tests/cases/conformance/parser/ecmascript5/IndexSignatures/parserIndexSignature4.ts (1 errors) ==== interface I { [a = 0] ~~~~~~~ -!!! error TS1169: Computed property names are not allowed in interfaces or type literals. +!!! error TS1169: Computed property names are not allowed in interfaces. } \ No newline at end of file diff --git a/tests/baselines/reference/parserIndexSignature5.errors.txt b/tests/baselines/reference/parserIndexSignature5.errors.txt index b4d5c5534d0..6400383f9d2 100644 --- a/tests/baselines/reference/parserIndexSignature5.errors.txt +++ b/tests/baselines/reference/parserIndexSignature5.errors.txt @@ -1,9 +1,9 @@ -tests/cases/conformance/parser/ecmascript5/IndexSignatures/parserIndexSignature5.ts(2,3): error TS1169: Computed property names are not allowed in interfaces or type literals. +tests/cases/conformance/parser/ecmascript5/IndexSignatures/parserIndexSignature5.ts(2,3): error TS1169: Computed property names are not allowed in interfaces. ==== tests/cases/conformance/parser/ecmascript5/IndexSignatures/parserIndexSignature5.ts (1 errors) ==== interface I { [a] ~~~ -!!! error TS1169: Computed property names are not allowed in interfaces or type literals. +!!! error TS1169: Computed property names are not allowed in interfaces. } \ No newline at end of file diff --git a/tests/baselines/reference/propertyAssignment.errors.txt b/tests/baselines/reference/propertyAssignment.errors.txt index 37df97d5d42..2ea55a1a2d3 100644 --- a/tests/baselines/reference/propertyAssignment.errors.txt +++ b/tests/baselines/reference/propertyAssignment.errors.txt @@ -1,4 +1,4 @@ -tests/cases/compiler/propertyAssignment.ts(6,13): error TS1169: Computed property names are not allowed in interfaces or type literals. +tests/cases/compiler/propertyAssignment.ts(6,13): error TS1170: Computed property names are not allowed in type literals. tests/cases/compiler/propertyAssignment.ts(14,1): error TS2322: Type '{ x: number; }' is not assignable to type 'new () => any'. tests/cases/compiler/propertyAssignment.ts(16,1): error TS2322: Type '{ x: number; }' is not assignable to type '() => void'. @@ -11,7 +11,7 @@ tests/cases/compiler/propertyAssignment.ts(16,1): error TS2322: Type '{ x: numbe var foo2: { [index]; } // should be an error ~~~~~~~ -!!! error TS1169: Computed property names are not allowed in interfaces or type literals. +!!! error TS1170: Computed property names are not allowed in type literals. var bar2: { x : number; } var foo3: { ():void; } diff --git a/tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName35.ts b/tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName35.ts new file mode 100644 index 00000000000..c33e5ef751c --- /dev/null +++ b/tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName35.ts @@ -0,0 +1,4 @@ +//@target: ES6 +var x = { + [0, 1]: { } +} \ No newline at end of file diff --git a/tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName36.ts b/tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName36.ts new file mode 100644 index 00000000000..62f5e340453 --- /dev/null +++ b/tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName36.ts @@ -0,0 +1,4 @@ +//@target: ES6 +class C { + [public ]: string; +} \ No newline at end of file diff --git a/tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName37.ts b/tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName37.ts new file mode 100644 index 00000000000..3af8e29c666 --- /dev/null +++ b/tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName37.ts @@ -0,0 +1,4 @@ +//@target: ES6 +var v = { + [public]: 0 +}; \ No newline at end of file diff --git a/tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName38.ts b/tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName38.ts new file mode 100644 index 00000000000..21d13e569dd --- /dev/null +++ b/tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName38.ts @@ -0,0 +1,4 @@ +//@target: ES6 +class C { + [public]() { } +} \ No newline at end of file diff --git a/tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName39.ts b/tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName39.ts new file mode 100644 index 00000000000..af56d4d23fe --- /dev/null +++ b/tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName39.ts @@ -0,0 +1,5 @@ +//@target: ES6 +"use strict"; +class C { + [public]() { } +} \ No newline at end of file diff --git a/tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName40.ts b/tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName40.ts new file mode 100644 index 00000000000..90eb99f0430 --- /dev/null +++ b/tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName40.ts @@ -0,0 +1,4 @@ +//@target: ES6 +class C { + [a ? "" : ""]() {} +} \ No newline at end of file diff --git a/tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName41.ts b/tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName41.ts new file mode 100644 index 00000000000..7e5a0c9af62 --- /dev/null +++ b/tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName41.ts @@ -0,0 +1,4 @@ +//@target: ES6 +var v = { + [0 in []]: true +} \ No newline at end of file From ddebd028288b90c392ef5661a8f18af4f716f77e Mon Sep 17 00:00:00 2001 From: Jason Freeman Date: Wed, 26 Nov 2014 20:15:36 -0800 Subject: [PATCH 095/195] Accept type baselines (will verify when computed properties are typechecked) --- .../reference/parserComputedPropertyName12.types | 7 +++++++ .../reference/parserComputedPropertyName17.types | 7 +++++++ .../reference/parserComputedPropertyName2.types | 6 ++++++ .../reference/parserComputedPropertyName24.types | 8 ++++++++ .../reference/parserComputedPropertyName3.types | 7 +++++++ .../reference/parserComputedPropertyName37.types | 9 +++++++++ .../reference/parserComputedPropertyName38.types | 7 +++++++ .../reference/parserComputedPropertyName4.types | 6 ++++++ .../reference/parserComputedPropertyName40.types | 8 ++++++++ .../reference/parserComputedPropertyName41.types | 9 +++++++++ .../reference/parserComputedPropertyName6.types | 9 +++++++++ 11 files changed, 83 insertions(+) create mode 100644 tests/baselines/reference/parserComputedPropertyName12.types create mode 100644 tests/baselines/reference/parserComputedPropertyName17.types create mode 100644 tests/baselines/reference/parserComputedPropertyName2.types create mode 100644 tests/baselines/reference/parserComputedPropertyName24.types create mode 100644 tests/baselines/reference/parserComputedPropertyName3.types create mode 100644 tests/baselines/reference/parserComputedPropertyName37.types create mode 100644 tests/baselines/reference/parserComputedPropertyName38.types create mode 100644 tests/baselines/reference/parserComputedPropertyName4.types create mode 100644 tests/baselines/reference/parserComputedPropertyName40.types create mode 100644 tests/baselines/reference/parserComputedPropertyName41.types create mode 100644 tests/baselines/reference/parserComputedPropertyName6.types diff --git a/tests/baselines/reference/parserComputedPropertyName12.types b/tests/baselines/reference/parserComputedPropertyName12.types new file mode 100644 index 00000000000..fcc96bc4d51 --- /dev/null +++ b/tests/baselines/reference/parserComputedPropertyName12.types @@ -0,0 +1,7 @@ +=== tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName12.ts === +class C { +>C : C + + [e]() { } +>e : unknown +} diff --git a/tests/baselines/reference/parserComputedPropertyName17.types b/tests/baselines/reference/parserComputedPropertyName17.types new file mode 100644 index 00000000000..8ae109dda37 --- /dev/null +++ b/tests/baselines/reference/parserComputedPropertyName17.types @@ -0,0 +1,7 @@ +=== tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName17.ts === +var v = { set [e](v) { } } +>v : {} +>{ set [e](v) { } } : {} +>e : unknown +>v : any + diff --git a/tests/baselines/reference/parserComputedPropertyName2.types b/tests/baselines/reference/parserComputedPropertyName2.types new file mode 100644 index 00000000000..8e533282e28 --- /dev/null +++ b/tests/baselines/reference/parserComputedPropertyName2.types @@ -0,0 +1,6 @@ +=== tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName2.ts === +var v = { [e]: 1 }; +>v : {} +>{ [e]: 1 } : {} +>e : unknown + diff --git a/tests/baselines/reference/parserComputedPropertyName24.types b/tests/baselines/reference/parserComputedPropertyName24.types new file mode 100644 index 00000000000..d2de5244057 --- /dev/null +++ b/tests/baselines/reference/parserComputedPropertyName24.types @@ -0,0 +1,8 @@ +=== tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName24.ts === +class C { +>C : C + + set [e](v) { } +>e : unknown +>v : any +} diff --git a/tests/baselines/reference/parserComputedPropertyName3.types b/tests/baselines/reference/parserComputedPropertyName3.types new file mode 100644 index 00000000000..f673d9fbeb8 --- /dev/null +++ b/tests/baselines/reference/parserComputedPropertyName3.types @@ -0,0 +1,7 @@ +=== tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName3.ts === +var v = { [e]() { } }; +>v : {} +>{ [e]() { } } : {} +>e : unknown +>[e]() { } : () => void + diff --git a/tests/baselines/reference/parserComputedPropertyName37.types b/tests/baselines/reference/parserComputedPropertyName37.types new file mode 100644 index 00000000000..ebcd0ca276c --- /dev/null +++ b/tests/baselines/reference/parserComputedPropertyName37.types @@ -0,0 +1,9 @@ +=== tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName37.ts === +var v = { +>v : {} +>{ [public]: 0} : {} + + [public]: 0 +>public : unknown + +}; diff --git a/tests/baselines/reference/parserComputedPropertyName38.types b/tests/baselines/reference/parserComputedPropertyName38.types new file mode 100644 index 00000000000..c77b9fcc67f --- /dev/null +++ b/tests/baselines/reference/parserComputedPropertyName38.types @@ -0,0 +1,7 @@ +=== tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName38.ts === +class C { +>C : C + + [public]() { } +>public : unknown +} diff --git a/tests/baselines/reference/parserComputedPropertyName4.types b/tests/baselines/reference/parserComputedPropertyName4.types new file mode 100644 index 00000000000..32a1b44efeb --- /dev/null +++ b/tests/baselines/reference/parserComputedPropertyName4.types @@ -0,0 +1,6 @@ +=== tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName4.ts === +var v = { get [e]() { } }; +>v : {} +>{ get [e]() { } } : {} +>e : unknown + diff --git a/tests/baselines/reference/parserComputedPropertyName40.types b/tests/baselines/reference/parserComputedPropertyName40.types new file mode 100644 index 00000000000..1b0b3ae49f0 --- /dev/null +++ b/tests/baselines/reference/parserComputedPropertyName40.types @@ -0,0 +1,8 @@ +=== tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName40.ts === +class C { +>C : C + + [a ? "" : ""]() {} +>a ? "" : "" : string +>a : unknown +} diff --git a/tests/baselines/reference/parserComputedPropertyName41.types b/tests/baselines/reference/parserComputedPropertyName41.types new file mode 100644 index 00000000000..468a44e6b9e --- /dev/null +++ b/tests/baselines/reference/parserComputedPropertyName41.types @@ -0,0 +1,9 @@ +=== tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName41.ts === +var v = { +>v : {} +>{ [0 in []]: true} : {} + + [0 in []]: true +>0 in [] : boolean +>[] : undefined[] +} diff --git a/tests/baselines/reference/parserComputedPropertyName6.types b/tests/baselines/reference/parserComputedPropertyName6.types new file mode 100644 index 00000000000..5fa7e79c32c --- /dev/null +++ b/tests/baselines/reference/parserComputedPropertyName6.types @@ -0,0 +1,9 @@ +=== tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName6.ts === +var v = { [e]: 1, [e + e]: 2 }; +>v : {} +>{ [e]: 1, [e + e]: 2 } : {} +>e : unknown +>e + e : any +>e : unknown +>e : unknown + From ef14da00f40b34bc862f221dd9a491457636a5f9 Mon Sep 17 00:00:00 2001 From: Mohamed Hegazy Date: Thu, 27 Nov 2014 13:01:20 -0800 Subject: [PATCH 096/195] Add tree serializer to test262 --- src/harness/test262Runner.ts | 52 ++++++++++++++++++++++++++++++++++-- 1 file changed, 50 insertions(+), 2 deletions(-) diff --git a/src/harness/test262Runner.ts b/src/harness/test262Runner.ts index 5b664276b5b..1a6fea12d6d 100644 --- a/src/harness/test262Runner.ts +++ b/src/harness/test262Runner.ts @@ -17,6 +17,44 @@ class Test262BaselineRunner extends RunnerBase { }; private static baselineOptions: Harness.Baseline.BaselineOptions = { Subfolder: 'test262' }; + private static getTestFilePath(filename: string): string { + return Test262BaselineRunner.basePath + "/" + filename; + } + + private static serializeSourceFile(file: ts.SourceFile): string { + function getKindName(k: number): string { + return (ts).SyntaxKind[k] + } + + function serializeNode(n: ts.Node): any { + var o = { kind: getKindName(n.kind) }; + ts.forEach(Object.getOwnPropertyNames(n), i => { + switch (i) { + case "parent": + case "symbol": + case "locals": + case "localSymbol": + return undefined; + case "nextContainer": + if (n.nextContainer) { + (o)[i] = { kind: getKindName(n.nextContainer.kind), pos: n.nextContainer.pos, end: n.nextContainer.end }; + return undefined; + } + case "text": + if (n.kind === ts.SyntaxKind.SourceFile) return undefined; + default: + (o)[i] = ((n)[i]); + } + return undefined; + }); + return o; + } + + return JSON.stringify(file,(k, v) => { + return (v && typeof v.pos === "number") ? serializeNode(v) : v; + }, " "); + } + private runTest(filePath: string) { describe('test262 test for ' + filePath, () => { // Mocha holds onto the closure environment of the describe callback even after the test is done. @@ -25,6 +63,7 @@ class Test262BaselineRunner extends RunnerBase { filename: string; compilerResult: Harness.Compiler.CompilerResult; inputFiles: { unitName: string; content: string }[]; + checker: ts.TypeChecker; }; before(() => { @@ -33,7 +72,7 @@ class Test262BaselineRunner extends RunnerBase { var testCaseContent = Harness.TestCaseParser.makeUnitsFromTest(content, testFilename); var inputFiles = testCaseContent.testUnitData.map(unit => { - return { unitName: Test262BaselineRunner.basePath + "/" + unit.name, content: unit.content }; + return { unitName: Test262BaselineRunner.getTestFilePath(unit.name), content: unit.content }; }); // Emit the results @@ -41,10 +80,12 @@ class Test262BaselineRunner extends RunnerBase { filename: testFilename, inputFiles: inputFiles, compilerResult: undefined, + checker: undefined, }; - Harness.Compiler.getCompiler().compileFiles([Test262BaselineRunner.helperFile].concat(inputFiles), /*otherFiles*/ [], compilerResult => { + Harness.Compiler.getCompiler().compileFiles([Test262BaselineRunner.helperFile].concat(inputFiles), /*otherFiles*/ [], (compilerResult, checker) => { testState.compilerResult = compilerResult; + testState.checker = checker; }, /*settingsCallback*/ undefined, Test262BaselineRunner.options); }); @@ -69,6 +110,13 @@ class Test262BaselineRunner extends RunnerBase { return Harness.Compiler.getErrorBaseline(testState.inputFiles, errors); }, false, Test262BaselineRunner.baselineOptions); }); + + it('has the expected AST',() => { + Harness.Baseline.runBaseline('has the expected AST', testState.filename + '.AST.txt',() => { + var sourceFile = testState.checker.getProgram().getSourceFile(Test262BaselineRunner.getTestFilePath(testState.filename)); + return Test262BaselineRunner.serializeSourceFile(sourceFile); + }, false, Test262BaselineRunner.baselineOptions); + }); }); } From af3897086fd198e12eea6eb17def090cc028bcc5 Mon Sep 17 00:00:00 2001 From: Mohamed Hegazy Date: Thu, 27 Nov 2014 13:05:23 -0800 Subject: [PATCH 097/195] Move collateOutputs to harness --- src/harness/harness.ts | 25 +++++++++++++++++++++++++ src/harness/rwcRunner.ts | 31 +++---------------------------- src/harness/test262Runner.ts | 2 +- 3 files changed, 29 insertions(+), 29 deletions(-) diff --git a/src/harness/harness.ts b/src/harness/harness.ts index 791231dabaf..640d5f0ae53 100644 --- a/src/harness/harness.ts +++ b/src/harness/harness.ts @@ -1018,6 +1018,31 @@ module Harness { sys.newLine + sys.newLine + outputLines.join('\r\n'); } + export function collateOutputs(outputFiles: Harness.Compiler.GeneratedFile[], clean?: (s: string) => string) { + // Collect, test, and sort the filenames + function cleanName(fn: string) { + var lastSlash = ts.normalizeSlashes(fn).lastIndexOf('/'); + return fn.substr(lastSlash + 1).toLowerCase(); + } + outputFiles.sort((a, b) => cleanName(a.fileName).localeCompare(cleanName(b.fileName))); + + // Emit them + var result = ''; + ts.forEach(outputFiles, outputFile => { + // Some extra spacing if this isn't the first file + if (result.length) result = result + '\r\n\r\n'; + + // Filename header + content + result = result + '/*====== ' + outputFile.fileName + ' ======*/\r\n'; + if (clean) { + result = result + clean(outputFile.code); + } else { + result = result + outputFile.code; + } + }); + return result; + } + /** The harness' compiler instance used when tests are actually run. Reseting or changing settings of this compiler instance must be done within a test case (i.e., describe/it) */ var harnessCompiler: HarnessCompiler; diff --git a/src/harness/rwcRunner.ts b/src/harness/rwcRunner.ts index 3843a1e28b9..b8bc2a80a52 100644 --- a/src/harness/rwcRunner.ts +++ b/src/harness/rwcRunner.ts @@ -20,31 +20,6 @@ module RWC { } } - export function collateOutputs(outputFiles: Harness.Compiler.GeneratedFile[], clean?: (s: string) => string) { - // Collect, test, and sort the filenames - function cleanName(fn: string) { - var lastSlash = ts.normalizeSlashes(fn).lastIndexOf('/'); - return fn.substr(lastSlash + 1).toLowerCase(); - } - outputFiles.sort((a, b) => cleanName(a.fileName).localeCompare(cleanName(b.fileName))); - - // Emit them - var result = ''; - ts.forEach(outputFiles, outputFile => { - // Some extra spacing if this isn't the first file - if (result.length) result = result + '\r\n\r\n'; - - // Filename header + content - result = result + '/*====== ' + outputFile.fileName + ' ======*/\r\n'; - if (clean) { - result = result + clean(outputFile.code); - } else { - result = result + outputFile.code; - } - }); - return result; - } - export function runRWCTest(jsonPath: string) { describe("Testing a RWC project: " + jsonPath, () => { var inputFiles: { unitName: string; content: string; }[] = []; @@ -136,7 +111,7 @@ module RWC { it('has the expected emitted code', () => { Harness.Baseline.runBaseline('has the expected emitted code', baseName + '.output.js', () => { - return collateOutputs(compilerResult.files, s => SyntacticCleaner.clean(s)); + return Harness.Compiler.collateOutputs(compilerResult.files, s => SyntacticCleaner.clean(s)); }, false, baselineOpts); }); @@ -145,7 +120,7 @@ module RWC { if (compilerResult.errors.length || !compilerResult.declFilesCode.length) { return null; } - return collateOutputs(compilerResult.declFilesCode); + return Harness.Compiler.collateOutputs(compilerResult.declFilesCode); }, false, baselineOpts); }); @@ -155,7 +130,7 @@ module RWC { return null; } - return collateOutputs(compilerResult.sourceMaps); + return Harness.Compiler.collateOutputs(compilerResult.sourceMaps); }, false, baselineOpts); }); diff --git a/src/harness/test262Runner.ts b/src/harness/test262Runner.ts index 1a6fea12d6d..86e22aaeec0 100644 --- a/src/harness/test262Runner.ts +++ b/src/harness/test262Runner.ts @@ -96,7 +96,7 @@ class Test262BaselineRunner extends RunnerBase { it('has the expected emitted code', () => { Harness.Baseline.runBaseline('has the expected emitted code', testState.filename + '.output.js', () => { var files = testState.compilerResult.files.filter(f=> f.fileName !== Test262BaselineRunner.helpersFilePath); - return RWC.collateOutputs(files, s => SyntacticCleaner.clean(s)); + return Harness.Compiler.collateOutputs(files, s => SyntacticCleaner.clean(s)); }, false, Test262BaselineRunner.baselineOptions); }); From cc270c72ec549ca3e054ba38ca8a5e8a7ff74f6f Mon Sep 17 00:00:00 2001 From: Mohamed Hegazy Date: Thu, 27 Nov 2014 13:06:06 -0800 Subject: [PATCH 098/195] Add the test262 helper file --- tests/cases/test262-harness/helpers.d.ts | 367 +++++++++++++++++++++++ 1 file changed, 367 insertions(+) create mode 100644 tests/cases/test262-harness/helpers.d.ts diff --git a/tests/cases/test262-harness/helpers.d.ts b/tests/cases/test262-harness/helpers.d.ts new file mode 100644 index 00000000000..3e281f41b01 --- /dev/null +++ b/tests/cases/test262-harness/helpers.d.ts @@ -0,0 +1,367 @@ +declare function $FAIL(message: any): void; +declare function $PRINT(message: any): void; +declare function accessorPropertyAttributesAreCorrect(obj: any, name: any, get: any, set: any, setVerifyHelpProp: any, enumerable: any, configurable: any): boolean; +declare function arrayContains(arr: any, expected: any): boolean; +declare function compareArray(aExpected: any, aActual: any): boolean; +declare function testRun(id: any, path: any, description: any, codeString: any, result: any, error: any): void; +declare var print: any; +declare function dataPropertyAttributesAreCorrect(obj: any, name: any, value: any, writable: any, enumerable: any, configurable: any): boolean; +declare var HoursPerDay: number; +declare var MinutesPerHour: number; +declare var SecondsPerMinute: number; +declare var msPerDay: number; +declare var msPerSecond: number; +declare var msPerMinute: number; +declare var msPerHour: number; +declare var date_1899_end: number; +declare var date_1900_start: number; +declare var date_1969_end: number; +declare var date_1970_start: number; +declare var date_1999_end: number; +declare var date_2000_start: number; +declare var date_2099_end: number; +declare var date_2100_start: number; +declare var $LocalTZ: any, $DST_start_month: any, $DST_start_sunday: any, $DST_start_hour: any, $DST_start_minutes: any, $DST_end_month: any, $DST_end_sunday: any, $DST_end_hour: any, $DST_end_minutes: any; +declare function Day(t: any): number; +declare function TimeWithinDay(t: any): number; +declare function DaysInYear(y: any): number; +declare function DayFromYear(y: any): number; +declare function TimeFromYear(y: any): number; +declare function YearFromTime(t: any): number; +declare function InLeapYear(t: any): number; +declare function DayWithinYear(t: any): number; +declare function MonthFromTime(t: any): number; +declare function DateFromTime(t: any): number; +declare function WeekDay(t: any): number; +declare var LocalTZA: number; +declare function DaysInMonth(m: any, leap: any): any; +declare function GetSundayInMonth(t: any, m: any, count: any): any; +declare function DaylightSavingTA(t: any): number; +declare function LocalTime(t: any): any; +declare function UTC(t: any): number; +declare function HourFromTime(t: any): number; +declare function MinFromTime(t: any): number; +declare function SecFromTime(t: any): number; +declare function msFromTime(t: any): number; +declare function MakeTime(hour: any, min: any, sec: any, ms: any): any; +declare function MakeDay(year: any, month: any, date: any): number; +declare function MakeDate(day: any, time: any): any; +declare function TimeClip(time: any): any; +declare function ConstructDate(year: any, month: any, date: any, hours: any, minutes: any, seconds: any, ms: any): any; +declare function __consolePrintHandle__(msg: any): void; +declare function fnExists(): boolean; +declare var __globalObject: any; +declare function fnGlobalObject(): any; +declare function testPrint(message: any): void; +/** + * It is not yet clear that runTestCase should pass the global object + * as the 'this' binding in the call to testcase. + */ +declare var runTestCase: (testcase: any) => void; +declare function assertTruthy(value: any): void; +/** + * falsy means we expect no error. + * truthy means we expect some error. + * A non-empty string means we expect an error whose .name is that string. + */ +declare var expectedErrorName: boolean; +/** + * What was thrown, or the string 'Falsy' if something falsy was thrown. + * null if test completed normally. + */ +declare var actualError: any; +declare function testStarted(expectedErrName: any): void; +declare function testFinished(): void; +declare function Presenter(): void; +declare var presenter: any; +declare var prec: any; +declare function isEqual(num1: any, num2: any): boolean; +declare function getPrecision(num: any): number; +declare function ToInteger(p: any): any; +declare function checkSequence(arr: Promise, message: string): void; +declare var objectStore: { + object: Object; +}; +declare var functionStore: { + fun: () => string; +}; +declare function createEmulatedProxy(target: T, emulatedProps: any, success?: any): T; +declare function Section(parentSection: any, id: any, name: any): void; +declare var NotEarlyErrorString: string; +declare var EarlyErrorRePat: string; +declare var NotEarlyError: Error; +declare var $ERROR: any; +declare function BrowserRunner(): void; +declare function TestLoader(): void; +declare function Controller(): void; +declare var controller: any; +declare function isSiteDebugMode(): boolean; +/** + * @description Helper handler method for tagged string templates + */ +declare function testHandler(literals: any): string; +/** + * @description Tests that obj meets the requirements for built-in objects + * defined by the introduction of chapter 15 of the ECMAScript Language Specification. + * @param {Object} obj the object to be tested. + * @param {boolean} isFunction whether the specification describes obj as a function. + * @param {boolean} isConstructor whether the specification describes obj as a constructor. + * @param {String[]} properties an array with the names of the built-in properties of obj, + * excluding length, prototype, or properties with non-default attributes. + * @param {number} length for functions only: the length specified for the function + * or derived from the argument list. + * @author Norbert Lindenberg + */ +declare function testBuiltInObject(obj: any, isFunction: any, isConstructor: any, properties: any, length: any): boolean; +/** + * @description This is a helper file for testing detached typed arrays + * @author Andrei Borodin (anborod) + */ +declare var lib: { + init: () => void; + dispose: () => void; + detachItem: (item: any) => any; + createDetachCallback: (arr: any, detachAfterNumIterations: any, valueToReturn: any) => (item: any) => any; + createDetachValueOfObject: (arr: any, detachAfterNumIterations: any, value: any) => { + valueOf: () => any; + }; + createDetachToStringObject: (arr: any, detachAfterNumIterations: any, value: any) => { + toString: () => string; + }; + runTestCaseWrapper: (func: any) => void; + expectTypeError: (func: any, reason: any) => void; + expectRangeError: (func: any, reason: any) => void; + expectError: (errorType: any, name: any, func: any, reason: any) => void; + isDetached: (obj: any) => boolean; +}; +declare function testIntlOptions(givenOptions: any, expectedOptions: any): void; +/** + * This file contains shared functions for the tests in the conformance test + * suite for the ECMAScript Internationalization API. + * @author Norbert Lindenberg + */ +/** + * @description Calls the provided function for every service constructor in + * the Intl object, until f returns a falsy value. It returns the result of the + * last call to f, mapped to a boolean. + * @param {Function} f the function to call for each service constructor in + * the Intl object. + * @param {Function} Constructor the constructor object to test with. + * @result {Boolean} whether the test succeeded. + */ +declare function testWithIntlConstructors(f: any): boolean; +/** + * Returns the name of the given constructor object, which must be one of + * Intl.Collator, Intl.NumberFormat, or Intl.DateTimeFormat. + * @param {object} Constructor a constructor + * @return {string} the name of the constructor + */ +declare function getConstructorName(Constructor: any): string; +/** + * Taints a named data property of the given object by installing + * a setter that throws an exception. + * @param {object} obj the object whose data property to taint + * @param {string} property the property to taint + */ +declare function taintDataProperty(obj: any, property: any): void; +/** + * Taints a named method of the given object by replacing it with a function + * that throws an exception. + * @param {object} obj the object whose method to taint + * @param {string} property the name of the method to taint + */ +declare function taintMethod(obj: any, property: any): void; +/** + * Taints the given properties (and similarly named properties) by installing + * setters on Object.prototype that throw exceptions. + * @param {Array} properties an array of property names to taint + */ +declare function taintProperties(properties: any): void; +/** + * Taints the Array object by creating a setter for the property "0" and + * replacing some key methods with functions that throw exceptions. + */ +declare function taintArray(): void; +declare var languages: string[]; +declare var scripts: string[]; +declare var countries: string[]; +declare var localeSupportInfo: {}; +/** + * Gets locale support info for the given constructor object, which must be one + * of Intl.Collator, Intl.NumberFormat, Intl.DateTimeFormat. + * @param {object} Constructor the constructor for which to get locale support info + * @return {object} locale support info with the following properties: + * supported: array of fully supported language tags + * byFallback: array of language tags that are supported through fallbacks + * unsupported: array of unsupported language tags + */ +declare function getLocaleSupportInfo(Constructor: any): any; +/** + * @description Tests whether locale is a String value representing a + * structurally valid and canonicalized BCP 47 language tag, as defined in + * sections 6.2.2 and 6.2.3 of the ECMAScript Internationalization API + * Specification. + * @param {String} locale the string to be tested. + * @result {Boolean} whether the test succeeded. + */ +declare function isCanonicalizedStructurallyValidLanguageTag(locale: any): boolean; +/** + * Tests whether the named options property is correctly handled by the given constructor. + * @param {object} Constructor the constructor to test. + * @param {string} property the name of the options property to test. + * @param {string} type the type that values of the property are expected to have + * @param {Array} [values] an array of allowed values for the property. Not needed for boolean. + * @param {any} fallback the fallback value that the property assumes if not provided. + * @param {object} testOptions additional options: + * @param {boolean} isOptional whether support for this property is optional for implementations. + * @param {boolean} noReturn whether the resulting value of the property is not returned. + * @param {boolean} isILD whether the resulting value of the property is implementation and locale dependent. + * @param {object} extra additional option to pass along, properties are value -> {option: value}. + * @return {boolean} whether the test succeeded. + */ +declare function testOption(Constructor: any, property: any, type: any, values: any, fallback: any, testOptions: any): boolean; +/** + * Tests whether the named property of the given object has a valid value + * and the default attributes of the properties of an object literal. + * @param {Object} obj the object to be tested. + * @param {string} property the name of the property + * @param {Function|Array} valid either a function that tests value for validity and returns a boolean, + * an array of valid values. + * @exception if the property has an invalid value. + */ +declare function testProperty(obj: any, property: any, valid: any): void; +/** + * Tests whether the named property of the given object, if present at all, has a valid value + * and the default attributes of the properties of an object literal. + * @param {Object} obj the object to be tested. + * @param {string} property the name of the property + * @param {Function|Array} valid either a function that tests value for validity and returns a boolean, + * an array of valid values. + * @exception if the property is present and has an invalid value. + */ +declare function mayHaveProperty(obj: any, property: any, valid: any): void; +/** + * Tests whether the given object has the named property with a valid value + * and the default attributes of the properties of an object literal. + * @param {Object} obj the object to be tested. + * @param {string} property the name of the property + * @param {Function|Array} valid either a function that tests value for validity and returns a boolean, + * an array of valid values. + * @exception if the property is missing or has an invalid value. + */ +declare function mustHaveProperty(obj: any, property: any, valid: any): void; +/** + * Tests whether the given object does not have the named property. + * @param {Object} obj the object to be tested. + * @param {string} property the name of the property + * @exception if the property is present. + */ +declare function mustNotHaveProperty(obj: any, property: any): void; +/** + * Properties of the RegExp constructor that may be affected by use of regular + * expressions, and the default values of these properties. Properties are from + * https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Deprecated_and_obsolete_features#RegExp_Properties + */ +declare var regExpProperties: string[]; +declare var regExpPropertiesDefaultValues: any; +/** + * Tests that executing the provided function (which may use regular expressions + * in its implementation) does not create or modify unwanted properties on the + * RegExp constructor. + */ +declare function testForUnwantedRegExpChanges(testFunc: any): void; +/** + * Tests whether name is a valid BCP 47 numbering system name + * and not excluded from use in the ECMAScript Internationalization API. + * @param {string} name the name to be tested. + * @return {boolean} whether name is a valid BCP 47 numbering system name and + * allowed for use in the ECMAScript Internationalization API. + */ +declare function isValidNumberingSystem(name: any): boolean; +/** + * Provides the digits of numbering systems with simple digit mappings, + * as specified in 11.3.2. + */ +declare var numberingSystemDigits: { + arab: string; + arabext: string; + beng: string; + deva: string; + fullwide: string; + gujr: string; + guru: string; + hanidec: string; + khmr: string; + knda: string; + laoo: string; + latn: string; + mlym: string; + mong: string; + mymr: string; + orya: string; + tamldec: string; + telu: string; + thai: string; + tibt: string; +}; +/** + * Tests that number formatting is handled correctly. The function checks that the + * digit sequences in formatted output are as specified, converted to the + * selected numbering system, and embedded in consistent localized patterns. + * @param {Array} locales the locales to be tested. + * @param {Array} numberingSystems the numbering systems to be tested. + * @param {Object} options the options to pass to Intl.NumberFormat. Options + * must include {useGrouping: false}, and must cause 1.1 to be formatted + * pre- and post-decimal digits. + * @param {Object} testData maps input data (in ES5 9.3.1 format) to expected output strings + * in unlocalized format with Western digits. + */ +declare function testNumberFormat(locales: any, numberingSystems: any, options: any, testData: any): void; +/** + * Return the components of date-time formats. + * @return {Array} an array with all date-time components. + */ +declare function getDateTimeComponents(): string[]; +/** + * Return the valid values for the given date-time component, as specified + * by the table in section 12.1.1. + * @param {string} component a date-time component. + * @return {Array} an array with the valid values for the component. + */ +declare function getDateTimeComponentValues(component: any): any; +/** + * Tests that the given value is valid for the given date-time component. + * @param {string} component a date-time component. + * @param {string} value the value to be tested. + * @return {boolean} true if the test succeeds. + * @exception if the test fails. + */ +declare function testValidDateTimeComponentValue(component: any, value: any): boolean; +/** + * Verifies that the actual array matches the expected one in length, elements, + * and element order. + * @param {Array} expected the expected array. + * @param {Array} actual the actual array. + * @return {boolean} true if the test succeeds. + * @exception if the test fails. + */ +declare function testArraysAreSame(expected: any, actual: any): boolean; +/** + * @description Helper methods for TypedArrays + */ +declare function CreateTypedArrayTypes(): [typeof Int8Array, typeof Uint8Array, typeof Int16Array, typeof Uint16Array, typeof Int32Array, typeof Uint32Array, typeof Float32Array, typeof Float64Array, typeof Uint8ClampedArray]; +declare function CreateTypedArrayInstances(obj: any): [Int8Array, Uint8Array, Int16Array, Uint16Array, Int32Array, Uint32Array, Float32Array, Float64Array, Uint8ClampedArray]; +declare function CreateIntegerTypedArrayTypes(): [typeof Int8Array, typeof Uint8Array, typeof Int16Array, typeof Uint16Array, typeof Int32Array, typeof Uint32Array, typeof Uint8ClampedArray]; +declare function CreateIntegerTypedArrays(obj: any): [Int8Array, Uint8Array, Int16Array, Uint16Array, Int32Array, Uint32Array, Uint8ClampedArray]; +declare function CreateTypedRedcuedSetOfArrayTypes(): [typeof Float64Array]; +declare function CreateTypedRedcuedSetOfArrays(obj: any): [Float64Array]; +declare function CreateTypedArraysFrom(obj: any): [Int8Array, Uint8Array, Int16Array, Uint16Array, Int32Array, Uint32Array, Float32Array, Float64Array, Uint8ClampedArray]; +declare function CreateTypedArraysOf(obj: any): [Int8Array, Uint8Array, Int16Array, Uint16Array, Int32Array, Uint32Array, Float32Array, Float64Array, Uint8ClampedArray]; +declare function CreateTypedArraysFromMapFn(obj: any, mapFn: any): [Int8Array, Uint8Array, Int16Array, Uint16Array, Int32Array, Uint32Array, Float32Array, Float64Array, Uint8ClampedArray]; +declare function CreateTypedArraysFromThisObj(obj: any, mapFn: any, thisArg: any): [Int8Array, Uint8Array, Int16Array, Uint16Array, Int32Array, Uint32Array, Float32Array, Float64Array, Uint8ClampedArray]; +declare function CreatestringsOf(obj: any): string[]; +declare function CreateSignedTypedArrayInstances(obj: any): [Int8Array, Int16Array, Int32Array, Float32Array, Float64Array]; +declare function CreateUnSignedTypedArrayInstances(obj: any): [Uint8Array, Uint16Array, Uint32Array, Uint8ClampedArray]; +declare var $LOG: any; +declare var WScript: any; +declare var $DONE: any; \ No newline at end of file From cca6eeaf99960e539ae61b8d55e3bee68b87e55d Mon Sep 17 00:00:00 2001 From: Vladimir Matveev Date: Thu, 27 Nov 2014 19:03:50 -0800 Subject: [PATCH 099/195] new lines that were added\removed by rules must always be honores even if they doesn't trigger recomputation of indentation --- src/services/formatting.ts | 10 ++++----- ...ormatNestedClassWithOpenBraceOnNewLines.ts | 21 +++++++++++++++++++ 2 files changed, 25 insertions(+), 6 deletions(-) create mode 100644 tests/cases/fourslash/formatNestedClassWithOpenBraceOnNewLines.ts diff --git a/src/services/formatting.ts b/src/services/formatting.ts index f58f1ccb33e..fc64329c3e0 100644 --- a/src/services/formatting.ts +++ b/src/services/formatting.ts @@ -701,25 +701,23 @@ module ts.formatting { applyRuleEdits(rule, previousItem, previousStartLine, currentItem, currentStartLine); if (rule.Operation.Action & (RuleAction.Space | RuleAction.Delete) && currentStartLine !== previousStartLine) { + lineAdded = false; // Handle the case where the next line is moved to be the end of this line. // In this case we don't indent the next line in the next pass. if (currentParent.getStart(sourceFile) === currentItem.pos) { - lineAdded = false; + dynamicIndentation.recomputeIndentation(/*lineAdded*/ false); } } else if (rule.Operation.Action & RuleAction.NewLine && currentStartLine === previousStartLine) { + lineAdded = true; // Handle the case where token2 is moved to the new line. // In this case we indent token2 in the next pass but we set // sameLineIndent flag to notify the indenter that the indentation is within the line. if (currentParent.getStart(sourceFile) === currentItem.pos) { - lineAdded = true; + dynamicIndentation.recomputeIndentation(/*lineAdded*/ true); } } - if (lineAdded !== undefined) { - dynamicIndentation.recomputeIndentation(lineAdded); - } - // We need to trim trailing whitespace between the tokens if they were on different lines, and no rule was applied to put them on the same line trimTrailingWhitespaces = (rule.Operation.Action & (RuleAction.NewLine | RuleAction.Space)) && diff --git a/tests/cases/fourslash/formatNestedClassWithOpenBraceOnNewLines.ts b/tests/cases/fourslash/formatNestedClassWithOpenBraceOnNewLines.ts new file mode 100644 index 00000000000..2f3157a2833 --- /dev/null +++ b/tests/cases/fourslash/formatNestedClassWithOpenBraceOnNewLines.ts @@ -0,0 +1,21 @@ +/// + +////module A +////{ +//// class B { +//// /*1*/ +////} + +format.setOption("PlaceOpenBraceOnNewLineForControlBlocks", true); +format.setOption("PlaceOpenBraceOnNewLineForFunctions", true); +goTo.marker("1"); +edit.insert("}"); + +verify.currentFileContentIs( +"module A\n\ +{\n\ + class B\n\ + {\n\ + }\n\ +}" +); \ No newline at end of file From ab057b9e58c0f71c29d0de074389af8e23fc78c8 Mon Sep 17 00:00:00 2001 From: Cyrus Najmabadi Date: Wed, 26 Nov 2014 01:05:47 -0800 Subject: [PATCH 100/195] Use a const enum for the syntax kind. Conflicts: Jakefile src/services/syntax/SyntaxGenerator.js.map tests/Fidelity/Program.ts tests/Fidelity/program.js tests/Fidelity/program.js.map --- src/services/syntax/SyntaxGenerator.js | 64 +- src/services/syntax/SyntaxGenerator.js.map | 4 + src/services/syntax/syntaxGenerator.ts | 17 +- src/services/syntax/syntaxKind.ts | 2 +- tests/Fidelity/Program.ts | 936 + tests/Fidelity/program.js | 32340 +++++++++++++++++++ tests/Fidelity/program.js.map | 1 + 7 files changed, 33327 insertions(+), 37 deletions(-) create mode 100644 tests/Fidelity/Program.ts create mode 100644 tests/Fidelity/program.js create mode 100644 tests/Fidelity/program.js.map diff --git a/src/services/syntax/SyntaxGenerator.js b/src/services/syntax/SyntaxGenerator.js index 29f94baa41f..d0aeab916f1 100644 --- a/src/services/syntax/SyntaxGenerator.js +++ b/src/services/syntax/SyntaxGenerator.js @@ -627,26 +627,26 @@ var TypeScript; SyntaxKind[SyntaxKind["PropertyAssignment"] = 215] = "PropertyAssignment"; SyntaxKind[SyntaxKind["ExternalModuleReference"] = 216] = "ExternalModuleReference"; SyntaxKind[SyntaxKind["ModuleNameModuleReference"] = 217] = "ModuleNameModuleReference"; - SyntaxKind[SyntaxKind["FirstStandardKeyword"] = SyntaxKind.BreakKeyword] = "FirstStandardKeyword"; - SyntaxKind[SyntaxKind["LastStandardKeyword"] = SyntaxKind.WithKeyword] = "LastStandardKeyword"; - SyntaxKind[SyntaxKind["FirstFutureReservedKeyword"] = SyntaxKind.ClassKeyword] = "FirstFutureReservedKeyword"; - SyntaxKind[SyntaxKind["LastFutureReservedKeyword"] = SyntaxKind.SuperKeyword] = "LastFutureReservedKeyword"; - SyntaxKind[SyntaxKind["FirstFutureReservedStrictKeyword"] = SyntaxKind.ImplementsKeyword] = "FirstFutureReservedStrictKeyword"; - SyntaxKind[SyntaxKind["LastFutureReservedStrictKeyword"] = SyntaxKind.YieldKeyword] = "LastFutureReservedStrictKeyword"; - SyntaxKind[SyntaxKind["FirstTypeScriptKeyword"] = SyntaxKind.AnyKeyword] = "FirstTypeScriptKeyword"; - SyntaxKind[SyntaxKind["LastTypeScriptKeyword"] = SyntaxKind.StringKeyword] = "LastTypeScriptKeyword"; - SyntaxKind[SyntaxKind["FirstKeyword"] = SyntaxKind.FirstStandardKeyword] = "FirstKeyword"; - SyntaxKind[SyntaxKind["LastKeyword"] = SyntaxKind.LastTypeScriptKeyword] = "LastKeyword"; - SyntaxKind[SyntaxKind["FirstToken"] = SyntaxKind.ErrorToken] = "FirstToken"; - SyntaxKind[SyntaxKind["LastToken"] = SyntaxKind.SlashEqualsToken] = "LastToken"; - SyntaxKind[SyntaxKind["FirstPunctuation"] = SyntaxKind.OpenBraceToken] = "FirstPunctuation"; - SyntaxKind[SyntaxKind["LastPunctuation"] = SyntaxKind.SlashEqualsToken] = "LastPunctuation"; - SyntaxKind[SyntaxKind["FirstFixedWidth"] = SyntaxKind.FirstKeyword] = "FirstFixedWidth"; - SyntaxKind[SyntaxKind["LastFixedWidth"] = SyntaxKind.LastPunctuation] = "LastFixedWidth"; - SyntaxKind[SyntaxKind["FirstTrivia"] = SyntaxKind.WhitespaceTrivia] = "FirstTrivia"; - SyntaxKind[SyntaxKind["LastTrivia"] = SyntaxKind.SkippedTokenTrivia] = "LastTrivia"; - SyntaxKind[SyntaxKind["FirstNode"] = SyntaxKind.SourceUnit] = "FirstNode"; - SyntaxKind[SyntaxKind["LastNode"] = SyntaxKind.ModuleNameModuleReference] = "LastNode"; + SyntaxKind[SyntaxKind["FirstStandardKeyword"] = 17] = "FirstStandardKeyword"; + SyntaxKind[SyntaxKind["LastStandardKeyword"] = 45] = "LastStandardKeyword"; + SyntaxKind[SyntaxKind["FirstFutureReservedKeyword"] = 46] = "FirstFutureReservedKeyword"; + SyntaxKind[SyntaxKind["LastFutureReservedKeyword"] = 52] = "LastFutureReservedKeyword"; + SyntaxKind[SyntaxKind["FirstFutureReservedStrictKeyword"] = 53] = "FirstFutureReservedStrictKeyword"; + SyntaxKind[SyntaxKind["LastFutureReservedStrictKeyword"] = 61] = "LastFutureReservedStrictKeyword"; + SyntaxKind[SyntaxKind["FirstTypeScriptKeyword"] = 62] = "FirstTypeScriptKeyword"; + SyntaxKind[SyntaxKind["LastTypeScriptKeyword"] = 73] = "LastTypeScriptKeyword"; + SyntaxKind[SyntaxKind["FirstKeyword"] = 17] = "FirstKeyword"; + SyntaxKind[SyntaxKind["LastKeyword"] = 73] = "LastKeyword"; + SyntaxKind[SyntaxKind["FirstToken"] = 7] = "FirstToken"; + SyntaxKind[SyntaxKind["LastToken"] = 123] = "LastToken"; + SyntaxKind[SyntaxKind["FirstPunctuation"] = 74] = "FirstPunctuation"; + SyntaxKind[SyntaxKind["LastPunctuation"] = 123] = "LastPunctuation"; + SyntaxKind[SyntaxKind["FirstFixedWidth"] = 17] = "FirstFixedWidth"; + SyntaxKind[SyntaxKind["LastFixedWidth"] = 123] = "LastFixedWidth"; + SyntaxKind[SyntaxKind["FirstTrivia"] = 2] = "FirstTrivia"; + SyntaxKind[SyntaxKind["LastTrivia"] = 6] = "LastTrivia"; + SyntaxKind[SyntaxKind["FirstNode"] = 124] = "FirstNode"; + SyntaxKind[SyntaxKind["LastNode"] = 217] = "LastNode"; })(TypeScript.SyntaxKind || (TypeScript.SyntaxKind = {})); var SyntaxKind = TypeScript.SyntaxKind; })(TypeScript || (TypeScript = {})); @@ -783,11 +783,11 @@ var TypeScript; } SyntaxFacts.getText = getText; function isAnyKeyword(kind) { - return kind >= TypeScript.SyntaxKind.FirstKeyword && kind <= TypeScript.SyntaxKind.LastKeyword; + return kind >= 17 /* FirstKeyword */ && kind <= 73 /* LastKeyword */; } SyntaxFacts.isAnyKeyword = isAnyKeyword; function isAnyPunctuation(kind) { - return kind >= TypeScript.SyntaxKind.FirstPunctuation && kind <= TypeScript.SyntaxKind.LastPunctuation; + return kind >= 74 /* FirstPunctuation */ && kind <= 123 /* LastPunctuation */; } SyntaxFacts.isAnyPunctuation = isAnyPunctuation; function isPrefixUnaryExpressionOperatorToken(tokenKind) { @@ -1904,9 +1904,13 @@ var definitions = [ ] } ]; +function getSyntaxKindEnum() { + var name = "SyntaxKind"; + return TypeScript[name]; +} function firstKind(definition) { var kindName = getNameWithoutSuffix(definition); - return TypeScript.SyntaxKind[kindName]; + return getSyntaxKindEnum()[kindName]; } definitions.sort(function (d1, d2) { return firstKind(d1) - firstKind(d2); }); function getStringWithoutSuffix(definition) { @@ -2115,7 +2119,7 @@ function generateKeywordCondition(keywords, currentCharacter, indent) { if (keywords.length === 1) { var keyword = keywords[0]; if (currentCharacter === length) { - return " return SyntaxKind." + firstEnumName(TypeScript.SyntaxKind, keyword.kind) + ";\r\n"; + return " return SyntaxKind." + firstEnumName(getSyntaxKindEnum(), keyword.kind) + ";\r\n"; } var keywordText = keywords[0].text; result = " return ("; @@ -2126,7 +2130,7 @@ function generateKeywordCondition(keywords, currentCharacter, indent) { index = i === 0 ? "start" : ("start + " + i); result += "str.charCodeAt(" + index + ") === CharacterCodes." + keywordText.substr(i, 1); } - result += ") ? SyntaxKind." + firstEnumName(TypeScript.SyntaxKind, keyword.kind) + " : SyntaxKind.IdentifierName;\r\n"; + result += ") ? SyntaxKind." + firstEnumName(getSyntaxKindEnum(), keyword.kind) + " : SyntaxKind.IdentifierName;\r\n"; } else { result += " // " + TypeScript.ArrayUtilities.select(keywords, function (k) { return k.text; }).join(", ") + "\r\n"; @@ -2171,11 +2175,11 @@ function generateUtilities() { function generateScannerUtilities() { var result = "///\r\n" + "\r\n" + "module TypeScript {\r\n" + " export module ScannerUtilities {\r\n"; result += " export var fixedWidthArray = ["; - for (var i = 0; i <= TypeScript.SyntaxKind.LastFixedWidth; i++) { + for (var i = 0; i <= 123 /* LastFixedWidth */; i++) { if (i) { result += ", "; } - if (i < TypeScript.SyntaxKind.FirstFixedWidth) { + if (i < 17 /* FirstFixedWidth */) { result += "0"; } else { @@ -2185,7 +2189,7 @@ function generateScannerUtilities() { result += "];\r\n"; var i; var keywords = []; - for (i = TypeScript.SyntaxKind.FirstKeyword; i <= TypeScript.SyntaxKind.LastKeyword; i++) { + for (i = 17 /* FirstKeyword */; i <= 73 /* LastKeyword */; i++) { keywords.push({ kind: i, text: TypeScript.SyntaxFacts.getText(i) }); } keywords.sort(function (a, b) { return a.text.localeCompare(b.text); }); @@ -2208,8 +2212,8 @@ function generateScannerUtilities() { return result; } function syntaxKindName(kind) { - for (var name in TypeScript.SyntaxKind) { - if (TypeScript.SyntaxKind[name] === kind) { + for (var name in getSyntaxKindEnum()) { + if (getSyntaxKindEnum()[name] === kind) { return name; } } diff --git a/src/services/syntax/SyntaxGenerator.js.map b/src/services/syntax/SyntaxGenerator.js.map index d53116de107..8b703a393f1 100644 --- a/src/services/syntax/SyntaxGenerator.js.map +++ b/src/services/syntax/SyntaxGenerator.js.map @@ -14,6 +14,7 @@ <<<<<<< HEAD <<<<<<< HEAD <<<<<<< HEAD +<<<<<<< HEAD <<<<<<< Updated upstream {"version":3,"file":"SyntaxGenerator.js","sourceRoot":"","sources":["file:///C:/VSPro_1/src/typescript/public_cyrusn/src/compiler/sys.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/core/errors.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/core/arrayUtilities.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/core/stringUtilities.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/syntax/syntaxKind.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/syntax/syntaxFacts.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/syntax/SyntaxGenerator.ts"],"names":["getWScriptSystem","getWScriptSystem.readFile","getWScriptSystem.writeFile","getNodeSystem","getNodeSystem.readFile","getNodeSystem.writeFile","getNodeSystem.fileChanged","TypeScript","TypeScript.Errors","TypeScript.Errors.constructor","TypeScript.Errors.argument","TypeScript.Errors.argumentOutOfRange","TypeScript.Errors.argumentNull","TypeScript.Errors.abstract","TypeScript.Errors.notYetImplemented","TypeScript.Errors.invalidOperation","TypeScript.ArrayUtilities","TypeScript.ArrayUtilities.constructor","TypeScript.ArrayUtilities.sequenceEquals","TypeScript.ArrayUtilities.contains","TypeScript.ArrayUtilities.distinct","TypeScript.ArrayUtilities.last","TypeScript.ArrayUtilities.lastOrDefault","TypeScript.ArrayUtilities.firstOrDefault","TypeScript.ArrayUtilities.first","TypeScript.ArrayUtilities.sum","TypeScript.ArrayUtilities.select","TypeScript.ArrayUtilities.where","TypeScript.ArrayUtilities.any","TypeScript.ArrayUtilities.all","TypeScript.ArrayUtilities.binarySearch","TypeScript.ArrayUtilities.createArray","TypeScript.ArrayUtilities.grow","TypeScript.ArrayUtilities.copy","TypeScript.ArrayUtilities.indexOf","TypeScript.StringUtilities","TypeScript.StringUtilities.constructor","TypeScript.StringUtilities.isString","TypeScript.StringUtilities.endsWith","TypeScript.StringUtilities.startsWith","TypeScript.StringUtilities.repeat","TypeScript.SyntaxKind","TypeScript.SyntaxFacts","TypeScript.SyntaxFacts.getTokenKind","TypeScript.SyntaxFacts.getText","TypeScript.SyntaxFacts.isAnyKeyword","TypeScript.SyntaxFacts.isAnyPunctuation","TypeScript.SyntaxFacts.isPrefixUnaryExpressionOperatorToken","TypeScript.SyntaxFacts.isBinaryExpressionOperatorToken","TypeScript.SyntaxFacts.isAssignmentOperatorToken","TypeScript.SyntaxFacts.isType","firstKind","getStringWithoutSuffix","getNameWithoutSuffix","getType","camelCase","getSafeName","generateConstructorFunction","generateSyntaxInterfaces","generateSyntaxInterface","generateNodes","isInterface","generateWalker","firstEnumName","groupBy","generateKeywordCondition","min","max","generateUtilities","generateScannerUtilities","syntaxKindName","generateVisitor"],"mappings":"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"} ======= @@ -67,3 +68,6 @@ ======= {"version":3,"file":"SyntaxGenerator.js","sourceRoot":"","sources":["file:///C:/VSPro_1/src/typescript/public_cyrusn/src/compiler/sys.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/core/errors.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/core/arrayUtilities.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/core/stringUtilities.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/syntax/syntaxKind.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/syntax/syntaxFacts.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/syntax/SyntaxGenerator.ts"],"names":["getWScriptSystem","getWScriptSystem.readFile","getWScriptSystem.writeFile","getNodeSystem","getNodeSystem.readFile","getNodeSystem.writeFile","getNodeSystem.fileChanged","TypeScript","TypeScript.Errors","TypeScript.Errors.constructor","TypeScript.Errors.argument","TypeScript.Errors.argumentOutOfRange","TypeScript.Errors.argumentNull","TypeScript.Errors.abstract","TypeScript.Errors.notYetImplemented","TypeScript.Errors.invalidOperation","TypeScript.ArrayUtilities","TypeScript.ArrayUtilities.constructor","TypeScript.ArrayUtilities.sequenceEquals","TypeScript.ArrayUtilities.contains","TypeScript.ArrayUtilities.distinct","TypeScript.ArrayUtilities.last","TypeScript.ArrayUtilities.lastOrDefault","TypeScript.ArrayUtilities.firstOrDefault","TypeScript.ArrayUtilities.first","TypeScript.ArrayUtilities.sum","TypeScript.ArrayUtilities.select","TypeScript.ArrayUtilities.where","TypeScript.ArrayUtilities.any","TypeScript.ArrayUtilities.all","TypeScript.ArrayUtilities.binarySearch","TypeScript.ArrayUtilities.createArray","TypeScript.ArrayUtilities.grow","TypeScript.ArrayUtilities.copy","TypeScript.ArrayUtilities.indexOf","TypeScript.StringUtilities","TypeScript.StringUtilities.constructor","TypeScript.StringUtilities.isString","TypeScript.StringUtilities.endsWith","TypeScript.StringUtilities.startsWith","TypeScript.StringUtilities.repeat","TypeScript.SyntaxKind","TypeScript.SyntaxFacts","TypeScript.SyntaxFacts.getTokenKind","TypeScript.SyntaxFacts.getText","TypeScript.SyntaxFacts.isAnyKeyword","TypeScript.SyntaxFacts.isAnyPunctuation","TypeScript.SyntaxFacts.isPrefixUnaryExpressionOperatorToken","TypeScript.SyntaxFacts.isBinaryExpressionOperatorToken","TypeScript.SyntaxFacts.isAssignmentOperatorToken","TypeScript.SyntaxFacts.isType","firstKind","getStringWithoutSuffix","getNameWithoutSuffix","getType","camelCase","getSafeName","generateConstructorFunction","generateSyntaxInterfaces","generateSyntaxInterface","generateNodes","isInterface","generateWalker","firstEnumName","groupBy","generateKeywordCondition","min","max","generateUtilities","generateScannerUtilities","syntaxKindName","generateVisitor"],"mappings":"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"} >>>>>>> 2e3c262... Allow modifiers on an Export Assignment node. +======= +{"version":3,"file":"SyntaxGenerator.js","sourceRoot":"","sources":["file:///C:/VSPro_1/src/typescript/public_cyrusn/src/compiler/sys.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/core/errors.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/core/arrayUtilities.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/core/stringUtilities.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/syntax/syntaxKind.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/syntax/syntaxFacts.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/syntax/SyntaxGenerator.ts"],"names":["getWScriptSystem","getWScriptSystem.readFile","getWScriptSystem.writeFile","getNodeSystem","getNodeSystem.readFile","getNodeSystem.writeFile","getNodeSystem.fileChanged","TypeScript","TypeScript.Errors","TypeScript.Errors.constructor","TypeScript.Errors.argument","TypeScript.Errors.argumentOutOfRange","TypeScript.Errors.argumentNull","TypeScript.Errors.abstract","TypeScript.Errors.notYetImplemented","TypeScript.Errors.invalidOperation","TypeScript.ArrayUtilities","TypeScript.ArrayUtilities.constructor","TypeScript.ArrayUtilities.sequenceEquals","TypeScript.ArrayUtilities.contains","TypeScript.ArrayUtilities.distinct","TypeScript.ArrayUtilities.last","TypeScript.ArrayUtilities.lastOrDefault","TypeScript.ArrayUtilities.firstOrDefault","TypeScript.ArrayUtilities.first","TypeScript.ArrayUtilities.sum","TypeScript.ArrayUtilities.select","TypeScript.ArrayUtilities.where","TypeScript.ArrayUtilities.any","TypeScript.ArrayUtilities.all","TypeScript.ArrayUtilities.binarySearch","TypeScript.ArrayUtilities.createArray","TypeScript.ArrayUtilities.grow","TypeScript.ArrayUtilities.copy","TypeScript.ArrayUtilities.indexOf","TypeScript.StringUtilities","TypeScript.StringUtilities.constructor","TypeScript.StringUtilities.isString","TypeScript.StringUtilities.endsWith","TypeScript.StringUtilities.startsWith","TypeScript.StringUtilities.repeat","TypeScript.SyntaxKind","TypeScript.SyntaxFacts","TypeScript.SyntaxFacts.getTokenKind","TypeScript.SyntaxFacts.getText","TypeScript.SyntaxFacts.isAnyKeyword","TypeScript.SyntaxFacts.isAnyPunctuation","TypeScript.SyntaxFacts.isPrefixUnaryExpressionOperatorToken","TypeScript.SyntaxFacts.isBinaryExpressionOperatorToken","TypeScript.SyntaxFacts.isAssignmentOperatorToken","TypeScript.SyntaxFacts.isType","getSyntaxKindEnum","firstKind","getStringWithoutSuffix","getNameWithoutSuffix","getType","camelCase","getSafeName","generateConstructorFunction","generateSyntaxInterfaces","generateSyntaxInterface","generateNodes","isInterface","generateWalker","firstEnumName","groupBy","generateKeywordCondition","min","max","generateUtilities","generateScannerUtilities","syntaxKindName","generateVisitor"],"mappings":"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"} +>>>>>>> f370dc1... Use a const enum for the syntax kind. diff --git a/src/services/syntax/syntaxGenerator.ts b/src/services/syntax/syntaxGenerator.ts index c3fccb79ba9..e1de51c8f9a 100644 --- a/src/services/syntax/syntaxGenerator.ts +++ b/src/services/syntax/syntaxGenerator.ts @@ -4,7 +4,7 @@ /// /// // /// - + var forPrettyPrinter = false; interface ITypeDefinition { @@ -1033,9 +1033,14 @@ var definitions:ITypeDefinition[] = [ { name: 'semicolonToken', isToken: true, isOptional: true, excludeFromAST: true }] }]; +function getSyntaxKindEnum() { + var name = "SyntaxKind"; + return (TypeScript)[name]; +} + function firstKind(definition: ITypeDefinition): TypeScript.SyntaxKind { var kindName = getNameWithoutSuffix(definition); - return (TypeScript.SyntaxKind)[kindName]; + return getSyntaxKindEnum()[kindName]; } definitions.sort((d1, d2) => firstKind(d1) - firstKind(d2)); @@ -1328,7 +1333,7 @@ function generateKeywordCondition(keywords: { text: string; kind: TypeScript.Syn var keyword = keywords[0]; if (currentCharacter === length) { - return " return SyntaxKind." + firstEnumName(TypeScript.SyntaxKind, keyword.kind) + ";\r\n"; + return " return SyntaxKind." + firstEnumName(getSyntaxKindEnum(), keyword.kind) + ";\r\n"; } var keywordText = keywords[0].text; @@ -1343,7 +1348,7 @@ function generateKeywordCondition(keywords: { text: string; kind: TypeScript.Syn result += "str.charCodeAt(" + index + ") === CharacterCodes." + keywordText.substr(i, 1); } - result += ") ? SyntaxKind." + firstEnumName(TypeScript.SyntaxKind, keyword.kind) + " : SyntaxKind.IdentifierName;\r\n"; + result += ") ? SyntaxKind." + firstEnumName(getSyntaxKindEnum(), keyword.kind) + " : SyntaxKind.IdentifierName;\r\n"; } else { result += " // " + TypeScript.ArrayUtilities.select(keywords, k => k.text).join(", ") + "\r\n" @@ -1466,8 +1471,8 @@ function generateScannerUtilities(): string { } function syntaxKindName(kind: TypeScript.SyntaxKind): string { - for (var name in TypeScript.SyntaxKind) { - if (TypeScript.SyntaxKind[name] === kind) { + for (var name in getSyntaxKindEnum()) { + if (getSyntaxKindEnum()[name] === kind) { return name; } } diff --git a/src/services/syntax/syntaxKind.ts b/src/services/syntax/syntaxKind.ts index 5658fd4403c..94ee05cf671 100644 --- a/src/services/syntax/syntaxKind.ts +++ b/src/services/syntax/syntaxKind.ts @@ -1,7 +1,7 @@ // If you change anything in this enum, make sure you run SyntaxGenerator again! module TypeScript { - export enum SyntaxKind { + export const enum SyntaxKind { // Variable width tokens, trivia and lists. None, List, diff --git a/tests/Fidelity/Program.ts b/tests/Fidelity/Program.ts new file mode 100644 index 00000000000..abdb010413f --- /dev/null +++ b/tests/Fidelity/Program.ts @@ -0,0 +1,936 @@ +/// +/// +/// + +/// +/// +/// +/// +/// +/// +// /// +/// +/// +/// + +var specificFile: string = + // "S7.9_A4.js"; + undefined; + +var generate = false; + +function isDTSFile(s: string) { + return ts.fileExtensionIs(s, ".d.ts"); +} + +class PositionValidatingWalker extends TypeScript.SyntaxWalker { + private position = 0; + + public visitToken(token: TypeScript.ISyntaxToken): void { + TypeScript.Debug.assert(this.position === token.fullStart()); + this.position += token.fullWidth(); + } +} + +function tokenToJSON(token: TypeScript.ISyntaxToken, text: TypeScript.ISimpleText, mergeTrivia: boolean): any { + if (!token) { + return undefined; + } + + var isSkippedToken = token.parent && token.parent.kind === TypeScript.SyntaxKind.SkippedTokenTrivia; + var isMissingToken = token.fullWidth() === 0 && token.kind !== TypeScript.SyntaxKind.EndOfFileToken; + + var result: any = {}; + + for (var name in getSyntaxKindEnum()) { + if (getSyntaxKindEnum()[name] === token.kind) { + result.kind = name; + break; + } + } + + var fullStart = TypeScript.fullStart(token); + var fullEnd = TypeScript.fullEnd(token); + + result.fullStart = fullStart; + + result.start = TypeScript.start(token, text); + + result.fullWidth = fullEnd - fullStart; + result.width = TypeScript.width(token, text); + + result.text = token.text(); + + var value = TypeScript.tokenValue(token); + if (value !== undefined) { + result.value = value; + result.valueText = TypeScript.tokenValueText(token); + } + + if (token.isKeywordConvertedToIdentifier()) { + result.isKeywordConvertedToIdentifier = true; + } + + if (token.isIncrementallyUnusable()) { + result.isIncrementallyUnusable = true; + } + + if (isSkippedToken || isMissingToken) { + TypeScript.Debug.assert(!token.hasLeadingTrivia()); + } + else { + var leadingTriviaList = token.hasLeadingTrivia() ? token.leadingTrivia(text) : undefined; + + if (leadingTriviaList) { + var leadingTrivia = leadingTriviaList.toArray(); + result.hasLeadingTrivia = true; + + if (TypeScript.ArrayUtilities.any(leadingTrivia, t => t.isComment())) { + result.hasLeadingComment = true; + } + if (TypeScript.ArrayUtilities.any(leadingTrivia, t => t.isNewLine())) { + result.hasLeadingNewLine = true; + } + if (TypeScript.ArrayUtilities.any(leadingTrivia, t => t.isSkippedToken())) { + result.hasLeadingSkippedToken = true; + } + result.leadingTrivia = triviaListToJSON(leadingTrivia, text); + } + } + + return result; +} + +function triviaListToJSON(trivia: TypeScript.ISyntaxTrivia[], text: TypeScript.ISimpleText): any { + var result: any[] = []; + + for (var i = 0, n = trivia.length; i < n; i++) { + result.push(triviaToJSON(trivia[i], text)); + } + + return result; +} + +function triviaToJSON(trivia: TypeScript.ISyntaxTrivia, text: TypeScript.ISimpleText): any { + var result: any = {}; + + for (var name in getSyntaxKindEnum()) { + if (getSyntaxKindEnum()[name] === trivia.kind) { + result.kind = name; + break; + } + } + + if (trivia.isSkippedToken()) { + result.skippedToken = tokenToJSON(trivia.skippedToken(), text, /*megeTrivia:*/ false); + } + else { + result.fullStart = trivia.fullStart(); + result.fullEnd = trivia.fullStart() + trivia.fullWidth(); + result.text = trivia.fullText(); + } + + return result; +} + +function getSyntaxKindEnum() { + var name = "SyntaxKind"; + return (TypeScript)[name]; +} + +function nodeToJSON(node: TypeScript.ISyntaxNode, text: TypeScript.ISimpleText): any { + var result: any = {} + + for (var name in getSyntaxKindEnum()) { + if (getSyntaxKindEnum()[name] === node.kind) { + result.kind = name; + break; + } + } + + result.start = TypeScript.start(node); + result.end = TypeScript.fullEnd(node); + result.width = TypeScript.width(node); + + if (TypeScript.isIncrementallyUnusable(node)) { + result.isIncrementallyUnusable = true; + } + + if (TypeScript.parsedInStrictModeContext(node)) { + result.parsedInStrictModeContext = true; + } + + if (TypeScript.parsedInDisallowInContext(node)) { + result.parsedInDisallowInContext = true; + } + + if (TypeScript.parsedInYieldContext(node)) { + result.parsedInYieldContext = true; + } + + if (TypeScript.parsedInGeneratorParameterContext(node)) { + result.parsedInGeneratorParameterContext = true; + } + + if (TypeScript.parsedInAsyncContext(node)) { + result.parsedInAsyncContext = true; + } + + var usedNames: any = {}; + var thisAsIndexable: ts.Map = node; + for (var i = 0, n = TypeScript.childCount(node); i < n; i++) { + var value = TypeScript.childAt(node, i); + + if (value) { + for (var name in node) { + if (usedNames[name] === undefined && value === thisAsIndexable[name]) { + result[name] = elementToJSON(value, text); + usedNames[name] = true; + break; + } + } + } + } + + return result; +} + +function elementToJSON(element: TypeScript.ISyntaxElement, text: TypeScript.ISimpleText): any { + if (element !== undefined) { + if (TypeScript.isToken(element)) { + return tokenToJSON(element, text,/*megeTrivia:*/ true); + } + else if (TypeScript.isList(element)) { + if (TypeScript.childCount(element) > 0) { + var result: any[] = []; + + for (var i = 0, n = TypeScript.childCount(element); i < n; i++) { + result.push(elementToJSON(TypeScript.childAt(element, i), text)); + } + + return result; + } + } + else { + return nodeToJSON(element, text); + } + } +} + +function syntaxTreeToJSON(tree: TypeScript.SyntaxTree): any { + var result: any = {}; + + result.isDeclaration = tree.isDeclaration(); + switch (tree.languageVersion()) { + case ts.ScriptTarget.ES3: + result.languageVersion = "EcmaScript3"; + break; + case ts.ScriptTarget.ES5: + result.languageVersion = "EcmaScript5"; + break; + case ts.ScriptTarget.ES6: + result.languageVersion = "EcmaScript6"; + break; + default: + throw new Error(); + } + + if (tree.diagnostics().length > 0) { + result.diagnostics = tree.diagnostics(); + } + + result.sourceUnit = elementToJSON(tree.sourceUnit(), tree.text); + result.lineMap = tree.lineMap(); + + return result; +} + +function emptySourceUnit(): TypeScript.SourceUnitSyntax { + return TypeScript.Parser.parse("", TypeScript.SimpleText.fromString(""), ts.ScriptTarget.ES5, false).sourceUnit(); +} + +class Program { + runAllTests(verify: boolean): void { + TypeScript.Environment.standardOut.WriteLine(""); + + //var libdts = TypeScript.Environment.readFile("built\\local\\lib.d.ts", undefined); + + //TypeScript.Environment.standardOut.WriteLine("size: " + libdts.contents.length); + //var libsource = ts.createSourceFile("lib.d.ts", libdts.contents); + //ts.parseSourceFile(libsource); + + //var reps = 10; + //timer.start(); + //for (var i = 0; i < reps; i++) { + // var libsource = ts.createSourceFile("lib.d.ts", libdts.contents); + // ts.parseSourceFile(libsource); + //} + //timer.end(); + //TypeScript.Environment.standardOut.WriteLine("Anders Parse: " + (timer.time / reps)); + + //var txt = TypeScript.SimpleText.fromString(libdts.contents); + //timer.start(); + //for (var i = 0; i < reps; i++) { + // TypeScript.Parser.parse("lib.d.ts.", txt, true, new TypeScript.ParseOptions(ts.ScriptTarget.ES5, true)); + //} + //timer.end(); + //TypeScript.Environment.standardOut.WriteLine("Cyrus Parse: " + (timer.time / reps)); + + if (generate) { + TypeScript.Environment.standardOut.WriteLine("!!!!!!!!!! WARNING - GENERATING !!!!!!!!!"); + TypeScript.Environment.standardOut.WriteLine(""); + } + + if (specificFile === undefined) { + TypeScript.Environment.standardOut.WriteLine("Testing Incremental 2."); + TypeScript.IncrementalParserTests.runAllTests(); + } + + TypeScript.Environment.standardOut.Write("Testing Incremental 1:"); + this.runTests(TypeScript.Environment.currentDirectory() + "\\tests\\Fidelity\\parser\\ecmascript5", + fileName => this.runIncremental(fileName, ts.ScriptTarget.ES5)); + + if (specificFile === undefined) { + this.testIncrementalSpeed(TypeScript.Environment.currentDirectory() + "\\src\\services\\syntax\\syntaxNodes.concrete.generated.ts"); + } + + TypeScript.Environment.standardOut.Write("Testing scanner ES3:"); + this.runTests(TypeScript.Environment.currentDirectory() + "\\tests\\Fidelity\\scanner\\ecmascript3", + fileName => this.runScanner(fileName, ts.ScriptTarget.ES3, verify, /*generateBaselines:*/ generate)); + + TypeScript.Environment.standardOut.Write("Testing scanner ES5:"); + this.runTests(TypeScript.Environment.currentDirectory() + "\\tests\\Fidelity\\scanner\\ecmascript5", + fileName => this.runScanner(fileName, ts.ScriptTarget.ES5, verify, /*generateBaselines:*/ generate)); + + TypeScript.Environment.standardOut.Write("Testing findToken:"); + this.runTests(TypeScript.Environment.currentDirectory() + "\\tests\\Fidelity\\findToken\\ecmascript5", + fileName => this.runFindToken(fileName, ts.ScriptTarget.ES5, verify, /*generateBaselines:*/ generate)); + + TypeScript.Environment.standardOut.Write("Testing trivia:"); + this.runTests(TypeScript.Environment.currentDirectory() + "\\tests\\Fidelity\\trivia\\ecmascript5", + fileName => this.runTrivia(fileName, ts.ScriptTarget.ES5, verify, /*generateBaselines:*/ generate)); + + TypeScript.Environment.standardOut.Write("Testing parser ES6:"); + this.runTests(TypeScript.Environment.currentDirectory() + "\\tests\\Fidelity\\parser\\ecmascript6", + fileName => this.runParser(fileName, ts.ScriptTarget.ES6, verify, /*generateBaselines:*/ generate)); + + TypeScript.Environment.standardOut.Write("Testing parser ES5:"); + this.runTests(TypeScript.Environment.currentDirectory() + "\\tests\\Fidelity\\parser\\ecmascript5", + fileName => this.runParser(fileName, ts.ScriptTarget.ES5, verify, /*generateBaselines:*/ generate)); + + TypeScript.Environment.standardOut.Write("Testing parser ES3:"); + this.runTests(TypeScript.Environment.currentDirectory() + "\\tests\\Fidelity\\parser\\ecmascript3", + fileName => this.runParser(fileName, ts.ScriptTarget.ES3, verify, /*generateBaselines:*/ generate)); + + TypeScript.Environment.standardOut.Write("Testing emitter 2:"); + this.runTests(TypeScript.Environment.currentDirectory() + "\\tests\\Fidelity\\emitter2\\ecmascript5", + fileName => this.runEmitter(fileName, ts.ScriptTarget.ES5, verify, /*generateBaselines:*/ generate, /*justText:*/ true)); + + //TypeScript.Environment.standardOut.WriteLine("Testing Monoco."); + //this.runTests(TypeScript.Environment.currentDirectory() + "c:\\temp\\monoco", + // fileName => this.runParser(fileName, ts.ScriptTarget.ES5, false, /*generateBaselines:*/ generate, /*allowErrors:*/ false)); + + TypeScript.Environment.standardOut.Write("Testing emitter 1:"); + this.runTests(TypeScript.Environment.currentDirectory() + "\\tests\\Fidelity\\emitter\\ecmascript5", + fileName => this.runEmitter(fileName, ts.ScriptTarget.ES5, verify, /*generateBaselines:*/ generate, /*justText:*/ false)); + + TypeScript.Environment.standardOut.Write("Testing pretty printer:"); + this.runTests(TypeScript.Environment.currentDirectory() + "\\tests\\Fidelity\\prettyPrinter\\ecmascript5", + fileName => this.runPrettyPrinter(fileName, ts.ScriptTarget.ES5, verify, /*generateBaselines:*/ generate)); + + TypeScript.Environment.standardOut.Write("Testing against 262:"); + this.runTests(TypeScript.Environment.currentDirectory() + "\\tests\\Fidelity\\test262", + fileName => this.runParser(fileName, ts.ScriptTarget.ES5, verify, /*generateBaselines:*/ generate)); + } + + private static reusedElements(oldNode: TypeScript.SourceUnitSyntax, newNode: TypeScript.SourceUnitSyntax, key: any): { originalElements: number; reusedElements: number; } { + var allOldElements = TypeScript.SyntaxElementsCollector.collectElements(oldNode); + var allNewElements = TypeScript.SyntaxElementsCollector.collectElements(newNode); + + for (var i = 0; i < allOldElements.length; i++) { + var oldElement: ts.Map = allOldElements[i]; + oldElement[key] = key; + } + + var reused = 0; + for (var j = 0; j < allNewElements.length; j++) { + var newElement: ts.Map = allNewElements[j]; + if (newElement[key] === key) { + reused++; + } + } + + return { originalElements: allOldElements.length, reusedElements: reused }; + } + + private testIncrementalSpeed(fileName: string): void { + var repeat = 500; + TypeScript.Environment.standardOut.WriteLine("Incremental Perf - Changed Text."); + this.testIncrementalSpeedChange(fileName, repeat); + + TypeScript.Environment.standardOut.WriteLine(""); + TypeScript.Environment.standardOut.WriteLine("Incremental Perf - No Changed Text."); + this.testIncrementalSpeedNoChange(fileName, repeat); + } + + private testIncrementalSpeedNoChange(fileName: string, repeat: number): void { + if (specificFile !== undefined) { + return; + } + + var contents = TypeScript.Environment.readFile(fileName, /*codepage*/ undefined).contents; + // TypeScript.Environment.standardOut.WriteLine(fileName); + + var text = TypeScript.SimpleText.fromString(contents); + var tree = TypeScript.Parser.parse(fileName, text, ts.ScriptTarget.ES5, isDTSFile(fileName)); + var originalTree = tree; + + var totalIncrementalTime = 0; + + for (var i = 0; i < repeat; i++) { + var changeLength = i * 2; + + var start = new Date().getTime(); + var tree2 = TypeScript.IncrementalParser.parse(tree, new TypeScript.TextChangeRange( new TypeScript.TextSpan(((text.length() / 2) >> 0) - i, changeLength), changeLength), text); + totalIncrementalTime += (new Date().getTime() - start); + + // we can't check parents here because we are explicitly destroying the original tree + // to make the new tree. Thus, the parents in the first tree won't actually match. + TypeScript.Debug.assert(TypeScript.treeStructuralEquals(tree, tree2, /*checkParents:*/ false)); + + tree = tree2; + } + + var rateBytesPerMillisecond = (contents.length * repeat) / totalIncrementalTime; + var rateBytesPerSecond = rateBytesPerMillisecond * 1000; + var rateMBPerSecond = rateBytesPerSecond / (1024 * 1024); + + // TypeScript.Environment.standardOut.WriteLine("Incremental time: " + totalIncrementalTime); + TypeScript.Environment.standardOut.WriteLine("Incremental rate: " + rateMBPerSecond + " MB/s"); + + var allOldElements = TypeScript.SyntaxElementsCollector.collectElements(originalTree.sourceUnit()); + var allNewElements = TypeScript.SyntaxElementsCollector.collectElements(tree.sourceUnit()); + + var reuse = TypeScript.ArrayUtilities.where(allNewElements, + v => TypeScript.ArrayUtilities.contains(allOldElements, v)).length; + + TypeScript.Environment.standardOut.WriteLine("Reuse: " + reuse / allNewElements.length); + } + + private testIncrementalSpeedChange(fileName: string, repeat: number): void { + if (specificFile !== undefined) { + return; + } + + var contents = TypeScript.Environment.readFile(fileName, /*codepage*/ undefined).contents; + // TypeScript.Environment.standardOut.WriteLine(fileName); + + var text = TypeScript.SimpleText.fromString(contents); + var tree = TypeScript.Parser.parse(fileName, text, ts.ScriptTarget.ES5, isDTSFile(fileName)); + var originalTree = tree; + + var allElements = TypeScript.SyntaxElementsCollector.collectElements(tree.sourceUnit()); + var nonSharedElements = TypeScript.ArrayUtilities.where(allElements, e => !(TypeScript.isList(e) && (e).length === 0)); + TypeScript.Environment.standardOut.WriteLine("All elements : " + allElements.length); + TypeScript.Environment.standardOut.WriteLine("Non empty lists: " + nonSharedElements.length); + + var totalIncrementalTime = 0; + var totalIncrementalASTTime = 0; + + for (var i = 0; i < repeat; i++) { + var changeLength = i * 2; + var changeSpan = new TypeScript.TextSpan(((text.length() / 2) >> 0) - i, changeLength); + + contents = text.substr(0, text.length()); + var contentsToReplace = contents.substr(changeSpan.start(), changeSpan.length()); + + var first = true; + var updatedText = contentsToReplace.replace(/[^a-zA-Z0-9][a-z]+[^a-zA-Z0-9]/, (sub) => { + if (first && TypeScript.SyntaxFacts.getTokenKind(sub.substr(1, sub.length - 2)) === TypeScript.SyntaxKind.None) { + first = false; + return sub.substr(0, sub.length - 1) + "a" + sub.substr(sub.length - 1); + } + + return sub; + }); + + text = TypeScript.SimpleText.fromString( + contents.substr(0, changeSpan.start()) + + updatedText + + contents.substr(changeSpan.end())); + var changeRange = new TypeScript.TextChangeRange(changeSpan, updatedText.length); + + var start = new Date().getTime(); + var tree2 = TypeScript.IncrementalParser.parse(tree, changeRange, text); + totalIncrementalTime += (new Date().getTime() - start); + + tree = tree2; + } + + var rateBytesPerMillisecond = (contents.length * repeat) / totalIncrementalTime; + var rateBytesPerSecond = rateBytesPerMillisecond * 1000; + var rateMBPerSecond = rateBytesPerSecond / (1024 * 1024); + + TypeScript.Environment.standardOut.WriteLine("Incremental rate: " + rateMBPerSecond + " MB/s"); + + rateBytesPerMillisecond = (contents.length * repeat) / totalIncrementalASTTime; + rateBytesPerSecond = rateBytesPerMillisecond * 1000; + rateMBPerSecond = rateBytesPerSecond / (1024 * 1024); + + var allOldElements = TypeScript.SyntaxElementsCollector.collectElements(originalTree.sourceUnit()); + var allNewElements = TypeScript.SyntaxElementsCollector.collectElements(tree.sourceUnit()); + + var reuse = TypeScript.ArrayUtilities.where(allNewElements, + v => TypeScript.ArrayUtilities.contains(allOldElements, v)).length; + + TypeScript.Environment.standardOut.WriteLine("Reuse: " + reuse / allNewElements.length); + } + + private handleException(fileName: string, e: Error): void { + TypeScript.Environment.standardOut.WriteLine(""); + if ((e.message).indexOf(fileName) < 0) { + TypeScript.Environment.standardOut.WriteLine("Exception: " + fileName + ": " + e.message); + } + else { + TypeScript.Environment.standardOut.WriteLine(e.message); + } + } + + private runTests( + path: string, + action: (fileName: string) => void) { + + var testFiles = TypeScript.Environment.listFiles(path, undefined, { recursive: true }); + var indexNum = 0; + + testFiles.forEach(fileName => { + if (specificFile !== undefined && fileName.indexOf(specificFile) < 0) { + return; + } + + if (indexNum % 100 === 0) { + TypeScript.Environment.standardOut.Write("."); + } + + // TypeScript.Environment.standardOut.WriteLine(fileName); + try { + action(fileName); + } + catch (e) { + this.handleException(fileName, e); + } + + indexNum++; + }); + + TypeScript.Environment.standardOut.WriteLine(""); + } + + private checkResult(fileName: string, result: any, convert: (a: any) => any, verify: boolean, generateBaseline: boolean, justText: boolean): void { + var actualResult: string; + + var expectedFile = fileName + ".expected"; + var actualFile = fileName + ".actual"; + + if (generateBaseline) { + actualResult = justText ? result : JSON.stringify(convert(result), undefined, 4); + expectedFile = fileName + ".expected"; + + // TypeScript.Environment.standardOut.WriteLine("Generating baseline for: " + fileName); + TypeScript.Environment.writeFile(expectedFile, actualResult, /*writeByteOrderMark:*/ false); + + if (TypeScript.Environment.fileExists(actualFile)) { + TypeScript.Environment.deleteFile(actualFile); + } + } + else if (verify) { + actualResult = justText ? result : JSON.stringify(convert(result), undefined, 4); + + var expectedResult: string = undefined; + if (!TypeScript.Environment.fileExists(expectedFile)) { + TypeScript.Environment.writeFile(expectedFile, "", false); + } + else { + expectedResult = TypeScript.Environment.readFile(expectedFile, /*codepage*/ undefined).contents; + } + + if (expectedResult !== actualResult) { + TypeScript.Environment.standardOut.WriteLine(" ! Fail: " + actualFile); + TypeScript.Environment.writeFile(actualFile, actualResult, /*writeByteOrderMark:*/ false); + } + else { + if (TypeScript.Environment.fileExists(actualFile)) { + TypeScript.Environment.deleteFile(actualFile); + } + } + } + } + + runEmitter(fileName: string, + languageVersion: ts.ScriptTarget, + verify: boolean, + generateBaseline: boolean, + justText: boolean): void { + if (true) { + return; + } + + if (!TypeScript.StringUtilities.endsWith(fileName, ".ts") && !TypeScript.StringUtilities.endsWith(fileName, ".js")) { + return; + } + + if (fileName.indexOf("RealSource") >= 0) { + return; + } + + var contents = TypeScript.Environment.readFile(fileName, /*codepage*/ undefined).contents; + // TypeScript.Environment.standardOut.WriteLine(fileName); + + totalSize += contents.length; + + var text = TypeScript.SimpleText.fromString(contents); + + var tree = TypeScript.Parser.parse(fileName, text, languageVersion, isDTSFile(fileName)); + //var emitted = TypeScript.Emitter1.emit(tree.sourceUnit()); + + //var result = justText + // ? emitted.fullText() + // : { fullText: emitted.fullText().split("\r\n"), sourceUnit: emitted }; + //this.checkResult(fileName, result, verify, generateBaseline, justText); + } + + runPrettyPrinter(fileName: string, + languageVersion: ts.ScriptTarget, + verify: boolean, + generateBaseline: boolean): void { + if (!TypeScript.StringUtilities.endsWith(fileName, ".ts") && !TypeScript.StringUtilities.endsWith(fileName, ".js")) { + return; + } + + if (fileName.indexOf("RealSource") >= 0) { + return; + } + + var contents = TypeScript.Environment.readFile(fileName, /*codepage*/ undefined).contents; + // TypeScript.Environment.standardOut.WriteLine(fileName); + + totalSize += contents.length; + + var text = TypeScript.SimpleText.fromString(contents); + + var tree = TypeScript.Parser.parse(fileName, text, languageVersion, isDTSFile(fileName)); + var result = TypeScript.PrettyPrinter.prettyPrint(tree.sourceUnit()); + + this.checkResult(fileName, result, undefined, verify, generateBaseline, true); + } + + runParser(fileName: string, + languageVersion: ts.ScriptTarget, + verify: boolean, + generateBaseline: boolean, + allowErrors = true): void { + if (!TypeScript.StringUtilities.endsWith(fileName, ".ts") && !TypeScript.StringUtilities.endsWith(fileName, ".js")) { + return; + } + + if (fileName.indexOf("RealSource") >= 0) { + return; + } + + var contents = TypeScript.Environment.readFile(fileName, /*codepage*/ undefined).contents; + // TypeScript.Environment.standardOut.WriteLine(fileName); + + totalSize += contents.length; + + var text = TypeScript.SimpleText.fromString(contents); + + var andersStart = new Date().getTime(); + var andersText = ts.createSourceFile(fileName, contents, ts.ScriptTarget.ES6, "0"); + andersTime += (new Date().getTime() - andersStart); + + var start = new Date().getTime(); + var tree = TypeScript.Parser.parse(fileName, text, languageVersion, isDTSFile(fileName)); + + var delta = new Date().getTime() - start; + cyrusTime += delta; + + if (!allowErrors) { + var diagnostics = tree.diagnostics(); + if (diagnostics.length > 0) { + TypeScript.Environment.standardOut.WriteLine(fileName); + TypeScript.Environment.standardOut.WriteLine("\t" + diagnostics[0].message()); + } + } + + if (verify) { + TypeScript.Debug.assert(TypeScript.fullWidth(tree.sourceUnit()) === contents.length); + TypeScript.visitNodeOrToken(new PositionValidatingWalker(), tree.sourceUnit()); + + this.checkResult(fileName, tree, syntaxTreeToJSON, verify, generateBaseline, /*justText:*/ false); + } + totalTime += delta; + } + + runIncremental(fileName: string, languageVersion: ts.ScriptTarget): void { + if (!TypeScript.StringUtilities.endsWith(fileName, ".ts") && !TypeScript.StringUtilities.endsWith(fileName, ".js")) { + return; + } + + if (fileName.indexOf("RealSource") >= 0) { + return; + } + + var contents = TypeScript.Environment.readFile(fileName, /*codepage*/ undefined).contents; + // TypeScript.Environment.standardOut.WriteLine(fileName); + + var text = TypeScript.SimpleText.fromString(contents); + + var tree1 = TypeScript.Parser.parse(fileName, text, languageVersion, isDTSFile(fileName)); + var tree2 = TypeScript.IncrementalParser.parse( + new TypeScript.SyntaxTree(emptySourceUnit(), isDTSFile(fileName), [], fileName, text, tree1.languageVersion()), + new TypeScript.TextChangeRange(new TypeScript.TextSpan(0, 0), text.length()), + text); + + TypeScript.Debug.assert(TypeScript.treeStructuralEquals(tree1, tree2, /*checkParents:*/ true)); + } + + runFindToken(fileName: string, languageVersion: ts.ScriptTarget, verify: boolean, generateBaseline: boolean): void { + if (!TypeScript.StringUtilities.endsWith(fileName, ".ts") && !TypeScript.StringUtilities.endsWith(fileName, ".js")) { + return; + } + + if (fileName.indexOf("RealSource") >= 0) { + return; + } + + var contents = TypeScript.Environment.readFile(fileName, /*codepage*/ undefined).contents; + // TypeScript.Environment.standardOut.WriteLine(fileName); + + var text = TypeScript.SimpleText.fromString(contents); + var tree = TypeScript.Parser.parse(fileName, text, languageVersion, isDTSFile(fileName)); + var sourceUnit = tree.sourceUnit(); + + TypeScript.Debug.assert(TypeScript.fullWidth(tree.sourceUnit()) === contents.length); + + var tokens: ts.Map= {}; + var tokensOnLeft: ts.Map = {}; + var leftToRight: TypeScript.ISyntaxToken[] = []; + var rightToLeft: TypeScript.ISyntaxToken[] = []; + + for (var i = 0; i <= contents.length; i++) { + var token = TypeScript.findToken(sourceUnit, i); + + var left = TypeScript.Syntax.findTokenOnLeft(sourceUnit, i); + var tokenOnLeft = left || null; + + TypeScript.Debug.assert(TypeScript.isToken(token)); + if (i === contents.length) { + TypeScript.Debug.assert(token.kind === TypeScript.SyntaxKind.EndOfFileToken); + } + else { + TypeScript.Debug.assert(TypeScript.width(token) > 0 || token.kind === TypeScript.SyntaxKind.EndOfFileToken); + TypeScript.Debug.assert(token.fullWidth() > 0); + } + + tokens[i] = tokenToJSON(token, text, /*megeTrivia:*/ false); + tokensOnLeft[i] = tokenToJSON(tokenOnLeft, text, /*megeTrivia:*/ false) || null; + } + + var positionedToken = TypeScript.findToken(sourceUnit, 0); + while (positionedToken) { + leftToRight.push(tokenToJSON(positionedToken, text, /*megeTrivia:*/ false)); + positionedToken = TypeScript.nextToken(positionedToken); + } + + positionedToken = TypeScript.findToken(sourceUnit, contents.length); + while (positionedToken) { + rightToLeft.push(tokenToJSON(positionedToken, text, /*megeTrivia:*/ false)); + positionedToken = TypeScript.previousToken(positionedToken); + } + + var result = { + tokens: tokens, + tokensOnLeft: tokensOnLeft, + leftToRight: leftToRight, + rightToLeft: rightToLeft, + }; + + this.checkResult(fileName, result, a => a, verify, generateBaseline, /*justText:*/ false); + } + + runTrivia(fileName: string, languageVersion: ts.ScriptTarget, verify: boolean, generateBaseline: boolean): void { + if (!TypeScript.StringUtilities.endsWith(fileName, ".ts")) { + return; + } + + var contents = TypeScript.Environment.readFile(fileName, /*codepage*/ undefined).contents; + var text = TypeScript.SimpleText.fromString(contents); + var scanner = TypeScript.Scanner.createScanner(languageVersion, text, () => { }); + + var tokens: TypeScript.ISyntaxToken[] = []; + var textArray: string[] = []; + var diagnostics: TypeScript.Diagnostic[] = []; + + while (true) { + var token = scanner.scan(/*allowRegularExpression:*/ false); + tokens.push(tokenToJSON(token, text, /*megeTrivia:*/ false)); + + if (token.kind === TypeScript.SyntaxKind.EndOfFileToken) { + break; + } + } + + this.checkResult(fileName, tokens, a => a, verify, generateBaseline, false); + } + + runScanner(fileName: string, languageVersion: ts.ScriptTarget, verify: boolean, generateBaseline: boolean): void { + if (!TypeScript.StringUtilities.endsWith(fileName, ".ts")) { + return; + } + + var contents = TypeScript.Environment.readFile(fileName, /*codepage*/ undefined).contents; + + var diagnostics: TypeScript.Diagnostic[] = []; + var reportDiagnostic = (position: number, fullWidth: number, diagnosticKey: string, args: any[]) => { + diagnostics.push(new TypeScript.Diagnostic(fileName, text.lineMap(), position, fullWidth, diagnosticKey, args)); + }; + + var text = TypeScript.SimpleText.fromString(contents); + var scanner = TypeScript.Scanner.createScanner(languageVersion, text, reportDiagnostic); + + var tokens: TypeScript.ISyntaxToken[] = []; + var jsonTokens: any[] = []; + var textArray: string[] = []; + var position = 0; + + while (true) { + var token = scanner.scan(/*allowRegularExpression:*/ false); + jsonTokens.push(tokenToJSON(token, text, /*megeTrivia:*/ false)); + tokens.push(token); + + TypeScript.Debug.assert(position === token.fullStart()); + position += token.fullWidth(); + + if (token.kind === TypeScript.SyntaxKind.EndOfFileToken) { + break; + } + } + + if (verify) { + var tokenText = TypeScript.ArrayUtilities.select(tokens, t => t.fullText(text)).join(""); + + if (tokenText !== contents) { + throw new Error("Token invariant broken!"); + } + } + + var result = diagnostics.length === 0 ? jsonTokens : { diagnostics: diagnostics, tokens: jsonTokens }; + this.checkResult(fileName, result, a => a, verify, generateBaseline, false); + } + + parseArguments(): void { + TypeScript.Environment.standardOut.WriteLine("Testing input files."); + for (var index in TypeScript.Environment.arguments) { + var fileName: string = TypeScript.Environment.arguments[index]; + if (specificFile !== undefined && fileName.indexOf(specificFile) < 0) { + continue; + } + + this.runParser(fileName, ts.ScriptTarget.ES5, /*verify:*/ false, /*generate:*/ false, /*allowErrors:*/ false); + } + } + + run262(): void { + var path = "C:\\temp\\test262\\suite"; + var testFiles = TypeScript.Environment.listFiles(path, undefined, { recursive: true }); + + var testCount = 0; + var failCount = 0; + var skippedTests:string[] = []; + + for (var index in testFiles) { + var fileName: string = testFiles[index]; + + if (specificFile !== undefined && fileName.indexOf(specificFile) < 0) { + continue; + } + + // All 262 files are utf8. But they dont' have a BOM. Force them to be read in + // as UTF8. + var contents = TypeScript.Environment.readFile(fileName, /*codepage*/ undefined).contents; + + var isNegative = contents.indexOf("@negative") >= 0 + + testCount++; + + try { + var stringText = TypeScript.SimpleText.fromString(contents); + var tree = TypeScript.Parser.parse(fileName, stringText, ts.ScriptTarget.ES5, isDTSFile(fileName)); + + if (isNegative) { + var nameOnly = fileName.substr(fileName.lastIndexOf("\\") + 1); + var canParseSuccessfully = negative262ExpectedResults[nameOnly]; + + if (canParseSuccessfully) { + // We expected to parse this successfully. Report an error if we didn't. + if (tree.diagnostics() && tree.diagnostics().length > 0) { + TypeScript.Environment.standardOut.WriteLine("Negative test. Unexpected failure: " + fileName); + failCount++; + } + } + else { + // We expected to fail on this. Report an error if we don't. + if (!tree.diagnostics() || tree.diagnostics().length === 0) { + TypeScript.Environment.standardOut.WriteLine("Negative test. Unexpected success: " + fileName); + failCount++; + } + } + } + else { + // Not a negative test. We can't have any errors or skipped tokens. + if (tree.diagnostics() && tree.diagnostics().length > 0) { + TypeScript.Environment.standardOut.WriteLine("Unexpected failure: " + fileName); + failCount++; + } + } + } + catch (e) { + failCount++; + this.handleException(fileName, e); + } + } + + TypeScript.Environment.standardOut.WriteLine(""); + TypeScript.Environment.standardOut.WriteLine("Test 262 results:"); + TypeScript.Environment.standardOut.WriteLine("Test Count: " + testCount); + TypeScript.Environment.standardOut.WriteLine("Skip Count: " + skippedTests.length); + TypeScript.Environment.standardOut.WriteLine("Fail Count: " + failCount); + + for (var i = 0; i < skippedTests.length; i++) { + TypeScript.Environment.standardOut.WriteLine(skippedTests[i]); + } + } +} + +var andersTime = 0; +var cyrusTime = 0; + +var totalTime = 0; +var totalSize = 0; +var program = new Program(); + +// New parser. +totalTime = 0; +totalSize = 0; +program.runAllTests(true); + +var count = 1; + +//for (var i = 0; i < count; i++) { +// program.parseArguments(); +//} + +TypeScript.Environment.standardOut.WriteLine("Total time: " + (totalTime / count)); +TypeScript.Environment.standardOut.WriteLine("Total size: " + (totalSize / count)); +TypeScript.Environment.standardOut.WriteLine("Anders time: " + andersTime); +TypeScript.Environment.standardOut.WriteLine("Cyrus time : " + cyrusTime); diff --git a/tests/Fidelity/program.js b/tests/Fidelity/program.js new file mode 100644 index 00000000000..51efd587cde --- /dev/null +++ b/tests/Fidelity/program.js @@ -0,0 +1,32340 @@ +if (!String.prototype.trim) { + String.prototype.trim = function () { + return this.replace(/^\s+|\s+$/g, ''); + }; +} +if (!Array.prototype.indexOf) { + Array.prototype.indexOf = function (searchElement, fromIndex) { + "use strict"; + if (this == null) { + throw new TypeError(); + } + var t = Object(this); + var len = t.length >>> 0; + if (len === 0) { + return -1; + } + var n = 0; + if (arguments.length > 0) { + n = Number(arguments[1]); + if (n != n) { + n = 0; + } + else if (n != 0 && n != Infinity && n != -Infinity) { + n = (n > 0 || -1) * Math.floor(Math.abs(n)); + } + } + if (n >= len) { + return -1; + } + var k = n >= 0 ? n : Math.max(len - Math.abs(n), 0); + for (; k < len; k++) { + if (k in t && t[k] === searchElement) { + return k; + } + } + return -1; + }; +} +if (!Array.prototype.filter) { + Array.prototype.filter = function (fun, thisp) { + "use strict"; + if (this == null) + throw new TypeError(); + var t = Object(this); + var len = t.length >>> 0; + if (typeof fun != "function") + throw new TypeError(); + var res = []; + for (var i = 0; i < len; i++) { + if (i in t) { + var val = t[i]; + if (fun.call(thisp, val, i, t)) + res.push(val); + } + } + return res; + }; +} +if (!Array.prototype.map) { + Array.prototype.map = function (callback, thisArg) { + var T = undefined, A, k; + if (this == null) { + throw new TypeError(" this is null or not defined"); + } + var O = Object(this); + var len = O.length >>> 0; + if ({}.toString.call(callback) != "[object Function]") { + throw new TypeError(callback + " is not a function"); + } + if (thisArg) { + T = thisArg; + } + A = new Array(len); + k = 0; + while (k < len) { + var kValue, mappedValue; + if (k in O) { + kValue = O[k]; + mappedValue = callback.call(T, kValue, k, O); + A[k] = mappedValue; + } + k++; + } + return A; + }; +} +if (!Array.prototype.reduce) { + Array.prototype.reduce = function reduce(accumulator) { + if (this === null || this === undefined) + throw new TypeError("Object is null or undefined"); + var i = 0, l = this.length >> 0, curr; + if (typeof accumulator !== "function") + throw new TypeError("First argument is not callable"); + if (arguments.length < 2) { + if (l === 0) + throw new TypeError("Array length is 0 and no second argument"); + curr = this[0]; + i = 1; + } + else + curr = arguments[1]; + while (i < l) { + if (i in this) + curr = accumulator.call(undefined, curr, this[i], i, this); + ++i; + } + return curr; + }; +} +if (!Array.prototype.forEach) { + Array.prototype.forEach = function (callback, thisArg) { + var T, k; + if (this == null) { + throw new TypeError(" this is null or not defined"); + } + var O = Object(this); + var len = O.length >>> 0; + if ({}.toString.call(callback) != "[object Function]") { + throw new TypeError(callback + " is not a function"); + } + if (thisArg) { + T = thisArg; + } + else { + T = undefined; + } + k = 0; + while (k < len) { + var kValue; + if (k in O) { + kValue = O[k]; + callback.call(T, kValue, k, O); + } + k++; + } + }; +} +if (!Date.now) { + Date.now = function () { + return (new Date()).getTime(); + }; +} +if (!Array.prototype.some) { + Array.prototype.some = function (fun) { + "use strict"; + if (this == null) + throw new TypeError(); + var t = Object(this); + var len = t.length >>> 0; + if (typeof fun != "function") + throw new TypeError(); + var thisp = arguments[1]; + for (var i = 0; i < len; i++) { + var idx = i.toString(); + if (idx in t && fun.call(thisp, t[i], i, t)) + return true; + } + return false; + }; +} +if (typeof JSON !== 'object') { + JSON = {}; +} +(function () { + 'use strict'; + function f(n) { + return n < 10 ? '0' + n : n; + } + if (typeof Date.prototype.toJSON !== 'function') { + Date.prototype.toJSON = function () { + return isFinite(this.valueOf()) ? this.getUTCFullYear() + '-' + f(this.getUTCMonth() + 1) + '-' + f(this.getUTCDate()) + 'T' + f(this.getUTCHours()) + ':' + f(this.getUTCMinutes()) + ':' + f(this.getUTCSeconds()) + 'Z' : null; + }; + String.prototype.toJSON = Number.prototype.toJSON = Boolean.prototype.toJSON = function () { + return this.valueOf(); + }; + } + var cx = /[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g, escapable = /[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g, gap, indent, meta = { + '\b': '\\b', + '\t': '\\t', + '\n': '\\n', + '\f': '\\f', + '\r': '\\r', + '"': '\\"', + '\\': '\\\\' + }, rep; + function quote(string) { + escapable.lastIndex = 0; + return escapable.test(string) ? '"' + string.replace(escapable, function (a) { + var c = meta[a]; + return typeof c === 'string' ? c : '\\u' + ('0000' + a.charCodeAt(0).toString(16)).slice(-4); + }) + '"' : '"' + string + '"'; + } + function str(key, holder) { + var i, k, v, length, mind = gap, partial, value = holder[key]; + if (value && typeof value === 'object' && typeof value.toJSON === 'function') { + value = value.toJSON(key); + } + if (typeof rep === 'function') { + value = rep.call(holder, key, value); + } + switch (typeof value) { + case 'string': + return quote(value); + case 'number': + return isFinite(value) ? String(value) : 'null'; + case 'boolean': + case 'null': + return String(value); + case 'object': + if (!value) { + return 'null'; + } + gap += indent; + partial = []; + if (Object.prototype.toString.apply(value) === '[object Array]') { + length = value.length; + for (i = 0; i < length; i += 1) { + partial[i] = str(i, value) || 'null'; + } + v = partial.length === 0 ? '[]' : gap ? '[\n' + gap + partial.join(',\n' + gap) + '\n' + mind + ']' : '[' + partial.join(',') + ']'; + gap = mind; + return v; + } + if (rep && typeof rep === 'object') { + length = rep.length; + for (i = 0; i < length; i += 1) { + if (typeof rep[i] === 'string') { + k = rep[i]; + v = str(k, value); + if (v) { + partial.push(quote(k) + (gap ? ': ' : ':') + v); + } + } + } + } + else { + for (k in value) { + if (Object.prototype.hasOwnProperty.call(value, k)) { + v = str(k, value); + if (v) { + partial.push(quote(k) + (gap ? ': ' : ':') + v); + } + } + } + } + v = partial.length === 0 ? '{}' : gap ? '{\n' + gap + partial.join(',\n' + gap) + '\n' + mind + '}' : '{' + partial.join(',') + '}'; + gap = mind; + return v; + } + } + if (typeof JSON.stringify !== 'function') { + JSON.stringify = function (value, replacer, space) { + var i; + gap = ''; + indent = ''; + if (typeof space === 'number') { + for (i = 0; i < space; i += 1) { + indent += ' '; + } + } + else if (typeof space === 'string') { + indent = space; + } + rep = replacer; + if (replacer && typeof replacer !== 'function' && (typeof replacer !== 'object' || typeof replacer.length !== 'number')) { + throw new Error('JSON.stringify'); + } + return str('', { '': value }); + }; + } + if (typeof JSON.parse !== 'function') { + JSON.parse = function (text, reviver) { + var j; + function walk(holder, key) { + var k, v, value = holder[key]; + if (value && typeof value === 'object') { + for (k in value) { + if (Object.prototype.hasOwnProperty.call(value, k)) { + v = walk(value, k); + if (v !== undefined) { + value[k] = v; + } + else { + delete value[k]; + } + } + } + } + return reviver.call(holder, key, value); + } + text = String(text); + cx.lastIndex = 0; + if (cx.test(text)) { + text = text.replace(cx, function (a) { + return '\\u' + ('0000' + a.charCodeAt(0).toString(16)).slice(-4); + }); + } + if (/^[\],:{}\s]*$/.test(text.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g, '@').replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g, ']').replace(/(?:^|:|,)(?:\s*\[)+/g, ''))) { + j = eval('(' + text + ')'); + return typeof reviver === 'function' ? walk({ '': j }, '') : j; + } + throw new SyntaxError('JSON.parse'); + }; + } +}()); +var TypeScript; +(function (TypeScript) { + TypeScript.nodeMakeDirectoryTime = 0; + TypeScript.nodeCreateBufferTime = 0; + TypeScript.nodeWriteFileSyncTime = 0; + (function (ByteOrderMark) { + ByteOrderMark[ByteOrderMark["None"] = 0] = "None"; + ByteOrderMark[ByteOrderMark["Utf8"] = 1] = "Utf8"; + ByteOrderMark[ByteOrderMark["Utf16BigEndian"] = 2] = "Utf16BigEndian"; + ByteOrderMark[ByteOrderMark["Utf16LittleEndian"] = 3] = "Utf16LittleEndian"; + })(TypeScript.ByteOrderMark || (TypeScript.ByteOrderMark = {})); + var ByteOrderMark = TypeScript.ByteOrderMark; + var FileInformation = (function () { + function FileInformation(contents, byteOrderMark) { + this.contents = contents; + this.byteOrderMark = byteOrderMark; + } + return FileInformation; + })(); + TypeScript.FileInformation = FileInformation; + function throwIOError(message, error) { + var errorMessage = message; + if (error && error.message) { + errorMessage += (" " + error.message); + } + throw new Error(errorMessage); + } + TypeScript.Environment = (function () { + function getWindowsScriptHostEnvironment() { + try { + var fso = new ActiveXObject("Scripting.FileSystemObject"); + } + catch (e) { + return undefined; + } + var streamObjectPool = []; + function getStreamObject() { + if (streamObjectPool.length > 0) { + return streamObjectPool.pop(); + } + else { + return new ActiveXObject("ADODB.Stream"); + } + } + function releaseStreamObject(obj) { + streamObjectPool.push(obj); + } + var args = []; + for (var i = 0; i < WScript.Arguments.length; i++) { + args[i] = WScript.Arguments.Item(i); + } + return { + newLine: "\r\n", + currentDirectory: function () { return WScript.CreateObject("WScript.Shell").CurrentDirectory; }, + supportsCodePage: function () { return WScript.ReadFile; }, + absolutePath: function (path) { return fso.GetAbsolutePathName(path); }, + readFile: function (path, codepage) { + try { + if (codepage && this.supportsCodePage()) { + try { + var contents = WScript.ReadFile(path, codepage); + return new FileInformation(contents, 0 /* None */); + } + catch (e) { + } + } + var streamObj = getStreamObject(); + streamObj.Open(); + streamObj.Type = 2; + streamObj.Charset = 'x-ansi'; + streamObj.LoadFromFile(path); + var bomChar = streamObj.ReadText(2); + streamObj.Position = 0; + var byteOrderMark = 0 /* None */; + if (bomChar.charCodeAt(0) === 0xFE && bomChar.charCodeAt(1) === 0xFF) { + streamObj.Charset = 'unicode'; + byteOrderMark = 2 /* Utf16BigEndian */; + } + else if (bomChar.charCodeAt(0) === 0xFF && bomChar.charCodeAt(1) === 0xFE) { + streamObj.Charset = 'unicode'; + byteOrderMark = 3 /* Utf16LittleEndian */; + } + else if (bomChar.charCodeAt(0) === 0xEF && bomChar.charCodeAt(1) === 0xBB) { + streamObj.Charset = 'utf-8'; + byteOrderMark = 1 /* Utf8 */; + } + else { + streamObj.Charset = 'utf-8'; + } + var contents = streamObj.ReadText(-1); + streamObj.Close(); + releaseStreamObject(streamObj); + return new FileInformation(contents, byteOrderMark); + } + catch (err) { + var message; + if (err.number === -2147024809) { + message = TypeScript.getDiagnosticMessage(TypeScript.DiagnosticCode.Unsupported_file_encoding, undefined); + } + else { + message = TypeScript.getDiagnosticMessage(TypeScript.DiagnosticCode.Cannot_read_file_0_1, [path, err.message]); + } + throw new Error(message); + } + }, + writeFile: function (path, contents, writeByteOrderMark) { + var textStream = getStreamObject(); + textStream.Charset = 'utf-8'; + textStream.Open(); + textStream.WriteText(contents, 0); + if (!writeByteOrderMark) { + textStream.Position = 3; + } + else { + textStream.Position = 0; + } + var fileStream = getStreamObject(); + fileStream.Type = 1; + fileStream.Open(); + textStream.CopyTo(fileStream); + fileStream.Flush(); + fileStream.SaveToFile(path, 2); + fileStream.Close(); + textStream.Flush(); + textStream.Close(); + }, + fileExists: function (path) { return fso.FileExists(path); }, + deleteFile: function (path) { + if (fso.FileExists(path)) { + fso.DeleteFile(path, true); + } + }, + directoryExists: function (path) { return fso.FolderExists(path); }, + directoryName: function (path) { return fso.GetParentFolderName(path); }, + createDirectory: function (path) { + try { + if (!this.directoryExists(path)) { + fso.CreateFolder(path); + } + } + catch (e) { + throwIOError(TypeScript.getDiagnosticMessage(TypeScript.DiagnosticCode.Could_not_create_directory_0, [path]), e); + } + }, + listFiles: function (path, spec, options) { + options = options || {}; + function filesInFolder(folder, root) { + var paths = []; + var fc; + if (options.recursive) { + fc = new Enumerator(folder.subfolders); + for (; !fc.atEnd(); fc.moveNext()) { + paths = paths.concat(filesInFolder(fc.item(), root + "\\" + fc.item().Name)); + } + } + fc = new Enumerator(folder.files); + for (; !fc.atEnd(); fc.moveNext()) { + if (!spec || fc.item().Name.match(spec)) { + paths.push(root + "\\" + fc.item().Name); + } + } + return paths; + } + var folder = fso.GetFolder(path); + var paths = []; + return filesInFolder(folder, path); + }, + arguments: args, + standardOut: WScript.StdOut, + standardError: WScript.StdErr, + executingFilePath: function () { return WScript.ScriptFullName; }, + quit: function (exitCode) { + if (exitCode === void 0) { exitCode = 0; } + try { + WScript.Quit(exitCode); + } + catch (e) { + } + }, + watchFile: undefined + }; + } + ; + function getNodeEnvironment() { + var _fs = require('fs'); + var _path = require('path'); + var _module = require('module'); + var _os = require('os'); + return { + newLine: _os.EOL, + currentDirectory: function () { return process.cwd(); }, + supportsCodePage: function () { return false; }, + absolutePath: function (path) { return _path.resolve(path); }, + readFile: function (file, codepage) { + if (codepage) { + throw new Error(TypeScript.getDiagnosticMessage(TypeScript.DiagnosticCode.codepage_option_not_supported_on_current_platform, undefined)); + } + var buffer = _fs.readFileSync(file); + switch (buffer[0]) { + case 0xFE: + if (buffer[1] === 0xFF) { + var i = 0; + while ((i + 1) < buffer.length) { + var temp = buffer[i]; + buffer[i] = buffer[i + 1]; + buffer[i + 1] = temp; + i += 2; + } + return new FileInformation(buffer.toString("ucs2", 2), 2 /* Utf16BigEndian */); + } + break; + case 0xFF: + if (buffer[1] === 0xFE) { + return new FileInformation(buffer.toString("ucs2", 2), 3 /* Utf16LittleEndian */); + } + break; + case 0xEF: + if (buffer[1] === 0xBB) { + return new FileInformation(buffer.toString("utf8", 3), 1 /* Utf8 */); + } + } + return new FileInformation(buffer.toString("utf8", 0), 0 /* None */); + }, + writeFile: function (path, contents, writeByteOrderMark) { + function mkdirRecursiveSync(path) { + var stats = _fs.statSync(path); + if (stats.isFile()) { + throw "\"" + path + "\" exists but isn't a directory."; + } + else if (stats.isDirectory()) { + return; + } + else { + mkdirRecursiveSync(_path.dirname(path)); + _fs.mkdirSync(path, 509); + } + } + var start = new Date().getTime(); + mkdirRecursiveSync(_path.dirname(path)); + TypeScript.nodeMakeDirectoryTime += new Date().getTime() - start; + if (writeByteOrderMark) { + contents = '\uFEFF' + contents; + } + var start = new Date().getTime(); + var chunkLength = 4 * 1024; + var fileDescriptor = _fs.openSync(path, "w"); + try { + for (var index = 0; index < contents.length; index += chunkLength) { + var bufferStart = new Date().getTime(); + var buffer = new Buffer(contents.substr(index, chunkLength), "utf8"); + TypeScript.nodeCreateBufferTime += new Date().getTime() - bufferStart; + _fs.writeSync(fileDescriptor, buffer, 0, buffer.length, null); + } + } + finally { + _fs.closeSync(fileDescriptor); + } + TypeScript.nodeWriteFileSyncTime += new Date().getTime() - start; + }, + fileExists: function (path) { return _fs.existsSync(path); }, + deleteFile: function (path) { + try { + _fs.unlinkSync(path); + } + catch (e) { + } + }, + directoryExists: function (path) { return _fs.existsSync(path) && _fs.statSync(path).isDirectory(); }, + directoryName: function (path) { + var dirPath = _path.dirname(path); + if (dirPath === path) { + dirPath = undefined; + } + return dirPath; + }, + createDirectory: function (path) { + try { + if (!this.directoryExists(path)) { + _fs.mkdirSync(path); + } + } + catch (e) { + throwIOError(TypeScript.getDiagnosticMessage(TypeScript.DiagnosticCode.Could_not_create_directory_0, [path]), e); + } + }, + listFiles: function (path, spec, options) { + options = options || {}; + function filesInFolder(folder) { + var paths = []; + var files = _fs.readdirSync(folder); + for (var i = 0; i < files.length; i++) { + var pathToFile = _path.join(folder, files[i]); + var stat = _fs.statSync(pathToFile); + if (options.recursive && stat.isDirectory()) { + paths = paths.concat(filesInFolder(pathToFile)); + } + else if (stat.isFile() && (!spec || files[i].match(spec))) { + paths.push(pathToFile); + } + } + return paths; + } + return filesInFolder(path); + }, + arguments: process.argv.slice(2), + standardOut: { + Write: function (str) { return process.stdout.write(str); }, + WriteLine: function (str) { return process.stdout.write(str + '\n'); }, + Close: function () { + } + }, + standardError: { + Write: function (str) { return process.stderr.write(str); }, + WriteLine: function (str) { return process.stderr.write(str + '\n'); }, + Close: function () { + } + }, + executingFilePath: function () { return process.mainModule.filename; }, + quit: function (code) { + var stderrFlushed = process.stderr.write(''); + var stdoutFlushed = process.stdout.write(''); + process.stderr.on('drain', function () { + stderrFlushed = true; + if (stdoutFlushed) { + process.exit(code); + } + }); + process.stdout.on('drain', function () { + stdoutFlushed = true; + if (stderrFlushed) { + process.exit(code); + } + }); + setTimeout(function () { + process.exit(code); + }, 5); + }, + watchFile: function (fileName, callback) { + var firstRun = true; + var processingChange = false; + var fileChanged = function (curr, prev) { + if (!firstRun) { + if (curr.mtime < prev.mtime) { + return; + } + _fs.unwatchFile(fileName, fileChanged); + if (!processingChange) { + processingChange = true; + callback(fileName); + setTimeout(function () { + processingChange = false; + }, 100); + } + } + firstRun = false; + _fs.watchFile(fileName, { persistent: true, interval: 500 }, fileChanged); + }; + fileChanged(); + return { + fileName: fileName, + close: function () { + _fs.unwatchFile(fileName, fileChanged); + } + }; + } + }; + } + ; + if (typeof WScript !== "undefined" && typeof ActiveXObject === "function") { + return getWindowsScriptHostEnvironment(); + } + else if (typeof module !== 'undefined' && module.exports) { + return getNodeEnvironment(); + } + else { + return undefined; + } + })(); +})(TypeScript || (TypeScript = {})); +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) { + var result; + if (array) { + for (var i = 0, len = array.length; i < len; i++) { + if (result = callback(array[i])) { + break; + } + } + } + return result; + } + ts.forEach = forEach; + function contains(array, value) { + if (array) { + for (var i = 0, len = array.length; i < len; i++) { + if (array[i] === 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, len = array.length; i < len; i++) { + if (predicate(array[i])) { + count++; + } + } + } + return count; + } + ts.countWhere = countWhere; + function filter(array, f) { + if (array) { + var result = []; + for (var i = 0, len = array.length; i < len; i++) { + var item = array[i]; + if (f(item)) { + result.push(item); + } + } + } + return result; + } + ts.filter = filter; + function map(array, f) { + if (array) { + var result = []; + for (var i = 0, len = array.length; i < len; i++) { + result.push(f(array[i])); + } + } + 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) { + if (array) { + var result = []; + for (var i = 0, len = array.length; i < len; i++) { + var item = array[i]; + if (!contains(result, item)) + result.push(item); + } + } + return result; + } + ts.deduplicate = deduplicate; + function sum(array, prop) { + var result = 0; + for (var i = 0; i < array.length; i++) { + result += array[i][prop]; + } + return result; + } + ts.sum = sum; + 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; + 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 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 mapToArray(map) { + var result = []; + for (var id in map) { + result.push(map[id]); + } + return result; + } + ts.mapToArray = mapToArray; + 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) { + Debug.assert(start >= 0, "start must be non-negative, is " + start); + Debug.assert(length >= 0, "length must be non-negative, is " + 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, + isEarly: message.isEarly + }; + } + 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, + isEarly: message.isEarly + }; + } + 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 flattenDiagnosticChain(file, start, length, diagnosticChain, newLine) { + Debug.assert(start >= 0, "start must be non-negative, is " + start); + Debug.assert(length >= 0, "length must be non-negative, is " + length); + var code = diagnosticChain.code; + var category = diagnosticChain.category; + var messageText = ""; + var indent = 0; + while (diagnosticChain) { + if (indent) { + messageText += newLine; + for (var i = 0; i < indent; i++) { + messageText += " "; + } + } + messageText += diagnosticChain.messageText; + indent++; + diagnosticChain = diagnosticChain.next; + } + return { + file: file, + start: start, + length: length, + code: code, + category: category, + messageText: messageText + }; + } + ts.flattenDiagnosticChain = flattenDiagnosticChain; + function compareValues(a, b) { + if (a === b) + return 0 /* EqualTo */; + if (a === undefined) + return -1 /* LessThan */; + if (b === undefined) + return 1 /* GreaterThan */; + return a < b ? -1 /* LessThan */ : 1 /* GreaterThan */; + } + 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) || compareValues(d1.messageText, d2.messageText) || 0; + } + ts.compareDiagnostics = compareDiagnostics; + 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 /* EqualTo */; + 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 /* slash */) { + if (path.charCodeAt(1) !== 47 /* slash */) + 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 /* colon */) { + if (path.charCodeAt(2) === 47 /* slash */) + 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 { + normalized.push(part); + } + } + } + return normalized; + } + function normalizePath(path) { + var 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) { + var 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) { + var urlLength = url.length; + var rootLength = url.indexOf("://") + "://".length; + while (rootLength < urlLength) { + if (url.charCodeAt(rootLength) === 47 /* slash */) { + 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 (path2.charAt(0) === ts.directorySeparator) + 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 escapedCharsRegExp = /[\t\v\f\b\0\r\n\"\\\u2028\u2029\u0085]/g; + var escapedCharsMap = { + "\t": "\\t", + "\v": "\\v", + "\f": "\\f", + "\b": "\\b", + "\0": "\\0", + "\r": "\\r", + "\n": "\\n", + "\"": "\\\"", + "\u2028": "\\u2028", + "\u2029": "\\u2029", + "\u0085": "\\u0085" + }; + function escapeString(s) { + return escapedCharsRegExp.test(s) ? s.replace(escapedCharsRegExp, function (c) { + return escapedCharsMap[c] || c; + }) : s; + } + ts.escapeString = escapeString; + 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 /* None */; + 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) { + (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["NumericLiteral"] = 6] = "NumericLiteral"; + SyntaxKind[SyntaxKind["StringLiteral"] = 7] = "StringLiteral"; + SyntaxKind[SyntaxKind["RegularExpressionLiteral"] = 8] = "RegularExpressionLiteral"; + SyntaxKind[SyntaxKind["NoSubstitutionTemplateLiteral"] = 9] = "NoSubstitutionTemplateLiteral"; + SyntaxKind[SyntaxKind["TemplateHead"] = 10] = "TemplateHead"; + SyntaxKind[SyntaxKind["TemplateMiddle"] = 11] = "TemplateMiddle"; + SyntaxKind[SyntaxKind["TemplateTail"] = 12] = "TemplateTail"; + SyntaxKind[SyntaxKind["OpenBraceToken"] = 13] = "OpenBraceToken"; + SyntaxKind[SyntaxKind["CloseBraceToken"] = 14] = "CloseBraceToken"; + SyntaxKind[SyntaxKind["OpenParenToken"] = 15] = "OpenParenToken"; + SyntaxKind[SyntaxKind["CloseParenToken"] = 16] = "CloseParenToken"; + SyntaxKind[SyntaxKind["OpenBracketToken"] = 17] = "OpenBracketToken"; + SyntaxKind[SyntaxKind["CloseBracketToken"] = 18] = "CloseBracketToken"; + SyntaxKind[SyntaxKind["DotToken"] = 19] = "DotToken"; + SyntaxKind[SyntaxKind["DotDotDotToken"] = 20] = "DotDotDotToken"; + SyntaxKind[SyntaxKind["SemicolonToken"] = 21] = "SemicolonToken"; + SyntaxKind[SyntaxKind["CommaToken"] = 22] = "CommaToken"; + SyntaxKind[SyntaxKind["LessThanToken"] = 23] = "LessThanToken"; + SyntaxKind[SyntaxKind["GreaterThanToken"] = 24] = "GreaterThanToken"; + SyntaxKind[SyntaxKind["LessThanEqualsToken"] = 25] = "LessThanEqualsToken"; + SyntaxKind[SyntaxKind["GreaterThanEqualsToken"] = 26] = "GreaterThanEqualsToken"; + SyntaxKind[SyntaxKind["EqualsEqualsToken"] = 27] = "EqualsEqualsToken"; + SyntaxKind[SyntaxKind["ExclamationEqualsToken"] = 28] = "ExclamationEqualsToken"; + SyntaxKind[SyntaxKind["EqualsEqualsEqualsToken"] = 29] = "EqualsEqualsEqualsToken"; + SyntaxKind[SyntaxKind["ExclamationEqualsEqualsToken"] = 30] = "ExclamationEqualsEqualsToken"; + SyntaxKind[SyntaxKind["EqualsGreaterThanToken"] = 31] = "EqualsGreaterThanToken"; + SyntaxKind[SyntaxKind["PlusToken"] = 32] = "PlusToken"; + SyntaxKind[SyntaxKind["MinusToken"] = 33] = "MinusToken"; + SyntaxKind[SyntaxKind["AsteriskToken"] = 34] = "AsteriskToken"; + SyntaxKind[SyntaxKind["SlashToken"] = 35] = "SlashToken"; + SyntaxKind[SyntaxKind["PercentToken"] = 36] = "PercentToken"; + SyntaxKind[SyntaxKind["PlusPlusToken"] = 37] = "PlusPlusToken"; + SyntaxKind[SyntaxKind["MinusMinusToken"] = 38] = "MinusMinusToken"; + SyntaxKind[SyntaxKind["LessThanLessThanToken"] = 39] = "LessThanLessThanToken"; + SyntaxKind[SyntaxKind["GreaterThanGreaterThanToken"] = 40] = "GreaterThanGreaterThanToken"; + SyntaxKind[SyntaxKind["GreaterThanGreaterThanGreaterThanToken"] = 41] = "GreaterThanGreaterThanGreaterThanToken"; + SyntaxKind[SyntaxKind["AmpersandToken"] = 42] = "AmpersandToken"; + SyntaxKind[SyntaxKind["BarToken"] = 43] = "BarToken"; + SyntaxKind[SyntaxKind["CaretToken"] = 44] = "CaretToken"; + SyntaxKind[SyntaxKind["ExclamationToken"] = 45] = "ExclamationToken"; + SyntaxKind[SyntaxKind["TildeToken"] = 46] = "TildeToken"; + SyntaxKind[SyntaxKind["AmpersandAmpersandToken"] = 47] = "AmpersandAmpersandToken"; + SyntaxKind[SyntaxKind["BarBarToken"] = 48] = "BarBarToken"; + SyntaxKind[SyntaxKind["QuestionToken"] = 49] = "QuestionToken"; + SyntaxKind[SyntaxKind["ColonToken"] = 50] = "ColonToken"; + SyntaxKind[SyntaxKind["EqualsToken"] = 51] = "EqualsToken"; + SyntaxKind[SyntaxKind["PlusEqualsToken"] = 52] = "PlusEqualsToken"; + SyntaxKind[SyntaxKind["MinusEqualsToken"] = 53] = "MinusEqualsToken"; + SyntaxKind[SyntaxKind["AsteriskEqualsToken"] = 54] = "AsteriskEqualsToken"; + SyntaxKind[SyntaxKind["SlashEqualsToken"] = 55] = "SlashEqualsToken"; + SyntaxKind[SyntaxKind["PercentEqualsToken"] = 56] = "PercentEqualsToken"; + SyntaxKind[SyntaxKind["LessThanLessThanEqualsToken"] = 57] = "LessThanLessThanEqualsToken"; + SyntaxKind[SyntaxKind["GreaterThanGreaterThanEqualsToken"] = 58] = "GreaterThanGreaterThanEqualsToken"; + SyntaxKind[SyntaxKind["GreaterThanGreaterThanGreaterThanEqualsToken"] = 59] = "GreaterThanGreaterThanGreaterThanEqualsToken"; + SyntaxKind[SyntaxKind["AmpersandEqualsToken"] = 60] = "AmpersandEqualsToken"; + SyntaxKind[SyntaxKind["BarEqualsToken"] = 61] = "BarEqualsToken"; + SyntaxKind[SyntaxKind["CaretEqualsToken"] = 62] = "CaretEqualsToken"; + SyntaxKind[SyntaxKind["Identifier"] = 63] = "Identifier"; + SyntaxKind[SyntaxKind["BreakKeyword"] = 64] = "BreakKeyword"; + SyntaxKind[SyntaxKind["CaseKeyword"] = 65] = "CaseKeyword"; + SyntaxKind[SyntaxKind["CatchKeyword"] = 66] = "CatchKeyword"; + SyntaxKind[SyntaxKind["ClassKeyword"] = 67] = "ClassKeyword"; + SyntaxKind[SyntaxKind["ConstKeyword"] = 68] = "ConstKeyword"; + SyntaxKind[SyntaxKind["ContinueKeyword"] = 69] = "ContinueKeyword"; + SyntaxKind[SyntaxKind["DebuggerKeyword"] = 70] = "DebuggerKeyword"; + SyntaxKind[SyntaxKind["DefaultKeyword"] = 71] = "DefaultKeyword"; + SyntaxKind[SyntaxKind["DeleteKeyword"] = 72] = "DeleteKeyword"; + SyntaxKind[SyntaxKind["DoKeyword"] = 73] = "DoKeyword"; + SyntaxKind[SyntaxKind["ElseKeyword"] = 74] = "ElseKeyword"; + SyntaxKind[SyntaxKind["EnumKeyword"] = 75] = "EnumKeyword"; + SyntaxKind[SyntaxKind["ExportKeyword"] = 76] = "ExportKeyword"; + SyntaxKind[SyntaxKind["ExtendsKeyword"] = 77] = "ExtendsKeyword"; + SyntaxKind[SyntaxKind["FalseKeyword"] = 78] = "FalseKeyword"; + SyntaxKind[SyntaxKind["FinallyKeyword"] = 79] = "FinallyKeyword"; + SyntaxKind[SyntaxKind["ForKeyword"] = 80] = "ForKeyword"; + SyntaxKind[SyntaxKind["FunctionKeyword"] = 81] = "FunctionKeyword"; + SyntaxKind[SyntaxKind["IfKeyword"] = 82] = "IfKeyword"; + SyntaxKind[SyntaxKind["ImportKeyword"] = 83] = "ImportKeyword"; + SyntaxKind[SyntaxKind["InKeyword"] = 84] = "InKeyword"; + SyntaxKind[SyntaxKind["InstanceOfKeyword"] = 85] = "InstanceOfKeyword"; + SyntaxKind[SyntaxKind["NewKeyword"] = 86] = "NewKeyword"; + SyntaxKind[SyntaxKind["NullKeyword"] = 87] = "NullKeyword"; + SyntaxKind[SyntaxKind["ReturnKeyword"] = 88] = "ReturnKeyword"; + SyntaxKind[SyntaxKind["SuperKeyword"] = 89] = "SuperKeyword"; + SyntaxKind[SyntaxKind["SwitchKeyword"] = 90] = "SwitchKeyword"; + SyntaxKind[SyntaxKind["ThisKeyword"] = 91] = "ThisKeyword"; + SyntaxKind[SyntaxKind["ThrowKeyword"] = 92] = "ThrowKeyword"; + SyntaxKind[SyntaxKind["TrueKeyword"] = 93] = "TrueKeyword"; + SyntaxKind[SyntaxKind["TryKeyword"] = 94] = "TryKeyword"; + SyntaxKind[SyntaxKind["TypeOfKeyword"] = 95] = "TypeOfKeyword"; + SyntaxKind[SyntaxKind["VarKeyword"] = 96] = "VarKeyword"; + SyntaxKind[SyntaxKind["VoidKeyword"] = 97] = "VoidKeyword"; + SyntaxKind[SyntaxKind["WhileKeyword"] = 98] = "WhileKeyword"; + SyntaxKind[SyntaxKind["WithKeyword"] = 99] = "WithKeyword"; + SyntaxKind[SyntaxKind["ImplementsKeyword"] = 100] = "ImplementsKeyword"; + SyntaxKind[SyntaxKind["InterfaceKeyword"] = 101] = "InterfaceKeyword"; + SyntaxKind[SyntaxKind["LetKeyword"] = 102] = "LetKeyword"; + SyntaxKind[SyntaxKind["PackageKeyword"] = 103] = "PackageKeyword"; + SyntaxKind[SyntaxKind["PrivateKeyword"] = 104] = "PrivateKeyword"; + SyntaxKind[SyntaxKind["ProtectedKeyword"] = 105] = "ProtectedKeyword"; + SyntaxKind[SyntaxKind["PublicKeyword"] = 106] = "PublicKeyword"; + SyntaxKind[SyntaxKind["StaticKeyword"] = 107] = "StaticKeyword"; + SyntaxKind[SyntaxKind["YieldKeyword"] = 108] = "YieldKeyword"; + SyntaxKind[SyntaxKind["AnyKeyword"] = 109] = "AnyKeyword"; + SyntaxKind[SyntaxKind["BooleanKeyword"] = 110] = "BooleanKeyword"; + SyntaxKind[SyntaxKind["ConstructorKeyword"] = 111] = "ConstructorKeyword"; + SyntaxKind[SyntaxKind["DeclareKeyword"] = 112] = "DeclareKeyword"; + SyntaxKind[SyntaxKind["GetKeyword"] = 113] = "GetKeyword"; + SyntaxKind[SyntaxKind["ModuleKeyword"] = 114] = "ModuleKeyword"; + SyntaxKind[SyntaxKind["RequireKeyword"] = 115] = "RequireKeyword"; + SyntaxKind[SyntaxKind["NumberKeyword"] = 116] = "NumberKeyword"; + SyntaxKind[SyntaxKind["SetKeyword"] = 117] = "SetKeyword"; + SyntaxKind[SyntaxKind["StringKeyword"] = 118] = "StringKeyword"; + SyntaxKind[SyntaxKind["TypeKeyword"] = 119] = "TypeKeyword"; + SyntaxKind[SyntaxKind["Missing"] = 120] = "Missing"; + SyntaxKind[SyntaxKind["QualifiedName"] = 121] = "QualifiedName"; + SyntaxKind[SyntaxKind["TypeParameter"] = 122] = "TypeParameter"; + SyntaxKind[SyntaxKind["Parameter"] = 123] = "Parameter"; + SyntaxKind[SyntaxKind["Property"] = 124] = "Property"; + SyntaxKind[SyntaxKind["Method"] = 125] = "Method"; + SyntaxKind[SyntaxKind["Constructor"] = 126] = "Constructor"; + SyntaxKind[SyntaxKind["GetAccessor"] = 127] = "GetAccessor"; + SyntaxKind[SyntaxKind["SetAccessor"] = 128] = "SetAccessor"; + SyntaxKind[SyntaxKind["CallSignature"] = 129] = "CallSignature"; + SyntaxKind[SyntaxKind["ConstructSignature"] = 130] = "ConstructSignature"; + SyntaxKind[SyntaxKind["IndexSignature"] = 131] = "IndexSignature"; + SyntaxKind[SyntaxKind["TypeReference"] = 132] = "TypeReference"; + SyntaxKind[SyntaxKind["FunctionType"] = 133] = "FunctionType"; + SyntaxKind[SyntaxKind["ConstructorType"] = 134] = "ConstructorType"; + SyntaxKind[SyntaxKind["TypeQuery"] = 135] = "TypeQuery"; + SyntaxKind[SyntaxKind["TypeLiteral"] = 136] = "TypeLiteral"; + SyntaxKind[SyntaxKind["ArrayType"] = 137] = "ArrayType"; + SyntaxKind[SyntaxKind["TupleType"] = 138] = "TupleType"; + SyntaxKind[SyntaxKind["UnionType"] = 139] = "UnionType"; + SyntaxKind[SyntaxKind["ParenType"] = 140] = "ParenType"; + SyntaxKind[SyntaxKind["ArrayLiteral"] = 141] = "ArrayLiteral"; + SyntaxKind[SyntaxKind["ObjectLiteral"] = 142] = "ObjectLiteral"; + SyntaxKind[SyntaxKind["PropertyAssignment"] = 143] = "PropertyAssignment"; + SyntaxKind[SyntaxKind["ShorthandPropertyAssignment"] = 144] = "ShorthandPropertyAssignment"; + SyntaxKind[SyntaxKind["PropertyAccess"] = 145] = "PropertyAccess"; + SyntaxKind[SyntaxKind["IndexedAccess"] = 146] = "IndexedAccess"; + SyntaxKind[SyntaxKind["CallExpression"] = 147] = "CallExpression"; + SyntaxKind[SyntaxKind["NewExpression"] = 148] = "NewExpression"; + SyntaxKind[SyntaxKind["TaggedTemplateExpression"] = 149] = "TaggedTemplateExpression"; + SyntaxKind[SyntaxKind["TypeAssertion"] = 150] = "TypeAssertion"; + SyntaxKind[SyntaxKind["ParenExpression"] = 151] = "ParenExpression"; + SyntaxKind[SyntaxKind["FunctionExpression"] = 152] = "FunctionExpression"; + SyntaxKind[SyntaxKind["ArrowFunction"] = 153] = "ArrowFunction"; + SyntaxKind[SyntaxKind["PrefixOperator"] = 154] = "PrefixOperator"; + SyntaxKind[SyntaxKind["PostfixOperator"] = 155] = "PostfixOperator"; + SyntaxKind[SyntaxKind["BinaryExpression"] = 156] = "BinaryExpression"; + SyntaxKind[SyntaxKind["ConditionalExpression"] = 157] = "ConditionalExpression"; + SyntaxKind[SyntaxKind["TemplateExpression"] = 158] = "TemplateExpression"; + SyntaxKind[SyntaxKind["TemplateSpan"] = 159] = "TemplateSpan"; + SyntaxKind[SyntaxKind["YieldExpression"] = 160] = "YieldExpression"; + SyntaxKind[SyntaxKind["OmittedExpression"] = 161] = "OmittedExpression"; + SyntaxKind[SyntaxKind["Block"] = 162] = "Block"; + SyntaxKind[SyntaxKind["VariableStatement"] = 163] = "VariableStatement"; + SyntaxKind[SyntaxKind["EmptyStatement"] = 164] = "EmptyStatement"; + SyntaxKind[SyntaxKind["ExpressionStatement"] = 165] = "ExpressionStatement"; + SyntaxKind[SyntaxKind["IfStatement"] = 166] = "IfStatement"; + SyntaxKind[SyntaxKind["DoStatement"] = 167] = "DoStatement"; + SyntaxKind[SyntaxKind["WhileStatement"] = 168] = "WhileStatement"; + SyntaxKind[SyntaxKind["ForStatement"] = 169] = "ForStatement"; + SyntaxKind[SyntaxKind["ForInStatement"] = 170] = "ForInStatement"; + SyntaxKind[SyntaxKind["ContinueStatement"] = 171] = "ContinueStatement"; + SyntaxKind[SyntaxKind["BreakStatement"] = 172] = "BreakStatement"; + SyntaxKind[SyntaxKind["ReturnStatement"] = 173] = "ReturnStatement"; + SyntaxKind[SyntaxKind["WithStatement"] = 174] = "WithStatement"; + SyntaxKind[SyntaxKind["SwitchStatement"] = 175] = "SwitchStatement"; + SyntaxKind[SyntaxKind["CaseClause"] = 176] = "CaseClause"; + SyntaxKind[SyntaxKind["DefaultClause"] = 177] = "DefaultClause"; + SyntaxKind[SyntaxKind["LabeledStatement"] = 178] = "LabeledStatement"; + SyntaxKind[SyntaxKind["ThrowStatement"] = 179] = "ThrowStatement"; + SyntaxKind[SyntaxKind["TryStatement"] = 180] = "TryStatement"; + SyntaxKind[SyntaxKind["TryBlock"] = 181] = "TryBlock"; + SyntaxKind[SyntaxKind["CatchBlock"] = 182] = "CatchBlock"; + SyntaxKind[SyntaxKind["FinallyBlock"] = 183] = "FinallyBlock"; + SyntaxKind[SyntaxKind["DebuggerStatement"] = 184] = "DebuggerStatement"; + SyntaxKind[SyntaxKind["VariableDeclaration"] = 185] = "VariableDeclaration"; + SyntaxKind[SyntaxKind["FunctionDeclaration"] = 186] = "FunctionDeclaration"; + SyntaxKind[SyntaxKind["FunctionBlock"] = 187] = "FunctionBlock"; + SyntaxKind[SyntaxKind["ClassDeclaration"] = 188] = "ClassDeclaration"; + SyntaxKind[SyntaxKind["InterfaceDeclaration"] = 189] = "InterfaceDeclaration"; + SyntaxKind[SyntaxKind["TypeAliasDeclaration"] = 190] = "TypeAliasDeclaration"; + SyntaxKind[SyntaxKind["EnumDeclaration"] = 191] = "EnumDeclaration"; + SyntaxKind[SyntaxKind["ModuleDeclaration"] = 192] = "ModuleDeclaration"; + SyntaxKind[SyntaxKind["ModuleBlock"] = 193] = "ModuleBlock"; + SyntaxKind[SyntaxKind["ImportDeclaration"] = 194] = "ImportDeclaration"; + SyntaxKind[SyntaxKind["ExportAssignment"] = 195] = "ExportAssignment"; + SyntaxKind[SyntaxKind["EnumMember"] = 196] = "EnumMember"; + SyntaxKind[SyntaxKind["SourceFile"] = 197] = "SourceFile"; + SyntaxKind[SyntaxKind["Program"] = 198] = "Program"; + SyntaxKind[SyntaxKind["SyntaxList"] = 199] = "SyntaxList"; + SyntaxKind[SyntaxKind["Count"] = 200] = "Count"; + SyntaxKind[SyntaxKind["FirstAssignment"] = 51] = "FirstAssignment"; + SyntaxKind[SyntaxKind["LastAssignment"] = 62] = "LastAssignment"; + SyntaxKind[SyntaxKind["FirstReservedWord"] = 64] = "FirstReservedWord"; + SyntaxKind[SyntaxKind["LastReservedWord"] = 99] = "LastReservedWord"; + SyntaxKind[SyntaxKind["FirstKeyword"] = 64] = "FirstKeyword"; + SyntaxKind[SyntaxKind["LastKeyword"] = 119] = "LastKeyword"; + SyntaxKind[SyntaxKind["FirstFutureReservedWord"] = 100] = "FirstFutureReservedWord"; + SyntaxKind[SyntaxKind["LastFutureReservedWord"] = 108] = "LastFutureReservedWord"; + SyntaxKind[SyntaxKind["FirstTypeNode"] = 132] = "FirstTypeNode"; + SyntaxKind[SyntaxKind["LastTypeNode"] = 140] = "LastTypeNode"; + SyntaxKind[SyntaxKind["FirstPunctuation"] = 13] = "FirstPunctuation"; + SyntaxKind[SyntaxKind["LastPunctuation"] = 62] = "LastPunctuation"; + SyntaxKind[SyntaxKind["FirstToken"] = 1] = "FirstToken"; + SyntaxKind[SyntaxKind["LastToken"] = 119] = "LastToken"; + SyntaxKind[SyntaxKind["FirstTriviaToken"] = 2] = "FirstTriviaToken"; + SyntaxKind[SyntaxKind["LastTriviaToken"] = 5] = "LastTriviaToken"; + SyntaxKind[SyntaxKind["FirstLiteralToken"] = 6] = "FirstLiteralToken"; + SyntaxKind[SyntaxKind["LastLiteralToken"] = 9] = "LastLiteralToken"; + SyntaxKind[SyntaxKind["FirstTemplateToken"] = 9] = "FirstTemplateToken"; + SyntaxKind[SyntaxKind["LastTemplateToken"] = 12] = "LastTemplateToken"; + SyntaxKind[SyntaxKind["FirstOperator"] = 21] = "FirstOperator"; + SyntaxKind[SyntaxKind["LastOperator"] = 62] = "LastOperator"; + SyntaxKind[SyntaxKind["FirstBinaryOperator"] = 23] = "FirstBinaryOperator"; + SyntaxKind[SyntaxKind["LastBinaryOperator"] = 62] = "LastBinaryOperator"; + })(ts.SyntaxKind || (ts.SyntaxKind = {})); + var SyntaxKind = ts.SyntaxKind; + (function (NodeFlags) { + NodeFlags[NodeFlags["Export"] = 1] = "Export"; + NodeFlags[NodeFlags["Ambient"] = 2] = "Ambient"; + NodeFlags[NodeFlags["QuestionMark"] = 4] = "QuestionMark"; + NodeFlags[NodeFlags["Rest"] = 8] = "Rest"; + NodeFlags[NodeFlags["Public"] = 16] = "Public"; + NodeFlags[NodeFlags["Private"] = 32] = "Private"; + NodeFlags[NodeFlags["Protected"] = 64] = "Protected"; + NodeFlags[NodeFlags["Static"] = 128] = "Static"; + NodeFlags[NodeFlags["MultiLine"] = 256] = "MultiLine"; + NodeFlags[NodeFlags["Synthetic"] = 512] = "Synthetic"; + NodeFlags[NodeFlags["DeclarationFile"] = 1024] = "DeclarationFile"; + NodeFlags[NodeFlags["Let"] = 2048] = "Let"; + NodeFlags[NodeFlags["Const"] = 4096] = "Const"; + NodeFlags[NodeFlags["OctalLiteral"] = 8192] = "OctalLiteral"; + NodeFlags[NodeFlags["Generator"] = 16384] = "Generator"; + NodeFlags[NodeFlags["YieldStar"] = 32768] = "YieldStar"; + NodeFlags[NodeFlags["Modifier"] = 243] = "Modifier"; + NodeFlags[NodeFlags["AccessibilityModifier"] = 112] = "AccessibilityModifier"; + NodeFlags[NodeFlags["BlockScoped"] = 6144] = "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"; + })(ts.ParserContextFlags || (ts.ParserContextFlags = {})); + var ParserContextFlags = ts.ParserContextFlags; + (function (EmitReturnStatus) { + EmitReturnStatus[EmitReturnStatus["Succeeded"] = 0] = "Succeeded"; + EmitReturnStatus[EmitReturnStatus["AllOutputGenerationSkipped"] = 1] = "AllOutputGenerationSkipped"; + EmitReturnStatus[EmitReturnStatus["JSGeneratedWithSemanticErrors"] = 2] = "JSGeneratedWithSemanticErrors"; + EmitReturnStatus[EmitReturnStatus["DeclarationGenerationSkipped"] = 3] = "DeclarationGenerationSkipped"; + EmitReturnStatus[EmitReturnStatus["EmitErrorsEncountered"] = 4] = "EmitErrorsEncountered"; + EmitReturnStatus[EmitReturnStatus["CompilerOptionsErrors"] = 5] = "CompilerOptionsErrors"; + })(ts.EmitReturnStatus || (ts.EmitReturnStatus = {})); + var EmitReturnStatus = ts.EmitReturnStatus; + (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"; + })(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["CallSignature"] = 131072] = "CallSignature"; + SymbolFlags[SymbolFlags["ConstructSignature"] = 262144] = "ConstructSignature"; + SymbolFlags[SymbolFlags["IndexSignature"] = 524288] = "IndexSignature"; + SymbolFlags[SymbolFlags["TypeParameter"] = 1048576] = "TypeParameter"; + SymbolFlags[SymbolFlags["TypeAlias"] = 2097152] = "TypeAlias"; + SymbolFlags[SymbolFlags["ExportValue"] = 4194304] = "ExportValue"; + SymbolFlags[SymbolFlags["ExportType"] = 8388608] = "ExportType"; + SymbolFlags[SymbolFlags["ExportNamespace"] = 16777216] = "ExportNamespace"; + SymbolFlags[SymbolFlags["Import"] = 33554432] = "Import"; + SymbolFlags[SymbolFlags["Instantiated"] = 67108864] = "Instantiated"; + SymbolFlags[SymbolFlags["Merged"] = 134217728] = "Merged"; + SymbolFlags[SymbolFlags["Transient"] = 268435456] = "Transient"; + SymbolFlags[SymbolFlags["Prototype"] = 536870912] = "Prototype"; + SymbolFlags[SymbolFlags["UnionProperty"] = 1073741824] = "UnionProperty"; + SymbolFlags[SymbolFlags["Enum"] = 384] = "Enum"; + SymbolFlags[SymbolFlags["Variable"] = 3] = "Variable"; + SymbolFlags[SymbolFlags["Value"] = 107455] = "Value"; + SymbolFlags[SymbolFlags["Type"] = 3152352] = "Type"; + SymbolFlags[SymbolFlags["Namespace"] = 1536] = "Namespace"; + SymbolFlags[SymbolFlags["Module"] = 1536] = "Module"; + SymbolFlags[SymbolFlags["Accessor"] = 98304] = "Accessor"; + SymbolFlags[SymbolFlags["Signature"] = 917504] = "Signature"; + 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"] = 3258879] = "ClassExcludes"; + SymbolFlags[SymbolFlags["InterfaceExcludes"] = 3152288] = "InterfaceExcludes"; + SymbolFlags[SymbolFlags["RegularEnumExcludes"] = 3258623] = "RegularEnumExcludes"; + SymbolFlags[SymbolFlags["ConstEnumExcludes"] = 3259263] = "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"] = 2103776] = "TypeParameterExcludes"; + SymbolFlags[SymbolFlags["TypeAliasExcludes"] = 3152352] = "TypeAliasExcludes"; + SymbolFlags[SymbolFlags["ImportExcludes"] = 33554432] = "ImportExcludes"; + SymbolFlags[SymbolFlags["ModuleMember"] = 35653619] = "ModuleMember"; + SymbolFlags[SymbolFlags["ExportHasLocal"] = 944] = "ExportHasLocal"; + SymbolFlags[SymbolFlags["HasLocals"] = 1041936] = "HasLocals"; + SymbolFlags[SymbolFlags["HasExports"] = 1952] = "HasExports"; + SymbolFlags[SymbolFlags["HasMembers"] = 6240] = "HasMembers"; + SymbolFlags[SymbolFlags["IsContainer"] = 1048560] = "IsContainer"; + SymbolFlags[SymbolFlags["PropertyOrAccessor"] = 98308] = "PropertyOrAccessor"; + SymbolFlags[SymbolFlags["Export"] = 29360128] = "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"; + })(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["Intrinsic"] = 127] = "Intrinsic"; + TypeFlags[TypeFlags["StringLike"] = 258] = "StringLike"; + TypeFlags[TypeFlags["NumberLike"] = 132] = "NumberLike"; + TypeFlags[TypeFlags["ObjectType"] = 48128] = "ObjectType"; + TypeFlags[TypeFlags["Structured"] = 65025] = "Structured"; + })(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["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) { + ts.Diagnostics = { + Unterminated_string_literal: { code: 1002, category: 1 /* Error */, key: "Unterminated string literal." }, + Identifier_expected: { code: 1003, category: 1 /* Error */, key: "Identifier expected." }, + _0_expected: { code: 1005, category: 1 /* Error */, key: "'{0}' expected." }, + A_file_cannot_have_a_reference_to_itself: { code: 1006, category: 1 /* Error */, key: "A file cannot have a reference to itself." }, + Trailing_comma_not_allowed: { code: 1009, category: 1 /* Error */, key: "Trailing comma not allowed." }, + Asterisk_Slash_expected: { code: 1010, category: 1 /* Error */, key: "'*/' expected." }, + Unexpected_token: { code: 1012, category: 1 /* Error */, key: "Unexpected token." }, + Catch_clause_parameter_cannot_have_a_type_annotation: { code: 1013, category: 1 /* Error */, key: "Catch clause parameter cannot have a type annotation." }, + A_rest_parameter_must_be_last_in_a_parameter_list: { code: 1014, category: 1 /* Error */, key: "A rest parameter must be last in a parameter list." }, + Parameter_cannot_have_question_mark_and_initializer: { code: 1015, category: 1 /* Error */, key: "Parameter cannot have question mark and initializer." }, + A_required_parameter_cannot_follow_an_optional_parameter: { code: 1016, category: 1 /* Error */, key: "A required parameter cannot follow an optional parameter." }, + An_index_signature_cannot_have_a_rest_parameter: { code: 1017, category: 1 /* Error */, key: "An index signature cannot have a rest parameter." }, + An_index_signature_parameter_cannot_have_an_accessibility_modifier: { code: 1018, category: 1 /* Error */, key: "An index signature parameter cannot have an accessibility modifier." }, + An_index_signature_parameter_cannot_have_a_question_mark: { code: 1019, category: 1 /* Error */, key: "An index signature parameter cannot have a question mark." }, + An_index_signature_parameter_cannot_have_an_initializer: { code: 1020, category: 1 /* Error */, key: "An index signature parameter cannot have an initializer." }, + An_index_signature_must_have_a_type_annotation: { code: 1021, category: 1 /* Error */, key: "An index signature must have a type annotation." }, + An_index_signature_parameter_must_have_a_type_annotation: { code: 1022, category: 1 /* Error */, key: "An index signature parameter must have a type annotation." }, + An_index_signature_parameter_type_must_be_string_or_number: { code: 1023, category: 1 /* 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: 1 /* Error */, key: "A class or interface declaration can only have one 'extends' clause." }, + An_extends_clause_must_precede_an_implements_clause: { code: 1025, category: 1 /* Error */, key: "An 'extends' clause must precede an 'implements' clause." }, + A_class_can_only_extend_a_single_class: { code: 1026, category: 1 /* Error */, key: "A class can only extend a single class." }, + A_class_declaration_can_only_have_one_implements_clause: { code: 1027, category: 1 /* Error */, key: "A class declaration can only have one 'implements' clause." }, + Accessibility_modifier_already_seen: { code: 1028, category: 1 /* Error */, key: "Accessibility modifier already seen." }, + _0_modifier_must_precede_1_modifier: { code: 1029, category: 1 /* Error */, key: "'{0}' modifier must precede '{1}' modifier." }, + _0_modifier_already_seen: { code: 1030, category: 1 /* Error */, key: "'{0}' modifier already seen." }, + _0_modifier_cannot_appear_on_a_class_element: { code: 1031, category: 1 /* Error */, key: "'{0}' modifier cannot appear on a class element." }, + An_interface_declaration_cannot_have_an_implements_clause: { code: 1032, category: 1 /* Error */, key: "An interface declaration cannot have an 'implements' clause." }, + super_must_be_followed_by_an_argument_list_or_member_access: { code: 1034, category: 1 /* Error */, key: "'super' must be followed by an argument list or member access." }, + Only_ambient_modules_can_use_quoted_names: { code: 1035, category: 1 /* Error */, key: "Only ambient modules can use quoted names." }, + Statements_are_not_allowed_in_ambient_contexts: { code: 1036, category: 1 /* Error */, key: "Statements are not allowed in ambient contexts." }, + A_function_implementation_cannot_be_declared_in_an_ambient_context: { code: 1037, category: 1 /* Error */, key: "A function implementation cannot be declared in an ambient context." }, + A_declare_modifier_cannot_be_used_in_an_already_ambient_context: { code: 1038, category: 1 /* Error */, key: "A 'declare' modifier cannot be used in an already ambient context." }, + Initializers_are_not_allowed_in_ambient_contexts: { code: 1039, category: 1 /* Error */, key: "Initializers are not allowed in ambient contexts." }, + _0_modifier_cannot_appear_on_a_module_element: { code: 1044, category: 1 /* Error */, key: "'{0}' modifier cannot appear on a module element." }, + A_declare_modifier_cannot_be_used_with_an_interface_declaration: { code: 1045, category: 1 /* 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: 1 /* 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: 1 /* Error */, key: "A rest parameter cannot be optional." }, + A_rest_parameter_cannot_have_an_initializer: { code: 1048, category: 1 /* Error */, key: "A rest parameter cannot have an initializer." }, + A_set_accessor_must_have_exactly_one_parameter: { code: 1049, category: 1 /* Error */, key: "A 'set' accessor must have exactly one parameter." }, + A_set_accessor_cannot_have_an_optional_parameter: { code: 1051, category: 1 /* Error */, key: "A 'set' accessor cannot have an optional parameter." }, + A_set_accessor_parameter_cannot_have_an_initializer: { code: 1052, category: 1 /* Error */, key: "A 'set' accessor parameter cannot have an initializer." }, + A_set_accessor_cannot_have_rest_parameter: { code: 1053, category: 1 /* Error */, key: "A 'set' accessor cannot have rest parameter." }, + A_get_accessor_cannot_have_parameters: { code: 1054, category: 1 /* Error */, key: "A 'get' accessor cannot have parameters." }, + Accessors_are_only_available_when_targeting_ECMAScript_5_and_higher: { code: 1056, category: 1 /* Error */, key: "Accessors are only available when targeting ECMAScript 5 and higher." }, + Enum_member_must_have_initializer: { code: 1061, category: 1 /* Error */, key: "Enum member must have initializer." }, + An_export_assignment_cannot_be_used_in_an_internal_module: { code: 1063, category: 1 /* Error */, key: "An export assignment cannot be used in an internal module." }, + Ambient_enum_elements_can_only_have_integer_literal_initializers: { code: 1066, category: 1 /* Error */, key: "Ambient enum elements can only have integer literal initializers." }, + Unexpected_token_A_constructor_method_accessor_or_property_was_expected: { code: 1068, category: 1 /* 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: 1 /* Error */, key: "A 'declare' modifier cannot be used with an import declaration." }, + Invalid_reference_directive_syntax: { code: 1084, category: 1 /* Error */, key: "Invalid 'reference' directive syntax." }, + Octal_literals_are_not_available_when_targeting_ECMAScript_5_and_higher: { code: 1085, category: 1 /* 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: 1 /* Error */, key: "An accessor cannot be declared in an ambient context." }, + _0_modifier_cannot_appear_on_a_constructor_declaration: { code: 1089, category: 1 /* Error */, key: "'{0}' modifier cannot appear on a constructor declaration." }, + _0_modifier_cannot_appear_on_a_parameter: { code: 1090, category: 1 /* Error */, key: "'{0}' modifier cannot appear on a parameter." }, + Only_a_single_variable_declaration_is_allowed_in_a_for_in_statement: { code: 1091, category: 1 /* 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: 1 /* Error */, key: "Type parameters cannot appear on a constructor declaration." }, + Type_annotation_cannot_appear_on_a_constructor_declaration: { code: 1093, category: 1 /* Error */, key: "Type annotation cannot appear on a constructor declaration." }, + An_accessor_cannot_have_type_parameters: { code: 1094, category: 1 /* Error */, key: "An accessor cannot have type parameters." }, + A_set_accessor_cannot_have_a_return_type_annotation: { code: 1095, category: 1 /* Error */, key: "A 'set' accessor cannot have a return type annotation." }, + An_index_signature_must_have_exactly_one_parameter: { code: 1096, category: 1 /* Error */, key: "An index signature must have exactly one parameter." }, + _0_list_cannot_be_empty: { code: 1097, category: 1 /* Error */, key: "'{0}' list cannot be empty." }, + Type_parameter_list_cannot_be_empty: { code: 1098, category: 1 /* Error */, key: "Type parameter list cannot be empty." }, + Type_argument_list_cannot_be_empty: { code: 1099, category: 1 /* Error */, key: "Type argument list cannot be empty." }, + Invalid_use_of_0_in_strict_mode: { code: 1100, category: 1 /* Error */, key: "Invalid use of '{0}' in strict mode." }, + with_statements_are_not_allowed_in_strict_mode: { code: 1101, category: 1 /* Error */, key: "'with' statements are not allowed in strict mode." }, + delete_cannot_be_called_on_an_identifier_in_strict_mode: { code: 1102, category: 1 /* 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: 1 /* 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: 1 /* 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: 1 /* Error */, key: "Jump target cannot cross function boundary." }, + A_return_statement_can_only_be_used_within_a_function_body: { code: 1108, category: 1 /* Error */, key: "A 'return' statement can only be used within a function body." }, + Expression_expected: { code: 1109, category: 1 /* Error */, key: "Expression expected." }, + Type_expected: { code: 1110, category: 1 /* Error */, key: "Type expected." }, + A_constructor_implementation_cannot_be_declared_in_an_ambient_context: { code: 1111, category: 1 /* Error */, key: "A constructor implementation cannot be declared in an ambient context." }, + A_class_member_cannot_be_declared_optional: { code: 1112, category: 1 /* Error */, key: "A class member cannot be declared optional." }, + A_default_clause_cannot_appear_more_than_once_in_a_switch_statement: { code: 1113, category: 1 /* Error */, key: "A 'default' clause cannot appear more than once in a 'switch' statement." }, + Duplicate_label_0: { code: 1114, category: 1 /* Error */, key: "Duplicate label '{0}'" }, + A_continue_statement_can_only_jump_to_a_label_of_an_enclosing_iteration_statement: { code: 1115, category: 1 /* 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: 1 /* 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: 1 /* 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: 1 /* 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: 1 /* Error */, key: "An object literal cannot have property and accessor with the same name." }, + An_export_assignment_cannot_have_modifiers: { code: 1120, category: 1 /* Error */, key: "An export assignment cannot have modifiers." }, + Octal_literals_are_not_allowed_in_strict_mode: { code: 1121, category: 1 /* Error */, key: "Octal literals are not allowed in strict mode." }, + A_tuple_type_element_list_cannot_be_empty: { code: 1122, category: 1 /* Error */, key: "A tuple type element list cannot be empty." }, + Variable_declaration_list_cannot_be_empty: { code: 1123, category: 1 /* Error */, key: "Variable declaration list cannot be empty." }, + Digit_expected: { code: 1124, category: 1 /* Error */, key: "Digit expected." }, + Hexadecimal_digit_expected: { code: 1125, category: 1 /* Error */, key: "Hexadecimal digit expected." }, + Unexpected_end_of_text: { code: 1126, category: 1 /* Error */, key: "Unexpected end of text." }, + Invalid_character: { code: 1127, category: 1 /* Error */, key: "Invalid character." }, + Declaration_or_statement_expected: { code: 1128, category: 1 /* Error */, key: "Declaration or statement expected." }, + Statement_expected: { code: 1129, category: 1 /* Error */, key: "Statement expected." }, + case_or_default_expected: { code: 1130, category: 1 /* Error */, key: "'case' or 'default' expected." }, + Property_or_signature_expected: { code: 1131, category: 1 /* Error */, key: "Property or signature expected." }, + Enum_member_expected: { code: 1132, category: 1 /* Error */, key: "Enum member expected." }, + Type_reference_expected: { code: 1133, category: 1 /* Error */, key: "Type reference expected." }, + Variable_declaration_expected: { code: 1134, category: 1 /* Error */, key: "Variable declaration expected." }, + Argument_expression_expected: { code: 1135, category: 1 /* Error */, key: "Argument expression expected." }, + Property_assignment_expected: { code: 1136, category: 1 /* Error */, key: "Property assignment expected." }, + Expression_or_comma_expected: { code: 1137, category: 1 /* Error */, key: "Expression or comma expected." }, + Parameter_declaration_expected: { code: 1138, category: 1 /* Error */, key: "Parameter declaration expected." }, + Type_parameter_declaration_expected: { code: 1139, category: 1 /* Error */, key: "Type parameter declaration expected." }, + Type_argument_expected: { code: 1140, category: 1 /* Error */, key: "Type argument expected." }, + String_literal_expected: { code: 1141, category: 1 /* Error */, key: "String literal expected." }, + Line_break_not_permitted_here: { code: 1142, category: 1 /* Error */, key: "Line break not permitted here." }, + catch_or_finally_expected: { code: 1143, category: 1 /* Error */, key: "'catch' or 'finally' expected." }, + Block_or_expected: { code: 1144, category: 1 /* Error */, key: "Block or ';' expected." }, + Modifiers_not_permitted_on_index_signature_members: { code: 1145, category: 1 /* Error */, key: "Modifiers not permitted on index signature members." }, + Declaration_expected: { code: 1146, category: 1 /* Error */, key: "Declaration expected." }, + Import_declarations_in_an_internal_module_cannot_reference_an_external_module: { code: 1147, category: 1 /* 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: 1 /* Error */, key: "Cannot compile external modules unless the '--module' flag is provided." }, + Filename_0_differs_from_already_included_filename_1_only_in_casing: { code: 1149, category: 1 /* Error */, key: "Filename '{0}' differs from already included filename '{1}' only in casing" }, + new_T_cannot_be_used_to_create_an_array_Use_new_Array_T_instead: { code: 1150, category: 1 /* Error */, key: "'new T[]' cannot be used to create an array. Use 'new Array()' instead." }, + var_let_or_const_expected: { code: 1152, category: 1 /* Error */, key: "'var', 'let' or 'const' expected." }, + let_declarations_are_only_available_when_targeting_ECMAScript_6_and_higher: { code: 1153, category: 1 /* 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: 1 /* Error */, key: "'const' declarations are only available when targeting ECMAScript 6 and higher." }, + const_declarations_must_be_initialized: { code: 1155, category: 1 /* Error */, key: "'const' declarations must be initialized" }, + const_declarations_can_only_be_declared_inside_a_block: { code: 1156, category: 1 /* Error */, key: "'const' declarations can only be declared inside a block." }, + let_declarations_can_only_be_declared_inside_a_block: { code: 1157, category: 1 /* Error */, key: "'let' declarations can only be declared inside a block." }, + Invalid_template_literal_expected: { code: 1158, category: 1 /* Error */, key: "Invalid template literal; expected '}'" }, + Tagged_templates_are_only_available_when_targeting_ECMAScript_6_and_higher: { code: 1159, category: 1 /* Error */, key: "Tagged templates are only available when targeting ECMAScript 6 and higher." }, + Unterminated_template_literal: { code: 1160, category: 1 /* Error */, key: "Unterminated template literal." }, + Unterminated_regular_expression_literal: { code: 1161, category: 1 /* Error */, key: "Unterminated regular expression literal." }, + An_object_member_cannot_be_declared_optional: { code: 1162, category: 1 /* Error */, key: "An object member cannot be declared optional." }, + yield_expression_must_be_contained_within_a_generator_declaration: { code: 1163, category: 1 /* Error */, key: "'yield' expression must be contained_within a generator declaration." }, + Duplicate_identifier_0: { code: 2300, category: 1 /* Error */, key: "Duplicate identifier '{0}'." }, + Initializer_of_instance_member_variable_0_cannot_reference_identifier_1_declared_in_the_constructor: { code: 2301, category: 1 /* 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: 1 /* Error */, key: "Static members cannot reference class type parameters." }, + Circular_definition_of_import_alias_0: { code: 2303, category: 1 /* Error */, key: "Circular definition of import alias '{0}'." }, + Cannot_find_name_0: { code: 2304, category: 1 /* Error */, key: "Cannot find name '{0}'." }, + Module_0_has_no_exported_member_1: { code: 2305, category: 1 /* Error */, key: "Module '{0}' has no exported member '{1}'." }, + File_0_is_not_an_external_module: { code: 2306, category: 1 /* Error */, key: "File '{0}' is not an external module." }, + Cannot_find_external_module_0: { code: 2307, category: 1 /* Error */, key: "Cannot find external module '{0}'." }, + A_module_cannot_have_more_than_one_export_assignment: { code: 2308, category: 1 /* 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: 1 /* 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: 1 /* Error */, key: "Type '{0}' recursively references itself as a base type." }, + A_class_may_only_extend_another_class: { code: 2311, category: 1 /* Error */, key: "A class may only extend another class." }, + An_interface_may_only_extend_a_class_or_another_interface: { code: 2312, category: 1 /* 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: 1 /* 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: 1 /* Error */, key: "Generic type '{0}' requires {1} type argument(s)." }, + Type_0_is_not_generic: { code: 2315, category: 1 /* Error */, key: "Type '{0}' is not generic." }, + Global_type_0_must_be_a_class_or_interface_type: { code: 2316, category: 1 /* Error */, key: "Global type '{0}' must be a class or interface type." }, + Global_type_0_must_have_1_type_parameter_s: { code: 2317, category: 1 /* Error */, key: "Global type '{0}' must have {1} type parameter(s)." }, + Cannot_find_global_type_0: { code: 2318, category: 1 /* Error */, key: "Cannot find global type '{0}'." }, + Named_properties_0_of_types_1_and_2_are_not_identical: { code: 2319, category: 1 /* Error */, key: "Named properties '{0}' of types '{1}' and '{2}' are not identical." }, + Interface_0_cannot_simultaneously_extend_types_1_and_2: { code: 2320, category: 1 /* Error */, key: "Interface '{0}' cannot simultaneously extend types '{1}' and '{2}'." }, + Excessive_stack_depth_comparing_types_0_and_1: { code: 2321, category: 1 /* Error */, key: "Excessive stack depth comparing types '{0}' and '{1}'." }, + Type_0_is_not_assignable_to_type_1: { code: 2322, category: 1 /* Error */, key: "Type '{0}' is not assignable to type '{1}'." }, + Property_0_is_missing_in_type_1: { code: 2324, category: 1 /* Error */, key: "Property '{0}' is missing in type '{1}'." }, + Property_0_is_private_in_type_1_but_not_in_type_2: { code: 2325, category: 1 /* Error */, key: "Property '{0}' is private in type '{1}' but not in type '{2}'." }, + Types_of_property_0_are_incompatible: { code: 2326, category: 1 /* Error */, key: "Types of property '{0}' are incompatible." }, + Property_0_is_optional_in_type_1_but_required_in_type_2: { code: 2327, category: 1 /* 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: 1 /* Error */, key: "Types of parameters '{0}' and '{1}' are incompatible." }, + Index_signature_is_missing_in_type_0: { code: 2329, category: 1 /* Error */, key: "Index signature is missing in type '{0}'." }, + Index_signatures_are_incompatible: { code: 2330, category: 1 /* Error */, key: "Index signatures are incompatible." }, + this_cannot_be_referenced_in_a_module_body: { code: 2331, category: 1 /* Error */, key: "'this' cannot be referenced in a module body." }, + this_cannot_be_referenced_in_current_location: { code: 2332, category: 1 /* Error */, key: "'this' cannot be referenced in current location." }, + this_cannot_be_referenced_in_constructor_arguments: { code: 2333, category: 1 /* Error */, key: "'this' cannot be referenced in constructor arguments." }, + this_cannot_be_referenced_in_a_static_property_initializer: { code: 2334, category: 1 /* Error */, key: "'this' cannot be referenced in a static property initializer." }, + super_can_only_be_referenced_in_a_derived_class: { code: 2335, category: 1 /* Error */, key: "'super' can only be referenced in a derived class." }, + super_cannot_be_referenced_in_constructor_arguments: { code: 2336, category: 1 /* 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: 1 /* 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: 1 /* 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: 1 /* 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: 1 /* 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: 1 /* Error */, key: "Property '{0}' is private and only accessible within class '{1}'." }, + An_index_expression_argument_must_be_of_type_string_number_or_any: { code: 2342, category: 1 /* Error */, key: "An index expression argument must be of type 'string', 'number', or 'any'." }, + Type_0_does_not_satisfy_the_constraint_1: { code: 2344, category: 1 /* 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: 1 /* 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: 1 /* Error */, key: "Supplied parameters do not match any signature of call target." }, + Untyped_function_calls_may_not_accept_type_arguments: { code: 2347, category: 1 /* 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: 1 /* 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: 1 /* 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: 1 /* 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: 1 /* 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: 1 /* Error */, key: "Neither type '{0}' nor type '{1}' is assignable to the other." }, + No_best_common_type_exists_among_return_expressions: { code: 2354, category: 1 /* 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: 1 /* 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: 1 /* 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: 1 /* 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: 1 /* 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: 1 /* 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_types_any_string_or_number: { code: 2360, category: 1 /* Error */, key: "The left-hand side of an 'in' expression must be of types 'any', 'string' or 'number'." }, + The_right_hand_side_of_an_in_expression_must_be_of_type_any_an_object_type_or_a_type_parameter: { code: 2361, category: 1 /* 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: 1 /* 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: 1 /* 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: 1 /* Error */, key: "Invalid left-hand side of assignment expression." }, + Operator_0_cannot_be_applied_to_types_1_and_2: { code: 2365, category: 1 /* Error */, key: "Operator '{0}' cannot be applied to types '{1}' and '{2}'." }, + Type_parameter_name_cannot_be_0: { code: 2368, category: 1 /* Error */, key: "Type parameter name cannot be '{0}'" }, + A_parameter_property_is_only_allowed_in_a_constructor_implementation: { code: 2369, category: 1 /* Error */, key: "A parameter property is only allowed in a constructor implementation." }, + A_rest_parameter_must_be_of_an_array_type: { code: 2370, category: 1 /* 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: 1 /* 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: 1 /* Error */, key: "Parameter '{0}' cannot be referenced in its initializer." }, + Initializer_of_parameter_0_cannot_reference_identifier_1_declared_after_it: { code: 2373, category: 1 /* Error */, key: "Initializer of parameter '{0}' cannot reference identifier '{1}' declared after it." }, + Duplicate_string_index_signature: { code: 2374, category: 1 /* Error */, key: "Duplicate string index signature." }, + Duplicate_number_index_signature: { code: 2375, category: 1 /* 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: 1 /* 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: 1 /* 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: 1 /* 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: 1 /* Error */, key: "Getter and setter accessors do not agree in visibility." }, + get_and_set_accessor_must_have_the_same_type: { code: 2380, category: 1 /* 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: 1 /* 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: 1 /* 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: 1 /* Error */, key: "Overload signatures must all be exported or not exported." }, + Overload_signatures_must_all_be_ambient_or_non_ambient: { code: 2384, category: 1 /* Error */, key: "Overload signatures must all be ambient or non-ambient." }, + Overload_signatures_must_all_be_public_private_or_protected: { code: 2385, category: 1 /* Error */, key: "Overload signatures must all be public, private or protected." }, + Overload_signatures_must_all_be_optional_or_required: { code: 2386, category: 1 /* Error */, key: "Overload signatures must all be optional or required." }, + Function_overload_must_be_static: { code: 2387, category: 1 /* Error */, key: "Function overload must be static." }, + Function_overload_must_not_be_static: { code: 2388, category: 1 /* Error */, key: "Function overload must not be static." }, + Function_implementation_name_must_be_0: { code: 2389, category: 1 /* Error */, key: "Function implementation name must be '{0}'." }, + Constructor_implementation_is_missing: { code: 2390, category: 1 /* Error */, key: "Constructor implementation is missing." }, + Function_implementation_is_missing_or_not_immediately_following_the_declaration: { code: 2391, category: 1 /* Error */, key: "Function implementation is missing or not immediately following the declaration." }, + Multiple_constructor_implementations_are_not_allowed: { code: 2392, category: 1 /* Error */, key: "Multiple constructor implementations are not allowed." }, + Duplicate_function_implementation: { code: 2393, category: 1 /* Error */, key: "Duplicate function implementation." }, + Overload_signature_is_not_compatible_with_function_implementation: { code: 2394, category: 1 /* 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: 1 /* 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: 1 /* Error */, key: "Duplicate identifier 'arguments'. Compiler uses 'arguments' to initialize rest parameters." }, + Duplicate_identifier_i_Compiler_uses_i_to_initialize_rest_parameter: { code: 2397, category: 1 /* Error */, key: "Duplicate identifier '_i'. Compiler uses '_i' to initialize rest parameter." }, + Expression_resolves_to_variable_declaration_i_that_compiler_uses_to_initialize_rest_parameter: { code: 2398, category: 1 /* Error */, key: "Expression resolves to variable declaration '_i' that compiler uses to initialize rest parameter." }, + Duplicate_identifier_this_Compiler_uses_variable_declaration_this_to_capture_this_reference: { code: 2399, category: 1 /* 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: 1 /* 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: 1 /* 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: 1 /* 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: 1 /* 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: 1 /* 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: 1 /* 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: 1 /* 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: 1 /* 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: 1 /* 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: 1 /* 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: 1 /* 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: 1 /* 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: 1 /* 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: 1 /* Error */, key: "Numeric index type '{0}' is not assignable to string index type '{1}'." }, + Class_name_cannot_be_0: { code: 2414, category: 1 /* Error */, key: "Class name cannot be '{0}'" }, + Class_0_incorrectly_extends_base_class_1: { code: 2415, category: 1 /* Error */, key: "Class '{0}' incorrectly extends base class '{1}'." }, + Class_static_side_0_incorrectly_extends_base_class_static_side_1: { code: 2417, category: 1 /* 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: 1 /* Error */, key: "Type name '{0}' in extends clause does not reference constructor function for '{0}'." }, + Class_0_incorrectly_implements_interface_1: { code: 2420, category: 1 /* Error */, key: "Class '{0}' incorrectly implements interface '{1}'." }, + A_class_may_only_implement_another_class_or_interface: { code: 2422, category: 1 /* 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: 1 /* 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: 1 /* 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: 1 /* 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: 1 /* 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: 1 /* Error */, key: "Interface name cannot be '{0}'" }, + All_declarations_of_an_interface_must_have_identical_type_parameters: { code: 2428, category: 1 /* Error */, key: "All declarations of an interface must have identical type parameters." }, + Interface_0_incorrectly_extends_interface_1: { code: 2430, category: 1 /* Error */, key: "Interface '{0}' incorrectly extends interface '{1}'." }, + Enum_name_cannot_be_0: { code: 2431, category: 1 /* 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: 1 /* 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: 1 /* 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: 1 /* 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: 1 /* Error */, key: "Ambient external modules cannot be nested in other modules." }, + Ambient_external_module_declaration_cannot_specify_relative_module_name: { code: 2436, category: 1 /* 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: 1 /* Error */, key: "Module '{0}' is hidden by a local declaration with the same name" }, + Import_name_cannot_be_0: { code: 2438, category: 1 /* Error */, key: "Import name cannot be '{0}'" }, + Import_declaration_in_an_ambient_external_module_declaration_cannot_reference_external_module_through_relative_external_module_name: { code: 2439, category: 1 /* Error */, key: "Import 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: 1 /* 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: 1 /* 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: 1 /* 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: 1 /* 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: 1 /* 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: 1 /* 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: 1 /* 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: 1 /* 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: 1 /* Error */, key: "Block-scoped variable '{0}' used before its declaration.", isEarly: true }, + The_operand_of_an_increment_or_decrement_operator_cannot_be_a_constant: { code: 2449, category: 1 /* Error */, key: "The operand of an increment or decrement operator cannot be a constant.", isEarly: true }, + Left_hand_side_of_assignment_expression_cannot_be_a_constant: { code: 2450, category: 1 /* Error */, key: "Left-hand side of assignment expression cannot be a constant.", isEarly: true }, + Cannot_redeclare_block_scoped_variable_0: { code: 2451, category: 1 /* Error */, key: "Cannot redeclare block-scoped variable '{0}'.", isEarly: true }, + An_enum_member_cannot_have_a_numeric_name: { code: 2452, category: 1 /* 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: 1 /* 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: 1 /* 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: 1 /* Error */, key: "Type alias '{0}' circularly references itself." }, + Type_alias_name_cannot_be_0: { code: 2457, category: 1 /* Error */, key: "Type alias name cannot be '{0}'" }, + An_AMD_module_cannot_have_multiple_name_assignments: { code: 2458, category: 1 /* Error */, key: "An AMD module cannot have multiple name assignments." }, + Import_declaration_0_is_using_private_name_1: { code: 4000, category: 1 /* 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: 1 /* 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: 1 /* 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: 1 /* 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: 1 /* 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: 1 /* 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: 1 /* 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: 1 /* 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: 1 /* 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: 1 /* 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: 1 /* 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: 1 /* 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: 1 /* 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: 1 /* 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: 1 /* 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: 1 /* 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: 1 /* 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: 1 /* 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: 1 /* 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: 1 /* 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: 1 /* 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: 1 /* 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: 1 /* 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: 1 /* 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: 1 /* 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: 1 /* 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: 1 /* 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: 1 /* 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: 1 /* 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: 1 /* 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: 1 /* 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: 1 /* 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: 1 /* 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: 1 /* 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: 1 /* 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: 1 /* 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: 1 /* 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: 1 /* 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: 1 /* 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: 1 /* 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: 1 /* 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: 1 /* 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: 1 /* 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: 1 /* 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: 1 /* 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: 1 /* 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: 1 /* 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: 1 /* 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: 1 /* 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: 1 /* 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: 1 /* 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: 1 /* 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: 1 /* 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: 1 /* 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: 1 /* 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: 1 /* 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: 1 /* 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: 1 /* 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: 1 /* 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: 1 /* 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: 1 /* 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: 1 /* 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: 1 /* 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: 1 /* 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: 1 /* 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: 1 /* 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: 1 /* 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: 1 /* 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: 1 /* Error */, key: "Exported type alias '{0}' has or is using private name '{1}'." }, + Enum_declarations_must_all_be_const_or_non_const: { code: 4082, category: 1 /* Error */, key: "Enum declarations must all be const or non-const." }, + In_const_enum_declarations_member_initializer_must_be_constant_expression: { code: 4083, category: 1 /* Error */, key: "In 'const' enum declarations member initializer must be constant expression.", isEarly: true }, + 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: 4084, category: 1 /* 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." }, + Index_expression_arguments_in_const_enums_must_be_of_type_string: { code: 4085, category: 1 /* Error */, key: "Index expression arguments in 'const' enums must be of type 'string'." }, + const_enum_member_initializer_was_evaluated_to_a_non_finite_value: { code: 4086, category: 1 /* Error */, key: "'const' enum member initializer was evaluated to a non-finite value." }, + const_enum_member_initializer_was_evaluated_to_disallowed_value_NaN: { code: 4087, category: 1 /* Error */, key: "'const' enum member initializer was evaluated to disallowed value 'NaN'." }, + The_current_host_does_not_support_the_0_option: { code: 5001, category: 1 /* Error */, key: "The current host does not support the '{0}' option." }, + Cannot_find_the_common_subdirectory_path_for_the_input_files: { code: 5009, category: 1 /* Error */, key: "Cannot find the common subdirectory path for the input files." }, + Cannot_read_file_0_Colon_1: { code: 5012, category: 1 /* Error */, key: "Cannot read file '{0}': {1}" }, + Unsupported_file_encoding: { code: 5013, category: 1 /* Error */, key: "Unsupported file encoding." }, + Unknown_compiler_option_0: { code: 5023, category: 1 /* Error */, key: "Unknown compiler option '{0}'." }, + Could_not_write_file_0_Colon_1: { code: 5033, category: 1 /* Error */, key: "Could not write file '{0}': {1}" }, + Option_mapRoot_cannot_be_specified_without_specifying_sourcemap_option: { code: 5038, category: 1 /* Error */, key: "Option mapRoot cannot be specified without specifying sourcemap option." }, + Option_sourceRoot_cannot_be_specified_without_specifying_sourcemap_option: { code: 5039, category: 1 /* Error */, key: "Option sourceRoot cannot be specified without specifying sourcemap option." }, + Concatenate_and_emit_output_to_single_file: { code: 6001, category: 2 /* Message */, key: "Concatenate and emit output to single file." }, + Generates_corresponding_d_ts_file: { code: 6002, category: 2 /* Message */, key: "Generates corresponding '.d.ts' file." }, + Specifies_the_location_where_debugger_should_locate_map_files_instead_of_generated_locations: { code: 6003, category: 2 /* 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: 2 /* Message */, key: "Specifies the location where debugger should locate TypeScript files instead of source locations." }, + Watch_input_files: { code: 6005, category: 2 /* Message */, key: "Watch input files." }, + Redirect_output_structure_to_the_directory: { code: 6006, category: 2 /* Message */, key: "Redirect output structure to the directory." }, + Do_not_erase_const_enum_declarations_in_generated_code: { code: 6007, category: 2 /* 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: 2 /* Message */, key: "Do not emit outputs if any type checking errors were reported." }, + Do_not_emit_comments_to_output: { code: 6009, category: 2 /* Message */, key: "Do not emit comments to output." }, + Specify_ECMAScript_target_version_Colon_ES3_default_ES5_or_ES6_experimental: { code: 6015, category: 2 /* Message */, key: "Specify ECMAScript target version: 'ES3' (default), 'ES5', or 'ES6' (experimental)" }, + Specify_module_code_generation_Colon_commonjs_or_amd: { code: 6016, category: 2 /* Message */, key: "Specify module code generation: 'commonjs' or 'amd'" }, + Print_this_message: { code: 6017, category: 2 /* Message */, key: "Print this message." }, + Print_the_compiler_s_version: { code: 6019, category: 2 /* Message */, key: "Print the compiler's version." }, + Syntax_Colon_0: { code: 6023, category: 2 /* Message */, key: "Syntax: {0}" }, + options: { code: 6024, category: 2 /* Message */, key: "options" }, + file: { code: 6025, category: 2 /* Message */, key: "file" }, + Examples_Colon_0: { code: 6026, category: 2 /* Message */, key: "Examples: {0}" }, + Options_Colon: { code: 6027, category: 2 /* Message */, key: "Options:" }, + Version_0: { code: 6029, category: 2 /* Message */, key: "Version {0}" }, + Insert_command_line_options_and_files_from_a_file: { code: 6030, category: 2 /* Message */, key: "Insert command line options and files from a file." }, + File_change_detected_Compiling: { code: 6032, category: 2 /* Message */, key: "File change detected. Compiling..." }, + KIND: { code: 6034, category: 2 /* Message */, key: "KIND" }, + FILE: { code: 6035, category: 2 /* Message */, key: "FILE" }, + VERSION: { code: 6036, category: 2 /* Message */, key: "VERSION" }, + LOCATION: { code: 6037, category: 2 /* Message */, key: "LOCATION" }, + DIRECTORY: { code: 6038, category: 2 /* Message */, key: "DIRECTORY" }, + Compilation_complete_Watching_for_file_changes: { code: 6042, category: 2 /* Message */, key: "Compilation complete. Watching for file changes." }, + Generates_corresponding_map_file: { code: 6043, category: 2 /* Message */, key: "Generates corresponding '.map' file." }, + Compiler_option_0_expects_an_argument: { code: 6044, category: 1 /* Error */, key: "Compiler option '{0}' expects an argument." }, + Unterminated_quoted_string_in_response_file_0: { code: 6045, category: 1 /* Error */, key: "Unterminated quoted string in response file '{0}'." }, + Argument_for_module_option_must_be_commonjs_or_amd: { code: 6046, category: 1 /* Error */, key: "Argument for '--module' option must be 'commonjs' or 'amd'." }, + Argument_for_target_option_must_be_es3_es5_or_es6: { code: 6047, category: 1 /* 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: 1 /* Error */, key: "Locale must be of the form or -. For example '{0}' or '{1}'." }, + Unsupported_locale_0: { code: 6049, category: 1 /* Error */, key: "Unsupported locale '{0}'." }, + Unable_to_open_file_0: { code: 6050, category: 1 /* Error */, key: "Unable to open file '{0}'." }, + Corrupted_locale_file_0: { code: 6051, category: 1 /* Error */, key: "Corrupted locale file {0}." }, + Warn_on_expressions_and_declarations_with_an_implied_any_type: { code: 6052, category: 2 /* Message */, key: "Warn on expressions and declarations with an implied 'any' type." }, + File_0_not_found: { code: 6053, category: 1 /* Error */, key: "File '{0}' not found." }, + File_0_must_have_extension_ts_or_d_ts: { code: 6054, category: 1 /* Error */, key: "File '{0}' must have extension '.ts' or '.d.ts'." }, + Variable_0_implicitly_has_an_1_type: { code: 7005, category: 1 /* Error */, key: "Variable '{0}' implicitly has an '{1}' type." }, + Parameter_0_implicitly_has_an_1_type: { code: 7006, category: 1 /* Error */, key: "Parameter '{0}' implicitly has an '{1}' type." }, + Member_0_implicitly_has_an_1_type: { code: 7008, category: 1 /* 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: 1 /* 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: 1 /* 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: 1 /* 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: 1 /* 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: 1 /* 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: 1 /* 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: 1 /* Error */, key: "Object literal's property '{0}' implicitly has an '{1}' type." }, + Rest_parameter_0_implicitly_has_an_any_type: { code: 7019, category: 1 /* 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: 1 /* 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: 1 /* 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: 1 /* 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: 1 /* 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: 1 /* 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: 1 /* Error */, key: "You cannot rename this element." } + }; +})(ts || (ts = {})); +var ts; +(function (ts) { + var textToToken = { + "any": 109 /* AnyKeyword */, + "boolean": 110 /* BooleanKeyword */, + "break": 64 /* BreakKeyword */, + "case": 65 /* CaseKeyword */, + "catch": 66 /* CatchKeyword */, + "class": 67 /* ClassKeyword */, + "continue": 69 /* ContinueKeyword */, + "const": 68 /* ConstKeyword */, + "constructor": 111 /* ConstructorKeyword */, + "debugger": 70 /* DebuggerKeyword */, + "declare": 112 /* DeclareKeyword */, + "default": 71 /* DefaultKeyword */, + "delete": 72 /* DeleteKeyword */, + "do": 73 /* DoKeyword */, + "else": 74 /* ElseKeyword */, + "enum": 75 /* EnumKeyword */, + "export": 76 /* ExportKeyword */, + "extends": 77 /* ExtendsKeyword */, + "false": 78 /* FalseKeyword */, + "finally": 79 /* FinallyKeyword */, + "for": 80 /* ForKeyword */, + "function": 81 /* FunctionKeyword */, + "get": 113 /* GetKeyword */, + "if": 82 /* IfKeyword */, + "implements": 100 /* ImplementsKeyword */, + "import": 83 /* ImportKeyword */, + "in": 84 /* InKeyword */, + "instanceof": 85 /* InstanceOfKeyword */, + "interface": 101 /* InterfaceKeyword */, + "let": 102 /* LetKeyword */, + "module": 114 /* ModuleKeyword */, + "new": 86 /* NewKeyword */, + "null": 87 /* NullKeyword */, + "number": 116 /* NumberKeyword */, + "package": 103 /* PackageKeyword */, + "private": 104 /* PrivateKeyword */, + "protected": 105 /* ProtectedKeyword */, + "public": 106 /* PublicKeyword */, + "require": 115 /* RequireKeyword */, + "return": 88 /* ReturnKeyword */, + "set": 117 /* SetKeyword */, + "static": 107 /* StaticKeyword */, + "string": 118 /* StringKeyword */, + "super": 89 /* SuperKeyword */, + "switch": 90 /* SwitchKeyword */, + "this": 91 /* ThisKeyword */, + "throw": 92 /* ThrowKeyword */, + "true": 93 /* TrueKeyword */, + "try": 94 /* TryKeyword */, + "type": 119 /* TypeKeyword */, + "typeof": 95 /* TypeOfKeyword */, + "var": 96 /* VarKeyword */, + "void": 97 /* VoidKeyword */, + "while": 98 /* WhileKeyword */, + "with": 99 /* WithKeyword */, + "yield": 108 /* YieldKeyword */, + "{": 13 /* OpenBraceToken */, + "}": 14 /* CloseBraceToken */, + "(": 15 /* OpenParenToken */, + ")": 16 /* CloseParenToken */, + "[": 17 /* OpenBracketToken */, + "]": 18 /* CloseBracketToken */, + ".": 19 /* DotToken */, + "...": 20 /* DotDotDotToken */, + ";": 21 /* SemicolonToken */, + ",": 22 /* CommaToken */, + "<": 23 /* LessThanToken */, + ">": 24 /* GreaterThanToken */, + "<=": 25 /* LessThanEqualsToken */, + ">=": 26 /* GreaterThanEqualsToken */, + "==": 27 /* EqualsEqualsToken */, + "!=": 28 /* ExclamationEqualsToken */, + "===": 29 /* EqualsEqualsEqualsToken */, + "!==": 30 /* ExclamationEqualsEqualsToken */, + "=>": 31 /* EqualsGreaterThanToken */, + "+": 32 /* PlusToken */, + "-": 33 /* MinusToken */, + "*": 34 /* AsteriskToken */, + "/": 35 /* SlashToken */, + "%": 36 /* PercentToken */, + "++": 37 /* PlusPlusToken */, + "--": 38 /* MinusMinusToken */, + "<<": 39 /* LessThanLessThanToken */, + ">>": 40 /* GreaterThanGreaterThanToken */, + ">>>": 41 /* GreaterThanGreaterThanGreaterThanToken */, + "&": 42 /* AmpersandToken */, + "|": 43 /* BarToken */, + "^": 44 /* CaretToken */, + "!": 45 /* ExclamationToken */, + "~": 46 /* TildeToken */, + "&&": 47 /* AmpersandAmpersandToken */, + "||": 48 /* BarBarToken */, + "?": 49 /* QuestionToken */, + ":": 50 /* ColonToken */, + "=": 51 /* EqualsToken */, + "+=": 52 /* PlusEqualsToken */, + "-=": 53 /* MinusEqualsToken */, + "*=": 54 /* AsteriskEqualsToken */, + "/=": 55 /* SlashEqualsToken */, + "%=": 56 /* PercentEqualsToken */, + "<<=": 57 /* LessThanLessThanEqualsToken */, + ">>=": 58 /* GreaterThanGreaterThanEqualsToken */, + ">>>=": 59 /* GreaterThanGreaterThanGreaterThanEqualsToken */, + "&=": 60 /* AmpersandEqualsToken */, + "|=": 61 /* BarEqualsToken */, + "^=": 62 /* CaretEqualsToken */ + }; + 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 === 0 /* ES3 */ ? lookupInUnicodeMap(code, unicodeES3IdentifierStart) : lookupInUnicodeMap(code, unicodeES5IdentifierStart); + } + function isUnicodeIdentifierPart(code, languageVersion) { + return languageVersion === 0 /* ES3 */ ? lookupInUnicodeMap(code, unicodeES3IdentifierPart) : lookupInUnicodeMap(code, unicodeES5IdentifierPart); + } + function makeReverseMap(source) { + var result = []; + for (var name in source) { + if (source.hasOwnProperty(name)) { + result[source[name]] = name; + } + } + return result; + } + var tokenStrings = makeReverseMap(textToToken); + function tokenToString(t) { + return tokenStrings[t]; + } + ts.tokenToString = tokenToString; + 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 /* carriageReturn */: + if (text.charCodeAt(pos) === 10 /* lineFeed */) { + pos++; + } + case 10 /* lineFeed */: + result.push(lineStart); + lineStart = pos; + break; + default: + if (ch > 127 /* maxAsciiCharacter */ && isLineBreak(ch)) { + result.push(lineStart); + lineStart = pos; + } + break; + } + } + result.push(lineStart); + return result; + } + ts.computeLineStarts = computeLineStarts; + function getPositionFromLineAndCharacter(lineStarts, line, character) { + ts.Debug.assert(line > 0); + return lineStarts[line - 1] + character - 1; + } + ts.getPositionFromLineAndCharacter = getPositionFromLineAndCharacter; + function getLineAndCharacterOfPosition(lineStarts, position) { + var lineNumber = ts.binarySearch(lineStarts, position); + if (lineNumber < 0) { + lineNumber = (~lineNumber) - 1; + } + return { + line: lineNumber + 1, + character: position - lineStarts[lineNumber] + 1 + }; + } + ts.getLineAndCharacterOfPosition = getLineAndCharacterOfPosition; + function positionToLineAndCharacter(text, pos) { + var lineStarts = computeLineStarts(text); + return getLineAndCharacterOfPosition(lineStarts, pos); + } + ts.positionToLineAndCharacter = positionToLineAndCharacter; + var hasOwnProperty = Object.prototype.hasOwnProperty; + function isWhiteSpace(ch) { + return ch === 32 /* space */ || ch === 9 /* tab */ || ch === 11 /* verticalTab */ || ch === 12 /* formFeed */ || ch === 160 /* nonBreakingSpace */ || ch === 5760 /* ogham */ || ch >= 8192 /* enQuad */ && ch <= 8203 /* zeroWidthSpace */ || ch === 8239 /* narrowNoBreakSpace */ || ch === 8287 /* mathematicalSpace */ || ch === 12288 /* ideographicSpace */ || ch === 65279 /* byteOrderMark */; + } + ts.isWhiteSpace = isWhiteSpace; + function isLineBreak(ch) { + return ch === 10 /* lineFeed */ || ch === 13 /* carriageReturn */ || ch === 8232 /* lineSeparator */ || ch === 8233 /* paragraphSeparator */ || ch === 133 /* nextLine */; + } + ts.isLineBreak = isLineBreak; + function isDigit(ch) { + return ch >= 48 /* _0 */ && ch <= 57 /* _9 */; + } + function isOctalDigit(ch) { + return ch >= 48 /* _0 */ && ch <= 55 /* _7 */; + } + ts.isOctalDigit = isOctalDigit; + function skipTrivia(text, pos, stopAfterLineBreak) { + while (true) { + var ch = text.charCodeAt(pos); + switch (ch) { + case 13 /* carriageReturn */: + if (text.charCodeAt(pos + 1) === 10 /* lineFeed */) + pos++; + case 10 /* lineFeed */: + pos++; + if (stopAfterLineBreak) + return pos; + continue; + case 9 /* tab */: + case 11 /* verticalTab */: + case 12 /* formFeed */: + case 32 /* space */: + pos++; + continue; + case 47 /* slash */: + if (text.charCodeAt(pos + 1) === 47 /* slash */) { + pos += 2; + while (pos < text.length) { + if (isLineBreak(text.charCodeAt(pos))) { + break; + } + pos++; + } + continue; + } + if (text.charCodeAt(pos + 1) === 42 /* asterisk */) { + pos += 2; + while (pos < text.length) { + if (text.charCodeAt(pos) === 42 /* asterisk */ && text.charCodeAt(pos + 1) === 47 /* slash */) { + pos += 2; + break; + } + pos++; + } + continue; + } + break; + default: + if (ch > 127 /* maxAsciiCharacter */ && (isWhiteSpace(ch) || isLineBreak(ch))) { + pos++; + continue; + } + break; + } + return pos; + } + } + ts.skipTrivia = skipTrivia; + function getCommentRanges(text, pos, trailing) { + var result; + var collecting = trailing || pos === 0; + while (true) { + var ch = text.charCodeAt(pos); + switch (ch) { + case 13 /* carriageReturn */: + if (text.charCodeAt(pos + 1) === 10 /* lineFeed */) + pos++; + case 10 /* lineFeed */: + pos++; + if (trailing) { + return result; + } + collecting = true; + if (result && result.length) { + result[result.length - 1].hasTrailingNewLine = true; + } + continue; + case 9 /* tab */: + case 11 /* verticalTab */: + case 12 /* formFeed */: + case 32 /* space */: + pos++; + continue; + case 47 /* slash */: + var nextChar = text.charCodeAt(pos + 1); + var hasTrailingNewLine = false; + if (nextChar === 47 /* slash */ || nextChar === 42 /* asterisk */) { + var startPos = pos; + pos += 2; + if (nextChar === 47 /* slash */) { + while (pos < text.length) { + if (isLineBreak(text.charCodeAt(pos))) { + hasTrailingNewLine = true; + break; + } + pos++; + } + } + else { + while (pos < text.length) { + if (text.charCodeAt(pos) === 42 /* asterisk */ && text.charCodeAt(pos + 1) === 47 /* slash */) { + pos += 2; + break; + } + pos++; + } + } + if (collecting) { + if (!result) + result = []; + result.push({ pos: startPos, end: pos, hasTrailingNewLine: hasTrailingNewLine }); + } + continue; + } + break; + default: + if (ch > 127 /* maxAsciiCharacter */ && (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 /* A */ && ch <= 90 /* Z */ || ch >= 97 /* a */ && ch <= 122 /* z */ || ch === 36 /* $ */ || ch === 95 /* _ */ || ch > 127 /* maxAsciiCharacter */ && isUnicodeIdentifierStart(ch, languageVersion); + } + ts.isIdentifierStart = isIdentifierStart; + function isIdentifierPart(ch, languageVersion) { + return ch >= 65 /* A */ && ch <= 90 /* Z */ || ch >= 97 /* a */ && ch <= 122 /* z */ || ch >= 48 /* _0 */ && ch <= 57 /* _9 */ || ch === 36 /* $ */ || ch === 95 /* _ */ || ch > 127 /* maxAsciiCharacter */ && isUnicodeIdentifierPart(ch, languageVersion); + } + ts.isIdentifierPart = isIdentifierPart; + function createScanner(languageVersion, skipTrivia, text, onError, onComment) { + var pos; + var len; + var startPos; + var tokenPos; + var token; + var tokenValue; + var precedingLineBreak; + function error(message) { + if (onError) { + onError(message); + } + } + function isIdentifierStart(ch) { + return ch >= 65 /* A */ && ch <= 90 /* Z */ || ch >= 97 /* a */ && ch <= 122 /* z */ || ch === 36 /* $ */ || ch === 95 /* _ */ || ch > 127 /* maxAsciiCharacter */ && isUnicodeIdentifierStart(ch, languageVersion); + } + function isIdentifierPart(ch) { + return ch >= 65 /* A */ && ch <= 90 /* Z */ || ch >= 97 /* a */ && ch <= 122 /* z */ || ch >= 48 /* _0 */ && ch <= 57 /* _9 */ || ch === 36 /* $ */ || ch === 95 /* _ */ || ch > 127 /* maxAsciiCharacter */ && isUnicodeIdentifierPart(ch, languageVersion); + } + function scanNumber() { + var start = pos; + while (isDigit(text.charCodeAt(pos))) + pos++; + if (text.charCodeAt(pos) === 46 /* dot */) { + pos++; + while (isDigit(text.charCodeAt(pos))) + pos++; + } + var end = pos; + if (text.charCodeAt(pos) === 69 /* E */ || text.charCodeAt(pos) === 101 /* e */) { + pos++; + if (text.charCodeAt(pos) === 43 /* plus */ || text.charCodeAt(pos) === 45 /* minus */) + 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 scanHexDigits(count, mustMatchCount) { + var digits = 0; + var value = 0; + while (digits < count || !mustMatchCount) { + var ch = text.charCodeAt(pos); + if (ch >= 48 /* _0 */ && ch <= 57 /* _9 */) { + value = value * 16 + ch - 48 /* _0 */; + } + else if (ch >= 65 /* A */ && ch <= 70 /* F */) { + value = value * 16 + ch - 65 /* A */ + 10; + } + else if (ch >= 97 /* a */ && ch <= 102 /* f */) { + value = value * 16 + ch - 97 /* a */ + 10; + } + else { + break; + } + pos++; + digits++; + } + if (digits < count) { + 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); + 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 /* backslash */) { + result += text.substring(start, pos); + result += scanEscapeSequence(); + start = pos; + continue; + } + if (isLineBreak(ch)) { + result += text.substring(start, pos); + error(ts.Diagnostics.Unterminated_string_literal); + break; + } + pos++; + } + return result; + } + function scanTemplateAndSetTokenValue() { + var startedWithBacktick = text.charCodeAt(pos) === 96 /* backtick */; + pos++; + var start = pos; + var contents = ""; + var resultingToken; + while (true) { + if (pos >= len) { + contents += text.substring(start, pos); + error(ts.Diagnostics.Unterminated_template_literal); + resultingToken = startedWithBacktick ? 9 /* NoSubstitutionTemplateLiteral */ : 12 /* TemplateTail */; + break; + } + var currChar = text.charCodeAt(pos); + if (currChar === 96 /* backtick */) { + contents += text.substring(start, pos); + pos++; + resultingToken = startedWithBacktick ? 9 /* NoSubstitutionTemplateLiteral */ : 12 /* TemplateTail */; + break; + } + if (currChar === 36 /* $ */ && pos + 1 < len && text.charCodeAt(pos + 1) === 123 /* openBrace */) { + contents += text.substring(start, pos); + pos += 2; + resultingToken = startedWithBacktick ? 10 /* TemplateHead */ : 11 /* TemplateMiddle */; + break; + } + if (currChar === 92 /* backslash */) { + contents += text.substring(start, pos); + contents += scanEscapeSequence(); + start = pos; + continue; + } + if (currChar === 13 /* carriageReturn */) { + contents += text.substring(start, pos); + if (pos + 1 < len && text.charCodeAt(pos + 1) === 10 /* lineFeed */) { + pos++; + } + 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 /* _0 */: + return "\0"; + case 98 /* b */: + return "\b"; + case 116 /* t */: + return "\t"; + case 110 /* n */: + return "\n"; + case 118 /* v */: + return "\v"; + case 102 /* f */: + return "\f"; + case 114 /* r */: + return "\r"; + case 39 /* singleQuote */: + return "\'"; + case 34 /* doubleQuote */: + return "\""; + case 120 /* x */: + case 117 /* u */: + var ch = scanHexDigits(ch === 120 /* x */ ? 2 : 4, true); + if (ch >= 0) { + return String.fromCharCode(ch); + } + else { + error(ts.Diagnostics.Hexadecimal_digit_expected); + return ""; + } + case 13 /* carriageReturn */: + if (pos < len && text.charCodeAt(pos) === 10 /* lineFeed */) { + pos++; + } + case 10 /* lineFeed */: + case 8232 /* lineSeparator */: + case 8233 /* paragraphSeparator */: + return ""; + default: + return String.fromCharCode(ch); + } + } + function peekUnicodeEscape() { + if (pos + 5 < len && text.charCodeAt(pos + 1) === 117 /* u */) { + var start = pos; + pos += 2; + var value = scanHexDigits(4, true); + 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 /* backslash */) { + 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 /* a */ && ch <= 122 /* z */ && hasOwnProperty.call(textToToken, tokenValue)) { + return token = textToToken[tokenValue]; + } + } + return token = 63 /* Identifier */; + } + function scan() { + startPos = pos; + precedingLineBreak = false; + while (true) { + tokenPos = pos; + if (pos >= len) { + return token = 1 /* EndOfFileToken */; + } + var ch = text.charCodeAt(pos); + switch (ch) { + case 10 /* lineFeed */: + case 13 /* carriageReturn */: + precedingLineBreak = true; + if (skipTrivia) { + pos++; + continue; + } + else { + if (ch === 13 /* carriageReturn */ && pos + 1 < len && text.charCodeAt(pos + 1) === 10 /* lineFeed */) { + pos += 2; + } + else { + pos++; + } + return token = 4 /* NewLineTrivia */; + } + case 9 /* tab */: + case 11 /* verticalTab */: + case 12 /* formFeed */: + case 32 /* space */: + if (skipTrivia) { + pos++; + continue; + } + else { + while (pos < len && isWhiteSpace(text.charCodeAt(pos))) { + pos++; + } + return token = 5 /* WhitespaceTrivia */; + } + case 33 /* exclamation */: + if (text.charCodeAt(pos + 1) === 61 /* equals */) { + if (text.charCodeAt(pos + 2) === 61 /* equals */) { + return pos += 3, token = 30 /* ExclamationEqualsEqualsToken */; + } + return pos += 2, token = 28 /* ExclamationEqualsToken */; + } + return pos++, token = 45 /* ExclamationToken */; + case 34 /* doubleQuote */: + case 39 /* singleQuote */: + tokenValue = scanString(); + return token = 7 /* StringLiteral */; + case 96 /* backtick */: + return token = scanTemplateAndSetTokenValue(); + case 37 /* percent */: + if (text.charCodeAt(pos + 1) === 61 /* equals */) { + return pos += 2, token = 56 /* PercentEqualsToken */; + } + return pos++, token = 36 /* PercentToken */; + case 38 /* ampersand */: + if (text.charCodeAt(pos + 1) === 38 /* ampersand */) { + return pos += 2, token = 47 /* AmpersandAmpersandToken */; + } + if (text.charCodeAt(pos + 1) === 61 /* equals */) { + return pos += 2, token = 60 /* AmpersandEqualsToken */; + } + return pos++, token = 42 /* AmpersandToken */; + case 40 /* openParen */: + return pos++, token = 15 /* OpenParenToken */; + case 41 /* closeParen */: + return pos++, token = 16 /* CloseParenToken */; + case 42 /* asterisk */: + if (text.charCodeAt(pos + 1) === 61 /* equals */) { + return pos += 2, token = 54 /* AsteriskEqualsToken */; + } + return pos++, token = 34 /* AsteriskToken */; + case 43 /* plus */: + if (text.charCodeAt(pos + 1) === 43 /* plus */) { + return pos += 2, token = 37 /* PlusPlusToken */; + } + if (text.charCodeAt(pos + 1) === 61 /* equals */) { + return pos += 2, token = 52 /* PlusEqualsToken */; + } + return pos++, token = 32 /* PlusToken */; + case 44 /* comma */: + return pos++, token = 22 /* CommaToken */; + case 45 /* minus */: + if (text.charCodeAt(pos + 1) === 45 /* minus */) { + return pos += 2, token = 38 /* MinusMinusToken */; + } + if (text.charCodeAt(pos + 1) === 61 /* equals */) { + return pos += 2, token = 53 /* MinusEqualsToken */; + } + return pos++, token = 33 /* MinusToken */; + case 46 /* dot */: + if (isDigit(text.charCodeAt(pos + 1))) { + tokenValue = "" + scanNumber(); + return token = 6 /* NumericLiteral */; + } + if (text.charCodeAt(pos + 1) === 46 /* dot */ && text.charCodeAt(pos + 2) === 46 /* dot */) { + return pos += 3, token = 20 /* DotDotDotToken */; + } + return pos++, token = 19 /* DotToken */; + case 47 /* slash */: + if (text.charCodeAt(pos + 1) === 47 /* slash */) { + pos += 2; + while (pos < len) { + if (isLineBreak(text.charCodeAt(pos))) { + break; + } + pos++; + } + if (onComment) { + onComment(tokenPos, pos); + } + if (skipTrivia) { + continue; + } + else { + return token = 2 /* SingleLineCommentTrivia */; + } + } + if (text.charCodeAt(pos + 1) === 42 /* asterisk */) { + pos += 2; + var commentClosed = false; + while (pos < len) { + var ch = text.charCodeAt(pos); + if (ch === 42 /* asterisk */ && text.charCodeAt(pos + 1) === 47 /* slash */) { + pos += 2; + commentClosed = true; + break; + } + if (isLineBreak(ch)) { + precedingLineBreak = true; + } + pos++; + } + if (!commentClosed) { + error(ts.Diagnostics.Asterisk_Slash_expected); + } + if (onComment) { + onComment(tokenPos, pos); + } + if (skipTrivia) { + continue; + } + else { + return token = 3 /* MultiLineCommentTrivia */; + } + } + if (text.charCodeAt(pos + 1) === 61 /* equals */) { + return pos += 2, token = 55 /* SlashEqualsToken */; + } + return pos++, token = 35 /* SlashToken */; + case 48 /* _0 */: + if (pos + 2 < len && (text.charCodeAt(pos + 1) === 88 /* X */ || text.charCodeAt(pos + 1) === 120 /* x */)) { + pos += 2; + var value = scanHexDigits(1, false); + if (value < 0) { + error(ts.Diagnostics.Hexadecimal_digit_expected); + value = 0; + } + tokenValue = "" + value; + return token = 6 /* NumericLiteral */; + } + if (pos + 1 < len && isOctalDigit(text.charCodeAt(pos + 1))) { + tokenValue = "" + scanOctalDigits(); + return token = 6 /* NumericLiteral */; + } + case 49 /* _1 */: + case 50 /* _2 */: + case 51 /* _3 */: + case 52 /* _4 */: + case 53 /* _5 */: + case 54 /* _6 */: + case 55 /* _7 */: + case 56 /* _8 */: + case 57 /* _9 */: + tokenValue = "" + scanNumber(); + return token = 6 /* NumericLiteral */; + case 58 /* colon */: + return pos++, token = 50 /* ColonToken */; + case 59 /* semicolon */: + return pos++, token = 21 /* SemicolonToken */; + case 60 /* lessThan */: + if (text.charCodeAt(pos + 1) === 60 /* lessThan */) { + if (text.charCodeAt(pos + 2) === 61 /* equals */) { + return pos += 3, token = 57 /* LessThanLessThanEqualsToken */; + } + return pos += 2, token = 39 /* LessThanLessThanToken */; + } + if (text.charCodeAt(pos + 1) === 61 /* equals */) { + return pos += 2, token = 25 /* LessThanEqualsToken */; + } + return pos++, token = 23 /* LessThanToken */; + case 61 /* equals */: + if (text.charCodeAt(pos + 1) === 61 /* equals */) { + if (text.charCodeAt(pos + 2) === 61 /* equals */) { + return pos += 3, token = 29 /* EqualsEqualsEqualsToken */; + } + return pos += 2, token = 27 /* EqualsEqualsToken */; + } + if (text.charCodeAt(pos + 1) === 62 /* greaterThan */) { + return pos += 2, token = 31 /* EqualsGreaterThanToken */; + } + return pos++, token = 51 /* EqualsToken */; + case 62 /* greaterThan */: + return pos++, token = 24 /* GreaterThanToken */; + case 63 /* question */: + return pos++, token = 49 /* QuestionToken */; + case 91 /* openBracket */: + return pos++, token = 17 /* OpenBracketToken */; + case 93 /* closeBracket */: + return pos++, token = 18 /* CloseBracketToken */; + case 94 /* caret */: + if (text.charCodeAt(pos + 1) === 61 /* equals */) { + return pos += 2, token = 62 /* CaretEqualsToken */; + } + return pos++, token = 44 /* CaretToken */; + case 123 /* openBrace */: + return pos++, token = 13 /* OpenBraceToken */; + case 124 /* bar */: + if (text.charCodeAt(pos + 1) === 124 /* bar */) { + return pos += 2, token = 48 /* BarBarToken */; + } + if (text.charCodeAt(pos + 1) === 61 /* equals */) { + return pos += 2, token = 61 /* BarEqualsToken */; + } + return pos++, token = 43 /* BarToken */; + case 125 /* closeBrace */: + return pos++, token = 14 /* CloseBraceToken */; + case 126 /* tilde */: + return pos++, token = 46 /* TildeToken */; + case 92 /* backslash */: + var ch = peekUnicodeEscape(); + if (ch >= 0 && isIdentifierStart(ch)) { + pos += 6; + tokenValue = String.fromCharCode(ch) + scanIdentifierParts(); + return token = getIdentifierToken(); + } + error(ts.Diagnostics.Invalid_character); + return pos++, token = 0 /* Unknown */; + default: + if (isIdentifierStart(ch)) { + pos++; + while (pos < len && isIdentifierPart(ch = text.charCodeAt(pos))) + pos++; + tokenValue = text.substring(tokenPos, pos); + if (ch === 92 /* backslash */) { + 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 /* Unknown */; + } + } + } + function reScanGreaterToken() { + if (token === 24 /* GreaterThanToken */) { + if (text.charCodeAt(pos) === 62 /* greaterThan */) { + if (text.charCodeAt(pos + 1) === 62 /* greaterThan */) { + if (text.charCodeAt(pos + 2) === 61 /* equals */) { + return pos += 3, token = 59 /* GreaterThanGreaterThanGreaterThanEqualsToken */; + } + return pos += 2, token = 41 /* GreaterThanGreaterThanGreaterThanToken */; + } + if (text.charCodeAt(pos + 1) === 61 /* equals */) { + return pos += 2, token = 58 /* GreaterThanGreaterThanEqualsToken */; + } + return pos++, token = 40 /* GreaterThanGreaterThanToken */; + } + if (text.charCodeAt(pos) === 61 /* equals */) { + return pos++, token = 26 /* GreaterThanEqualsToken */; + } + } + return token; + } + function reScanSlashToken() { + if (token === 35 /* SlashToken */ || token === 55 /* SlashEqualsToken */) { + var p = tokenPos + 1; + var inEscape = false; + var inCharacterClass = false; + while (true) { + if (p >= len) { + error(ts.Diagnostics.Unterminated_regular_expression_literal); + break; + } + var ch = text.charCodeAt(p); + if (isLineBreak(ch)) { + error(ts.Diagnostics.Unterminated_regular_expression_literal); + break; + } + if (inEscape) { + inEscape = false; + } + else if (ch === 47 /* slash */ && !inCharacterClass) { + p++; + break; + } + else if (ch === 91 /* openBracket */) { + inCharacterClass = true; + } + else if (ch === 92 /* backslash */) { + inEscape = true; + } + else if (ch === 93 /* closeBracket */) { + inCharacterClass = false; + } + p++; + } + while (p < len && isIdentifierPart(text.charCodeAt(p))) { + p++; + } + pos = p; + tokenValue = text.substring(tokenPos, pos); + token = 8 /* RegularExpressionLiteral */; + } + return token; + } + function reScanTemplateToken() { + ts.Debug.assert(token === 14 /* CloseBraceToken */, "'reScanTemplateToken' should only be called on a '}'"); + pos = tokenPos; + return token = scanTemplateAndSetTokenValue(); + } + function tryScan(callback) { + var savePos = pos; + var saveStartPos = startPos; + var saveTokenPos = tokenPos; + var saveToken = token; + var saveTokenValue = tokenValue; + var savePrecedingLineBreak = precedingLineBreak; + var result = callback(); + if (!result) { + pos = savePos; + startPos = saveStartPos; + tokenPos = saveTokenPos; + token = saveToken; + tokenValue = saveTokenValue; + precedingLineBreak = savePrecedingLineBreak; + } + return result; + } + function setText(newText) { + text = newText || ""; + len = text.length; + setTextPos(0); + } + function setTextPos(textPos) { + pos = textPos; + startPos = textPos; + tokenPos = textPos; + token = 0 /* Unknown */; + 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; }, + hasPrecedingLineBreak: function () { return precedingLineBreak; }, + isIdentifier: function () { return token === 63 /* Identifier */ || token > 99 /* LastReservedWord */; }, + isReservedWord: function () { return token >= 64 /* FirstReservedWord */ && token <= 99 /* LastReservedWord */; }, + reScanGreaterToken: reScanGreaterToken, + reScanSlashToken: reScanSlashToken, + reScanTemplateToken: reScanTemplateToken, + scan: scan, + setText: setText, + setTextPos: setTextPos, + tryScan: tryScan + }; + } + ts.createScanner = createScanner; +})(ts || (ts = {})); +var ts; +(function (ts) { + var nodeConstructors = new Array(200 /* Count */); + function getNodeConstructor(kind) { + return nodeConstructors[kind] || (nodeConstructors[kind] = ts.objectAllocator.getNodeConstructor(kind)); + } + ts.getNodeConstructor = getNodeConstructor; + function createRootNode(kind, pos, end, flags) { + var node = new (getNodeConstructor(kind))(); + node.pos = pos; + node.end = end; + node.flags = flags; + return node; + } + function getSourceFileOfNode(node) { + while (node && node.kind !== 197 /* SourceFile */) + node = node.parent; + return node; + } + ts.getSourceFileOfNode = getSourceFileOfNode; + function nodePosToString(node) { + var file = getSourceFileOfNode(node); + var loc = file.getLineAndCharacterFromPosition(node.pos); + return file.filename + "(" + loc.line + "," + loc.character + ")"; + } + ts.nodePosToString = nodePosToString; + function getStartPosOfNode(node) { + return node.pos; + } + ts.getStartPosOfNode = getStartPosOfNode; + function getTokenPosOfNode(node, sourceFile) { + if (node.pos === node.end) { + return node.pos; + } + return ts.skipTrivia((sourceFile || getSourceFileOfNode(node)).text, node.pos); + } + ts.getTokenPosOfNode = getTokenPosOfNode; + function getSourceTextOfNodeFromSourceFile(sourceFile, node) { + var text = sourceFile.text; + return text.substring(ts.skipTrivia(text, node.pos), node.end); + } + ts.getSourceTextOfNodeFromSourceFile = getSourceTextOfNodeFromSourceFile; + function getTextOfNodeFromSourceText(sourceText, node) { + 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 declarationNameToString(name) { + return name.kind === 120 /* Missing */ ? "(Missing)" : getTextOfNode(name); + } + ts.declarationNameToString = declarationNameToString; + function createDiagnosticForNode(node, message, arg0, arg1, arg2) { + node = getErrorSpanForNode(node); + var file = getSourceFileOfNode(node); + var start = node.kind === 120 /* Missing */ ? node.pos : ts.skipTrivia(file.text, node.pos); + var length = node.end - start; + return ts.createFileDiagnostic(file, start, length, message, arg0, arg1, arg2); + } + ts.createDiagnosticForNode = createDiagnosticForNode; + function createDiagnosticForNodeFromMessageChain(node, messageChain, newLine) { + node = getErrorSpanForNode(node); + var file = getSourceFileOfNode(node); + var start = ts.skipTrivia(file.text, node.pos); + var length = node.end - start; + return ts.flattenDiagnosticChain(file, start, length, messageChain, newLine); + } + ts.createDiagnosticForNodeFromMessageChain = createDiagnosticForNodeFromMessageChain; + function getErrorSpanForNode(node) { + var errorSpan; + switch (node.kind) { + case 185 /* VariableDeclaration */: + case 188 /* ClassDeclaration */: + case 189 /* InterfaceDeclaration */: + case 192 /* ModuleDeclaration */: + case 191 /* EnumDeclaration */: + case 196 /* EnumMember */: + errorSpan = node.name; + break; + } + return errorSpan && errorSpan.pos < errorSpan.end ? errorSpan : node; + } + ts.getErrorSpanForNode = getErrorSpanForNode; + function isExternalModule(file) { + return file.externalModuleIndicator !== undefined; + } + ts.isExternalModule = isExternalModule; + function isDeclarationFile(file) { + return (file.flags & 1024 /* DeclarationFile */) !== 0; + } + ts.isDeclarationFile = isDeclarationFile; + function isConstEnumDeclaration(node) { + return node.kind === 191 /* EnumDeclaration */ && isConst(node); + } + ts.isConstEnumDeclaration = isConstEnumDeclaration; + function isConst(node) { + return !!(node.flags & 4096 /* Const */); + } + ts.isConst = isConst; + function isLet(node) { + return !!(node.flags & 2048 /* Let */); + } + ts.isLet = isLet; + function isPrologueDirective(node) { + return node.kind === 165 /* ExpressionStatement */ && node.expression.kind === 7 /* StringLiteral */; + } + ts.isPrologueDirective = isPrologueDirective; + function isEvalOrArgumentsIdentifier(node) { + return node.kind === 63 /* Identifier */ && node.text && (node.text === "eval" || node.text === "arguments"); + } + function isUseStrictPrologueDirective(node) { + ts.Debug.assert(isPrologueDirective(node)); + return node.expression.text === "use strict"; + } + function getLeadingCommentRangesOfNode(node, sourceFileOfNode) { + sourceFileOfNode = sourceFileOfNode || getSourceFileOfNode(node); + if (node.kind === 123 /* Parameter */ || node.kind === 122 /* TypeParameter */) { + 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), function (comment) { return isJsDocComment(comment); }); + function isJsDocComment(comment) { + return sourceFileOfNode.text.charCodeAt(comment.pos + 1) === 42 /* asterisk */ && sourceFileOfNode.text.charCodeAt(comment.pos + 2) === 42 /* asterisk */ && sourceFileOfNode.text.charCodeAt(comment.pos + 3) !== 47 /* slash */; + } + } + ts.getJsDocComments = getJsDocComments; + ts.fullTripleSlashReferencePathRegEx = /^(\/\/\/\s*/; + function forEachChild(node, cbNode, cbNodes) { + function child(node) { + if (node) + return cbNode(node); + } + function children(nodes) { + if (nodes) { + if (cbNodes) + return cbNodes(nodes); + var result; + for (var i = 0, len = nodes.length; i < len; i++) { + if (result = cbNode(nodes[i])) + break; + } + return result; + } + } + if (!node) + return; + switch (node.kind) { + case 121 /* QualifiedName */: + return child(node.left) || child(node.right); + case 122 /* TypeParameter */: + return child(node.name) || child(node.constraint); + case 123 /* Parameter */: + return child(node.name) || child(node.type) || child(node.initializer); + case 124 /* Property */: + case 143 /* PropertyAssignment */: + case 144 /* ShorthandPropertyAssignment */: + return child(node.name) || child(node.type) || child(node.initializer); + case 133 /* FunctionType */: + case 134 /* ConstructorType */: + case 129 /* CallSignature */: + case 130 /* ConstructSignature */: + case 131 /* IndexSignature */: + return children(node.typeParameters) || children(node.parameters) || child(node.type); + case 125 /* Method */: + case 126 /* Constructor */: + case 127 /* GetAccessor */: + case 128 /* SetAccessor */: + case 152 /* FunctionExpression */: + case 186 /* FunctionDeclaration */: + case 153 /* ArrowFunction */: + return child(node.name) || children(node.typeParameters) || children(node.parameters) || child(node.type) || child(node.body); + case 132 /* TypeReference */: + return child(node.typeName) || children(node.typeArguments); + case 135 /* TypeQuery */: + return child(node.exprName); + case 136 /* TypeLiteral */: + return children(node.members); + case 137 /* ArrayType */: + return child(node.elementType); + case 138 /* TupleType */: + return children(node.elementTypes); + case 139 /* UnionType */: + return children(node.types); + case 140 /* ParenType */: + return child(node.type); + case 141 /* ArrayLiteral */: + return children(node.elements); + case 142 /* ObjectLiteral */: + return children(node.properties); + case 145 /* PropertyAccess */: + return child(node.left) || child(node.right); + case 146 /* IndexedAccess */: + return child(node.object) || child(node.index); + case 147 /* CallExpression */: + case 148 /* NewExpression */: + return child(node.func) || children(node.typeArguments) || children(node.arguments); + case 149 /* TaggedTemplateExpression */: + return child(node.tag) || child(node.template); + case 150 /* TypeAssertion */: + return child(node.type) || child(node.operand); + case 151 /* ParenExpression */: + return child(node.expression); + case 154 /* PrefixOperator */: + case 155 /* PostfixOperator */: + return child(node.operand); + case 156 /* BinaryExpression */: + return child(node.left) || child(node.right); + case 157 /* ConditionalExpression */: + return child(node.condition) || child(node.whenTrue) || child(node.whenFalse); + case 162 /* Block */: + case 181 /* TryBlock */: + case 183 /* FinallyBlock */: + case 187 /* FunctionBlock */: + case 193 /* ModuleBlock */: + case 197 /* SourceFile */: + return children(node.statements); + case 163 /* VariableStatement */: + return children(node.declarations); + case 165 /* ExpressionStatement */: + return child(node.expression); + case 166 /* IfStatement */: + return child(node.expression) || child(node.thenStatement) || child(node.elseStatement); + case 167 /* DoStatement */: + return child(node.statement) || child(node.expression); + case 168 /* WhileStatement */: + return child(node.expression) || child(node.statement); + case 169 /* ForStatement */: + return children(node.declarations) || child(node.initializer) || child(node.condition) || child(node.iterator) || child(node.statement); + case 170 /* ForInStatement */: + return children(node.declarations) || child(node.variable) || child(node.expression) || child(node.statement); + case 171 /* ContinueStatement */: + case 172 /* BreakStatement */: + return child(node.label); + case 173 /* ReturnStatement */: + return child(node.expression); + case 174 /* WithStatement */: + return child(node.expression) || child(node.statement); + case 175 /* SwitchStatement */: + return child(node.expression) || children(node.clauses); + case 176 /* CaseClause */: + case 177 /* DefaultClause */: + return child(node.expression) || children(node.statements); + case 178 /* LabeledStatement */: + return child(node.label) || child(node.statement); + case 179 /* ThrowStatement */: + return child(node.expression); + case 180 /* TryStatement */: + return child(node.tryBlock) || child(node.catchBlock) || child(node.finallyBlock); + case 182 /* CatchBlock */: + return child(node.variable) || children(node.statements); + case 185 /* VariableDeclaration */: + return child(node.name) || child(node.type) || child(node.initializer); + case 188 /* ClassDeclaration */: + return child(node.name) || children(node.typeParameters) || child(node.baseType) || children(node.implementedTypes) || children(node.members); + case 189 /* InterfaceDeclaration */: + return child(node.name) || children(node.typeParameters) || children(node.baseTypes) || children(node.members); + case 190 /* TypeAliasDeclaration */: + return child(node.name) || child(node.type); + case 191 /* EnumDeclaration */: + return child(node.name) || children(node.members); + case 196 /* EnumMember */: + return child(node.name) || child(node.initializer); + case 192 /* ModuleDeclaration */: + return child(node.name) || child(node.body); + case 194 /* ImportDeclaration */: + return child(node.name) || child(node.entityName) || child(node.externalModuleName); + case 195 /* ExportAssignment */: + return child(node.exportName); + case 158 /* TemplateExpression */: + return child(node.head) || children(node.templateSpans); + case 159 /* TemplateSpan */: + return child(node.expression) || child(node.literal); + } + } + ts.forEachChild = forEachChild; + function forEachReturnStatement(body, visitor) { + return traverse(body); + function traverse(node) { + switch (node.kind) { + case 173 /* ReturnStatement */: + return visitor(node); + case 162 /* Block */: + case 187 /* FunctionBlock */: + case 166 /* IfStatement */: + case 167 /* DoStatement */: + case 168 /* WhileStatement */: + case 169 /* ForStatement */: + case 170 /* ForInStatement */: + case 174 /* WithStatement */: + case 175 /* SwitchStatement */: + case 176 /* CaseClause */: + case 177 /* DefaultClause */: + case 178 /* LabeledStatement */: + case 180 /* TryStatement */: + case 181 /* TryBlock */: + case 182 /* CatchBlock */: + case 183 /* FinallyBlock */: + return forEachChild(node, traverse); + } + } + } + ts.forEachReturnStatement = forEachReturnStatement; + function isAnyFunction(node) { + if (node) { + switch (node.kind) { + case 152 /* FunctionExpression */: + case 186 /* FunctionDeclaration */: + case 153 /* ArrowFunction */: + case 125 /* Method */: + case 127 /* GetAccessor */: + case 128 /* SetAccessor */: + case 126 /* Constructor */: + return true; + } + } + return false; + } + ts.isAnyFunction = isAnyFunction; + function getContainingFunction(node) { + while (true) { + node = node.parent; + if (!node || isAnyFunction(node)) { + return node; + } + } + } + ts.getContainingFunction = getContainingFunction; + function getThisContainer(node, includeArrowFunctions) { + while (true) { + node = node.parent; + if (!node) { + return undefined; + } + switch (node.kind) { + case 153 /* ArrowFunction */: + if (!includeArrowFunctions) { + continue; + } + case 186 /* FunctionDeclaration */: + case 152 /* FunctionExpression */: + case 192 /* ModuleDeclaration */: + case 124 /* Property */: + case 125 /* Method */: + case 126 /* Constructor */: + case 127 /* GetAccessor */: + case 128 /* SetAccessor */: + case 191 /* EnumDeclaration */: + case 197 /* SourceFile */: + return node; + } + } + } + ts.getThisContainer = getThisContainer; + function getSuperContainer(node) { + while (true) { + node = node.parent; + if (!node) { + return undefined; + } + switch (node.kind) { + case 124 /* Property */: + case 125 /* Method */: + case 126 /* Constructor */: + case 127 /* GetAccessor */: + case 128 /* SetAccessor */: + return node; + } + } + } + ts.getSuperContainer = getSuperContainer; + function getInvokedExpression(node) { + if (node.kind === 149 /* TaggedTemplateExpression */) { + return node.tag; + } + return node.func; + } + ts.getInvokedExpression = getInvokedExpression; + function isExpression(node) { + switch (node.kind) { + case 91 /* ThisKeyword */: + case 89 /* SuperKeyword */: + case 87 /* NullKeyword */: + case 93 /* TrueKeyword */: + case 78 /* FalseKeyword */: + case 8 /* RegularExpressionLiteral */: + case 141 /* ArrayLiteral */: + case 142 /* ObjectLiteral */: + case 145 /* PropertyAccess */: + case 146 /* IndexedAccess */: + case 147 /* CallExpression */: + case 148 /* NewExpression */: + case 149 /* TaggedTemplateExpression */: + case 150 /* TypeAssertion */: + case 151 /* ParenExpression */: + case 152 /* FunctionExpression */: + case 153 /* ArrowFunction */: + case 154 /* PrefixOperator */: + case 155 /* PostfixOperator */: + case 156 /* BinaryExpression */: + case 157 /* ConditionalExpression */: + case 158 /* TemplateExpression */: + case 9 /* NoSubstitutionTemplateLiteral */: + case 161 /* OmittedExpression */: + return true; + case 121 /* QualifiedName */: + while (node.parent.kind === 121 /* QualifiedName */) + node = node.parent; + return node.parent.kind === 135 /* TypeQuery */; + case 63 /* Identifier */: + if (node.parent.kind === 135 /* TypeQuery */) { + return true; + } + case 6 /* NumericLiteral */: + case 7 /* StringLiteral */: + var parent = node.parent; + switch (parent.kind) { + case 185 /* VariableDeclaration */: + case 123 /* Parameter */: + case 124 /* Property */: + case 196 /* EnumMember */: + case 143 /* PropertyAssignment */: + return parent.initializer === node; + case 165 /* ExpressionStatement */: + case 166 /* IfStatement */: + case 167 /* DoStatement */: + case 168 /* WhileStatement */: + case 173 /* ReturnStatement */: + case 174 /* WithStatement */: + case 175 /* SwitchStatement */: + case 176 /* CaseClause */: + case 179 /* ThrowStatement */: + case 175 /* SwitchStatement */: + return parent.expression === node; + case 169 /* ForStatement */: + return parent.initializer === node || parent.condition === node || parent.iterator === node; + case 170 /* ForInStatement */: + return parent.variable === node || parent.expression === node; + case 150 /* TypeAssertion */: + return node === parent.operand; + case 159 /* TemplateSpan */: + return node === parent.expression; + default: + if (isExpression(parent)) { + return true; + } + } + } + return false; + } + ts.isExpression = isExpression; + function hasRestParameters(s) { + return s.parameters.length > 0 && (s.parameters[s.parameters.length - 1].flags & 8 /* Rest */) !== 0; + } + ts.hasRestParameters = hasRestParameters; + function isLiteralKind(kind) { + return 6 /* FirstLiteralToken */ <= kind && kind <= 9 /* LastLiteralToken */; + } + ts.isLiteralKind = isLiteralKind; + function isTextualLiteralKind(kind) { + return kind === 7 /* StringLiteral */ || kind === 9 /* NoSubstitutionTemplateLiteral */; + } + ts.isTextualLiteralKind = isTextualLiteralKind; + function isTemplateLiteralKind(kind) { + return 9 /* FirstTemplateToken */ <= kind && kind <= 12 /* LastTemplateToken */; + } + ts.isTemplateLiteralKind = isTemplateLiteralKind; + function isInAmbientContext(node) { + while (node) { + if (node.flags & (2 /* Ambient */ | 1024 /* DeclarationFile */)) + return true; + node = node.parent; + } + return false; + } + ts.isInAmbientContext = isInAmbientContext; + function isDeclaration(node) { + switch (node.kind) { + case 122 /* TypeParameter */: + case 123 /* Parameter */: + case 185 /* VariableDeclaration */: + case 124 /* Property */: + case 143 /* PropertyAssignment */: + case 144 /* ShorthandPropertyAssignment */: + case 196 /* EnumMember */: + case 125 /* Method */: + case 186 /* FunctionDeclaration */: + case 127 /* GetAccessor */: + case 128 /* SetAccessor */: + case 188 /* ClassDeclaration */: + case 189 /* InterfaceDeclaration */: + case 190 /* TypeAliasDeclaration */: + case 191 /* EnumDeclaration */: + case 192 /* ModuleDeclaration */: + case 194 /* ImportDeclaration */: + return true; + } + return false; + } + ts.isDeclaration = isDeclaration; + function isStatement(n) { + switch (n.kind) { + case 172 /* BreakStatement */: + case 171 /* ContinueStatement */: + case 184 /* DebuggerStatement */: + case 167 /* DoStatement */: + case 165 /* ExpressionStatement */: + case 164 /* EmptyStatement */: + case 170 /* ForInStatement */: + case 169 /* ForStatement */: + case 166 /* IfStatement */: + case 178 /* LabeledStatement */: + case 173 /* ReturnStatement */: + case 175 /* SwitchStatement */: + case 92 /* ThrowKeyword */: + case 180 /* TryStatement */: + case 163 /* VariableStatement */: + case 168 /* WhileStatement */: + case 174 /* WithStatement */: + case 195 /* ExportAssignment */: + return true; + default: + return false; + } + } + ts.isStatement = isStatement; + function isDeclarationOrFunctionExpressionOrCatchVariableName(name) { + if (name.kind !== 63 /* Identifier */ && name.kind !== 7 /* StringLiteral */ && name.kind !== 6 /* NumericLiteral */) { + return false; + } + var parent = name.parent; + if (isDeclaration(parent) || parent.kind === 152 /* FunctionExpression */) { + return parent.name === name; + } + if (parent.kind === 182 /* CatchBlock */) { + return parent.variable === name; + } + return false; + } + ts.isDeclarationOrFunctionExpressionOrCatchVariableName = isDeclarationOrFunctionExpressionOrCatchVariableName; + function tryResolveScriptReference(program, sourceFile, reference) { + if (!program.getCompilerOptions().noResolve) { + var referenceFileName = ts.isRootedDiskPath(reference.filename) ? reference.filename : ts.combinePaths(ts.getDirectoryPath(sourceFile.filename), reference.filename); + referenceFileName = ts.getNormalizedAbsolutePath(referenceFileName, program.getCompilerHost().getCurrentDirectory()); + return program.getSourceFile(referenceFileName); + } + } + ts.tryResolveScriptReference = tryResolveScriptReference; + function getAncestor(node, kind) { + switch (kind) { + case 188 /* ClassDeclaration */: + while (node) { + switch (node.kind) { + case 188 /* ClassDeclaration */: + return node; + case 191 /* EnumDeclaration */: + case 189 /* InterfaceDeclaration */: + case 190 /* TypeAliasDeclaration */: + case 192 /* ModuleDeclaration */: + case 194 /* ImportDeclaration */: + return undefined; + default: + node = node.parent; + continue; + } + } + break; + default: + while (node) { + if (node.kind === kind) { + return node; + } + node = node.parent; + } + break; + } + return undefined; + } + ts.getAncestor = getAncestor; + 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["BaseTypeReferences"] = 8] = "BaseTypeReferences"; + ParsingContext[ParsingContext["VariableDeclarations"] = 9] = "VariableDeclarations"; + ParsingContext[ParsingContext["ArgumentExpressions"] = 10] = "ArgumentExpressions"; + ParsingContext[ParsingContext["ObjectLiteralMembers"] = 11] = "ObjectLiteralMembers"; + ParsingContext[ParsingContext["ArrayLiteralMembers"] = 12] = "ArrayLiteralMembers"; + ParsingContext[ParsingContext["Parameters"] = 13] = "Parameters"; + ParsingContext[ParsingContext["TypeParameters"] = 14] = "TypeParameters"; + ParsingContext[ParsingContext["TypeArguments"] = 15] = "TypeArguments"; + ParsingContext[ParsingContext["TupleElementTypes"] = 16] = "TupleElementTypes"; + ParsingContext[ParsingContext["Count"] = 17] = "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 /* SourceElements */: return ts.Diagnostics.Declaration_or_statement_expected; + case 1 /* ModuleElements */: return ts.Diagnostics.Declaration_or_statement_expected; + case 2 /* BlockStatements */: return ts.Diagnostics.Statement_expected; + case 3 /* SwitchClauses */: return ts.Diagnostics.case_or_default_expected; + case 4 /* SwitchClauseStatements */: return ts.Diagnostics.Statement_expected; + case 5 /* TypeMembers */: return ts.Diagnostics.Property_or_signature_expected; + case 6 /* ClassMembers */: return ts.Diagnostics.Unexpected_token_A_constructor_method_accessor_or_property_was_expected; + case 7 /* EnumMembers */: return ts.Diagnostics.Enum_member_expected; + case 8 /* BaseTypeReferences */: return ts.Diagnostics.Type_reference_expected; + case 9 /* VariableDeclarations */: return ts.Diagnostics.Variable_declaration_expected; + case 10 /* ArgumentExpressions */: return ts.Diagnostics.Argument_expression_expected; + case 11 /* ObjectLiteralMembers */: return ts.Diagnostics.Property_assignment_expected; + case 12 /* ArrayLiteralMembers */: return ts.Diagnostics.Expression_or_comma_expected; + case 13 /* Parameters */: return ts.Diagnostics.Parameter_declaration_expected; + case 14 /* TypeParameters */: return ts.Diagnostics.Type_parameter_declaration_expected; + case 15 /* TypeArguments */: return ts.Diagnostics.Type_argument_expected; + case 16 /* TupleElementTypes */: return ts.Diagnostics.Type_expected; + } + } + ; + var LookAheadMode; + (function (LookAheadMode) { + LookAheadMode[LookAheadMode["NotLookingAhead"] = 0] = "NotLookingAhead"; + LookAheadMode[LookAheadMode["NoErrorYet"] = 1] = "NoErrorYet"; + LookAheadMode[LookAheadMode["Error"] = 2] = "Error"; + })(LookAheadMode || (LookAheadMode = {})); + 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 { + diagnostic: ts.Diagnostics.Invalid_reference_directive_syntax, + isNoDefaultLib: false + }; + } + } + } + return undefined; + } + ts.getFileReferenceFromReferencePath = getFileReferenceFromReferencePath; + function isKeyword(token) { + return 64 /* FirstKeyword */ <= token && token <= 119 /* LastKeyword */; + } + ts.isKeyword = isKeyword; + function isTrivia(token) { + return 2 /* FirstTriviaToken */ <= token && token <= 5 /* LastTriviaToken */; + } + ts.isTrivia = isTrivia; + function isUnterminatedTemplateEnd(node) { + ts.Debug.assert(isTemplateLiteralKind(node.kind)); + var sourceText = getSourceFileOfNode(node).text; + if (node.end !== sourceText.length) { + return false; + } + if (node.kind !== 12 /* TemplateTail */ && node.kind !== 9 /* NoSubstitutionTemplateLiteral */) { + return false; + } + return sourceText.charCodeAt(node.end - 1) !== 96 /* backtick */ || node.text.length === 0; + } + ts.isUnterminatedTemplateEnd = isUnterminatedTemplateEnd; + function isModifier(token) { + switch (token) { + case 106 /* PublicKeyword */: + case 104 /* PrivateKeyword */: + case 105 /* ProtectedKeyword */: + case 107 /* StaticKeyword */: + case 76 /* ExportKeyword */: + case 112 /* DeclareKeyword */: + return true; + } + return false; + } + ts.isModifier = isModifier; + function modifierToFlag(token) { + switch (token) { + case 107 /* StaticKeyword */: return 128 /* Static */; + case 106 /* PublicKeyword */: return 16 /* Public */; + case 105 /* ProtectedKeyword */: return 64 /* Protected */; + case 104 /* PrivateKeyword */: return 32 /* Private */; + case 76 /* ExportKeyword */: return 1 /* Export */; + case 112 /* DeclareKeyword */: return 2 /* Ambient */; + } + return 0; + } + function createSourceFile(filename, sourceText, languageVersion, version, isOpen) { + if (isOpen === void 0) { isOpen = false; } + var file; + var scanner; + var token; + var parsingContext; + var commentRanges; + var identifiers = {}; + var identifierCount = 0; + var nodeCount = 0; + var lineStarts; + var lookAheadMode = 0 /* NotLookingAhead */; + var contextFlags = 0; + function setContextFlag(val, flag) { + if (val) { + contextFlags |= flag; + } + else { + contextFlags &= ~flag; + } + } + function setStrictModeContext(val) { + setContextFlag(val, 1 /* StrictMode */); + } + function setDisallowInContext(val) { + setContextFlag(val, 2 /* DisallowIn */); + } + function setYieldContext(val) { + setContextFlag(val, 4 /* Yield */); + } + function setGeneratorParameterContext(val) { + setContextFlag(val, 8 /* GeneratorParameter */); + } + function allowInAnd(func) { + if (contextFlags & 2 /* DisallowIn */) { + setDisallowInContext(false); + var result = func(); + setDisallowInContext(true); + return result; + } + return func(); + } + function disallowInAnd(func) { + if (contextFlags & 2 /* DisallowIn */) { + return func(); + } + setDisallowInContext(true); + var result = func(); + setDisallowInContext(false); + return result; + } + function doInYieldContext(func) { + if (contextFlags & 4 /* Yield */) { + return func(); + } + setYieldContext(true); + var result = func(); + setYieldContext(false); + return result; + } + function doOutsideOfYieldContext(func) { + if (contextFlags & 4 /* Yield */) { + setYieldContext(false); + var result = func(); + setYieldContext(true); + return result; + } + return func(); + } + function inYieldContext() { + return (contextFlags & 4 /* Yield */) !== 0; + } + function inStrictModeContext() { + return (contextFlags & 1 /* StrictMode */) !== 0; + } + function inGeneratorParameterContext() { + return (contextFlags & 8 /* GeneratorParameter */) !== 0; + } + function inDisallowInContext() { + return (contextFlags & 2 /* DisallowIn */) !== 0; + } + function getLineStarts() { + return lineStarts || (lineStarts = ts.computeLineStarts(sourceText)); + } + function getLineAndCharacterFromSourcePosition(position) { + return ts.getLineAndCharacterOfPosition(getLineStarts(), position); + } + function getPositionFromSourceLineAndCharacter(line, character) { + return ts.getPositionFromLineAndCharacter(getLineStarts(), line, character); + } + function error(message, arg0, arg1, arg2) { + var start = scanner.getTokenPos(); + var length = scanner.getTextPos() - start; + errorAtPos(start, length, message, arg0, arg1, arg2); + } + function errorAtPos(start, length, message, arg0, arg1, arg2) { + var lastErrorPos = file.parseDiagnostics.length ? file.parseDiagnostics[file.parseDiagnostics.length - 1].start : -1; + if (start !== lastErrorPos) { + var diagnostic = ts.createFileDiagnostic(file, start, length, message, arg0, arg1, arg2); + diagnostic.isParseError = true; + file.parseDiagnostics.push(diagnostic); + } + if (lookAheadMode === 1 /* NoErrorYet */) { + lookAheadMode = 2 /* Error */; + } + } + function scanError(message) { + var pos = scanner.getTextPos(); + errorAtPos(pos, 0, message); + } + function onComment(pos, end) { + if (commentRanges) + commentRanges.push({ pos: pos, end: end }); + } + 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 lookAheadHelper(callback, alwaysResetState) { + var saveToken = token; + var saveSyntacticErrorsLength = file.parseDiagnostics.length; + var saveLookAheadMode = lookAheadMode; + lookAheadMode = 1 /* NoErrorYet */; + var result = callback(); + ts.Debug.assert(lookAheadMode === 2 /* Error */ || lookAheadMode === 1 /* NoErrorYet */); + if (lookAheadMode === 2 /* Error */) { + result = undefined; + } + lookAheadMode = saveLookAheadMode; + if (!result || alwaysResetState) { + token = saveToken; + file.parseDiagnostics.length = saveSyntacticErrorsLength; + } + return result; + } + function lookAhead(callback) { + var result; + scanner.tryScan(function () { + result = lookAheadHelper(callback, true); + return false; + }); + return result; + } + function tryParse(callback) { + return scanner.tryScan(function () { return lookAheadHelper(callback, false); }); + } + function isIdentifier() { + if (token === 63 /* Identifier */) { + return true; + } + if (token === 108 /* YieldKeyword */ && inYieldContext()) { + return false; + } + return inStrictModeContext() ? token > 108 /* LastFutureReservedWord */ : token > 99 /* LastReservedWord */; + } + function parseExpected(t) { + if (token === t) { + nextToken(); + return true; + } + error(ts.Diagnostics._0_expected, ts.tokenToString(t)); + return false; + } + function parseOptional(t) { + if (token === t) { + nextToken(); + return true; + } + return false; + } + function canParseSemicolon() { + if (token === 21 /* SemicolonToken */) { + return true; + } + return token === 14 /* CloseBraceToken */ || token === 1 /* EndOfFileToken */ || scanner.hasPrecedingLineBreak(); + } + function parseSemicolon() { + if (canParseSemicolon()) { + if (token === 21 /* SemicolonToken */) { + nextToken(); + } + } + else { + error(ts.Diagnostics._0_expected, ";"); + } + } + 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; + } + return node; + } + function createMissingNode(pos) { + return createNode(120 /* Missing */, pos); + } + function internIdentifier(text) { + text = escapeIdentifier(text); + return ts.hasProperty(identifiers, text) ? identifiers[text] : (identifiers[text] = text); + } + function createIdentifier(isIdentifier) { + identifierCount++; + if (isIdentifier) { + var node = createNode(63 /* Identifier */); + node.text = internIdentifier(scanner.getTokenValue()); + nextToken(); + return finishNode(node); + } + error(ts.Diagnostics.Identifier_expected); + var node = createMissingNode(); + node.text = ""; + return node; + } + function parseIdentifier() { + return createIdentifier(isIdentifier()); + } + function parseIdentifierName() { + return createIdentifier(token >= 63 /* Identifier */); + } + function isPropertyName() { + return token >= 63 /* Identifier */ || token === 7 /* StringLiteral */ || token === 6 /* NumericLiteral */; + } + function parsePropertyName() { + if (token === 7 /* StringLiteral */ || token === 6 /* NumericLiteral */) { + return parseLiteralNode(true); + } + return parseIdentifierName(); + } + function parseContextualModifier(t) { + return token === t && tryParse(function () { + nextToken(); + return token === 17 /* OpenBracketToken */ || isPropertyName(); + }); + } + function parseAnyContextualModifier() { + return isModifier(token) && tryParse(function () { + nextToken(); + return token === 17 /* OpenBracketToken */ || token === 34 /* AsteriskToken */ || isPropertyName(); + }); + } + function isListElement(kind, inErrorRecovery) { + switch (kind) { + case 0 /* SourceElements */: + case 1 /* ModuleElements */: + return isSourceElement(inErrorRecovery); + case 2 /* BlockStatements */: + case 4 /* SwitchClauseStatements */: + return isStatement(inErrorRecovery); + case 3 /* SwitchClauses */: + return token === 65 /* CaseKeyword */ || token === 71 /* DefaultKeyword */; + case 5 /* TypeMembers */: + return isStartOfTypeMember(); + case 6 /* ClassMembers */: + return lookAhead(isClassMemberStart); + case 7 /* EnumMembers */: + return isPropertyName(); + case 11 /* ObjectLiteralMembers */: + return token === 34 /* AsteriskToken */ || isPropertyName(); + case 8 /* BaseTypeReferences */: + return isIdentifier() && ((token !== 77 /* ExtendsKeyword */ && token !== 100 /* ImplementsKeyword */) || !lookAhead(function () { return (nextToken(), isIdentifier()); })); + case 9 /* VariableDeclarations */: + case 14 /* TypeParameters */: + return isIdentifier(); + case 10 /* ArgumentExpressions */: + return token === 22 /* CommaToken */ || isStartOfExpression(); + case 12 /* ArrayLiteralMembers */: + return token === 22 /* CommaToken */ || isStartOfExpression(); + case 13 /* Parameters */: + return isStartOfParameter(); + case 15 /* TypeArguments */: + case 16 /* TupleElementTypes */: + return token === 22 /* CommaToken */ || isStartOfType(); + } + ts.Debug.fail("Non-exhaustive case in 'isListElement'."); + } + function isListTerminator(kind) { + if (token === 1 /* EndOfFileToken */) { + return true; + } + switch (kind) { + case 1 /* ModuleElements */: + case 2 /* BlockStatements */: + case 3 /* SwitchClauses */: + case 5 /* TypeMembers */: + case 6 /* ClassMembers */: + case 7 /* EnumMembers */: + case 11 /* ObjectLiteralMembers */: + return token === 14 /* CloseBraceToken */; + case 4 /* SwitchClauseStatements */: + return token === 14 /* CloseBraceToken */ || token === 65 /* CaseKeyword */ || token === 71 /* DefaultKeyword */; + case 8 /* BaseTypeReferences */: + return token === 13 /* OpenBraceToken */ || token === 77 /* ExtendsKeyword */ || token === 100 /* ImplementsKeyword */; + case 9 /* VariableDeclarations */: + return isVariableDeclaratorListTerminator(); + case 14 /* TypeParameters */: + return token === 24 /* GreaterThanToken */ || token === 15 /* OpenParenToken */ || token === 13 /* OpenBraceToken */ || token === 77 /* ExtendsKeyword */ || token === 100 /* ImplementsKeyword */; + case 10 /* ArgumentExpressions */: + return token === 16 /* CloseParenToken */ || token === 21 /* SemicolonToken */; + case 12 /* ArrayLiteralMembers */: + case 16 /* TupleElementTypes */: + return token === 18 /* CloseBracketToken */; + case 13 /* Parameters */: + return token === 16 /* CloseParenToken */ || token === 18 /* CloseBracketToken */ || token === 13 /* OpenBraceToken */; + case 15 /* TypeArguments */: + return token === 24 /* GreaterThanToken */ || token === 15 /* OpenParenToken */; + } + } + function isVariableDeclaratorListTerminator() { + if (canParseSemicolon()) { + return true; + } + if (token === 84 /* InKeyword */) { + return true; + } + if (token === 31 /* EqualsGreaterThanToken */) { + return true; + } + return false; + } + function isInSomeParsingContext() { + for (var kind = 0; kind < 17 /* Count */; 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 = parseElement(); + result.push(element); + if (!inStrictModeContext() && checkForStrictMode) { + if (isPrologueDirective(element)) { + if (isUseStrictPrologueDirective(element)) { + setStrictModeContext(true); + checkForStrictMode = false; + } + } + else { + checkForStrictMode = false; + } + } + } + else { + error(parsingContextErrors(kind)); + if (isInSomeParsingContext()) { + break; + } + nextToken(); + } + } + setStrictModeContext(savedStrictModeContext); + result.end = getNodeEnd(); + parsingContext = saveParsingContext; + return result; + } + function parseDelimitedList(kind, parseElement) { + var saveParsingContext = parsingContext; + parsingContext |= 1 << kind; + var result = []; + result.pos = getNodePos(); + var commaStart = -1; + while (true) { + if (isListElement(kind, false)) { + result.push(parseElement()); + commaStart = scanner.getTokenPos(); + if (parseOptional(22 /* CommaToken */)) { + continue; + } + commaStart = -1; + if (isListTerminator(kind)) { + break; + } + error(ts.Diagnostics._0_expected, ","); + } + else if (isListTerminator(kind)) { + break; + } + else { + error(parsingContextErrors(kind)); + if (isInSomeParsingContext()) { + break; + } + nextToken(); + } + } + 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) { + var entity = parseIdentifier(); + while (parseOptional(19 /* DotToken */)) { + var node = createNode(121 /* QualifiedName */, entity.pos); + node.left = entity; + node.right = allowReservedWords ? parseIdentifierName() : parseIdentifier(); + entity = finishNode(node); + } + return entity; + } + function parseTokenNode() { + var node = createNode(token); + nextToken(); + return finishNode(node); + } + function parseTemplateExpression() { + var template = createNode(158 /* TemplateExpression */); + template.head = parseLiteralNode(); + ts.Debug.assert(template.head.kind === 10 /* TemplateHead */, "Template head has wrong token kind"); + var templateSpans = []; + templateSpans.pos = getNodePos(); + do { + templateSpans.push(parseTemplateSpan()); + } while (templateSpans[templateSpans.length - 1].literal.kind === 11 /* TemplateMiddle */); + templateSpans.end = getNodeEnd(); + template.templateSpans = templateSpans; + return finishNode(template); + } + function parseTemplateSpan() { + var span = createNode(159 /* TemplateSpan */); + span.expression = allowInAnd(parseExpression); + var literal; + if (token === 14 /* CloseBraceToken */) { + reScanTemplateToken(); + literal = parseLiteralNode(); + } + else { + error(ts.Diagnostics.Invalid_template_literal_expected); + literal = createMissingNode(); + literal.text = ""; + } + span.literal = literal; + return finishNode(span); + } + function parseLiteralNode(internName) { + var node = createNode(token); + var text = scanner.getTokenValue(); + node.text = internName ? internIdentifier(text) : text; + var tokenPos = scanner.getTokenPos(); + nextToken(); + finishNode(node); + if (node.kind === 6 /* NumericLiteral */ && sourceText.charCodeAt(tokenPos) === 48 /* _0 */ && ts.isOctalDigit(sourceText.charCodeAt(tokenPos + 1))) { + node.flags |= 8192 /* OctalLiteral */; + } + return node; + } + function parseStringLiteral() { + if (token === 7 /* StringLiteral */) { + return parseLiteralNode(true); + } + error(ts.Diagnostics.String_literal_expected); + return createMissingNode(); + } + function parseTypeReference() { + var node = createNode(132 /* TypeReference */); + node.typeName = parseEntityName(false); + if (!scanner.hasPrecedingLineBreak() && token === 23 /* LessThanToken */) { + node.typeArguments = parseTypeArguments(); + } + return finishNode(node); + } + function parseTypeQuery() { + var node = createNode(135 /* TypeQuery */); + parseExpected(95 /* TypeOfKeyword */); + node.exprName = parseEntityName(true); + return finishNode(node); + } + function parseTypeParameter() { + var node = createNode(122 /* TypeParameter */); + node.name = parseIdentifier(); + if (parseOptional(77 /* ExtendsKeyword */)) { + if (isStartOfType() || !isStartOfExpression()) { + node.constraint = parseType(); + } + else { + node.expression = parseUnaryExpression(); + } + } + return finishNode(node); + } + function parseTypeParameters() { + if (token === 23 /* LessThanToken */) { + return parseBracketedList(14 /* TypeParameters */, parseTypeParameter, 23 /* LessThanToken */, 24 /* GreaterThanToken */); + } + } + function parseParameterType() { + return parseOptional(50 /* ColonToken */) ? token === 7 /* StringLiteral */ ? parseStringLiteral() : parseType() : undefined; + } + function isStartOfParameter() { + return token === 20 /* DotDotDotToken */ || isIdentifier() || isModifier(token); + } + function setModifiers(node, modifiers) { + if (modifiers) { + node.flags |= modifiers.flags; + node.modifiers = modifiers; + } + } + function parseParameter() { + var node = createNode(123 /* Parameter */); + var modifiers = parseModifiers(); + setModifiers(node, modifiers); + if (parseOptional(20 /* DotDotDotToken */)) { + node.flags |= 8 /* Rest */; + } + node.name = inGeneratorParameterContext() ? doInYieldContext(parseIdentifier) : parseIdentifier(); + if (node.name.kind === 120 /* Missing */ && node.flags === 0 && isModifier(token)) { + nextToken(); + } + if (parseOptional(49 /* QuestionToken */)) { + node.flags |= 4 /* QuestionMark */; + } + node.type = parseParameterType(); + node.initializer = inGeneratorParameterContext() ? doOutsideOfYieldContext(parseParameterInitializer) : parseParameterInitializer(); + return finishNode(node); + } + function parseParameterInitializer() { + return parseInitializer(true); + } + function parseSignature(kind, returnToken, returnTokenRequired, yieldAndGeneratorParameterContext) { + var signature = {}; + fillSignature(kind, returnToken, returnTokenRequired, yieldAndGeneratorParameterContext, signature); + return signature; + } + function fillSignature(kind, returnToken, returnTokenRequired, yieldAndGeneratorParameterContext, signature) { + if (kind === 130 /* ConstructSignature */) { + parseExpected(86 /* NewKeyword */); + } + signature.typeParameters = parseTypeParameters(); + signature.parameters = parseParameterList(yieldAndGeneratorParameterContext); + if (returnTokenRequired) { + parseExpected(returnToken); + signature.type = parseType(); + } + else if (parseOptional(returnToken)) { + signature.type = parseType(); + } + } + function parseParameterList(yieldAndGeneratorParameterContext) { + if (parseExpected(15 /* OpenParenToken */)) { + var savedYieldContext = inYieldContext(); + var savedGeneratorParameterContext = inGeneratorParameterContext(); + setYieldContext(yieldAndGeneratorParameterContext); + setGeneratorParameterContext(yieldAndGeneratorParameterContext); + var result = parseDelimitedList(13 /* Parameters */, parseParameter); + parseExpected(16 /* CloseParenToken */); + setYieldContext(savedYieldContext); + setGeneratorParameterContext(savedGeneratorParameterContext); + return result; + } + return createMissingList(); + } + function parseSignatureMember(kind, returnToken) { + var node = createNode(kind); + fillSignature(kind, returnToken, false, false, node); + parseSemicolon(); + return finishNode(node); + } + function parseIndexSignatureMember(fullStart, modifiers) { + var node = createNode(131 /* IndexSignature */, fullStart); + setModifiers(node, modifiers); + node.parameters = parseBracketedList(13 /* Parameters */, parseParameter, 17 /* OpenBracketToken */, 18 /* CloseBracketToken */); + node.type = parseTypeAnnotation(); + parseSemicolon(); + return finishNode(node); + } + function parsePropertyOrMethod() { + var fullStart = scanner.getStartPos(); + var name = parsePropertyName(); + var flags = 0; + if (parseOptional(49 /* QuestionToken */)) { + flags = 4 /* QuestionMark */; + } + if (token === 15 /* OpenParenToken */ || token === 23 /* LessThanToken */) { + var method = createNode(125 /* Method */, fullStart); + method.name = name; + method.flags = flags; + fillSignature(129 /* CallSignature */, 50 /* ColonToken */, false, false, method); + parseSemicolon(); + return finishNode(method); + } + else { + var property = createNode(124 /* Property */, fullStart); + property.name = name; + property.flags = flags; + property.type = parseTypeAnnotation(); + parseSemicolon(); + return finishNode(property); + } + } + function isStartOfTypeMember() { + switch (token) { + case 15 /* OpenParenToken */: + case 23 /* LessThanToken */: + case 17 /* OpenBracketToken */: + return true; + default: + return isPropertyName() && lookAhead(function () { return nextToken() === 15 /* OpenParenToken */ || token === 23 /* LessThanToken */ || token === 49 /* QuestionToken */ || token === 50 /* ColonToken */ || canParseSemicolon(); }); + } + } + function parseTypeMember() { + switch (token) { + case 15 /* OpenParenToken */: + case 23 /* LessThanToken */: + return parseSignatureMember(129 /* CallSignature */, 50 /* ColonToken */); + case 17 /* OpenBracketToken */: + return parseIndexSignatureMember(scanner.getStartPos(), undefined); + case 86 /* NewKeyword */: + if (lookAhead(function () { return nextToken() === 15 /* OpenParenToken */ || token === 23 /* LessThanToken */; })) { + return parseSignatureMember(130 /* ConstructSignature */, 50 /* ColonToken */); + } + case 7 /* StringLiteral */: + case 6 /* NumericLiteral */: + return parsePropertyOrMethod(); + default: + if (token >= 63 /* Identifier */) { + return parsePropertyOrMethod(); + } + } + } + function parseTypeLiteral() { + var node = createNode(136 /* TypeLiteral */); + node.members = parseObjectType(); + return finishNode(node); + } + function parseObjectType() { + var members; + if (parseExpected(13 /* OpenBraceToken */)) { + members = parseList(5 /* TypeMembers */, false, parseTypeMember); + parseExpected(14 /* CloseBraceToken */); + } + else { + members = createMissingList(); + } + return members; + } + function parseTupleType() { + var node = createNode(138 /* TupleType */); + node.elementTypes = parseBracketedList(16 /* TupleElementTypes */, parseType, 17 /* OpenBracketToken */, 18 /* CloseBracketToken */); + return finishNode(node); + } + function parseParenType() { + var node = createNode(140 /* ParenType */); + parseExpected(15 /* OpenParenToken */); + node.type = parseType(); + parseExpected(16 /* CloseParenToken */); + return finishNode(node); + } + function parseFunctionType(typeKind) { + var node = createNode(typeKind); + fillSignature(typeKind === 133 /* FunctionType */ ? 129 /* CallSignature */ : 130 /* ConstructSignature */, 31 /* EqualsGreaterThanToken */, true, false, node); + return finishNode(node); + } + function parseKeywordAndNoDot() { + var node = parseTokenNode(); + return token === 19 /* DotToken */ ? undefined : node; + } + function parseNonArrayType() { + switch (token) { + case 109 /* AnyKeyword */: + case 118 /* StringKeyword */: + case 116 /* NumberKeyword */: + case 110 /* BooleanKeyword */: + case 97 /* VoidKeyword */: + var node = tryParse(parseKeywordAndNoDot); + return node || parseTypeReference(); + case 95 /* TypeOfKeyword */: + return parseTypeQuery(); + case 13 /* OpenBraceToken */: + return parseTypeLiteral(); + case 17 /* OpenBracketToken */: + return parseTupleType(); + case 15 /* OpenParenToken */: + return parseParenType(); + default: + if (isIdentifier()) { + return parseTypeReference(); + } + } + error(ts.Diagnostics.Type_expected); + return createMissingNode(); + } + function isStartOfType() { + switch (token) { + case 109 /* AnyKeyword */: + case 118 /* StringKeyword */: + case 116 /* NumberKeyword */: + case 110 /* BooleanKeyword */: + case 97 /* VoidKeyword */: + case 95 /* TypeOfKeyword */: + case 13 /* OpenBraceToken */: + case 17 /* OpenBracketToken */: + case 23 /* LessThanToken */: + case 86 /* NewKeyword */: + return true; + case 15 /* OpenParenToken */: + return lookAhead(function () { + nextToken(); + return token === 16 /* CloseParenToken */ || isStartOfParameter() || isStartOfType(); + }); + default: + return isIdentifier(); + } + } + function parsePrimaryType() { + var type = parseNonArrayType(); + while (!scanner.hasPrecedingLineBreak() && parseOptional(17 /* OpenBracketToken */)) { + parseExpected(18 /* CloseBracketToken */); + var node = createNode(137 /* ArrayType */, type.pos); + node.elementType = type; + type = finishNode(node); + } + return type; + } + function parseUnionType() { + var type = parsePrimaryType(); + if (token === 43 /* BarToken */) { + var types = [type]; + types.pos = type.pos; + while (parseOptional(43 /* BarToken */)) { + types.push(parsePrimaryType()); + } + types.end = getNodeEnd(); + var node = createNode(139 /* UnionType */, type.pos); + node.types = types; + type = finishNode(node); + } + return type; + } + function isStartOfFunctionType() { + return token === 23 /* LessThanToken */ || token === 15 /* OpenParenToken */ && lookAhead(function () { + nextToken(); + if (token === 16 /* CloseParenToken */ || token === 20 /* DotDotDotToken */) { + return true; + } + if (isIdentifier() || isModifier(token)) { + nextToken(); + if (token === 50 /* ColonToken */ || token === 22 /* CommaToken */ || token === 49 /* QuestionToken */ || token === 51 /* EqualsToken */ || isIdentifier() || isModifier(token)) { + return true; + } + if (token === 16 /* CloseParenToken */) { + nextToken(); + if (token === 31 /* EqualsGreaterThanToken */) { + 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 parseFunctionType(133 /* FunctionType */); + } + if (token === 86 /* NewKeyword */) { + return parseFunctionType(134 /* ConstructorType */); + } + return parseUnionType(); + } + function parseTypeAnnotation() { + return parseOptional(50 /* ColonToken */) ? parseType() : undefined; + } + function isStartOfExpression() { + switch (token) { + case 91 /* ThisKeyword */: + case 89 /* SuperKeyword */: + case 87 /* NullKeyword */: + case 93 /* TrueKeyword */: + case 78 /* FalseKeyword */: + case 6 /* NumericLiteral */: + case 7 /* StringLiteral */: + case 9 /* NoSubstitutionTemplateLiteral */: + case 10 /* TemplateHead */: + case 15 /* OpenParenToken */: + case 17 /* OpenBracketToken */: + case 13 /* OpenBraceToken */: + case 81 /* FunctionKeyword */: + case 86 /* NewKeyword */: + case 35 /* SlashToken */: + case 55 /* SlashEqualsToken */: + case 32 /* PlusToken */: + case 33 /* MinusToken */: + case 46 /* TildeToken */: + case 45 /* ExclamationToken */: + case 72 /* DeleteKeyword */: + case 95 /* TypeOfKeyword */: + case 97 /* VoidKeyword */: + case 37 /* PlusPlusToken */: + case 38 /* MinusMinusToken */: + case 23 /* LessThanToken */: + case 63 /* Identifier */: + case 108 /* YieldKeyword */: + return true; + default: + return isIdentifier(); + } + } + function isStartOfExpressionStatement() { + return token !== 13 /* OpenBraceToken */ && token !== 81 /* FunctionKeyword */ && isStartOfExpression(); + } + function parseExpression() { + var expr = parseAssignmentExpression(); + while (parseOptional(22 /* CommaToken */)) { + expr = makeBinaryExpression(expr, 22 /* CommaToken */, parseAssignmentExpression()); + } + return expr; + } + function parseInitializer(inParameter) { + if (token !== 51 /* EqualsToken */) { + if (scanner.hasPrecedingLineBreak() || (inParameter && token === 13 /* OpenBraceToken */) || !isStartOfExpression()) { + return undefined; + } + } + parseExpected(51 /* EqualsToken */); + return parseAssignmentExpression(); + } + function parseAssignmentExpression() { + if (isYieldExpression()) { + return parseYieldExpression(); + } + var arrowExpression = tryParseParenthesizedArrowFunctionExpression(); + if (arrowExpression) { + return arrowExpression; + } + var expr = parseConditionalExpression(); + if (expr.kind === 63 /* Identifier */ && token === 31 /* EqualsGreaterThanToken */) { + return parseSimpleArrowFunctionExpression(expr); + } + if (isLeftHandSideExpression(expr) && isAssignmentOperator(token)) { + var operator = token; + nextToken(); + return makeBinaryExpression(expr, operator, parseAssignmentExpression()); + } + return expr; + } + function isYieldExpression() { + if (token === 108 /* YieldKeyword */) { + if (inYieldContext()) { + return true; + } + if (inStrictModeContext()) { + return true; + } + return lookAhead(function () { + nextToken(); + return !scanner.hasPrecedingLineBreak() && isIdentifier(); + }); + } + return false; + } + function parseYieldExpression() { + var node = createNode(160 /* YieldExpression */); + nextToken(); + if (!scanner.hasPrecedingLineBreak() && (token === 34 /* AsteriskToken */ || isStartOfExpression())) { + if (parseOptional(34 /* AsteriskToken */)) { + node.flags = 32768 /* YieldStar */; + } + node.expression = parseAssignmentExpression(); + return finishNode(node); + } + else { + return finishNode(node); + } + } + function parseSimpleArrowFunctionExpression(identifier) { + ts.Debug.assert(token === 31 /* EqualsGreaterThanToken */, "parseSimpleArrowFunctionExpression should only have been called if we had a =>"); + parseExpected(31 /* EqualsGreaterThanToken */); + var parameter = createNode(123 /* Parameter */, identifier.pos); + parameter.name = identifier; + finishNode(parameter); + var parameters = []; + parameters.push(parameter); + parameters.pos = parameter.pos; + parameters.end = parameter.end; + var signature = { parameters: parameters }; + return parseArrowExpressionTail(identifier.pos, signature); + } + function tryParseParenthesizedArrowFunctionExpression() { + var triState = isParenthesizedArrowFunctionExpression(); + if (triState === 0 /* False */) { + return undefined; + } + var pos = getNodePos(); + if (triState === 1 /* True */) { + var sig = parseSignature(129 /* CallSignature */, 50 /* ColonToken */, false, false); + if (parseExpected(31 /* EqualsGreaterThanToken */) || token === 13 /* OpenBraceToken */) { + return parseArrowExpressionTail(pos, sig); + } + else { + return makeFunctionExpression(153 /* ArrowFunction */, pos, undefined, sig, createMissingNode()); + } + } + var sig = tryParseSignatureIfArrowOrBraceFollows(); + if (sig) { + parseExpected(31 /* EqualsGreaterThanToken */); + return parseArrowExpressionTail(pos, sig); + } + else { + return undefined; + } + } + function isParenthesizedArrowFunctionExpression() { + if (token === 15 /* OpenParenToken */ || token === 23 /* LessThanToken */) { + return lookAhead(function () { + var first = token; + var second = nextToken(); + if (first === 15 /* OpenParenToken */) { + if (second === 16 /* CloseParenToken */) { + var third = nextToken(); + switch (third) { + case 31 /* EqualsGreaterThanToken */: + case 50 /* ColonToken */: + case 13 /* OpenBraceToken */: + return 1 /* True */; + default: + return 0 /* False */; + } + } + if (second === 20 /* DotDotDotToken */) { + return 1 /* True */; + } + if (!isIdentifier()) { + return 0 /* False */; + } + if (nextToken() === 50 /* ColonToken */) { + return 1 /* True */; + } + return 2 /* Unknown */; + } + else { + ts.Debug.assert(first === 23 /* LessThanToken */); + if (!isIdentifier()) { + return 0 /* False */; + } + return 2 /* Unknown */; + } + }); + } + if (token === 31 /* EqualsGreaterThanToken */) { + return 1 /* True */; + } + return 0 /* False */; + } + function tryParseSignatureIfArrowOrBraceFollows() { + return tryParse(function () { + var sig = parseSignature(129 /* CallSignature */, 50 /* ColonToken */, false, false); + if (token === 31 /* EqualsGreaterThanToken */ || token === 13 /* OpenBraceToken */) { + return sig; + } + return undefined; + }); + } + function parseArrowExpressionTail(pos, sig) { + var body; + if (token === 13 /* OpenBraceToken */) { + body = parseFunctionBlock(false, false); + } + else if (isStatement(true) && !isStartOfExpressionStatement() && token !== 81 /* FunctionKeyword */) { + body = parseFunctionBlock(false, true); + } + else { + body = parseAssignmentExpression(); + } + return makeFunctionExpression(153 /* ArrowFunction */, pos, undefined, sig, body); + } + function parseConditionalExpression() { + var expr = parseBinaryOperators(parseUnaryExpression(), 0); + while (parseOptional(49 /* QuestionToken */)) { + var node = createNode(157 /* ConditionalExpression */, expr.pos); + node.condition = expr; + node.whenTrue = allowInAnd(parseAssignmentExpression); + parseExpected(50 /* ColonToken */); + node.whenFalse = parseAssignmentExpression(); + expr = finishNode(node); + } + return expr; + } + function parseBinaryOperators(expr, minPrecedence) { + while (true) { + reScanGreaterToken(); + var precedence = getOperatorPrecedence(); + if (precedence && precedence > minPrecedence && (!inDisallowInContext() || token !== 84 /* InKeyword */)) { + var operator = token; + nextToken(); + expr = makeBinaryExpression(expr, operator, parseBinaryOperators(parseUnaryExpression(), precedence)); + continue; + } + return expr; + } + } + function getOperatorPrecedence() { + switch (token) { + case 48 /* BarBarToken */: + return 1; + case 47 /* AmpersandAmpersandToken */: + return 2; + case 43 /* BarToken */: + return 3; + case 44 /* CaretToken */: + return 4; + case 42 /* AmpersandToken */: + return 5; + case 27 /* EqualsEqualsToken */: + case 28 /* ExclamationEqualsToken */: + case 29 /* EqualsEqualsEqualsToken */: + case 30 /* ExclamationEqualsEqualsToken */: + return 6; + case 23 /* LessThanToken */: + case 24 /* GreaterThanToken */: + case 25 /* LessThanEqualsToken */: + case 26 /* GreaterThanEqualsToken */: + case 85 /* InstanceOfKeyword */: + case 84 /* InKeyword */: + return 7; + case 39 /* LessThanLessThanToken */: + case 40 /* GreaterThanGreaterThanToken */: + case 41 /* GreaterThanGreaterThanGreaterThanToken */: + return 8; + case 32 /* PlusToken */: + case 33 /* MinusToken */: + return 9; + case 34 /* AsteriskToken */: + case 35 /* SlashToken */: + case 36 /* PercentToken */: + return 10; + } + return undefined; + } + function makeBinaryExpression(left, operator, right) { + var node = createNode(156 /* BinaryExpression */, left.pos); + node.left = left; + node.operator = operator; + node.right = right; + return finishNode(node); + } + function parseUnaryExpression() { + var pos = getNodePos(); + switch (token) { + case 32 /* PlusToken */: + case 33 /* MinusToken */: + case 46 /* TildeToken */: + case 45 /* ExclamationToken */: + case 72 /* DeleteKeyword */: + case 95 /* TypeOfKeyword */: + case 97 /* VoidKeyword */: + case 37 /* PlusPlusToken */: + case 38 /* MinusMinusToken */: + var operator = token; + nextToken(); + return makeUnaryExpression(154 /* PrefixOperator */, pos, operator, parseUnaryExpression()); + case 23 /* LessThanToken */: + return parseTypeAssertion(); + } + var primaryExpression = parsePrimaryExpression(); + var illegalUsageOfSuperKeyword = primaryExpression.kind === 89 /* SuperKeyword */ && token !== 15 /* OpenParenToken */ && token !== 19 /* DotToken */; + if (illegalUsageOfSuperKeyword) { + error(ts.Diagnostics.super_must_be_followed_by_an_argument_list_or_member_access); + } + var expr = parseCallAndAccess(primaryExpression, false); + ts.Debug.assert(isLeftHandSideExpression(expr)); + if ((token === 37 /* PlusPlusToken */ || token === 38 /* MinusMinusToken */) && !scanner.hasPrecedingLineBreak()) { + var operator = token; + nextToken(); + expr = makeUnaryExpression(155 /* PostfixOperator */, expr.pos, operator, expr); + } + return expr; + } + function parseTypeAssertion() { + var node = createNode(150 /* TypeAssertion */); + parseExpected(23 /* LessThanToken */); + node.type = parseType(); + parseExpected(24 /* GreaterThanToken */); + node.operand = parseUnaryExpression(); + return finishNode(node); + } + function makeUnaryExpression(kind, pos, operator, operand) { + var node = createNode(kind, pos); + node.operator = operator; + node.operand = operand; + return finishNode(node); + } + function parseCallAndAccess(expr, inNewExpression) { + while (true) { + var dotOrBracketStart = scanner.getTokenPos(); + if (parseOptional(19 /* DotToken */)) { + var propertyAccess = createNode(145 /* PropertyAccess */, expr.pos); + var id; + if (scanner.hasPrecedingLineBreak() && scanner.isReservedWord()) { + var matchesPattern = lookAhead(function () { + nextToken(); + return !scanner.hasPrecedingLineBreak() && (scanner.isIdentifier() || scanner.isReservedWord); + }); + if (matchesPattern) { + errorAtPos(dotOrBracketStart + 1, 0, ts.Diagnostics.Identifier_expected); + id = createMissingNode(); + } + } + propertyAccess.left = expr; + propertyAccess.right = id || parseIdentifierName(); + expr = finishNode(propertyAccess); + continue; + } + if (parseOptional(17 /* OpenBracketToken */)) { + var indexedAccess = createNode(146 /* IndexedAccess */, expr.pos); + indexedAccess.object = expr; + if (inNewExpression && parseOptional(18 /* CloseBracketToken */)) { + indexedAccess.index = createMissingNode(); + } + else { + indexedAccess.index = allowInAnd(parseExpression); + if (indexedAccess.index.kind === 7 /* StringLiteral */ || indexedAccess.index.kind === 6 /* NumericLiteral */) { + var literal = indexedAccess.index; + literal.text = internIdentifier(literal.text); + } + parseExpected(18 /* CloseBracketToken */); + } + expr = finishNode(indexedAccess); + continue; + } + if ((token === 15 /* OpenParenToken */ || token === 23 /* LessThanToken */) && !inNewExpression) { + var callExpr = createNode(147 /* CallExpression */, expr.pos); + callExpr.func = expr; + if (token === 23 /* LessThanToken */) { + if (!(callExpr.typeArguments = tryParse(parseTypeArgumentsAndOpenParen))) + return expr; + } + else { + parseExpected(15 /* OpenParenToken */); + } + callExpr.arguments = parseDelimitedList(10 /* ArgumentExpressions */, parseArgumentExpression); + parseExpected(16 /* CloseParenToken */); + expr = finishNode(callExpr); + continue; + } + if (token === 9 /* NoSubstitutionTemplateLiteral */ || token === 10 /* TemplateHead */) { + var tagExpression = createNode(149 /* TaggedTemplateExpression */, expr.pos); + tagExpression.tag = expr; + tagExpression.template = token === 9 /* NoSubstitutionTemplateLiteral */ ? parseLiteralNode() : parseTemplateExpression(); + expr = finishNode(tagExpression); + continue; + } + return expr; + } + } + function parseTypeArgumentsAndOpenParen() { + var result = parseTypeArguments(); + parseExpected(15 /* OpenParenToken */); + return result; + } + function parseTypeArguments() { + return parseBracketedList(15 /* TypeArguments */, parseSingleTypeArgument, 23 /* LessThanToken */, 24 /* GreaterThanToken */); + } + function parseSingleTypeArgument() { + if (token === 22 /* CommaToken */) { + return createNode(120 /* Missing */); + } + return parseType(); + } + function parsePrimaryExpression() { + switch (token) { + case 91 /* ThisKeyword */: + case 89 /* SuperKeyword */: + case 87 /* NullKeyword */: + case 93 /* TrueKeyword */: + case 78 /* FalseKeyword */: + return parseTokenNode(); + case 6 /* NumericLiteral */: + case 7 /* StringLiteral */: + case 9 /* NoSubstitutionTemplateLiteral */: + return parseLiteralNode(); + case 15 /* OpenParenToken */: + return parseParenExpression(); + case 17 /* OpenBracketToken */: + return parseArrayLiteral(); + case 13 /* OpenBraceToken */: + return parseObjectLiteral(); + case 81 /* FunctionKeyword */: + return parseFunctionExpression(); + case 86 /* NewKeyword */: + return parseNewExpression(); + case 35 /* SlashToken */: + case 55 /* SlashEqualsToken */: + if (reScanSlashToken() === 8 /* RegularExpressionLiteral */) { + return parseLiteralNode(); + } + break; + case 10 /* TemplateHead */: + return parseTemplateExpression(); + default: + if (isIdentifier()) { + return parseIdentifier(); + } + } + error(ts.Diagnostics.Expression_expected); + return createMissingNode(); + } + function parseParenExpression() { + var node = createNode(151 /* ParenExpression */); + parseExpected(15 /* OpenParenToken */); + node.expression = allowInAnd(parseExpression); + parseExpected(16 /* CloseParenToken */); + return finishNode(node); + } + function parseAssignmentExpressionOrOmittedExpression() { + return token === 22 /* CommaToken */ ? createNode(161 /* OmittedExpression */) : parseAssignmentExpression(); + } + function parseArrayLiteralElement() { + return parseAssignmentExpressionOrOmittedExpression(); + } + function parseArgumentExpression() { + return allowInAnd(parseAssignmentExpressionOrOmittedExpression); + } + function parseArrayLiteral() { + var node = createNode(141 /* ArrayLiteral */); + parseExpected(17 /* OpenBracketToken */); + if (scanner.hasPrecedingLineBreak()) + node.flags |= 256 /* MultiLine */; + node.elements = parseDelimitedList(12 /* ArrayLiteralMembers */, parseArrayLiteralElement); + parseExpected(18 /* CloseBracketToken */); + return finishNode(node); + } + function parsePropertyAssignment() { + var nodePos = scanner.getStartPos(); + var isGenerator = parseOptional(34 /* AsteriskToken */); + var tokenIsIdentifier = isIdentifier(); + var nameToken = token; + var propertyName = parsePropertyName(); + var node; + if (isGenerator || token === 15 /* OpenParenToken */ || token === 23 /* LessThanToken */) { + node = createNode(143 /* PropertyAssignment */, nodePos); + node.name = propertyName; + if (isGenerator) { + node.flags |= 16384 /* Generator */; + } + var sig = parseSignature(129 /* CallSignature */, 50 /* ColonToken */, false, isGenerator); + var body = parseFunctionBlock(isGenerator, false); + node.initializer = makeFunctionExpression(152 /* FunctionExpression */, node.pos, undefined, sig, body); + return finishNode(node); + } + var flags = 0; + if (token === 49 /* QuestionToken */) { + flags |= 4 /* QuestionMark */; + nextToken(); + } + if ((token === 22 /* CommaToken */ || token === 14 /* CloseBraceToken */) && tokenIsIdentifier) { + node = createNode(144 /* ShorthandPropertyAssignment */, nodePos); + node.name = propertyName; + } + else { + node = createNode(143 /* PropertyAssignment */, nodePos); + node.name = propertyName; + parseExpected(50 /* ColonToken */); + node.initializer = allowInAnd(parseAssignmentExpression); + } + node.flags = flags; + return finishNode(node); + } + function parseObjectLiteralMember() { + var initialPos = getNodePos(); + var initialToken = token; + if (parseContextualModifier(113 /* GetKeyword */) || parseContextualModifier(117 /* SetKeyword */)) { + var kind = initialToken === 113 /* GetKeyword */ ? 127 /* GetAccessor */ : 128 /* SetAccessor */; + return parseMemberAccessorDeclaration(kind, initialPos, undefined); + } + return parsePropertyAssignment(); + } + function parseObjectLiteral() { + var node = createNode(142 /* ObjectLiteral */); + parseExpected(13 /* OpenBraceToken */); + if (scanner.hasPrecedingLineBreak()) { + node.flags |= 256 /* MultiLine */; + } + node.properties = parseDelimitedList(11 /* ObjectLiteralMembers */, parseObjectLiteralMember); + parseExpected(14 /* CloseBraceToken */); + return finishNode(node); + } + function parseFunctionExpression() { + var pos = getNodePos(); + parseExpected(81 /* FunctionKeyword */); + var isGenerator = parseOptional(34 /* AsteriskToken */); + var name = isGenerator ? doInYieldContext(parseOptionalIdentifier) : parseOptionalIdentifier(); + var sig = parseSignature(129 /* CallSignature */, 50 /* ColonToken */, false, isGenerator); + var body = parseFunctionBlock(isGenerator, false); + return makeFunctionExpression(152 /* FunctionExpression */, pos, name, sig, body, isGenerator ? 16384 /* Generator */ : undefined); + } + function parseOptionalIdentifier() { + return isIdentifier() ? parseIdentifier() : undefined; + } + function makeFunctionExpression(kind, pos, name, sig, body, flags) { + var node = createNode(kind, pos); + if (flags) { + node.flags = flags; + } + node.name = name; + node.typeParameters = sig.typeParameters; + node.parameters = sig.parameters; + node.type = sig.type; + node.body = body; + return finishNode(node); + } + function parseNewExpression() { + var node = createNode(148 /* NewExpression */); + parseExpected(86 /* NewKeyword */); + node.func = parseCallAndAccess(parsePrimaryExpression(), true); + if (parseOptional(15 /* OpenParenToken */) || token === 23 /* LessThanToken */ && (node.typeArguments = tryParse(parseTypeArgumentsAndOpenParen))) { + node.arguments = parseDelimitedList(10 /* ArgumentExpressions */, parseArgumentExpression); + parseExpected(16 /* CloseParenToken */); + } + return finishNode(node); + } + function parseBlock(ignoreMissingOpenBrace, checkForStrictMode) { + var node = createNode(162 /* Block */); + if (parseExpected(13 /* OpenBraceToken */) || ignoreMissingOpenBrace) { + node.statements = parseList(2 /* BlockStatements */, checkForStrictMode, parseStatement); + parseExpected(14 /* CloseBraceToken */); + } + else { + node.statements = createMissingList(); + } + return finishNode(node); + } + function parseFunctionBlock(allowYield, ignoreMissingOpenBrace) { + var savedYieldContext = inYieldContext(); + setYieldContext(allowYield); + var block = parseBlock(ignoreMissingOpenBrace, true); + block.kind = 187 /* FunctionBlock */; + setYieldContext(savedYieldContext); + return block; + } + function parseEmptyStatement() { + var node = createNode(164 /* EmptyStatement */); + parseExpected(21 /* SemicolonToken */); + return finishNode(node); + } + function parseIfStatement() { + var node = createNode(166 /* IfStatement */); + parseExpected(82 /* IfKeyword */); + parseExpected(15 /* OpenParenToken */); + node.expression = allowInAnd(parseExpression); + parseExpected(16 /* CloseParenToken */); + node.thenStatement = parseStatement(); + node.elseStatement = parseOptional(74 /* ElseKeyword */) ? parseStatement() : undefined; + return finishNode(node); + } + function parseDoStatement() { + var node = createNode(167 /* DoStatement */); + parseExpected(73 /* DoKeyword */); + node.statement = parseStatement(); + parseExpected(98 /* WhileKeyword */); + parseExpected(15 /* OpenParenToken */); + node.expression = allowInAnd(parseExpression); + parseExpected(16 /* CloseParenToken */); + parseOptional(21 /* SemicolonToken */); + return finishNode(node); + } + function parseWhileStatement() { + var node = createNode(168 /* WhileStatement */); + parseExpected(98 /* WhileKeyword */); + parseExpected(15 /* OpenParenToken */); + node.expression = allowInAnd(parseExpression); + parseExpected(16 /* CloseParenToken */); + node.statement = parseStatement(); + return finishNode(node); + } + function parseForOrForInStatement() { + var pos = getNodePos(); + parseExpected(80 /* ForKeyword */); + parseExpected(15 /* OpenParenToken */); + if (token !== 21 /* SemicolonToken */) { + if (parseOptional(96 /* VarKeyword */)) { + var declarations = disallowInAnd(parseVariableDeclarationList); + } + else if (parseOptional(102 /* LetKeyword */)) { + var declarations = setFlag(disallowInAnd(parseVariableDeclarationList), 2048 /* Let */); + } + else if (parseOptional(68 /* ConstKeyword */)) { + var declarations = setFlag(disallowInAnd(parseVariableDeclarationList), 4096 /* Const */); + } + else { + var varOrInit = disallowInAnd(parseExpression); + } + } + var forOrForInStatement; + if (parseOptional(84 /* InKeyword */)) { + var forInStatement = createNode(170 /* ForInStatement */, pos); + if (declarations) { + forInStatement.declarations = declarations; + } + else { + forInStatement.variable = varOrInit; + } + forInStatement.expression = allowInAnd(parseExpression); + parseExpected(16 /* CloseParenToken */); + forOrForInStatement = forInStatement; + } + else { + var forStatement = createNode(169 /* ForStatement */, pos); + if (declarations) { + forStatement.declarations = declarations; + } + if (varOrInit) { + forStatement.initializer = varOrInit; + } + parseExpected(21 /* SemicolonToken */); + if (token !== 21 /* SemicolonToken */ && token !== 16 /* CloseParenToken */) { + forStatement.condition = allowInAnd(parseExpression); + } + parseExpected(21 /* SemicolonToken */); + if (token !== 16 /* CloseParenToken */) { + forStatement.iterator = allowInAnd(parseExpression); + } + parseExpected(16 /* CloseParenToken */); + forOrForInStatement = forStatement; + } + forOrForInStatement.statement = parseStatement(); + return finishNode(forOrForInStatement); + } + function parseBreakOrContinueStatement(kind) { + var node = createNode(kind); + parseExpected(kind === 172 /* BreakStatement */ ? 64 /* BreakKeyword */ : 69 /* ContinueKeyword */); + if (!canParseSemicolon()) { + node.label = parseIdentifier(); + } + parseSemicolon(); + return finishNode(node); + } + function parseReturnStatement() { + var node = createNode(173 /* ReturnStatement */); + parseExpected(88 /* ReturnKeyword */); + if (!canParseSemicolon()) { + node.expression = allowInAnd(parseExpression); + } + parseSemicolon(); + return finishNode(node); + } + function parseWithStatement() { + var node = createNode(174 /* WithStatement */); + parseExpected(99 /* WithKeyword */); + parseExpected(15 /* OpenParenToken */); + node.expression = allowInAnd(parseExpression); + parseExpected(16 /* CloseParenToken */); + node.statement = parseStatement(); + return finishNode(node); + } + function parseCaseClause() { + var node = createNode(176 /* CaseClause */); + parseExpected(65 /* CaseKeyword */); + node.expression = allowInAnd(parseExpression); + parseExpected(50 /* ColonToken */); + node.statements = parseList(4 /* SwitchClauseStatements */, false, parseStatement); + return finishNode(node); + } + function parseDefaultClause() { + var node = createNode(177 /* DefaultClause */); + parseExpected(71 /* DefaultKeyword */); + parseExpected(50 /* ColonToken */); + node.statements = parseList(4 /* SwitchClauseStatements */, false, parseStatement); + return finishNode(node); + } + function parseCaseOrDefaultClause() { + return token === 65 /* CaseKeyword */ ? parseCaseClause() : parseDefaultClause(); + } + function parseSwitchStatement() { + var node = createNode(175 /* SwitchStatement */); + parseExpected(90 /* SwitchKeyword */); + parseExpected(15 /* OpenParenToken */); + node.expression = allowInAnd(parseExpression); + parseExpected(16 /* CloseParenToken */); + parseExpected(13 /* OpenBraceToken */); + node.clauses = parseList(3 /* SwitchClauses */, false, parseCaseOrDefaultClause); + parseExpected(14 /* CloseBraceToken */); + return finishNode(node); + } + function parseThrowStatement() { + var node = createNode(179 /* ThrowStatement */); + parseExpected(92 /* ThrowKeyword */); + if (scanner.hasPrecedingLineBreak()) { + error(ts.Diagnostics.Line_break_not_permitted_here); + } + node.expression = allowInAnd(parseExpression); + parseSemicolon(); + return finishNode(node); + } + function parseTryStatement() { + var node = createNode(180 /* TryStatement */); + node.tryBlock = parseTokenAndBlock(94 /* TryKeyword */, 181 /* TryBlock */); + if (token === 66 /* CatchKeyword */) { + node.catchBlock = parseCatchBlock(); + } + if (token === 79 /* FinallyKeyword */) { + node.finallyBlock = parseTokenAndBlock(79 /* FinallyKeyword */, 183 /* FinallyBlock */); + } + if (!(node.catchBlock || node.finallyBlock)) { + error(ts.Diagnostics.catch_or_finally_expected); + } + return finishNode(node); + } + function parseTokenAndBlock(token, kind) { + var pos = getNodePos(); + parseExpected(token); + var result = parseBlock(false, false); + result.kind = kind; + result.pos = pos; + return result; + } + function parseCatchBlock() { + var pos = getNodePos(); + parseExpected(66 /* CatchKeyword */); + parseExpected(15 /* OpenParenToken */); + var variable = parseIdentifier(); + var typeAnnotation = parseTypeAnnotation(); + parseExpected(16 /* CloseParenToken */); + var result = parseBlock(false, false); + result.kind = 182 /* CatchBlock */; + result.pos = pos; + result.variable = variable; + result.type = typeAnnotation; + return result; + } + function parseDebuggerStatement() { + var node = createNode(184 /* DebuggerStatement */); + parseExpected(70 /* DebuggerKeyword */); + parseSemicolon(); + return finishNode(node); + } + function isLabel() { + return isIdentifier() && lookAhead(function () { return nextToken() === 50 /* ColonToken */; }); + } + function parseLabeledStatement() { + var node = createNode(178 /* LabeledStatement */); + node.label = parseIdentifier(); + parseExpected(50 /* ColonToken */); + node.statement = parseStatement(); + return finishNode(node); + } + function parseExpressionStatement() { + var node = createNode(165 /* ExpressionStatement */); + node.expression = allowInAnd(parseExpression); + parseSemicolon(); + return finishNode(node); + } + function isStatement(inErrorRecovery) { + switch (token) { + case 21 /* SemicolonToken */: + return !inErrorRecovery; + case 13 /* OpenBraceToken */: + case 96 /* VarKeyword */: + case 102 /* LetKeyword */: + case 81 /* FunctionKeyword */: + case 82 /* IfKeyword */: + case 73 /* DoKeyword */: + case 98 /* WhileKeyword */: + case 80 /* ForKeyword */: + case 69 /* ContinueKeyword */: + case 64 /* BreakKeyword */: + case 88 /* ReturnKeyword */: + case 99 /* WithKeyword */: + case 90 /* SwitchKeyword */: + case 92 /* ThrowKeyword */: + case 94 /* TryKeyword */: + case 70 /* DebuggerKeyword */: + case 66 /* CatchKeyword */: + case 79 /* FinallyKeyword */: + return true; + case 68 /* ConstKeyword */: + var isConstEnum = lookAhead(function () { return nextToken() === 75 /* EnumKeyword */; }); + return !isConstEnum; + case 101 /* InterfaceKeyword */: + case 67 /* ClassKeyword */: + case 114 /* ModuleKeyword */: + case 75 /* EnumKeyword */: + case 119 /* TypeKeyword */: + if (isDeclarationStart()) { + return false; + } + case 106 /* PublicKeyword */: + case 104 /* PrivateKeyword */: + case 105 /* ProtectedKeyword */: + case 107 /* StaticKeyword */: + if (lookAhead(function () { return nextToken() >= 63 /* Identifier */; })) { + return false; + } + default: + return isStartOfExpression(); + } + } + function parseStatement() { + switch (token) { + case 13 /* OpenBraceToken */: + return parseBlock(false, false); + case 96 /* VarKeyword */: + case 102 /* LetKeyword */: + case 68 /* ConstKeyword */: + return parseVariableStatement(scanner.getStartPos(), undefined); + case 81 /* FunctionKeyword */: + return parseFunctionDeclaration(scanner.getStartPos(), undefined); + case 21 /* SemicolonToken */: + return parseEmptyStatement(); + case 82 /* IfKeyword */: + return parseIfStatement(); + case 73 /* DoKeyword */: + return parseDoStatement(); + case 98 /* WhileKeyword */: + return parseWhileStatement(); + case 80 /* ForKeyword */: + return parseForOrForInStatement(); + case 69 /* ContinueKeyword */: + return parseBreakOrContinueStatement(171 /* ContinueStatement */); + case 64 /* BreakKeyword */: + return parseBreakOrContinueStatement(172 /* BreakStatement */); + case 88 /* ReturnKeyword */: + return parseReturnStatement(); + case 99 /* WithKeyword */: + return parseWithStatement(); + case 90 /* SwitchKeyword */: + return parseSwitchStatement(); + case 92 /* ThrowKeyword */: + return parseThrowStatement(); + case 94 /* TryKeyword */: + case 66 /* CatchKeyword */: + case 79 /* FinallyKeyword */: + return parseTryStatement(); + case 70 /* DebuggerKeyword */: + return parseDebuggerStatement(); + default: + return isLabel() ? parseLabeledStatement() : parseExpressionStatement(); + } + } + function parseFunctionBlockOrSemicolon(isGenerator) { + if (token === 13 /* OpenBraceToken */) { + return parseFunctionBlock(isGenerator, false); + } + if (canParseSemicolon()) { + parseSemicolon(); + return undefined; + } + error(ts.Diagnostics.Block_or_expected); + } + function parseVariableDeclaration() { + var node = createNode(185 /* VariableDeclaration */); + node.name = parseIdentifier(); + node.type = parseTypeAnnotation(); + node.initializer = parseInitializer(false); + return finishNode(node); + } + function setFlag(array, flag) { + for (var i = 0, n = array.length; i < n; i++) { + array[i].flags |= flag; + } + return array; + } + function parseVariableDeclarationList() { + return parseDelimitedList(9 /* VariableDeclarations */, parseVariableDeclaration); + } + function parseVariableStatement(fullStart, modifiers) { + var node = createNode(163 /* VariableStatement */, fullStart); + setModifiers(node, modifiers); + if (token === 102 /* LetKeyword */) { + node.flags |= 2048 /* Let */; + } + else if (token === 68 /* ConstKeyword */) { + node.flags |= 4096 /* Const */; + } + else { + ts.Debug.assert(token === 96 /* VarKeyword */); + } + nextToken(); + node.declarations = allowInAnd(parseVariableDeclarationList); + setFlag(node.declarations, node.flags); + parseSemicolon(); + return finishNode(node); + } + function parseFunctionDeclaration(fullStart, modifiers) { + var node = createNode(186 /* FunctionDeclaration */, fullStart); + setModifiers(node, modifiers); + parseExpected(81 /* FunctionKeyword */); + var isGenerator = parseOptional(34 /* AsteriskToken */); + if (isGenerator) { + node.flags |= 16384 /* Generator */; + } + node.name = parseIdentifier(); + fillSignature(129 /* CallSignature */, 50 /* ColonToken */, false, isGenerator, node); + node.body = parseFunctionBlockOrSemicolon(isGenerator); + return finishNode(node); + } + function parseConstructorDeclaration(pos, modifiers) { + var node = createNode(126 /* Constructor */, pos); + setModifiers(node, modifiers); + parseExpected(111 /* ConstructorKeyword */); + fillSignature(129 /* CallSignature */, 50 /* ColonToken */, false, false, node); + node.body = parseFunctionBlockOrSemicolon(false); + return finishNode(node); + } + function parsePropertyMemberDeclaration(fullStart, modifiers) { + var flags = modifiers ? modifiers.flags : 0; + var isGenerator = parseOptional(34 /* AsteriskToken */); + if (isGenerator) { + flags |= 16384 /* Generator */; + } + var name = parsePropertyName(); + if (parseOptional(49 /* QuestionToken */)) { + flags |= 4 /* QuestionMark */; + } + if (isGenerator || token === 15 /* OpenParenToken */ || token === 23 /* LessThanToken */) { + var method = createNode(125 /* Method */, fullStart); + setModifiers(method, modifiers); + if (flags) { + method.flags = flags; + } + method.name = name; + fillSignature(129 /* CallSignature */, 50 /* ColonToken */, false, isGenerator, method); + method.body = parseFunctionBlockOrSemicolon(isGenerator); + return finishNode(method); + } + else { + var property = createNode(124 /* Property */, fullStart); + setModifiers(property, modifiers); + if (flags) { + property.flags = flags; + } + property.name = name; + property.type = parseTypeAnnotation(); + property.initializer = allowInAnd(function () { return parseInitializer(false); }); + parseSemicolon(); + return finishNode(property); + } + } + function parseMemberAccessorDeclaration(kind, fullStart, modifiers) { + var node = createNode(kind, fullStart); + setModifiers(node, modifiers); + node.name = parsePropertyName(); + fillSignature(129 /* CallSignature */, 50 /* ColonToken */, false, false, node); + node.body = parseFunctionBlockOrSemicolon(false); + return finishNode(node); + } + function isClassMemberStart() { + var idToken; + while (isModifier(token)) { + idToken = token; + nextToken(); + } + if (token === 34 /* AsteriskToken */) { + return true; + } + if (isPropertyName()) { + idToken = token; + nextToken(); + } + if (token === 17 /* OpenBracketToken */) { + return true; + } + if (idToken !== undefined) { + if (!isKeyword(idToken) || idToken === 117 /* SetKeyword */ || idToken === 113 /* GetKeyword */) { + return true; + } + switch (token) { + case 15 /* OpenParenToken */: + case 23 /* LessThanToken */: + case 50 /* ColonToken */: + case 51 /* EqualsToken */: + case 49 /* QuestionToken */: + return true; + default: + return canParseSemicolon(); + } + } + return false; + } + function parseModifiers() { + var flags = 0; + var modifiers; + while (true) { + var modifierStart = scanner.getTokenPos(); + var modifierKind = token; + if (!parseAnyContextualModifier()) { + break; + } + if (!modifiers) { + modifiers = []; + } + flags |= modifierToFlag(modifierKind); + modifiers.push(finishNode(createNode(modifierKind, modifierStart))); + } + if (modifiers) { + modifiers.flags = flags; + } + return modifiers; + } + function parseClassMemberDeclaration() { + var fullStart = getNodePos(); + var modifiers = parseModifiers(); + if (parseContextualModifier(113 /* GetKeyword */)) { + return parseMemberAccessorDeclaration(127 /* GetAccessor */, fullStart, modifiers); + } + if (parseContextualModifier(117 /* SetKeyword */)) { + return parseMemberAccessorDeclaration(128 /* SetAccessor */, fullStart, modifiers); + } + if (token === 111 /* ConstructorKeyword */) { + return parseConstructorDeclaration(fullStart, modifiers); + } + if (token >= 63 /* Identifier */ || token === 7 /* StringLiteral */ || token === 6 /* NumericLiteral */ || token === 34 /* AsteriskToken */) { + return parsePropertyMemberDeclaration(fullStart, modifiers); + } + if (token === 17 /* OpenBracketToken */) { + return parseIndexSignatureMember(fullStart, modifiers); + } + ts.Debug.fail("Should not have attempted to parse class member declaration."); + } + function parseClassDeclaration(fullStart, modifiers) { + var node = createNode(188 /* ClassDeclaration */, fullStart); + setModifiers(node, modifiers); + parseExpected(67 /* ClassKeyword */); + node.name = parseIdentifier(); + node.typeParameters = parseTypeParameters(); + node.baseType = inGeneratorParameterContext() ? doOutsideOfYieldContext(parseClassBaseType) : parseClassBaseType(); + if (parseOptional(100 /* ImplementsKeyword */)) { + node.implementedTypes = parseDelimitedList(8 /* BaseTypeReferences */, parseTypeReference); + } + if (parseExpected(13 /* OpenBraceToken */)) { + node.members = inGeneratorParameterContext() ? doOutsideOfYieldContext(parseClassMembers) : parseClassMembers(); + parseExpected(14 /* CloseBraceToken */); + } + else { + node.members = createMissingList(); + } + return finishNode(node); + } + function parseClassMembers() { + return parseList(6 /* ClassMembers */, false, parseClassMemberDeclaration); + } + function parseClassBaseType() { + return parseOptional(77 /* ExtendsKeyword */) ? parseTypeReference() : undefined; + } + function parseInterfaceDeclaration(fullStart, modifiers) { + var node = createNode(189 /* InterfaceDeclaration */, fullStart); + setModifiers(node, modifiers); + parseExpected(101 /* InterfaceKeyword */); + node.name = parseIdentifier(); + node.typeParameters = parseTypeParameters(); + if (parseOptional(77 /* ExtendsKeyword */)) { + node.baseTypes = parseDelimitedList(8 /* BaseTypeReferences */, parseTypeReference); + } + node.members = parseObjectType(); + return finishNode(node); + } + function parseTypeAliasDeclaration(fullStart, modifiers) { + var node = createNode(190 /* TypeAliasDeclaration */, fullStart); + setModifiers(node, modifiers); + parseExpected(119 /* TypeKeyword */); + node.name = parseIdentifier(); + parseExpected(51 /* EqualsToken */); + node.type = parseType(); + parseSemicolon(); + return finishNode(node); + } + function parseEnumMember() { + var node = createNode(196 /* EnumMember */, scanner.getStartPos()); + node.name = parsePropertyName(); + node.initializer = allowInAnd(function () { return parseInitializer(false); }); + return finishNode(node); + } + function parseAndCheckEnumDeclaration(fullStart, flags) { + var node = createNode(191 /* EnumDeclaration */, fullStart); + node.flags = flags; + if (flags & 4096 /* Const */) { + parseExpected(68 /* ConstKeyword */); + } + parseExpected(75 /* EnumKeyword */); + node.name = parseIdentifier(); + if (parseExpected(13 /* OpenBraceToken */)) { + node.members = parseDelimitedList(7 /* EnumMembers */, parseEnumMember); + parseExpected(14 /* CloseBraceToken */); + } + else { + node.members = createMissingList(); + } + return finishNode(node); + } + function parseModuleBody() { + var node = createNode(193 /* ModuleBlock */, scanner.getStartPos()); + if (parseExpected(13 /* OpenBraceToken */)) { + node.statements = parseList(1 /* ModuleElements */, false, parseModuleElement); + parseExpected(14 /* CloseBraceToken */); + } + else { + node.statements = createMissingList(); + } + return finishNode(node); + } + function parseInternalModuleTail(fullStart, flags) { + var node = createNode(192 /* ModuleDeclaration */, fullStart); + node.flags = flags; + node.name = parseIdentifier(); + node.body = parseOptional(19 /* DotToken */) ? parseInternalModuleTail(getNodePos(), 1 /* Export */) : parseModuleBody(); + return finishNode(node); + } + function parseAmbientExternalModuleDeclaration(fullStart, flags) { + var node = createNode(192 /* ModuleDeclaration */, fullStart); + node.flags = flags; + node.name = parseStringLiteral(); + node.body = parseModuleBody(); + return finishNode(node); + } + function parseModuleDeclaration(fullStart, flags) { + parseExpected(114 /* ModuleKeyword */); + return token === 7 /* StringLiteral */ ? parseAmbientExternalModuleDeclaration(fullStart, flags) : parseInternalModuleTail(fullStart, flags); + } + function parseImportDeclaration(fullStart, modifiers) { + var node = createNode(194 /* ImportDeclaration */, fullStart); + setModifiers(node, modifiers); + parseExpected(83 /* ImportKeyword */); + node.name = parseIdentifier(); + parseExpected(51 /* EqualsToken */); + var entityName = parseEntityName(false); + if (entityName.kind === 63 /* Identifier */ && entityName.text === "require" && parseOptional(15 /* OpenParenToken */)) { + node.externalModuleName = parseStringLiteral(); + parseExpected(16 /* CloseParenToken */); + } + else { + node.entityName = entityName; + } + parseSemicolon(); + return finishNode(node); + } + function parseExportAssignmentTail(fullStart, modifiers) { + var node = createNode(195 /* ExportAssignment */, fullStart); + setModifiers(node, modifiers); + node.exportName = parseIdentifier(); + parseSemicolon(); + return finishNode(node); + } + function isDeclarationStart() { + switch (token) { + case 96 /* VarKeyword */: + case 102 /* LetKeyword */: + case 68 /* ConstKeyword */: + case 81 /* FunctionKeyword */: + return true; + case 67 /* ClassKeyword */: + case 101 /* InterfaceKeyword */: + case 75 /* EnumKeyword */: + case 83 /* ImportKeyword */: + case 119 /* TypeKeyword */: + return lookAhead(function () { return nextToken() >= 63 /* Identifier */; }); + case 114 /* ModuleKeyword */: + return lookAhead(function () { return nextToken() >= 63 /* Identifier */ || token === 7 /* StringLiteral */; }); + case 76 /* ExportKeyword */: + return lookAhead(function () { return nextToken() === 51 /* EqualsToken */ || isDeclarationStart(); }); + case 112 /* DeclareKeyword */: + case 106 /* PublicKeyword */: + case 104 /* PrivateKeyword */: + case 105 /* ProtectedKeyword */: + case 107 /* StaticKeyword */: + return lookAhead(function () { + nextToken(); + return isDeclarationStart(); + }); + } + } + function parseDeclaration() { + var fullStart = getNodePos(); + var modifiers = parseModifiers(); + if (token === 76 /* ExportKeyword */) { + nextToken(); + if (parseOptional(51 /* EqualsToken */)) { + return parseExportAssignmentTail(fullStart, modifiers); + } + } + var flags = modifiers ? modifiers.flags : 0; + var result; + switch (token) { + case 96 /* VarKeyword */: + case 102 /* LetKeyword */: + result = parseVariableStatement(fullStart, modifiers); + break; + case 68 /* ConstKeyword */: + var isConstEnum = lookAhead(function () { return nextToken() === 75 /* EnumKeyword */; }); + if (isConstEnum) { + result = parseAndCheckEnumDeclaration(fullStart, flags | 4096 /* Const */); + } + else { + result = parseVariableStatement(fullStart, modifiers); + } + break; + case 81 /* FunctionKeyword */: + result = parseFunctionDeclaration(fullStart, modifiers); + break; + case 67 /* ClassKeyword */: + result = parseClassDeclaration(fullStart, modifiers); + break; + case 101 /* InterfaceKeyword */: + result = parseInterfaceDeclaration(fullStart, modifiers); + break; + case 119 /* TypeKeyword */: + result = parseTypeAliasDeclaration(fullStart, modifiers); + break; + case 75 /* EnumKeyword */: + result = parseAndCheckEnumDeclaration(fullStart, flags); + break; + case 114 /* ModuleKeyword */: + result = parseModuleDeclaration(fullStart, flags); + break; + case 83 /* ImportKeyword */: + result = parseImportDeclaration(fullStart, modifiers); + break; + default: + error(ts.Diagnostics.Declaration_expected); + } + if (modifiers) { + result.modifiers = modifiers; + } + return result; + } + function isSourceElement(inErrorRecovery) { + return isDeclarationStart() || isStatement(inErrorRecovery); + } + function parseSourceElement() { + return parseSourceElementOrModuleElement(); + } + function parseModuleElement() { + return parseSourceElementOrModuleElement(); + } + function parseSourceElementOrModuleElement() { + return isDeclarationStart() ? parseDeclaration() : parseStatement(); + } + function processReferenceComments() { + var referencedFiles = []; + var amdDependencies = []; + var amdModuleName; + commentRanges = []; + token = scanner.scan(); + for (var i = 0; i < commentRanges.length; i++) { + var range = commentRanges[i]; + var comment = sourceText.substring(range.pos, range.end); + var referencePathMatchResult = getFileReferenceFromReferencePath(comment, range); + if (referencePathMatchResult) { + var fileReference = referencePathMatchResult.fileReference; + file.hasNoDefaultLib = referencePathMatchResult.isNoDefaultLib; + var diagnostic = referencePathMatchResult.diagnostic; + if (fileReference) { + referencedFiles.push(fileReference); + } + if (diagnostic) { + errorAtPos(range.pos, range.end - range.pos, diagnostic); + } + } + else { + var amdModuleNameRegEx = /^\/\/\/\s* 0) { + syntacticDiagnostics = file.parseDiagnostics; + } + else { + syntacticDiagnostics = file.grammarDiagnostics; + checkGrammar(sourceText, languageVersion, file); + } + } + ts.Debug.assert(syntacticDiagnostics !== undefined); + return syntacticDiagnostics; + } + scanner = ts.createScanner(languageVersion, true, sourceText, scanError, onComment); + var rootNodeFlags = 0; + if (ts.fileExtensionIs(filename, ".d.ts")) { + rootNodeFlags = 1024 /* DeclarationFile */; + } + file = createRootNode(197 /* SourceFile */, 0, sourceText.length, rootNodeFlags); + file.filename = ts.normalizePath(filename); + file.text = sourceText; + file.getLineAndCharacterFromPosition = getLineAndCharacterFromSourcePosition; + file.getPositionFromLineAndCharacter = getPositionFromSourceLineAndCharacter; + file.getLineStarts = getLineStarts; + file.getSyntacticDiagnostics = getSyntacticDiagnostics; + file.parseDiagnostics = []; + file.grammarDiagnostics = []; + file.semanticDiagnostics = []; + var referenceComments = processReferenceComments(); + file.referencedFiles = referenceComments.referencedFiles; + file.amdDependencies = referenceComments.amdDependencies; + file.amdModuleName = referenceComments.amdModuleName; + file.statements = parseList(0 /* SourceElements */, true, parseSourceElement); + file.externalModuleIndicator = getExternalModuleIndicator(); + file.nodeCount = nodeCount; + file.identifierCount = identifierCount; + file.version = version; + file.isOpen = isOpen; + file.languageVersion = languageVersion; + file.identifiers = identifiers; + return file; + } + ts.createSourceFile = createSourceFile; + function isLeftHandSideExpression(expr) { + if (expr) { + switch (expr.kind) { + case 145 /* PropertyAccess */: + case 146 /* IndexedAccess */: + case 148 /* NewExpression */: + case 147 /* CallExpression */: + case 149 /* TaggedTemplateExpression */: + case 141 /* ArrayLiteral */: + case 151 /* ParenExpression */: + case 142 /* ObjectLiteral */: + case 152 /* FunctionExpression */: + case 63 /* Identifier */: + case 120 /* Missing */: + case 8 /* RegularExpressionLiteral */: + case 6 /* NumericLiteral */: + case 7 /* StringLiteral */: + case 9 /* NoSubstitutionTemplateLiteral */: + case 158 /* TemplateExpression */: + case 78 /* FalseKeyword */: + case 87 /* NullKeyword */: + case 91 /* ThisKeyword */: + case 93 /* TrueKeyword */: + case 89 /* SuperKeyword */: + return true; + } + } + return false; + } + function isAssignmentOperator(token) { + return token >= 51 /* FirstAssignment */ && token <= 62 /* LastAssignment */; + } + function checkGrammar(sourceText, languageVersion, file) { + var grammarDiagnostics = file.grammarDiagnostics; + var scanner = ts.createScanner(languageVersion, true, sourceText); + var inAmbientContext = ts.fileExtensionIs(file.filename, ".d.ts"); + var inFunctionBlock = false; + var parent; + visitNode(file); + function visitNode(node) { + var savedParent = parent; + node.parent = parent; + parent = node; + if (!checkModifiers(node)) { + var savedInFunctionBlock = inFunctionBlock; + if (node.kind === 187 /* FunctionBlock */) { + inFunctionBlock = true; + } + var savedInAmbientContext = inAmbientContext; + if (node.flags & 2 /* Ambient */) { + inAmbientContext = true; + } + checkNodeAndChildren(node); + inAmbientContext = savedInAmbientContext; + inFunctionBlock = savedInFunctionBlock; + } + parent = savedParent; + } + function checkNodeAndChildren(node) { + var nodeKind = node.kind; + if (inAmbientContext && checkForStatementInAmbientContext(node, nodeKind)) { + return; + } + if (checkNode(node, nodeKind)) { + return; + } + forEachChild(node, visitNode); + } + function checkNode(node, nodeKind) { + switch (nodeKind) { + case 153 /* ArrowFunction */: + case 129 /* CallSignature */: + case 134 /* ConstructorType */: + case 130 /* ConstructSignature */: + case 133 /* FunctionType */: + return checkAnyParsedSignature(node); + case 172 /* BreakStatement */: + case 171 /* ContinueStatement */: + return checkBreakOrContinueStatement(node); + case 147 /* CallExpression */: + case 148 /* NewExpression */: + return checkCallOrNewExpression(node); + case 191 /* EnumDeclaration */: return checkEnumDeclaration(node); + case 156 /* BinaryExpression */: return checkBinaryExpression(node); + case 182 /* CatchBlock */: return checkCatchBlock(node); + case 188 /* ClassDeclaration */: return checkClassDeclaration(node); + case 126 /* Constructor */: return checkConstructor(node); + case 195 /* ExportAssignment */: return checkExportAssignment(node); + case 170 /* ForInStatement */: return checkForInStatement(node); + case 169 /* ForStatement */: return checkForStatement(node); + case 186 /* FunctionDeclaration */: return checkFunctionDeclaration(node); + case 152 /* FunctionExpression */: return checkFunctionExpression(node); + case 127 /* GetAccessor */: return checkGetAccessor(node); + case 146 /* IndexedAccess */: return checkIndexedAccess(node); + case 131 /* IndexSignature */: return checkIndexSignature(node); + case 189 /* InterfaceDeclaration */: return checkInterfaceDeclaration(node); + case 178 /* LabeledStatement */: return checkLabeledStatement(node); + case 125 /* Method */: return checkMethod(node); + case 192 /* ModuleDeclaration */: return checkModuleDeclaration(node); + case 142 /* ObjectLiteral */: return checkObjectLiteral(node); + case 6 /* NumericLiteral */: return checkNumericLiteral(node); + case 123 /* Parameter */: return checkParameter(node); + case 155 /* PostfixOperator */: return checkPostfixOperator(node); + case 154 /* PrefixOperator */: return checkPrefixOperator(node); + case 124 /* Property */: return checkProperty(node); + case 143 /* PropertyAssignment */: return checkPropertyAssignment(node); + case 173 /* ReturnStatement */: return checkReturnStatement(node); + case 128 /* SetAccessor */: return checkSetAccessor(node); + case 197 /* SourceFile */: return checkSourceFile(node); + case 144 /* ShorthandPropertyAssignment */: return checkShorthandPropertyAssignment(node); + case 175 /* SwitchStatement */: return checkSwitchStatement(node); + case 149 /* TaggedTemplateExpression */: return checkTaggedTemplateExpression(node); + case 138 /* TupleType */: return checkTupleType(node); + case 122 /* TypeParameter */: return checkTypeParameter(node); + case 132 /* TypeReference */: return checkTypeReference(node); + case 185 /* VariableDeclaration */: return checkVariableDeclaration(node); + case 163 /* VariableStatement */: return checkVariableStatement(node); + case 174 /* WithStatement */: return checkWithStatement(node); + case 160 /* YieldExpression */: return checkYieldExpression(node); + } + } + function grammarErrorOnFirstToken(node, message, arg0, arg1, arg2) { + var start = ts.skipTrivia(sourceText, node.pos); + scanner.setTextPos(start); + scanner.scan(); + var end = scanner.getTextPos(); + grammarDiagnostics.push(ts.createFileDiagnostic(file, start, end - start, message, arg0, arg1, arg2)); + return true; + } + function grammarErrorOnNode(node, message, arg0, arg1, arg2) { + var span = getErrorSpanForNode(node); + var start = span.end > span.pos ? ts.skipTrivia(file.text, span.pos) : span.pos; + var length = span.end - start; + grammarDiagnostics.push(ts.createFileDiagnostic(file, start, length, message, arg0, arg1, arg2)); + return true; + } + function grammarErrorAtPos(start, length, message, arg0, arg1, arg2) { + grammarDiagnostics.push(ts.createFileDiagnostic(file, start, length, message, arg0, arg1, arg2)); + return true; + } + function reportInvalidUseInStrictMode(node) { + var name = sourceText.substring(ts.skipTrivia(sourceText, node.pos), node.end); + return grammarErrorOnNode(node, ts.Diagnostics.Invalid_use_of_0_in_strict_mode, name); + } + function checkForStatementInAmbientContext(node, kind) { + switch (kind) { + case 162 /* Block */: + case 164 /* EmptyStatement */: + case 166 /* IfStatement */: + case 167 /* DoStatement */: + case 168 /* WhileStatement */: + case 169 /* ForStatement */: + case 170 /* ForInStatement */: + case 171 /* ContinueStatement */: + case 172 /* BreakStatement */: + case 173 /* ReturnStatement */: + case 174 /* WithStatement */: + case 175 /* SwitchStatement */: + case 179 /* ThrowStatement */: + case 180 /* TryStatement */: + case 184 /* DebuggerStatement */: + case 178 /* LabeledStatement */: + case 165 /* ExpressionStatement */: + return grammarErrorOnFirstToken(node, ts.Diagnostics.Statements_are_not_allowed_in_ambient_contexts); + } + } + function checkAnyParsedSignature(node) { + return checkTypeParameterList(node.typeParameters) || checkParameterList(node.parameters); + } + function checkBinaryExpression(node) { + if (node.parserContextFlags & 1 /* StrictMode */) { + if (isLeftHandSideExpression(node.left) && isAssignmentOperator(node.operator)) { + if (isEvalOrArgumentsIdentifier(node.left)) { + return reportInvalidUseInStrictMode(node.left); + } + } + } + } + function isIterationStatement(node, lookInLabeledStatements) { + switch (node.kind) { + case 169 /* ForStatement */: + case 170 /* ForInStatement */: + case 167 /* DoStatement */: + case 168 /* WhileStatement */: + return true; + case 178 /* LabeledStatement */: + return lookInLabeledStatements && isIterationStatement(node.statement, lookInLabeledStatements); + } + return false; + } + function checkLabeledStatement(node) { + var current = node.parent; + while (current) { + if (isAnyFunction(current)) { + break; + } + if (current.kind === 178 /* LabeledStatement */ && current.label.text === node.label.text) { + return grammarErrorOnNode(node.label, ts.Diagnostics.Duplicate_label_0, getTextOfNodeFromSourceText(sourceText, node.label)); + } + current = current.parent; + } + } + function checkBreakOrContinueStatement(node) { + var current = node; + while (current) { + if (isAnyFunction(current)) { + return grammarErrorOnNode(node, ts.Diagnostics.Jump_target_cannot_cross_function_boundary); + } + switch (current.kind) { + case 178 /* LabeledStatement */: + if (node.label && current.label.text === node.label.text) { + var isMisplacedContinueLabel = node.kind === 171 /* ContinueStatement */ && !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 175 /* SwitchStatement */: + if (node.kind === 172 /* BreakStatement */ && !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 === 172 /* BreakStatement */ ? 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 === 172 /* BreakStatement */ ? 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 checkCallOrNewExpression(node) { + return checkTypeArguments(node.typeArguments) || checkArguments(node.arguments); + } + function checkArguments(arguments) { + return checkForDisallowedTrailingComma(arguments) || checkForOmittedArgument(arguments); + } + function checkTypeArguments(typeArguments) { + return checkForDisallowedTrailingComma(typeArguments) || checkForAtLeastOneTypeArgument(typeArguments) || checkForMissingTypeArgument(typeArguments); + } + function checkForOmittedArgument(arguments) { + if (arguments) { + for (var i = 0, n = arguments.length; i < n; i++) { + var arg = arguments[i]; + if (arg.kind === 161 /* OmittedExpression */) { + return grammarErrorAtPos(arg.pos, 0, ts.Diagnostics.Argument_expression_expected); + } + } + } + } + function checkForMissingTypeArgument(typeArguments) { + if (typeArguments) { + for (var i = 0, n = typeArguments.length; i < n; i++) { + var arg = typeArguments[i]; + if (arg.kind === 120 /* Missing */) { + return grammarErrorAtPos(arg.pos, 0, ts.Diagnostics.Type_expected); + } + } + } + } + function checkForAtLeastOneTypeArgument(typeArguments) { + if (typeArguments && typeArguments.length === 0) { + var start = typeArguments.pos - "<".length; + var end = ts.skipTrivia(sourceText, typeArguments.end) + ">".length; + return grammarErrorAtPos(start, end - start, ts.Diagnostics.Type_argument_list_cannot_be_empty); + } + } + function checkForDisallowedTrailingComma(list) { + if (list && list.hasTrailingComma) { + var start = list.end - ",".length; + var end = list.end; + return grammarErrorAtPos(start, end - start, ts.Diagnostics.Trailing_comma_not_allowed); + } + } + function checkCatchBlock(node) { + if (node.type) { + var colonStart = ts.skipTrivia(sourceText, node.variable.end); + return grammarErrorAtPos(colonStart, ":".length, ts.Diagnostics.Catch_clause_parameter_cannot_have_a_type_annotation); + } + if (node.parserContextFlags & 1 /* StrictMode */ && isEvalOrArgumentsIdentifier(node.variable)) { + return reportInvalidUseInStrictMode(node.variable); + } + } + function checkClassDeclaration(node) { + return checkForDisallowedTrailingComma(node.implementedTypes) || checkForAtLeastOneHeritageClause(node.implementedTypes, "implements"); + } + function checkForAtLeastOneHeritageClause(types, listType) { + if (types && types.length === 0) { + return grammarErrorAtPos(types.pos, 0, ts.Diagnostics._0_list_cannot_be_empty, listType); + } + } + function checkConstructor(node) { + return checkAnyParsedSignature(node) || checkConstructorTypeParameters(node) || checkConstructorTypeAnnotation(node) || checkForBodyInAmbientContext(node.body, true); + } + function checkConstructorTypeParameters(node) { + if (node.typeParameters) { + return grammarErrorAtPos(node.typeParameters.pos, node.typeParameters.end - node.typeParameters.pos, ts.Diagnostics.Type_parameters_cannot_appear_on_a_constructor_declaration); + } + } + function checkConstructorTypeAnnotation(node) { + if (node.type) { + return grammarErrorOnNode(node.type, ts.Diagnostics.Type_annotation_cannot_appear_on_a_constructor_declaration); + } + } + function checkEnumDeclaration(enumDecl) { + var enumIsConst = (enumDecl.flags & 4096 /* Const */) !== 0; + var hasError = false; + if (!enumIsConst) { + var inConstantEnumMemberSection = true; + for (var i = 0, n = enumDecl.members.length; i < n; i++) { + var node = enumDecl.members[i]; + 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 isIntegerLiteral(expression) { + function isInteger(literalExpression) { + return /^[0-9]+([eE]\+?[0-9]+)?$/.test(literalExpression.text); + } + if (expression.kind === 154 /* PrefixOperator */) { + var unaryExpression = expression; + if (unaryExpression.operator === 32 /* PlusToken */ || unaryExpression.operator === 33 /* MinusToken */) { + expression = unaryExpression.operand; + } + } + if (expression.kind === 6 /* NumericLiteral */) { + return isInteger(expression); + } + return false; + } + function checkExportAssignment(node) { + if (node.flags & 243 /* Modifier */) { + return grammarErrorOnFirstToken(node, ts.Diagnostics.An_export_assignment_cannot_have_modifiers); + } + } + function checkForInStatement(node) { + return checkVariableDeclarations(node.declarations) || checkForMoreThanOneDeclaration(node.declarations); + } + function checkForStatement(node) { + return checkVariableDeclarations(node.declarations); + } + function checkForMoreThanOneDeclaration(declarations) { + if (declarations && declarations.length > 1) { + return grammarErrorOnFirstToken(declarations[1], ts.Diagnostics.Only_a_single_variable_declaration_is_allowed_in_a_for_in_statement); + } + } + function checkFunctionDeclaration(node) { + return checkAnyParsedSignature(node) || checkFunctionName(node.name) || checkForBodyInAmbientContext(node.body, false); + } + function checkFunctionExpression(node) { + return checkAnyParsedSignature(node) || checkFunctionName(node.name); + } + function checkFunctionName(name) { + if (name && name.parserContextFlags & 1 /* StrictMode */ && isEvalOrArgumentsIdentifier(name)) { + return reportInvalidUseInStrictMode(name); + } + } + function checkGetAccessor(node) { + return checkAnyParsedSignature(node) || checkAccessor(node); + } + function checkIndexedAccess(node) { + if (node.index.kind === 120 /* Missing */ && node.parent.kind === 148 /* NewExpression */ && node.parent.func === node) { + var start = ts.skipTrivia(sourceText, node.parent.pos); + var end = node.end; + return grammarErrorAtPos(start, end - start, ts.Diagnostics.new_T_cannot_be_used_to_create_an_array_Use_new_Array_T_instead); + } + } + function checkIndexSignature(node) { + return checkIndexSignatureParameters(node) || checkForIndexSignatureModifiers(node); + } + function checkForIndexSignatureModifiers(node) { + if (node.flags & 243 /* Modifier */) { + return grammarErrorOnFirstToken(node, ts.Diagnostics.Modifiers_not_permitted_on_index_signature_members); + } + } + function checkIndexSignatureParameters(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); + } + } + else if (parameter.flags & 8 /* Rest */) { + return grammarErrorOnNode(parameter.name, ts.Diagnostics.An_index_signature_cannot_have_a_rest_parameter); + } + else if (parameter.flags & 243 /* Modifier */) { + return grammarErrorOnNode(parameter.name, ts.Diagnostics.An_index_signature_parameter_cannot_have_an_accessibility_modifier); + } + else if (parameter.flags & 4 /* QuestionMark */) { + return grammarErrorOnNode(parameter.name, ts.Diagnostics.An_index_signature_parameter_cannot_have_a_question_mark); + } + else if (parameter.initializer) { + return grammarErrorOnNode(parameter.name, ts.Diagnostics.An_index_signature_parameter_cannot_have_an_initializer); + } + else if (!parameter.type) { + return grammarErrorOnNode(parameter.name, ts.Diagnostics.An_index_signature_parameter_must_have_a_type_annotation); + } + else if (parameter.type.kind !== 118 /* StringKeyword */ && parameter.type.kind !== 116 /* NumberKeyword */) { + return grammarErrorOnNode(parameter.name, ts.Diagnostics.An_index_signature_parameter_type_must_be_string_or_number); + } + else if (!node.type) { + return grammarErrorOnNode(node, ts.Diagnostics.An_index_signature_must_have_a_type_annotation); + } + } + function checkInterfaceDeclaration(node) { + return checkForDisallowedTrailingComma(node.baseTypes) || checkForAtLeastOneHeritageClause(node.baseTypes, "extends"); + } + function checkMethod(node) { + return checkAnyParsedSignature(node) || checkForBodyInAmbientContext(node.body, false) || (node.parent.kind === 188 /* ClassDeclaration */ && checkForInvalidQuestionMark(node, ts.Diagnostics.A_class_member_cannot_be_declared_optional)); + } + function checkForBodyInAmbientContext(body, isConstructor) { + if (inAmbientContext && body && body.kind === 187 /* FunctionBlock */) { + var diagnostic = isConstructor ? ts.Diagnostics.A_constructor_implementation_cannot_be_declared_in_an_ambient_context : ts.Diagnostics.A_function_implementation_cannot_be_declared_in_an_ambient_context; + return grammarErrorOnFirstToken(body, diagnostic); + } + } + function checkModuleDeclaration(node) { + return checkModuleDeclarationName(node) || checkModuleDeclarationStatements(node); + } + function checkModuleDeclarationName(node) { + if (!inAmbientContext && node.name.kind === 7 /* StringLiteral */) { + return grammarErrorOnNode(node.name, ts.Diagnostics.Only_ambient_modules_can_use_quoted_names); + } + } + function checkModuleDeclarationStatements(node) { + if (node.name.kind === 63 /* Identifier */ && node.body.kind === 193 /* ModuleBlock */) { + var statements = node.body.statements; + for (var i = 0, n = statements.length; i < n; i++) { + var statement = statements[i]; + if (statement.kind === 195 /* ExportAssignment */) { + return grammarErrorOnNode(statement, ts.Diagnostics.An_export_assignment_cannot_be_used_in_an_internal_module); + } + else if (statement.kind === 194 /* ImportDeclaration */ && statement.externalModuleName) { + return grammarErrorOnNode(statement.externalModuleName, ts.Diagnostics.Import_declarations_in_an_internal_module_cannot_reference_an_external_module); + } + } + } + } + function checkObjectLiteral(node) { + var seen = {}; + var Property = 1; + var GetAccessor = 2; + var SetAccesor = 4; + var GetOrSetAccessor = GetAccessor | SetAccesor; + var inStrictMode = (node.parserContextFlags & 1 /* StrictMode */) !== 0; + for (var i = 0, n = node.properties.length; i < n; i++) { + var prop = node.properties[i]; + if (prop.kind === 161 /* OmittedExpression */) { + continue; + } + var p = prop; + var name = p.name; + var currentKind; + if (p.kind === 143 /* PropertyAssignment */) { + currentKind = Property; + } + else if (p.kind === 144 /* ShorthandPropertyAssignment */) { + currentKind = Property; + } + else if (p.kind === 127 /* GetAccessor */) { + currentKind = GetAccessor; + } + else if (p.kind === 128 /* SetAccessor */) { + currentKind = SetAccesor; + } + else { + ts.Debug.fail("Unexpected syntax kind:" + p.kind); + } + if (!ts.hasProperty(seen, name.text)) { + seen[name.text] = currentKind; + } + else { + var existingKind = seen[name.text]; + if (currentKind === Property && existingKind === Property) { + if (inStrictMode) { + grammarErrorOnNode(name, 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.text] = currentKind | existingKind; + } + else { + return grammarErrorOnNode(name, ts.Diagnostics.An_object_literal_cannot_have_multiple_get_Slashset_accessors_with_the_same_name); + } + } + else { + return grammarErrorOnNode(name, ts.Diagnostics.An_object_literal_cannot_have_property_and_accessor_with_the_same_name); + } + } + } + } + function checkNumericLiteral(node) { + if (node.flags & 8192 /* OctalLiteral */) { + if (node.parserContextFlags & 1 /* StrictMode */) { + return grammarErrorOnNode(node, ts.Diagnostics.Octal_literals_are_not_allowed_in_strict_mode); + } + else if (languageVersion >= 1 /* ES5 */) { + return grammarErrorOnNode(node, ts.Diagnostics.Octal_literals_are_not_available_when_targeting_ECMAScript_5_and_higher); + } + } + } + function checkModifiers(node) { + switch (node.kind) { + case 127 /* GetAccessor */: + case 128 /* SetAccessor */: + case 126 /* Constructor */: + case 124 /* Property */: + case 125 /* Method */: + case 131 /* IndexSignature */: + case 188 /* ClassDeclaration */: + case 189 /* InterfaceDeclaration */: + case 192 /* ModuleDeclaration */: + case 191 /* EnumDeclaration */: + case 195 /* ExportAssignment */: + case 163 /* VariableStatement */: + case 186 /* FunctionDeclaration */: + case 190 /* TypeAliasDeclaration */: + case 194 /* ImportDeclaration */: + case 123 /* Parameter */: + break; + default: + return false; + } + if (!node.modifiers) { + return; + } + var lastStatic, lastPrivate, lastProtected, lastDeclare; + var flags = 0; + for (var i = 0, n = node.modifiers.length; i < n; i++) { + var modifier = node.modifiers[i]; + switch (modifier.kind) { + case 106 /* PublicKeyword */: + case 105 /* ProtectedKeyword */: + case 104 /* PrivateKeyword */: + var text; + if (modifier.kind === 106 /* PublicKeyword */) { + text = "public"; + } + else if (modifier.kind === 105 /* ProtectedKeyword */) { + text = "protected"; + lastProtected = modifier; + } + else { + text = "private"; + lastPrivate = modifier; + } + if (flags & 112 /* AccessibilityModifier */) { + return grammarErrorOnNode(modifier, ts.Diagnostics.Accessibility_modifier_already_seen); + } + else if (flags & 128 /* Static */) { + return grammarErrorOnNode(modifier, ts.Diagnostics._0_modifier_must_precede_1_modifier, text, "static"); + } + else if (node.parent.kind === 193 /* ModuleBlock */ || node.parent.kind === 197 /* SourceFile */) { + return grammarErrorOnNode(modifier, ts.Diagnostics._0_modifier_cannot_appear_on_a_module_element, text); + } + flags |= modifierToFlag(modifier.kind); + break; + case 107 /* StaticKeyword */: + if (flags & 128 /* Static */) { + return grammarErrorOnNode(modifier, ts.Diagnostics._0_modifier_already_seen, "static"); + } + else if (node.parent.kind === 193 /* ModuleBlock */ || node.parent.kind === 197 /* SourceFile */) { + return grammarErrorOnNode(modifier, ts.Diagnostics._0_modifier_cannot_appear_on_a_module_element, "static"); + } + else if (node.kind === 123 /* Parameter */) { + return grammarErrorOnNode(modifier, ts.Diagnostics._0_modifier_cannot_appear_on_a_parameter, "static"); + } + flags |= 128 /* Static */; + lastStatic = modifier; + break; + case 76 /* ExportKeyword */: + if (flags & 1 /* Export */) { + return grammarErrorOnNode(modifier, ts.Diagnostics._0_modifier_already_seen, "export"); + } + else if (flags & 2 /* Ambient */) { + return grammarErrorOnNode(modifier, ts.Diagnostics._0_modifier_must_precede_1_modifier, "export", "declare"); + } + else if (node.parent.kind === 188 /* ClassDeclaration */) { + return grammarErrorOnNode(modifier, ts.Diagnostics._0_modifier_cannot_appear_on_a_class_element, "export"); + } + else if (node.kind === 123 /* Parameter */) { + return grammarErrorOnNode(modifier, ts.Diagnostics._0_modifier_cannot_appear_on_a_parameter, "export"); + } + flags |= 1 /* Export */; + break; + case 112 /* DeclareKeyword */: + if (flags & 2 /* Ambient */) { + return grammarErrorOnNode(modifier, ts.Diagnostics._0_modifier_already_seen, "declare"); + } + else if (node.parent.kind === 188 /* ClassDeclaration */) { + return grammarErrorOnNode(modifier, ts.Diagnostics._0_modifier_cannot_appear_on_a_class_element, "declare"); + } + else if (node.kind === 123 /* Parameter */) { + return grammarErrorOnNode(modifier, ts.Diagnostics._0_modifier_cannot_appear_on_a_parameter, "declare"); + } + else if (inAmbientContext && node.parent.kind === 193 /* ModuleBlock */) { + return grammarErrorOnNode(modifier, ts.Diagnostics.A_declare_modifier_cannot_be_used_in_an_already_ambient_context); + } + flags |= 2 /* Ambient */; + lastDeclare = modifier; + break; + } + } + if (node.kind === 126 /* Constructor */) { + if (flags & 128 /* Static */) { + return grammarErrorOnNode(lastStatic, ts.Diagnostics._0_modifier_cannot_appear_on_a_constructor_declaration, "static"); + } + else if (flags & 64 /* Protected */) { + return grammarErrorOnNode(lastProtected, ts.Diagnostics._0_modifier_cannot_appear_on_a_constructor_declaration, "protected"); + } + else if (flags & 32 /* Private */) { + return grammarErrorOnNode(lastPrivate, ts.Diagnostics._0_modifier_cannot_appear_on_a_constructor_declaration, "private"); + } + } + else if (node.kind === 194 /* ImportDeclaration */ && flags & 2 /* Ambient */) { + return grammarErrorOnNode(lastDeclare, ts.Diagnostics.A_declare_modifier_cannot_be_used_with_an_import_declaration, "declare"); + } + else if (node.kind === 189 /* InterfaceDeclaration */ && flags & 2 /* Ambient */) { + return grammarErrorOnNode(lastDeclare, ts.Diagnostics.A_declare_modifier_cannot_be_used_with_an_interface_declaration, "declare"); + } + } + function checkParameter(node) { + if (node.parserContextFlags & 1 /* StrictMode */ && isEvalOrArgumentsIdentifier(node.name)) { + return reportInvalidUseInStrictMode(node.name); + } + } + function checkTypeParameterList(typeParameters) { + if (checkForDisallowedTrailingComma(typeParameters)) { + return true; + } + if (typeParameters && typeParameters.length === 0) { + var start = typeParameters.pos - "<".length; + var end = ts.skipTrivia(sourceText, typeParameters.end) + ">".length; + return grammarErrorAtPos(start, end - start, ts.Diagnostics.Type_parameter_list_cannot_be_empty); + } + } + function checkParameterList(parameters) { + if (checkForDisallowedTrailingComma(parameters)) { + return true; + } + var seenOptionalParameter = false; + var parameterCount = parameters.length; + for (var i = 0; i < parameterCount; i++) { + var parameter = parameters[i]; + if (parameter.flags & 8 /* Rest */) { + if (i !== (parameterCount - 1)) { + return grammarErrorOnNode(parameter.name, ts.Diagnostics.A_rest_parameter_must_be_last_in_a_parameter_list); + } + if (parameter.flags & 4 /* QuestionMark */) { + return grammarErrorOnNode(parameter.name, 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.flags & 4 /* QuestionMark */ || parameter.initializer) { + seenOptionalParameter = true; + if (parameter.flags & 4 /* QuestionMark */ && 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 checkPostfixOperator(node) { + if (node.parserContextFlags & 1 /* StrictMode */ && isEvalOrArgumentsIdentifier(node.operand)) { + return reportInvalidUseInStrictMode(node.operand); + } + } + function checkPrefixOperator(node) { + if (node.parserContextFlags & 1 /* StrictMode */) { + if ((node.operator === 37 /* PlusPlusToken */ || node.operator === 38 /* MinusMinusToken */) && isEvalOrArgumentsIdentifier(node.operand)) { + return reportInvalidUseInStrictMode(node.operand); + } + else if (node.operator === 72 /* DeleteKeyword */ && node.operand.kind === 63 /* Identifier */) { + return grammarErrorOnNode(node.operand, ts.Diagnostics.delete_cannot_be_called_on_an_identifier_in_strict_mode); + } + } + } + function checkProperty(node) { + return (node.parent.kind === 188 /* ClassDeclaration */ && checkForInvalidQuestionMark(node, ts.Diagnostics.A_class_member_cannot_be_declared_optional)) || checkForInitializerInAmbientContext(node); + } + function checkForInitializerInAmbientContext(node) { + if (inAmbientContext && node.initializer) { + return grammarErrorOnFirstToken(node.initializer, ts.Diagnostics.Initializers_are_not_allowed_in_ambient_contexts); + } + } + function checkPropertyAssignment(node) { + return checkForInvalidQuestionMark(node, ts.Diagnostics.An_object_member_cannot_be_declared_optional); + } + function checkForInvalidQuestionMark(node, message) { + if (node.flags & 4 /* QuestionMark */) { + var pos = ts.skipTrivia(sourceText, node.name.end); + return grammarErrorAtPos(pos, "?".length, message); + } + } + function checkReturnStatement(node) { + if (!inFunctionBlock) { + return grammarErrorOnFirstToken(node, ts.Diagnostics.A_return_statement_can_only_be_used_within_a_function_body); + } + } + function checkSetAccessor(node) { + return checkAnyParsedSignature(node) || checkAccessor(node); + } + function checkAccessor(accessor) { + var kind = accessor.kind; + if (languageVersion < 1 /* ES5 */) { + return grammarErrorOnNode(accessor.name, ts.Diagnostics.Accessors_are_only_available_when_targeting_ECMAScript_5_and_higher); + } + else if (inAmbientContext) { + return grammarErrorOnNode(accessor.name, ts.Diagnostics.An_accessor_cannot_be_declared_in_an_ambient_context); + } + else if (accessor.body === undefined) { + return grammarErrorAtPos(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 === 127 /* GetAccessor */ && accessor.parameters.length) { + return grammarErrorOnNode(accessor.name, ts.Diagnostics.A_get_accessor_cannot_have_parameters); + } + else if (kind === 128 /* SetAccessor */) { + 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.flags & 8 /* Rest */) { + return grammarErrorOnNode(accessor.name, ts.Diagnostics.A_set_accessor_cannot_have_rest_parameter); + } + else if (parameter.flags & 243 /* Modifier */) { + return grammarErrorOnNode(accessor.name, ts.Diagnostics.A_parameter_property_is_only_allowed_in_a_constructor_implementation); + } + else if (parameter.flags & 4 /* QuestionMark */) { + return grammarErrorOnNode(accessor.name, 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 checkSourceFile(node) { + return inAmbientContext && checkTopLevelElementsForRequiredDeclareModifier(file); + } + function checkTopLevelElementsForRequiredDeclareModifier(file) { + for (var i = 0, n = file.statements.length; i < n; i++) { + var decl = file.statements[i]; + if (isDeclaration(decl) || decl.kind === 163 /* VariableStatement */) { + if (checkTopLevelElementForRequiredDeclareModifier(decl)) { + return true; + } + } + } + } + function checkTopLevelElementForRequiredDeclareModifier(node) { + if (node.kind === 189 /* InterfaceDeclaration */ || node.kind === 194 /* ImportDeclaration */ || node.kind === 195 /* ExportAssignment */ || (node.flags & 2 /* Ambient */)) { + return false; + } + return grammarErrorOnFirstToken(node, ts.Diagnostics.A_declare_modifier_is_required_for_a_top_level_declaration_in_a_d_ts_file); + } + function checkShorthandPropertyAssignment(node) { + return checkForInvalidQuestionMark(node, ts.Diagnostics.An_object_member_cannot_be_declared_optional); + } + function checkSwitchStatement(node) { + var firstDefaultClause; + for (var i = 0, n = node.clauses.length; i < n; i++) { + var clause = node.clauses[i]; + if (clause.kind === 177 /* DefaultClause */) { + if (firstDefaultClause === undefined) { + firstDefaultClause = clause; + } + else { + var start = ts.skipTrivia(file.text, clause.pos); + var end = clause.statements.length > 0 ? clause.statements[0].pos : clause.end; + return grammarErrorAtPos(start, end - start, ts.Diagnostics.A_default_clause_cannot_appear_more_than_once_in_a_switch_statement); + } + } + } + } + function checkTaggedTemplateExpression(node) { + if (languageVersion < 2 /* ES6 */) { + return grammarErrorOnFirstToken(node.template, ts.Diagnostics.Tagged_templates_are_only_available_when_targeting_ECMAScript_6_and_higher); + } + } + function checkTupleType(node) { + return checkForDisallowedTrailingComma(node.elementTypes) || checkForAtLeastOneType(node); + } + function checkForAtLeastOneType(node) { + if (node.elementTypes.length === 0) { + return grammarErrorOnNode(node, ts.Diagnostics.A_tuple_type_element_list_cannot_be_empty); + } + } + function checkTypeParameter(node) { + if (node.expression) { + return grammarErrorOnFirstToken(node.expression, ts.Diagnostics.Type_expected); + } + } + function checkTypeReference(node) { + return checkTypeArguments(node.typeArguments); + } + function checkVariableDeclaration(node) { + if (inAmbientContext && node.initializer) { + var equalsPos = node.type ? ts.skipTrivia(sourceText, node.type.end) : ts.skipTrivia(sourceText, node.name.end); + return grammarErrorAtPos(equalsPos, "=".length, ts.Diagnostics.Initializers_are_not_allowed_in_ambient_contexts); + } + if (!inAmbientContext && !node.initializer && isConst(node)) { + return grammarErrorOnNode(node, ts.Diagnostics.const_declarations_must_be_initialized); + } + if (node.parserContextFlags & 1 /* StrictMode */ && isEvalOrArgumentsIdentifier(node.name)) { + return reportInvalidUseInStrictMode(node.name); + } + } + function checkVariableDeclarations(declarations) { + if (declarations) { + if (checkForDisallowedTrailingComma(declarations)) { + return true; + } + if (!declarations.length) { + return grammarErrorAtPos(declarations.pos, declarations.end - declarations.pos, ts.Diagnostics.Variable_declaration_list_cannot_be_empty); + } + var decl = declarations[0]; + if (languageVersion < 2 /* ES6 */) { + if (isLet(decl)) { + return grammarErrorOnFirstToken(decl, ts.Diagnostics.let_declarations_are_only_available_when_targeting_ECMAScript_6_and_higher); + } + else if (isConst(decl)) { + return grammarErrorOnFirstToken(decl, ts.Diagnostics.const_declarations_are_only_available_when_targeting_ECMAScript_6_and_higher); + } + } + } + } + function checkVariableStatement(node) { + return checkVariableDeclarations(node.declarations) || checkForDisallowedLetOrConstStatement(node); + } + function checkForDisallowedLetOrConstStatement(node) { + if (!allowLetAndConstDeclarations(node.parent)) { + if (isLet(node)) { + return grammarErrorOnNode(node, ts.Diagnostics.let_declarations_can_only_be_declared_inside_a_block); + } + else if (isConst(node)) { + return grammarErrorOnNode(node, ts.Diagnostics.const_declarations_can_only_be_declared_inside_a_block); + } + } + } + function allowLetAndConstDeclarations(parent) { + switch (parent.kind) { + case 166 /* IfStatement */: + case 167 /* DoStatement */: + case 168 /* WhileStatement */: + case 174 /* WithStatement */: + case 169 /* ForStatement */: + case 170 /* ForInStatement */: + return false; + case 178 /* LabeledStatement */: + return allowLetAndConstDeclarations(parent.parent); + } + return true; + } + function checkWithStatement(node) { + if (node.parserContextFlags & 1 /* StrictMode */) { + return grammarErrorOnFirstToken(node, ts.Diagnostics.with_statements_are_not_allowed_in_strict_mode); + } + } + function checkYieldExpression(node) { + if (!(node.parserContextFlags & 4 /* Yield */)) { + return grammarErrorOnFirstToken(node, ts.Diagnostics.yield_expression_must_be_contained_within_a_generator_declaration); + } + } + } + function createProgram(rootNames, options, host) { + var program; + var files = []; + var filesByName = {}; + var errors = []; + var seenNoDefaultLib = options.noLib; + var commonSourceDirectory; + ts.forEach(rootNames, function (name) { return processRootFile(name, false); }); + if (!seenNoDefaultLib) { + processRootFile(host.getDefaultLibFilename(), true); + } + verifyCompilerOptions(); + errors.sort(ts.compareDiagnostics); + program = { + getSourceFile: getSourceFile, + getSourceFiles: function () { return files; }, + getCompilerOptions: function () { return options; }, + getCompilerHost: function () { return host; }, + getDiagnostics: getDiagnostics, + getGlobalDiagnostics: getGlobalDiagnostics, + getTypeChecker: function (fullTypeCheckMode) { return ts.createTypeChecker(program, fullTypeCheckMode); }, + getCommonSourceDirectory: function () { return commonSourceDirectory; } + }; + return program; + function getSourceFile(filename) { + filename = host.getCanonicalFileName(filename); + return ts.hasProperty(filesByName, filename) ? filesByName[filename] : undefined; + } + function getDiagnostics(sourceFile) { + return sourceFile ? ts.filter(errors, function (e) { return e.file === sourceFile; }) : errors; + } + function getGlobalDiagnostics() { + return ts.filter(errors, function (e) { return !e.file; }); + } + 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) { + if (refEnd !== undefined && refPos !== undefined) { + var start = refPos; + var length = refEnd - refPos; + } + var diagnostic; + if (hasExtension(filename)) { + if (!ts.fileExtensionIs(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 (!(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) { + errors.push(ts.createFileDiagnostic(refFile, start, length, diagnostic, filename)); + } + else { + errors.push(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) { + errors.push(ts.createFileDiagnostic(refFile, refStart, refLength, 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); + } + ts.forEach(file.getSyntacticDiagnostics(), function (e) { + errors.push(e); + }); + } + } + 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) { + errors.push(ts.createFileDiagnostic(refFile, refStart, refLength, ts.Diagnostics.Filename_0_differs_from_already_included_filename_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 === 194 /* ImportDeclaration */ && node.externalModuleName) { + var nameLiteral = node.externalModuleName; + var moduleName = nameLiteral.text; + if (moduleName) { + var searchPath = basePath; + while (true) { + var searchName = ts.normalizePath(ts.combinePaths(searchPath, moduleName)); + if (findModuleSourceFile(searchName + ".ts", nameLiteral) || findModuleSourceFile(searchName + ".d.ts", nameLiteral)) { + break; + } + var parentPath = ts.getDirectoryPath(searchPath); + if (parentPath === searchPath) { + break; + } + searchPath = parentPath; + } + } + } + else if (node.kind === 192 /* ModuleDeclaration */ && node.name.kind === 7 /* StringLiteral */ && (node.flags & 2 /* Ambient */ || isDeclarationFile(file))) { + forEachChild(node.body, function (node) { + if (node.kind === 194 /* ImportDeclaration */ && node.externalModuleName) { + var nameLiteral = node.externalModuleName; + 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) { + errors.push(ts.createCompilerDiagnostic(ts.Diagnostics.Option_mapRoot_cannot_be_specified_without_specifying_sourcemap_option)); + } + if (options.sourceRoot) { + errors.push(ts.createCompilerDiagnostic(ts.Diagnostics.Option_sourceRoot_cannot_be_specified_without_specifying_sourcemap_option)); + } + return; + } + var firstExternalModule = ts.forEach(files, function (f) { return isExternalModule(f) ? f : undefined; }); + if (firstExternalModule && options.module === 0 /* None */) { + var externalModuleErrorSpan = getErrorSpanForNode(firstExternalModule.externalModuleIndicator); + var errorStart = ts.skipTrivia(firstExternalModule.text, externalModuleErrorSpan.pos); + var errorLength = externalModuleErrorSpan.end - errorStart; + errors.push(ts.createFileDiagnostic(firstExternalModule, errorStart, errorLength, ts.Diagnostics.Cannot_compile_external_modules_unless_the_module_flag_is_provided)); + } + if (options.outDir || options.sourceRoot || (options.mapRoot && (!options.out || firstExternalModule !== undefined))) { + var commonPathComponents; + ts.forEach(files, function (sourceFile) { + if (!(sourceFile.flags & 1024 /* DeclarationFile */) && !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) { + errors.push(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; + } + } + } + } + ts.createProgram = createProgram; +})(ts || (ts = {})); +var ts; +(function (ts) { + (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 === 189 /* InterfaceDeclaration */) { + return 0 /* NonInstantiated */; + } + else if (ts.isConstEnumDeclaration(node)) { + return 2 /* ConstEnumOnly */; + } + else if (node.kind === 194 /* ImportDeclaration */ && !(node.flags & 1 /* Export */)) { + return 0 /* NonInstantiated */; + } + else if (node.kind === 193 /* ModuleBlock */) { + var state = 0 /* NonInstantiated */; + ts.forEachChild(node, function (n) { + switch (getModuleInstanceState(n)) { + case 0 /* NonInstantiated */: + return false; + case 2 /* ConstEnumOnly */: + state = 2 /* ConstEnumOnly */; + return false; + case 1 /* Instantiated */: + state = 1 /* Instantiated */; + return true; + } + }); + return state; + } + else if (node.kind === 192 /* ModuleDeclaration */) { + return getModuleInstanceState(node.body); + } + else { + return 1 /* Instantiated */; + } + } + ts.getModuleInstanceState = getModuleInstanceState; + function bindSourceFile(file) { + var parent; + var container; + var blockScopeContainer; + var lastContainer; + var symbolCount = 0; + var Symbol = ts.objectAllocator.getSymbolConstructor(); + if (!file.locals) { + file.locals = {}; + container = blockScopeContainer = file; + bind(file); + file.symbolCount = symbolCount; + } + function createSymbol(flags, name) { + symbolCount++; + return new Symbol(flags, name); + } + function addDeclarationToSymbol(symbol, node, symbolKind) { + symbol.flags |= symbolKind; + if (!symbol.declarations) + symbol.declarations = []; + symbol.declarations.push(node); + if (symbolKind & 1952 /* HasExports */ && !symbol.exports) + symbol.exports = {}; + if (symbolKind & 6240 /* HasMembers */ && !symbol.members) + symbol.members = {}; + node.symbol = symbol; + if (symbolKind & 107455 /* Value */ && !symbol.valueDeclaration) + symbol.valueDeclaration = node; + } + function getDeclarationName(node) { + if (node.name) { + if (node.kind === 192 /* ModuleDeclaration */ && node.name.kind === 7 /* StringLiteral */) { + return '"' + node.name.text + '"'; + } + return node.name.text; + } + switch (node.kind) { + case 134 /* ConstructorType */: + case 126 /* Constructor */: + return "__constructor"; + case 133 /* FunctionType */: + case 129 /* CallSignature */: + return "__call"; + case 130 /* ConstructSignature */: + return "__new"; + case 131 /* IndexSignature */: + return "__index"; + } + } + function getDisplayName(node) { + return node.name ? ts.declarationNameToString(node.name) : getDeclarationName(node); + } + function declareSymbol(symbols, parent, node, includes, excludes) { + var name = getDeclarationName(node); + if (name !== undefined) { + var 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 /* BlockScopedVariable */ ? ts.Diagnostics.Cannot_redeclare_block_scoped_variable_0 : ts.Diagnostics.Duplicate_identifier_0; + ts.forEach(symbol.declarations, function (declaration) { + file.semanticDiagnostics.push(ts.createDiagnosticForNode(declaration.name, message, getDisplayName(declaration))); + }); + file.semanticDiagnostics.push(ts.createDiagnosticForNode(node.name, message, getDisplayName(node))); + symbol = createSymbol(0, name); + } + } + else { + symbol = createSymbol(0, "__missing"); + } + addDeclarationToSymbol(symbol, node, includes); + symbol.parent = parent; + if (node.kind === 188 /* ClassDeclaration */ && symbol.exports) { + var prototypeSymbol = createSymbol(4 /* Property */ | 536870912 /* Prototype */, "prototype"); + if (ts.hasProperty(symbol.exports, prototypeSymbol.name)) { + if (node.name) { + node.name.parent = node; + } + file.semanticDiagnostics.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 isAmbientContext(node) { + while (node) { + if (node.flags & 2 /* Ambient */) + return true; + node = node.parent; + } + return false; + } + function declareModuleMember(node, symbolKind, symbolExcludes) { + var exportKind = 0; + if (symbolKind & 107455 /* Value */) { + exportKind |= 4194304 /* ExportValue */; + } + if (symbolKind & 3152352 /* Type */) { + exportKind |= 8388608 /* ExportType */; + } + if (symbolKind & 1536 /* Namespace */) { + exportKind |= 16777216 /* ExportNamespace */; + } + if (node.flags & 1 /* Export */ || (node.kind !== 194 /* ImportDeclaration */ && isAmbientContext(container))) { + if (exportKind) { + 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.symbol.exports, container.symbol, node, symbolKind, symbolExcludes); + } + } + else { + declareSymbol(container.locals, undefined, node, symbolKind, symbolExcludes); + } + } + function bindChildren(node, symbolKind, isBlockScopeContainer) { + if (symbolKind & 1041936 /* HasLocals */) { + node.locals = {}; + } + var saveParent = parent; + var saveContainer = container; + var savedBlockScopeContainer = blockScopeContainer; + parent = node; + if (symbolKind & 1048560 /* IsContainer */) { + container = node; + if (lastContainer !== container && !container.nextContainer) { + if (lastContainer) { + lastContainer.nextContainer = container; + } + lastContainer = container; + } + } + if (isBlockScopeContainer) { + blockScopeContainer = node; + } + ts.forEachChild(node, bind); + container = saveContainer; + parent = saveParent; + blockScopeContainer = savedBlockScopeContainer; + } + function bindDeclaration(node, symbolKind, symbolExcludes, isBlockScopeContainer) { + switch (container.kind) { + case 192 /* ModuleDeclaration */: + declareModuleMember(node, symbolKind, symbolExcludes); + break; + case 197 /* SourceFile */: + if (ts.isExternalModule(container)) { + declareModuleMember(node, symbolKind, symbolExcludes); + break; + } + case 133 /* FunctionType */: + case 134 /* ConstructorType */: + case 129 /* CallSignature */: + case 130 /* ConstructSignature */: + case 131 /* IndexSignature */: + case 125 /* Method */: + case 126 /* Constructor */: + case 127 /* GetAccessor */: + case 128 /* SetAccessor */: + case 186 /* FunctionDeclaration */: + case 152 /* FunctionExpression */: + case 153 /* ArrowFunction */: + declareSymbol(container.locals, undefined, node, symbolKind, symbolExcludes); + break; + case 188 /* ClassDeclaration */: + if (node.flags & 128 /* Static */) { + declareSymbol(container.symbol.exports, container.symbol, node, symbolKind, symbolExcludes); + break; + } + case 136 /* TypeLiteral */: + case 142 /* ObjectLiteral */: + case 189 /* InterfaceDeclaration */: + declareSymbol(container.symbol.members, container.symbol, node, symbolKind, symbolExcludes); + break; + case 191 /* EnumDeclaration */: + declareSymbol(container.symbol.exports, container.symbol, node, symbolKind, symbolExcludes); + break; + } + bindChildren(node, symbolKind, isBlockScopeContainer); + } + function bindConstructorDeclaration(node) { + bindDeclaration(node, 16384 /* Constructor */, 0, true); + ts.forEach(node.parameters, function (p) { + if (p.flags & (16 /* Public */ | 32 /* Private */ | 64 /* Protected */)) { + bindDeclaration(p, 4 /* Property */, 107455 /* PropertyExcludes */, false); + } + }); + } + function bindModuleDeclaration(node) { + if (node.name.kind === 7 /* StringLiteral */) { + bindDeclaration(node, 512 /* ValueModule */, 106639 /* ValueModuleExcludes */, true); + } + else { + var state = getModuleInstanceState(node); + if (state === 0 /* NonInstantiated */) { + bindDeclaration(node, 1024 /* NamespaceModule */, 0 /* NamespaceModuleExcludes */, true); + } + else { + bindDeclaration(node, 512 /* ValueModule */, 106639 /* ValueModuleExcludes */, true); + if (state === 2 /* ConstEnumOnly */) { + node.symbol.constEnumOnlyModule = true; + } + else if (node.symbol.constEnumOnlyModule) { + node.symbol.constEnumOnlyModule = false; + } + } + } + } + function bindFunctionOrConstructorType(node) { + var symbolKind = node.kind === 133 /* FunctionType */ ? 131072 /* CallSignature */ : 262144 /* ConstructSignature */; + var symbol = createSymbol(symbolKind, getDeclarationName(node)); + addDeclarationToSymbol(symbol, node, symbolKind); + bindChildren(node, symbolKind, false); + var typeLiteralSymbol = createSymbol(2048 /* TypeLiteral */, "__type"); + addDeclarationToSymbol(typeLiteralSymbol, node, 2048 /* TypeLiteral */); + typeLiteralSymbol.members = {}; + typeLiteralSymbol.members[node.kind === 133 /* FunctionType */ ? "__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) { + var symbol = createSymbol(1 /* FunctionScopedVariable */, node.variable.text || "__missing"); + addDeclarationToSymbol(symbol, node, 1 /* FunctionScopedVariable */); + var saveParent = parent; + var savedBlockScopeContainer = blockScopeContainer; + parent = blockScopeContainer = node; + ts.forEachChild(node, bind); + parent = saveParent; + blockScopeContainer = savedBlockScopeContainer; + } + function bindBlockScopedVariableDeclaration(node) { + switch (blockScopeContainer.kind) { + case 192 /* ModuleDeclaration */: + declareModuleMember(node, 2 /* BlockScopedVariable */, 107455 /* BlockScopedVariableExcludes */); + break; + case 197 /* SourceFile */: + if (ts.isExternalModule(container)) { + declareModuleMember(node, 2 /* BlockScopedVariable */, 107455 /* BlockScopedVariableExcludes */); + break; + } + default: + if (!blockScopeContainer.locals) { + blockScopeContainer.locals = {}; + } + declareSymbol(blockScopeContainer.locals, undefined, node, 2 /* BlockScopedVariable */, 107455 /* BlockScopedVariableExcludes */); + } + bindChildren(node, 2 /* BlockScopedVariable */, false); + } + function bind(node) { + node.parent = parent; + switch (node.kind) { + case 122 /* TypeParameter */: + bindDeclaration(node, 1048576 /* TypeParameter */, 2103776 /* TypeParameterExcludes */, false); + break; + case 123 /* Parameter */: + bindDeclaration(node, 1 /* FunctionScopedVariable */, 107455 /* ParameterExcludes */, false); + break; + case 185 /* VariableDeclaration */: + if (node.flags & 6144 /* BlockScoped */) { + bindBlockScopedVariableDeclaration(node); + } + else { + bindDeclaration(node, 1 /* FunctionScopedVariable */, 107454 /* FunctionScopedVariableExcludes */, false); + } + break; + case 124 /* Property */: + case 143 /* PropertyAssignment */: + case 144 /* ShorthandPropertyAssignment */: + bindDeclaration(node, 4 /* Property */, 107455 /* PropertyExcludes */, false); + break; + case 196 /* EnumMember */: + bindDeclaration(node, 8 /* EnumMember */, 107455 /* EnumMemberExcludes */, false); + break; + case 129 /* CallSignature */: + bindDeclaration(node, 131072 /* CallSignature */, 0, false); + break; + case 130 /* ConstructSignature */: + bindDeclaration(node, 262144 /* ConstructSignature */, 0, true); + break; + case 125 /* Method */: + bindDeclaration(node, 8192 /* Method */, 99263 /* MethodExcludes */, true); + break; + case 131 /* IndexSignature */: + bindDeclaration(node, 524288 /* IndexSignature */, 0, false); + break; + case 186 /* FunctionDeclaration */: + bindDeclaration(node, 16 /* Function */, 106927 /* FunctionExcludes */, true); + break; + case 126 /* Constructor */: + bindConstructorDeclaration(node); + break; + case 127 /* GetAccessor */: + bindDeclaration(node, 32768 /* GetAccessor */, 41919 /* GetAccessorExcludes */, true); + break; + case 128 /* SetAccessor */: + bindDeclaration(node, 65536 /* SetAccessor */, 74687 /* SetAccessorExcludes */, true); + break; + case 133 /* FunctionType */: + case 134 /* ConstructorType */: + bindFunctionOrConstructorType(node); + break; + case 136 /* TypeLiteral */: + bindAnonymousDeclaration(node, 2048 /* TypeLiteral */, "__type", false); + break; + case 142 /* ObjectLiteral */: + bindAnonymousDeclaration(node, 4096 /* ObjectLiteral */, "__object", false); + break; + case 152 /* FunctionExpression */: + case 153 /* ArrowFunction */: + bindAnonymousDeclaration(node, 16 /* Function */, "__function", true); + break; + case 182 /* CatchBlock */: + bindCatchVariableDeclaration(node); + break; + case 188 /* ClassDeclaration */: + bindDeclaration(node, 32 /* Class */, 3258879 /* ClassExcludes */, false); + break; + case 189 /* InterfaceDeclaration */: + bindDeclaration(node, 64 /* Interface */, 3152288 /* InterfaceExcludes */, false); + break; + case 190 /* TypeAliasDeclaration */: + bindDeclaration(node, 2097152 /* TypeAlias */, 3152352 /* TypeAliasExcludes */, false); + break; + case 191 /* EnumDeclaration */: + if (ts.isConst(node)) { + bindDeclaration(node, 128 /* ConstEnum */, 3259263 /* ConstEnumExcludes */, false); + } + else { + bindDeclaration(node, 256 /* RegularEnum */, 3258623 /* RegularEnumExcludes */, false); + } + break; + case 192 /* ModuleDeclaration */: + bindModuleDeclaration(node); + break; + case 194 /* ImportDeclaration */: + bindDeclaration(node, 33554432 /* Import */, 33554432 /* ImportExcludes */, false); + break; + case 197 /* SourceFile */: + if (ts.isExternalModule(node)) { + bindAnonymousDeclaration(node, 512 /* ValueModule */, '"' + ts.removeFileExtension(node.filename) + '"', true); + break; + } + case 162 /* Block */: + case 181 /* TryBlock */: + case 182 /* CatchBlock */: + case 183 /* FinallyBlock */: + case 169 /* ForStatement */: + case 170 /* ForInStatement */: + case 175 /* SwitchStatement */: + bindChildren(node, 0, true); + break; + default: + var saveParent = parent; + parent = node; + ts.forEachChild(node, bind); + parent = saveParent; + } + } + } + ts.bindSourceFile = bindSourceFile; +})(ts || (ts = {})); +var ts; +(function (ts) { + 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; + } + function shouldEmitToOwnFile(sourceFile, compilerOptions) { + if (!ts.isDeclarationFile(sourceFile)) { + if ((ts.isExternalModule(sourceFile) || !compilerOptions.out) && !ts.fileExtensionIs(sourceFile.filename, ".js")) { + return true; + } + return false; + } + return false; + } + ts.shouldEmitToOwnFile = shouldEmitToOwnFile; + function isExternalModuleOrDeclarationFile(sourceFile) { + return ts.isExternalModule(sourceFile) || ts.isDeclarationFile(sourceFile); + } + ts.isExternalModuleOrDeclarationFile = isExternalModuleOrDeclarationFile; + 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(ts.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; } + }; + } + function getLineOfLocalPosition(currentSourceFile, pos) { + return currentSourceFile.getLineAndCharacterFromPosition(pos).line; + } + 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(); + } + } + 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; + } + }); + } + function writeCommentRange(currentSourceFile, writer, comment, newLine) { + if (currentSourceFile.text.charCodeAt(comment.pos + 1) === 42 /* asterisk */) { + var firstCommentLineAndCharacter = currentSourceFile.getLineAndCharacterFromPosition(comment.pos); + var firstCommentLineIndent; + for (var pos = comment.pos, currentLine = firstCommentLineAndCharacter.line; pos < comment.end; currentLine++) { + var nextLineStart = currentSourceFile.getPositionFromLineAndCharacter(currentLine + 1, 1); + if (pos !== comment.pos) { + if (firstCommentLineIndent === undefined) { + firstCommentLineIndent = calculateIndent(currentSourceFile.getPositionFromLineAndCharacter(firstCommentLineAndCharacter.line, 1), 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 /* tab */) { + currentLineIndent += getIndentSize() - (currentLineIndent % getIndentSize()); + } + else { + currentLineIndent++; + } + } + return currentLineIndent; + } + } + function getFirstConstructorWithBody(node) { + return ts.forEach(node.members, function (member) { + if (member.kind === 126 /* Constructor */ && member.body) { + return member; + } + }); + } + function getAllAccessorDeclarations(node, accessor) { + var firstAccessor; + var getAccessor; + var setAccessor; + ts.forEach(node.members, function (member) { + if ((member.kind === 127 /* GetAccessor */ || member.kind === 128 /* SetAccessor */) && member.name.text === accessor.name.text && (member.flags & 128 /* Static */) === (accessor.flags & 128 /* Static */)) { + if (!firstAccessor) { + firstAccessor = member; + } + if (member.kind === 127 /* GetAccessor */ && !getAccessor) { + getAccessor = member; + } + if (member.kind === 128 /* SetAccessor */ && !setAccessor) { + setAccessor = member; + } + } + }); + return { + firstAccessor: firstAccessor, + getAccessor: getAccessor, + setAccessor: setAccessor + }; + } + function getSourceFilePathInNewDir(sourceFile, program, newDirPath) { + var compilerHost = program.getCompilerHost(); + var sourceFilePath = ts.getNormalizedAbsolutePath(sourceFile.filename, compilerHost.getCurrentDirectory()); + sourceFilePath = sourceFilePath.replace(program.getCommonSourceDirectory(), ""); + return ts.combinePaths(newDirPath, sourceFilePath); + } + function getOwnEmitOutputFilePath(sourceFile, program, extension) { + var compilerOptions = program.getCompilerOptions(); + if (compilerOptions.outDir) { + var emitOutputFilePathWithoutExtension = ts.removeFileExtension(getSourceFilePathInNewDir(sourceFile, program, compilerOptions.outDir)); + } + else { + var emitOutputFilePathWithoutExtension = ts.removeFileExtension(sourceFile.filename); + } + return emitOutputFilePathWithoutExtension + extension; + } + function writeFile(compilerHost, diagnostics, filename, data, writeByteOrderMark) { + compilerHost.writeFile(filename, data, writeByteOrderMark, function (hostErrorMessage) { + diagnostics.push(ts.createCompilerDiagnostic(ts.Diagnostics.Could_not_write_file_0_Colon_1, filename, hostErrorMessage)); + }); + } + function emitDeclarations(program, resolver, diagnostics, jsFilePath, root) { + var newLine = program.getCompilerHost().getNewLine(); + var compilerOptions = program.getCompilerOptions(); + var compilerHost = program.getCompilerHost(); + 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 aliasDeclarationEmitInfo = []; + function createAndSetNewTextWriterWithSymbolWriter() { + var writer = 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 writeAsychronousImportDeclarations(importDeclarations) { + var oldWriter = writer; + ts.forEach(importDeclarations, function (aliasToWrite) { + var aliasEmitInfo = ts.forEach(aliasDeclarationEmitInfo, function (declEmitInfo) { return declEmitInfo.declaration === aliasToWrite ? declEmitInfo : undefined; }); + if (aliasEmitInfo) { + createAndSetNewTextWriterWithSymbolWriter(); + for (var declarationIndent = aliasEmitInfo.indent; declarationIndent; declarationIndent--) { + increaseIndent(); + } + writeImportDeclaration(aliasToWrite); + aliasEmitInfo.asynchronousOutput = writer.getText(); + } + }); + setWriter(oldWriter); + } + function handleSymbolAccessibilityError(symbolAccesibilityResult) { + if (symbolAccesibilityResult.accessibility === 0 /* Accessible */) { + if (symbolAccesibilityResult && symbolAccesibilityResult.aliasesToMakeVisible) { + writeAsychronousImportDeclarations(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 writeTypeAtLocation(location, type, getSymbolAccessibilityDiagnostic) { + writer.getSymbolAccessibilityDiagnostic = getSymbolAccessibilityDiagnostic; + write(": "); + if (type) { + emitType(type); + } + else { + resolver.writeTypeAtLocation(location, enclosingDeclaration, 2 /* UseTypeOfFunction */, writer); + } + } + function writeReturnTypeAtSignature(signature, getSymbolAccessibilityDiagnostic) { + writer.getSymbolAccessibilityDiagnostic = getSymbolAccessibilityDiagnostic; + write(": "); + if (signature.type) { + emitType(signature.type); + } + else { + resolver.writeReturnTypeOfSignatureDeclaration(signature, enclosingDeclaration, 2 /* UseTypeOfFunction */, writer); + } + } + function emitLines(nodes) { + for (var i = 0, n = nodes.length; i < n; i++) { + emitNode(nodes[i]); + } + } + function emitSeparatedList(nodes, separator, eachNodeEmitFn) { + var currentWriterPos = writer.getTextPos(); + for (var i = 0, n = nodes.length; i < n; i++) { + if (currentWriterPos !== writer.getTextPos()) { + write(separator); + } + currentWriterPos = writer.getTextPos(); + eachNodeEmitFn(nodes[i]); + } + } + function emitCommaList(nodes, eachNodeEmitFn) { + emitSeparatedList(nodes, ", ", eachNodeEmitFn); + } + function writeJsDocComments(declaration) { + if (declaration) { + var jsDocComments = ts.getJsDocComments(declaration, currentSourceFile); + emitNewLineBeforeLeadingComments(currentSourceFile, writer, declaration, jsDocComments); + emitComments(currentSourceFile, writer, jsDocComments, true, newLine, writeCommentRange); + } + } + function emitTypeWithNewGetSymbolAccessibilityDiangostic(type, getSymbolAccessibilityDiagnostic) { + writer.getSymbolAccessibilityDiagnostic = getSymbolAccessibilityDiagnostic; + emitType(type); + } + function emitType(type) { + switch (type.kind) { + case 109 /* AnyKeyword */: + case 118 /* StringKeyword */: + case 116 /* NumberKeyword */: + case 110 /* BooleanKeyword */: + case 97 /* VoidKeyword */: + case 7 /* StringLiteral */: + return writeTextOfNode(currentSourceFile, type); + case 132 /* TypeReference */: + return emitTypeReference(type); + case 135 /* TypeQuery */: + return emitTypeQuery(type); + case 137 /* ArrayType */: + return emitArrayType(type); + case 138 /* TupleType */: + return emitTupleType(type); + case 139 /* UnionType */: + return emitUnionType(type); + case 140 /* ParenType */: + return emitParenType(type); + case 133 /* FunctionType */: + case 134 /* ConstructorType */: + return emitSignatureDeclarationWithJsDocComments(type); + case 136 /* TypeLiteral */: + return emitTypeLiteral(type); + case 63 /* Identifier */: + return emitEntityName(type); + case 121 /* QualifiedName */: + return emitEntityName(type); + default: + ts.Debug.fail("Unknown type annotation: " + type.kind); + } + function emitEntityName(entityName) { + var visibilityResult = resolver.isEntityNameVisible(entityName, entityName.parent.kind === 194 /* ImportDeclaration */ ? entityName.parent : enclosingDeclaration); + handleSymbolAccessibilityError(visibilityResult); + writeEntityName(entityName); + function writeEntityName(entityName) { + if (entityName.kind === 63 /* Identifier */) { + 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("export = "); + writeTextOfNode(currentSourceFile, node.exportName); + write(";"); + writeLine(); + } + function emitModuleElementDeclarationFlags(node) { + if (node.parent === currentSourceFile) { + if (node.flags & 1 /* Export */) { + write("export "); + } + if (node.kind !== 189 /* InterfaceDeclaration */) { + write("declare "); + } + } + } + function emitClassMemberDeclarationFlags(node) { + if (node.flags & 32 /* Private */) { + write("private "); + } + else if (node.flags & 64 /* Protected */) { + write("protected "); + } + if (node.flags & 128 /* Static */) { + write("static "); + } + } + function emitImportDeclaration(node) { + var nodeEmitInfo = { + declaration: node, + outputPos: writer.getTextPos(), + indent: writer.getIndent(), + hasWritten: resolver.isDeclarationVisible(node) + }; + aliasDeclarationEmitInfo.push(nodeEmitInfo); + if (nodeEmitInfo.hasWritten) { + writeImportDeclaration(node); + } + } + function writeImportDeclaration(node) { + emitJsDocComments(node); + if (node.flags & 1 /* Export */) { + write("export "); + } + write("import "); + writeTextOfNode(currentSourceFile, node.name); + write(" = "); + if (node.entityName) { + emitTypeWithNewGetSymbolAccessibilityDiangostic(node.entityName, getImportEntityNameVisibilityError); + write(";"); + } + else { + write("require("); + writeTextOfNode(currentSourceFile, node.externalModuleName); + write(");"); + } + writer.writeLine(); + function getImportEntityNameVisibilityError(symbolAccesibilityResult) { + return { + diagnosticMessage: ts.Diagnostics.Import_declaration_0_is_using_private_name_1, + errorNode: node, + typeName: node.name + }; + } + } + function emitModuleDeclaration(node) { + if (resolver.isDeclarationVisible(node)) { + emitJsDocComments(node); + emitModuleElementDeclarationFlags(node); + write("module "); + writeTextOfNode(currentSourceFile, node.name); + while (node.body.kind !== 193 /* ModuleBlock */) { + 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 emitTypeAliasDeclaration(node) { + if (resolver.isDeclarationVisible(node)) { + emitJsDocComments(node); + emitModuleElementDeclarationFlags(node); + write("type "); + writeTextOfNode(currentSourceFile, node.name); + write(" = "); + emitTypeWithNewGetSymbolAccessibilityDiangostic(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 emitEnumDeclaration(node) { + if (resolver.isDeclarationVisible(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.getEnumMemberValue(node); + if (enumMemberValue !== undefined) { + write(" = "); + write(enumMemberValue.toString()); + } + write(","); + writeLine(); + } + function emitTypeParameters(typeParameters) { + function emitTypeParameter(node) { + increaseIndent(); + emitJsDocComments(node); + decreaseIndent(); + writeTextOfNode(currentSourceFile, node.name); + if (node.constraint && (node.parent.kind !== 125 /* Method */ || !(node.parent.flags & 32 /* Private */))) { + write(" extends "); + if (node.parent.kind === 133 /* FunctionType */ || node.parent.kind === 134 /* ConstructorType */ || (node.parent.parent && node.parent.parent.kind === 136 /* TypeLiteral */)) { + ts.Debug.assert(node.parent.kind === 125 /* Method */ || node.parent.kind === 133 /* FunctionType */ || node.parent.kind === 134 /* ConstructorType */ || node.parent.kind === 129 /* CallSignature */ || node.parent.kind === 130 /* ConstructSignature */); + emitType(node.constraint); + } + else { + emitTypeWithNewGetSymbolAccessibilityDiangostic(node.constraint, getTypeParameterConstraintVisibilityError); + } + } + function getTypeParameterConstraintVisibilityError(symbolAccesibilityResult) { + var diagnosticMessage; + switch (node.parent.kind) { + case 188 /* ClassDeclaration */: + diagnosticMessage = ts.Diagnostics.Type_parameter_0_of_exported_class_has_or_is_using_private_name_1; + break; + case 189 /* InterfaceDeclaration */: + diagnosticMessage = ts.Diagnostics.Type_parameter_0_of_exported_interface_has_or_is_using_private_name_1; + break; + case 130 /* ConstructSignature */: + diagnosticMessage = ts.Diagnostics.Type_parameter_0_of_constructor_signature_from_exported_interface_has_or_is_using_private_name_1; + break; + case 129 /* CallSignature */: + diagnosticMessage = ts.Diagnostics.Type_parameter_0_of_call_signature_from_exported_interface_has_or_is_using_private_name_1; + break; + case 125 /* Method */: + if (node.parent.flags & 128 /* Static */) { + 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 === 188 /* ClassDeclaration */) { + 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 186 /* FunctionDeclaration */: + 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) { + emitTypeWithNewGetSymbolAccessibilityDiangostic(node, getHeritageClauseVisibilityError); + function getHeritageClauseVisibilityError(symbolAccesibilityResult) { + var diagnosticMessage; + if (node.parent.kind === 188 /* ClassDeclaration */) { + 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.name + }; + } + } + } + function emitClassDeclaration(node) { + function emitParameterProperties(constructorDeclaration) { + if (constructorDeclaration) { + ts.forEach(constructorDeclaration.parameters, function (param) { + if (param.flags & 112 /* AccessibilityModifier */) { + emitPropertyDeclaration(param); + } + }); + } + } + if (resolver.isDeclarationVisible(node)) { + emitJsDocComments(node); + emitModuleElementDeclarationFlags(node); + write("class "); + writeTextOfNode(currentSourceFile, node.name); + var prevEnclosingDeclaration = enclosingDeclaration; + enclosingDeclaration = node; + emitTypeParameters(node.typeParameters); + if (node.baseType) { + emitHeritageClause([node.baseType], false); + } + emitHeritageClause(node.implementedTypes, true); + write(" {"); + writeLine(); + increaseIndent(); + emitParameterProperties(getFirstConstructorWithBody(node)); + emitLines(node.members); + decreaseIndent(); + write("}"); + writeLine(); + enclosingDeclaration = prevEnclosingDeclaration; + } + } + function emitInterfaceDeclaration(node) { + if (resolver.isDeclarationVisible(node)) { + emitJsDocComments(node); + emitModuleElementDeclarationFlags(node); + write("interface "); + writeTextOfNode(currentSourceFile, node.name); + var prevEnclosingDeclaration = enclosingDeclaration; + enclosingDeclaration = node; + emitTypeParameters(node.typeParameters); + emitHeritageClause(node.baseTypes, false); + write(" {"); + writeLine(); + increaseIndent(); + emitLines(node.members); + decreaseIndent(); + write("}"); + writeLine(); + enclosingDeclaration = prevEnclosingDeclaration; + } + } + function emitPropertyDeclaration(node) { + emitJsDocComments(node); + emitClassMemberDeclarationFlags(node); + emitVariableDeclaration(node); + write(";"); + writeLine(); + } + function emitVariableDeclaration(node) { + if (node.kind !== 185 /* VariableDeclaration */ || resolver.isDeclarationVisible(node)) { + writeTextOfNode(currentSourceFile, node.name); + if (node.kind === 124 /* Property */ && (node.flags & 4 /* QuestionMark */)) { + write("?"); + } + if (node.kind === 124 /* Property */ && node.parent.kind === 136 /* TypeLiteral */) { + emitTypeOfVariableDeclarationFromTypeLiteral(node); + } + else if (!(node.flags & 32 /* Private */)) { + writeTypeAtLocation(node, node.type, getVariableDeclarationTypeVisibilityError); + } + } + function getVariableDeclarationTypeVisibilityError(symbolAccesibilityResult) { + var diagnosticMessage; + if (node.kind === 185 /* VariableDeclaration */) { + diagnosticMessage = symbolAccesibilityResult.errorModuleName ? symbolAccesibilityResult.accessibility === 2 /* CannotBeNamed */ ? 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 === 124 /* Property */) { + if (node.flags & 128 /* Static */) { + diagnosticMessage = symbolAccesibilityResult.errorModuleName ? symbolAccesibilityResult.accessibility === 2 /* CannotBeNamed */ ? 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 === 188 /* ClassDeclaration */) { + diagnosticMessage = symbolAccesibilityResult.errorModuleName ? symbolAccesibilityResult.accessibility === 2 /* CannotBeNamed */ ? 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 { + diagnosticMessage = 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; + } + } + return diagnosticMessage !== undefined ? { + diagnosticMessage: diagnosticMessage, + errorNode: node, + typeName: node.name + } : undefined; + } + } + function emitTypeOfVariableDeclarationFromTypeLiteral(node) { + if (node.type) { + write(": "); + emitType(node.type); + } + } + function emitVariableStatement(node) { + var hasDeclarationWithEmit = ts.forEach(node.declarations, function (varDeclaration) { return resolver.isDeclarationVisible(varDeclaration); }); + if (hasDeclarationWithEmit) { + emitJsDocComments(node); + emitModuleElementDeclarationFlags(node); + if (ts.isLet(node)) { + write("let "); + } + else if (ts.isConst(node)) { + write("const "); + } + else { + write("var "); + } + emitCommaList(node.declarations, emitVariableDeclaration); + write(";"); + writeLine(); + } + } + function emitAccessorDeclaration(node) { + var accessors = getAllAccessorDeclarations(node.parent, node); + if (node === accessors.firstAccessor) { + emitJsDocComments(accessors.getAccessor); + emitJsDocComments(accessors.setAccessor); + emitClassMemberDeclarationFlags(node); + writeTextOfNode(currentSourceFile, node.name); + if (!(node.flags & 32 /* Private */)) { + var accessorWithTypeAnnotation = node; + var type = getTypeAnnotationFromAccessor(node); + if (!type) { + var anotherAccessor = node.kind === 127 /* GetAccessor */ ? accessors.setAccessor : accessors.getAccessor; + type = getTypeAnnotationFromAccessor(anotherAccessor); + if (type) { + accessorWithTypeAnnotation = anotherAccessor; + } + } + writeTypeAtLocation(node, type, getAccessorDeclarationTypeVisibilityError); + } + write(";"); + writeLine(); + } + function getTypeAnnotationFromAccessor(accessor) { + if (accessor) { + return accessor.kind === 127 /* GetAccessor */ ? accessor.type : accessor.parameters[0].type; + } + } + function getAccessorDeclarationTypeVisibilityError(symbolAccesibilityResult) { + var diagnosticMessage; + if (accessorWithTypeAnnotation.kind === 128 /* SetAccessor */) { + if (accessorWithTypeAnnotation.parent.flags & 128 /* Static */) { + 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 /* Static */) { + diagnosticMessage = symbolAccesibilityResult.errorModuleName ? symbolAccesibilityResult.accessibility === 2 /* CannotBeNamed */ ? 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 /* CannotBeNamed */ ? 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 emitFunctionDeclaration(node) { + if ((node.kind !== 186 /* FunctionDeclaration */ || resolver.isDeclarationVisible(node)) && !resolver.isImplementationOfOverload(node)) { + emitJsDocComments(node); + if (node.kind === 186 /* FunctionDeclaration */) { + emitModuleElementDeclarationFlags(node); + } + else if (node.kind === 125 /* Method */) { + emitClassMemberDeclarationFlags(node); + } + if (node.kind === 186 /* FunctionDeclaration */) { + write("function "); + writeTextOfNode(currentSourceFile, node.name); + } + else if (node.kind === 126 /* Constructor */) { + write("constructor"); + } + else { + writeTextOfNode(currentSourceFile, node.name); + if (node.flags & 4 /* QuestionMark */) { + write("?"); + } + } + emitSignatureDeclaration(node); + } + } + function emitSignatureDeclarationWithJsDocComments(node) { + emitJsDocComments(node); + emitSignatureDeclaration(node); + } + function emitSignatureDeclaration(node) { + if (node.kind === 130 /* ConstructSignature */ || node.kind === 134 /* ConstructorType */) { + write("new "); + } + emitTypeParameters(node.typeParameters); + if (node.kind === 131 /* IndexSignature */) { + write("["); + } + else { + write("("); + } + var prevEnclosingDeclaration = enclosingDeclaration; + enclosingDeclaration = node; + emitCommaList(node.parameters, emitParameterDeclaration); + if (node.kind === 131 /* IndexSignature */) { + write("]"); + } + else { + write(")"); + } + var isFunctionTypeOrConstructorType = node.kind === 133 /* FunctionType */ || node.kind === 134 /* ConstructorType */; + if (isFunctionTypeOrConstructorType || node.parent.kind === 136 /* TypeLiteral */) { + if (node.type) { + write(isFunctionTypeOrConstructorType ? " => " : ": "); + emitType(node.type); + } + } + else if (node.kind !== 126 /* Constructor */ && !(node.flags & 32 /* Private */)) { + writeReturnTypeAtSignature(node, getReturnTypeVisibilityError); + } + enclosingDeclaration = prevEnclosingDeclaration; + if (!isFunctionTypeOrConstructorType) { + write(";"); + writeLine(); + } + function getReturnTypeVisibilityError(symbolAccesibilityResult) { + var diagnosticMessage; + switch (node.kind) { + case 130 /* ConstructSignature */: + 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 129 /* CallSignature */: + 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 131 /* IndexSignature */: + 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 125 /* Method */: + if (node.flags & 128 /* Static */) { + diagnosticMessage = symbolAccesibilityResult.errorModuleName ? symbolAccesibilityResult.accessibility === 2 /* CannotBeNamed */ ? 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 === 188 /* ClassDeclaration */) { + diagnosticMessage = symbolAccesibilityResult.errorModuleName ? symbolAccesibilityResult.accessibility === 2 /* CannotBeNamed */ ? 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 186 /* FunctionDeclaration */: + diagnosticMessage = symbolAccesibilityResult.errorModuleName ? symbolAccesibilityResult.accessibility === 2 /* CannotBeNamed */ ? 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.flags & 8 /* Rest */) { + write("..."); + } + writeTextOfNode(currentSourceFile, node.name); + if (node.initializer || (node.flags & 4 /* QuestionMark */)) { + write("?"); + } + decreaseIndent(); + if (node.parent.kind === 133 /* FunctionType */ || node.parent.kind === 134 /* ConstructorType */ || node.parent.parent.kind === 136 /* TypeLiteral */) { + emitTypeOfVariableDeclarationFromTypeLiteral(node); + } + else if (!(node.parent.flags & 32 /* Private */)) { + writeTypeAtLocation(node, node.type, getParameterDeclarationTypeVisibilityError); + } + function getParameterDeclarationTypeVisibilityError(symbolAccesibilityResult) { + var diagnosticMessage; + switch (node.parent.kind) { + case 126 /* Constructor */: + diagnosticMessage = symbolAccesibilityResult.errorModuleName ? symbolAccesibilityResult.accessibility === 2 /* CannotBeNamed */ ? 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 130 /* ConstructSignature */: + 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 129 /* CallSignature */: + 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 125 /* Method */: + if (node.parent.flags & 128 /* Static */) { + diagnosticMessage = symbolAccesibilityResult.errorModuleName ? symbolAccesibilityResult.accessibility === 2 /* CannotBeNamed */ ? 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 === 188 /* ClassDeclaration */) { + diagnosticMessage = symbolAccesibilityResult.errorModuleName ? symbolAccesibilityResult.accessibility === 2 /* CannotBeNamed */ ? 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 186 /* FunctionDeclaration */: + diagnosticMessage = symbolAccesibilityResult.errorModuleName ? symbolAccesibilityResult.accessibility === 2 /* CannotBeNamed */ ? 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 126 /* Constructor */: + case 186 /* FunctionDeclaration */: + case 125 /* Method */: + return emitFunctionDeclaration(node); + case 130 /* ConstructSignature */: + case 129 /* CallSignature */: + case 131 /* IndexSignature */: + return emitSignatureDeclarationWithJsDocComments(node); + case 127 /* GetAccessor */: + case 128 /* SetAccessor */: + return emitAccessorDeclaration(node); + case 163 /* VariableStatement */: + return emitVariableStatement(node); + case 124 /* Property */: + return emitPropertyDeclaration(node); + case 189 /* InterfaceDeclaration */: + return emitInterfaceDeclaration(node); + case 188 /* ClassDeclaration */: + return emitClassDeclaration(node); + case 190 /* TypeAliasDeclaration */: + return emitTypeAliasDeclaration(node); + case 196 /* EnumMember */: + return emitEnumMemberDeclaration(node); + case 191 /* EnumDeclaration */: + return emitEnumDeclaration(node); + case 192 /* ModuleDeclaration */: + return emitModuleDeclaration(node); + case 194 /* ImportDeclaration */: + return emitImportDeclaration(node); + case 195 /* ExportAssignment */: + return emitExportAssignment(node); + case 197 /* SourceFile */: + return emitSourceFile(node); + } + } + var referencePathsOutput = ""; + function writeReferencePath(referencedFile) { + var declFileName = referencedFile.flags & 1024 /* DeclarationFile */ ? referencedFile.filename : shouldEmitToOwnFile(referencedFile, compilerOptions) ? getOwnEmitOutputFilePath(referencedFile, program, ".d.ts") : ts.removeFileExtension(compilerOptions.out) + ".d.ts"; + declFileName = ts.getRelativePathToDirectoryOrUrl(ts.getDirectoryPath(ts.normalizeSlashes(jsFilePath)), declFileName, compilerHost.getCurrentDirectory(), compilerHost.getCanonicalFileName, false); + referencePathsOutput += "/// " + newLine; + } + if (root) { + if (!compilerOptions.noResolve) { + var addedGlobalFileReference = false; + ts.forEach(root.referencedFiles, function (fileReference) { + var referencedFile = ts.tryResolveScriptReference(program, root, fileReference); + if (referencedFile && ((referencedFile.flags & 1024 /* DeclarationFile */) || shouldEmitToOwnFile(referencedFile, compilerOptions) || !addedGlobalFileReference)) { + writeReferencePath(referencedFile); + if (!isExternalModuleOrDeclarationFile(referencedFile)) { + addedGlobalFileReference = true; + } + } + }); + } + emitNode(root); + } + else { + var emittedReferencedFiles = []; + ts.forEach(program.getSourceFiles(), function (sourceFile) { + if (!isExternalModuleOrDeclarationFile(sourceFile)) { + if (!compilerOptions.noResolve) { + ts.forEach(sourceFile.referencedFiles, function (fileReference) { + var referencedFile = ts.tryResolveScriptReference(program, sourceFile, fileReference); + if (referencedFile && (isExternalModuleOrDeclarationFile(referencedFile) && !ts.contains(emittedReferencedFiles, referencedFile))) { + writeReferencePath(referencedFile); + emittedReferencedFiles.push(referencedFile); + } + }); + } + emitNode(sourceFile); + } + }); + } + return { + reportedDeclarationError: reportedDeclarationError, + aliasDeclarationEmitInfo: aliasDeclarationEmitInfo, + synchronousDeclarationOutput: writer.getText(), + referencePathsOutput: referencePathsOutput + }; + } + function getDeclarationDiagnostics(program, resolver, targetSourceFile) { + var diagnostics = []; + var jsFilePath = getOwnEmitOutputFilePath(targetSourceFile, program, ".js"); + emitDeclarations(program, resolver, diagnostics, jsFilePath, targetSourceFile); + return diagnostics; + } + ts.getDeclarationDiagnostics = getDeclarationDiagnostics; + function emitFiles(resolver, targetSourceFile) { + var program = resolver.getProgram(); + var compilerHost = program.getCompilerHost(); + var compilerOptions = program.getCompilerOptions(); + var sourceMapDataList = compilerOptions.sourceMap ? [] : undefined; + var diagnostics = []; + var newLine = program.getCompilerHost().getNewLine(); + function emitJavaScript(jsFilePath, root) { + var writer = 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 extendsEmitted = false; + var writeEmittedFiles = writeJavaScriptFile; + var emitLeadingComments = compilerOptions.removeComments ? function (node) { + } : emitLeadingDeclarationComments; + var emitTrailingComments = compilerOptions.removeComments ? function (node) { + } : emitTrailingDeclarationComments; + var emitLeadingCommentsOfPosition = compilerOptions.removeComments ? function (pos) { + } : emitLeadingCommentsOfLocalPosition; + var detachedCommentsInfo; + var emitDetachedComments = compilerOptions.removeComments ? function (node) { + } : emitDetachedCommentsAtPosition; + var emitPinnedOrTripleSlashComments = compilerOptions.removeComments ? function (node) { + } : emitPinnedOrTripleSlashCommentsOfNode; + var writeComment = writeCommentRange; + var emit = emitNode; + var emitStart = function (node) { + }; + var emitEnd = function (node) { + }; + var emitToken = emitTokenText; + var scopeEmitStart = function (scopeDeclaration, scopeName) { + }; + var scopeEmitEnd = function () { + }; + var sourceMapData; + 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 = currentSourceFile.getLineAndCharacterFromPosition(pos); + 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 ? program.getCommonSourceDirectory() : sourceMapDir; + sourceMapData.sourceMapSources.push(ts.getRelativePathToDirectoryOrUrl(sourcesDirectoryPath, node.filename, compilerHost.getCurrentDirectory(), compilerHost.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) { + 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 === 186 /* FunctionDeclaration */ || node.kind === 152 /* FunctionExpression */ || node.kind === 125 /* Method */ || node.kind === 127 /* GetAccessor */ || node.kind === 128 /* SetAccessor */ || node.kind === 192 /* ModuleDeclaration */ || node.kind === 188 /* ClassDeclaration */ || node.kind === 191 /* EnumDeclaration */) { + if (node.name) { + scopeName = node.name.text; + } + recordScopeNameStart(scopeName); + } + else { + recordScopeNameIndex(getSourceMapNameIndex()); + } + } + function recordScopeNameEnd() { + sourceMapNameIndices.pop(); + } + ; + function writeCommentRangeWithMap(curentSourceFile, writer, comment, newLine) { + recordSourceMapSpan(comment.pos); + 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(); + writeFile(compilerHost, 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 /* slash */) { + sourceMapData.sourceMapSourceRoot += ts.directorySeparator; + } + if (compilerOptions.mapRoot) { + sourceMapDir = ts.normalizeSlashes(compilerOptions.mapRoot); + if (root) { + sourceMapDir = ts.getDirectoryPath(getSourceFilePathInNewDir(root, program, sourceMapDir)); + } + if (!ts.isRootedDiskPath(sourceMapDir) && !ts.isUrl(sourceMapDir)) { + sourceMapDir = ts.combinePaths(program.getCommonSourceDirectory(), sourceMapDir); + sourceMapData.jsSourceMappingURL = ts.getRelativePathToDirectoryOrUrl(ts.getDirectoryPath(ts.normalizePath(jsFilePath)), ts.combinePaths(sourceMapDir, sourceMapData.jsSourceMappingURL), compilerHost.getCurrentDirectory(), compilerHost.getCanonicalFileName, true); + } + else { + sourceMapData.jsSourceMappingURL = ts.combinePaths(sourceMapDir, sourceMapData.jsSourceMappingURL); + } + } + else { + sourceMapDir = ts.getDirectoryPath(ts.normalizePath(jsFilePath)); + } + function emitNodeWithMap(node) { + if (node) { + if (node.kind != 197 /* SourceFile */) { + recordEmitNodeStartSpan(node); + emitNode(node); + recordEmitNodeEndSpan(node); + } + else { + recordNewSourceFileStart(node); + emitNode(node); + } + } + } + writeEmittedFiles = writeJavaScriptAndSourceMapFile; + emit = emitNodeWithMap; + emitStart = recordEmitNodeStartSpan; + emitEnd = recordEmitNodeEndSpan; + emitToken = writeTextWithSpanRecord; + scopeEmitStart = recordScopeNameOfNode; + scopeEmitEnd = recordScopeNameEnd; + writeComment = writeCommentRangeWithMap; + } + function writeJavaScriptFile(emitOutput, writeByteOrderMark) { + writeFile(compilerHost, diagnostics, jsFilePath, emitOutput, writeByteOrderMark); + } + 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 emitTrailingCommaIfPresent(nodeList, isMultiline) { + if (nodeList.hasTrailingComma) { + write(","); + if (isMultiline) { + writeLine(); + } + } + } + function emitCommaList(nodes, includeTrailingComma, count) { + if (!(count >= 0)) { + count = nodes.length; + } + if (nodes) { + for (var i = 0; i < count; i++) { + if (i) { + write(", "); + } + emit(nodes[i]); + } + if (includeTrailingComma) { + emitTrailingCommaIfPresent(nodes, false); + } + } + } + function emitMultiLineList(nodes, includeTrailingComma) { + if (nodes) { + for (var i = 0; i < nodes.length; i++) { + if (i) { + write(","); + } + writeLine(); + emit(nodes[i]); + } + if (includeTrailingComma) { + emitTrailingCommaIfPresent(nodes, true); + } + } + } + function emitLines(nodes) { + emitLinesStartingAt(nodes, 0); + } + function emitLinesStartingAt(nodes, startIndex) { + for (var i = startIndex; i < nodes.length; i++) { + writeLine(); + emit(nodes[i]); + } + } + function emitLiteral(node) { + var text = getLiteralText(); + if (compilerOptions.sourceMap && (node.kind === 7 /* StringLiteral */ || ts.isTemplateLiteralKind(node.kind))) { + writer.writeLiteral(text); + } + else { + write(text); + } + function getLiteralText() { + if (compilerOptions.target < 2 /* ES6 */ && ts.isTemplateLiteralKind(node.kind)) { + return getTemplateLiteralAsStringLiteral(node); + } + return ts.getSourceTextOfNodeFromSourceFile(currentSourceFile, node); + } + } + function getTemplateLiteralAsStringLiteral(node) { + return '"' + ts.escapeString(node.text) + '"'; + } + function emitTemplateExpression(node) { + if (compilerOptions.target >= 2 /* ES6 */) { + ts.forEachChild(node, emit); + return; + } + ts.Debug.assert(node.parent.kind !== 149 /* TaggedTemplateExpression */); + var emitOuterParens = ts.isExpression(node.parent) && templateNeedsParens(node, node.parent); + if (emitOuterParens) { + write("("); + } + emitLiteral(node.head); + ts.forEach(node.templateSpans, function (templateSpan) { + var needsParens = templateSpan.expression.kind !== 151 /* ParenExpression */ && comparePrecedenceToBinaryPlus(templateSpan.expression) !== 1 /* GreaterThan */; + write(" + "); + if (needsParens) { + write("("); + } + emit(templateSpan.expression); + if (needsParens) { + write(")"); + } + if (templateSpan.literal.text.length !== 0) { + write(" + "); + emitLiteral(templateSpan.literal); + } + }); + if (emitOuterParens) { + write(")"); + } + function templateNeedsParens(template, parent) { + switch (parent.kind) { + case 147 /* CallExpression */: + case 148 /* NewExpression */: + return parent.func === template; + case 151 /* ParenExpression */: + return false; + case 149 /* TaggedTemplateExpression */: + ts.Debug.fail("Path should be unreachable; tagged templates not supported pre-ES6."); + default: + return comparePrecedenceToBinaryPlus(parent) !== -1 /* LessThan */; + } + } + function comparePrecedenceToBinaryPlus(expression) { + ts.Debug.assert(compilerOptions.target <= 1 /* ES5 */); + switch (expression.kind) { + case 156 /* BinaryExpression */: + switch (expression.operator) { + case 34 /* AsteriskToken */: + case 35 /* SlashToken */: + case 36 /* PercentToken */: + return 1 /* GreaterThan */; + case 32 /* PlusToken */: + return 0 /* EqualTo */; + default: + return -1 /* LessThan */; + } + case 157 /* ConditionalExpression */: + return -1 /* LessThan */; + default: + return 1 /* GreaterThan */; + } + } + } + function emitTemplateSpan(span) { + emit(span.expression); + emit(span.literal); + } + function emitExpressionForPropertyName(node) { + if (node.kind === 7 /* StringLiteral */) { + emitLiteral(node); + } + else { + write("\""); + if (node.kind === 6 /* NumericLiteral */) { + write(node.text); + } + else { + writeTextOfNode(currentSourceFile, node); + } + write("\""); + } + } + function isNotExpressionIdentifier(node) { + var parent = node.parent; + switch (parent.kind) { + case 123 /* Parameter */: + case 185 /* VariableDeclaration */: + case 124 /* Property */: + case 143 /* PropertyAssignment */: + case 144 /* ShorthandPropertyAssignment */: + case 196 /* EnumMember */: + case 125 /* Method */: + case 186 /* FunctionDeclaration */: + case 127 /* GetAccessor */: + case 128 /* SetAccessor */: + case 152 /* FunctionExpression */: + case 188 /* ClassDeclaration */: + case 189 /* InterfaceDeclaration */: + case 191 /* EnumDeclaration */: + case 192 /* ModuleDeclaration */: + case 194 /* ImportDeclaration */: + return parent.name === node; + case 172 /* BreakStatement */: + case 171 /* ContinueStatement */: + case 195 /* ExportAssignment */: + return false; + case 178 /* LabeledStatement */: + return node.parent.label === node; + case 182 /* CatchBlock */: + return node.parent.variable === node; + } + } + function emitExpressionIdentifier(node) { + var prefix = resolver.getExpressionNamePrefix(node); + if (prefix) { + write(prefix); + write("."); + } + writeTextOfNode(currentSourceFile, node); + } + function emitIdentifier(node) { + if (!isNotExpressionIdentifier(node)) { + emitExpressionIdentifier(node); + } + else { + writeTextOfNode(currentSourceFile, node); + } + } + function emitThis(node) { + if (resolver.getNodeCheckFlags(node) & 2 /* LexicalThis */) { + write("_this"); + } + else { + write("this"); + } + } + function emitSuper(node) { + var flags = resolver.getNodeCheckFlags(node); + if (flags & 16 /* SuperInstance */) { + write("_super.prototype"); + } + else if (flags & 32 /* SuperStatic */) { + write("_super"); + } + else { + write("super"); + } + } + function emitArrayLiteral(node) { + if (node.flags & 256 /* MultiLine */) { + write("["); + increaseIndent(); + emitMultiLineList(node.elements, true); + decreaseIndent(); + writeLine(); + write("]"); + } + else { + write("["); + emitCommaList(node.elements, true); + write("]"); + } + } + function emitObjectLiteral(node) { + if (!node.properties.length) { + write("{}"); + } + else if (node.flags & 256 /* MultiLine */) { + write("{"); + increaseIndent(); + emitMultiLineList(node.properties, compilerOptions.target >= 1 /* ES5 */); + decreaseIndent(); + writeLine(); + write("}"); + } + else { + write("{ "); + emitCommaList(node.properties, compilerOptions.target >= 1 /* ES5 */); + write(" }"); + } + } + function emitPropertyAssignment(node) { + emitLeadingComments(node); + emit(node.name); + write(": "); + emit(node.initializer); + emitTrailingComments(node); + } + function emitShortHandPropertyAssignment(node) { + function emitAsNormalPropertyAssignment() { + emitLeadingComments(node); + emit(node.name); + write(": "); + emitExpressionIdentifier(node.name); + emitTrailingComments(node); + } + if (compilerOptions.target < 2 /* ES6 */) { + emitAsNormalPropertyAssignment(); + } + else if (compilerOptions.target >= 2 /* ES6 */) { + var prefix = resolver.getExpressionNamePrefix(node.name); + if (prefix) { + emitAsNormalPropertyAssignment(); + } + else { + emitLeadingComments(node); + emit(node.name); + emitTrailingComments(node); + } + } + } + function tryEmitConstantValue(node) { + var constantValue = resolver.getConstantValue(node); + if (constantValue !== undefined) { + var propertyName = node.kind === 145 /* PropertyAccess */ ? ts.declarationNameToString(node.right) : ts.getTextOfNode(node.index); + write(constantValue.toString() + " /* " + propertyName + " */"); + return true; + } + return false; + } + function emitPropertyAccess(node) { + if (tryEmitConstantValue(node)) { + return; + } + emit(node.left); + write("."); + emit(node.right); + } + function emitIndexedAccess(node) { + if (tryEmitConstantValue(node)) { + return; + } + emit(node.object); + write("["); + emit(node.index); + write("]"); + } + function emitCallExpression(node) { + var superCall = false; + if (node.func.kind === 89 /* SuperKeyword */) { + write("_super"); + superCall = true; + } + else { + emit(node.func); + superCall = node.func.kind === 145 /* PropertyAccess */ && node.func.left.kind === 89 /* SuperKeyword */; + } + if (superCall) { + write(".call("); + emitThis(node.func); + if (node.arguments.length) { + write(", "); + emitCommaList(node.arguments, false); + } + write(")"); + } + else { + write("("); + emitCommaList(node.arguments, false); + write(")"); + } + } + function emitNewExpression(node) { + write("new "); + emit(node.func); + if (node.arguments) { + write("("); + emitCommaList(node.arguments, false); + write(")"); + } + } + function emitTaggedTemplateExpression(node) { + ts.Debug.assert(compilerOptions.target >= 2 /* ES6 */, "Trying to emit a tagged template in pre-ES6 mode."); + emit(node.tag); + write(" "); + emit(node.template); + } + function emitParenExpression(node) { + if (node.expression.kind === 150 /* TypeAssertion */) { + var operand = node.expression.operand; + while (operand.kind == 150 /* TypeAssertion */) { + operand = operand.operand; + } + if (operand.kind !== 154 /* PrefixOperator */ && operand.kind !== 155 /* PostfixOperator */ && operand.kind !== 148 /* NewExpression */ && !(operand.kind === 147 /* CallExpression */ && node.parent.kind === 148 /* NewExpression */) && !(operand.kind === 152 /* FunctionExpression */ && node.parent.kind === 147 /* CallExpression */)) { + emit(operand); + return; + } + } + write("("); + emit(node.expression); + write(")"); + } + function emitUnaryExpression(node) { + if (node.kind === 154 /* PrefixOperator */) { + write(ts.tokenToString(node.operator)); + } + if (node.operator >= 63 /* Identifier */) { + write(" "); + } + else if (node.kind === 154 /* PrefixOperator */ && node.operand.kind === 154 /* PrefixOperator */) { + var operand = node.operand; + if (node.operator === 32 /* PlusToken */ && (operand.operator === 32 /* PlusToken */ || operand.operator === 37 /* PlusPlusToken */)) { + write(" "); + } + else if (node.operator === 33 /* MinusToken */ && (operand.operator === 33 /* MinusToken */ || operand.operator === 38 /* MinusMinusToken */)) { + write(" "); + } + } + emit(node.operand); + if (node.kind === 155 /* PostfixOperator */) { + write(ts.tokenToString(node.operator)); + } + } + function emitBinaryExpression(node) { + emit(node.left); + if (node.operator !== 22 /* CommaToken */) + write(" "); + write(ts.tokenToString(node.operator)); + write(" "); + emit(node.right); + } + function emitConditionalExpression(node) { + emit(node.condition); + write(" ? "); + emit(node.whenTrue); + write(" : "); + emit(node.whenFalse); + } + function emitBlock(node) { + emitToken(13 /* OpenBraceToken */, node.pos); + increaseIndent(); + scopeEmitStart(node.parent); + if (node.kind === 193 /* ModuleBlock */) { + ts.Debug.assert(node.parent.kind === 192 /* ModuleDeclaration */); + emitCaptureThisForNodeIfNecessary(node.parent); + } + emitLines(node.statements); + decreaseIndent(); + writeLine(); + emitToken(14 /* CloseBraceToken */, node.statements.end); + scopeEmitEnd(); + } + function emitEmbeddedStatement(node) { + if (node.kind === 162 /* Block */) { + write(" "); + emit(node); + } + else { + increaseIndent(); + writeLine(); + emit(node); + decreaseIndent(); + } + } + function emitExpressionStatement(node) { + var isArrowExpression = node.expression.kind === 153 /* ArrowFunction */; + emitLeadingComments(node); + if (isArrowExpression) + write("("); + emit(node.expression); + if (isArrowExpression) + write(")"); + write(";"); + emitTrailingComments(node); + } + function emitIfStatement(node) { + emitLeadingComments(node); + var endPos = emitToken(82 /* IfKeyword */, node.pos); + write(" "); + endPos = emitToken(15 /* OpenParenToken */, endPos); + emit(node.expression); + emitToken(16 /* CloseParenToken */, node.expression.end); + emitEmbeddedStatement(node.thenStatement); + if (node.elseStatement) { + writeLine(); + emitToken(74 /* ElseKeyword */, node.thenStatement.end); + if (node.elseStatement.kind === 166 /* IfStatement */) { + write(" "); + emit(node.elseStatement); + } + else { + emitEmbeddedStatement(node.elseStatement); + } + } + emitTrailingComments(node); + } + function emitDoStatement(node) { + write("do"); + emitEmbeddedStatement(node.statement); + if (node.statement.kind === 162 /* Block */) { + write(" "); + } + else { + writeLine(); + } + write("while ("); + emit(node.expression); + write(");"); + } + function emitWhileStatement(node) { + write("while ("); + emit(node.expression); + write(")"); + emitEmbeddedStatement(node.statement); + } + function emitForStatement(node) { + var endPos = emitToken(80 /* ForKeyword */, node.pos); + write(" "); + endPos = emitToken(15 /* OpenParenToken */, endPos); + if (node.declarations) { + if (node.declarations[0] && ts.isLet(node.declarations[0])) { + emitToken(102 /* LetKeyword */, endPos); + } + else if (node.declarations[0] && ts.isConst(node.declarations[0])) { + emitToken(68 /* ConstKeyword */, endPos); + } + else { + emitToken(96 /* VarKeyword */, endPos); + } + write(" "); + emitCommaList(node.declarations, false); + } + if (node.initializer) { + emit(node.initializer); + } + write(";"); + emitOptional(" ", node.condition); + write(";"); + emitOptional(" ", node.iterator); + write(")"); + emitEmbeddedStatement(node.statement); + } + function emitForInStatement(node) { + var endPos = emitToken(80 /* ForKeyword */, node.pos); + write(" "); + endPos = emitToken(15 /* OpenParenToken */, endPos); + if (node.declarations) { + if (node.declarations.length >= 1) { + var decl = node.declarations[0]; + if (ts.isLet(decl)) { + emitToken(102 /* LetKeyword */, endPos); + } + else { + emitToken(96 /* VarKeyword */, endPos); + } + write(" "); + emit(decl); + } + } + else { + emit(node.variable); + } + write(" in "); + emit(node.expression); + emitToken(16 /* CloseParenToken */, node.expression.end); + emitEmbeddedStatement(node.statement); + } + function emitBreakOrContinueStatement(node) { + emitToken(node.kind === 172 /* BreakStatement */ ? 64 /* BreakKeyword */ : 69 /* ContinueKeyword */, node.pos); + emitOptional(" ", node.label); + write(";"); + } + function emitReturnStatement(node) { + emitLeadingComments(node); + emitToken(88 /* ReturnKeyword */, node.pos); + emitOptional(" ", node.expression); + write(";"); + emitTrailingComments(node); + } + function emitWithStatement(node) { + write("with ("); + emit(node.expression); + write(")"); + emitEmbeddedStatement(node.statement); + } + function emitSwitchStatement(node) { + var endPos = emitToken(90 /* SwitchKeyword */, node.pos); + write(" "); + emitToken(15 /* OpenParenToken */, endPos); + emit(node.expression); + endPos = emitToken(16 /* CloseParenToken */, node.expression.end); + write(" "); + emitToken(13 /* OpenBraceToken */, endPos); + increaseIndent(); + emitLines(node.clauses); + decreaseIndent(); + writeLine(); + emitToken(14 /* CloseBraceToken */, node.clauses.end); + } + function isOnSameLine(node1, node2) { + return getLineOfLocalPosition(currentSourceFile, ts.skipTrivia(currentSourceFile.text, node1.pos)) === getLineOfLocalPosition(currentSourceFile, ts.skipTrivia(currentSourceFile.text, node2.pos)); + } + function emitCaseOrDefaultClause(node) { + if (node.kind === 176 /* CaseClause */) { + write("case "); + emit(node.expression); + write(":"); + } + else { + write("default:"); + } + if (node.statements.length === 1 && isOnSameLine(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.catchBlock); + if (node.finallyBlock) { + writeLine(); + write("finally "); + emit(node.finallyBlock); + } + } + function emitCatchBlock(node) { + writeLine(); + var endPos = emitToken(66 /* CatchKeyword */, node.pos); + write(" "); + emitToken(15 /* OpenParenToken */, endPos); + emit(node.variable); + emitToken(16 /* CloseParenToken */, node.variable.end); + write(" "); + emitBlock(node); + } + function emitDebuggerStatement(node) { + emitToken(70 /* DebuggerKeyword */, node.pos); + write(";"); + } + function emitLabelledStatement(node) { + emit(node.label); + write(": "); + emit(node.statement); + } + function getContainingModule(node) { + do { + node = node.parent; + } while (node && node.kind !== 192 /* ModuleDeclaration */); + return node; + } + function emitModuleMemberName(node) { + emitStart(node.name); + if (node.flags & 1 /* Export */) { + var container = getContainingModule(node); + write(container ? resolver.getLocalNameOfContainer(container) : "exports"); + write("."); + } + emitNode(node.name); + emitEnd(node.name); + } + function emitVariableDeclaration(node) { + emitLeadingComments(node); + emitModuleMemberName(node); + emitOptional(" = ", node.initializer); + emitTrailingComments(node); + } + function emitVariableStatement(node) { + emitLeadingComments(node); + if (!(node.flags & 1 /* Export */)) { + if (ts.isLet(node)) { + write("let "); + } + else if (ts.isConst(node)) { + write("const "); + } + else { + write("var "); + } + } + emitCommaList(node.declarations, false); + write(";"); + emitTrailingComments(node); + } + function emitParameter(node) { + emitLeadingComments(node); + emit(node.name); + emitTrailingComments(node); + } + function emitDefaultValueAssignments(node) { + ts.forEach(node.parameters, function (param) { + if (param.initializer) { + writeLine(); + emitStart(param); + write("if ("); + emitNode(param.name); + write(" === void 0)"); + emitEnd(param); + write(" { "); + emitStart(param); + emitNode(param.name); + write(" = "); + emitNode(param.initializer); + emitEnd(param); + write("; }"); + } + }); + } + function emitRestParameter(node) { + if (ts.hasRestParameters(node)) { + var restIndex = node.parameters.length - 1; + var restParam = node.parameters[restIndex]; + writeLine(); + emitLeadingComments(restParam); + emitStart(restParam); + write("var "); + emitNode(restParam.name); + write(" = [];"); + emitEnd(restParam); + emitTrailingComments(restParam); + writeLine(); + write("for ("); + emitStart(restParam); + write("var _i = " + restIndex + ";"); + emitEnd(restParam); + write(" "); + emitStart(restParam); + write("_i < arguments.length;"); + emitEnd(restParam); + write(" "); + emitStart(restParam); + write("_i++"); + emitEnd(restParam); + write(") {"); + increaseIndent(); + writeLine(); + emitStart(restParam); + emitNode(restParam.name); + write("[_i - " + restIndex + "] = arguments[_i];"); + emitEnd(restParam); + decreaseIndent(); + writeLine(); + write("}"); + } + } + function emitAccessor(node) { + emitLeadingComments(node); + write(node.kind === 127 /* GetAccessor */ ? "get " : "set "); + emit(node.name); + emitSignatureAndBody(node); + emitTrailingComments(node); + } + function emitFunctionDeclaration(node) { + if (!node.body) { + return emitPinnedOrTripleSlashComments(node); + } + if (node.kind !== 125 /* Method */) { + emitLeadingComments(node); + } + write("function "); + if (node.kind === 186 /* FunctionDeclaration */ || (node.kind === 152 /* FunctionExpression */ && node.name)) { + emit(node.name); + } + emitSignatureAndBody(node); + if (node.kind !== 125 /* Method */) { + emitTrailingComments(node); + } + } + function emitCaptureThisForNodeIfNecessary(node) { + if (resolver.getNodeCheckFlags(node) & 4 /* CaptureThis */) { + writeLine(); + emitStart(node); + write("var _this = this;"); + emitEnd(node); + } + } + function emitSignatureParameters(node) { + increaseIndent(); + write("("); + if (node) { + emitCommaList(node.parameters, false, node.parameters.length - (ts.hasRestParameters(node) ? 1 : 0)); + } + write(")"); + decreaseIndent(); + } + function emitSignatureAndBody(node) { + emitSignatureParameters(node); + write(" {"); + scopeEmitStart(node); + increaseIndent(); + emitDetachedComments(node.body.kind === 187 /* FunctionBlock */ ? node.body.statements : node.body); + var startIndex = 0; + if (node.body.kind === 187 /* FunctionBlock */) { + startIndex = emitDirectivePrologues(node.body.statements, true); + } + var outPos = writer.getTextPos(); + emitCaptureThisForNodeIfNecessary(node); + emitDefaultValueAssignments(node); + emitRestParameter(node); + if (node.body.kind !== 187 /* FunctionBlock */ && outPos === writer.getTextPos()) { + decreaseIndent(); + write(" "); + emitStart(node.body); + write("return "); + emitNode(node.body); + emitEnd(node.body); + write("; "); + emitStart(node.body); + write("}"); + emitEnd(node.body); + } + else { + if (node.body.kind === 187 /* FunctionBlock */) { + emitLinesStartingAt(node.body.statements, startIndex); + } + else { + writeLine(); + emitLeadingComments(node.body); + write("return "); + emit(node.body); + write(";"); + emitTrailingComments(node.body); + } + writeLine(); + if (node.body.kind === 187 /* FunctionBlock */) { + emitLeadingCommentsOfPosition(node.body.statements.end); + decreaseIndent(); + emitToken(14 /* CloseBraceToken */, node.body.statements.end); + } + else { + decreaseIndent(); + emitStart(node.body); + write("}"); + emitEnd(node.body); + } + } + scopeEmitEnd(); + if (node.flags & 1 /* Export */) { + writeLine(); + emitStart(node); + emitModuleMemberName(node); + write(" = "); + emit(node.name); + emitEnd(node); + write(";"); + } + } + function findInitialSuperCall(ctor) { + if (ctor.body) { + var statement = ctor.body.statements[0]; + if (statement && statement.kind === 165 /* ExpressionStatement */) { + var expr = statement.expression; + if (expr && expr.kind === 147 /* CallExpression */) { + var func = expr.func; + if (func && func.kind === 89 /* SuperKeyword */) { + return statement; + } + } + } + } + } + function emitParameterPropertyAssignments(node) { + ts.forEach(node.parameters, function (param) { + if (param.flags & 112 /* AccessibilityModifier */) { + writeLine(); + emitStart(param); + emitStart(param.name); + write("this."); + emitNode(param.name); + emitEnd(param.name); + write(" = "); + emit(param.name); + write(";"); + emitEnd(param); + } + }); + } + function emitMemberAccess(memberName) { + if (memberName.kind === 7 /* StringLiteral */ || memberName.kind === 6 /* NumericLiteral */) { + write("["); + emitNode(memberName); + write("]"); + } + else { + write("."); + emitNode(memberName); + } + } + function emitMemberAssignments(node, staticFlag) { + ts.forEach(node.members, function (member) { + if (member.kind === 124 /* Property */ && (member.flags & 128 /* Static */) === staticFlag && member.initializer) { + writeLine(); + emitLeadingComments(member); + emitStart(member); + emitStart(member.name); + if (staticFlag) { + emitNode(node.name); + } + else { + write("this"); + } + emitMemberAccess(member.name); + emitEnd(member.name); + write(" = "); + emit(member.initializer); + write(";"); + emitEnd(member); + emitTrailingComments(member); + } + }); + } + function emitMemberFunctions(node) { + ts.forEach(node.members, function (member) { + if (member.kind === 125 /* Method */) { + if (!member.body) { + return emitPinnedOrTripleSlashComments(member); + } + writeLine(); + emitLeadingComments(member); + emitStart(member); + emitStart(member.name); + emitNode(node.name); + if (!(member.flags & 128 /* Static */)) { + write(".prototype"); + } + emitMemberAccess(member.name); + emitEnd(member.name); + write(" = "); + emitStart(member); + emitFunctionDeclaration(member); + emitEnd(member); + emitEnd(member); + write(";"); + emitTrailingComments(member); + } + else if (member.kind === 127 /* GetAccessor */ || member.kind === 128 /* SetAccessor */) { + var accessors = getAllAccessorDeclarations(node, member); + if (member === accessors.firstAccessor) { + writeLine(); + emitStart(member); + write("Object.defineProperty("); + emitStart(member.name); + emitNode(node.name); + if (!(member.flags & 128 /* Static */)) { + write(".prototype"); + } + 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 emitClassDeclaration(node) { + emitLeadingComments(node); + write("var "); + emit(node.name); + write(" = (function ("); + if (node.baseType) { + write("_super"); + } + write(") {"); + increaseIndent(); + scopeEmitStart(node); + if (node.baseType) { + writeLine(); + emitStart(node.baseType); + write("__extends("); + emit(node.name); + write(", _super);"); + emitEnd(node.baseType); + } + writeLine(); + emitConstructorOfClass(); + emitMemberFunctions(node); + emitMemberAssignments(node, 128 /* Static */); + writeLine(); + function emitClassReturnStatement() { + write("return "); + emitNode(node.name); + } + emitToken(14 /* CloseBraceToken */, node.members.end, emitClassReturnStatement); + write(";"); + decreaseIndent(); + writeLine(); + emitToken(14 /* CloseBraceToken */, node.members.end); + scopeEmitEnd(); + emitStart(node); + write(")("); + if (node.baseType) { + emit(node.baseType.typeName); + } + write(");"); + emitEnd(node); + if (node.flags & 1 /* Export */) { + writeLine(); + emitStart(node); + emitModuleMemberName(node); + write(" = "); + emit(node.name); + emitEnd(node); + write(";"); + } + emitTrailingComments(node); + function emitConstructorOfClass() { + ts.forEach(node.members, function (member) { + if (member.kind === 126 /* Constructor */ && !member.body) { + emitPinnedOrTripleSlashComments(member); + } + }); + var ctor = getFirstConstructorWithBody(node); + if (ctor) { + emitLeadingComments(ctor); + } + emitStart(ctor || node); + write("function "); + emit(node.name); + emitSignatureParameters(ctor); + write(" {"); + scopeEmitStart(node, "constructor"); + increaseIndent(); + if (ctor) { + emitDetachedComments(ctor.body.statements); + } + emitCaptureThisForNodeIfNecessary(node); + if (ctor) { + emitDefaultValueAssignments(ctor); + emitRestParameter(ctor); + if (node.baseType) { + var superCall = findInitialSuperCall(ctor); + if (superCall) { + writeLine(); + emit(superCall); + } + } + emitParameterPropertyAssignments(ctor); + } + else { + if (node.baseType) { + writeLine(); + emitStart(node.baseType); + write("_super.apply(this, arguments);"); + emitEnd(node.baseType); + } + } + emitMemberAssignments(node, 0); + if (ctor) { + var statements = ctor.body.statements; + if (superCall) + statements = statements.slice(1); + emitLines(statements); + } + writeLine(); + if (ctor) { + emitLeadingCommentsOfPosition(ctor.body.statements.end); + } + decreaseIndent(); + emitToken(14 /* CloseBraceToken */, ctor ? ctor.body.statements.end : node.members.end); + scopeEmitEnd(); + emitEnd(ctor || node); + if (ctor) { + emitTrailingComments(ctor); + } + } + } + function emitInterfaceDeclaration(node) { + emitPinnedOrTripleSlashComments(node); + } + function emitEnumDeclaration(node) { + var isConstEnum = ts.isConst(node); + if (isConstEnum && !compilerOptions.preserveConstEnums) { + return; + } + emitLeadingComments(node); + if (!(node.flags & 1 /* Export */)) { + emitStart(node); + write("var "); + emit(node.name); + emitEnd(node); + write(";"); + } + writeLine(); + emitStart(node); + write("(function ("); + emitStart(node.name); + write(resolver.getLocalNameOfContainer(node)); + emitEnd(node.name); + write(") {"); + increaseIndent(); + scopeEmitStart(node); + emitEnumMemberDeclarations(isConstEnum); + decreaseIndent(); + writeLine(); + emitToken(14 /* CloseBraceToken */, node.members.end); + scopeEmitEnd(); + write(")("); + emitModuleMemberName(node); + write(" || ("); + emitModuleMemberName(node); + write(" = {}));"); + emitEnd(node); + if (node.flags & 1 /* Export */) { + writeLine(); + emitStart(node); + write("var "); + emit(node.name); + write(" = "); + emitModuleMemberName(node); + emitEnd(node); + write(";"); + } + emitTrailingComments(node); + function emitEnumMemberDeclarations(isConstEnum) { + ts.forEach(node.members, function (member) { + writeLine(); + emitLeadingComments(member); + emitStart(member); + write(resolver.getLocalNameOfContainer(node)); + write("["); + write(resolver.getLocalNameOfContainer(node)); + write("["); + emitExpressionForPropertyName(member.name); + write("] = "); + if (member.initializer && !isConstEnum) { + emit(member.initializer); + } + else { + write(resolver.getEnumMemberValue(member).toString()); + } + write("] = "); + emitExpressionForPropertyName(member.name); + emitEnd(member); + write(";"); + emitTrailingComments(member); + }); + } + } + function getInnerMostModuleDeclarationFromDottedModule(moduleDeclaration) { + if (moduleDeclaration.body.kind === 192 /* ModuleDeclaration */) { + var recursiveInnerModule = getInnerMostModuleDeclarationFromDottedModule(moduleDeclaration.body); + return recursiveInnerModule || moduleDeclaration.body; + } + } + function emitModuleDeclaration(node) { + var shouldEmit = ts.getModuleInstanceState(node) === 1 /* Instantiated */ || (ts.getModuleInstanceState(node) === 2 /* ConstEnumOnly */ && compilerOptions.preserveConstEnums); + if (!shouldEmit) { + return emitPinnedOrTripleSlashComments(node); + } + emitLeadingComments(node); + emitStart(node); + write("var "); + emit(node.name); + write(";"); + emitEnd(node); + writeLine(); + emitStart(node); + write("(function ("); + emitStart(node.name); + write(resolver.getLocalNameOfContainer(node)); + emitEnd(node.name); + write(") "); + if (node.body.kind === 193 /* ModuleBlock */) { + emit(node.body); + } + else { + write("{"); + increaseIndent(); + scopeEmitStart(node); + emitCaptureThisForNodeIfNecessary(node); + writeLine(); + emit(node.body); + decreaseIndent(); + writeLine(); + var moduleBlock = getInnerMostModuleDeclarationFromDottedModule(node).body; + emitToken(14 /* CloseBraceToken */, moduleBlock.statements.end); + scopeEmitEnd(); + } + write(")("); + if (node.flags & 1 /* Export */) { + emit(node.name); + write(" = "); + } + emitModuleMemberName(node); + write(" || ("); + emitModuleMemberName(node); + write(" = {}));"); + emitEnd(node); + emitTrailingComments(node); + } + function emitImportDeclaration(node) { + var emitImportDeclaration = resolver.isReferencedImportDeclaration(node); + if (!emitImportDeclaration) { + emitImportDeclaration = !ts.isExternalModule(currentSourceFile) && resolver.isTopLevelValueImportWithEntityName(node); + } + if (emitImportDeclaration) { + if (node.externalModuleName && node.parent.kind === 197 /* SourceFile */ && compilerOptions.module === 2 /* AMD */) { + if (node.flags & 1 /* Export */) { + writeLine(); + emitLeadingComments(node); + emitStart(node); + emitModuleMemberName(node); + write(" = "); + emit(node.name); + write(";"); + emitEnd(node); + emitTrailingComments(node); + } + } + else { + writeLine(); + emitLeadingComments(node); + emitStart(node); + if (!(node.flags & 1 /* Export */)) + write("var "); + emitModuleMemberName(node); + write(" = "); + if (node.entityName) { + emit(node.entityName); + } + else { + write("require("); + emitStart(node.externalModuleName); + emitLiteral(node.externalModuleName); + emitEnd(node.externalModuleName); + emitToken(16 /* CloseParenToken */, node.externalModuleName.end); + } + write(";"); + emitEnd(node); + emitTrailingComments(node); + } + } + } + function getExternalImportDeclarations(node) { + var result = []; + ts.forEach(node.statements, function (stat) { + if (stat.kind === 194 /* ImportDeclaration */ && stat.externalModuleName && resolver.isReferencedImportDeclaration(stat)) { + result.push(stat); + } + }); + return result; + } + function getFirstExportAssignment(sourceFile) { + return ts.forEach(sourceFile.statements, function (node) { + if (node.kind === 195 /* ExportAssignment */) { + return node; + } + }); + } + function emitAMDModule(node, startIndex) { + var imports = getExternalImportDeclarations(node); + writeLine(); + write("define("); + if (node.amdModuleName) { + write("\"" + node.amdModuleName + "\", "); + } + write("[\"require\", \"exports\""); + ts.forEach(imports, function (imp) { + write(", "); + emitLiteral(imp.externalModuleName); + }); + ts.forEach(node.amdDependencies, function (amdDependency) { + var text = "\"" + amdDependency + "\""; + write(", "); + write(text); + }); + write("], function (require, exports"); + ts.forEach(imports, function (imp) { + write(", "); + emit(imp.name); + }); + write(") {"); + increaseIndent(); + emitCaptureThisForNodeIfNecessary(node); + emitLinesStartingAt(node.statements, startIndex); + var exportName = resolver.getExportAssignmentName(node); + if (exportName) { + writeLine(); + var exportAssignement = getFirstExportAssignment(node); + emitStart(exportAssignement); + write("return "); + emitStart(exportAssignement.exportName); + write(exportName); + emitEnd(exportAssignement.exportName); + write(";"); + emitEnd(exportAssignement); + } + decreaseIndent(); + writeLine(); + write("});"); + } + function emitCommonJSModule(node, startIndex) { + emitCaptureThisForNodeIfNecessary(node); + emitLinesStartingAt(node.statements, startIndex); + var exportName = resolver.getExportAssignmentName(node); + if (exportName) { + writeLine(); + var exportAssignement = getFirstExportAssignment(node); + emitStart(exportAssignement); + write("module.exports = "); + emitStart(exportAssignement.exportName); + write(exportName); + emitEnd(exportAssignement.exportName); + write(";"); + emitEnd(exportAssignement); + } + } + 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 emitSourceFile(node) { + currentSourceFile = node; + writeLine(); + emitDetachedComments(node); + var startIndex = emitDirectivePrologues(node.statements, false); + if (!extendsEmitted && resolver.getNodeCheckFlags(node) & 8 /* EmitExtends */) { + 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 (ts.isExternalModule(node)) { + if (compilerOptions.module === 2 /* AMD */) { + emitAMDModule(node, startIndex); + } + else { + emitCommonJSModule(node, startIndex); + } + } + else { + emitCaptureThisForNodeIfNecessary(node); + emitLinesStartingAt(node.statements, startIndex); + } + } + function emitNode(node) { + if (!node) { + return; + } + if (node.flags & 2 /* Ambient */) { + return emitPinnedOrTripleSlashComments(node); + } + switch (node.kind) { + case 63 /* Identifier */: + return emitIdentifier(node); + case 123 /* Parameter */: + return emitParameter(node); + case 127 /* GetAccessor */: + case 128 /* SetAccessor */: + return emitAccessor(node); + case 91 /* ThisKeyword */: + return emitThis(node); + case 89 /* SuperKeyword */: + return emitSuper(node); + case 87 /* NullKeyword */: + return write("null"); + case 93 /* TrueKeyword */: + return write("true"); + case 78 /* FalseKeyword */: + return write("false"); + case 6 /* NumericLiteral */: + case 7 /* StringLiteral */: + case 8 /* RegularExpressionLiteral */: + case 9 /* NoSubstitutionTemplateLiteral */: + case 10 /* TemplateHead */: + case 11 /* TemplateMiddle */: + case 12 /* TemplateTail */: + return emitLiteral(node); + case 158 /* TemplateExpression */: + return emitTemplateExpression(node); + case 159 /* TemplateSpan */: + return emitTemplateSpan(node); + case 121 /* QualifiedName */: + return emitPropertyAccess(node); + case 141 /* ArrayLiteral */: + return emitArrayLiteral(node); + case 142 /* ObjectLiteral */: + return emitObjectLiteral(node); + case 143 /* PropertyAssignment */: + return emitPropertyAssignment(node); + case 144 /* ShorthandPropertyAssignment */: + return emitShortHandPropertyAssignment(node); + case 145 /* PropertyAccess */: + return emitPropertyAccess(node); + case 146 /* IndexedAccess */: + return emitIndexedAccess(node); + case 147 /* CallExpression */: + return emitCallExpression(node); + case 148 /* NewExpression */: + return emitNewExpression(node); + case 149 /* TaggedTemplateExpression */: + return emitTaggedTemplateExpression(node); + case 150 /* TypeAssertion */: + return emit(node.operand); + case 151 /* ParenExpression */: + return emitParenExpression(node); + case 186 /* FunctionDeclaration */: + case 152 /* FunctionExpression */: + case 153 /* ArrowFunction */: + return emitFunctionDeclaration(node); + case 154 /* PrefixOperator */: + case 155 /* PostfixOperator */: + return emitUnaryExpression(node); + case 156 /* BinaryExpression */: + return emitBinaryExpression(node); + case 157 /* ConditionalExpression */: + return emitConditionalExpression(node); + case 161 /* OmittedExpression */: + return; + case 162 /* Block */: + case 181 /* TryBlock */: + case 183 /* FinallyBlock */: + case 187 /* FunctionBlock */: + case 193 /* ModuleBlock */: + return emitBlock(node); + case 163 /* VariableStatement */: + return emitVariableStatement(node); + case 164 /* EmptyStatement */: + return write(";"); + case 165 /* ExpressionStatement */: + return emitExpressionStatement(node); + case 166 /* IfStatement */: + return emitIfStatement(node); + case 167 /* DoStatement */: + return emitDoStatement(node); + case 168 /* WhileStatement */: + return emitWhileStatement(node); + case 169 /* ForStatement */: + return emitForStatement(node); + case 170 /* ForInStatement */: + return emitForInStatement(node); + case 171 /* ContinueStatement */: + case 172 /* BreakStatement */: + return emitBreakOrContinueStatement(node); + case 173 /* ReturnStatement */: + return emitReturnStatement(node); + case 174 /* WithStatement */: + return emitWithStatement(node); + case 175 /* SwitchStatement */: + return emitSwitchStatement(node); + case 176 /* CaseClause */: + case 177 /* DefaultClause */: + return emitCaseOrDefaultClause(node); + case 178 /* LabeledStatement */: + return emitLabelledStatement(node); + case 179 /* ThrowStatement */: + return emitThrowStatement(node); + case 180 /* TryStatement */: + return emitTryStatement(node); + case 182 /* CatchBlock */: + return emitCatchBlock(node); + case 184 /* DebuggerStatement */: + return emitDebuggerStatement(node); + case 185 /* VariableDeclaration */: + return emitVariableDeclaration(node); + case 188 /* ClassDeclaration */: + return emitClassDeclaration(node); + case 189 /* InterfaceDeclaration */: + return emitInterfaceDeclaration(node); + case 191 /* EnumDeclaration */: + return emitEnumDeclaration(node); + case 192 /* ModuleDeclaration */: + return emitModuleDeclaration(node); + case 194 /* ImportDeclaration */: + return emitImportDeclaration(node); + case 197 /* SourceFile */: + return emitSourceFile(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 getLeadingCommentsToEmit(node) { + if (node.parent.kind === 197 /* SourceFile */ || node.pos !== node.parent.pos) { + var leadingComments; + if (hasDetachedComments(node.pos)) { + leadingComments = getLeadingCommentsWithoutDetachedComments(); + } + else { + leadingComments = ts.getLeadingCommentRangesOfNode(node, currentSourceFile); + } + return leadingComments; + } + } + function emitLeadingDeclarationComments(node) { + var leadingComments = getLeadingCommentsToEmit(node); + emitNewLineBeforeLeadingComments(currentSourceFile, writer, node, leadingComments); + emitComments(currentSourceFile, writer, leadingComments, true, newLine, writeComment); + } + function emitTrailingDeclarationComments(node) { + if (node.parent.kind === 197 /* SourceFile */ || node.end !== node.parent.end) { + var trailingComments = ts.getTrailingCommentRanges(currentSourceFile.text, node.end); + emitComments(currentSourceFile, writer, trailingComments, false, newLine, writeComment); + } + } + function emitLeadingCommentsOfLocalPosition(pos) { + var leadingComments; + if (hasDetachedComments(pos)) { + leadingComments = getLeadingCommentsWithoutDetachedComments(); + } + else { + leadingComments = ts.getLeadingCommentRanges(currentSourceFile.text, pos); + } + emitNewLineBeforeLeadingComments(currentSourceFile, writer, { pos: pos, end: pos }, leadingComments); + emitComments(currentSourceFile, writer, leadingComments, true, newLine, writeComment); + } + function emitDetachedCommentsAtPosition(node) { + var leadingComments = ts.getLeadingCommentRanges(currentSourceFile.text, node.pos); + if (leadingComments) { + var detachedComments = []; + var lastComment; + ts.forEach(leadingComments, function (comment) { + if (lastComment) { + var lastCommentLine = getLineOfLocalPosition(currentSourceFile, lastComment.end); + var commentLine = getLineOfLocalPosition(currentSourceFile, comment.pos); + if (commentLine >= lastCommentLine + 2) { + return detachedComments; + } + } + detachedComments.push(comment); + lastComment = comment; + }); + if (detachedComments.length) { + var lastCommentLine = getLineOfLocalPosition(currentSourceFile, detachedComments[detachedComments.length - 1].end); + var astLine = getLineOfLocalPosition(currentSourceFile, ts.skipTrivia(currentSourceFile.text, node.pos)); + if (astLine >= lastCommentLine + 2) { + emitNewLineBeforeLeadingComments(currentSourceFile, writer, node, leadingComments); + 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 emitPinnedOrTripleSlashCommentsOfNode(node) { + var pinnedComments = ts.filter(getLeadingCommentsToEmit(node), isPinnedOrTripleSlashComment); + function isPinnedOrTripleSlashComment(comment) { + if (currentSourceFile.text.charCodeAt(comment.pos + 1) === 42 /* asterisk */) { + return currentSourceFile.text.charCodeAt(comment.pos + 2) === 33 /* exclamation */; + } + else if (currentSourceFile.text.charCodeAt(comment.pos + 1) === 47 /* slash */ && comment.pos + 2 < comment.end && currentSourceFile.text.charCodeAt(comment.pos + 2) === 47 /* slash */ && currentSourceFile.text.substring(comment.pos, comment.end).match(ts.fullTripleSlashReferencePathRegEx)) { + return true; + } + } + emitNewLineBeforeLeadingComments(currentSourceFile, writer, node, pinnedComments); + emitComments(currentSourceFile, writer, pinnedComments, true, newLine, writeComment); + } + if (compilerOptions.sourceMap) { + initializeEmitterWithSourceMaps(); + } + if (root) { + emit(root); + } + else { + ts.forEach(program.getSourceFiles(), function (sourceFile) { + if (!isExternalModuleOrDeclarationFile(sourceFile)) { + emit(sourceFile); + } + }); + } + writeLine(); + writeEmittedFiles(writer.getText(), compilerOptions.emitBOM); + } + function writeDeclarationFile(jsFilePath, sourceFile) { + var emitDeclarationResult = emitDeclarations(program, resolver, diagnostics, jsFilePath, sourceFile); + if (!emitDeclarationResult.reportedDeclarationError) { + var declarationOutput = emitDeclarationResult.referencePathsOutput; + var appliedSyncOutputPos = 0; + ts.forEach(emitDeclarationResult.aliasDeclarationEmitInfo, function (aliasEmitInfo) { + if (aliasEmitInfo.asynchronousOutput) { + declarationOutput += emitDeclarationResult.synchronousDeclarationOutput.substring(appliedSyncOutputPos, aliasEmitInfo.outputPos); + declarationOutput += aliasEmitInfo.asynchronousOutput; + appliedSyncOutputPos = aliasEmitInfo.outputPos; + } + }); + declarationOutput += emitDeclarationResult.synchronousDeclarationOutput.substring(appliedSyncOutputPos); + writeFile(compilerHost, diagnostics, ts.removeFileExtension(jsFilePath) + ".d.ts", declarationOutput, compilerOptions.emitBOM); + } + } + var hasSemanticErrors = resolver.hasSemanticErrors(); + var isEmitBlocked = resolver.isEmitBlocked(targetSourceFile); + function emitFile(jsFilePath, sourceFile) { + if (!isEmitBlocked) { + emitJavaScript(jsFilePath, sourceFile); + if (!hasSemanticErrors && compilerOptions.declaration) { + writeDeclarationFile(jsFilePath, sourceFile); + } + } + } + if (targetSourceFile === undefined) { + ts.forEach(program.getSourceFiles(), function (sourceFile) { + if (shouldEmitToOwnFile(sourceFile, compilerOptions)) { + var jsFilePath = getOwnEmitOutputFilePath(sourceFile, program, ".js"); + emitFile(jsFilePath, sourceFile); + } + }); + if (compilerOptions.out) { + emitFile(compilerOptions.out); + } + } + else { + if (shouldEmitToOwnFile(targetSourceFile, compilerOptions)) { + var jsFilePath = getOwnEmitOutputFilePath(targetSourceFile, program, ".js"); + emitFile(jsFilePath, targetSourceFile); + } + else if (!ts.isDeclarationFile(targetSourceFile) && compilerOptions.out) { + emitFile(compilerOptions.out); + } + } + diagnostics.sort(ts.compareDiagnostics); + diagnostics = ts.deduplicateSortedDiagnostics(diagnostics); + var hasEmitterError = ts.forEach(diagnostics, function (diagnostic) { return diagnostic.category === 1 /* Error */; }); + var emitResultStatus; + if (isEmitBlocked) { + emitResultStatus = 1 /* AllOutputGenerationSkipped */; + } + else if (hasEmitterError) { + emitResultStatus = 4 /* EmitErrorsEncountered */; + } + else if (hasSemanticErrors && compilerOptions.declaration) { + emitResultStatus = 3 /* DeclarationGenerationSkipped */; + } + else if (hasSemanticErrors && !compilerOptions.declaration) { + emitResultStatus = 2 /* JSGeneratedWithSemanticErrors */; + } + else { + emitResultStatus = 0 /* Succeeded */; + } + return { + emitResultStatus: emitResultStatus, + diagnostics: diagnostics, + sourceMaps: sourceMapDataList + }; + } + ts.emitFiles = emitFiles; +})(ts || (ts = {})); +var ts; +(function (ts) { + var nextSymbolId = 1; + var nextNodeId = 1; + var nextMergeId = 1; + 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 createTypeChecker(program, fullTypeCheck) { + var Symbol = ts.objectAllocator.getSymbolConstructor(); + var Type = ts.objectAllocator.getTypeConstructor(); + var Signature = ts.objectAllocator.getSignatureConstructor(); + var typeCount = 0; + var emptyArray = []; + var emptySymbols = {}; + var compilerOptions = program.getCompilerOptions(); + var checker = { + getProgram: function () { return program; }, + getNodeCount: function () { return ts.sum(program.getSourceFiles(), "nodeCount"); }, + getIdentifierCount: function () { return ts.sum(program.getSourceFiles(), "identifierCount"); }, + getSymbolCount: function () { return ts.sum(program.getSourceFiles(), "symbolCount"); }, + getTypeCount: function () { return typeCount; }, + isUndefinedSymbol: function (symbol) { return symbol === undefinedSymbol; }, + isArgumentsSymbol: function (symbol) { return symbol === argumentsSymbol; }, + getDiagnostics: getDiagnostics, + getDeclarationDiagnostics: getDeclarationDiagnostics, + getGlobalDiagnostics: getGlobalDiagnostics, + checkProgram: checkProgram, + invokeEmitter: invokeEmitter, + getParentOfSymbol: getParentOfSymbol, + getNarrowedTypeOfSymbol: getNarrowedTypeOfSymbol, + getDeclaredTypeOfSymbol: getDeclaredTypeOfSymbol, + getPropertiesOfType: getPropertiesOfType, + getPropertyOfType: getPropertyOfType, + getSignaturesOfType: getSignaturesOfType, + getIndexTypeOfType: getIndexTypeOfType, + getReturnTypeOfSignature: getReturnTypeOfSignature, + getSymbolsInScope: getSymbolsInScope, + getSymbolInfo: getSymbolInfo, + getShorthandAssignmentValueSymbol: getShorthandAssignmentValueSymbol, + getTypeOfNode: getTypeOfNode, + typeToString: typeToString, + getSymbolDisplayBuilder: getSymbolDisplayBuilder, + symbolToString: symbolToString, + getAugmentedPropertiesOfType: getAugmentedPropertiesOfType, + getRootSymbols: getRootSymbols, + getContextualType: getContextualType, + getFullyQualifiedName: getFullyQualifiedName, + getResolvedSignature: getResolvedSignature, + getEnumMemberValue: getEnumMemberValue, + isValidPropertyAccess: isValidPropertyAccess, + getSignatureFromDeclaration: getSignatureFromDeclaration, + isImplementationOfOverload: isImplementationOfOverload, + getAliasedSymbol: resolveImport, + hasEarlyErrors: hasEarlyErrors, + isEmitBlocked: isEmitBlocked + }; + var undefinedSymbol = createSymbol(4 /* Property */ | 268435456 /* Transient */, "undefined"); + var argumentsSymbol = createSymbol(4 /* Property */ | 268435456 /* Transient */, "arguments"); + var unknownSymbol = createSymbol(4 /* Property */ | 268435456 /* Transient */, "unknown"); + var resolvingSymbol = createSymbol(268435456 /* Transient */, "__resolving__"); + var anyType = createIntrinsicType(1 /* Any */, "any"); + var stringType = createIntrinsicType(2 /* String */, "string"); + var numberType = createIntrinsicType(4 /* Number */, "number"); + var booleanType = createIntrinsicType(8 /* Boolean */, "boolean"); + var voidType = createIntrinsicType(16 /* Void */, "void"); + var undefinedType = createIntrinsicType(32 /* Undefined */, "undefined"); + var nullType = createIntrinsicType(64 /* Null */, "null"); + var unknownType = createIntrinsicType(1 /* Any */, "unknown"); + var resolvingType = createIntrinsicType(1 /* Any */, "__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 inferenceFailureType = 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 globalObjectType; + var globalFunctionType; + var globalArrayType; + var globalStringType; + var globalNumberType; + var globalBooleanType; + var globalRegExpType; + var globalTemplateStringsArrayType; + var tupleTypes = {}; + var unionTypes = {}; + var stringLiteralTypes = {}; + var emitExtends = false; + var mergedSymbols = []; + var symbolLinks = []; + var nodeLinks = []; + var potentialThisCollisions = []; + var diagnostics = []; + var diagnosticsModified = false; + function addDiagnostic(diagnostic) { + diagnostics.push(diagnostic); + diagnosticsModified = true; + } + function error(location, message, arg0, arg1, arg2) { + var diagnostic = location ? ts.createDiagnosticForNode(location, message, arg0, arg1, arg2) : ts.createCompilerDiagnostic(message, arg0, arg1, arg2); + addDiagnostic(diagnostic); + } + function createSymbol(flags, name) { + return new Symbol(flags, name); + } + function getExcludedSymbolFlags(flags) { + var result = 0; + if (flags & 2 /* BlockScopedVariable */) + result |= 107455 /* BlockScopedVariableExcludes */; + if (flags & 1 /* FunctionScopedVariable */) + result |= 107454 /* FunctionScopedVariableExcludes */; + if (flags & 4 /* Property */) + result |= 107455 /* PropertyExcludes */; + if (flags & 8 /* EnumMember */) + result |= 107455 /* EnumMemberExcludes */; + if (flags & 16 /* Function */) + result |= 106927 /* FunctionExcludes */; + if (flags & 32 /* Class */) + result |= 3258879 /* ClassExcludes */; + if (flags & 64 /* Interface */) + result |= 3152288 /* InterfaceExcludes */; + if (flags & 256 /* RegularEnum */) + result |= 3258623 /* RegularEnumExcludes */; + if (flags & 128 /* ConstEnum */) + result |= 3259263 /* ConstEnumExcludes */; + if (flags & 512 /* ValueModule */) + result |= 106639 /* ValueModuleExcludes */; + if (flags & 8192 /* Method */) + result |= 99263 /* MethodExcludes */; + if (flags & 32768 /* GetAccessor */) + result |= 41919 /* GetAccessorExcludes */; + if (flags & 65536 /* SetAccessor */) + result |= 74687 /* SetAccessorExcludes */; + if (flags & 1048576 /* TypeParameter */) + result |= 2103776 /* TypeParameterExcludes */; + if (flags & 2097152 /* TypeAlias */) + result |= 3152352 /* TypeAliasExcludes */; + if (flags & 33554432 /* Import */) + result |= 33554432 /* ImportExcludes */; + return result; + } + function recordMergedSymbol(target, source) { + if (!source.mergeId) + source.mergeId = nextMergeId++; + mergedSymbols[source.mergeId] = target; + } + function cloneSymbol(symbol) { + var result = createSymbol(symbol.flags | 134217728 /* Merged */, 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 extendSymbol(target, source) { + if (!(target.flags & getExcludedSymbolFlags(source.flags))) { + if (source.flags & 512 /* ValueModule */ && target.flags & 512 /* ValueModule */ && 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 = {}; + extendSymbolTable(target.members, source.members); + } + if (source.exports) { + if (!target.exports) + target.exports = {}; + extendSymbolTable(target.exports, source.exports); + } + recordMergedSymbol(target, source); + } + else { + var message = target.flags & 2 /* BlockScopedVariable */ || source.flags & 2 /* BlockScopedVariable */ ? 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 extendSymbolTable(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 & 134217728 /* Merged */)) { + target[id] = symbol = cloneSymbol(symbol); + } + extendSymbol(symbol, source[id]); + } + } + } + } + function getSymbolLinks(symbol) { + if (symbol.flags & 268435456 /* Transient */) + return symbol; + if (!symbol.id) + symbol.id = nextSymbolId++; + return symbolLinks[symbol.id] || (symbolLinks[symbol.id] = {}); + } + function getNodeLinks(node) { + if (!node.id) + node.id = nextNodeId++; + return nodeLinks[node.id] || (nodeLinks[node.id] = {}); + } + function getSourceFile(node) { + return ts.getAncestor(node, 197 /* SourceFile */); + } + function isGlobalSourceFile(node) { + return node.kind === 197 /* SourceFile */ && !ts.isExternalModule(node); + } + function getSymbol(symbols, name, meaning) { + if (meaning && ts.hasProperty(symbols, name)) { + var symbol = symbols[name]; + ts.Debug.assert((symbol.flags & 67108864 /* Instantiated */) === 0, "Should never get an instantiated symbol here."); + if (symbol.flags & meaning) { + return symbol; + } + if (symbol.flags & 33554432 /* Import */) { + var target = resolveImport(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 = program.getSourceFiles(); + return sourceFiles.indexOf(file1) <= sourceFiles.indexOf(file2); + } + function resolveName(location, name, meaning, nameNotFoundMessage, nameArg) { + var result; + var lastLocation; + var propertyWithInvalidInitializer; + var errorLocation = location; + loop: while (location) { + if (location.locals && !isGlobalSourceFile(location)) { + if (result = getSymbol(location.locals, name, meaning)) { + break loop; + } + } + switch (location.kind) { + case 197 /* SourceFile */: + if (!ts.isExternalModule(location)) + break; + case 192 /* ModuleDeclaration */: + if (result = getSymbol(getSymbolOfNode(location).exports, name, meaning & 35653619 /* ModuleMember */)) { + break loop; + } + break; + case 191 /* EnumDeclaration */: + if (result = getSymbol(getSymbolOfNode(location).exports, name, meaning & 8 /* EnumMember */)) { + break loop; + } + break; + case 124 /* Property */: + if (location.parent.kind === 188 /* ClassDeclaration */ && !(location.flags & 128 /* Static */)) { + var ctor = findConstructorDeclaration(location.parent); + if (ctor && ctor.locals) { + if (getSymbol(ctor.locals, name, meaning & 107455 /* Value */)) { + propertyWithInvalidInitializer = location; + } + } + } + break; + case 188 /* ClassDeclaration */: + case 189 /* InterfaceDeclaration */: + if (result = getSymbol(getSymbolOfNode(location).members, name, meaning & 3152352 /* Type */)) { + if (lastLocation && lastLocation.flags & 128 /* Static */) { + error(errorLocation, ts.Diagnostics.Static_members_cannot_reference_class_type_parameters); + return undefined; + } + break loop; + } + break; + case 125 /* Method */: + case 126 /* Constructor */: + case 127 /* GetAccessor */: + case 128 /* SetAccessor */: + case 186 /* FunctionDeclaration */: + case 153 /* ArrowFunction */: + if (name === "arguments") { + result = argumentsSymbol; + break loop; + } + break; + case 152 /* FunctionExpression */: + if (name === "arguments") { + result = argumentsSymbol; + break loop; + } + var id = location.name; + if (id && name === id.text) { + result = location.symbol; + break loop; + } + break; + case 182 /* CatchBlock */: + var id = location.variable; + if (name === id.text) { + result = location.symbol; + break loop; + } + 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 /* BlockScopedVariable */) { + var declaration = ts.forEach(result.declarations, function (d) { return d.flags & 6144 /* BlockScoped */ ? d : undefined; }); + ts.Debug.assert(declaration !== undefined, "Block-scoped variable declaration is undefined"); + if (!isDefinedBefore(declaration, errorLocation)) { + error(errorLocation, ts.Diagnostics.Block_scoped_variable_0_used_before_its_declaration, ts.declarationNameToString(declaration.name)); + } + } + } + return result; + } + function resolveImport(symbol) { + ts.Debug.assert((symbol.flags & 33554432 /* Import */) !== 0, "Should only get Imports here."); + var links = getSymbolLinks(symbol); + if (!links.target) { + links.target = resolvingSymbol; + var node = getDeclarationOfKind(symbol, 194 /* ImportDeclaration */); + var target = node.externalModuleName ? resolveExternalModuleName(node, node.externalModuleName) : getSymbolOfPartOfRightHandSideOfImport(node.entityName, 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 getSymbolOfPartOfRightHandSideOfImport(entityName, importDeclaration) { + if (!importDeclaration) { + importDeclaration = ts.getAncestor(entityName, 194 /* ImportDeclaration */); + ts.Debug.assert(importDeclaration !== undefined); + } + if (entityName.kind === 63 /* Identifier */ && isRightSideOfQualifiedNameOrPropertyAccess(entityName)) { + entityName = entityName.parent; + } + if (entityName.kind === 63 /* Identifier */ || entityName.parent.kind === 121 /* QualifiedName */) { + return resolveEntityName(importDeclaration, entityName, 1536 /* Namespace */); + } + else { + ts.Debug.assert(entityName.parent.kind === 194 /* ImportDeclaration */); + return resolveEntityName(importDeclaration, entityName, 107455 /* Value */ | 3152352 /* Type */ | 1536 /* Namespace */); + } + } + function getFullyQualifiedName(symbol) { + return symbol.parent ? getFullyQualifiedName(symbol.parent) + "." + symbolToString(symbol) : symbolToString(symbol); + } + function resolveEntityName(location, name, meaning) { + if (name.kind === 63 /* Identifier */) { + var symbol = resolveName(location, name.text, meaning, ts.Diagnostics.Cannot_find_name_0, name); + if (!symbol) { + return; + } + } + else if (name.kind === 121 /* QualifiedName */) { + var namespace = resolveEntityName(location, name.left, 1536 /* Namespace */); + if (!namespace || namespace === unknownSymbol || name.right.kind === 120 /* Missing */) + return; + var symbol = getSymbol(namespace.exports, name.right.text, meaning); + if (!symbol) { + error(location, ts.Diagnostics.Module_0_has_no_exported_member_1, getFullyQualifiedName(namespace), ts.declarationNameToString(name.right)); + return; + } + } + else { + return; + } + ts.Debug.assert((symbol.flags & 67108864 /* Instantiated */) === 0, "Should never get an instantiated symbol here."); + return symbol.flags & meaning ? symbol : resolveImport(symbol); + } + function isExternalModuleNameRelative(moduleName) { + return moduleName.substr(0, 2) === "./" || moduleName.substr(0, 3) === "../" || moduleName.substr(0, 2) === ".\\" || moduleName.substr(0, 3) === "..\\"; + } + function resolveExternalModuleName(location, moduleLiteral) { + var searchPath = ts.getDirectoryPath(getSourceFile(location).filename); + var moduleName = moduleLiteral.text; + if (!moduleName) + return; + var isRelative = isExternalModuleNameRelative(moduleName); + if (!isRelative) { + var symbol = getSymbol(globals, '"' + moduleName + '"', 512 /* ValueModule */); + if (symbol) { + return getResolvedExportSymbol(symbol); + } + } + while (true) { + var filename = ts.normalizePath(ts.combinePaths(searchPath, moduleName)); + var sourceFile = program.getSourceFile(filename + ".ts") || program.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 getResolvedExportSymbol(sourceFile.symbol); + } + error(moduleLiteral, ts.Diagnostics.File_0_is_not_an_external_module, sourceFile.filename); + return; + } + error(moduleLiteral, ts.Diagnostics.Cannot_find_external_module_0, moduleName); + } + function getResolvedExportSymbol(moduleSymbol) { + var symbol = getExportAssignmentSymbol(moduleSymbol); + if (symbol) { + if (symbol.flags & (107455 /* Value */ | 3152352 /* Type */ | 1536 /* Namespace */)) { + return symbol; + } + if (symbol.flags & 33554432 /* Import */) { + return resolveImport(symbol); + } + } + return moduleSymbol; + } + function getExportAssignmentSymbol(symbol) { + checkTypeOfExportAssignmentSymbol(symbol); + var symbolLinks = getSymbolLinks(symbol); + return symbolLinks.exportAssignSymbol === unknownSymbol ? undefined : symbolLinks.exportAssignSymbol; + } + function checkTypeOfExportAssignmentSymbol(containerSymbol) { + var symbolLinks = getSymbolLinks(containerSymbol); + if (!symbolLinks.exportAssignSymbol) { + var exportInformation = collectExportInformationForSourceFileOrModule(containerSymbol); + if (exportInformation.exportAssignments.length) { + if (exportInformation.exportAssignments.length > 1) { + ts.forEach(exportInformation.exportAssignments, function (node) { return error(node, ts.Diagnostics.A_module_cannot_have_more_than_one_export_assignment); }); + } + var node = exportInformation.exportAssignments[0]; + if (exportInformation.hasExportedMember) { + error(node, ts.Diagnostics.An_export_assignment_cannot_be_used_in_a_module_with_other_exported_elements); + } + if (node.exportName.text) { + var meaning = 107455 /* Value */ | 3152352 /* Type */ | 1536 /* Namespace */; + var exportSymbol = resolveName(node, node.exportName.text, meaning, ts.Diagnostics.Cannot_find_name_0, node.exportName); + } + } + symbolLinks.exportAssignSymbol = exportSymbol || unknownSymbol; + } + } + function collectExportInformationForSourceFileOrModule(symbol) { + var seenExportedMember = false; + var result = []; + ts.forEach(symbol.declarations, function (declaration) { + var block = (declaration.kind === 197 /* SourceFile */ ? declaration : declaration.body); + ts.forEach(block.statements, function (node) { + if (node.kind === 195 /* ExportAssignment */) { + result.push(node); + } + else { + seenExportedMember = seenExportedMember || (node.flags & 1 /* Export */) !== 0; + } + }); + }); + return { + hasExportedMember: seenExportedMember, + exportAssignments: result + }; + } + 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 & 4194304 /* ExportValue */) !== 0 ? getMergedSymbol(symbol.exportSymbol) : symbol; + } + function symbolIsValue(symbol) { + if (symbol.flags & 67108864 /* Instantiated */) { + return symbolIsValue(getSymbolLinks(symbol).target); + } + if (symbol.flags & 107455 /* Value */) { + return true; + } + if (symbol.flags & 33554432 /* Import */) { + return (resolveImport(symbol).flags & 107455 /* Value */) !== 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 === 126 /* Constructor */ && 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 /* _ */; + } + 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 /* Anonymous */, symbol), members, callSignatures, constructSignatures, stringIndexType, numberIndexType); + } + function isOptionalProperty(propertySymbol) { + return propertySymbol.valueDeclaration && propertySymbol.valueDeclaration.flags & 4 /* QuestionMark */ && propertySymbol.valueDeclaration.kind !== 123 /* Parameter */; + } + function forEachSymbolTableInScope(enclosingDeclaration, callback) { + var result; + for (var location = enclosingDeclaration; location; location = location.parent) { + if (location.locals && !isGlobalSourceFile(location)) { + if (result = callback(location.locals)) { + return result; + } + } + switch (location.kind) { + case 197 /* SourceFile */: + if (!ts.isExternalModule(location)) { + break; + } + case 192 /* ModuleDeclaration */: + if (result = callback(getSymbolOfNode(location).exports)) { + return result; + } + break; + case 188 /* ClassDeclaration */: + case 189 /* InterfaceDeclaration */: + if (result = callback(getSymbolOfNode(location).members)) { + return result; + } + break; + } + } + return callback(globals); + } + function getQualifiedLeftMeaning(rightMeaning) { + return rightMeaning === 107455 /* Value */ ? 107455 /* Value */ : 1536 /* Namespace */; + } + 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, function (declaration) { return hasExternalModuleSymbol(declaration); }) && canQualifySymbol(symbolFromSymbolTable, meaning); + } + } + if (isAccessible(ts.lookUp(symbols, symbol.name))) { + return [symbol]; + } + return ts.forEachValue(symbols, function (symbolFromSymbolTable) { + if (symbolFromSymbolTable.flags & 33554432 /* Import */) { + if (!useOnlyExternalAliasing || ts.forEach(symbolFromSymbolTable.declarations, function (declaration) { return declaration.kind === 194 /* ImportDeclaration */ && declaration.externalModuleName; })) { + var resolvedImportedSymbol = resolveImport(symbolFromSymbolTable); + if (isAccessible(symbolFromSymbolTable, resolveImport(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 & 33554432 /* Import */) ? resolveImport(symbolFromSymbolTable) : symbolFromSymbolTable; + if (symbolFromSymbolTable.flags & meaning) { + qualify = true; + return true; + } + return false; + }); + return qualify; + } + function isSymbolAccessible(symbol, enclosingDeclaration, meaning) { + if (symbol && enclosingDeclaration && !(symbol.flags & 1048576 /* TypeParameter */)) { + 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 /* NotAccessible */, + errorSymbolName: symbolToString(initialSymbol, enclosingDeclaration, meaning), + errorModuleName: symbol !== initialSymbol ? symbolToString(symbol, enclosingDeclaration, 1536 /* Namespace */) : undefined + }; + } + return hasAccessibleDeclarations; + } + meaningToLook = getQualifiedLeftMeaning(meaning); + symbol = getParentOfSymbol(symbol); + } + var symbolExternalModule = ts.forEach(initialSymbol.declarations, function (declaration) { return getExternalModuleContainer(declaration); }); + if (symbolExternalModule) { + var enclosingExternalModule = getExternalModuleContainer(enclosingDeclaration); + if (symbolExternalModule !== enclosingExternalModule) { + return { + accessibility: 2 /* CannotBeNamed */, + errorSymbolName: symbolToString(initialSymbol, enclosingDeclaration, meaning), + errorModuleName: symbolToString(symbolExternalModule) + }; + } + } + return { + accessibility: 1 /* NotAccessible */, + errorSymbolName: symbolToString(initialSymbol, enclosingDeclaration, meaning) + }; + } + return { accessibility: 0 /* Accessible */ }; + function getExternalModuleContainer(declaration) { + for (; declaration; declaration = declaration.parent) { + if (hasExternalModuleSymbol(declaration)) { + return getSymbolOfNode(declaration); + } + } + } + } + function hasExternalModuleSymbol(declaration) { + return (declaration.kind === 192 /* ModuleDeclaration */ && declaration.name.kind === 7 /* StringLiteral */) || (declaration.kind === 197 /* SourceFile */ && ts.isExternalModule(declaration)); + } + function hasVisibleDeclarations(symbol) { + var aliasesToMakeVisible; + if (ts.forEach(symbol.declarations, function (declaration) { return !getIsDeclarationVisible(declaration); })) { + return undefined; + } + return { accessibility: 0 /* Accessible */, aliasesToMakeVisible: aliasesToMakeVisible }; + function getIsDeclarationVisible(declaration) { + if (!isDeclarationVisible(declaration)) { + if (declaration.kind === 194 /* ImportDeclaration */ && !(declaration.flags & 1 /* Export */) && isDeclarationVisible(declaration.parent)) { + getNodeLinks(declaration).isVisible = true; + if (aliasesToMakeVisible) { + if (!ts.contains(aliasesToMakeVisible, declaration)) { + aliasesToMakeVisible.push(declaration); + } + } + else { + aliasesToMakeVisible = [declaration]; + } + return true; + } + return false; + } + return true; + } + } + function isEntityNameVisible(entityName, enclosingDeclaration) { + var meaning; + if (entityName.parent.kind === 135 /* TypeQuery */) { + meaning = 107455 /* Value */ | 4194304 /* ExportValue */; + } + else if (entityName.kind === 121 /* QualifiedName */ || entityName.parent.kind === 194 /* ImportDeclaration */) { + meaning = 1536 /* Namespace */; + } + else { + meaning = 3152352 /* Type */; + } + var firstIdentifier = getFirstIdentifier(entityName); + var symbol = resolveName(enclosingDeclaration, firstIdentifier.text, meaning, undefined, undefined); + return hasVisibleDeclarations(symbol) || { + accessibility: 1 /* NotAccessible */, + errorSymbolName: ts.getTextOfNode(firstIdentifier), + errorNode: firstIdentifier + }; + } + function releaseStringWriter(writer) { + writer.clear(); + stringWriters.push(writer); + } + function writeKeyword(writer, kind) { + writer.writeKeyword(ts.tokenToString(kind)); + } + function writePunctuation(writer, kind) { + writer.writePunctuation(ts.tokenToString(kind)); + } + function writeOperator(writer, kind) { + writer.writeOperator(ts.tokenToString(kind)); + } + function writeSpace(writer) { + writer.writeSpace(" "); + } + function symbolToString(symbol, enclosingDeclaration, meaning) { + var writer = getSingleLineStringWriter(); + getSymbolDisplayBuilder().buildSymbolDisplay(symbol, writer, enclosingDeclaration, meaning); + var result = writer.string(); + releaseStringWriter(writer); + return result; + } + function typeToString(type, enclosingDeclaration, flags) { + var writer = getSingleLineStringWriter(); + getSymbolDisplayBuilder().buildTypeDisplay(type, writer, enclosingDeclaration, flags); + var result = writer.string(); + releaseStringWriter(writer); + var maxLength = compilerOptions.noErrorTruncation || flags & 4 /* NoTruncation */ ? 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 /* TypeLiteral */) { + var node = type.symbol.declarations[0].parent; + while (node.kind === 140 /* ParenType */) { + node = node.parent; + } + if (node.kind === 190 /* TypeAliasDeclaration */) { + 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) { + var parentSymbol; + function appendParentTypeArgumentsAndSymbolName(symbol) { + if (parentSymbol) { + if (flags & 1 /* WriteTypeParametersOrArguments */) { + if (symbol.flags & 67108864 /* Instantiated */) { + buildDisplayForTypeArgumentsAndDelimiters(getTypeParametersOfClassOrInterface(parentSymbol), symbol.mapper, writer, enclosingDeclaration); + } + else { + buildTypeParameterDisplayFromSymbol(parentSymbol, writer, enclosingDeclaration); + } + } + writePunctuation(writer, 19 /* DotToken */); + } + parentSymbol = symbol; + appendSymbolNameOnly(symbol, writer); + } + writer.trackSymbol(symbol, enclosingDeclaration, meaning); + function walkSymbol(symbol, meaning) { + if (symbol) { + var accessibleSymbolChain = getAccessibleSymbolChain(symbol, enclosingDeclaration, meaning, !!(flags & 2 /* UseOnlyExternalAliasing */)); + 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++) { + appendParentTypeArgumentsAndSymbolName(accessibleSymbolChain[i]); + } + } + else { + if (!parentSymbol && ts.forEach(symbol.declarations, function (declaration) { return hasExternalModuleSymbol(declaration); })) { + return; + } + if (symbol.flags & 2048 /* TypeLiteral */ || symbol.flags & 4096 /* ObjectLiteral */) { + return; + } + appendParentTypeArgumentsAndSymbolName(symbol); + } + } + } + if (enclosingDeclaration && !(symbol.flags & 1048576 /* TypeParameter */)) { + walkSymbol(symbol, meaning); + return; + } + return appendParentTypeArgumentsAndSymbolName(symbol); + } + function buildTypeDisplay(type, writer, enclosingDeclaration, globalFlags, typeStack) { + var globalFlagsToPass = globalFlags & 16 /* WriteOwnNameForAnyLike */; + return writeType(type, globalFlags); + function writeType(type, flags) { + if (type.flags & 127 /* Intrinsic */) { + writer.writeKeyword(!(globalFlags & 16 /* WriteOwnNameForAnyLike */) && (type.flags & 1 /* Any */) ? "any" : type.intrinsicName); + } + else if (type.flags & 4096 /* Reference */) { + writeTypeReference(type, flags); + } + else if (type.flags & (1024 /* Class */ | 2048 /* Interface */ | 128 /* Enum */ | 512 /* TypeParameter */)) { + buildSymbolDisplay(type.symbol, writer, enclosingDeclaration, 3152352 /* Type */); + } + else if (type.flags & 8192 /* Tuple */) { + writeTupleType(type); + } + else if (type.flags & 16384 /* Union */) { + writeUnionType(type, flags); + } + else if (type.flags & 32768 /* Anonymous */) { + writeAnonymousType(type, flags); + } + else if (type.flags & 256 /* StringLiteral */) { + writer.writeStringLiteral(type.text); + } + else { + writePunctuation(writer, 13 /* OpenBraceToken */); + writeSpace(writer); + writePunctuation(writer, 20 /* DotDotDotToken */); + writeSpace(writer); + writePunctuation(writer, 14 /* CloseBraceToken */); + } + } + function writeTypeList(types, union) { + for (var i = 0; i < types.length; i++) { + if (i > 0) { + if (union) { + writeSpace(writer); + } + writePunctuation(writer, union ? 43 /* BarToken */ : 22 /* CommaToken */); + writeSpace(writer); + } + writeType(types[i], union ? 64 /* InElementType */ : 0 /* None */); + } + } + function writeTypeReference(type, flags) { + if (type.target === globalArrayType && !(flags & 1 /* WriteArrayAsGenericType */)) { + writeType(type.typeArguments[0], 64 /* InElementType */); + writePunctuation(writer, 17 /* OpenBracketToken */); + writePunctuation(writer, 18 /* CloseBracketToken */); + } + else { + buildSymbolDisplay(type.target.symbol, writer, enclosingDeclaration, 3152352 /* Type */); + writePunctuation(writer, 23 /* LessThanToken */); + writeTypeList(type.typeArguments, false); + writePunctuation(writer, 24 /* GreaterThanToken */); + } + } + function writeTupleType(type) { + writePunctuation(writer, 17 /* OpenBracketToken */); + writeTypeList(type.elementTypes, false); + writePunctuation(writer, 18 /* CloseBracketToken */); + } + function writeUnionType(type, flags) { + if (flags & 64 /* InElementType */) { + writePunctuation(writer, 15 /* OpenParenToken */); + } + writeTypeList(type.types, true); + if (flags & 64 /* InElementType */) { + writePunctuation(writer, 16 /* CloseParenToken */); + } + } + function writeAnonymousType(type, flags) { + if (type.symbol && type.symbol.flags & (32 /* Class */ | 384 /* Enum */ | 512 /* ValueModule */)) { + writeTypeofSymbol(type); + } + else if (shouldWriteTypeOfFunctionSymbol()) { + writeTypeofSymbol(type); + } + else if (typeStack && ts.contains(typeStack, type)) { + var typeAlias = getTypeAliasForTypeLiteral(type); + if (typeAlias) { + buildSymbolDisplay(typeAlias, writer, enclosingDeclaration, 3152352 /* Type */); + } + else { + writeKeyword(writer, 109 /* AnyKeyword */); + } + } + else { + if (!typeStack) { + typeStack = []; + } + typeStack.push(type); + writeLiteralType(type, flags); + typeStack.pop(); + } + function shouldWriteTypeOfFunctionSymbol() { + if (type.symbol) { + var isStaticMethodSymbol = !!(type.symbol.flags & 8192 /* Method */ && ts.forEach(type.symbol.declarations, function (declaration) { return declaration.flags & 128 /* Static */; })); + var isNonLocalFunctionSymbol = !!(type.symbol.flags & 16 /* Function */) && (type.symbol.parent || ts.forEach(type.symbol.declarations, function (declaration) { return declaration.parent.kind === 197 /* SourceFile */ || declaration.parent.kind === 193 /* ModuleBlock */; })); + if (isStaticMethodSymbol || isNonLocalFunctionSymbol) { + return !!(flags & 2 /* UseTypeOfFunction */) || (typeStack && ts.contains(typeStack, type)); + } + } + } + } + function writeTypeofSymbol(type) { + writeKeyword(writer, 95 /* TypeOfKeyword */); + writeSpace(writer); + buildSymbolDisplay(type.symbol, writer, enclosingDeclaration, 107455 /* Value */); + } + 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, 13 /* OpenBraceToken */); + writePunctuation(writer, 14 /* CloseBraceToken */); + return; + } + if (resolved.callSignatures.length === 1 && !resolved.constructSignatures.length) { + if (flags & 64 /* InElementType */) { + writePunctuation(writer, 15 /* OpenParenToken */); + } + buildSignatureDisplay(resolved.callSignatures[0], writer, enclosingDeclaration, globalFlagsToPass | 8 /* WriteArrowStyleSignature */, typeStack); + if (flags & 64 /* InElementType */) { + writePunctuation(writer, 16 /* CloseParenToken */); + } + return; + } + if (resolved.constructSignatures.length === 1 && !resolved.callSignatures.length) { + if (flags & 64 /* InElementType */) { + writePunctuation(writer, 15 /* OpenParenToken */); + } + writeKeyword(writer, 86 /* NewKeyword */); + writeSpace(writer); + buildSignatureDisplay(resolved.constructSignatures[0], writer, enclosingDeclaration, globalFlagsToPass | 8 /* WriteArrowStyleSignature */, typeStack); + if (flags & 64 /* InElementType */) { + writePunctuation(writer, 16 /* CloseParenToken */); + } + return; + } + } + writePunctuation(writer, 13 /* OpenBraceToken */); + writer.writeLine(); + writer.increaseIndent(); + for (var i = 0; i < resolved.callSignatures.length; i++) { + buildSignatureDisplay(resolved.callSignatures[i], writer, enclosingDeclaration, globalFlagsToPass, typeStack); + writePunctuation(writer, 21 /* SemicolonToken */); + writer.writeLine(); + } + for (var i = 0; i < resolved.constructSignatures.length; i++) { + writeKeyword(writer, 86 /* NewKeyword */); + writeSpace(writer); + buildSignatureDisplay(resolved.constructSignatures[i], writer, enclosingDeclaration, globalFlagsToPass, typeStack); + writePunctuation(writer, 21 /* SemicolonToken */); + writer.writeLine(); + } + if (resolved.stringIndexType) { + writePunctuation(writer, 17 /* OpenBracketToken */); + writer.writeParameter("x"); + writePunctuation(writer, 50 /* ColonToken */); + writeSpace(writer); + writeKeyword(writer, 118 /* StringKeyword */); + writePunctuation(writer, 18 /* CloseBracketToken */); + writePunctuation(writer, 50 /* ColonToken */); + writeSpace(writer); + writeType(resolved.stringIndexType, 0 /* None */); + writePunctuation(writer, 21 /* SemicolonToken */); + writer.writeLine(); + } + if (resolved.numberIndexType) { + writePunctuation(writer, 17 /* OpenBracketToken */); + writer.writeParameter("x"); + writePunctuation(writer, 50 /* ColonToken */); + writeSpace(writer); + writeKeyword(writer, 116 /* NumberKeyword */); + writePunctuation(writer, 18 /* CloseBracketToken */); + writePunctuation(writer, 50 /* ColonToken */); + writeSpace(writer); + writeType(resolved.numberIndexType, 0 /* None */); + writePunctuation(writer, 21 /* SemicolonToken */); + writer.writeLine(); + } + for (var i = 0; i < resolved.properties.length; i++) { + var p = resolved.properties[i]; + var t = getTypeOfSymbol(p); + if (p.flags & (16 /* Function */ | 8192 /* Method */) && !getPropertiesOfObjectType(t).length) { + var signatures = getSignaturesOfType(t, 0 /* Call */); + for (var j = 0; j < signatures.length; j++) { + buildSymbolDisplay(p, writer); + if (isOptionalProperty(p)) { + writePunctuation(writer, 49 /* QuestionToken */); + } + buildSignatureDisplay(signatures[j], writer, enclosingDeclaration, globalFlagsToPass, typeStack); + writePunctuation(writer, 21 /* SemicolonToken */); + writer.writeLine(); + } + } + else { + buildSymbolDisplay(p, writer); + if (isOptionalProperty(p)) { + writePunctuation(writer, 49 /* QuestionToken */); + } + writePunctuation(writer, 50 /* ColonToken */); + writeSpace(writer); + writeType(t, 0 /* None */); + writePunctuation(writer, 21 /* SemicolonToken */); + writer.writeLine(); + } + } + writer.decreaseIndent(); + writePunctuation(writer, 14 /* CloseBraceToken */); + } + } + function buildTypeParameterDisplayFromSymbol(symbol, writer, enclosingDeclaraiton, flags) { + var targetSymbol = getTargetSymbol(symbol); + if (targetSymbol.flags & 32 /* Class */ || targetSymbol.flags & 64 /* Interface */) { + 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, 77 /* ExtendsKeyword */); + writeSpace(writer); + buildTypeDisplay(constraint, writer, enclosingDeclaration, flags, typeStack); + } + } + function buildParameterDisplay(p, writer, enclosingDeclaration, flags, typeStack) { + if (getDeclarationFlagsFromSymbol(p) & 8 /* Rest */) { + writePunctuation(writer, 20 /* DotDotDotToken */); + } + appendSymbolNameOnly(p, writer); + if (p.valueDeclaration.flags & 4 /* QuestionMark */ || p.valueDeclaration.initializer) { + writePunctuation(writer, 49 /* QuestionToken */); + } + writePunctuation(writer, 50 /* ColonToken */); + writeSpace(writer); + buildTypeDisplay(getTypeOfSymbol(p), writer, enclosingDeclaration, flags, typeStack); + } + function buildDisplayForTypeParametersAndDelimiters(typeParameters, writer, enclosingDeclaration, flags, typeStack) { + if (typeParameters && typeParameters.length) { + writePunctuation(writer, 23 /* LessThanToken */); + for (var i = 0; i < typeParameters.length; i++) { + if (i > 0) { + writePunctuation(writer, 22 /* CommaToken */); + writeSpace(writer); + } + buildTypeParameterDisplay(typeParameters[i], writer, enclosingDeclaration, flags, typeStack); + } + writePunctuation(writer, 24 /* GreaterThanToken */); + } + } + function buildDisplayForTypeArgumentsAndDelimiters(typeParameters, mapper, writer, enclosingDeclaration, flags, typeStack) { + if (typeParameters && typeParameters.length) { + writePunctuation(writer, 23 /* LessThanToken */); + for (var i = 0; i < typeParameters.length; i++) { + if (i > 0) { + writePunctuation(writer, 22 /* CommaToken */); + writeSpace(writer); + } + buildTypeDisplay(mapper(typeParameters[i]), writer, enclosingDeclaration, 0 /* None */); + } + writePunctuation(writer, 24 /* GreaterThanToken */); + } + } + function buildDisplayForParametersAndDelimiters(parameters, writer, enclosingDeclaration, flags, typeStack) { + writePunctuation(writer, 15 /* OpenParenToken */); + for (var i = 0; i < parameters.length; i++) { + if (i > 0) { + writePunctuation(writer, 22 /* CommaToken */); + writeSpace(writer); + } + buildParameterDisplay(parameters[i], writer, enclosingDeclaration, flags, typeStack); + } + writePunctuation(writer, 16 /* CloseParenToken */); + } + function buildReturnTypeDisplay(signature, writer, enclosingDeclaration, flags, typeStack) { + if (flags & 8 /* WriteArrowStyleSignature */) { + writeSpace(writer); + writePunctuation(writer, 31 /* EqualsGreaterThanToken */); + } + else { + writePunctuation(writer, 50 /* ColonToken */); + } + writeSpace(writer); + buildTypeDisplay(getReturnTypeOfSignature(signature), writer, enclosingDeclaration, flags, typeStack); + } + function buildSignatureDisplay(signature, writer, enclosingDeclaration, flags, typeStack) { + if (signature.target && (flags & 32 /* WriteTypeArgumentsOfSignature */)) { + 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 === 192 /* ModuleDeclaration */) { + if (node.name.kind === 7 /* StringLiteral */) { + return node; + } + } + else if (node.kind === 197 /* SourceFile */) { + return ts.isExternalModule(node) ? node : undefined; + } + } + ts.Debug.fail("getContainingModule cant reach here"); + } + function isUsedInExportAssignment(node) { + var externalModule = getContainingExternalModule(node); + if (externalModule) { + var externalModuleSymbol = getSymbolOfNode(externalModule); + var exportAssignmentSymbol = getExportAssignmentSymbol(externalModuleSymbol); + var resolvedExportSymbol; + var symbolOfNode = getSymbolOfNode(node); + if (isSymbolUsedInExportAssignment(symbolOfNode)) { + return true; + } + if (symbolOfNode.flags & 33554432 /* Import */) { + return isSymbolUsedInExportAssignment(resolveImport(symbolOfNode)); + } + } + function isSymbolUsedInExportAssignment(symbol) { + if (exportAssignmentSymbol === symbol) { + return true; + } + if (exportAssignmentSymbol && !!(exportAssignmentSymbol.flags & 33554432 /* Import */)) { + resolvedExportSymbol = resolvedExportSymbol || resolveImport(exportAssignmentSymbol); + if (resolvedExportSymbol === symbol) { + return true; + } + return ts.forEach(resolvedExportSymbol.declarations, function (declaration) { + while (declaration) { + if (declaration === node) { + return true; + } + declaration = declaration.parent; + } + }); + } + } + } + function determineIfDeclarationIsVisible() { + switch (node.kind) { + case 185 /* VariableDeclaration */: + case 192 /* ModuleDeclaration */: + case 188 /* ClassDeclaration */: + case 189 /* InterfaceDeclaration */: + case 190 /* TypeAliasDeclaration */: + case 186 /* FunctionDeclaration */: + case 191 /* EnumDeclaration */: + case 194 /* ImportDeclaration */: + var parent = node.kind === 185 /* VariableDeclaration */ ? node.parent.parent : node.parent; + if (!(node.flags & 1 /* Export */) && !(node.kind !== 194 /* ImportDeclaration */ && parent.kind !== 197 /* SourceFile */ && ts.isInAmbientContext(parent))) { + return isGlobalSourceFile(parent) || isUsedInExportAssignment(node); + } + return isDeclarationVisible(parent); + case 124 /* Property */: + case 125 /* Method */: + if (node.flags & (32 /* Private */ | 64 /* Protected */)) { + return false; + } + case 126 /* Constructor */: + case 130 /* ConstructSignature */: + case 129 /* CallSignature */: + case 131 /* IndexSignature */: + case 123 /* Parameter */: + case 193 /* ModuleBlock */: + case 122 /* TypeParameter */: + return isDeclarationVisible(node.parent); + case 197 /* SourceFile */: + 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 getTypeOfPrototypeProperty(prototype) { + var classType = getDeclaredTypeOfSymbol(prototype.parent); + return classType.typeParameters ? createTypeReference(classType, ts.map(classType.typeParameters, function (_) { return anyType; })) : classType; + } + function getTypeOfVariableOrPropertyDeclaration(declaration) { + if (declaration.parent.kind === 170 /* ForInStatement */) { + return anyType; + } + if (declaration.type) { + return getTypeFromTypeNode(declaration.type); + } + if (declaration.kind === 123 /* Parameter */) { + var func = declaration.parent; + if (func.kind === 128 /* SetAccessor */) { + var getter = getDeclarationOfKind(declaration.parent.symbol, 127 /* GetAccessor */); + if (getter) { + return getReturnTypeOfSignature(getSignatureFromDeclaration(getter)); + } + } + var type = getContextuallyTypedParameterType(declaration); + if (type) { + return type; + } + } + if (declaration.initializer) { + var type = checkAndMarkExpression(declaration.initializer); + if (declaration.kind !== 143 /* PropertyAssignment */) { + var unwidenedType = type; + type = getWidenedType(type); + if (type !== unwidenedType) { + checkImplicitAny(type); + } + } + return type; + } + if (declaration.kind === 144 /* ShorthandPropertyAssignment */) { + var type = checkIdentifier(declaration.name); + return type; + } + var type = declaration.flags & 8 /* Rest */ ? createArrayType(anyType) : anyType; + checkImplicitAny(type); + return type; + function checkImplicitAny(type) { + if (!fullTypeCheck || !compilerOptions.noImplicitAny) { + return; + } + if (getInnermostTypeOfNestedArrayTypes(type) !== anyType) { + return; + } + if (isPrivateWithinAmbient(declaration) || (declaration.kind === 123 /* Parameter */ && isPrivateWithinAmbient(declaration.parent))) { + return; + } + switch (declaration.kind) { + case 124 /* Property */: + var diagnostic = ts.Diagnostics.Member_0_implicitly_has_an_1_type; + break; + case 123 /* Parameter */: + var diagnostic = declaration.flags & 8 /* Rest */ ? ts.Diagnostics.Rest_parameter_0_implicitly_has_an_any_type : ts.Diagnostics.Parameter_0_implicitly_has_an_1_type; + break; + default: + var diagnostic = ts.Diagnostics.Variable_0_implicitly_has_an_1_type; + } + error(declaration, diagnostic, ts.declarationNameToString(declaration.name), typeToString(type)); + } + } + function getTypeOfVariableOrParameterOrProperty(symbol) { + var links = getSymbolLinks(symbol); + if (!links.type) { + if (symbol.flags & 536870912 /* Prototype */) { + return links.type = getTypeOfPrototypeProperty(symbol); + } + var declaration = symbol.valueDeclaration; + if (declaration.kind === 182 /* CatchBlock */) { + return links.type = anyType; + } + links.type = resolvingType; + var type = getTypeOfVariableOrPropertyDeclaration(declaration); + 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 === 127 /* GetAccessor */) { + 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 = getDeclarationOfKind(symbol, 127 /* GetAccessor */); + var setter = getDeclarationOfKind(symbol, 128 /* SetAccessor */); + 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 = getDeclarationOfKind(symbol, 127 /* GetAccessor */); + 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 /* Anonymous */, symbol); + } + return links.type; + } + function getTypeOfEnumMember(symbol) { + var links = getSymbolLinks(symbol); + if (!links.type) { + links.type = getDeclaredTypeOfEnum(getParentOfSymbol(symbol)); + } + return links.type; + } + function getTypeOfImport(symbol) { + var links = getSymbolLinks(symbol); + if (!links.type) { + links.type = getTypeOfSymbol(resolveImport(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 & 67108864 /* Instantiated */) { + return getTypeOfInstantiatedSymbol(symbol); + } + if (symbol.flags & (3 /* Variable */ | 4 /* Property */)) { + return getTypeOfVariableOrParameterOrProperty(symbol); + } + if (symbol.flags & (16 /* Function */ | 8192 /* Method */ | 32 /* Class */ | 384 /* Enum */ | 512 /* ValueModule */)) { + return getTypeOfFuncClassEnumModule(symbol); + } + if (symbol.flags & 8 /* EnumMember */) { + return getTypeOfEnumMember(symbol); + } + if (symbol.flags & 98304 /* Accessor */) { + return getTypeOfAccessors(symbol); + } + if (symbol.flags & 33554432 /* Import */) { + return getTypeOfImport(symbol); + } + return unknownType; + } + function getTargetType(type) { + return type.flags & 4096 /* Reference */ ? 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 === 189 /* InterfaceDeclaration */ || node.kind === 188 /* ClassDeclaration */) { + 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 /* Class */, symbol); + var typeParameters = getTypeParametersOfClassOrInterface(symbol); + if (typeParameters) { + type.flags |= 4096 /* Reference */; + type.typeParameters = typeParameters; + type.instantiations = {}; + type.instantiations[getTypeListId(type.typeParameters)] = type; + type.target = type; + type.typeArguments = type.typeParameters; + } + type.baseTypes = []; + var declaration = getDeclarationOfKind(symbol, 188 /* ClassDeclaration */); + if (declaration.baseType) { + var baseType = getTypeFromTypeReferenceNode(declaration.baseType); + if (baseType !== unknownType) { + if (getTargetType(baseType).flags & 1024 /* Class */) { + 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 /* WriteArrayAsGenericType */)); + } + } + else { + error(declaration.baseType, 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 /* String */); + type.declaredNumberIndexType = getIndexTypeOfSymbol(symbol, 1 /* Number */); + } + return links.declaredType; + } + function getDeclaredTypeOfInterface(symbol) { + var links = getSymbolLinks(symbol); + if (!links.declaredType) { + var type = links.declaredType = createObjectType(2048 /* Interface */, symbol); + var typeParameters = getTypeParametersOfClassOrInterface(symbol); + if (typeParameters) { + type.flags |= 4096 /* Reference */; + 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 === 189 /* InterfaceDeclaration */ && declaration.baseTypes) { + ts.forEach(declaration.baseTypes, function (node) { + var baseType = getTypeFromTypeReferenceNode(node); + if (baseType !== unknownType) { + if (getTargetType(baseType).flags & (1024 /* Class */ | 2048 /* Interface */)) { + 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 /* WriteArrayAsGenericType */)); + } + } + 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 /* String */); + type.declaredNumberIndexType = getIndexTypeOfSymbol(symbol, 1 /* Number */); + } + return links.declaredType; + } + function getDeclaredTypeOfTypeAlias(symbol) { + var links = getSymbolLinks(symbol); + if (!links.declaredType) { + links.declaredType = resolvingType; + var declaration = getDeclarationOfKind(symbol, 190 /* TypeAliasDeclaration */); + var type = getTypeFromTypeNode(declaration.type); + if (links.declaredType === resolvingType) { + links.declaredType = type; + } + } + else if (links.declaredType === resolvingType) { + links.declaredType = unknownType; + var declaration = getDeclarationOfKind(symbol, 190 /* TypeAliasDeclaration */); + 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 /* Enum */); + type.symbol = symbol; + links.declaredType = type; + } + return links.declaredType; + } + function getDeclaredTypeOfTypeParameter(symbol) { + var links = getSymbolLinks(symbol); + if (!links.declaredType) { + var type = createType(512 /* TypeParameter */); + type.symbol = symbol; + if (!getDeclarationOfKind(symbol, 122 /* TypeParameter */).constraint) { + type.constraint = noConstraintType; + } + links.declaredType = type; + } + return links.declaredType; + } + function getDeclaredTypeOfImport(symbol) { + var links = getSymbolLinks(symbol); + if (!links.declaredType) { + links.declaredType = getDeclaredTypeOfSymbol(resolveImport(symbol)); + } + return links.declaredType; + } + function getDeclaredTypeOfSymbol(symbol) { + ts.Debug.assert((symbol.flags & 67108864 /* Instantiated */) === 0); + if (symbol.flags & 32 /* Class */) { + return getDeclaredTypeOfClass(symbol); + } + if (symbol.flags & 64 /* Interface */) { + return getDeclaredTypeOfInterface(symbol); + } + if (symbol.flags & 2097152 /* TypeAlias */) { + return getDeclaredTypeOfTypeAlias(symbol); + } + if (symbol.flags & 384 /* Enum */) { + return getDeclaredTypeOfEnum(symbol); + } + if (symbol.flags & 1048576 /* TypeParameter */) { + return getDeclaredTypeOfTypeParameter(symbol); + } + if (symbol.flags & 33554432 /* Import */) { + return getDeclaredTypeOfImport(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++) { + signatures.push(baseSignatures[i]); + } + } + } + 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 /* Call */)); + constructSignatures = ts.concatenate(constructSignatures, getSignaturesOfType(baseType, 1 /* Construct */)); + stringIndexType = stringIndexType || getIndexTypeOfType(baseType, 0 /* String */); + numberIndexType = numberIndexType || getIndexTypeOfType(baseType, 1 /* Number */); + }); + } + 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 /* Call */)); + constructSignatures = ts.concatenate(constructSignatures, getSignaturesOfType(instantiatedBaseType, 1 /* Construct */)); + stringIndexType = stringIndexType || getIndexTypeOfType(instantiatedBaseType, 0 /* String */); + numberIndexType = numberIndexType || getIndexTypeOfType(instantiatedBaseType, 1 /* Number */); + }); + 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 /* Construct */); + return ts.map(baseSignatures, function (baseSignature) { + var signature = baseType.flags & 4096 /* Reference */ ? 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 /* Property */ | 268435456 /* Transient */, "" + 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++) { + if (signatures[i].typeParameters) { + return emptyArray; + } + } + for (var i = 1; i < signatureLists.length; i++) { + if (!signatureListsIdentical(signatures, signatureLists[i])) { + 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 indexType = getIndexTypeOfType(types[i], kind); + if (!indexType) { + return undefined; + } + indexTypes.push(indexType); + } + return getUnionType(indexTypes); + } + function resolveUnionTypeMembers(type) { + var callSignatures = getUnionSignatures(type.types, 0 /* Call */); + var constructSignatures = getUnionSignatures(type.types, 1 /* Construct */); + var stringIndexType = getUnionIndexType(type.types, 0 /* String */); + var numberIndexType = getUnionIndexType(type.types, 1 /* Number */); + setObjectTypeMembers(type, emptySymbols, callSignatures, constructSignatures, stringIndexType, numberIndexType); + } + function resolveAnonymousTypeMembers(type) { + var symbol = type.symbol; + if (symbol.flags & 2048 /* TypeLiteral */) { + var members = symbol.members; + var callSignatures = getSignaturesOfSymbol(members["__call"]); + var constructSignatures = getSignaturesOfSymbol(members["__new"]); + var stringIndexType = getIndexTypeOfSymbol(symbol, 0 /* String */); + var numberIndexType = getIndexTypeOfSymbol(symbol, 1 /* Number */); + } + else { + var members = emptySymbols; + var callSignatures = emptyArray; + var constructSignatures = emptyArray; + if (symbol.flags & 1952 /* HasExports */) { + members = symbol.exports; + } + if (symbol.flags & (16 /* Function */ | 8192 /* Method */)) { + callSignatures = getSignaturesOfSymbol(symbol); + } + if (symbol.flags & 32 /* Class */) { + 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))); + } + } + var stringIndexType = undefined; + var numberIndexType = (symbol.flags & 384 /* Enum */) ? stringType : undefined; + } + setObjectTypeMembers(type, members, callSignatures, constructSignatures, stringIndexType, numberIndexType); + } + function resolveObjectOrUnionTypeMembers(type) { + if (!type.members) { + if (type.flags & (1024 /* Class */ | 2048 /* Interface */)) { + resolveClassOrInterfaceMembers(type); + } + else if (type.flags & 32768 /* Anonymous */) { + resolveAnonymousTypeMembers(type); + } + else if (type.flags & 8192 /* Tuple */) { + resolveTupleTypeMembers(type); + } + else if (type.flags & 16384 /* Union */) { + resolveUnionTypeMembers(type); + } + else { + resolveTypeReferenceMembers(type); + } + } + return type; + } + function getPropertiesOfObjectType(type) { + if (type.flags & 48128 /* ObjectType */) { + return resolveObjectOrUnionTypeMembers(type).properties; + } + return emptyArray; + } + function getPropertyOfObjectType(type, name) { + if (type.flags & 48128 /* ObjectType */) { + 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 /* Union */) { + return getPropertiesOfUnionType(type); + } + return getPropertiesOfObjectType(getApparentType(type)); + } + function getApparentType(type) { + if (type.flags & 512 /* TypeParameter */) { + do { + type = getConstraintOfTypeParameter(type); + } while (type && type.flags & 512 /* TypeParameter */); + if (!type) { + type = emptyObjectType; + } + } + if (type.flags & 258 /* StringLike */) { + type = globalStringType; + } + else if (type.flags & 132 /* NumberLike */) { + type = globalNumberType; + } + else if (type.flags & 8 /* Boolean */) { + type = globalBooleanType; + } + return type; + } + function createUnionProperty(unionType, name) { + var types = unionType.types; + var props; + for (var i = 0; i < types.length; i++) { + var type = getApparentType(types[i]); + 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 i = 0; i < props.length; i++) { + var prop = props[i]; + if (prop.declarations) { + declarations.push.apply(declarations, prop.declarations); + } + propTypes.push(getTypeOfSymbol(prop)); + } + var result = createSymbol(4 /* Property */ | 268435456 /* Transient */ | 1073741824 /* UnionProperty */, 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 /* Union */) { + return getPropertyOfUnionType(type, name); + } + if (!(type.flags & 48128 /* ObjectType */)) { + type = getApparentType(type); + if (!(type.flags & 48128 /* ObjectType */)) { + 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 /* ObjectType */ | 16384 /* Union */)) { + var resolved = resolveObjectOrUnionTypeMembers(type); + return kind === 0 /* Call */ ? resolved.callSignatures : resolved.constructSignatures; + } + return emptyArray; + } + function getSignaturesOfType(type, kind) { + return getSignaturesOfObjectOrUnionType(getApparentType(type), kind); + } + function getIndexTypeOfObjectOrUnionType(type, kind) { + if (type.flags & (48128 /* ObjectType */ | 16384 /* Union */)) { + var resolved = resolveObjectOrUnionTypeMembers(type); + return kind === 0 /* String */ ? 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 getSignatureFromDeclaration(declaration) { + var links = getNodeLinks(declaration); + if (!links.resolvedSignature) { + var classType = declaration.kind === 126 /* Constructor */ ? 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 === 7 /* StringLiteral */) { + hasStringLiterals = true; + } + if (minArgumentCount < 0) { + if (param.initializer || param.flags & (4 /* QuestionMark */ | 8 /* Rest */)) { + 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 === 127 /* GetAccessor */) { + var setter = getDeclarationOfKind(declaration.symbol, 128 /* SetAccessor */); + returnType = getAnnotatedAccessorType(setter); + } + if (!returnType && !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 133 /* FunctionType */: + case 134 /* ConstructorType */: + case 186 /* FunctionDeclaration */: + case 125 /* Method */: + case 126 /* Constructor */: + case 129 /* CallSignature */: + case 130 /* ConstructSignature */: + case 131 /* IndexSignature */: + case 127 /* GetAccessor */: + case 128 /* SetAccessor */: + case 152 /* FunctionExpression */: + case 153 /* ArrowFunction */: + 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; + if (signature.target) { + var type = instantiateType(getReturnTypeOfSignature(signature.target), signature.mapper); + } + else if (signature.unionSignatures) { + var type = getUnionType(ts.map(signature.unionSignatures, getReturnTypeOfSignature)); + } + else { + var 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 /* Reference */ && 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 === 126 /* Constructor */ || signature.declaration.kind === 130 /* ConstructSignature */; + var type = createObjectType(32768 /* Anonymous */ | 65536 /* FromSignature */); + 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 /* Number */ ? 116 /* NumberKeyword */ : 118 /* StringKeyword */; + var indexSymbol = getIndexSymbol(symbol); + if (indexSymbol) { + var len = indexSymbol.declarations.length; + for (var i = 0; i < len; i++) { + var node = indexSymbol.declarations[i]; + 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(getDeclarationOfKind(type.symbol, 122 /* TypeParameter */).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 createTypeReference(target, typeArguments) { + var id = getTypeListId(typeArguments); + var type = target.instantiations[id]; + if (!type) { + type = target.instantiations[id] = createObjectType(4096 /* Reference */, 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 === 122 /* TypeParameter */; + return links.isIllegalTypeReferenceInConstraint; + } + function checkTypeParameterHasIllegalReferencesInConstraint(typeParameter) { + var typeParameterSymbol; + function check(n) { + if (n.kind === 132 /* TypeReference */ && n.typeName.kind === 63 /* Identifier */) { + var links = getNodeLinks(n); + if (links.isIllegalTypeReferenceInConstraint === undefined) { + var symbol = resolveName(typeParameter, n.typeName.text, 3152352 /* Type */, undefined, undefined); + if (symbol && (symbol.flags & 1048576 /* TypeParameter */)) { + 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, node.typeName, 3152352 /* Type */); + if (symbol) { + var type; + if ((symbol.flags & 1048576 /* TypeParameter */) && isTypeParameterReferenceIllegalInConstraint(node, symbol)) { + type = unknownType; + } + else { + type = getDeclaredTypeOfSymbol(symbol); + if (type.flags & (1024 /* Class */ | 2048 /* Interface */) && type.flags & 4096 /* Reference */) { + 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 /* WriteArrayAsGenericType */), 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(checkExpression(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 188 /* ClassDeclaration */: + case 189 /* InterfaceDeclaration */: + case 191 /* EnumDeclaration */: + return declaration; + } + } + } + if (!symbol) { + return emptyObjectType; + } + var type = getDeclaredTypeOfSymbol(symbol); + if (!(type.flags & 48128 /* ObjectType */)) { + 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 getGlobalSymbol(name) { + return resolveName(undefined, name, 3152352 /* Type */, ts.Diagnostics.Cannot_find_global_type_0, name); + } + function getGlobalType(name) { + return getTypeOfGlobalSymbol(getGlobalSymbol(name), 0); + } + 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 /* Tuple */); + 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 /* Union */) { + 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, len = types.length; i < len; i++) { + addTypeToSortedSet(sortedTypes, types[i]); + } + } + function isSubtypeOfAny(candidate, types) { + for (var i = 0, len = types.length; i < len; i++) { + if (candidate !== types[i] && isTypeSubtypeOf(candidate, types[i])) { + 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++) { + if (types[i].flags & 1 /* Any */) { + 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 /* Union */); + 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 /* Anonymous */, 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 /* StringLiteral */); + 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 109 /* AnyKeyword */: + return anyType; + case 118 /* StringKeyword */: + return stringType; + case 116 /* NumberKeyword */: + return numberType; + case 110 /* BooleanKeyword */: + return booleanType; + case 97 /* VoidKeyword */: + return voidType; + case 7 /* StringLiteral */: + return getTypeFromStringLiteral(node); + case 132 /* TypeReference */: + return getTypeFromTypeReferenceNode(node); + case 135 /* TypeQuery */: + return getTypeFromTypeQueryNode(node); + case 137 /* ArrayType */: + return getTypeFromArrayTypeNode(node); + case 138 /* TupleType */: + return getTypeFromTupleTypeNode(node); + case 139 /* UnionType */: + return getTypeFromUnionTypeNode(node); + case 140 /* ParenType */: + return getTypeFromTypeNode(node.type); + case 133 /* FunctionType */: + case 134 /* ConstructorType */: + case 136 /* TypeLiteral */: + return getTypeFromTypeLiteralOrFunctionOrConstructorTypeNode(node); + case 63 /* Identifier */: + case 121 /* QualifiedName */: + 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++) { + result.push(instantiator(items[i], 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++) { + if (t === sources[i]) + return anyType; + } + return t; + }; + } + function createInferenceMapper(context) { + return function (t) { + for (var i = 0; i < context.typeParameters.length; i++) { + if (t === context.typeParameters[i]) { + 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 /* TypeParameter */); + 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) { + if (signature.typeParameters && !eraseTypeParameters) { + var 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 & 67108864 /* Instantiated */) { + var links = getSymbolLinks(symbol); + symbol = links.target; + mapper = combineTypeMappers(links.mapper, mapper); + } + var result = createSymbol(67108864 /* Instantiated */ | 268435456 /* Transient */ | 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 /* Anonymous */, type.symbol); + result.properties = instantiateList(getPropertiesOfObjectType(type), mapper, instantiateSymbol); + result.members = createSymbolTable(result.properties); + result.callSignatures = instantiateList(getSignaturesOfType(type, 0 /* Call */), mapper, instantiateSignature); + result.constructSignatures = instantiateList(getSignaturesOfType(type, 1 /* Construct */), mapper, instantiateSignature); + var stringIndexType = getIndexTypeOfType(type, 0 /* String */); + var numberIndexType = getIndexTypeOfType(type, 1 /* Number */); + 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 /* TypeParameter */) { + return mapper(type); + } + if (type.flags & 32768 /* Anonymous */) { + return type.symbol && type.symbol.flags & (16 /* Function */ | 8192 /* Method */ | 2048 /* TypeLiteral */ | 4096 /* ObjectLiteral */) ? instantiateAnonymousType(type, mapper) : type; + } + if (type.flags & 4096 /* Reference */) { + return createTypeReference(type.target, instantiateList(type.typeArguments, mapper, instantiateType)); + } + if (type.flags & 8192 /* Tuple */) { + return createTupleType(instantiateList(type.elementTypes, mapper, instantiateType)); + } + if (type.flags & 16384 /* Union */) { + return getUnionType(instantiateList(type.types, mapper, instantiateType), true); + } + } + return type; + } + function isContextSensitiveExpression(node) { + switch (node.kind) { + case 152 /* FunctionExpression */: + case 153 /* ArrowFunction */: + return !node.typeParameters && !ts.forEach(node.parameters, function (p) { return p.type; }); + case 142 /* ObjectLiteral */: + return ts.forEach(node.properties, function (p) { return p.kind === 143 /* PropertyAssignment */ && isContextSensitiveExpression(p.initializer); }); + case 141 /* ArrayLiteral */: + return ts.forEach(node.elements, function (e) { return isContextSensitiveExpression(e); }); + case 157 /* ConditionalExpression */: + return isContextSensitiveExpression(node.whenTrue) || isContextSensitiveExpression(node.whenFalse); + case 156 /* BinaryExpression */: + return node.operator === 48 /* BarBarToken */ && (isContextSensitiveExpression(node.left) || isContextSensitiveExpression(node.right)); + } + return false; + } + function getTypeWithoutConstructors(type) { + if (type.flags & 48128 /* ObjectType */) { + var resolved = resolveObjectOrUnionTypeMembers(type); + if (resolved.constructSignatures.length) { + var result = createObjectType(32768 /* Anonymous */, 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 /* True */ : 0 /* False */; + } + 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; + 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 (containingMessageChain) { + errorInfo = ts.concatenateDiagnosticMessageChains(containingMessageChain, errorInfo); + } + addDiagnostic(ts.createDiagnosticForNodeFromMessageChain(errorNode, errorInfo, program.getCompilerHost().getNewLine())); + } + return result !== 0 /* False */; + function reportError(message, arg0, arg1, arg2) { + errorInfo = ts.chainDiagnosticMessages(errorInfo, message, arg0, arg1, arg2); + } + function isRelatedTo(source, target, reportErrors, headMessage) { + var result; + if (relation === identityRelation) { + if (source === target) + return -1 /* True */; + } + else { + if (source === target) + return -1 /* True */; + if (target.flags & 1 /* Any */) + return -1 /* True */; + if (source === undefinedType) + return -1 /* True */; + if (source === nullType && target !== undefinedType) + return -1 /* True */; + if (source.flags & 128 /* Enum */ && target === numberType) + return -1 /* True */; + if (source.flags & 256 /* StringLiteral */ && target === stringType) + return -1 /* True */; + if (relation === assignableRelation) { + if (source.flags & 1 /* Any */) + return -1 /* True */; + if (source === numberType && target.flags & 128 /* Enum */) + return -1 /* True */; + } + } + if (source.flags & 16384 /* Union */) { + if (result = unionTypeRelatedToType(source, target, reportErrors)) { + return result; + } + } + else if (target.flags & 16384 /* Union */) { + if (result = typeRelatedToUnionType(source, target, reportErrors)) { + return result; + } + } + else if (source.flags & 512 /* TypeParameter */ && target.flags & 512 /* TypeParameter */) { + if (result = typeParameterRelatedTo(source, target, reportErrors)) { + return result; + } + } + else { + var saveErrorInfo = errorInfo; + if (source.flags & 4096 /* Reference */ && target.flags & 4096 /* Reference */ && 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 /* ObjectType */ && target.flags & 48128 /* ObjectType */ && (result = objectTypeRelatedTo(sourceOrApparentType, target, reportStructuralErrors))) { + errorInfo = saveErrorInfo; + return result; + } + } + if (reportErrors) { + headMessage = headMessage || ts.Diagnostics.Type_0_is_not_assignable_to_type_1; + reportError(headMessage, typeToString(source), typeToString(target)); + } + return 0 /* False */; + } + 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 /* False */; + } + function unionTypeRelatedToType(source, target, reportErrors) { + var result = -1 /* True */; + var sourceTypes = source.types; + for (var i = 0, len = sourceTypes.length; i < len; i++) { + var related = isRelatedTo(sourceTypes[i], target, reportErrors); + if (!related) { + return 0 /* False */; + } + result &= related; + } + return result; + } + function typesRelatedTo(sources, targets, reportErrors) { + var result = -1 /* True */; + for (var i = 0, len = sources.length; i < len; i++) { + var related = isRelatedTo(sources[i], targets[i], reportErrors); + if (!related) { + return 0 /* False */; + } + result &= related; + } + return result; + } + function typeParameterRelatedTo(source, target, reportErrors) { + if (relation === identityRelation) { + if (source.symbol.name !== target.symbol.name) { + return 0 /* False */; + } + if (source.constraint === target.constraint) { + return -1 /* True */; + } + if (source.constraint === noConstraintType || target.constraint === noConstraintType) { + return 0 /* False */; + } + return isRelatedTo(source.constraint, target.constraint, reportErrors); + } + else { + while (true) { + var constraint = getConstraintOfTypeParameter(source); + if (constraint === target) + return -1 /* True */; + if (!(constraint && constraint.flags & 512 /* TypeParameter */)) + break; + source = constraint; + } + return 0 /* False */; + } + } + function objectTypeRelatedTo(source, target, reportErrors) { + if (overflow) { + return 0 /* False */; + } + var id = source.id + "," + target.id; + var related = relation[id]; + if (related !== undefined) { + return related ? -1 /* True */ : 0 /* False */; + } + if (depth > 0) { + for (var i = 0; i < depth; i++) { + if (maybeStack[i][id]) { + return 1 /* Maybe */; + } + } + if (depth === 100) { + overflow = true; + return 0 /* False */; + } + } + else { + sourceStack = []; + targetStack = []; + maybeStack = []; + expandingFlags = 0; + } + sourceStack[depth] = source; + targetStack[depth] = target; + maybeStack[depth] = {}; + maybeStack[depth][id] = true; + depth++; + var saveExpandingFlags = expandingFlags; + if (!(expandingFlags & 1) && isDeeplyNestedGeneric(source, sourceStack)) + expandingFlags |= 1; + if (!(expandingFlags & 2) && isDeeplyNestedGeneric(target, targetStack)) + expandingFlags |= 2; + if (expandingFlags === 3) { + var result = 1 /* Maybe */; + } + else { + var result = propertiesRelatedTo(source, target, reportErrors); + if (result) { + result &= signaturesRelatedTo(source, target, 0 /* Call */, reportErrors); + if (result) { + result &= signaturesRelatedTo(source, target, 1 /* Construct */, 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 /* True */ || depth === 0 ? relation : maybeStack[depth - 1]; + for (var p in maybeCache) { + destinationCache[p] = maybeCache[p]; + } + } + else { + relation[id] = false; + } + return result; + } + function isDeeplyNestedGeneric(type, stack) { + if (type.flags & 4096 /* Reference */ && depth >= 10) { + var target = type.target; + var count = 0; + for (var i = 0; i < depth; i++) { + var t = stack[i]; + if (t.flags & 4096 /* Reference */ && t.target === target) { + count++; + if (count >= 10) + return true; + } + } + } + return false; + } + function propertiesRelatedTo(source, target, reportErrors) { + if (relation === identityRelation) { + return propertiesIdenticalTo(source, target); + } + var result = -1 /* True */; + var properties = getPropertiesOfObjectType(target); + for (var i = 0; i < properties.length; i++) { + var targetProp = properties[i]; + var sourceProp = getPropertyOfType(source, targetProp.name); + if (sourceProp !== targetProp) { + if (!sourceProp) { + if (relation === subtypeRelation || !isOptionalProperty(targetProp)) { + if (reportErrors) { + reportError(ts.Diagnostics.Property_0_is_missing_in_type_1, symbolToString(targetProp), typeToString(source)); + } + return 0 /* False */; + } + } + else if (!(targetProp.flags & 536870912 /* Prototype */)) { + var sourceFlags = getDeclarationFlagsFromSymbol(sourceProp); + var targetFlags = getDeclarationFlagsFromSymbol(targetProp); + if (sourceFlags & 32 /* Private */ || targetFlags & 32 /* Private */) { + if (sourceProp.valueDeclaration !== targetProp.valueDeclaration) { + if (reportErrors) { + if (sourceFlags & 32 /* Private */ && targetFlags & 32 /* Private */) { + 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 /* Private */ ? source : target), typeToString(sourceFlags & 32 /* Private */ ? target : source)); + } + } + return 0 /* False */; + } + } + else if (targetFlags & 64 /* Protected */) { + var sourceDeclaredInClass = sourceProp.parent && sourceProp.parent.flags & 32 /* Class */; + 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 /* False */; + } + } + else if (sourceFlags & 64 /* Protected */) { + 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 /* False */; + } + 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 /* False */; + } + result &= related; + if (isOptionalProperty(sourceProp) && !isOptionalProperty(targetProp)) { + 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 /* False */; + } + } + } + } + return result; + } + function propertiesIdenticalTo(source, target) { + var sourceProperties = getPropertiesOfObjectType(source); + var targetProperties = getPropertiesOfObjectType(target); + if (sourceProperties.length !== targetProperties.length) { + return 0 /* False */; + } + var result = -1 /* True */; + for (var i = 0, len = sourceProperties.length; i < len; ++i) { + var sourceProp = sourceProperties[i]; + var targetProp = getPropertyOfObjectType(target, sourceProp.name); + if (!targetProp) { + return 0 /* False */; + } + var related = compareProperties(sourceProp, targetProp, isRelatedTo); + if (!related) { + return 0 /* False */; + } + 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 /* True */; + } + var sourceSignatures = getSignaturesOfType(source, kind); + var targetSignatures = getSignaturesOfType(target, kind); + var result = -1 /* True */; + var saveErrorInfo = errorInfo; + outer: for (var i = 0; i < targetSignatures.length; i++) { + var t = targetSignatures[i]; + if (!t.hasStringLiterals || target.flags & 65536 /* FromSignature */) { + var localErrors = reportErrors; + for (var j = 0; j < sourceSignatures.length; j++) { + var s = sourceSignatures[j]; + if (!s.hasStringLiterals || source.flags & 65536 /* FromSignature */) { + var related = signatureRelatedTo(s, t, localErrors); + if (related) { + result &= related; + errorInfo = saveErrorInfo; + continue outer; + } + localErrors = false; + } + } + return 0 /* False */; + } + } + return result; + } + function signatureRelatedTo(source, target, reportErrors) { + if (source === target) { + return -1 /* True */; + } + if (!target.hasRestParameter && source.minArgumentCount > target.parameters.length) { + return 0 /* False */; + } + 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 /* True */; + for (var i = 0; i < checkCount; i++) { + var s = i < sourceMax ? getTypeOfSymbol(source.parameters[i]) : getRestTypeOfSignature(source); + var t = i < targetMax ? getTypeOfSymbol(target.parameters[i]) : getRestTypeOfSignature(target); + var saveErrorInfo = errorInfo; + var related = isRelatedTo(s, t, reportErrors); + if (!related) { + related = isRelatedTo(t, s, 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 /* False */; + } + 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 /* False */; + } + var result = -1 /* True */; + for (var i = 0, len = sourceSignatures.length; i < len; ++i) { + var related = compareSignatures(sourceSignatures[i], targetSignatures[i], true, isRelatedTo); + if (!related) { + return 0 /* False */; + } + result &= related; + } + return result; + } + function stringIndexTypesRelatedTo(source, target, reportErrors) { + if (relation === identityRelation) { + return indexTypesIdenticalTo(0 /* String */, source, target); + } + var targetType = getIndexTypeOfType(target, 0 /* String */); + if (targetType) { + var sourceType = getIndexTypeOfType(source, 0 /* String */); + if (!sourceType) { + if (reportErrors) { + reportError(ts.Diagnostics.Index_signature_is_missing_in_type_0, typeToString(source)); + } + return 0 /* False */; + } + var related = isRelatedTo(sourceType, targetType, reportErrors); + if (!related) { + if (reportErrors) { + reportError(ts.Diagnostics.Index_signatures_are_incompatible); + } + return 0 /* False */; + } + return related; + } + return -1 /* True */; + } + function numberIndexTypesRelatedTo(source, target, reportErrors) { + if (relation === identityRelation) { + return indexTypesIdenticalTo(1 /* Number */, source, target); + } + var targetType = getIndexTypeOfType(target, 1 /* Number */); + if (targetType) { + var sourceStringType = getIndexTypeOfType(source, 0 /* String */); + var sourceNumberType = getIndexTypeOfType(source, 1 /* Number */); + if (!(sourceStringType || sourceNumberType)) { + if (reportErrors) { + reportError(ts.Diagnostics.Index_signature_is_missing_in_type_0, typeToString(source)); + } + return 0 /* False */; + } + if (sourceStringType && sourceNumberType) { + var related = isRelatedTo(sourceStringType, targetType, false) || isRelatedTo(sourceNumberType, targetType, reportErrors); + } + else { + var related = isRelatedTo(sourceStringType || sourceNumberType, targetType, reportErrors); + } + if (!related) { + if (reportErrors) { + reportError(ts.Diagnostics.Index_signatures_are_incompatible); + } + return 0 /* False */; + } + return related; + } + return -1 /* True */; + } + function indexTypesIdenticalTo(indexKind, source, target) { + var targetType = getIndexTypeOfType(target, indexKind); + var sourceType = getIndexTypeOfType(source, indexKind); + if (!sourceType && !targetType) { + return -1 /* True */; + } + if (sourceType && targetType) { + return isRelatedTo(sourceType, targetType); + } + return 0 /* False */; + } + } + function isPropertyIdenticalTo(sourceProp, targetProp) { + return compareProperties(sourceProp, targetProp, compareTypes) !== 0 /* False */; + } + function compareProperties(sourceProp, targetProp, compareTypes) { + if (sourceProp === targetProp) { + return -1 /* True */; + } + var sourcePropAccessibility = getDeclarationFlagsFromSymbol(sourceProp) & (32 /* Private */ | 64 /* Protected */); + var targetPropAccessibility = getDeclarationFlagsFromSymbol(targetProp) & (32 /* Private */ | 64 /* Protected */); + if (sourcePropAccessibility !== targetPropAccessibility) { + return 0 /* False */; + } + if (sourcePropAccessibility) { + if (getTargetSymbol(sourceProp) !== getTargetSymbol(targetProp)) { + return 0 /* False */; + } + } + else { + if (isOptionalProperty(sourceProp) !== isOptionalProperty(targetProp)) { + return 0 /* False */; + } + } + return compareTypes(getTypeOfSymbol(sourceProp), getTypeOfSymbol(targetProp)); + } + function compareSignatures(source, target, compareReturnTypes, compareTypes) { + if (source === target) { + return -1 /* True */; + } + if (source.parameters.length !== target.parameters.length || source.minArgumentCount !== target.minArgumentCount || source.hasRestParameter !== target.hasRestParameter) { + return 0 /* False */; + } + var result = -1 /* True */; + if (source.typeParameters && target.typeParameters) { + if (source.typeParameters.length !== target.typeParameters.length) { + return 0 /* False */; + } + for (var i = 0, len = source.typeParameters.length; i < len; ++i) { + var related = compareTypes(source.typeParameters[i], target.typeParameters[i]); + if (!related) { + return 0 /* False */; + } + result &= related; + } + } + else if (source.typeParameters || source.typeParameters) { + return 0 /* False */; + } + 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 /* False */; + } + result &= related; + } + if (compareReturnTypes) { + result &= compareTypes(getReturnTypeOfSignature(source), getReturnTypeOfSignature(target)); + } + return result; + } + function isSupertypeOfEach(candidate, types) { + for (var i = 0, len = types.length; i < len; i++) { + if (candidate !== types[i] && !isTypeSubtypeOf(types[i], 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]; + } + } + 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 isTypeOfObjectLiteral(type) { + return (type.flags & 32768 /* Anonymous */) && type.symbol && (type.symbol.flags & 4096 /* ObjectLiteral */) ? true : false; + } + function isArrayType(type) { + return type.flags & 4096 /* Reference */ && type.target === globalArrayType; + } + function getInnermostTypeOfNestedArrayTypes(type) { + while (isArrayType(type)) { + type = type.typeArguments[0]; + } + return type; + } + function getWidenedType(type, suppressNoImplicitAnyErrors) { + if (type.flags & (32 /* Undefined */ | 64 /* Null */)) { + return anyType; + } + if (type.flags & 16384 /* Union */) { + return getWidenedTypeOfUnion(type); + } + if (isTypeOfObjectLiteral(type)) { + return getWidenedTypeOfObjectLiteral(type); + } + if (isArrayType(type)) { + return getWidenedTypeOfArrayLiteral(type); + } + return type; + function getWidenedTypeOfUnion(type) { + return getUnionType(ts.map(type.types, function (t) { return getWidenedType(t, suppressNoImplicitAnyErrors); })); + } + function getWidenedTypeOfObjectLiteral(type) { + var properties = getPropertiesOfObjectType(type); + if (properties.length) { + var widenedTypes = []; + var propTypeWasWidened = false; + ts.forEach(properties, function (p) { + var propType = getTypeOfSymbol(p); + var widenedType = getWidenedType(propType); + if (propType !== widenedType) { + propTypeWasWidened = true; + if (!suppressNoImplicitAnyErrors && compilerOptions.noImplicitAny && getInnermostTypeOfNestedArrayTypes(widenedType) === anyType) { + error(p.valueDeclaration, ts.Diagnostics.Object_literal_s_property_0_implicitly_has_an_1_type, p.name, typeToString(widenedType)); + } + } + widenedTypes.push(widenedType); + }); + if (propTypeWasWidened) { + var members = {}; + var index = 0; + ts.forEach(properties, function (p) { + var symbol = createSymbol(4 /* Property */ | 268435456 /* Transient */ | p.flags, p.name); + symbol.declarations = p.declarations; + symbol.parent = p.parent; + symbol.type = widenedTypes[index++]; + symbol.target = p; + if (p.valueDeclaration) + symbol.valueDeclaration = p.valueDeclaration; + members[symbol.name] = symbol; + }); + var stringIndexType = getIndexTypeOfType(type, 0 /* String */); + var numberIndexType = getIndexTypeOfType(type, 1 /* Number */); + if (stringIndexType) + stringIndexType = getWidenedType(stringIndexType); + if (numberIndexType) + numberIndexType = getWidenedType(numberIndexType); + type = createAnonymousType(type.symbol, members, emptyArray, emptyArray, stringIndexType, numberIndexType); + } + } + return type; + } + function getWidenedTypeOfArrayLiteral(type) { + var elementType = type.typeArguments[0]; + var widenedType = getWidenedType(elementType, suppressNoImplicitAnyErrors); + type = elementType !== widenedType ? createArrayType(widenedType) : type; + return 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++) { + inferences.push({ primary: undefined, secondary: undefined }); + } + return { + typeParameters: typeParameters, + inferUnionTypes: inferUnionTypes, + inferenceCount: 0, + 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 = type.target; + var count = 0; + for (var i = 0; i < depth; i++) { + var t = stack[i]; + if (t.flags & 4096 /* Reference */ && t.target === target) + count++; + } + return count < 5; + } + return true; + } + function inferFromTypes(source, target) { + if (target.flags & 512 /* TypeParameter */) { + var typeParameters = context.typeParameters; + for (var i = 0; i < typeParameters.length; i++) { + if (target === typeParameters[i]) { + var inferences = context.inferences[i]; + var candidates = inferiority ? inferences.secondary || (inferences.secondary = []) : inferences.primary || (inferences.primary = []); + if (!ts.contains(candidates, source)) + candidates.push(source); + break; + } + } + } + else if (source.flags & 4096 /* Reference */ && target.flags & 4096 /* Reference */ && 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 /* Union */) { + 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 /* TypeParameter */ && 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 /* Union */) { + var sourceTypes = source.types; + for (var i = 0; i < sourceTypes.length; i++) { + inferFromTypes(sourceTypes[i], target); + } + } + else if (source.flags & 48128 /* ObjectType */ && (target.flags & (4096 /* Reference */ | 8192 /* Tuple */) || (target.flags & 32768 /* Anonymous */) && target.symbol && target.symbol.flags & (8192 /* Method */ | 2048 /* TypeLiteral */))) { + 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 /* Call */); + inferFromSignatures(source, target, 1 /* Construct */); + inferFromIndexTypes(source, target, 0 /* String */, 0 /* String */); + inferFromIndexTypes(source, target, 1 /* Number */, 1 /* Number */); + inferFromIndexTypes(source, target, 0 /* String */, 1 /* Number */); + 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]; + if (!inferredType) { + var inferences = getInferenceCandidates(context, index); + if (inferences.length) { + var unionOrSuperType = context.inferUnionTypes ? getUnionType(inferences) : getCommonSupertype(inferences); + inferredType = unionOrSuperType ? getWidenedType(unionOrSuperType) : inferenceFailureType; + } + else { + inferredType = emptyObjectType; + } + if (inferredType !== inferenceFailureType) { + var constraint = getConstraintOfTypeParameter(context.typeParameters[index]); + inferredType = constraint && !isTypeAssignableTo(inferredType, constraint) ? constraint : inferredType; + } + 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 = resolveName(node, node.text, 107455 /* Value */ | 4194304 /* ExportValue */, ts.Diagnostics.Cannot_find_name_0, node) || unknownSymbol; + } + return links.resolvedSymbol; + } + function isInTypeQuery(node) { + while (node) { + switch (node.kind) { + case 135 /* TypeQuery */: + return true; + case 63 /* Identifier */: + case 121 /* QualifiedName */: + node = node.parent; + continue; + default: + return false; + } + } + ts.Debug.fail("should not get here"); + } + function subtractPrimitiveTypes(type, subtractMask) { + if (type.flags & 16384 /* Union */) { + var types = type.types; + if (ts.forEach(types, function (t) { return t.flags & subtractMask; })) { + return getUnionType(ts.filter(types, function (t) { return !(t.flags & subtractMask); })); + } + } + return type; + } + 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.operator >= 51 /* FirstAssignment */ && node.operator <= 62 /* LastAssignment */) { + var n = node.left; + while (n.kind === 151 /* ParenExpression */) { + n = n.expression; + } + if (n.kind === 63 /* Identifier */ && getResolvedSymbol(n) === symbol) { + return true; + } + } + return ts.forEachChild(node, isAssignedIn); + } + function isAssignedInVariableDeclaration(node) { + if (getSymbolOfNode(node) === symbol && node.initializer) { + return true; + } + return ts.forEachChild(node, isAssignedIn); + } + function isAssignedIn(node) { + switch (node.kind) { + case 156 /* BinaryExpression */: + return isAssignedInBinaryExpression(node); + case 185 /* VariableDeclaration */: + return isAssignedInVariableDeclaration(node); + case 141 /* ArrayLiteral */: + case 142 /* ObjectLiteral */: + case 145 /* PropertyAccess */: + case 146 /* IndexedAccess */: + case 147 /* CallExpression */: + case 148 /* NewExpression */: + case 150 /* TypeAssertion */: + case 151 /* ParenExpression */: + case 154 /* PrefixOperator */: + case 155 /* PostfixOperator */: + case 157 /* ConditionalExpression */: + case 162 /* Block */: + case 163 /* VariableStatement */: + case 165 /* ExpressionStatement */: + case 166 /* IfStatement */: + case 167 /* DoStatement */: + case 168 /* WhileStatement */: + case 169 /* ForStatement */: + case 170 /* ForInStatement */: + case 173 /* ReturnStatement */: + case 174 /* WithStatement */: + case 175 /* SwitchStatement */: + case 176 /* CaseClause */: + case 177 /* DefaultClause */: + case 178 /* LabeledStatement */: + case 179 /* ThrowStatement */: + case 180 /* TryStatement */: + case 181 /* TryBlock */: + case 182 /* CatchBlock */: + case 183 /* FinallyBlock */: + return ts.forEachChild(node, isAssignedIn); + } + return false; + } + } + function getNarrowedTypeOfSymbol(symbol, node) { + var type = getTypeOfSymbol(symbol); + if (node && (symbol.flags & 3 /* Variable */ && type.flags & 65025 /* Structured */)) { + loop: while (true) { + var child = node; + node = node.parent; + var narrowedType = type; + switch (node.kind) { + case 166 /* IfStatement */: + if (child !== node.expression) { + narrowedType = narrowType(type, node.expression, child === node.thenStatement); + } + break; + case 157 /* ConditionalExpression */: + if (child !== node.condition) { + narrowedType = narrowType(type, node.condition, child === node.whenTrue); + } + break; + case 156 /* BinaryExpression */: + if (child === node.right) { + if (node.operator === 47 /* AmpersandAmpersandToken */) { + narrowedType = narrowType(type, node.left, true); + } + else if (node.operator === 48 /* BarBarToken */) { + narrowedType = narrowType(type, node.left, false); + } + } + break; + case 197 /* SourceFile */: + case 192 /* ModuleDeclaration */: + case 186 /* FunctionDeclaration */: + case 125 /* Method */: + case 127 /* GetAccessor */: + case 128 /* SetAccessor */: + case 126 /* Constructor */: + break loop; + } + if (narrowedType !== type && isTypeSubtypeOf(narrowedType, type)) { + if (isVariableAssignedWithin(symbol, node)) { + break; + } + type = narrowedType; + } + } + } + return type; + function narrowTypeByEquality(type, expr, assumeTrue) { + var left = expr.left; + var right = expr.right; + if (left.kind !== 154 /* PrefixOperator */ || left.operator !== 95 /* TypeOfKeyword */ || left.operand.kind !== 63 /* Identifier */ || right.kind !== 7 /* StringLiteral */ || getResolvedSymbol(left.operand) !== symbol) { + return type; + } + var t = right.text; + var checkType = t === "string" ? stringType : t === "number" ? numberType : t === "boolean" ? booleanType : emptyObjectType; + if (expr.operator === 30 /* ExclamationEqualsEqualsToken */) { + assumeTrue = !assumeTrue; + } + if (assumeTrue) { + return checkType === emptyObjectType ? subtractPrimitiveTypes(type, 2 /* String */ | 4 /* Number */ | 8 /* Boolean */) : checkType; + } + else { + return checkType === emptyObjectType ? type : subtractPrimitiveTypes(type, checkType.flags); + } + } + 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 (!assumeTrue || expr.left.kind !== 63 /* Identifier */ || 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 prototypeType = getTypeOfSymbol(prototypeProperty); + return isTypeSubtypeOf(prototypeType, type) ? prototypeType : type; + } + function narrowType(type, expr, assumeTrue) { + switch (expr.kind) { + case 151 /* ParenExpression */: + return narrowType(type, expr.expression, assumeTrue); + case 156 /* BinaryExpression */: + var operator = expr.operator; + if (operator === 29 /* EqualsEqualsEqualsToken */ || operator === 30 /* ExclamationEqualsEqualsToken */) { + return narrowTypeByEquality(type, expr, assumeTrue); + } + else if (operator === 47 /* AmpersandAmpersandToken */) { + return narrowTypeByAnd(type, expr, assumeTrue); + } + else if (operator === 48 /* BarBarToken */) { + return narrowTypeByOr(type, expr, assumeTrue); + } + else if (operator === 85 /* InstanceOfKeyword */) { + return narrowTypeByInstanceof(type, expr, assumeTrue); + } + break; + case 154 /* PrefixOperator */: + if (expr.operator === 45 /* ExclamationToken */) { + return narrowType(type, expr.operand, !assumeTrue); + } + break; + } + return type; + } + } + function checkIdentifier(node) { + var symbol = getResolvedSymbol(node); + if (symbol.flags & 33554432 /* Import */) { + getSymbolLinks(symbol).referenced = getSymbolLinks(symbol).referenced || (!isInTypeQuery(node) && !isConstEnumOrConstEnumOnlyModule(resolveImport(symbol))); + } + checkCollisionWithCapturedSuperVariable(node, node); + checkCollisionWithCapturedThisVariable(node, node); + checkCollisionWithIndexVariableInGeneratedCode(node, node); + return getNarrowedTypeOfSymbol(getExportSymbolOfValueSymbolIfExported(symbol), node); + } + function captureLexicalThis(node, container) { + var classNode = container.parent && container.parent.kind === 188 /* ClassDeclaration */ ? container.parent : undefined; + getNodeLinks(node).flags |= 2 /* LexicalThis */; + if (container.kind === 124 /* Property */ || container.kind === 126 /* Constructor */) { + getNodeLinks(classNode).flags |= 4 /* CaptureThis */; + } + else { + getNodeLinks(container).flags |= 4 /* CaptureThis */; + } + } + function checkThisExpression(node) { + var container = ts.getThisContainer(node, true); + var needToCaptureLexicalThis = false; + if (container.kind === 153 /* ArrowFunction */) { + container = ts.getThisContainer(container, false); + needToCaptureLexicalThis = true; + } + switch (container.kind) { + case 192 /* ModuleDeclaration */: + error(node, ts.Diagnostics.this_cannot_be_referenced_in_a_module_body); + break; + case 191 /* EnumDeclaration */: + error(node, ts.Diagnostics.this_cannot_be_referenced_in_current_location); + break; + case 126 /* Constructor */: + if (isInConstructorArgumentInitializer(node, container)) { + error(node, ts.Diagnostics.this_cannot_be_referenced_in_constructor_arguments); + } + break; + case 124 /* Property */: + if (container.flags & 128 /* Static */) { + error(node, ts.Diagnostics.this_cannot_be_referenced_in_a_static_property_initializer); + } + break; + } + if (needToCaptureLexicalThis) { + captureLexicalThis(node, container); + } + var classNode = container.parent && container.parent.kind === 188 /* ClassDeclaration */ ? container.parent : undefined; + if (classNode) { + var symbol = getSymbolOfNode(classNode); + return container.flags & 128 /* Static */ ? getTypeOfSymbol(symbol) : getDeclaredTypeOfSymbol(symbol); + } + return anyType; + } + function getSuperContainer(node) { + while (true) { + node = node.parent; + if (!node) + return node; + switch (node.kind) { + case 186 /* FunctionDeclaration */: + case 152 /* FunctionExpression */: + case 153 /* ArrowFunction */: + case 124 /* Property */: + case 125 /* Method */: + case 126 /* Constructor */: + case 127 /* GetAccessor */: + case 128 /* SetAccessor */: + return node; + } + } + } + function isInConstructorArgumentInitializer(node, constructorDecl) { + for (var n = node; n && n !== constructorDecl; n = n.parent) { + if (n.kind === 123 /* Parameter */) { + return true; + } + } + return false; + } + function checkSuperExpression(node) { + var isCallExpression = node.parent.kind === 147 /* CallExpression */ && node.parent.func === node; + var enclosingClass = ts.getAncestor(node, 188 /* ClassDeclaration */); + var baseClass; + if (enclosingClass && enclosingClass.baseType) { + 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 = getSuperContainer(node); + if (container) { + var canUseSuperExpression = false; + if (isCallExpression) { + canUseSuperExpression = container.kind === 126 /* Constructor */; + } + else { + var needToCaptureLexicalThis = false; + while (container && container.kind === 153 /* ArrowFunction */) { + container = getSuperContainer(container); + needToCaptureLexicalThis = true; + } + if (container && container.parent && container.parent.kind === 188 /* ClassDeclaration */) { + if (container.flags & 128 /* Static */) { + canUseSuperExpression = container.kind === 125 /* Method */ || container.kind === 127 /* GetAccessor */ || container.kind === 128 /* SetAccessor */; + } + else { + canUseSuperExpression = container.kind === 125 /* Method */ || container.kind === 127 /* GetAccessor */ || container.kind === 128 /* SetAccessor */ || container.kind === 124 /* Property */ || container.kind === 126 /* Constructor */; + } + } + } + if (canUseSuperExpression) { + var returnType; + if ((container.flags & 128 /* Static */) || isCallExpression) { + getNodeLinks(node).flags |= 32 /* SuperStatic */; + returnType = getTypeOfSymbol(baseClass.symbol); + } + else { + getNodeLinks(node).flags |= 16 /* SuperInstance */; + returnType = baseClass; + } + if (container.kind === 126 /* Constructor */ && 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 (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) { + var func = parameter.parent; + if (func.kind === 152 /* FunctionExpression */ || func.kind === 153 /* ArrowFunction */) { + if (isContextSensitiveExpression(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 === 123 /* Parameter */) { + return getContextuallyTypedParameterType(declaration); + } + } + return undefined; + } + function getContextualTypeForReturnExpression(node) { + var func = ts.getContainingFunction(node); + if (func) { + if (func.type || func.kind === 126 /* Constructor */ || func.kind === 127 /* GetAccessor */ && getSetAccessorTypeAnnotationNode(getDeclarationOfKind(func.symbol, 128 /* SetAccessor */))) { + return getReturnTypeOfSignature(getSignatureFromDeclaration(func)); + } + var signature = getContextualSignature(func); + if (signature) { + return getReturnTypeOfSignature(signature); + } + } + return undefined; + } + function getContextualTypeForArgument(node) { + var callExpression = node.parent; + var argIndex = ts.indexOf(callExpression.arguments, node); + if (argIndex >= 0) { + var signature = getResolvedSignature(callExpression); + return getTypeAtPosition(signature, argIndex); + } + return undefined; + } + function getContextualTypeForBinaryOperand(node) { + var binaryExpression = node.parent; + var operator = binaryExpression.operator; + if (operator >= 51 /* FirstAssignment */ && operator <= 62 /* LastAssignment */) { + if (node === binaryExpression.right) { + return checkExpression(binaryExpression.left); + } + } + else if (operator === 48 /* BarBarToken */) { + 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 /* Union */)) { + return mapper(type); + } + var types = type.types; + var mappedType; + var mappedTypes; + for (var i = 0; i < types.length; i++) { + var t = mapper(types[i]); + 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 contextualTypeIsTupleType(type) { + return !!(type.flags & 16384 /* Union */ ? ts.forEach(type.types, function (t) { return getPropertyOfObjectType(t, "0"); }) : getPropertyOfObjectType(type, "0")); + } + function contextualTypeHasIndexSignature(type, kind) { + return !!(type.flags & 16384 /* Union */ ? ts.forEach(type.types, function (t) { return getIndexTypeOfObjectOrUnionType(t, kind); }) : getIndexTypeOfObjectOrUnionType(type, kind)); + } + function getContextualTypeForPropertyExpression(node) { + var declaration = node.parent; + var objectLiteral = declaration.parent; + var type = getContextualType(objectLiteral); + var name = declaration.name.text; + if (type && name) { + return getTypeOfPropertyOfContextualType(type, name) || isNumericName(name) && getIndexTypeOfContextualType(type, 1 /* Number */) || getIndexTypeOfContextualType(type, 0 /* String */); + } + 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 /* Number */); + } + 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 185 /* VariableDeclaration */: + case 123 /* Parameter */: + case 124 /* Property */: + return getContextualTypeForInitializerExpression(node); + case 153 /* ArrowFunction */: + case 173 /* ReturnStatement */: + return getContextualTypeForReturnExpression(node); + case 147 /* CallExpression */: + case 148 /* NewExpression */: + return getContextualTypeForArgument(node); + case 150 /* TypeAssertion */: + return getTypeFromTypeNode(parent.type); + case 156 /* BinaryExpression */: + return getContextualTypeForBinaryOperand(node); + case 143 /* PropertyAssignment */: + return getContextualTypeForPropertyExpression(node); + case 141 /* ArrayLiteral */: + return getContextualTypeForElementExpression(node); + case 157 /* ConditionalExpression */: + return getContextualTypeForConditionalOperand(node); + } + return undefined; + } + function getNonGenericSignature(type) { + var signatures = getSignaturesOfObjectOrUnionType(type, 0 /* Call */); + if (signatures.length === 1) { + var signature = signatures[0]; + if (!signature.typeParameters) { + return signature; + } + } + } + function getContextualSignature(node) { + var type = getContextualType(node); + if (!type) { + return undefined; + } + if (!(type.flags & 16384 /* Union */)) { + return getNonGenericSignature(type); + } + var signatureList; + var types = type.types; + for (var i = 0; i < types.length; i++) { + if (signatureList && getSignaturesOfObjectOrUnionType(types[i], 0 /* Call */).length > 1) { + return undefined; + } + var signature = getNonGenericSignature(types[i]); + 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 checkArrayLiteral(node, contextualMapper) { + var elements = node.elements; + if (!elements.length) { + return createArrayType(undefinedType); + } + var elementTypes = ts.map(elements, function (e) { return checkExpression(e, contextualMapper); }); + var contextualType = getContextualType(node); + if (contextualType && contextualTypeIsTupleType(contextualType)) { + return createTupleType(elementTypes); + } + return createArrayType(getUnionType(elementTypes)); + } + function isNumericName(name) { + return (+name).toString() === name; + } + function checkObjectLiteral(node, contextualMapper) { + var members = node.symbol.members; + var properties = {}; + var contextualType = getContextualType(node); + for (var id in members) { + if (ts.hasProperty(members, id)) { + var member = members[id]; + if (member.flags & 4 /* Property */) { + var memberDecl = member.declarations[0]; + var type; + if (memberDecl.kind === 143 /* PropertyAssignment */) { + type = checkExpression(memberDecl.initializer, contextualMapper); + } + else { + ts.Debug.assert(memberDecl.kind === 144 /* ShorthandPropertyAssignment */); + type = checkExpression(memberDecl.name, contextualMapper); + } + var prop = createSymbol(4 /* Property */ | 268435456 /* Transient */ | 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 { + var getAccessor = getDeclarationOfKind(member, 127 /* GetAccessor */); + if (getAccessor) { + checkAccessorDeclaration(getAccessor); + } + var setAccessor = getDeclarationOfKind(member, 128 /* SetAccessor */); + if (setAccessor) { + checkAccessorDeclaration(setAccessor); + } + } + properties[member.name] = member; + } + } + var stringIndexType = getIndexType(0 /* String */); + var numberIndexType = getIndexType(1 /* Number */); + return createAnonymousType(node.symbol, properties, emptyArray, emptyArray, stringIndexType, numberIndexType); + function getIndexType(kind) { + if (contextualType && contextualTypeHasIndexSignature(contextualType, kind)) { + var propTypes = []; + for (var id in properties) { + if (ts.hasProperty(properties, id)) { + if (kind === 0 /* String */ || isNumericName(id)) { + var type = getTypeOfSymbol(properties[id]); + if (!ts.contains(propTypes, type)) { + propTypes.push(type); + } + } + } + } + return propTypes.length ? getUnionType(propTypes) : undefinedType; + } + return undefined; + } + } + function getDeclarationKindFromSymbol(s) { + return s.valueDeclaration ? s.valueDeclaration.kind : 124 /* Property */; + } + function getDeclarationFlagsFromSymbol(s) { + return s.valueDeclaration ? s.valueDeclaration.flags : s.flags & 536870912 /* Prototype */ ? 16 /* Public */ | 128 /* Static */ : 0; + } + function checkClassPropertyAccess(node, type, prop) { + var flags = getDeclarationFlagsFromSymbol(prop); + if (!(flags & (32 /* Private */ | 64 /* Protected */))) { + return; + } + var enclosingClassDeclaration = ts.getAncestor(node, 188 /* ClassDeclaration */); + var enclosingClass = enclosingClassDeclaration ? getDeclaredTypeOfSymbol(getSymbolOfNode(enclosingClassDeclaration)) : undefined; + var declaringClass = getDeclaredTypeOfSymbol(prop.parent); + if (flags & 32 /* Private */) { + if (declaringClass !== enclosingClass) { + error(node, ts.Diagnostics.Property_0_is_private_and_only_accessible_within_class_1, symbolToString(prop), typeToString(declaringClass)); + } + return; + } + if (node.left.kind === 89 /* SuperKeyword */) { + 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 /* Static */) { + return; + } + if (!(getTargetType(type).flags & (1024 /* Class */ | 2048 /* Interface */) && 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 checkPropertyAccess(node) { + var type = checkExpression(node.left); + if (type === unknownType) + return type; + if (type !== anyType) { + var apparentType = getApparentType(getWidenedType(type)); + if (apparentType === unknownType) { + return unknownType; + } + var prop = getPropertyOfType(apparentType, node.right.text); + if (!prop) { + if (node.right.text) { + error(node.right, ts.Diagnostics.Property_0_does_not_exist_on_type_1, ts.declarationNameToString(node.right), typeToString(type)); + } + return unknownType; + } + getNodeLinks(node).resolvedSymbol = prop; + if (prop.parent && prop.parent.flags & 32 /* Class */) { + if (node.left.kind === 89 /* SuperKeyword */ && getDeclarationKindFromSymbol(prop) !== 125 /* Method */) { + error(node.right, ts.Diagnostics.Only_public_and_protected_methods_of_the_base_class_are_accessible_via_the_super_keyword); + } + else { + checkClassPropertyAccess(node, type, prop); + } + } + return getTypeOfSymbol(prop); + } + return anyType; + } + function isValidPropertyAccess(node, propertyName) { + var type = checkExpression(node.left); + if (type !== unknownType && type !== anyType) { + var prop = getPropertyOfType(getWidenedType(type), propertyName); + if (prop && prop.parent && prop.parent.flags & 32 /* Class */) { + if (node.left.kind === 89 /* SuperKeyword */ && getDeclarationKindFromSymbol(prop) !== 125 /* Method */) { + return false; + } + else { + var diagnosticsCount = diagnostics.length; + checkClassPropertyAccess(node, type, prop); + return diagnostics.length === diagnosticsCount; + } + } + } + return true; + } + function checkIndexedAccess(node) { + var objectType = getApparentType(checkExpression(node.object)); + var indexType = checkExpression(node.index); + if (objectType === unknownType) + return unknownType; + if (isConstEnumObjectType(objectType) && node.index.kind !== 7 /* StringLiteral */) { + error(node.index, ts.Diagnostics.Index_expression_arguments_in_const_enums_must_be_of_type_string); + } + if (node.index.kind === 7 /* StringLiteral */ || node.index.kind === 6 /* NumericLiteral */) { + var name = node.index.text; + var prop = getPropertyOfType(objectType, name); + if (prop) { + getNodeLinks(node).resolvedSymbol = prop; + return getTypeOfSymbol(prop); + } + } + if (indexType.flags & (1 /* Any */ | 258 /* StringLike */ | 132 /* NumberLike */)) { + if (indexType.flags & (1 /* Any */ | 132 /* NumberLike */)) { + var numberIndexType = getIndexTypeOfType(objectType, 1 /* Number */); + if (numberIndexType) { + return numberIndexType; + } + } + var stringIndexType = getIndexTypeOfType(objectType, 0 /* String */); + if (stringIndexType) { + return stringIndexType; + } + if (compilerOptions.noImplicitAny && 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_or_any); + return unknownType; + } + function resolveUntypedCall(node) { + if (node.kind === 149 /* TaggedTemplateExpression */) { + checkExpression(node.template); + } + else { + ts.forEach(node.arguments, function (argument) { + checkExpression(argument); + }); + } + return anySignature; + } + function resolveErrorCall(node) { + resolveUntypedCall(node); + return unknownSignature; + } + function hasCorrectArity(node, args, signature) { + var adjustedArgCount; + var typeArguments; + var callIsIncomplete; + if (node.kind === 149 /* TaggedTemplateExpression */) { + var tagExpression = node; + adjustedArgCount = args.length; + typeArguments = undefined; + if (tagExpression.template.kind === 158 /* TemplateExpression */) { + var templateExpression = tagExpression.template; + var lastSpan = ts.lastOrUndefined(templateExpression.templateSpans); + ts.Debug.assert(lastSpan !== undefined); + callIsIncomplete = lastSpan.literal.kind === 120 /* Missing */ || ts.isUnterminatedTemplateEnd(lastSpan.literal); + } + else { + var templateLiteral = tagExpression.template; + ts.Debug.assert(templateLiteral.kind === 9 /* NoSubstitutionTemplateLiteral */); + callIsIncomplete = ts.isUnterminatedTemplateEnd(templateLiteral); + } + } + else { + var callExpression = node; + if (!callExpression.arguments) { + ts.Debug.assert(callExpression.kind === 148 /* NewExpression */); + return signature.minArgumentCount === 0; + } + adjustedArgCount = callExpression.arguments.hasTrailingComma ? args.length + 1 : args.length; + callIsIncomplete = callExpression.arguments.end === callExpression.end; + typeArguments = callExpression.typeArguments; + } + ts.Debug.assert(adjustedArgCount !== undefined, "'adjustedArgCount' undefined"); + ts.Debug.assert(callIsIncomplete !== undefined, "'callIsIncomplete' undefined"); + return checkArity(adjustedArgCount, typeArguments, callIsIncomplete, signature); + function checkArity(adjustedArgCount, typeArguments, callIsIncomplete, signature) { + if (!signature.hasRestParameter && adjustedArgCount > signature.parameters.length) { + return false; + } + var hasRightNumberOfTypeArgs = !typeArguments || (signature.typeParameters && typeArguments.length === signature.typeParameters.length); + if (!hasRightNumberOfTypeArgs) { + return false; + } + var hasEnoughArguments = adjustedArgCount >= signature.minArgumentCount; + return callIsIncomplete || hasEnoughArguments; + } + } + function getSingleCallSignature(type) { + if (type.flags & 48128 /* ObjectType */) { + 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) { + var typeParameters = signature.typeParameters; + var context = createInferenceContext(typeParameters, false); + var mapper = createInferenceMapper(context); + for (var i = 0; i < args.length; i++) { + if (args[i].kind === 161 /* OmittedExpression */) { + continue; + } + if (!excludeArgument || excludeArgument[i] === undefined) { + var parameterType = getTypeAtPosition(signature, i); + if (i === 0 && args[i].parent.kind === 149 /* TaggedTemplateExpression */) { + inferTypes(context, globalTemplateStringsArrayType, parameterType); + continue; + } + inferTypes(context, checkExpressionWithContextualType(args[i], parameterType, mapper), parameterType); + } + } + if (excludeArgument) { + for (var i = 0; i < args.length; i++) { + if (args[i].kind === 161 /* OmittedExpression */) { + continue; + } + if (excludeArgument[i] === false) { + var parameterType = getTypeAtPosition(signature, i); + inferTypes(context, checkExpressionWithContextualType(args[i], parameterType, mapper), parameterType); + } + } + } + var inferredTypes = getInferredTypes(context); + context.failedTypeParameterIndex = ts.indexOf(inferredTypes, inferenceFailureType); + for (var i = 0; i < inferredTypes.length; i++) { + if (inferredTypes[i] === inferenceFailureType) { + inferredTypes[i] = unknownType; + } + } + return 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]; + var argType; + if (arg.kind === 161 /* OmittedExpression */) { + continue; + } + var paramType = getTypeAtPosition(signature, i); + if (i === 0 && node.kind === 149 /* TaggedTemplateExpression */) { + argType = globalTemplateStringsArrayType; + } + else { + argType = arg.kind === 7 /* StringLiteral */ && !reportErrors ? getStringLiteralType(arg) : checkExpressionWithContextualType(arg, paramType, excludeArgument && excludeArgument[i] ? identityMapper : undefined); + } + var isValidArgument = checkTypeRelatedTo(argType, paramType, relation, reportErrors ? arg : undefined, ts.Diagnostics.Argument_of_type_0_is_not_assignable_to_parameter_of_type_1); + if (!isValidArgument) { + return false; + } + } + return true; + } + function getEffectiveCallArguments(node) { + var args; + if (node.kind === 149 /* TaggedTemplateExpression */) { + var template = node.template; + args = [template]; + if (template.kind === 158 /* TemplateExpression */) { + ts.forEach(template.templateSpans, function (span) { + args.push(span.expression); + }); + } + } + else { + args = node.arguments || emptyArray; + } + return args; + } + function resolveCall(node, signatures, candidatesOutArray) { + var isTaggedTemplate = node.kind === 149 /* TaggedTemplateExpression */; + var typeArguments = isTaggedTemplate ? undefined : node.typeArguments; + ts.forEach(typeArguments, checkSourceElement); + var candidates = candidatesOutArray || []; + collectCandidates(); + 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 (isContextSensitiveExpression(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.func || node.tag, diagnosticChainHead); + } + } + else { + error(node, ts.Diagnostics.Supplied_parameters_do_not_match_any_signature_of_call_target); + } + if (!fullTypeCheck) { + for (var i = 0, n = candidates.length; i < n; i++) { + if (hasCorrectArity(node, args, candidates[i])) { + return candidates[i]; + } + } + } + return resolveErrorCall(node); + function chooseOverload(candidates, relation) { + for (var i = 0; i < candidates.length; i++) { + if (!hasCorrectArity(node, args, candidates[i])) { + continue; + } + var originalCandidate = candidates[i]; + var inferenceResult; + while (true) { + var candidate = originalCandidate; + if (candidate.typeParameters) { + var typeArgumentTypes; + var typeArgumentsAreValid; + if (typeArguments) { + typeArgumentTypes = new Array(candidate.typeParameters.length); + typeArgumentsAreValid = checkTypeArguments(candidate, typeArguments, typeArgumentTypes, false); + } + else { + inferenceResult = inferTypeArguments(candidate, args, excludeArgument); + typeArgumentsAreValid = inferenceResult.failedTypeParameterIndex < 0; + typeArgumentTypes = inferenceResult.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 = inferenceResult; + } + } + } + else { + ts.Debug.assert(originalCandidate === candidate); + candidateForArgumentError = originalCandidate; + } + } + return undefined; + } + function collectCandidates() { + var result = candidates; + var lastParent; + var lastSymbol; + var cutoffPos = 0; + var pos; + 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 = signature.declaration && signature.declaration.parent; + if (!lastSymbol || symbol === lastSymbol) { + if (lastParent && parent === lastParent) { + pos++; + } + else { + lastParent = parent; + pos = cutoffPos; + } + } + else { + pos = cutoffPos = result.length; + lastParent = parent; + } + lastSymbol = symbol; + for (var j = result.length; j > pos; j--) { + result[j] = result[j - 1]; + } + result[pos] = signature; + } + } + } + function resolveCallExpression(node, candidatesOutArray) { + if (node.func.kind === 89 /* SuperKeyword */) { + var superType = checkSuperExpression(node.func); + if (superType !== unknownType) { + return resolveCall(node, getSignaturesOfType(superType, 1 /* Construct */), candidatesOutArray); + } + return resolveUntypedCall(node); + } + var funcType = checkExpression(node.func); + var apparentType = getApparentType(funcType); + if (apparentType === unknownType) { + return resolveErrorCall(node); + } + var callSignatures = getSignaturesOfType(apparentType, 0 /* Call */); + var constructSignatures = getSignaturesOfType(apparentType, 1 /* Construct */); + if (funcType === anyType || (!callSignatures.length && !constructSignatures.length && !(funcType.flags & 16384 /* Union */) && 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) { + var expressionType = checkExpression(node.func); + 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 /* Construct */); + if (constructSignatures.length) { + return resolveCall(node, constructSignatures, candidatesOutArray); + } + var callSignatures = getSignaturesOfType(expressionType, 0 /* Call */); + 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 /* Call */); + if (tagType === anyType || (!callSignatures.length && !(tagType.flags & 16384 /* Union */) && 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 === 147 /* CallExpression */) { + links.resolvedSignature = resolveCallExpression(node, candidatesOutArray); + } + else if (node.kind === 148 /* NewExpression */) { + links.resolvedSignature = resolveNewExpression(node, candidatesOutArray); + } + else if (node.kind === 149 /* TaggedTemplateExpression */) { + links.resolvedSignature = resolveTaggedTemplateExpression(node, candidatesOutArray); + } + else { + ts.Debug.fail("Branch in 'getResolvedSignature' should be unreachable."); + } + } + return links.resolvedSignature; + } + function checkCallExpression(node) { + var signature = getResolvedSignature(node); + if (node.func.kind === 89 /* SuperKeyword */) { + return voidType; + } + if (node.kind === 148 /* NewExpression */) { + var declaration = signature.declaration; + if (declaration && declaration.kind !== 126 /* Constructor */ && declaration.kind !== 130 /* ConstructSignature */ && declaration.kind !== 134 /* ConstructorType */) { + 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.operand); + var targetType = getTypeFromTypeNode(node.type); + if (fullTypeCheck && targetType !== unknownType) { + var widenedType = getWidenedType(exprType, true); + 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) { + return signature.hasRestParameter ? pos < signature.parameters.length - 1 ? getTypeOfSymbol(signature.parameters[pos]) : getRestTypeOfSignature(signature) : pos < signature.parameters.length ? getTypeOfSymbol(signature.parameters[pos]) : anyType; + } + 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 = getContextualSignature(func); + if (func.body.kind !== 187 /* FunctionBlock */) { + var unwidenedType = checkAndMarkExpression(func.body, contextualMapper); + var widenedType = getWidenedType(unwidenedType); + if (fullTypeCheck && compilerOptions.noImplicitAny && !contextualSignature && widenedType !== unwidenedType && getInnermostTypeOfNestedArrayTypes(widenedType) === anyType) { + error(func, ts.Diagnostics.Function_expression_which_lacks_return_type_annotation_implicitly_has_an_0_return_type, typeToString(widenedType)); + } + return widenedType; + } + var types = checkAndAggregateReturnExpressionTypes(func.body, contextualMapper); + if (types.length > 0) { + var commonType = contextualSignature ? getUnionType(types) : getCommonSupertype(types); + if (!commonType) { + error(func, ts.Diagnostics.No_best_common_type_exists_among_return_expressions); + return unknownType; + } + var widenedType = getWidenedType(commonType); + if (fullTypeCheck && compilerOptions.noImplicitAny && !contextualSignature && widenedType !== commonType && getInnermostTypeOfNestedArrayTypes(widenedType) === anyType) { + var typeName = typeToString(widenedType); + if (func.name) { + error(func, ts.Diagnostics._0_which_lacks_return_type_annotation_implicitly_has_an_1_return_type, ts.declarationNameToString(func.name), typeName); + } + else { + error(func, ts.Diagnostics.Function_expression_which_lacks_return_type_annotation_implicitly_has_an_0_return_type, typeName); + } + } + return widenedType; + } + return voidType; + } + function checkAndAggregateReturnExpressionTypes(body, contextualMapper) { + var aggregatedTypes = []; + ts.forEachReturnStatement(body, function (returnStatement) { + var expr = returnStatement.expression; + if (expr) { + var type = checkAndMarkExpression(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 === 179 /* ThrowStatement */); + } + function checkIfNonVoidFunctionHasReturnExpressionsOrSingleThrowStatment(func, returnType) { + if (!fullTypeCheck) { + return; + } + if (returnType === voidType || returnType === anyType) { + return; + } + if (!func.body || func.body.kind !== 187 /* FunctionBlock */) { + 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 checkFunctionExpression(node, contextualMapper) { + if (contextualMapper === identityMapper) { + return anyFunctionType; + } + var links = getNodeLinks(node); + var type = getTypeOfSymbol(node.symbol); + if (!(links.flags & 64 /* ContextChecked */)) { + var contextualSignature = getContextualSignature(node); + if (!(links.flags & 64 /* ContextChecked */)) { + links.flags |= 64 /* ContextChecked */; + if (contextualSignature) { + var signature = getSignaturesOfType(type, 0 /* Call */)[0]; + if (isContextSensitiveExpression(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); + } + } + return type; + } + function checkFunctionExpressionBody(node) { + if (node.type) { + checkIfNonVoidFunctionHasReturnExpressionsOrSingleThrowStatment(node, getTypeFromTypeNode(node.type)); + } + if (node.body.kind === 187 /* FunctionBlock */) { + 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 (!(type.flags & (1 /* Any */ | 132 /* NumberLike */))) { + error(operand, diagnostic); + return false; + } + return true; + } + function checkReferenceExpression(n, invalidReferenceMessage, constantVarianleMessage) { + function findSymbol(n) { + var symbol = getNodeLinks(n).resolvedSymbol; + return symbol && getExportSymbolOfValueSymbolIfExported(symbol); + } + function isReferenceOrErrorExpression(n) { + switch (n.kind) { + case 63 /* Identifier */: + var symbol = findSymbol(n); + return !symbol || symbol === unknownSymbol || symbol === argumentsSymbol || (symbol.flags & 3 /* Variable */) !== 0; + case 145 /* PropertyAccess */: + var symbol = findSymbol(n); + return !symbol || symbol === unknownSymbol || (symbol.flags & ~8 /* EnumMember */) !== 0; + case 146 /* IndexedAccess */: + return true; + case 151 /* ParenExpression */: + return isReferenceOrErrorExpression(n.expression); + default: + return false; + } + } + function isConstVariableReference(n) { + switch (n.kind) { + case 63 /* Identifier */: + case 145 /* PropertyAccess */: + var symbol = findSymbol(n); + return symbol && (symbol.flags & 3 /* Variable */) !== 0 && (getDeclarationFlagsFromSymbol(symbol) & 4096 /* Const */) !== 0; + case 146 /* IndexedAccess */: + var index = n.index; + var symbol = findSymbol(n.object); + if (symbol && index.kind === 7 /* StringLiteral */) { + var name = index.text; + var prop = getPropertyOfType(getTypeOfSymbol(symbol), name); + return prop && (prop.flags & 3 /* Variable */) !== 0 && (getDeclarationFlagsFromSymbol(prop) & 4096 /* Const */) !== 0; + } + return false; + case 151 /* ParenExpression */: + return isConstVariableReference(n.expression); + default: + return false; + } + } + if (!isReferenceOrErrorExpression(n)) { + error(n, invalidReferenceMessage); + return false; + } + if (isConstVariableReference(n)) { + error(n, constantVarianleMessage); + return false; + } + return true; + } + function checkPrefixExpression(node) { + var operandType = checkExpression(node.operand); + switch (node.operator) { + case 32 /* PlusToken */: + case 33 /* MinusToken */: + case 46 /* TildeToken */: + return numberType; + case 45 /* ExclamationToken */: + case 72 /* DeleteKeyword */: + return booleanType; + case 95 /* TypeOfKeyword */: + return stringType; + case 97 /* VoidKeyword */: + return undefinedType; + case 37 /* PlusPlusToken */: + case 38 /* MinusMinusToken */: + 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 checkPostfixExpression(node) { + 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 isStructuredType(type) { + if (type.flags & 16384 /* Union */) { + return !ts.forEach(type.types, function (t) { return !isStructuredType(t); }); + } + return (type.flags & 65025 /* Structured */) !== 0; + } + function isConstEnumObjectType(type) { + return type.flags & (48128 /* ObjectType */ | 32768 /* Anonymous */) && type.symbol && isConstEnumSymbol(type.symbol); + } + function isConstEnumSymbol(symbol) { + return (symbol.flags & 128 /* ConstEnum */) !== 0; + } + function checkInstanceOfExpression(node, leftType, rightType) { + if (leftType !== unknownType && !isStructuredType(leftType)) { + 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 !== unknownType && rightType !== anyType && !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 (leftType !== anyType && leftType !== stringType && leftType !== numberType) { + error(node.left, ts.Diagnostics.The_left_hand_side_of_an_in_expression_must_be_of_types_any_string_or_number); + } + if (!isStructuredType(rightType)) { + 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 checkBinaryExpression(node, contextualMapper) { + var operator = node.operator; + var leftType = checkExpression(node.left, contextualMapper); + var rightType = checkExpression(node.right, contextualMapper); + switch (operator) { + case 34 /* AsteriskToken */: + case 54 /* AsteriskEqualsToken */: + case 35 /* SlashToken */: + case 55 /* SlashEqualsToken */: + case 36 /* PercentToken */: + case 56 /* PercentEqualsToken */: + case 33 /* MinusToken */: + case 53 /* MinusEqualsToken */: + case 39 /* LessThanLessThanToken */: + case 57 /* LessThanLessThanEqualsToken */: + case 40 /* GreaterThanGreaterThanToken */: + case 58 /* GreaterThanGreaterThanEqualsToken */: + case 41 /* GreaterThanGreaterThanGreaterThanToken */: + case 59 /* GreaterThanGreaterThanGreaterThanEqualsToken */: + case 43 /* BarToken */: + case 61 /* BarEqualsToken */: + case 44 /* CaretToken */: + case 62 /* CaretEqualsToken */: + case 42 /* AmpersandToken */: + case 60 /* AmpersandEqualsToken */: + if (leftType.flags & (32 /* Undefined */ | 64 /* Null */)) + leftType = rightType; + if (rightType.flags & (32 /* Undefined */ | 64 /* Null */)) + rightType = leftType; + var suggestedOperator; + if ((leftType.flags & 8 /* Boolean */) && (rightType.flags & 8 /* Boolean */) && (suggestedOperator = getSuggestedBooleanOperator(node.operator)) !== undefined) { + error(node, ts.Diagnostics.The_0_operator_is_not_allowed_for_boolean_types_Consider_using_1_instead, ts.tokenToString(node.operator), 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 32 /* PlusToken */: + case 52 /* PlusEqualsToken */: + if (leftType.flags & (32 /* Undefined */ | 64 /* Null */)) + leftType = rightType; + if (rightType.flags & (32 /* Undefined */ | 64 /* Null */)) + rightType = leftType; + var resultType; + if (leftType.flags & 132 /* NumberLike */ && rightType.flags & 132 /* NumberLike */) { + resultType = numberType; + } + else if (leftType.flags & 258 /* StringLike */ || rightType.flags & 258 /* StringLike */) { + resultType = stringType; + } + else if (leftType.flags & 1 /* Any */ || leftType === unknownType || rightType.flags & 1 /* Any */ || rightType === unknownType) { + resultType = anyType; + } + if (!resultType) { + reportOperatorError(); + return anyType; + } + if (operator === 52 /* PlusEqualsToken */) { + checkAssignmentOperator(resultType); + } + return resultType; + case 27 /* EqualsEqualsToken */: + case 28 /* ExclamationEqualsToken */: + case 29 /* EqualsEqualsEqualsToken */: + case 30 /* ExclamationEqualsEqualsToken */: + case 23 /* LessThanToken */: + case 24 /* GreaterThanToken */: + case 25 /* LessThanEqualsToken */: + case 26 /* GreaterThanEqualsToken */: + if (!isTypeAssignableTo(leftType, rightType) && !isTypeAssignableTo(rightType, leftType)) { + reportOperatorError(); + } + return booleanType; + case 85 /* InstanceOfKeyword */: + return checkInstanceOfExpression(node, leftType, rightType); + case 84 /* InKeyword */: + return checkInExpression(node, leftType, rightType); + case 47 /* AmpersandAmpersandToken */: + return rightType; + case 48 /* BarBarToken */: + return getUnionType([leftType, rightType]); + case 51 /* EqualsToken */: + checkAssignmentOperator(rightType); + return rightType; + case 22 /* CommaToken */: + return rightType; + } + function getSuggestedBooleanOperator(operator) { + switch (operator) { + case 43 /* BarToken */: + case 61 /* BarEqualsToken */: + return 48 /* BarBarToken */; + case 44 /* CaretToken */: + case 62 /* CaretEqualsToken */: + return 30 /* ExclamationEqualsEqualsToken */; + case 42 /* AmpersandToken */: + case 60 /* AmpersandEqualsToken */: + return 47 /* AmpersandAmpersandToken */; + default: + return undefined; + } + } + function checkAssignmentOperator(valueType) { + if (fullTypeCheck && operator >= 51 /* FirstAssignment */ && operator <= 62 /* LastAssignment */) { + 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.operator), typeToString(leftType), typeToString(rightType)); + } + } + 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 checkAndMarkExpression(node, contextualMapper) { + var result = checkExpression(node, contextualMapper); + getNodeLinks(node).flags |= 1 /* TypeChecked */; + return result; + } + function checkExpression(node, contextualMapper) { + var type = checkExpressionNode(node, 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) { + type = getOrCreateTypeFromSignature(instantiateSignatureInContextOf(signature, contextualSignature, contextualMapper)); + } + } + } + } + if (isConstEnumObjectType(type)) { + var ok = (node.parent.kind === 145 /* PropertyAccess */ && node.parent.left === node) || (node.parent.kind === 146 /* IndexedAccess */ && node.parent.object === node) || ((node.kind === 63 /* Identifier */ || node.kind === 121 /* QualifiedName */) && 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 checkExpressionNode(node, contextualMapper) { + switch (node.kind) { + case 63 /* Identifier */: + return checkIdentifier(node); + case 91 /* ThisKeyword */: + return checkThisExpression(node); + case 89 /* SuperKeyword */: + return checkSuperExpression(node); + case 87 /* NullKeyword */: + return nullType; + case 93 /* TrueKeyword */: + case 78 /* FalseKeyword */: + return booleanType; + case 6 /* NumericLiteral */: + return numberType; + case 158 /* TemplateExpression */: + return checkTemplateExpression(node); + case 7 /* StringLiteral */: + case 9 /* NoSubstitutionTemplateLiteral */: + return stringType; + case 8 /* RegularExpressionLiteral */: + return globalRegExpType; + case 121 /* QualifiedName */: + return checkPropertyAccess(node); + case 141 /* ArrayLiteral */: + return checkArrayLiteral(node, contextualMapper); + case 142 /* ObjectLiteral */: + return checkObjectLiteral(node, contextualMapper); + case 145 /* PropertyAccess */: + return checkPropertyAccess(node); + case 146 /* IndexedAccess */: + return checkIndexedAccess(node); + case 147 /* CallExpression */: + case 148 /* NewExpression */: + return checkCallExpression(node); + case 149 /* TaggedTemplateExpression */: + return checkTaggedTemplateExpression(node); + case 150 /* TypeAssertion */: + return checkTypeAssertion(node); + case 151 /* ParenExpression */: + return checkExpression(node.expression); + case 152 /* FunctionExpression */: + case 153 /* ArrowFunction */: + return checkFunctionExpression(node, contextualMapper); + case 154 /* PrefixOperator */: + return checkPrefixExpression(node); + case 155 /* PostfixOperator */: + return checkPostfixExpression(node); + case 156 /* BinaryExpression */: + return checkBinaryExpression(node, contextualMapper); + case 157 /* ConditionalExpression */: + return checkConditionalExpression(node, contextualMapper); + case 161 /* OmittedExpression */: + return undefinedType; + } + return unknownType; + } + function checkTypeParameter(node) { + checkSourceElement(node.constraint); + if (fullTypeCheck) { + checkTypeParameterHasIllegalReferencesInConstraint(node); + checkTypeNameIsReserved(node.name, ts.Diagnostics.Type_parameter_name_cannot_be_0); + } + } + function checkParameter(parameterDeclaration) { + checkVariableDeclaration(parameterDeclaration); + if (fullTypeCheck) { + checkCollisionWithIndexVariableInGeneratedCode(parameterDeclaration, parameterDeclaration.name); + if (parameterDeclaration.flags & (16 /* Public */ | 32 /* Private */ | 64 /* Protected */) && !(parameterDeclaration.parent.kind === 126 /* Constructor */ && parameterDeclaration.parent.body)) { + error(parameterDeclaration, ts.Diagnostics.A_parameter_property_is_only_allowed_in_a_constructor_implementation); + } + if (parameterDeclaration.flags & 8 /* Rest */) { + if (!isArrayType(getTypeOfSymbol(parameterDeclaration.symbol))) { + error(parameterDeclaration, ts.Diagnostics.A_rest_parameter_must_be_of_an_array_type); + } + } + else { + if (parameterDeclaration.initializer && !parameterDeclaration.parent.body) { + error(parameterDeclaration, ts.Diagnostics.A_parameter_initializer_is_only_allowed_in_a_function_or_constructor_implementation); + } + } + } + function checkReferencesInInitializer(n) { + if (n.kind === 63 /* Identifier */) { + var referencedSymbol = getNodeLinks(n).resolvedSymbol; + if (referencedSymbol && referencedSymbol !== unknownSymbol && getSymbol(parameterDeclaration.parent.locals, referencedSymbol.name, 107455 /* Value */) === referencedSymbol) { + if (referencedSymbol.valueDeclaration.kind === 123 /* Parameter */) { + if (referencedSymbol.valueDeclaration === parameterDeclaration) { + error(n, ts.Diagnostics.Parameter_0_cannot_be_referenced_in_its_initializer, ts.declarationNameToString(parameterDeclaration.name)); + return; + } + var enclosingOrReferencedParameter = ts.forEach(parameterDeclaration.parent.parameters, function (p) { return p === parameterDeclaration || p === referencedSymbol.valueDeclaration ? p : undefined; }); + if (enclosingOrReferencedParameter === referencedSymbol.valueDeclaration) { + return; + } + } + error(n, ts.Diagnostics.Initializer_of_parameter_0_cannot_reference_identifier_1_declared_after_it, ts.declarationNameToString(parameterDeclaration.name), ts.declarationNameToString(n)); + } + } + else { + ts.forEachChild(n, checkReferencesInInitializer); + } + } + if (parameterDeclaration.initializer) { + checkReferencesInInitializer(parameterDeclaration.initializer); + } + } + function checkSignatureDeclaration(node) { + checkTypeParameters(node.typeParameters); + ts.forEach(node.parameters, checkParameter); + if (node.type) { + checkSourceElement(node.type); + } + if (fullTypeCheck) { + checkCollisionWithCapturedSuperVariable(node, node.name); + checkCollisionWithCapturedThisVariable(node, node.name); + checkCollisionWithRequireExportsInGeneratedCode(node, node.name); + checkCollisionWithArgumentsInGeneratedCode(node); + if (compilerOptions.noImplicitAny && !node.type) { + switch (node.kind) { + case 130 /* ConstructSignature */: + error(node, ts.Diagnostics.Construct_signature_which_lacks_return_type_annotation_implicitly_has_an_any_return_type); + break; + case 129 /* CallSignature */: + 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 === 189 /* InterfaceDeclaration */) { + 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, len = indexSymbol.declarations.length; i < len; ++i) { + var declaration = indexSymbol.declarations[i]; + if (declaration.parameters.length == 1 && declaration.parameters[0].type) { + switch (declaration.parameters[0].type.kind) { + case 118 /* StringKeyword */: + if (!seenStringIndexer) { + seenStringIndexer = true; + } + else { + error(declaration, ts.Diagnostics.Duplicate_string_index_signature); + } + break; + case 116 /* NumberKeyword */: + if (!seenNumericIndexer) { + seenNumericIndexer = true; + } + else { + error(declaration, ts.Diagnostics.Duplicate_number_index_signature); + } + break; + } + } + } + } + } + function checkPropertyDeclaration(node) { + checkVariableDeclaration(node); + } + function checkMethodDeclaration(node) { + checkFunctionDeclaration(node); + } + function checkConstructorDeclaration(node) { + checkSignatureDeclaration(node); + checkSourceElement(node.body); + var symbol = getSymbolOfNode(node); + var firstDeclaration = getDeclarationOfKind(symbol, node.kind); + if (node === firstDeclaration) { + checkFunctionOrConstructorSymbol(symbol); + } + if (!node.body) { + return; + } + if (!fullTypeCheck) { + return; + } + function isSuperCallExpression(n) { + return n.kind === 147 /* CallExpression */ && n.func.kind === 89 /* SuperKeyword */; + } + function containsSuperCall(n) { + if (isSuperCallExpression(n)) { + return true; + } + switch (n.kind) { + case 152 /* FunctionExpression */: + case 186 /* FunctionDeclaration */: + case 153 /* ArrowFunction */: + case 142 /* ObjectLiteral */: return false; + default: return ts.forEachChild(n, containsSuperCall); + } + } + function markThisReferencesAsErrors(n) { + if (n.kind === 91 /* ThisKeyword */) { + error(n, ts.Diagnostics.this_cannot_be_referenced_in_current_location); + } + else if (n.kind !== 152 /* FunctionExpression */ && n.kind !== 186 /* FunctionDeclaration */) { + ts.forEachChild(n, markThisReferencesAsErrors); + } + } + function isInstancePropertyWithInitializer(n) { + return n.kind === 124 /* Property */ && !(n.flags & 128 /* Static */) && !!n.initializer; + } + if (node.parent.baseType) { + if (containsSuperCall(node.body)) { + var superCallShouldBeFirst = ts.forEach(node.parent.members, isInstancePropertyWithInitializer) || ts.forEach(node.parameters, function (p) { return p.flags & (16 /* Public */ | 32 /* Private */ | 64 /* Protected */); }); + if (superCallShouldBeFirst) { + var statements = node.body.statements; + if (!statements.length || statements[0].kind !== 165 /* ExpressionStatement */ || !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 (fullTypeCheck) { + if (node.kind === 127 /* GetAccessor */) { + if (!ts.isInAmbientContext(node) && 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); + } + } + var otherKind = node.kind === 127 /* GetAccessor */ ? 128 /* SetAccessor */ : 127 /* GetAccessor */; + var otherAccessor = getDeclarationOfKind(node.symbol, otherKind); + if (otherAccessor) { + if (((node.flags & 112 /* AccessibilityModifier */) !== (otherAccessor.flags & 112 /* AccessibilityModifier */))) { + error(node.name, ts.Diagnostics.Getter_and_setter_accessors_do_not_agree_in_visibility); + } + var thisType = getAnnotatedAccessorType(node); + var otherType = getAnnotatedAccessorType(otherAccessor); + if (thisType && otherType) { + if (!isTypeIdenticalTo(thisType, otherType)) { + error(node, ts.Diagnostics.get_and_set_accessor_must_have_the_same_type); + } + } + } + } + checkFunctionDeclaration(node); + checkAndStoreTypeOfAccessors(getSymbolOfNode(node)); + } + function checkTypeReference(node) { + 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 (fullTypeCheck && 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 (fullTypeCheck) { + var type = getTypeFromTypeLiteralOrFunctionOrConstructorTypeNode(node); + checkIndexConstraints(type); + checkTypeForDuplicateIndexSignatures(node); + } + } + function checkArrayType(node) { + checkSourceElement(node.elementType); + } + function checkTupleType(node) { + ts.forEach(node.elementTypes, checkSourceElement); + } + function checkUnionType(node) { + ts.forEach(node.types, checkSourceElement); + } + function isPrivateWithinAmbient(node) { + return (node.flags & 32 /* Private */) && ts.isInAmbientContext(node); + } + function checkSpecializedSignatureDeclaration(signatureDeclarationNode) { + if (!fullTypeCheck) { + return; + } + var signature = getSignatureFromDeclaration(signatureDeclarationNode); + if (!signature.hasStringLiterals) { + return; + } + if (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 === 189 /* InterfaceDeclaration */) { + ts.Debug.assert(signatureDeclarationNode.kind === 129 /* CallSignature */ || signatureDeclarationNode.kind === 130 /* ConstructSignature */); + var signatureKind = signatureDeclarationNode.kind === 129 /* CallSignature */ ? 0 /* Call */ : 1 /* Construct */; + 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 = n.flags; + if (n.parent.kind !== 189 /* InterfaceDeclaration */ && ts.isInAmbientContext(n)) { + if (!(flags & 2 /* Ambient */)) { + flags |= 1 /* Export */; + } + flags |= 2 /* Ambient */; + } + return flags & flagsToCheck; + } + function checkFunctionOrConstructorSymbol(symbol) { + if (!fullTypeCheck) { + return; + } + function checkFlagAgreementBetweenOverloads(overloads, implementation, flagsToCheck, someOverloadFlags, allOverloadFlags) { + var someButNotAllOverloadFlags = someOverloadFlags ^ allOverloadFlags; + if (someButNotAllOverloadFlags !== 0) { + var implementationSharesContainerWithFirstOverload = implementation !== undefined && implementation.parent === overloads[0].parent; + var canonicalFlags = implementationSharesContainerWithFirstOverload ? getEffectiveDeclarationFlags(implementation, flagsToCheck) : getEffectiveDeclarationFlags(overloads[0], flagsToCheck); + ts.forEach(overloads, function (o) { + var deviation = getEffectiveDeclarationFlags(o, flagsToCheck) ^ canonicalFlags; + if (deviation & 1 /* Export */) { + error(o.name, ts.Diagnostics.Overload_signatures_must_all_be_exported_or_not_exported); + } + else if (deviation & 2 /* Ambient */) { + error(o.name, ts.Diagnostics.Overload_signatures_must_all_be_ambient_or_non_ambient); + } + else if (deviation & (32 /* Private */ | 64 /* Protected */)) { + error(o.name, ts.Diagnostics.Overload_signatures_must_all_be_public_private_or_protected); + } + else if (deviation & 4 /* QuestionMark */) { + error(o.name, ts.Diagnostics.Overload_signatures_must_all_be_optional_or_required); + } + }); + } + } + var flagsToCheck = 1 /* Export */ | 2 /* Ambient */ | 32 /* Private */ | 64 /* Protected */ | 4 /* QuestionMark */; + var someNodeFlags = 0; + var allNodeFlags = flagsToCheck; + var hasOverloads = false; + var bodyDeclaration; + var lastSeenNonAmbientDeclaration; + var previousDeclaration; + var declarations = symbol.declarations; + var isConstructor = (symbol.flags & 16384 /* Constructor */) !== 0; + function reportImplementationExpectedError(node) { + if (node.name && node.name.kind === 120 /* Missing */) { + 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 = subsequentNode.name || subsequentNode; + if (node.name && subsequentNode.name && node.name.text === subsequentNode.name.text) { + ts.Debug.assert(node.kind === 125 /* Method */); + ts.Debug.assert((node.flags & 128 /* Static */) !== (subsequentNode.flags & 128 /* Static */)); + var diagnostic = node.flags & 128 /* Static */ ? ts.Diagnostics.Function_overload_must_be_static : ts.Diagnostics.Function_overload_must_not_be_static; + error(errorNode, diagnostic); + return; + } + else if (subsequentNode.body) { + error(errorNode, 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 /* Module */; + var duplicateFunctionDeclaration = false; + var multipleConstructorImplementation = false; + for (var i = 0; i < declarations.length; i++) { + var node = declarations[i]; + var inAmbientContext = ts.isInAmbientContext(node); + var inAmbientContextOrInterface = node.parent.kind === 189 /* InterfaceDeclaration */ || node.parent.kind === 136 /* TypeLiteral */ || inAmbientContext; + if (inAmbientContextOrInterface) { + previousDeclaration = undefined; + } + if (node.kind === 186 /* FunctionDeclaration */ || node.kind === 125 /* Method */ || node.kind === 126 /* Constructor */) { + var currentNodeFlags = getEffectiveDeclarationFlags(node, flagsToCheck); + someNodeFlags |= currentNodeFlags; + allNodeFlags &= currentNodeFlags; + if (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 (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); + if (bodyDeclaration) { + var signatures = getSignaturesOfSymbol(symbol); + var bodySignature = getSignatureFromDeclaration(bodyDeclaration); + if (!bodySignature.hasStringLiterals) { + for (var i = 0, len = signatures.length; i < len; ++i) { + if (!signatures[i].hasStringLiterals && !isSignatureAssignableTo(bodySignature, signatures[i])) { + error(signatures[i].declaration, ts.Diagnostics.Overload_signature_is_not_compatible_with_function_implementation); + break; + } + } + } + } + } + } + function checkExportsOnMergedDeclarations(node) { + if (!fullTypeCheck) { + return; + } + var symbol; + var symbol = node.localSymbol; + if (!symbol) { + symbol = getSymbolOfNode(node); + if (!(symbol.flags & 29360128 /* Export */)) { + return; + } + } + if (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 /* Export */)) { + 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 189 /* InterfaceDeclaration */: + return 8388608 /* ExportType */; + case 192 /* ModuleDeclaration */: + return d.name.kind === 7 /* StringLiteral */ || ts.getModuleInstanceState(d) !== 0 /* NonInstantiated */ ? 16777216 /* ExportNamespace */ | 4194304 /* ExportValue */ : 16777216 /* ExportNamespace */; + case 188 /* ClassDeclaration */: + case 191 /* EnumDeclaration */: + return 8388608 /* ExportType */ | 4194304 /* ExportValue */; + case 194 /* ImportDeclaration */: + var result = 0; + var target = resolveImport(getSymbolOfNode(d)); + ts.forEach(target.declarations, function (d) { + result |= getDeclarationSpaces(d); + }); + return result; + default: + return 4194304 /* ExportValue */; + } + } + } + function checkFunctionDeclaration(node) { + checkSignatureDeclaration(node); + var symbol = getSymbolOfNode(node); + var localSymbol = node.localSymbol || symbol; + var firstDeclaration = getDeclarationOfKind(localSymbol, node.kind); + if (node === firstDeclaration) { + checkFunctionOrConstructorSymbol(localSymbol); + } + if (symbol.parent) { + if (getDeclarationOfKind(symbol, node.kind) === node) { + checkFunctionOrConstructorSymbol(symbol); + } + } + checkSourceElement(node.body); + if (node.type && !isAccessor(node.kind)) { + checkIfNonVoidFunctionHasReturnExpressionsOrSingleThrowStatment(node, getTypeFromTypeNode(node.type)); + } + if (fullTypeCheck && compilerOptions.noImplicitAny && !node.body && !node.type) { + if (!isPrivateWithinAmbient(node)) { + var typeName = typeToString(anyType); + if (node.name) { + error(node, ts.Diagnostics._0_which_lacks_return_type_annotation_implicitly_has_an_1_return_type, ts.declarationNameToString(node.name), typeName); + } + else { + error(node, ts.Diagnostics.Function_expression_which_lacks_return_type_annotation_implicitly_has_an_0_return_type, typeName); + } + } + } + } + function checkBlock(node) { + ts.forEach(node.statements, checkSourceElement); + } + function checkCollisionWithArgumentsInGeneratedCode(node) { + if (!ts.hasRestParameters(node) || ts.isInAmbientContext(node) || !node.body) { + return; + } + ts.forEach(node.parameters, function (p) { + if (p.name && p.name.text === argumentsSymbol.name) { + error(p, ts.Diagnostics.Duplicate_identifier_arguments_Compiler_uses_arguments_to_initialize_rest_parameters); + } + }); + } + function checkCollisionWithIndexVariableInGeneratedCode(node, name) { + if (!(name && name.text === "_i")) { + return; + } + if (node.kind === 123 /* Parameter */) { + if (node.parent.body && ts.hasRestParameters(node.parent) && !ts.isInAmbientContext(node)) { + error(node, ts.Diagnostics.Duplicate_identifier_i_Compiler_uses_i_to_initialize_rest_parameter); + } + return; + } + var symbol = getNodeLinks(node).resolvedSymbol; + if (symbol === unknownSymbol) { + return; + } + var current = node; + while (current) { + var definedOnCurrentLevel = ts.forEach(symbol.declarations, function (d) { return d.parent === current ? d : undefined; }); + if (definedOnCurrentLevel) { + return; + } + switch (current.kind) { + case 186 /* FunctionDeclaration */: + case 152 /* FunctionExpression */: + case 125 /* Method */: + case 153 /* ArrowFunction */: + case 126 /* Constructor */: + if (ts.hasRestParameters(current)) { + error(node, ts.Diagnostics.Expression_resolves_to_variable_declaration_i_that_compiler_uses_to_initialize_rest_parameter); + return; + } + break; + } + current = current.parent; + } + } + function needCollisionCheckForIdentifier(node, identifier, name) { + if (!(identifier && identifier.text === name)) { + return false; + } + if (node.kind === 124 /* Property */ || node.kind === 125 /* Method */ || node.kind === 127 /* GetAccessor */ || node.kind === 128 /* SetAccessor */) { + return false; + } + if (ts.isInAmbientContext(node)) { + return false; + } + if (node.kind === 123 /* Parameter */ && !node.parent.body) { + return false; + } + return true; + } + function checkCollisionWithCapturedThisVariable(node, name) { + if (!needCollisionCheckForIdentifier(node, name, "_this")) { + return; + } + potentialThisCollisions.push(node); + } + function checkIfThisIsCapturedInEnclosingScope(node) { + var current = node; + while (current) { + if (getNodeCheckFlags(current) & 4 /* CaptureThis */) { + var isDeclaration = node.kind !== 63 /* Identifier */; + if (isDeclaration) { + 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, 188 /* ClassDeclaration */); + if (!enclosingClass || ts.isInAmbientContext(enclosingClass)) { + return; + } + if (enclosingClass.baseType) { + var isDeclaration = node.kind !== 63 /* Identifier */; + if (isDeclaration) { + 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 === 192 /* ModuleDeclaration */ && ts.getModuleInstanceState(node) !== 1 /* Instantiated */) { + return; + } + var parent = node.kind === 185 /* VariableDeclaration */ ? node.parent.parent : node.parent; + if (parent.kind === 197 /* SourceFile */ && 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 checkCollisionWithConstDeclarations(node) { + if (node.initializer && (node.flags & 6144 /* BlockScoped */) === 0) { + var symbol = getSymbolOfNode(node); + if (symbol.flags & 1 /* FunctionScopedVariable */) { + var localDeclarationSymbol = resolveName(node, node.name.text, 3 /* Variable */, undefined, undefined); + if (localDeclarationSymbol && localDeclarationSymbol !== symbol && localDeclarationSymbol.flags & 2 /* BlockScopedVariable */) { + if (getDeclarationFlagsFromSymbol(localDeclarationSymbol) & 4096 /* Const */) { + error(node, ts.Diagnostics.Cannot_redeclare_block_scoped_variable_0, symbolToString(localDeclarationSymbol)); + } + } + } + } + } + function checkVariableDeclaration(node) { + checkSourceElement(node.type); + checkExportsOnMergedDeclarations(node); + if (fullTypeCheck) { + var symbol = getSymbolOfNode(node); + var typeOfValueDeclaration = getTypeOfVariableOrParameterOrProperty(symbol); + var type; + var useTypeFromValueDeclaration = node === symbol.valueDeclaration; + if (useTypeFromValueDeclaration) { + type = typeOfValueDeclaration; + } + else { + type = getTypeOfVariableOrPropertyDeclaration(node); + } + if (node.initializer) { + if (!(getNodeLinks(node.initializer).flags & 1 /* TypeChecked */)) { + checkTypeAssignableTo(checkAndMarkExpression(node.initializer), type, node, undefined); + } + checkCollisionWithConstDeclarations(node); + } + checkCollisionWithCapturedSuperVariable(node, node.name); + checkCollisionWithCapturedThisVariable(node, node.name); + checkCollisionWithRequireExportsInGeneratedCode(node, node.name); + if (!useTypeFromValueDeclaration) { + if (typeOfValueDeclaration !== unknownType && type !== unknownType && !isTypeIdenticalTo(typeOfValueDeclaration, type)) { + 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(typeOfValueDeclaration), typeToString(type)); + } + } + } + } + function checkVariableStatement(node) { + ts.forEach(node.declarations, checkVariableDeclaration); + } + function checkExpressionStatement(node) { + checkExpression(node.expression); + } + function checkIfStatement(node) { + checkExpression(node.expression); + checkSourceElement(node.thenStatement); + checkSourceElement(node.elseStatement); + } + function checkDoStatement(node) { + checkSourceElement(node.statement); + checkExpression(node.expression); + } + function checkWhileStatement(node) { + checkExpression(node.expression); + checkSourceElement(node.statement); + } + function checkForStatement(node) { + if (node.declarations) + ts.forEach(node.declarations, checkVariableDeclaration); + if (node.initializer) + checkExpression(node.initializer); + if (node.condition) + checkExpression(node.condition); + if (node.iterator) + checkExpression(node.iterator); + checkSourceElement(node.statement); + } + function checkForInStatement(node) { + if (node.declarations) { + if (node.declarations.length >= 1) { + var decl = node.declarations[0]; + checkVariableDeclaration(decl); + if (decl.type) { + error(decl, ts.Diagnostics.The_left_hand_side_of_a_for_in_statement_cannot_use_a_type_annotation); + } + } + } + if (node.variable) { + var exprType = checkExpression(node.variable); + if (exprType !== anyType && exprType !== stringType) { + error(node.variable, ts.Diagnostics.The_left_hand_side_of_a_for_in_statement_must_be_of_type_string_or_any); + } + else { + checkReferenceExpression(node.variable, ts.Diagnostics.Invalid_left_hand_side_in_for_in_statement, ts.Diagnostics.Left_hand_side_of_assignment_expression_cannot_be_a_constant); + } + } + var exprType = checkExpression(node.expression); + if (!isStructuredType(exprType) && exprType !== unknownType) { + 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 checkBreakOrContinueStatement(node) { + } + function checkReturnStatement(node) { + if (node.expression && !(getNodeLinks(node.expression).flags & 1 /* TypeChecked */)) { + var func = ts.getContainingFunction(node); + if (func) { + if (func.kind === 128 /* SetAccessor */) { + if (node.expression) { + error(node.expression, ts.Diagnostics.Setters_cannot_return_a_value); + } + } + else { + var returnType = getReturnTypeOfSignature(getSignatureFromDeclaration(func)); + var checkAssignability = func.type || (func.kind === 127 /* GetAccessor */ && getSetAccessorTypeAnnotationNode(getDeclarationOfKind(func.symbol, 128 /* SetAccessor */))); + if (checkAssignability) { + checkTypeAssignableTo(checkExpression(node.expression), returnType, node.expression, undefined); + } + else if (func.kind == 126 /* Constructor */) { + if (!isTypeAssignableTo(checkExpression(node.expression), returnType)) { + error(node.expression, ts.Diagnostics.Return_type_of_constructor_signature_must_be_assignable_to_the_instance_type_of_the_class); + } + } + } + } + } + } + function checkWithStatement(node) { + checkExpression(node.expression); + error(node.expression, ts.Diagnostics.All_symbols_within_a_with_block_will_be_resolved_to_any); + } + function checkSwitchStatement(node) { + var expressionType = checkExpression(node.expression); + ts.forEach(node.clauses, function (clause) { + if (fullTypeCheck && clause.expression) { + var caseType = checkExpression(clause.expression); + if (!isTypeAssignableTo(expressionType, caseType)) { + checkTypeAssignableTo(caseType, expressionType, clause.expression, undefined); + } + } + checkBlock(clause); + }); + } + function checkLabeledStatement(node) { + checkSourceElement(node.statement); + } + function checkThrowStatement(node) { + checkExpression(node.expression); + } + function checkTryStatement(node) { + checkBlock(node.tryBlock); + if (node.catchBlock) + checkBlock(node.catchBlock); + if (node.finallyBlock) + checkBlock(node.finallyBlock); + } + function checkIndexConstraints(type) { + function checkIndexConstraintForProperty(prop, propertyType, indexDeclaration, indexType, indexKind) { + if (!indexType) { + return; + } + if (indexKind === 1 /* Number */ && !isNumericName(prop.name)) { + return; + } + var errorNode; + if (prop.parent === type.symbol) { + errorNode = prop.valueDeclaration; + } + else if (indexDeclaration) { + errorNode = indexDeclaration; + } + else if (type.flags & 2048 /* Interface */) { + var someBaseClassHasBothPropertyAndIndexer = ts.forEach(type.baseTypes, function (base) { return getPropertyOfObjectType(base, prop.name) && getIndexTypeOfType(base, indexKind); }); + errorNode = someBaseClassHasBothPropertyAndIndexer ? undefined : type.symbol.declarations[0]; + } + if (errorNode && !isTypeAssignableTo(propertyType, indexType)) { + var errorMessage = indexKind === 0 /* String */ ? 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)); + } + } + var declaredNumberIndexer = getIndexDeclarationOfSymbol(type.symbol, 1 /* Number */); + var declaredStringIndexer = getIndexDeclarationOfSymbol(type.symbol, 0 /* String */); + var stringIndexType = getIndexTypeOfType(type, 0 /* String */); + var numberIndexType = getIndexTypeOfType(type, 1 /* Number */); + if (stringIndexType || numberIndexType) { + ts.forEach(getPropertiesOfObjectType(type), function (prop) { + var propType = getTypeOfSymbol(prop); + checkIndexConstraintForProperty(prop, propType, declaredStringIndexer, stringIndexType, 0 /* String */); + checkIndexConstraintForProperty(prop, propType, declaredNumberIndexer, numberIndexType, 1 /* Number */); + }); + } + var errorNode; + if (stringIndexType && numberIndexType) { + errorNode = declaredNumberIndexer || declaredStringIndexer; + if (!errorNode && (type.flags & 2048 /* Interface */)) { + var someBaseTypeHasBothIndexers = ts.forEach(type.baseTypes, function (base) { return getIndexTypeOfType(base, 0 /* String */) && getIndexTypeOfType(base, 1 /* Number */); }); + 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 checkTypeNameIsReserved(name, message) { + switch (name.text) { + case "any": + case "number": + case "boolean": + case "string": + case "void": + error(name, message, name.text); + } + } + function checkTypeParameters(typeParameterDeclarations) { + if (typeParameterDeclarations) { + for (var i = 0; i < typeParameterDeclarations.length; i++) { + var node = typeParameterDeclarations[i]; + checkTypeParameter(node); + if (fullTypeCheck) { + 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) { + checkTypeNameIsReserved(node.name, ts.Diagnostics.Class_name_cannot_be_0); + checkTypeParameters(node.typeParameters); + checkCollisionWithCapturedThisVariable(node, node.name); + checkCollisionWithRequireExportsInGeneratedCode(node, node.name); + checkExportsOnMergedDeclarations(node); + var symbol = getSymbolOfNode(node); + var type = getDeclaredTypeOfSymbol(symbol); + var staticType = getTypeOfSymbol(symbol); + if (node.baseType) { + emitExtends = emitExtends || !ts.isInAmbientContext(node); + checkTypeReference(node.baseType); + } + if (type.baseTypes.length) { + if (fullTypeCheck) { + var baseType = type.baseTypes[0]; + checkTypeAssignableTo(type, baseType, node.name, ts.Diagnostics.Class_0_incorrectly_extends_base_class_1); + var staticBaseType = getTypeOfSymbol(baseType.symbol); + checkTypeAssignableTo(staticType, getTypeWithoutConstructors(staticBaseType), node.name, ts.Diagnostics.Class_static_side_0_incorrectly_extends_base_class_static_side_1); + if (baseType.symbol !== resolveEntityName(node, node.baseType.typeName, 107455 /* Value */)) { + error(node.baseType, ts.Diagnostics.Type_name_0_in_extends_clause_does_not_reference_constructor_function_for_0, typeToString(baseType)); + } + checkKindsOfPropertyMemberOverrides(type, baseType); + } + checkExpression(node.baseType.typeName); + } + if (node.implementedTypes) { + ts.forEach(node.implementedTypes, function (typeRefNode) { + checkTypeReference(typeRefNode); + if (fullTypeCheck) { + var t = getTypeFromTypeReferenceNode(typeRefNode); + if (t !== unknownType) { + var declaredType = (t.flags & 4096 /* Reference */) ? t.target : t; + if (declaredType.flags & (1024 /* Class */ | 2048 /* Interface */)) { + checkTypeAssignableTo(type, t, node.name, 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 (fullTypeCheck) { + checkIndexConstraints(type); + checkTypeForDuplicateIndexSignatures(node); + } + } + function getTargetSymbol(s) { + return s.flags & 67108864 /* Instantiated */ ? getSymbolLinks(s).target : s; + } + function checkKindsOfPropertyMemberOverrides(type, baseType) { + var baseProperties = getPropertiesOfObjectType(baseType); + for (var i = 0, len = baseProperties.length; i < len; ++i) { + var base = getTargetSymbol(baseProperties[i]); + if (base.flags & 536870912 /* Prototype */) { + continue; + } + var derived = getTargetSymbol(getPropertyOfObjectType(type, base.name)); + if (derived) { + var baseDeclarationFlags = getDeclarationFlagsFromSymbol(base); + var derivedDeclarationFlags = getDeclarationFlagsFromSymbol(derived); + if ((baseDeclarationFlags & 32 /* Private */) || (derivedDeclarationFlags & 32 /* Private */)) { + continue; + } + if ((baseDeclarationFlags & 128 /* Static */) !== (derivedDeclarationFlags & 128 /* Static */)) { + continue; + } + if ((base.flags & derived.flags & 8192 /* Method */) || ((base.flags & 98308 /* PropertyOrAccessor */) && (derived.flags & 98308 /* PropertyOrAccessor */))) { + continue; + } + var errorMessage; + if (base.flags & 8192 /* Method */) { + if (derived.flags & 98304 /* Accessor */) { + 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 /* Property */) !== 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 /* Property */) { + ts.Debug.assert((derived.flags & 8192 /* Method */) !== 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 /* Accessor */) !== 0); + ts.Debug.assert((derived.flags & 8192 /* Method */) !== 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 === 127 /* GetAccessor */ || kind === 128 /* SetAccessor */; + } + 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, len = type.baseTypes.length; i < len; ++i) { + var base = type.baseTypes[i]; + var properties = getPropertiesOfObjectType(base); + for (var j = 0, proplen = properties.length; j < proplen; ++j) { + var prop = properties[j]; + 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_properties_0_of_types_1_and_2_are_not_identical, prop.name, typeName1, typeName2); + errorInfo = ts.chainDiagnosticMessages(errorInfo, ts.Diagnostics.Interface_0_cannot_simultaneously_extend_types_1_and_2, typeToString(type), typeName1, typeName2); + addDiagnostic(ts.createDiagnosticForNodeFromMessageChain(typeNode, errorInfo, program.getCompilerHost().getNewLine())); + } + } + } + } + return ok; + } + function checkInterfaceDeclaration(node) { + checkTypeParameters(node.typeParameters); + if (fullTypeCheck) { + checkTypeNameIsReserved(node.name, ts.Diagnostics.Interface_name_cannot_be_0); + checkExportsOnMergedDeclarations(node); + var symbol = getSymbolOfNode(node); + var firstInterfaceDecl = getDeclarationOfKind(symbol, 189 /* InterfaceDeclaration */); + 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(node.baseTypes, checkTypeReference); + ts.forEach(node.members, checkSourceElement); + if (fullTypeCheck) { + checkTypeForDuplicateIndexSignatures(node); + } + } + function checkTypeAliasDeclaration(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 /* EnumValuesComputed */)) { + 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 (isNumericName(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, enumIsConst); + 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 /* EnumValuesComputed */; + } + function getConstantValueForEnumMemberInitializer(initializer, enumIsConst) { + return evalConstant(initializer); + function evalConstant(e) { + switch (e.kind) { + case 154 /* PrefixOperator */: + var value = evalConstant(e.operand); + if (value === undefined) { + return undefined; + } + switch (e.operator) { + case 32 /* PlusToken */: return value; + case 33 /* MinusToken */: return -value; + case 46 /* TildeToken */: return enumIsConst ? ~value : undefined; + } + return undefined; + case 156 /* BinaryExpression */: + if (!enumIsConst) { + return undefined; + } + var left = evalConstant(e.left); + if (left === undefined) { + return undefined; + } + var right = evalConstant(e.right); + if (right === undefined) { + return undefined; + } + switch (e.operator) { + case 43 /* BarToken */: return left | right; + case 42 /* AmpersandToken */: return left & right; + case 40 /* GreaterThanGreaterThanToken */: return left >> right; + case 41 /* GreaterThanGreaterThanGreaterThanToken */: return left >>> right; + case 39 /* LessThanLessThanToken */: return left << right; + case 44 /* CaretToken */: return left ^ right; + case 34 /* AsteriskToken */: return left * right; + case 35 /* SlashToken */: return left / right; + case 32 /* PlusToken */: return left + right; + case 33 /* MinusToken */: return left - right; + case 36 /* PercentToken */: return left % right; + } + return undefined; + case 6 /* NumericLiteral */: + return +e.text; + case 151 /* ParenExpression */: + return enumIsConst ? evalConstant(e.expression) : undefined; + case 63 /* Identifier */: + case 146 /* IndexedAccess */: + case 145 /* PropertyAccess */: + if (!enumIsConst) { + return undefined; + } + var member = initializer.parent; + var currentType = getTypeOfSymbol(getSymbolOfNode(member.parent)); + var enumType; + var propertyName; + if (e.kind === 63 /* Identifier */) { + enumType = currentType; + propertyName = e.text; + } + else { + if (e.kind === 146 /* IndexedAccess */) { + if (e.index.kind !== 7 /* StringLiteral */) { + return undefined; + } + var enumType = getTypeOfNode(e.object); + propertyName = e.index.text; + } + else { + var enumType = getTypeOfNode(e.left); + propertyName = e.right.text; + } + if (enumType !== currentType) { + return undefined; + } + } + if (propertyName === undefined) { + return undefined; + } + var property = getPropertyOfObjectType(enumType, propertyName); + if (!property || !(property.flags & 8 /* EnumMember */)) { + 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 (!fullTypeCheck) { + return; + } + 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 = 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 !== 191 /* EnumDeclaration */) { + 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 === 188 /* ClassDeclaration */ || (declaration.kind === 186 /* FunctionDeclaration */ && declaration.body)) && !ts.isInAmbientContext(declaration)) { + return declaration; + } + } + return undefined; + } + function checkModuleDeclaration(node) { + if (fullTypeCheck) { + checkCollisionWithCapturedThisVariable(node, node.name); + checkCollisionWithRequireExportsInGeneratedCode(node, node.name); + checkExportsOnMergedDeclarations(node); + var symbol = getSymbolOfNode(node); + if (symbol.flags & 512 /* ValueModule */ && symbol.declarations.length > 1 && !ts.isInAmbientContext(node)) { + 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 === 7 /* StringLiteral */) { + 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 === 121 /* QualifiedName */) { + node = node.left; + } + return node; + } + function checkImportDeclaration(node) { + checkCollisionWithCapturedThisVariable(node, node.name); + checkCollisionWithRequireExportsInGeneratedCode(node, node.name); + var symbol = getSymbolOfNode(node); + var target; + if (node.entityName) { + target = resolveImport(symbol); + if (target !== unknownSymbol) { + if (target.flags & 107455 /* Value */) { + var moduleName = getFirstIdentifier(node.entityName); + if (resolveEntityName(node, moduleName, 107455 /* Value */ | 1536 /* Namespace */).flags & 1536 /* Namespace */) { + checkExpression(node.entityName); + } + else { + error(moduleName, ts.Diagnostics.Module_0_is_hidden_by_a_local_declaration_with_the_same_name, ts.declarationNameToString(moduleName)); + } + } + if (target.flags & 3152352 /* Type */) { + checkTypeNameIsReserved(node.name, ts.Diagnostics.Import_name_cannot_be_0); + } + } + } + else { + if (node.parent.kind === 197 /* SourceFile */) { + target = resolveImport(symbol); + } + else if (node.parent.kind === 193 /* ModuleBlock */ && node.parent.parent.name.kind === 7 /* StringLiteral */) { + if (isExternalModuleNameRelative(node.externalModuleName.text)) { + error(node, ts.Diagnostics.Import_declaration_in_an_ambient_external_module_declaration_cannot_reference_external_module_through_relative_external_module_name); + target = unknownSymbol; + } + else { + target = resolveImport(symbol); + } + } + else { + target = unknownSymbol; + } + } + if (target !== unknownSymbol) { + var excludedMeanings = (symbol.flags & 107455 /* Value */ ? 107455 /* Value */ : 0) | (symbol.flags & 3152352 /* Type */ ? 3152352 /* Type */ : 0) | (symbol.flags & 1536 /* Namespace */ ? 1536 /* Namespace */ : 0); + if (target.flags & excludedMeanings) { + error(node, ts.Diagnostics.Import_declaration_conflicts_with_local_declaration_of_0, symbolToString(symbol)); + } + } + } + function checkExportAssignment(node) { + var container = node.parent; + if (container.kind !== 197 /* SourceFile */) { + container = container.parent; + } + checkTypeOfExportAssignmentSymbol(getSymbolOfNode(container)); + } + function checkSourceElement(node) { + if (!node) + return; + switch (node.kind) { + case 122 /* TypeParameter */: + return checkTypeParameter(node); + case 123 /* Parameter */: + return checkParameter(node); + case 124 /* Property */: + return checkPropertyDeclaration(node); + case 133 /* FunctionType */: + case 134 /* ConstructorType */: + case 129 /* CallSignature */: + case 130 /* ConstructSignature */: + case 131 /* IndexSignature */: + return checkSignatureDeclaration(node); + case 125 /* Method */: + return checkMethodDeclaration(node); + case 126 /* Constructor */: + return checkConstructorDeclaration(node); + case 127 /* GetAccessor */: + case 128 /* SetAccessor */: + return checkAccessorDeclaration(node); + case 132 /* TypeReference */: + return checkTypeReference(node); + case 135 /* TypeQuery */: + return checkTypeQuery(node); + case 136 /* TypeLiteral */: + return checkTypeLiteral(node); + case 137 /* ArrayType */: + return checkArrayType(node); + case 138 /* TupleType */: + return checkTupleType(node); + case 139 /* UnionType */: + return checkUnionType(node); + case 140 /* ParenType */: + return checkSourceElement(node.type); + case 186 /* FunctionDeclaration */: + return checkFunctionDeclaration(node); + case 162 /* Block */: + return checkBlock(node); + case 187 /* FunctionBlock */: + case 193 /* ModuleBlock */: + return checkBody(node); + case 163 /* VariableStatement */: + return checkVariableStatement(node); + case 165 /* ExpressionStatement */: + return checkExpressionStatement(node); + case 166 /* IfStatement */: + return checkIfStatement(node); + case 167 /* DoStatement */: + return checkDoStatement(node); + case 168 /* WhileStatement */: + return checkWhileStatement(node); + case 169 /* ForStatement */: + return checkForStatement(node); + case 170 /* ForInStatement */: + return checkForInStatement(node); + case 171 /* ContinueStatement */: + case 172 /* BreakStatement */: + return checkBreakOrContinueStatement(node); + case 173 /* ReturnStatement */: + return checkReturnStatement(node); + case 174 /* WithStatement */: + return checkWithStatement(node); + case 175 /* SwitchStatement */: + return checkSwitchStatement(node); + case 178 /* LabeledStatement */: + return checkLabeledStatement(node); + case 179 /* ThrowStatement */: + return checkThrowStatement(node); + case 180 /* TryStatement */: + return checkTryStatement(node); + case 185 /* VariableDeclaration */: + return ts.Debug.fail("Checker encountered variable declaration"); + case 188 /* ClassDeclaration */: + return checkClassDeclaration(node); + case 189 /* InterfaceDeclaration */: + return checkInterfaceDeclaration(node); + case 190 /* TypeAliasDeclaration */: + return checkTypeAliasDeclaration(node); + case 191 /* EnumDeclaration */: + return checkEnumDeclaration(node); + case 192 /* ModuleDeclaration */: + return checkModuleDeclaration(node); + case 194 /* ImportDeclaration */: + return checkImportDeclaration(node); + case 195 /* ExportAssignment */: + return checkExportAssignment(node); + } + } + function checkFunctionExpressionBodies(node) { + switch (node.kind) { + case 152 /* FunctionExpression */: + case 153 /* ArrowFunction */: + ts.forEach(node.parameters, checkFunctionExpressionBodies); + checkFunctionExpressionBody(node); + break; + case 125 /* Method */: + case 126 /* Constructor */: + case 127 /* GetAccessor */: + case 128 /* SetAccessor */: + case 186 /* FunctionDeclaration */: + ts.forEach(node.parameters, checkFunctionExpressionBodies); + break; + case 174 /* WithStatement */: + checkFunctionExpressionBodies(node.expression); + break; + case 123 /* Parameter */: + case 124 /* Property */: + case 141 /* ArrayLiteral */: + case 142 /* ObjectLiteral */: + case 143 /* PropertyAssignment */: + case 145 /* PropertyAccess */: + case 146 /* IndexedAccess */: + case 147 /* CallExpression */: + case 148 /* NewExpression */: + case 149 /* TaggedTemplateExpression */: + case 150 /* TypeAssertion */: + case 151 /* ParenExpression */: + case 154 /* PrefixOperator */: + case 155 /* PostfixOperator */: + case 156 /* BinaryExpression */: + case 157 /* ConditionalExpression */: + case 162 /* Block */: + case 187 /* FunctionBlock */: + case 193 /* ModuleBlock */: + case 163 /* VariableStatement */: + case 165 /* ExpressionStatement */: + case 166 /* IfStatement */: + case 167 /* DoStatement */: + case 168 /* WhileStatement */: + case 169 /* ForStatement */: + case 170 /* ForInStatement */: + case 171 /* ContinueStatement */: + case 172 /* BreakStatement */: + case 173 /* ReturnStatement */: + case 175 /* SwitchStatement */: + case 176 /* CaseClause */: + case 177 /* DefaultClause */: + case 178 /* LabeledStatement */: + case 179 /* ThrowStatement */: + case 180 /* TryStatement */: + case 181 /* TryBlock */: + case 182 /* CatchBlock */: + case 183 /* FinallyBlock */: + case 185 /* VariableDeclaration */: + case 188 /* ClassDeclaration */: + case 191 /* EnumDeclaration */: + case 196 /* EnumMember */: + case 197 /* SourceFile */: + ts.forEachChild(node, checkFunctionExpressionBodies); + break; + } + } + function checkBody(node) { + checkBlock(node); + checkFunctionExpressionBodies(node); + } + function checkSourceFile(node) { + var links = getNodeLinks(node); + if (!(links.flags & 1 /* TypeChecked */)) { + emitExtends = false; + potentialThisCollisions.length = 0; + checkBody(node); + if (ts.isExternalModule(node)) { + var symbol = getExportAssignmentSymbol(node.symbol); + if (symbol && symbol.flags & 33554432 /* Import */) { + getSymbolLinks(symbol).referenced = true; + } + } + if (potentialThisCollisions.length) { + ts.forEach(potentialThisCollisions, checkIfThisIsCapturedInEnclosingScope); + potentialThisCollisions.length = 0; + } + if (emitExtends) + links.flags |= 8 /* EmitExtends */; + links.flags |= 1 /* TypeChecked */; + } + } + function checkProgram() { + ts.forEach(program.getSourceFiles(), checkSourceFile); + } + function getSortedDiagnostics() { + ts.Debug.assert(fullTypeCheck, "diagnostics are available only in the full typecheck mode"); + if (diagnosticsModified) { + diagnostics.sort(ts.compareDiagnostics); + diagnostics = ts.deduplicateSortedDiagnostics(diagnostics); + diagnosticsModified = false; + } + return diagnostics; + } + function getDiagnostics(sourceFile) { + if (sourceFile) { + checkSourceFile(sourceFile); + return ts.filter(getSortedDiagnostics(), function (d) { return d.file === sourceFile; }); + } + checkProgram(); + return getSortedDiagnostics(); + } + function getDeclarationDiagnostics(targetSourceFile) { + var resolver = createResolver(); + checkSourceFile(targetSourceFile); + return ts.getDeclarationDiagnostics(program, resolver, targetSourceFile); + } + function getGlobalDiagnostics() { + return ts.filter(getSortedDiagnostics(), function (d) { return !d.file; }); + } + function getNodeAtPosition(sourceFile, position) { + function findChildAtPosition(parent) { + var child = ts.forEachChild(parent, function (node) { + if (position >= node.pos && position <= node.end && position >= ts.getTokenPosOfNode(node)) { + return findChildAtPosition(node); + } + }); + return child || parent; + } + if (position < sourceFile.pos) + position = sourceFile.pos; + if (position > sourceFile.end) + position = sourceFile.end; + return findChildAtPosition(sourceFile); + } + function isInsideWithStatementBody(node) { + if (node) { + while (node.parent) { + if (node.parent.kind === 174 /* WithStatement */ && node.parent.statement === node) { + return true; + } + node = node.parent; + } + } + return false; + } + function getSymbolsInScope(location, meaning) { + var symbols = {}; + var memberFlags = 0; + 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 197 /* SourceFile */: + if (!ts.isExternalModule(location)) + break; + case 192 /* ModuleDeclaration */: + copySymbols(getSymbolOfNode(location).exports, meaning & 35653619 /* ModuleMember */); + break; + case 191 /* EnumDeclaration */: + copySymbols(getSymbolOfNode(location).exports, meaning & 8 /* EnumMember */); + break; + case 188 /* ClassDeclaration */: + case 189 /* InterfaceDeclaration */: + if (!(memberFlags & 128 /* Static */)) { + copySymbols(getSymbolOfNode(location).members, meaning & 3152352 /* Type */); + } + break; + case 152 /* FunctionExpression */: + if (location.name) { + copySymbol(location.symbol, meaning); + } + break; + case 182 /* CatchBlock */: + if (location.variable.text) { + copySymbol(location.symbol, meaning); + } + break; + } + memberFlags = location.flags; + location = location.parent; + } + copySymbols(globals, meaning); + return ts.mapToArray(symbols); + } + function isTypeDeclarationName(name) { + return name.kind == 63 /* Identifier */ && isTypeDeclaration(name.parent) && name.parent.name === name; + } + function isTypeDeclaration(node) { + switch (node.kind) { + case 122 /* TypeParameter */: + case 188 /* ClassDeclaration */: + case 189 /* InterfaceDeclaration */: + case 190 /* TypeAliasDeclaration */: + case 191 /* EnumDeclaration */: + return true; + } + } + function isTypeReferenceIdentifier(entityName) { + var node = entityName; + while (node.parent && node.parent.kind === 121 /* QualifiedName */) + node = node.parent; + return node.parent && node.parent.kind === 132 /* TypeReference */; + } + function isTypeNode(node) { + if (132 /* FirstTypeNode */ <= node.kind && node.kind <= 140 /* LastTypeNode */) { + return true; + } + switch (node.kind) { + case 109 /* AnyKeyword */: + case 116 /* NumberKeyword */: + case 118 /* StringKeyword */: + case 110 /* BooleanKeyword */: + return true; + case 97 /* VoidKeyword */: + return node.parent.kind !== 154 /* PrefixOperator */; + case 7 /* StringLiteral */: + return node.parent.kind === 123 /* Parameter */; + case 63 /* Identifier */: + if (node.parent.kind === 121 /* QualifiedName */ && node.parent.right === node) { + node = node.parent; + } + case 121 /* QualifiedName */: + ts.Debug.assert(node.kind === 63 /* Identifier */ || node.kind === 121 /* QualifiedName */, "'node' was expected to be a qualified name or identifier in 'isTypeNode'."); + var parent = node.parent; + if (parent.kind === 135 /* TypeQuery */) { + return false; + } + if (132 /* FirstTypeNode */ <= parent.kind && parent.kind <= 140 /* LastTypeNode */) { + return true; + } + switch (parent.kind) { + case 122 /* TypeParameter */: + return node === parent.constraint; + case 124 /* Property */: + case 123 /* Parameter */: + case 185 /* VariableDeclaration */: + return node === parent.type; + case 186 /* FunctionDeclaration */: + case 152 /* FunctionExpression */: + case 153 /* ArrowFunction */: + case 126 /* Constructor */: + case 125 /* Method */: + case 127 /* GetAccessor */: + case 128 /* SetAccessor */: + return node === parent.type; + case 129 /* CallSignature */: + case 130 /* ConstructSignature */: + case 131 /* IndexSignature */: + return node === parent.type; + case 150 /* TypeAssertion */: + return node === parent.type; + case 147 /* CallExpression */: + case 148 /* NewExpression */: + return parent.typeArguments && parent.typeArguments.indexOf(node) >= 0; + case 149 /* TaggedTemplateExpression */: + return false; + } + } + return false; + } + function isInRightSideOfImportOrExportAssignment(node) { + while (node.parent.kind === 121 /* QualifiedName */) { + node = node.parent; + } + if (node.parent.kind === 194 /* ImportDeclaration */) { + return node.parent.entityName === node; + } + if (node.parent.kind === 195 /* ExportAssignment */) { + return node.parent.exportName === node; + } + return false; + } + function isRightSideOfQualifiedNameOrPropertyAccess(node) { + return (node.parent.kind === 121 /* QualifiedName */ || node.parent.kind === 145 /* PropertyAccess */) && node.parent.right === node; + } + function getSymbolOfEntityName(entityName) { + if (ts.isDeclarationOrFunctionExpressionOrCatchVariableName(entityName)) { + return getSymbolOfNode(entityName.parent); + } + if (entityName.parent.kind === 195 /* ExportAssignment */) { + return resolveEntityName(entityName.parent.parent, entityName, 107455 /* Value */ | 3152352 /* Type */ | 1536 /* Namespace */ | 33554432 /* Import */); + } + if (isInRightSideOfImportOrExportAssignment(entityName)) { + return getSymbolOfPartOfRightHandSideOfImport(entityName); + } + if (isRightSideOfQualifiedNameOrPropertyAccess(entityName)) { + entityName = entityName.parent; + } + if (ts.isExpression(entityName)) { + if (entityName.kind === 63 /* Identifier */) { + var meaning = 107455 /* Value */ | 33554432 /* Import */; + return resolveEntityName(entityName, entityName, meaning); + } + else if (entityName.kind === 121 /* QualifiedName */ || entityName.kind === 145 /* PropertyAccess */) { + var symbol = getNodeLinks(entityName).resolvedSymbol; + if (!symbol) { + checkPropertyAccess(entityName); + } + return getNodeLinks(entityName).resolvedSymbol; + } + else { + return; + } + } + else if (isTypeReferenceIdentifier(entityName)) { + var meaning = entityName.parent.kind === 132 /* TypeReference */ ? 3152352 /* Type */ : 1536 /* Namespace */; + meaning |= 33554432 /* Import */; + return resolveEntityName(entityName, entityName, meaning); + } + return undefined; + } + function getSymbolInfo(node) { + if (isInsideWithStatementBody(node)) { + return undefined; + } + if (ts.isDeclarationOrFunctionExpressionOrCatchVariableName(node)) { + return getSymbolOfNode(node.parent); + } + if (node.kind === 63 /* Identifier */ && isInRightSideOfImportOrExportAssignment(node)) { + return node.parent.kind === 195 /* ExportAssignment */ ? getSymbolOfEntityName(node) : getSymbolOfPartOfRightHandSideOfImport(node); + } + switch (node.kind) { + case 63 /* Identifier */: + case 145 /* PropertyAccess */: + case 121 /* QualifiedName */: + return getSymbolOfEntityName(node); + case 91 /* ThisKeyword */: + case 89 /* SuperKeyword */: + var type = checkExpression(node); + return type.symbol; + case 111 /* ConstructorKeyword */: + var constructorDeclaration = node.parent; + if (constructorDeclaration && constructorDeclaration.kind === 126 /* Constructor */) { + return constructorDeclaration.parent.symbol; + } + return undefined; + case 7 /* StringLiteral */: + if (node.parent.kind === 194 /* ImportDeclaration */ && node.parent.externalModuleName === node) { + var importSymbol = getSymbolOfNode(node.parent); + var moduleType = getTypeOfSymbol(importSymbol); + return moduleType ? moduleType.symbol : undefined; + } + case 6 /* NumericLiteral */: + if (node.parent.kind == 146 /* IndexedAccess */ && node.parent.index === node) { + var objectType = checkExpression(node.parent.object); + 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 === 144 /* ShorthandPropertyAssignment */) { + return resolveEntityName(location, location.name, 107455 /* Value */); + } + 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.isDeclarationOrFunctionExpressionOrCatchVariableName(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) { + var type = getApparentType(type); + var propsByName = createSymbolTable(getPropertiesOfType(type)); + if (getSignaturesOfType(type, 0 /* Call */).length || getSignaturesOfType(type, 1 /* Construct */).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 & 1073741824 /* UnionProperty */) { + var symbols = []; + var name = symbol.name; + ts.forEach(getSymbolLinks(symbol).unionType.types, function (t) { + symbols.push(getPropertyOfType(t, name)); + }); + return symbols; + } + else if (symbol.flags & 268435456 /* Transient */) { + var target = getSymbolLinks(symbol).target; + if (target) { + return [target]; + } + } + return [symbol]; + } + function isExternalModuleSymbol(symbol) { + return symbol.flags & 512 /* ValueModule */ && symbol.declarations.length === 1 && symbol.declarations[0].kind === 197 /* SourceFile */; + } + 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) && node.locals[name].flags & (107455 /* Value */ | 4194304 /* ExportValue */)) { + return false; + } + } + return true; + } + function getLocalNameOfContainer(container) { + var links = getNodeLinks(container); + if (!links.localModuleName) { + var prefix = ""; + var name = ts.unescapeIdentifier(container.name.text); + while (!isUniqueLocalName(ts.escapeIdentifier(prefix + name), container)) { + prefix += "_"; + } + links.localModuleName = prefix + ts.getTextOfNode(container.name); + } + return links.localModuleName; + } + function getLocalNameForSymbol(symbol, location) { + var node = location; + while (node) { + if ((node.kind === 192 /* ModuleDeclaration */ || node.kind === 191 /* EnumDeclaration */) && getSymbolOfNode(node) === symbol) { + return getLocalNameOfContainer(node); + } + node = node.parent; + } + ts.Debug.fail("getLocalNameForSymbol failed"); + } + function getExpressionNamePrefix(node) { + var symbol = getNodeLinks(node).resolvedSymbol; + if (symbol) { + var exportSymbol = getExportSymbolOfValueSymbolIfExported(symbol); + if (symbol !== exportSymbol && !(exportSymbol.flags & 944 /* ExportHasLocal */)) { + symbol = exportSymbol; + } + if (symbol.parent) { + return isExternalModuleSymbol(symbol.parent) ? "exports" : getLocalNameForSymbol(getParentOfSymbol(symbol), node.parent); + } + } + } + function getExportAssignmentName(node) { + var symbol = getExportAssignmentSymbol(getSymbolOfNode(node)); + return symbol && symbolIsValue(symbol) && !isConstEnumSymbol(symbol) ? symbolToString(symbol) : undefined; + } + function isTopLevelValueImportWithEntityName(node) { + if (node.parent.kind !== 197 /* SourceFile */ || !node.entityName) { + return false; + } + return isImportResolvedToValue(getSymbolOfNode(node)); + } + function hasSemanticErrors() { + return getDiagnostics().length > 0 || getGlobalDiagnostics().length > 0; + } + function isEmitBlocked(sourceFile) { + return program.getDiagnostics(sourceFile).length !== 0 || hasEarlyErrors(sourceFile) || (compilerOptions.noEmitOnError && getDiagnostics(sourceFile).length !== 0); + } + function hasEarlyErrors(sourceFile) { + return ts.forEach(getDiagnostics(sourceFile), function (d) { return d.isEarly; }); + } + function isImportResolvedToValue(symbol) { + var target = resolveImport(symbol); + return target !== unknownSymbol && target.flags & 107455 /* Value */ && !isConstEnumOrConstEnumOnlyModule(target); + } + function isConstEnumOrConstEnumOnlyModule(s) { + return isConstEnumSymbol(s) || s.constEnumOnlyModule; + } + function isReferencedImportDeclaration(node) { + var symbol = getSymbolOfNode(node); + if (getSymbolLinks(symbol).referenced) { + return true; + } + if (node.flags & 1 /* Export */) { + return isImportResolvedToValue(symbol); + } + return false; + } + function isImplementationOfOverload(node) { + if (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) { + var symbol = getNodeLinks(node).resolvedSymbol; + if (symbol && (symbol.flags & 8 /* EnumMember */)) { + var declaration = symbol.valueDeclaration; + var constantValue; + if (declaration.kind === 196 /* EnumMember */ && (constantValue = getNodeLinks(declaration).enumMemberValue) !== undefined) { + return constantValue; + } + } + return undefined; + } + function writeTypeAtLocation(location, enclosingDeclaration, flags, writer) { + var symbol = getSymbolOfNode(location); + var type = symbol && !(symbol.flags & (2048 /* TypeLiteral */ | 131072 /* CallSignature */ | 262144 /* ConstructSignature */)) ? getTypeOfSymbol(symbol) : getTypeFromTypeNode(location); + getSymbolDisplayBuilder().buildTypeDisplay(type, writer, enclosingDeclaration, flags); + } + function writeReturnTypeOfSignatureDeclaration(signatureDeclaration, enclosingDeclaration, flags, writer) { + var signature = getSignatureFromDeclaration(signatureDeclaration); + getSymbolDisplayBuilder().buildTypeDisplay(getReturnTypeOfSignature(signature), writer, enclosingDeclaration, flags); + } + function createResolver() { + return { + getProgram: function () { return program; }, + getLocalNameOfContainer: getLocalNameOfContainer, + getExpressionNamePrefix: getExpressionNamePrefix, + getExportAssignmentName: getExportAssignmentName, + isReferencedImportDeclaration: isReferencedImportDeclaration, + getNodeCheckFlags: getNodeCheckFlags, + getEnumMemberValue: getEnumMemberValue, + isTopLevelValueImportWithEntityName: isTopLevelValueImportWithEntityName, + hasSemanticErrors: hasSemanticErrors, + isEmitBlocked: isEmitBlocked, + isDeclarationVisible: isDeclarationVisible, + isImplementationOfOverload: isImplementationOfOverload, + writeTypeAtLocation: writeTypeAtLocation, + writeReturnTypeOfSignatureDeclaration: writeReturnTypeOfSignatureDeclaration, + isSymbolAccessible: isSymbolAccessible, + isEntityNameVisible: isEntityNameVisible, + getConstantValue: getConstantValue + }; + } + function invokeEmitter(targetSourceFile) { + var resolver = createResolver(); + checkProgram(); + return ts.emitFiles(resolver, targetSourceFile); + } + function initializeTypeChecker() { + ts.forEach(program.getSourceFiles(), function (file) { + ts.bindSourceFile(file); + ts.forEach(file.semanticDiagnostics, addDiagnostic); + }); + ts.forEach(program.getSourceFiles(), function (file) { + if (!ts.isExternalModule(file)) { + extendSymbolTable(globals, file.locals); + } + }); + getSymbolLinks(undefinedSymbol).type = undefinedType; + getSymbolLinks(argumentsSymbol).type = getGlobalType("IArguments"); + getSymbolLinks(unknownSymbol).type = unknownType; + globals[undefinedSymbol.name] = undefinedSymbol; + globalArraySymbol = getGlobalSymbol("Array"); + globalArrayType = getTypeOfGlobalSymbol(globalArraySymbol, 1); + globalObjectType = getGlobalType("Object"); + globalFunctionType = getGlobalType("Function"); + globalStringType = getGlobalType("String"); + globalNumberType = getGlobalType("Number"); + globalBooleanType = getGlobalType("Boolean"); + globalRegExpType = getGlobalType("RegExp"); + globalTemplateStringsArrayType = compilerOptions.target >= 2 /* ES6 */ ? getGlobalType("TemplateStringsArray") : unknownType; + } + initializeTypeChecker(); + return checker; + } + ts.createTypeChecker = createTypeChecker; +})(ts || (ts = {})); +var TypeScript; +(function (TypeScript) { + TypeScript.DiagnosticCode = { + error_TS_0_1: "error TS{0}: {1}", + warning_TS_0_1: "warning TS{0}: {1}", + Unrecognized_escape_sequence: "Unrecognized escape sequence.", + Unexpected_character_0: "Unexpected character {0}.", + Unterminated_string_literal: "Unterminated string literal.", + Identifier_expected: "Identifier expected.", + _0_keyword_expected: "'{0}' keyword expected.", + _0_expected: "'{0}' expected.", + Identifier_expected_0_is_a_keyword: "Identifier expected; '{0}' is a keyword.", + Automatic_semicolon_insertion_not_allowed: "Automatic semicolon insertion not allowed.", + Unexpected_token_0_expected: "Unexpected token; '{0}' expected.", + Trailing_comma_not_allowed: "Trailing comma not allowed.", + public_or_private_modifier_must_precede_static: "'public' or 'private' modifier must precede 'static'.", + Unexpected_token: "Unexpected token.", + Catch_clause_parameter_cannot_have_a_type_annotation: "Catch clause parameter cannot have a type annotation.", + A_rest_parameter_must_be_last_in_a_parameter_list: "A rest parameter must be last in a parameter list.", + Parameter_cannot_have_question_mark_and_initializer: "Parameter cannot have question mark and initializer.", + A_required_parameter_cannot_follow_an_optional_parameter: "A required parameter cannot follow an optional parameter.", + Index_signatures_cannot_have_rest_parameters: "Index signatures cannot have rest parameters.", + Index_signature_parameter_cannot_have_modifiers: "Index signature parameter cannot have modifiers.", + Index_signature_parameter_cannot_have_a_question_mark: "Index signature parameter cannot have a question mark.", + Index_signature_parameter_cannot_have_an_initializer: "Index signature parameter cannot have an initializer.", + Index_signature_must_have_a_type_annotation: "Index signature must have a type annotation.", + Index_signature_parameter_must_have_a_type_annotation: "Index signature parameter must have a type annotation.", + Index_signature_parameter_type_must_be_string_or_number: "Index signature parameter type must be 'string' or 'number'.", + extends_clause_already_seen: "'extends' clause already seen.", + extends_clause_must_precede_implements_clause: "'extends' clause must precede 'implements' clause.", + Classes_can_only_extend_a_single_class: "Classes can only extend a single class.", + implements_clause_already_seen: "'implements' clause already seen.", + Accessibility_modifier_already_seen: "Accessibility modifier already seen.", + _0_modifier_must_precede_1_modifier: "'{0}' modifier must precede '{1}' modifier.", + _0_modifier_already_seen: "'{0}' modifier already seen.", + _0_modifier_cannot_appear_on_a_class_element: "'{0}' modifier cannot appear on a class element.", + Interface_declaration_cannot_have_implements_clause: "Interface declaration cannot have 'implements' clause.", + super_invocation_cannot_have_type_arguments: "'super' invocation cannot have type arguments.", + Only_ambient_modules_can_use_quoted_names: "Only ambient modules can use quoted names.", + Statements_are_not_allowed_in_ambient_contexts: "Statements are not allowed in ambient contexts.", + A_function_implementation_cannot_be_declared_in_an_ambient_context: "A function implementation cannot be declared in an ambient context.", + A_declare_modifier_cannot_be_used_in_an_already_ambient_context: "A 'declare' modifier cannot be used in an already ambient context.", + Initializers_are_not_allowed_in_ambient_contexts: "Initializers are not allowed in ambient contexts.", + _0_modifier_cannot_appear_on_a_module_element: "'{0}' modifier cannot appear on a module element.", + A_declare_modifier_cannot_be_used_with_an_interface_declaration: "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: "A 'declare' modifier is required for a top level declaration in a .d.ts file.", + A_rest_parameter_cannot_be_optional: "A rest parameter cannot be optional.", + A_rest_parameter_cannot_have_an_initializer: "A rest parameter cannot have an initializer.", + set_accessor_must_have_exactly_one_parameter: "'set' accessor must have exactly one parameter.", + set_accessor_parameter_cannot_be_optional: "'set' accessor parameter cannot be optional.", + set_accessor_parameter_cannot_have_an_initializer: "'set' accessor parameter cannot have an initializer.", + set_accessor_cannot_have_rest_parameter: "'set' accessor cannot have rest parameter.", + get_accessor_cannot_have_parameters: "'get' accessor cannot have parameters.", + Modifiers_cannot_appear_here: "Modifiers cannot appear here.", + Accessors_are_only_available_when_targeting_ECMAScript_5_and_higher: "Accessors are only available when targeting ECMAScript 5 and higher.", + Enum_member_must_have_initializer: "Enum member must have initializer.", + Export_assignment_cannot_be_used_in_internal_modules: "Export assignment cannot be used in internal modules.", + Ambient_enum_elements_can_only_have_integer_literal_initializers: "Ambient enum elements can only have integer literal initializers.", + module_class_interface_enum_import_or_statement: "module, class, interface, enum, import or statement", + constructor_function_accessor_or_variable: "constructor, function, accessor or variable", + statement: "statement", + case_or_default_clause: "case or default clause", + identifier: "identifier", + call_construct_index_property_or_function_signature: "call, construct, index, property or function signature", + expression: "expression", + type_name: "type name", + property_or_accessor: "property or accessor", + parameter: "parameter", + type: "type", + type_parameter: "type parameter", + A_declare_modifier_cannot_be_used_with_an_import_declaration: "A 'declare' modifier cannot be used with an import declaration.", + Invalid_reference_directive_syntax: "Invalid 'reference' directive syntax.", + Octal_literals_are_not_available_when_targeting_ECMAScript_5_and_higher: "Octal literals are not available when targeting ECMAScript 5 and higher.", + Accessors_are_not_allowed_in_ambient_contexts: "Accessors are not allowed in ambient contexts.", + _0_modifier_cannot_appear_on_a_constructor_declaration: "'{0}' modifier cannot appear on a constructor declaration.", + _0_modifier_cannot_appear_on_a_parameter: "'{0}' modifier cannot appear on a parameter.", + Only_a_single_variable_declaration_is_allowed_in_a_for_in_statement: "Only a single variable declaration is allowed in a 'for...in' statement.", + Type_parameters_cannot_appear_on_a_constructor_declaration: "Type parameters cannot appear on a constructor declaration.", + Type_annotation_cannot_appear_on_a_constructor_declaration: "Type annotation cannot appear on a constructor declaration.", + Type_parameters_cannot_appear_on_an_accessor: "Type parameters cannot appear on an accessor.", + Type_annotation_cannot_appear_on_a_set_accessor: "Type annotation cannot appear on a 'set' accessor.", + Index_signature_must_have_exactly_one_parameter: "Index signature must have exactly one parameter.", + _0_list_cannot_be_empty: "'{0}' list cannot be empty.", + variable_declaration: "variable declaration", + type_argument: "type argument", + Invalid_use_of_0_in_strict_mode: "Invalid use of '{0}' in strict mode.", + with_statements_are_not_allowed_in_strict_mode: "'with' statements are not allowed in strict mode.", + delete_cannot_be_called_on_an_identifier_in_strict_mode: "'delete' cannot be called on an identifier in strict mode.", + Invalid_left_hand_side_in_for_in_statement: "Invalid left-hand side in 'for...in' statement.", + continue_statement_can_only_be_used_within_an_enclosing_iteration_statement: "'continue' statement can only be used within an enclosing iteration statement.", + break_statement_can_only_be_used_within_an_enclosing_iteration_or_switch_statement: "'break' statement can only be used within an enclosing iteration or switch statement.", + Jump_target_not_found: "Jump target not found.", + Jump_target_cannot_cross_function_boundary: "Jump target cannot cross function boundary.", + return_statement_must_be_contained_within_a_function_body: "'return' statement must be contained within a function body.", + Expression_expected: "Expression expected.", + Type_expected: "Type expected.", + Template_literal_cannot_be_used_as_an_element_name: "Template literal cannot be used as an element name.", + Computed_property_names_cannot_be_used_here: "Computed property names cannot be used here.", + yield_expression_must_be_contained_within_a_generator_declaration: "'yield' expression must be contained within a generator declaration.", + Unterminated_regular_expression_literal: "Unterminated regular expression literal.", + Unterminated_template_literal: "Unterminated template literal.", + await_expression_must_be_contained_within_an_async_declaration: "'await' expression must be contained within an async declaration.", + async_arrow_function_parameters_must_be_parenthesized: "'async' arrow function parameters must be parenthesized.", + A_generator_declaration_cannot_have_the_async_modifier: "A generator declaration cannot have the 'async' modifier.", + async_modifier_cannot_appear_here: "'async' modifier cannot appear here.", + comma_expression_cannot_appear_in_a_computed_property_name: "'comma' expression cannot appear in a computed property name.", + Duplicate_identifier_0: "Duplicate identifier '{0}'.", + The_name_0_does_not_exist_in_the_current_scope: "The name '{0}' does not exist in the current scope.", + The_name_0_does_not_refer_to_a_value: "The name '{0}' does not refer to a value.", + super_can_only_be_used_inside_a_class_instance_method: "'super' can only be used inside a class instance method.", + The_left_hand_side_of_an_assignment_expression_must_be_a_variable_property_or_indexer: "The left-hand side of an assignment expression must be a variable, property or indexer.", + Value_of_type_0_is_not_callable_Did_you_mean_to_include_new: "Value of type '{0}' is not callable. Did you mean to include 'new'?", + Value_of_type_0_is_not_callable: "Value of type '{0}' is not callable.", + Value_of_type_0_is_not_newable: "Value of type '{0}' is not newable.", + An_index_expression_argument_must_be_string_number_or_any: "An index expression argument must be 'string', 'number', or 'any'.", + Operator_0_cannot_be_applied_to_types_1_and_2: "Operator '{0}' cannot be applied to types '{1}' and '{2}'.", + Type_0_is_not_assignable_to_type_1: "Type '{0}' is not assignable to type '{1}'.", + Type_0_is_not_assignable_to_type_1_NL_2: "Type '{0}' is not assignable to type '{1}':{NL}{2}", + Expected_var_class_interface_or_module: "Expected var, class, interface, or module.", + Getter_0_already_declared: "Getter '{0}' already declared.", + Setter_0_already_declared: "Setter '{0}' already declared.", + Exported_class_0_extends_private_class_1: "Exported class '{0}' extends private class '{1}'.", + Exported_class_0_implements_private_interface_1: "Exported class '{0}' implements private interface '{1}'.", + Exported_interface_0_extends_private_interface_1: "Exported interface '{0}' extends private interface '{1}'.", + Exported_class_0_extends_class_from_inaccessible_module_1: "Exported class '{0}' extends class from inaccessible module {1}.", + Exported_class_0_implements_interface_from_inaccessible_module_1: "Exported class '{0}' implements interface from inaccessible module {1}.", + Exported_interface_0_extends_interface_from_inaccessible_module_1: "Exported interface '{0}' extends interface from inaccessible module {1}.", + Public_static_property_0_of_exported_class_has_or_is_using_private_type_1: "Public static property '{0}' of exported class has or is using private type '{1}'.", + Public_property_0_of_exported_class_has_or_is_using_private_type_1: "Public property '{0}' of exported class has or is using private type '{1}'.", + Property_0_of_exported_interface_has_or_is_using_private_type_1: "Property '{0}' of exported interface has or is using private type '{1}'.", + Exported_variable_0_has_or_is_using_private_type_1: "Exported variable '{0}' has or is using private type '{1}'.", + Public_static_property_0_of_exported_class_is_using_inaccessible_module_1: "Public static property '{0}' of exported class is using inaccessible module {1}.", + Public_property_0_of_exported_class_is_using_inaccessible_module_1: "Public property '{0}' of exported class is using inaccessible module {1}.", + Property_0_of_exported_interface_is_using_inaccessible_module_1: "Property '{0}' of exported interface is using inaccessible module {1}.", + Exported_variable_0_is_using_inaccessible_module_1: "Exported variable '{0}' is using inaccessible module {1}.", + Parameter_0_of_constructor_from_exported_class_has_or_is_using_private_type_1: "Parameter '{0}' of constructor from exported class has or is using private type '{1}'.", + Parameter_0_of_public_static_property_setter_from_exported_class_has_or_is_using_private_type_1: "Parameter '{0}' of public static property setter from exported class has or is using private type '{1}'.", + Parameter_0_of_public_property_setter_from_exported_class_has_or_is_using_private_type_1: "Parameter '{0}' of public property setter from exported class has or is using private type '{1}'.", + Parameter_0_of_constructor_signature_from_exported_interface_has_or_is_using_private_type_1: "Parameter '{0}' of constructor signature from exported interface has or is using private type '{1}'.", + Parameter_0_of_call_signature_from_exported_interface_has_or_is_using_private_type_1: "Parameter '{0}' of call signature from exported interface has or is using private type '{1}'.", + Parameter_0_of_public_static_method_from_exported_class_has_or_is_using_private_type_1: "Parameter '{0}' of public static method from exported class has or is using private type '{1}'.", + Parameter_0_of_public_method_from_exported_class_has_or_is_using_private_type_1: "Parameter '{0}' of public method from exported class has or is using private type '{1}'.", + Parameter_0_of_method_from_exported_interface_has_or_is_using_private_type_1: "Parameter '{0}' of method from exported interface has or is using private type '{1}'.", + Parameter_0_of_exported_function_has_or_is_using_private_type_1: "Parameter '{0}' of exported function has or is using private type '{1}'.", + Parameter_0_of_constructor_from_exported_class_is_using_inaccessible_module_1: "Parameter '{0}' of constructor from exported class is using inaccessible module {1}.", + Parameter_0_of_public_static_property_setter_from_exported_class_is_using_inaccessible_module_1: "Parameter '{0}' of public static property setter from exported class is using inaccessible module {1}.", + Parameter_0_of_public_property_setter_from_exported_class_is_using_inaccessible_module_1: "Parameter '{0}' of public property setter from exported class is using inaccessible module {1}.", + Parameter_0_of_constructor_signature_from_exported_interface_is_using_inaccessible_module_1: "Parameter '{0}' of constructor signature from exported interface is using inaccessible module {1}.", + Parameter_0_of_call_signature_from_exported_interface_is_using_inaccessible_module_1: "Parameter '{0}' of call signature from exported interface is using inaccessible module {1}", + Parameter_0_of_public_static_method_from_exported_class_is_using_inaccessible_module_1: "Parameter '{0}' of public static method from exported class is using inaccessible module {1}.", + Parameter_0_of_public_method_from_exported_class_is_using_inaccessible_module_1: "Parameter '{0}' of public method from exported class is using inaccessible module {1}.", + Parameter_0_of_method_from_exported_interface_is_using_inaccessible_module_1: "Parameter '{0}' of method from exported interface is using inaccessible module {1}.", + Parameter_0_of_exported_function_is_using_inaccessible_module_1: "Parameter '{0}' of exported function is using inaccessible module {1}.", + Return_type_of_public_static_property_getter_from_exported_class_has_or_is_using_private_type_0: "Return type of public static property getter from exported class has or is using private type '{0}'.", + Return_type_of_public_property_getter_from_exported_class_has_or_is_using_private_type_0: "Return type of public property getter from exported class has or is using private type '{0}'.", + Return_type_of_constructor_signature_from_exported_interface_has_or_is_using_private_type_0: "Return type of constructor signature from exported interface has or is using private type '{0}'.", + Return_type_of_call_signature_from_exported_interface_has_or_is_using_private_type_0: "Return type of call signature from exported interface has or is using private type '{0}'.", + Return_type_of_index_signature_from_exported_interface_has_or_is_using_private_type_0: "Return type of index signature from exported interface has or is using private type '{0}'.", + Return_type_of_public_static_method_from_exported_class_has_or_is_using_private_type_0: "Return type of public static method from exported class has or is using private type '{0}'.", + Return_type_of_public_method_from_exported_class_has_or_is_using_private_type_0: "Return type of public method from exported class has or is using private type '{0}'.", + Return_type_of_method_from_exported_interface_has_or_is_using_private_type_0: "Return type of method from exported interface has or is using private type '{0}'.", + Return_type_of_exported_function_has_or_is_using_private_type_0: "Return type of exported function has or is using private type '{0}'.", + Return_type_of_public_static_property_getter_from_exported_class_is_using_inaccessible_module_0: "Return type of public static property getter from exported class is using inaccessible module {0}.", + Return_type_of_public_property_getter_from_exported_class_is_using_inaccessible_module_0: "Return type of public property getter from exported class is using inaccessible module {0}.", + Return_type_of_constructor_signature_from_exported_interface_is_using_inaccessible_module_0: "Return type of constructor signature from exported interface is using inaccessible module {0}.", + Return_type_of_call_signature_from_exported_interface_is_using_inaccessible_module_0: "Return type of call signature from exported interface is using inaccessible module {0}.", + Return_type_of_index_signature_from_exported_interface_is_using_inaccessible_module_0: "Return type of index signature from exported interface is using inaccessible module {0}.", + Return_type_of_public_static_method_from_exported_class_is_using_inaccessible_module_0: "Return type of public static method from exported class is using inaccessible module {0}.", + Return_type_of_public_method_from_exported_class_is_using_inaccessible_module_0: "Return type of public method from exported class is using inaccessible module {0}.", + Return_type_of_method_from_exported_interface_is_using_inaccessible_module_0: "Return type of method from exported interface is using inaccessible module {0}.", + Return_type_of_exported_function_is_using_inaccessible_module_0: "Return type of exported function is using inaccessible module {0}.", + new_T_cannot_be_used_to_create_an_array_Use_new_Array_T_instead: "'new T[]' cannot be used to create an array. Use 'new Array()' instead.", + A_parameter_list_must_follow_a_generic_type_argument_list_expected: "A parameter list must follow a generic type argument list. '(' expected.", + Multiple_constructor_implementations_are_not_allowed: "Multiple constructor implementations are not allowed.", + Cannot_find_external_module_0: "Cannot find external module '{0}'.", + Module_cannot_be_aliased_to_a_non_module_type: "Module cannot be aliased to a non-module type.", + A_class_may_only_extend_another_class: "A class may only extend another class.", + A_class_may_only_implement_another_class_or_interface: "A class may only implement another class or interface.", + An_interface_may_only_extend_a_class_or_another_interface: "An interface may only extend a class or another interface.", + Unable_to_resolve_type: "Unable to resolve type.", + Unable_to_resolve_type_of_0: "Unable to resolve type of '{0}'.", + Unable_to_resolve_type_parameter_constraint: "Unable to resolve type parameter constraint.", + Type_parameter_constraint_cannot_be_a_primitive_type: "Type parameter constraint cannot be a primitive type.", + Supplied_parameters_do_not_match_any_signature_of_call_target: "Supplied parameters do not match any signature of call target.", + Supplied_parameters_do_not_match_any_signature_of_call_target_NL_0: "Supplied parameters do not match any signature of call target:{NL}{0}", + Cannot_use_new_with_an_expression_whose_type_lacks_a_signature: "Cannot use 'new' with an expression whose type lacks a signature.", + Only_a_void_function_can_be_called_with_the_new_keyword: "Only a void function can be called with the 'new' keyword.", + Could_not_select_overload_for_new_expression: "Could not select overload for 'new' expression.", + Type_0_does_not_satisfy_the_constraint_1: "Type '{0}' does not satisfy the constraint '{1}'.", + Could_not_select_overload_for_call_expression: "Could not select overload for 'call' expression.", + Cannot_invoke_an_expression_whose_type_lacks_a_call_signature: "Cannot invoke an expression whose type lacks a call signature.", + Calls_to_super_are_only_valid_inside_a_class: "Calls to 'super' are only valid inside a class.", + Generic_type_0_requires_1_type_argument_s: "Generic type '{0}' requires {1} type argument(s).", + Type_of_array_literal_cannot_be_determined_Best_common_type_could_not_be_found_for_array_elements: "Type of array literal cannot be determined. Best common type could not be found for array elements.", + Could_not_find_enclosing_symbol_for_dotted_name_0: "Could not find enclosing symbol for dotted name '{0}'.", + Property_0_does_not_exist_on_value_of_type_1: "Property '{0}' does not exist on value of type '{1}'.", + Cannot_find_name_0: "Cannot find name '{0}'.", + get_and_set_accessor_must_have_the_same_type: "'get' and 'set' accessor must have the same type.", + this_cannot_be_referenced_in_current_location: "'this' cannot be referenced in current location.", + Static_members_cannot_reference_class_type_parameters: "Static members cannot reference class type parameters.", + Type_0_recursively_references_itself_as_a_base_type: "Type '{0}' recursively references itself as a base type.", + super_property_access_is_permitted_only_in_a_constructor_member_function_or_member_accessor_of_a_derived_class: "'super' property access is permitted only in a constructor, member function, or member accessor of a derived class.", + super_can_only_be_referenced_in_a_derived_class: "'super' can only be referenced in a derived class.", + A_super_call_must_be_the_first_statement_in_the_constructor_when_a_class_contains_initialized_properties_or_has_parameter_properties: "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: "Constructors for derived classes must contain a 'super' call.", + Super_calls_are_not_permitted_outside_constructors_or_in_nested_functions_inside_constructors: "Super calls are not permitted outside constructors or in nested functions inside constructors.", + _0_1_is_inaccessible: "'{0}.{1}' is inaccessible.", + this_cannot_be_referenced_in_a_module_body: "'this' cannot be referenced in a module body.", + Invalid_expression_types_not_known_to_support_the_addition_operator: "Invalid '+' expression - types not known to support the addition operator.", + The_right_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.", + The_left_hand_side_of_an_arithmetic_operation_must_be_of_type_any_number_or_an_enum_type: "The left-hand side of an arithmetic operation must be of type 'any', 'number' or an enum type.", + An_arithmetic_operand_must_be_of_type_any_number_or_an_enum_type: "An arithmetic operand must be of type 'any', 'number' or an enum type.", + Variable_declarations_of_a_for_statement_cannot_use_a_type_annotation: "Variable declarations of a 'for' statement cannot use a type annotation.", + Variable_declarations_of_a_for_statement_must_be_of_types_string_or_any: "Variable declarations of a 'for' statement must be of types 'string' or 'any'.", + The_right_hand_side_of_a_for_in_statement_must_be_of_type_any_an_object_type_or_a_type_parameter: "The right-hand side of a 'for...in' statement must be of type 'any', an object type or a type parameter.", + The_left_hand_side_of_an_in_expression_must_be_of_types_any_string_or_number: "The left-hand side of an 'in' expression must be of types 'any', 'string' or 'number'.", + The_right_hand_side_of_an_in_expression_must_be_of_type_any_an_object_type_or_a_type_parameter: "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_instanceof_expression_must_be_of_type_any_an_object_type_or_a_type_parameter: "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: "The right-hand side of an 'instanceof' expression must be of type 'any' or of a type assignable to the 'Function' interface type.", + Setters_cannot_return_a_value: "Setters cannot return a value.", + Tried_to_query_type_of_uninitialized_module_0: "Tried to query type of uninitialized module '{0}'.", + Tried_to_set_variable_type_to_uninitialized_module_type_0: "Tried to set variable type to uninitialized module type '{0}'.", + Type_0_is_not_generic: "Type '{0}' is not generic.", + Getters_must_return_a_value: "Getters must return a value.", + Getter_and_setter_accessors_do_not_agree_in_visibility: "Getter and setter accessors do not agree in visibility.", + Invalid_left_hand_side_of_assignment_expression: "Invalid left-hand side of assignment expression.", + Function_declared_a_non_void_return_type_but_has_no_return_expression: "Function declared a non-void return type, but has no return expression.", + Cannot_resolve_return_type_reference: "Cannot resolve return type reference.", + Constructors_cannot_have_a_return_type_of_void: "Constructors cannot have a return type of 'void'.", + Subsequent_variable_declarations_must_have_the_same_type_Variable_0_must_be_of_type_1_but_here_has_type_2: "Subsequent variable declarations must have the same type. Variable '{0}' must be of type '{1}', but here has type '{2}'.", + All_symbols_within_a_with_block_will_be_resolved_to_any: "All symbols within a with block will be resolved to 'any'.", + Import_declarations_in_an_internal_module_cannot_reference_an_external_module: "Import declarations in an internal module cannot reference an external module.", + Class_0_declares_interface_1_but_does_not_implement_it_NL_2: "Class {0} declares interface {1} but does not implement it:{NL}{2}", + Class_0_declares_class_1_as_an_interface_but_does_not_implement_it_NL_2: "Class {0} declares class {1} as an interface but does not implement it:{NL}{2}", + The_operand_of_an_increment_or_decrement_operator_must_be_a_variable_property_or_indexer: "The operand of an increment or decrement operator must be a variable, property or indexer.", + this_cannot_be_referenced_in_a_static_property_initializer: "'this' cannot be referenced in a static property initializer.", + Class_0_cannot_extend_class_1_NL_2: "Class '{0}' cannot extend class '{1}':{NL}{2}", + Interface_0_cannot_extend_class_1_NL_2: "Interface '{0}' cannot extend class '{1}':{NL}{2}", + Interface_0_cannot_extend_interface_1_NL_2: "Interface '{0}' cannot extend interface '{1}':{NL}{2}", + Overload_signature_is_not_compatible_with_function_definition: "Overload signature is not compatible with function definition.", + Overload_signature_is_not_compatible_with_function_definition_NL_0: "Overload signature is not compatible with function definition:{NL}{0}", + Overload_signatures_must_all_be_public_or_private: "Overload signatures must all be public or private.", + Overload_signatures_must_all_be_exported_or_not_exported: "Overload signatures must all be exported or not exported.", + Overload_signatures_must_all_be_ambient_or_non_ambient: "Overload signatures must all be ambient or non-ambient.", + Overload_signatures_must_all_be_optional_or_required: "Overload signatures must all be optional or required.", + Specialized_overload_signature_is_not_assignable_to_any_non_specialized_signature: "Specialized overload signature is not assignable to any non-specialized signature.", + this_cannot_be_referenced_in_constructor_arguments: "'this' cannot be referenced in constructor arguments.", + Instance_member_cannot_be_accessed_off_a_class: "Instance member cannot be accessed off a class.", + Untyped_function_calls_may_not_accept_type_arguments: "Untyped function calls may not accept type arguments.", + Non_generic_functions_may_not_accept_type_arguments: "Non-generic functions may not accept type arguments.", + A_generic_type_may_not_reference_itself_with_a_wrapped_form_of_its_own_type_parameters: "A generic type may not reference itself with a wrapped form of its own type parameters.", + A_rest_parameter_must_be_of_an_array_type: "A rest parameter must be of an array type.", + Overload_signature_implementation_cannot_use_specialized_type: "Overload signature implementation cannot use specialized type.", + Export_assignments_may_only_be_used_at_the_top_level_of_external_modules: "Export assignments may only be used at the top-level of external modules.", + Export_assignments_may_only_be_made_with_variables_functions_classes_interfaces_enums_and_internal_modules: "Export assignments may only be made with variables, functions, classes, interfaces, enums and internal modules.", + Only_public_methods_of_the_base_class_are_accessible_via_the_super_keyword: "Only public methods of the base class are accessible via the 'super' keyword.", + Numeric_indexer_type_0_must_be_assignable_to_string_indexer_type_1: "Numeric indexer type '{0}' must be assignable to string indexer type '{1}'.", + Numeric_indexer_type_0_must_be_assignable_to_string_indexer_type_1_NL_2: "Numeric indexer type '{0}' must be assignable to string indexer type '{1}':{NL}{2}", + All_numerically_named_properties_must_be_assignable_to_numeric_indexer_type_0: "All numerically named properties must be assignable to numeric indexer type '{0}'.", + All_numerically_named_properties_must_be_assignable_to_numeric_indexer_type_0_NL_1: "All numerically named properties must be assignable to numeric indexer type '{0}':{NL}{1}", + All_named_properties_must_be_assignable_to_string_indexer_type_0: "All named properties must be assignable to string indexer type '{0}'.", + All_named_properties_must_be_assignable_to_string_indexer_type_0_NL_1: "All named properties must be assignable to string indexer type '{0}':{NL}{1}", + A_parameter_initializer_is_only_allowed_in_a_function_or_constructor_implementation: "A parameter initializer is only allowed in a function or constructor implementation.", + Function_expression_declared_a_non_void_return_type_but_has_no_return_expression: "Function expression declared a non-void return type, but has no return expression.", + Import_declaration_referencing_identifier_from_internal_module_can_only_be_made_with_variables_functions_classes_interfaces_enums_and_internal_modules: "Import declaration referencing identifier from internal module can only be made with variables, functions, classes, interfaces, enums and internal modules.", + Module_0_has_no_exported_member_1: "Module '{0}' has no exported member '{1}'.", + Unable_to_resolve_module_reference_0: "Unable to resolve module reference '{0}'.", + Could_not_find_module_0_in_module_1: "Could not find module '{0}' in module '{1}'.", + Exported_import_declaration_0_is_assigned_value_with_type_that_has_or_is_using_private_type_1: "Exported import declaration '{0}' is assigned value with type that has or is using private type '{1}'.", + Exported_import_declaration_0_is_assigned_value_with_type_that_is_using_inaccessible_module_1: "Exported import declaration '{0}' is assigned value with type that is using inaccessible module '{1}'.", + Exported_import_declaration_0_is_assigned_type_that_has_or_is_using_private_type_1: "Exported import declaration '{0}' is assigned type that has or is using private type '{1}'.", + Exported_import_declaration_0_is_assigned_type_that_is_using_inaccessible_module_1: "Exported import declaration '{0}' is assigned type that is using inaccessible module '{1}'.", + Exported_import_declaration_0_is_assigned_container_that_is_or_is_using_inaccessible_module_1: "Exported import declaration '{0}' is assigned container that is or is using inaccessible module '{1}'.", + Type_name_0_in_extends_clause_does_not_reference_constructor_function_for_1: "Type name '{0}' in extends clause does not reference constructor function for '{1}'.", + Internal_module_reference_0_in_import_declaration_does_not_reference_module_instance_for_1: "Internal module reference '{0}' in import declaration does not reference module instance for '{1}'.", + Module_0_cannot_merge_with_previous_declaration_of_1_in_a_different_file_2: "Module '{0}' cannot merge with previous declaration of '{1}' in a different file '{2}'.", + Interface_0_cannot_simultaneously_extend_types_1_and_2_NL_3: "Interface '{0}' cannot simultaneously extend types '{1}' and '{2}':{NL}{3}", + Initializer_of_parameter_0_cannot_reference_identifier_1_declared_after_it: "Initializer of parameter '{0}' cannot reference identifier '{1}' declared after it.", + Ambient_external_module_declaration_cannot_be_reopened: "Ambient external module declaration cannot be reopened.", + All_declarations_of_merged_declaration_0_must_be_exported_or_not_exported: "All declarations of merged declaration '{0}' must be exported or not exported.", + super_cannot_be_referenced_in_constructor_arguments: "'super' cannot be referenced in constructor arguments.", + Return_type_of_constructor_signature_must_be_assignable_to_the_instance_type_of_the_class: "Return type of constructor signature must be assignable to the instance type of the class.", + Ambient_external_module_declaration_must_be_defined_in_global_context: "Ambient external module declaration must be defined in global context.", + Ambient_external_module_declaration_cannot_specify_relative_module_name: "Ambient external module declaration cannot specify relative module name.", + Import_declaration_in_an_ambient_external_module_declaration_cannot_reference_external_module_through_relative_external_module_name: "Import declaration in an ambient external module declaration cannot reference external module through relative external module name.", + No_best_common_type_exists_among_return_expressions: "No best common type exists among return expressions.", + Import_declaration_cannot_refer_to_external_module_reference_when_noResolve_option_is_set: "Import declaration cannot refer to external module reference when --noResolve option is set.", + Duplicate_identifier_this_Compiler_uses_variable_declaration_this_to_capture_this_reference: "Duplicate identifier '_this'. Compiler uses variable declaration '_this' to capture 'this' reference.", + Duplicate_identifier_super_Compiler_uses_super_to_capture_base_class_reference: "Duplicate identifier '_super'. Compiler uses '_super' to capture base class reference.", + Expression_resolves_to_variable_declaration_this_that_compiler_uses_to_capture_this_reference: "Expression resolves to variable declaration '_this' that compiler uses to capture 'this' reference.", + Expression_resolves_to_super_that_compiler_uses_to_capture_base_class_reference: "Expression resolves to '_super' that compiler uses to capture base class reference.", + TypeParameter_0_of_constructor_signature_from_exported_interface_has_or_is_using_private_type_1: "TypeParameter '{0}' of constructor signature from exported interface has or is using private type '{1}'.", + TypeParameter_0_of_call_signature_from_exported_interface_has_or_is_using_private_type_1: "TypeParameter '{0}' of call signature from exported interface has or is using private type '{1}'.", + TypeParameter_0_of_public_static_method_from_exported_class_has_or_is_using_private_type_1: "TypeParameter '{0}' of public static method from exported class has or is using private type '{1}'.", + TypeParameter_0_of_public_method_from_exported_class_has_or_is_using_private_type_1: "TypeParameter '{0}' of public method from exported class has or is using private type '{1}'.", + TypeParameter_0_of_method_from_exported_interface_has_or_is_using_private_type_1: "TypeParameter '{0}' of method from exported interface has or is using private type '{1}'.", + TypeParameter_0_of_exported_function_has_or_is_using_private_type_1: "TypeParameter '{0}' of exported function has or is using private type '{1}'.", + TypeParameter_0_of_constructor_signature_from_exported_interface_is_using_inaccessible_module_1: "TypeParameter '{0}' of constructor signature from exported interface is using inaccessible module {1}.", + TypeParameter_0_of_call_signature_from_exported_interface_is_using_inaccessible_module_1: "TypeParameter '{0}' of call signature from exported interface is using inaccessible module {1}", + TypeParameter_0_of_public_static_method_from_exported_class_is_using_inaccessible_module_1: "TypeParameter '{0}' of public static method from exported class is using inaccessible module {1}.", + TypeParameter_0_of_public_method_from_exported_class_is_using_inaccessible_module_1: "TypeParameter '{0}' of public method from exported class is using inaccessible module {1}.", + TypeParameter_0_of_method_from_exported_interface_is_using_inaccessible_module_1: "TypeParameter '{0}' of method from exported interface is using inaccessible module {1}.", + TypeParameter_0_of_exported_function_is_using_inaccessible_module_1: "TypeParameter '{0}' of exported function is using inaccessible module {1}.", + TypeParameter_0_of_exported_class_has_or_is_using_private_type_1: "TypeParameter '{0}' of exported class has or is using private type '{1}'.", + TypeParameter_0_of_exported_interface_has_or_is_using_private_type_1: "TypeParameter '{0}' of exported interface has or is using private type '{1}'.", + TypeParameter_0_of_exported_class_is_using_inaccessible_module_1: "TypeParameter '{0}' of exported class is using inaccessible module {1}.", + TypeParameter_0_of_exported_interface_is_using_inaccessible_module_1: "TypeParameter '{0}' of exported interface is using inaccessible module {1}.", + Duplicate_identifier_i_Compiler_uses_i_to_initialize_rest_parameter: "Duplicate identifier '_i'. Compiler uses '_i' to initialize rest parameter.", + Duplicate_identifier_arguments_Compiler_uses_arguments_to_initialize_rest_parameters: "Duplicate identifier 'arguments'. Compiler uses 'arguments' to initialize rest parameters.", + No_best_common_type_exists_between_0_and_1: "No best common type exists between '{0}' and '{1}'.", + No_best_common_type_exists_between_0_1_and_2: "No best common type exists between '{0}', '{1}', and '{2}'.", + Duplicate_identifier_0_Compiler_reserves_name_1_in_top_level_scope_of_an_external_module: "Duplicate identifier '{0}'. Compiler reserves name '{1}' in top level scope of an external module.", + Constraint_of_a_type_parameter_cannot_reference_any_type_parameter_from_the_same_type_parameter_list: "Constraint of a type parameter cannot reference any type parameter from the same type parameter list.", + Initializer_of_instance_member_variable_0_cannot_reference_identifier_1_declared_in_the_constructor: "Initializer of instance member variable '{0}' cannot reference identifier '{1}' declared in the constructor.", + Parameter_0_cannot_be_referenced_in_its_initializer: "Parameter '{0}' cannot be referenced in its initializer.", + Duplicate_string_index_signature: "Duplicate string index signature.", + Duplicate_number_index_signature: "Duplicate number index signature.", + All_declarations_of_an_interface_must_have_identical_type_parameters: "All declarations of an interface must have identical type parameters.", + Expression_resolves_to_variable_declaration_i_that_compiler_uses_to_initialize_rest_parameter: "Expression resolves to variable declaration '_i' that compiler uses to initialize rest parameter.", + Neither_type_0_nor_type_1_is_assignable_to_the_other: "Neither type '{0}' nor type '{1}' is assignable to the other.", + Neither_type_0_nor_type_1_is_assignable_to_the_other_NL_2: "Neither type '{0}' nor type '{1}' is assignable to the other:{NL}{2}", + Duplicate_function_implementation: "Duplicate function implementation.", + Function_implementation_expected: "Function implementation expected.", + Function_overload_name_must_be_0: "Function overload name must be '{0}'.", + Constructor_implementation_expected: "Constructor implementation expected.", + Class_name_cannot_be_0: "Class name cannot be '{0}'.", + Interface_name_cannot_be_0: "Interface name cannot be '{0}'.", + Enum_name_cannot_be_0: "Enum name cannot be '{0}'.", + A_module_cannot_have_multiple_export_assignments: "A module cannot have multiple export assignments.", + Export_assignment_not_allowed_in_module_with_exported_element: "Export assignment not allowed in module with exported element.", + A_parameter_property_is_only_allowed_in_a_constructor_implementation: "A parameter property is only allowed in a constructor implementation.", + Function_overload_must_be_static: "Function overload must be static.", + Function_overload_must_not_be_static: "Function overload must not be static.", + Type_0_is_missing_property_1_from_type_2: "Type '{0}' is missing property '{1}' from type '{2}'.", + Types_of_property_0_of_types_1_and_2_are_incompatible: "Types of property '{0}' of types '{1}' and '{2}' are incompatible.", + Types_of_property_0_of_types_1_and_2_are_incompatible_NL_3: "Types of property '{0}' of types '{1}' and '{2}' are incompatible:{NL}{3}", + Property_0_defined_as_private_in_type_1_is_defined_as_public_in_type_2: "Property '{0}' defined as private in type '{1}' is defined as public in type '{2}'.", + Property_0_defined_as_public_in_type_1_is_defined_as_private_in_type_2: "Property '{0}' defined as public in type '{1}' is defined as private in type '{2}'.", + Types_0_and_1_define_property_2_as_private: "Types '{0}' and '{1}' define property '{2}' as private.", + Call_signatures_of_types_0_and_1_are_incompatible: "Call signatures of types '{0}' and '{1}' are incompatible.", + Call_signatures_of_types_0_and_1_are_incompatible_NL_2: "Call signatures of types '{0}' and '{1}' are incompatible:{NL}{2}", + Type_0_requires_a_call_signature_but_type_1_lacks_one: "Type '{0}' requires a call signature, but type '{1}' lacks one.", + Construct_signatures_of_types_0_and_1_are_incompatible: "Construct signatures of types '{0}' and '{1}' are incompatible.", + Construct_signatures_of_types_0_and_1_are_incompatible_NL_2: "Construct signatures of types '{0}' and '{1}' are incompatible:{NL}{2}", + Type_0_requires_a_construct_signature_but_type_1_lacks_one: "Type '{0}' requires a construct signature, but type '{1}' lacks one.", + Index_signatures_of_types_0_and_1_are_incompatible: "Index signatures of types '{0}' and '{1}' are incompatible.", + Index_signatures_of_types_0_and_1_are_incompatible_NL_2: "Index signatures of types '{0}' and '{1}' are incompatible:{NL}{2}", + Call_signature_expects_0_or_fewer_parameters: "Call signature expects {0} or fewer parameters.", + Could_not_apply_type_0_to_argument_1_which_is_of_type_2: "Could not apply type '{0}' to argument {1} which is of type '{2}'.", + Class_0_defines_instance_member_accessor_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.", + Class_0_defines_instance_member_property_1_but_extended_class_2_defines_it_as_instance_member_function: "Class '{0}' defines instance member property '{1}', but extended class '{2}' defines it as instance member function.", + 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 accessor.", + Class_0_defines_instance_member_function_1_but_extended_class_2_defines_it_as_instance_member_property: "Class '{0}' defines instance member function '{1}', but extended class '{2}' defines it as instance member property.", + Types_of_static_property_0_of_class_1_and_class_2_are_incompatible: "Types of static property '{0}' of class '{1}' and class '{2}' are incompatible.", + Types_of_static_property_0_of_class_1_and_class_2_are_incompatible_NL_3: "Types of static property '{0}' of class '{1}' and class '{2}' are incompatible:{NL}{3}", + Type_reference_cannot_refer_to_container_0: "Type reference cannot refer to container '{0}'.", + Type_reference_must_refer_to_type: "Type reference must refer to type.", + In_enums_with_multiple_declarations_only_one_declaration_can_omit_an_initializer_for_the_first_enum_element: "In enums with multiple declarations only one declaration can omit an initializer for the first enum element.", + _0_overload_s: " (+ {0} overload(s))", + Variable_declaration_cannot_have_the_same_name_as_an_import_declaration: "Variable declaration cannot have the same name as an import declaration.", + Signature_expected_0_type_arguments_got_1_instead: "Signature expected {0} type arguments, got {1} instead.", + Property_0_defined_as_optional_in_type_1_but_is_required_in_type_2: "Property '{0}' defined as optional in type '{1}', but is required in type '{2}'.", + Types_0_and_1_originating_in_infinitely_expanding_type_reference_do_not_refer_to_same_named_type: "Types '{0}' and '{1}' originating in infinitely expanding type reference do not refer to same named type.", + Types_0_and_1_originating_in_infinitely_expanding_type_reference_have_incompatible_type_arguments: "Types '{0}' and '{1}' originating in infinitely expanding type reference have incompatible type arguments.", + Types_0_and_1_originating_in_infinitely_expanding_type_reference_have_incompatible_type_arguments_NL_2: "Types '{0}' and '{1}' originating in infinitely expanding type reference have incompatible type arguments:{NL}{2}", + Named_properties_0_of_types_1_and_2_are_not_identical: "Named properties '{0}' of types '{1}' and '{2}' are not identical.", + Types_of_string_indexer_of_types_0_and_1_are_not_identical: "Types of string indexer of types '{0}' and '{1}' are not identical.", + Types_of_number_indexer_of_types_0_and_1_are_not_identical: "Types of number indexer of types '{0}' and '{1}' are not identical.", + Type_of_number_indexer_in_type_0_is_not_assignable_to_string_indexer_type_in_type_1_NL_2: "Type of number indexer in type '{0}' is not assignable to string indexer type in type '{1}'.{NL}{2}", + Type_of_property_0_in_type_1_is_not_assignable_to_string_indexer_type_in_type_2_NL_3: "Type of property '{0}' in type '{1}' is not assignable to string indexer type in type '{2}'.{NL}{3}", + Type_of_property_0_in_type_1_is_not_assignable_to_number_indexer_type_in_type_2_NL_3: "Type of property '{0}' in type '{1}' is not assignable to number indexer type in type '{2}'.{NL}{3}", + Static_property_0_defined_as_private_in_type_1_is_defined_as_public_in_type_2: "Static property '{0}' defined as private in type '{1}' is defined as public in type '{2}'.", + Static_property_0_defined_as_public_in_type_1_is_defined_as_private_in_type_2: "Static property '{0}' defined as public in type '{1}' is defined as private in type '{2}'.", + Types_0_and_1_define_static_property_2_as_private: "Types '{0}' and '{1}' define static property '{2}' as private.", + Current_host_does_not_support_0_option: "Current host does not support '{0}' option.", + ECMAScript_target_version_0_not_supported_Specify_a_valid_target_version_1_default_or_2: "ECMAScript target version '{0}' not supported. Specify a valid target version: '{1}' (default), or '{2}'", + Argument_for_0_option_must_be_1_or_2: "Argument for '{0}' option must be '{1}' or '{2}'", + Could_not_find_file_0: "Could not find file: '{0}'.", + A_file_cannot_have_a_reference_to_itself: "A file cannot have a reference to itself.", + Cannot_resolve_referenced_file_0: "Cannot resolve referenced file: '{0}'.", + Cannot_find_the_common_subdirectory_path_for_the_input_files: "Cannot find the common subdirectory path for the input files.", + Emit_Error_0: "Emit Error: {0}.", + Cannot_read_file_0_1: "Cannot read file '{0}': {1}", + Unsupported_file_encoding: "Unsupported file encoding.", + Locale_must_be_of_the_form_language_or_language_territory_For_example_0_or_1: "Locale must be of the form or -. For example '{0}' or '{1}'.", + Unsupported_locale_0: "Unsupported locale: '{0}'.", + Execution_Failed_NL: "Execution Failed.{NL}", + Invalid_call_to_up: "Invalid call to 'up'", + Invalid_call_to_down: "Invalid call to 'down'", + Base64_value_0_finished_with_a_continuation_bit: "Base64 value '{0}' finished with a continuation bit.", + Unknown_compiler_option_0: "Unknown compiler option '{0}'", + Expected_0_arguments_to_message_got_1_instead: "Expected {0} arguments to message, got {1} instead.", + Expected_the_message_0_to_have_1_arguments_but_it_had_2: "Expected the message '{0}' to have {1} arguments, but it had {2}", + Could_not_delete_file_0: "Could not delete file '{0}'", + Could_not_create_directory_0: "Could not create directory '{0}'", + Error_while_executing_file_0: "Error while executing file '{0}': ", + Cannot_compile_external_modules_unless_the_module_flag_is_provided: "Cannot compile external modules unless the '--module' flag is provided.", + Option_mapRoot_cannot_be_specified_without_specifying_sourcemap_option: "Option mapRoot cannot be specified without specifying sourcemap option.", + Option_sourceRoot_cannot_be_specified_without_specifying_sourcemap_option: "Option sourceRoot cannot be specified without specifying sourcemap option.", + Options_mapRoot_and_sourceRoot_cannot_be_specified_without_specifying_sourcemap_option: "Options mapRoot and sourceRoot cannot be specified without specifying sourcemap option.", + Option_0_specified_without_1: "Option '{0}' specified without '{1}'", + codepage_option_not_supported_on_current_platform: "'codepage' option not supported on current platform.", + Concatenate_and_emit_output_to_single_file: "Concatenate and emit output to single file.", + Generates_corresponding_0_file: "Generates corresponding {0} file.", + Specifies_the_location_where_debugger_should_locate_map_files_instead_of_generated_locations: "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: "Specifies the location where debugger should locate TypeScript files instead of source locations.", + Watch_input_files: "Watch input files.", + Redirect_output_structure_to_the_directory: "Redirect output structure to the directory.", + Do_not_emit_comments_to_output: "Do not emit comments to output.", + Skip_resolution_and_preprocessing: "Skip resolution and preprocessing.", + Specify_ECMAScript_target_version_0_default_or_1: "Specify ECMAScript target version: '{0}' (default), or '{1}'", + Specify_module_code_generation_0_or_1: "Specify module code generation: '{0}' or '{1}'", + Print_this_message: "Print this message.", + Print_the_compiler_s_version_0: "Print the compiler's version: {0}", + Allow_use_of_deprecated_0_keyword_when_referencing_an_external_module: "Allow use of deprecated '{0}' keyword when referencing an external module.", + Specify_locale_for_errors_and_messages_For_example_0_or_1: "Specify locale for errors and messages. For example '{0}' or '{1}'", + Syntax_0: "Syntax: {0}", + options: "options", + file1: "file", + Examples: "Examples:", + Options: "Options:", + Insert_command_line_options_and_files_from_a_file: "Insert command line options and files from a file.", + Version_0: "Version {0}", + Use_the_0_flag_to_see_options: "Use the '{0}' flag to see options.", + NL_Recompiling_0: "{NL}Recompiling ({0}):", + STRING: "STRING", + KIND: "KIND", + file2: "FILE", + VERSION: "VERSION", + LOCATION: "LOCATION", + DIRECTORY: "DIRECTORY", + NUMBER: "NUMBER", + Specify_the_codepage_to_use_when_opening_source_files: "Specify the codepage to use when opening source files.", + Additional_locations: "Additional locations:", + This_version_of_the_Javascript_runtime_does_not_support_the_0_function: "This version of the Javascript runtime does not support the '{0}' function.", + Unknown_rule: "Unknown rule.", + Invalid_line_number_0: "Invalid line number ({0})", + Warn_on_expressions_and_declarations_with_an_implied_any_type: "Warn on expressions and declarations with an implied 'any' type.", + Variable_0_implicitly_has_an_any_type: "Variable '{0}' implicitly has an 'any' type.", + Parameter_0_of_1_implicitly_has_an_any_type: "Parameter '{0}' of '{1}' implicitly has an 'any' type.", + Parameter_0_of_function_type_implicitly_has_an_any_type: "Parameter '{0}' of function type implicitly has an 'any' type.", + Member_0_of_object_type_implicitly_has_an_any_type: "Member '{0}' of object type implicitly has an 'any' type.", + new_expression_which_lacks_a_constructor_signature_implicitly_has_an_any_type: "'new' expression, which lacks a constructor signature, implicitly has an 'any' type.", + _0_which_lacks_return_type_annotation_implicitly_has_an_any_return_type: "'{0}', which lacks return-type annotation, implicitly has an 'any' return type.", + Function_expression_which_lacks_return_type_annotation_implicitly_has_an_any_return_type: "Function expression, which lacks return-type annotation, implicitly has an 'any' return type.", + Parameter_0_of_lambda_function_implicitly_has_an_any_type: "Parameter '{0}' of lambda function implicitly has an 'any' type.", + Constructor_signature_which_lacks_return_type_annotation_implicitly_has_an_any_return_type: "Constructor signature, which lacks return-type annotation, implicitly has an 'any' return type.", + Lambda_Function_which_lacks_return_type_annotation_implicitly_has_an_any_return_type: "Lambda Function, which lacks return-type annotation, implicitly has an 'any' return type.", + Array_Literal_implicitly_has_an_any_type_from_widening: "Array Literal implicitly has an 'any' type from widening.", + _0_which_lacks_get_accessor_and_parameter_type_annotation_on_set_accessor_implicitly_has_an_any_type: "'{0}', which lacks 'get' accessor and parameter type annotation on 'set' accessor, implicitly has an 'any' type.", + Index_signature_of_object_type_implicitly_has_an_any_type: "Index signature of object type implicitly has an 'any' type.", + Object_literal_s_property_0_implicitly_has_an_any_type_from_widening: "Object literal's property '{0}' implicitly has an 'any' type from widening." + }; +})(TypeScript || (TypeScript = {})); +var TypeScript; +(function (TypeScript) { + (function (DiagnosticCategory) { + DiagnosticCategory[DiagnosticCategory["Warning"] = 0] = "Warning"; + DiagnosticCategory[DiagnosticCategory["Error"] = 1] = "Error"; + DiagnosticCategory[DiagnosticCategory["Message"] = 2] = "Message"; + DiagnosticCategory[DiagnosticCategory["NoPrefix"] = 3] = "NoPrefix"; + })(TypeScript.DiagnosticCategory || (TypeScript.DiagnosticCategory = {})); + var DiagnosticCategory = TypeScript.DiagnosticCategory; +})(TypeScript || (TypeScript = {})); +var TypeScript; +(function (TypeScript) { + TypeScript.diagnosticInformationMap = { + "error TS{0}: {1}": { "code": 0, "category": 3 /* NoPrefix */ }, + "warning TS{0}: {1}": { "code": 1, "category": 3 /* NoPrefix */ }, + "Unrecognized escape sequence.": { "code": 1000, "category": 1 /* Error */ }, + "Unexpected character {0}.": { "code": 1001, "category": 1 /* Error */ }, + "Unterminated string literal.": { "code": 1002, "category": 1 /* Error */ }, + "Identifier expected.": { "code": 1003, "category": 1 /* Error */ }, + "'{0}' keyword expected.": { "code": 1004, "category": 1 /* Error */ }, + "'{0}' expected.": { "code": 1005, "category": 1 /* Error */ }, + "Identifier expected; '{0}' is a keyword.": { "code": 1006, "category": 1 /* Error */ }, + "Automatic semicolon insertion not allowed.": { "code": 1007, "category": 1 /* Error */ }, + "Unexpected token; '{0}' expected.": { "code": 1008, "category": 1 /* Error */ }, + "Trailing comma not allowed.": { "code": 1009, "category": 1 /* Error */ }, + "'*/' expected.": { "code": 1010, "category": 1 /* Error */ }, + "'public' or 'private' modifier must precede 'static'.": { "code": 1011, "category": 1 /* Error */ }, + "Unexpected token.": { "code": 1012, "category": 1 /* Error */ }, + "Catch clause parameter cannot have a type annotation.": { "code": 1013, "category": 1 /* Error */ }, + "A rest parameter must be last in a parameter list.": { "code": 1014, "category": 1 /* Error */ }, + "Parameter cannot have question mark and initializer.": { "code": 1015, "category": 1 /* Error */ }, + "A required parameter cannot follow an optional parameter.": { "code": 1016, "category": 1 /* Error */ }, + "Index signatures cannot have rest parameters.": { "code": 1017, "category": 1 /* Error */ }, + "Index signature parameter cannot have modifiers.": { "code": 1018, "category": 1 /* Error */ }, + "Index signature parameter cannot have a question mark.": { "code": 1019, "category": 1 /* Error */ }, + "Index signature parameter cannot have an initializer.": { "code": 1020, "category": 1 /* Error */ }, + "Index signature must have a type annotation.": { "code": 1021, "category": 1 /* Error */ }, + "Index signature parameter must have a type annotation.": { "code": 1022, "category": 1 /* Error */ }, + "Index signature parameter type must be 'string' or 'number'.": { "code": 1023, "category": 1 /* Error */ }, + "'extends' clause already seen.": { "code": 1024, "category": 1 /* Error */ }, + "'extends' clause must precede 'implements' clause.": { "code": 1025, "category": 1 /* Error */ }, + "Classes can only extend a single class.": { "code": 1026, "category": 1 /* Error */ }, + "'implements' clause already seen.": { "code": 1027, "category": 1 /* Error */ }, + "Accessibility modifier already seen.": { "code": 1028, "category": 1 /* Error */ }, + "'{0}' modifier must precede '{1}' modifier.": { "code": 1029, "category": 1 /* Error */ }, + "'{0}' modifier already seen.": { "code": 1030, "category": 1 /* Error */ }, + "'{0}' modifier cannot appear on a class element.": { "code": 1031, "category": 1 /* Error */ }, + "Interface declaration cannot have 'implements' clause.": { "code": 1032, "category": 1 /* Error */ }, + "'super' invocation cannot have type arguments.": { "code": 1034, "category": 1 /* Error */ }, + "Only ambient modules can use quoted names.": { "code": 1035, "category": 1 /* Error */ }, + "Statements are not allowed in ambient contexts.": { "code": 1036, "category": 1 /* Error */ }, + "A function implementation cannot be declared in an ambient context.": { "code": 1037, "category": 1 /* Error */ }, + "A 'declare' modifier cannot be used in an already ambient context.": { "code": 1038, "category": 1 /* Error */ }, + "Initializers are not allowed in ambient contexts.": { "code": 1039, "category": 1 /* Error */ }, + "'{0}' modifier cannot appear on a module element.": { "code": 1044, "category": 1 /* Error */ }, + "A 'declare' modifier cannot be used with an interface declaration.": { "code": 1045, "category": 1 /* Error */ }, + "A 'declare' modifier is required for a top level declaration in a .d.ts file.": { "code": 1046, "category": 1 /* Error */ }, + "A rest parameter cannot be optional.": { "code": 1047, "category": 1 /* Error */ }, + "A rest parameter cannot have an initializer.": { "code": 1048, "category": 1 /* Error */ }, + "'set' accessor must have exactly one parameter.": { "code": 1049, "category": 1 /* Error */ }, + "'set' accessor parameter cannot be optional.": { "code": 1051, "category": 1 /* Error */ }, + "'set' accessor parameter cannot have an initializer.": { "code": 1052, "category": 1 /* Error */ }, + "'set' accessor cannot have rest parameter.": { "code": 1053, "category": 1 /* Error */ }, + "'get' accessor cannot have parameters.": { "code": 1054, "category": 1 /* Error */ }, + "Modifiers cannot appear here.": { "code": 1055, "category": 1 /* Error */ }, + "Accessors are only available when targeting ECMAScript 5 and higher.": { "code": 1056, "category": 1 /* Error */ }, + "Enum member must have initializer.": { "code": 1061, "category": 1 /* Error */ }, + "Export assignment cannot be used in internal modules.": { "code": 1063, "category": 1 /* Error */ }, + "Ambient enum elements can only have integer literal initializers.": { "code": 1066, "category": 1 /* Error */ }, + "module, class, interface, enum, import or statement": { "code": 1067, "category": 3 /* NoPrefix */ }, + "constructor, function, accessor or variable": { "code": 1068, "category": 3 /* NoPrefix */ }, + "statement": { "code": 1069, "category": 3 /* NoPrefix */ }, + "case or default clause": { "code": 1070, "category": 3 /* NoPrefix */ }, + "identifier": { "code": 1071, "category": 3 /* NoPrefix */ }, + "call, construct, index, property or function signature": { "code": 1072, "category": 3 /* NoPrefix */ }, + "expression": { "code": 1073, "category": 3 /* NoPrefix */ }, + "type name": { "code": 1074, "category": 3 /* NoPrefix */ }, + "property or accessor": { "code": 1075, "category": 3 /* NoPrefix */ }, + "parameter": { "code": 1076, "category": 3 /* NoPrefix */ }, + "type": { "code": 1077, "category": 3 /* NoPrefix */ }, + "type parameter": { "code": 1078, "category": 3 /* NoPrefix */ }, + "A 'declare' modifier cannot be used with an import declaration.": { "code": 1079, "category": 1 /* Error */ }, + "Invalid 'reference' directive syntax.": { "code": 1084, "category": 1 /* Error */ }, + "Octal literals are not available when targeting ECMAScript 5 and higher.": { "code": 1085, "category": 1 /* Error */ }, + "Accessors are not allowed in ambient contexts.": { "code": 1086, "category": 1 /* Error */ }, + "'{0}' modifier cannot appear on a constructor declaration.": { "code": 1089, "category": 1 /* Error */ }, + "'{0}' modifier cannot appear on a parameter.": { "code": 1090, "category": 1 /* Error */ }, + "Only a single variable declaration is allowed in a 'for...in' statement.": { "code": 1091, "category": 1 /* Error */ }, + "Type parameters cannot appear on a constructor declaration.": { "code": 1092, "category": 1 /* Error */ }, + "Type annotation cannot appear on a constructor declaration.": { "code": 1093, "category": 1 /* Error */ }, + "Type parameters cannot appear on an accessor.": { "code": 1094, "category": 1 /* Error */ }, + "Type annotation cannot appear on a 'set' accessor.": { "code": 1095, "category": 1 /* Error */ }, + "Index signature must have exactly one parameter.": { "code": 1096, "category": 1 /* Error */ }, + "'{0}' list cannot be empty.": { "code": 1097, "category": 1 /* Error */ }, + "variable declaration": { "code": 1098, "category": 3 /* NoPrefix */ }, + "type argument": { "code": 1099, "category": 3 /* NoPrefix */ }, + "Invalid use of '{0}' in strict mode.": { "code": 1100, "category": 1 /* Error */ }, + "'with' statements are not allowed in strict mode.": { "code": 1101, "category": 1 /* Error */ }, + "'delete' cannot be called on an identifier in strict mode.": { "code": 1102, "category": 1 /* Error */ }, + "Invalid left-hand side in 'for...in' statement.": { "code": 1103, "category": 1 /* Error */ }, + "'continue' statement can only be used within an enclosing iteration statement.": { "code": 1104, "category": 1 /* Error */ }, + "'break' statement can only be used within an enclosing iteration or switch statement.": { "code": 1105, "category": 1 /* Error */ }, + "Jump target not found.": { "code": 1106, "category": 1 /* Error */ }, + "Jump target cannot cross function boundary.": { "code": 1107, "category": 1 /* Error */ }, + "'return' statement must be contained within a function body.": { "code": 1108, "category": 1 /* Error */ }, + "Expression expected.": { "code": 1109, "category": 1 /* Error */ }, + "Type expected.": { "code": 1110, "category": 1 /* Error */ }, + "Template literal cannot be used as an element name.": { "code": 1111, "category": 1 /* Error */ }, + "Computed property names cannot be used here.": { "code": 1112, "category": 1 /* Error */ }, + "'yield' expression must be contained within a generator declaration.": { "code": 1113, "category": 1 /* Error */ }, + "Unterminated regular expression literal.": { "code": 1114, "category": 1 /* Error */ }, + "Unterminated template literal.": { "code": 1115, "category": 1 /* Error */ }, + "'await' expression must be contained within an 'async' declaration.": { "code": 1116, "category": 1 /* Error */ }, + "'async' arrow function parameters must be parenthesized.": { "code": 1117, "category": 1 /* Error */ }, + "A generator declaration cannot have the 'async' modifier.": { "code": 1118, "category": 1 /* Error */ }, + "'async' modifier cannot appear here.": { "code": 1119, "category": 1 /* Error */ }, + "'comma' expression cannot appear in a computed property name.": { "code": 1120, "category": 1 /* Error */ }, + "Duplicate identifier '{0}'.": { "code": 2000, "category": 1 /* Error */ }, + "The name '{0}' does not exist in the current scope.": { "code": 2001, "category": 1 /* Error */ }, + "The name '{0}' does not refer to a value.": { "code": 2002, "category": 1 /* Error */ }, + "'super' can only be used inside a class instance method.": { "code": 2003, "category": 1 /* Error */ }, + "The left-hand side of an assignment expression must be a variable, property or indexer.": { "code": 2004, "category": 1 /* Error */ }, + "Value of type '{0}' is not callable. Did you mean to include 'new'?": { "code": 2161, "category": 1 /* Error */ }, + "Value of type '{0}' is not callable.": { "code": 2006, "category": 1 /* Error */ }, + "Value of type '{0}' is not newable.": { "code": 2007, "category": 1 /* Error */ }, + "An index expression argument must be 'string', 'number', or 'any'.": { "code": 2008, "category": 1 /* Error */ }, + "Operator '{0}' cannot be applied to types '{1}' and '{2}'.": { "code": 2009, "category": 1 /* Error */ }, + "Type '{0}' is not assignable to type '{1}'.": { "code": 2011, "category": 1 /* Error */ }, + "Type '{0}' is not assignable to type '{1}':{NL}{2}": { "code": 2012, "category": 1 /* Error */ }, + "Expected var, class, interface, or module.": { "code": 2013, "category": 1 /* Error */ }, + "Getter '{0}' already declared.": { "code": 2015, "category": 1 /* Error */ }, + "Setter '{0}' already declared.": { "code": 2016, "category": 1 /* Error */ }, + "Exported class '{0}' extends private class '{1}'.": { "code": 2018, "category": 1 /* Error */ }, + "Exported class '{0}' implements private interface '{1}'.": { "code": 2019, "category": 1 /* Error */ }, + "Exported interface '{0}' extends private interface '{1}'.": { "code": 2020, "category": 1 /* Error */ }, + "Exported class '{0}' extends class from inaccessible module {1}.": { "code": 2021, "category": 1 /* Error */ }, + "Exported class '{0}' implements interface from inaccessible module {1}.": { "code": 2022, "category": 1 /* Error */ }, + "Exported interface '{0}' extends interface from inaccessible module {1}.": { "code": 2023, "category": 1 /* Error */ }, + "Public static property '{0}' of exported class has or is using private type '{1}'.": { "code": 2024, "category": 1 /* Error */ }, + "Public property '{0}' of exported class has or is using private type '{1}'.": { "code": 2025, "category": 1 /* Error */ }, + "Property '{0}' of exported interface has or is using private type '{1}'.": { "code": 2026, "category": 1 /* Error */ }, + "Exported variable '{0}' has or is using private type '{1}'.": { "code": 2027, "category": 1 /* Error */ }, + "Public static property '{0}' of exported class is using inaccessible module {1}.": { "code": 2028, "category": 1 /* Error */ }, + "Public property '{0}' of exported class is using inaccessible module {1}.": { "code": 2029, "category": 1 /* Error */ }, + "Property '{0}' of exported interface is using inaccessible module {1}.": { "code": 2030, "category": 1 /* Error */ }, + "Exported variable '{0}' is using inaccessible module {1}.": { "code": 2031, "category": 1 /* Error */ }, + "Parameter '{0}' of constructor from exported class has or is using private type '{1}'.": { "code": 2032, "category": 1 /* Error */ }, + "Parameter '{0}' of public static property setter from exported class has or is using private type '{1}'.": { "code": 2033, "category": 1 /* Error */ }, + "Parameter '{0}' of public property setter from exported class has or is using private type '{1}'.": { "code": 2034, "category": 1 /* Error */ }, + "Parameter '{0}' of constructor signature from exported interface has or is using private type '{1}'.": { "code": 2035, "category": 1 /* Error */ }, + "Parameter '{0}' of call signature from exported interface has or is using private type '{1}'.": { "code": 2036, "category": 1 /* Error */ }, + "Parameter '{0}' of public static method from exported class has or is using private type '{1}'.": { "code": 2037, "category": 1 /* Error */ }, + "Parameter '{0}' of public method from exported class has or is using private type '{1}'.": { "code": 2038, "category": 1 /* Error */ }, + "Parameter '{0}' of method from exported interface has or is using private type '{1}'.": { "code": 2039, "category": 1 /* Error */ }, + "Parameter '{0}' of exported function has or is using private type '{1}'.": { "code": 2040, "category": 1 /* Error */ }, + "Parameter '{0}' of constructor from exported class is using inaccessible module {1}.": { "code": 2041, "category": 1 /* Error */ }, + "Parameter '{0}' of public static property setter from exported class is using inaccessible module {1}.": { "code": 2042, "category": 1 /* Error */ }, + "Parameter '{0}' of public property setter from exported class is using inaccessible module {1}.": { "code": 2043, "category": 1 /* Error */ }, + "Parameter '{0}' of constructor signature from exported interface is using inaccessible module {1}.": { "code": 2044, "category": 1 /* Error */ }, + "Parameter '{0}' of call signature from exported interface is using inaccessible module {1}": { "code": 2045, "category": 1 /* Error */ }, + "Parameter '{0}' of public static method from exported class is using inaccessible module {1}.": { "code": 2046, "category": 1 /* Error */ }, + "Parameter '{0}' of public method from exported class is using inaccessible module {1}.": { "code": 2047, "category": 1 /* Error */ }, + "Parameter '{0}' of method from exported interface is using inaccessible module {1}.": { "code": 2048, "category": 1 /* Error */ }, + "Parameter '{0}' of exported function is using inaccessible module {1}.": { "code": 2049, "category": 1 /* Error */ }, + "Return type of public static property getter from exported class has or is using private type '{0}'.": { "code": 2050, "category": 1 /* Error */ }, + "Return type of public property getter from exported class has or is using private type '{0}'.": { "code": 2051, "category": 1 /* Error */ }, + "Return type of constructor signature from exported interface has or is using private type '{0}'.": { "code": 2052, "category": 1 /* Error */ }, + "Return type of call signature from exported interface has or is using private type '{0}'.": { "code": 2053, "category": 1 /* Error */ }, + "Return type of index signature from exported interface has or is using private type '{0}'.": { "code": 2054, "category": 1 /* Error */ }, + "Return type of public static method from exported class has or is using private type '{0}'.": { "code": 2055, "category": 1 /* Error */ }, + "Return type of public method from exported class has or is using private type '{0}'.": { "code": 2056, "category": 1 /* Error */ }, + "Return type of method from exported interface has or is using private type '{0}'.": { "code": 2057, "category": 1 /* Error */ }, + "Return type of exported function has or is using private type '{0}'.": { "code": 2058, "category": 1 /* Error */ }, + "Return type of public static property getter from exported class is using inaccessible module {0}.": { "code": 2059, "category": 1 /* Error */ }, + "Return type of public property getter from exported class is using inaccessible module {0}.": { "code": 2060, "category": 1 /* Error */ }, + "Return type of constructor signature from exported interface is using inaccessible module {0}.": { "code": 2061, "category": 1 /* Error */ }, + "Return type of call signature from exported interface is using inaccessible module {0}.": { "code": 2062, "category": 1 /* Error */ }, + "Return type of index signature from exported interface is using inaccessible module {0}.": { "code": 2063, "category": 1 /* Error */ }, + "Return type of public static method from exported class is using inaccessible module {0}.": { "code": 2064, "category": 1 /* Error */ }, + "Return type of public method from exported class is using inaccessible module {0}.": { "code": 2065, "category": 1 /* Error */ }, + "Return type of method from exported interface is using inaccessible module {0}.": { "code": 2066, "category": 1 /* Error */ }, + "Return type of exported function is using inaccessible module {0}.": { "code": 2067, "category": 1 /* Error */ }, + "'new T[]' cannot be used to create an array. Use 'new Array()' instead.": { "code": 2068, "category": 1 /* Error */ }, + "A parameter list must follow a generic type argument list. '(' expected.": { "code": 2069, "category": 1 /* Error */ }, + "Multiple constructor implementations are not allowed.": { "code": 2070, "category": 1 /* Error */ }, + "Cannot find external module '{0}'.": { "code": 2071, "category": 1 /* Error */ }, + "Module cannot be aliased to a non-module type.": { "code": 2072, "category": 1 /* Error */ }, + "A class may only extend another class.": { "code": 2073, "category": 1 /* Error */ }, + "A class may only implement another class or interface.": { "code": 2074, "category": 1 /* Error */ }, + "An interface may only extend a class or another interface.": { "code": 2075, "category": 1 /* Error */ }, + "Unable to resolve type.": { "code": 2077, "category": 1 /* Error */ }, + "Unable to resolve type of '{0}'.": { "code": 2078, "category": 1 /* Error */ }, + "Unable to resolve type parameter constraint.": { "code": 2079, "category": 1 /* Error */ }, + "Type parameter constraint cannot be a primitive type.": { "code": 2080, "category": 1 /* Error */ }, + "Supplied parameters do not match any signature of call target.": { "code": 2081, "category": 1 /* Error */ }, + "Supplied parameters do not match any signature of call target:{NL}{0}": { "code": 2082, "category": 1 /* Error */ }, + "Cannot use 'new' with an expression whose type lacks a signature.": { "code": 2083, "category": 1 /* Error */ }, + "Only a void function can be called with the 'new' keyword.": { "code": 2084, "category": 1 /* Error */ }, + "Could not select overload for 'new' expression.": { "code": 2085, "category": 1 /* Error */ }, + "Type '{0}' does not satisfy the constraint '{1}'.": { "code": 2086, "category": 1 /* Error */ }, + "Could not select overload for 'call' expression.": { "code": 2087, "category": 1 /* Error */ }, + "Cannot invoke an expression whose type lacks a call signature.": { "code": 2088, "category": 1 /* Error */ }, + "Calls to 'super' are only valid inside a class.": { "code": 2089, "category": 1 /* Error */ }, + "Generic type '{0}' requires {1} type argument(s).": { "code": 2090, "category": 1 /* Error */ }, + "Type of array literal cannot be determined. Best common type could not be found for array elements.": { "code": 2092, "category": 1 /* Error */ }, + "Could not find enclosing symbol for dotted name '{0}'.": { "code": 2093, "category": 1 /* Error */ }, + "Property '{0}' does not exist on value of type '{1}'.": { "code": 2094, "category": 1 /* Error */ }, + "Cannot find name '{0}'.": { "code": 2095, "category": 1 /* Error */ }, + "'get' and 'set' accessor must have the same type.": { "code": 2096, "category": 1 /* Error */ }, + "'this' cannot be referenced in current location.": { "code": 2097, "category": 1 /* Error */ }, + "Static members cannot reference class type parameters.": { "code": 2099, "category": 1 /* Error */ }, + "Type '{0}' recursively references itself as a base type.": { "code": 2100, "category": 1 /* Error */ }, + "'super' property access is permitted only in a constructor, member function, or member accessor of a derived class.": { "code": 2102, "category": 1 /* Error */ }, + "'super' can only be referenced in a derived class.": { "code": 2103, "category": 1 /* Error */ }, + "A 'super' call must be the first statement in the constructor when a class contains initialized properties or has parameter properties.": { "code": 2104, "category": 1 /* Error */ }, + "Constructors for derived classes must contain a 'super' call.": { "code": 2105, "category": 1 /* Error */ }, + "Super calls are not permitted outside constructors or in nested functions inside constructors.": { "code": 2106, "category": 1 /* Error */ }, + "'{0}.{1}' is inaccessible.": { "code": 2107, "category": 1 /* Error */ }, + "'this' cannot be referenced in a module body.": { "code": 2108, "category": 1 /* Error */ }, + "Invalid '+' expression - types not known to support the addition operator.": { "code": 2111, "category": 1 /* Error */ }, + "The right-hand side of an arithmetic operation must be of type 'any', 'number' or an enum type.": { "code": 2112, "category": 1 /* Error */ }, + "The left-hand side of an arithmetic operation must be of type 'any', 'number' or an enum type.": { "code": 2113, "category": 1 /* Error */ }, + "An arithmetic operand must be of type 'any', 'number' or an enum type.": { "code": 2114, "category": 1 /* Error */ }, + "Variable declarations of a 'for' statement cannot use a type annotation.": { "code": 2115, "category": 1 /* Error */ }, + "Variable declarations of a 'for' statement must be of types 'string' or 'any'.": { "code": 2116, "category": 1 /* Error */ }, + "The right-hand side of a 'for...in' statement must be of type 'any', an object type or a type parameter.": { "code": 2117, "category": 1 /* Error */ }, + "The left-hand side of an 'in' expression must be of types 'any', 'string' or 'number'.": { "code": 2118, "category": 1 /* Error */ }, + "The right-hand side of an 'in' expression must be of type 'any', an object type or a type parameter.": { "code": 2119, "category": 1 /* Error */ }, + "The left-hand side of an 'instanceof' expression must be of type 'any', an object type or a type parameter.": { "code": 2120, "category": 1 /* Error */ }, + "The right-hand side of an 'instanceof' expression must be of type 'any' or of a type assignable to the 'Function' interface type.": { "code": 2121, "category": 1 /* Error */ }, + "Setters cannot return a value.": { "code": 2122, "category": 1 /* Error */ }, + "Tried to query type of uninitialized module '{0}'.": { "code": 2123, "category": 1 /* Error */ }, + "Tried to set variable type to uninitialized module type '{0}'.": { "code": 2124, "category": 1 /* Error */ }, + "Type '{0}' is not generic.": { "code": 2125, "category": 1 /* Error */ }, + "Getters must return a value.": { "code": 2126, "category": 1 /* Error */ }, + "Getter and setter accessors do not agree in visibility.": { "code": 2127, "category": 1 /* Error */ }, + "Invalid left-hand side of assignment expression.": { "code": 2130, "category": 1 /* Error */ }, + "Function declared a non-void return type, but has no return expression.": { "code": 2131, "category": 1 /* Error */ }, + "Cannot resolve return type reference.": { "code": 2132, "category": 1 /* Error */ }, + "Constructors cannot have a return type of 'void'.": { "code": 2133, "category": 1 /* Error */ }, + "Subsequent variable declarations must have the same type. Variable '{0}' must be of type '{1}', but here has type '{2}'.": { "code": 2134, "category": 1 /* Error */ }, + "All symbols within a with block will be resolved to 'any'.": { "code": 2135, "category": 1 /* Error */ }, + "Import declarations in an internal module cannot reference an external module.": { "code": 2136, "category": 1 /* Error */ }, + "Class {0} declares interface {1} but does not implement it:{NL}{2}": { "code": 2137, "category": 1 /* Error */ }, + "Class {0} declares class {1} as an interface but does not implement it:{NL}{2}": { "code": 2138, "category": 1 /* Error */ }, + "The operand of an increment or decrement operator must be a variable, property or indexer.": { "code": 2139, "category": 1 /* Error */ }, + "'this' cannot be referenced in a static property initializer.": { "code": 2140, "category": 1 /* Error */ }, + "Class '{0}' cannot extend class '{1}':{NL}{2}": { "code": 2141, "category": 1 /* Error */ }, + "Interface '{0}' cannot extend class '{1}':{NL}{2}": { "code": 2142, "category": 1 /* Error */ }, + "Interface '{0}' cannot extend interface '{1}':{NL}{2}": { "code": 2143, "category": 1 /* Error */ }, + "Overload signature is not compatible with function definition.": { "code": 2148, "category": 1 /* Error */ }, + "Overload signature is not compatible with function definition:{NL}{0}": { "code": 2149, "category": 1 /* Error */ }, + "Overload signatures must all be public or private.": { "code": 2150, "category": 1 /* Error */ }, + "Overload signatures must all be exported or not exported.": { "code": 2151, "category": 1 /* Error */ }, + "Overload signatures must all be ambient or non-ambient.": { "code": 2152, "category": 1 /* Error */ }, + "Overload signatures must all be optional or required.": { "code": 2153, "category": 1 /* Error */ }, + "Specialized overload signature is not assignable to any non-specialized signature.": { "code": 2154, "category": 1 /* Error */ }, + "'this' cannot be referenced in constructor arguments.": { "code": 2155, "category": 1 /* Error */ }, + "Instance member cannot be accessed off a class.": { "code": 2157, "category": 1 /* Error */ }, + "Untyped function calls may not accept type arguments.": { "code": 2158, "category": 1 /* Error */ }, + "Non-generic functions may not accept type arguments.": { "code": 2159, "category": 1 /* Error */ }, + "A generic type may not reference itself with a wrapped form of its own type parameters.": { "code": 2160, "category": 1 /* Error */ }, + "A rest parameter must be of an array type.": { "code": 2162, "category": 1 /* Error */ }, + "Overload signature implementation cannot use specialized type.": { "code": 2163, "category": 1 /* Error */ }, + "Export assignments may only be used at the top-level of external modules.": { "code": 2164, "category": 1 /* Error */ }, + "Export assignments may only be made with variables, functions, classes, interfaces, enums and internal modules.": { "code": 2165, "category": 1 /* Error */ }, + "Only public methods of the base class are accessible via the 'super' keyword.": { "code": 2166, "category": 1 /* Error */ }, + "Numeric indexer type '{0}' must be assignable to string indexer type '{1}'.": { "code": 2167, "category": 1 /* Error */ }, + "Numeric indexer type '{0}' must be assignable to string indexer type '{1}':{NL}{2}": { "code": 2168, "category": 1 /* Error */ }, + "All numerically named properties must be assignable to numeric indexer type '{0}'.": { "code": 2169, "category": 1 /* Error */ }, + "All numerically named properties must be assignable to numeric indexer type '{0}':{NL}{1}": { "code": 2170, "category": 1 /* Error */ }, + "All named properties must be assignable to string indexer type '{0}'.": { "code": 2171, "category": 1 /* Error */ }, + "All named properties must be assignable to string indexer type '{0}':{NL}{1}": { "code": 2172, "category": 1 /* Error */ }, + "A parameter initializer is only allowed in a function or constructor implementation.": { "code": 2174, "category": 1 /* Error */ }, + "Function expression declared a non-void return type, but has no return expression.": { "code": 2176, "category": 1 /* Error */ }, + "Import declaration referencing identifier from internal module can only be made with variables, functions, classes, interfaces, enums and internal modules.": { "code": 2177, "category": 1 /* Error */ }, + "Module '{0}' has no exported member '{1}'.": { "code": 2178, "category": 1 /* Error */ }, + "Unable to resolve module reference '{0}'.": { "code": 2179, "category": 1 /* Error */ }, + "Could not find module '{0}' in module '{1}'.": { "code": 2180, "category": 1 /* Error */ }, + "Exported import declaration '{0}' is assigned value with type that has or is using private type '{1}'.": { "code": 2181, "category": 1 /* Error */ }, + "Exported import declaration '{0}' is assigned value with type that is using inaccessible module '{1}'.": { "code": 2182, "category": 1 /* Error */ }, + "Exported import declaration '{0}' is assigned type that has or is using private type '{1}'.": { "code": 2183, "category": 1 /* Error */ }, + "Exported import declaration '{0}' is assigned type that is using inaccessible module '{1}'.": { "code": 2184, "category": 1 /* Error */ }, + "Exported import declaration '{0}' is assigned container that is or is using inaccessible module '{1}'.": { "code": 2185, "category": 1 /* Error */ }, + "Type name '{0}' in extends clause does not reference constructor function for '{1}'.": { "code": 2186, "category": 1 /* Error */ }, + "Internal module reference '{0}' in import declaration does not reference module instance for '{1}'.": { "code": 2187, "category": 1 /* Error */ }, + "Module '{0}' cannot merge with previous declaration of '{1}' in a different file '{2}'.": { "code": 2188, "category": 1 /* Error */ }, + "Interface '{0}' cannot simultaneously extend types '{1}' and '{2}':{NL}{3}": { "code": 2189, "category": 1 /* Error */ }, + "Initializer of parameter '{0}' cannot reference identifier '{1}' declared after it.": { "code": 2190, "category": 1 /* Error */ }, + "Ambient external module declaration cannot be reopened.": { "code": 2191, "category": 1 /* Error */ }, + "All declarations of merged declaration '{0}' must be exported or not exported.": { "code": 2192, "category": 1 /* Error */ }, + "'super' cannot be referenced in constructor arguments.": { "code": 2193, "category": 1 /* Error */ }, + "Return type of constructor signature must be assignable to the instance type of the class.": { "code": 2194, "category": 1 /* Error */ }, + "Ambient external module declaration must be defined in global context.": { "code": 2195, "category": 1 /* Error */ }, + "Ambient external module declaration cannot specify relative module name.": { "code": 2196, "category": 1 /* Error */ }, + "Import declaration in an ambient external module declaration cannot reference external module through relative external module name.": { "code": 2197, "category": 1 /* Error */ }, + "No best common type exists among return expressions.": { "code": 2198, "category": 1 /* Error */ }, + "Import declaration cannot refer to external module reference when --noResolve option is set.": { "code": 2199, "category": 1 /* Error */ }, + "Duplicate identifier '_this'. Compiler uses variable declaration '_this' to capture 'this' reference.": { "code": 2200, "category": 1 /* Error */ }, + "Duplicate identifier '_super'. Compiler uses '_super' to capture base class reference.": { "code": 2205, "category": 1 /* Error */ }, + "Expression resolves to variable declaration '_this' that compiler uses to capture 'this' reference.": { "code": 2206, "category": 1 /* Error */ }, + "Expression resolves to '_super' that compiler uses to capture base class reference.": { "code": 2207, "category": 1 /* Error */ }, + "TypeParameter '{0}' of constructor signature from exported interface has or is using private type '{1}'.": { "code": 2208, "category": 1 /* Error */ }, + "TypeParameter '{0}' of call signature from exported interface has or is using private type '{1}'.": { "code": 2209, "category": 1 /* Error */ }, + "TypeParameter '{0}' of public static method from exported class has or is using private type '{1}'.": { "code": 2210, "category": 1 /* Error */ }, + "TypeParameter '{0}' of public method from exported class has or is using private type '{1}'.": { "code": 2211, "category": 1 /* Error */ }, + "TypeParameter '{0}' of method from exported interface has or is using private type '{1}'.": { "code": 2212, "category": 1 /* Error */ }, + "TypeParameter '{0}' of exported function has or is using private type '{1}'.": { "code": 2213, "category": 1 /* Error */ }, + "TypeParameter '{0}' of constructor signature from exported interface is using inaccessible module {1}.": { "code": 2214, "category": 1 /* Error */ }, + "TypeParameter '{0}' of call signature from exported interface is using inaccessible module {1}": { "code": 2215, "category": 1 /* Error */ }, + "TypeParameter '{0}' of public static method from exported class is using inaccessible module {1}.": { "code": 2216, "category": 1 /* Error */ }, + "TypeParameter '{0}' of public method from exported class is using inaccessible module {1}.": { "code": 2217, "category": 1 /* Error */ }, + "TypeParameter '{0}' of method from exported interface is using inaccessible module {1}.": { "code": 2218, "category": 1 /* Error */ }, + "TypeParameter '{0}' of exported function is using inaccessible module {1}.": { "code": 2219, "category": 1 /* Error */ }, + "TypeParameter '{0}' of exported class has or is using private type '{1}'.": { "code": 2220, "category": 1 /* Error */ }, + "TypeParameter '{0}' of exported interface has or is using private type '{1}'.": { "code": 2221, "category": 1 /* Error */ }, + "TypeParameter '{0}' of exported class is using inaccessible module {1}.": { "code": 2222, "category": 1 /* Error */ }, + "TypeParameter '{0}' of exported interface is using inaccessible module {1}.": { "code": 2223, "category": 1 /* Error */ }, + "Duplicate identifier '_i'. Compiler uses '_i' to initialize rest parameter.": { "code": 2224, "category": 1 /* Error */ }, + "Duplicate identifier 'arguments'. Compiler uses 'arguments' to initialize rest parameters.": { "code": 2225, "category": 1 /* Error */ }, + "No best common type exists between '{0}' and '{1}'.": { "code": 2226, "category": 1 /* Error */ }, + "No best common type exists between '{0}', '{1}', and '{2}'.": { "code": 2227, "category": 1 /* Error */ }, + "Duplicate identifier '{0}'. Compiler reserves name '{1}' in top level scope of an external module.": { "code": 2228, "category": 1 /* Error */ }, + "Constraint of a type parameter cannot reference any type parameter from the same type parameter list.": { "code": 2229, "category": 1 /* Error */ }, + "Initializer of instance member variable '{0}' cannot reference identifier '{1}' declared in the constructor.": { "code": 2230, "category": 1 /* Error */ }, + "Parameter '{0}' cannot be referenced in its initializer.": { "code": 2231, "category": 1 /* Error */ }, + "Duplicate string index signature.": { "code": 2232, "category": 1 /* Error */ }, + "Duplicate number index signature.": { "code": 2233, "category": 1 /* Error */ }, + "All declarations of an interface must have identical type parameters.": { "code": 2234, "category": 1 /* Error */ }, + "Expression resolves to variable declaration '_i' that compiler uses to initialize rest parameter.": { "code": 2235, "category": 1 /* Error */ }, + "Neither type '{0}' nor type '{1}' is assignable to the other.": { "code": 2236, "category": 1 /* Error */ }, + "Neither type '{0}' nor type '{1}' is assignable to the other:{NL}{2}": { "code": 2237, "category": 1 /* Error */ }, + "Duplicate function implementation.": { "code": 2237, "category": 1 /* Error */ }, + "Function implementation expected.": { "code": 2238, "category": 1 /* Error */ }, + "Function overload name must be '{0}'.": { "code": 2239, "category": 1 /* Error */ }, + "Constructor implementation expected.": { "code": 2240, "category": 1 /* Error */ }, + "Class name cannot be '{0}'.": { "code": 2241, "category": 1 /* Error */ }, + "Interface name cannot be '{0}'.": { "code": 2242, "category": 1 /* Error */ }, + "Enum name cannot be '{0}'.": { "code": 2243, "category": 1 /* Error */ }, + "A module cannot have multiple export assignments.": { "code": 2244, "category": 1 /* Error */ }, + "Export assignment not allowed in module with exported element.": { "code": 2245, "category": 1 /* Error */ }, + "A parameter property is only allowed in a constructor implementation.": { "code": 2246, "category": 1 /* Error */ }, + "Function overload must be static.": { "code": 2247, "category": 1 /* Error */ }, + "Function overload must not be static.": { "code": 2248, "category": 1 /* Error */ }, + "Type '{0}' is missing property '{1}' from type '{2}'.": { "code": 4000, "category": 3 /* NoPrefix */ }, + "Types of property '{0}' of types '{1}' and '{2}' are incompatible.": { "code": 4001, "category": 3 /* NoPrefix */ }, + "Types of property '{0}' of types '{1}' and '{2}' are incompatible:{NL}{3}": { "code": 4002, "category": 3 /* NoPrefix */ }, + "Property '{0}' defined as private in type '{1}' is defined as public in type '{2}'.": { "code": 4003, "category": 3 /* NoPrefix */ }, + "Property '{0}' defined as public in type '{1}' is defined as private in type '{2}'.": { "code": 4004, "category": 3 /* NoPrefix */ }, + "Types '{0}' and '{1}' define property '{2}' as private.": { "code": 4005, "category": 3 /* NoPrefix */ }, + "Call signatures of types '{0}' and '{1}' are incompatible.": { "code": 4006, "category": 3 /* NoPrefix */ }, + "Call signatures of types '{0}' and '{1}' are incompatible:{NL}{2}": { "code": 4007, "category": 3 /* NoPrefix */ }, + "Type '{0}' requires a call signature, but type '{1}' lacks one.": { "code": 4008, "category": 3 /* NoPrefix */ }, + "Construct signatures of types '{0}' and '{1}' are incompatible.": { "code": 4009, "category": 3 /* NoPrefix */ }, + "Construct signatures of types '{0}' and '{1}' are incompatible:{NL}{2}": { "code": 4010, "category": 3 /* NoPrefix */ }, + "Type '{0}' requires a construct signature, but type '{1}' lacks one.": { "code": 4011, "category": 3 /* NoPrefix */ }, + "Index signatures of types '{0}' and '{1}' are incompatible.": { "code": 4012, "category": 3 /* NoPrefix */ }, + "Index signatures of types '{0}' and '{1}' are incompatible:{NL}{2}": { "code": 4013, "category": 3 /* NoPrefix */ }, + "Call signature expects {0} or fewer parameters.": { "code": 4014, "category": 3 /* NoPrefix */ }, + "Could not apply type '{0}' to argument {1} which is of type '{2}'.": { "code": 4015, "category": 3 /* NoPrefix */ }, + "Class '{0}' defines instance member accessor '{1}', but extended class '{2}' defines it as instance member function.": { "code": 4016, "category": 3 /* NoPrefix */ }, + "Class '{0}' defines instance member property '{1}', but extended class '{2}' defines it as instance member function.": { "code": 4017, "category": 3 /* NoPrefix */ }, + "Class '{0}' defines instance member function '{1}', but extended class '{2}' defines it as instance member accessor.": { "code": 4018, "category": 3 /* NoPrefix */ }, + "Class '{0}' defines instance member function '{1}', but extended class '{2}' defines it as instance member property.": { "code": 4019, "category": 3 /* NoPrefix */ }, + "Types of static property '{0}' of class '{1}' and class '{2}' are incompatible.": { "code": 4020, "category": 3 /* NoPrefix */ }, + "Types of static property '{0}' of class '{1}' and class '{2}' are incompatible:{NL}{3}": { "code": 4021, "category": 3 /* NoPrefix */ }, + "Type reference cannot refer to container '{0}'.": { "code": 4022, "category": 1 /* Error */ }, + "Type reference must refer to type.": { "code": 4023, "category": 1 /* Error */ }, + "In enums with multiple declarations only one declaration can omit an initializer for the first enum element.": { "code": 4024, "category": 1 /* Error */ }, + " (+ {0} overload(s))": { "code": 4025, "category": 2 /* Message */ }, + "Variable declaration cannot have the same name as an import declaration.": { "code": 4026, "category": 1 /* Error */ }, + "Signature expected {0} type arguments, got {1} instead.": { "code": 4027, "category": 1 /* Error */ }, + "Property '{0}' defined as optional in type '{1}', but is required in type '{2}'.": { "code": 4028, "category": 3 /* NoPrefix */ }, + "Types '{0}' and '{1}' originating in infinitely expanding type reference do not refer to same named type.": { "code": 4029, "category": 3 /* NoPrefix */ }, + "Types '{0}' and '{1}' originating in infinitely expanding type reference have incompatible type arguments.": { "code": 4030, "category": 3 /* NoPrefix */ }, + "Types '{0}' and '{1}' originating in infinitely expanding type reference have incompatible type arguments:{NL}{2}": { "code": 4031, "category": 3 /* NoPrefix */ }, + "Named properties '{0}' of types '{1}' and '{2}' are not identical.": { "code": 4032, "category": 3 /* NoPrefix */ }, + "Types of string indexer of types '{0}' and '{1}' are not identical.": { "code": 4033, "category": 3 /* NoPrefix */ }, + "Types of number indexer of types '{0}' and '{1}' are not identical.": { "code": 4034, "category": 3 /* NoPrefix */ }, + "Type of number indexer in type '{0}' is not assignable to string indexer type in type '{1}'.{NL}{2}": { "code": 4035, "category": 3 /* NoPrefix */ }, + "Type of property '{0}' in type '{1}' is not assignable to string indexer type in type '{2}'.{NL}{3}": { "code": 4036, "category": 3 /* NoPrefix */ }, + "Type of property '{0}' in type '{1}' is not assignable to number indexer type in type '{2}'.{NL}{3}": { "code": 4037, "category": 3 /* NoPrefix */ }, + "Static property '{0}' defined as private in type '{1}' is defined as public in type '{2}'.": { "code": 4038, "category": 3 /* NoPrefix */ }, + "Static property '{0}' defined as public in type '{1}' is defined as private in type '{2}'.": { "code": 4039, "category": 3 /* NoPrefix */ }, + "Types '{0}' and '{1}' define static property '{2}' as private.": { "code": 4040, "category": 3 /* NoPrefix */ }, + "Current host does not support '{0}' option.": { "code": 5001, "category": 1 /* Error */ }, + "ECMAScript target version '{0}' not supported. Specify a valid target version: '{1}' (default), or '{2}'": { "code": 5002, "category": 1 /* Error */ }, + "Argument for '{0}' option must be '{1}' or '{2}'": { "code": 5003, "category": 1 /* Error */ }, + "Could not find file: '{0}'.": { "code": 5004, "category": 1 /* Error */ }, + "A file cannot have a reference to itself.": { "code": 5006, "category": 1 /* Error */ }, + "Cannot resolve referenced file: '{0}'.": { "code": 5007, "category": 1 /* Error */ }, + "Cannot find the common subdirectory path for the input files.": { "code": 5009, "category": 1 /* Error */ }, + "Emit Error: {0}.": { "code": 5011, "category": 1 /* Error */ }, + "Cannot read file '{0}': {1}": { "code": 5012, "category": 1 /* Error */ }, + "Unsupported file encoding.": { "code": 5013, "category": 3 /* NoPrefix */ }, + "Locale must be of the form or -. For example '{0}' or '{1}'.": { "code": 5014, "category": 1 /* Error */ }, + "Unsupported locale: '{0}'.": { "code": 5015, "category": 1 /* Error */ }, + "Execution Failed.{NL}": { "code": 5016, "category": 1 /* Error */ }, + "Invalid call to 'up'": { "code": 5019, "category": 1 /* Error */ }, + "Invalid call to 'down'": { "code": 5020, "category": 1 /* Error */ }, + "Base64 value '{0}' finished with a continuation bit.": { "code": 5021, "category": 1 /* Error */ }, + "Unknown compiler option '{0}'": { "code": 5023, "category": 1 /* Error */ }, + "Expected {0} arguments to message, got {1} instead.": { "code": 5024, "category": 1 /* Error */ }, + "Expected the message '{0}' to have {1} arguments, but it had {2}": { "code": 5025, "category": 1 /* Error */ }, + "Could not delete file '{0}'": { "code": 5034, "category": 1 /* Error */ }, + "Could not create directory '{0}'": { "code": 5035, "category": 1 /* Error */ }, + "Error while executing file '{0}': ": { "code": 5036, "category": 1 /* Error */ }, + "Cannot compile external modules unless the '--module' flag is provided.": { "code": 5037, "category": 1 /* Error */ }, + "Option mapRoot cannot be specified without specifying sourcemap option.": { "code": 5038, "category": 1 /* Error */ }, + "Option sourceRoot cannot be specified without specifying sourcemap option.": { "code": 5039, "category": 1 /* Error */ }, + "Options mapRoot and sourceRoot cannot be specified without specifying sourcemap option.": { "code": 5040, "category": 1 /* Error */ }, + "Option '{0}' specified without '{1}'": { "code": 5041, "category": 1 /* Error */ }, + "'codepage' option not supported on current platform.": { "code": 5042, "category": 1 /* Error */ }, + "Concatenate and emit output to single file.": { "code": 6001, "category": 2 /* Message */ }, + "Generates corresponding {0} file.": { "code": 6002, "category": 2 /* Message */ }, + "Specifies the location where debugger should locate map files instead of generated locations.": { "code": 6003, "category": 2 /* Message */ }, + "Specifies the location where debugger should locate TypeScript files instead of source locations.": { "code": 6004, "category": 2 /* Message */ }, + "Watch input files.": { "code": 6005, "category": 2 /* Message */ }, + "Redirect output structure to the directory.": { "code": 6006, "category": 2 /* Message */ }, + "Do not emit comments to output.": { "code": 6009, "category": 2 /* Message */ }, + "Skip resolution and preprocessing.": { "code": 6010, "category": 2 /* Message */ }, + "Specify ECMAScript target version: '{0}' (default), or '{1}'": { "code": 6015, "category": 2 /* Message */ }, + "Specify module code generation: '{0}' or '{1}'": { "code": 6016, "category": 2 /* Message */ }, + "Print this message.": { "code": 6017, "category": 2 /* Message */ }, + "Print the compiler's version: {0}": { "code": 6019, "category": 2 /* Message */ }, + "Allow use of deprecated '{0}' keyword when referencing an external module.": { "code": 6021, "category": 2 /* Message */ }, + "Specify locale for errors and messages. For example '{0}' or '{1}'": { "code": 6022, "category": 2 /* Message */ }, + "Syntax: {0}": { "code": 6023, "category": 2 /* Message */ }, + "options": { "code": 6024, "category": 2 /* Message */ }, + "file1": { "code": 6025, "category": 2 /* Message */ }, + "Examples:": { "code": 6026, "category": 2 /* Message */ }, + "Options:": { "code": 6027, "category": 2 /* Message */ }, + "Insert command line options and files from a file.": { "code": 6030, "category": 2 /* Message */ }, + "Version {0}": { "code": 6029, "category": 2 /* Message */ }, + "Use the '{0}' flag to see options.": { "code": 6031, "category": 2 /* Message */ }, + "{NL}Recompiling ({0}):": { "code": 6032, "category": 2 /* Message */ }, + "STRING": { "code": 6033, "category": 2 /* Message */ }, + "KIND": { "code": 6034, "category": 2 /* Message */ }, + "file2": { "code": 6035, "category": 2 /* Message */ }, + "VERSION": { "code": 6036, "category": 2 /* Message */ }, + "LOCATION": { "code": 6037, "category": 2 /* Message */ }, + "DIRECTORY": { "code": 6038, "category": 2 /* Message */ }, + "NUMBER": { "code": 6039, "category": 2 /* Message */ }, + "Specify the codepage to use when opening source files.": { "code": 6040, "category": 2 /* Message */ }, + "Additional locations:": { "code": 6041, "category": 2 /* Message */ }, + "This version of the Javascript runtime does not support the '{0}' function.": { "code": 7000, "category": 1 /* Error */ }, + "Unknown rule.": { "code": 7002, "category": 1 /* Error */ }, + "Invalid line number ({0})": { "code": 7003, "category": 1 /* Error */ }, + "Warn on expressions and declarations with an implied 'any' type.": { "code": 7004, "category": 2 /* Message */ }, + "Variable '{0}' implicitly has an 'any' type.": { "code": 7005, "category": 1 /* Error */ }, + "Parameter '{0}' of '{1}' implicitly has an 'any' type.": { "code": 7006, "category": 1 /* Error */ }, + "Parameter '{0}' of function type implicitly has an 'any' type.": { "code": 7007, "category": 1 /* Error */ }, + "Member '{0}' of object type implicitly has an 'any' type.": { "code": 7008, "category": 1 /* Error */ }, + "'new' expression, which lacks a constructor signature, implicitly has an 'any' type.": { "code": 7009, "category": 1 /* Error */ }, + "'{0}', which lacks return-type annotation, implicitly has an 'any' return type.": { "code": 7010, "category": 1 /* Error */ }, + "Function expression, which lacks return-type annotation, implicitly has an 'any' return type.": { "code": 7011, "category": 1 /* Error */ }, + "Parameter '{0}' of lambda function implicitly has an 'any' type.": { "code": 7012, "category": 1 /* Error */ }, + "Constructor signature, which lacks return-type annotation, implicitly has an 'any' return type.": { "code": 7013, "category": 1 /* Error */ }, + "Lambda Function, which lacks return-type annotation, implicitly has an 'any' return type.": { "code": 7014, "category": 1 /* Error */ }, + "Array Literal implicitly has an 'any' type from widening.": { "code": 7015, "category": 1 /* Error */ }, + "'{0}', which lacks 'get' accessor and parameter type annotation on 'set' accessor, implicitly has an 'any' type.": { "code": 7016, "category": 1 /* Error */ }, + "Index signature of object type implicitly has an 'any' type.": { "code": 7017, "category": 1 /* Error */ }, + "Object literal's property '{0}' implicitly has an 'any' type from widening.": { "code": 7018, "category": 1 /* Error */ } + }; +})(TypeScript || (TypeScript = {})); +var TypeScript; +(function (TypeScript) { + var Errors = (function () { + function Errors() { + } + Errors.argument = function (argument, message) { + return new Error("Invalid argument: " + argument + ". " + message); + }; + Errors.argumentOutOfRange = function (argument) { + return new Error("Argument out of range: " + argument); + }; + Errors.argumentNull = function (argument) { + return new Error("Argument null: " + argument); + }; + Errors.abstract = function () { + return new Error("Operation not implemented properly by subclass."); + }; + Errors.notYetImplemented = function () { + return new Error("Not yet implemented."); + }; + Errors.invalidOperation = function (message) { + return new Error("Invalid operation: " + message); + }; + return Errors; + })(); + TypeScript.Errors = Errors; +})(TypeScript || (TypeScript = {})); +var TypeScript; +(function (TypeScript) { + var ArrayUtilities = (function () { + function ArrayUtilities() { + } + ArrayUtilities.sequenceEquals = function (array1, array2, equals) { + if (array1 === array2) { + return true; + } + if (!array1 || !array2) { + return false; + } + if (array1.length !== array2.length) { + return false; + } + for (var i = 0, n = array1.length; i < n; i++) { + if (!equals(array1[i], array2[i])) { + return false; + } + } + return true; + }; + ArrayUtilities.contains = function (array, value) { + for (var i = 0; i < array.length; i++) { + if (array[i] === value) { + return true; + } + } + return false; + }; + ArrayUtilities.distinct = function (array, equalsFn) { + var result = []; + for (var i = 0, n = array.length; i < n; i++) { + var current = array[i]; + for (var j = 0; j < result.length; j++) { + if (equalsFn(result[j], current)) { + break; + } + } + if (j === result.length) { + result.push(current); + } + } + return result; + }; + ArrayUtilities.last = function (array) { + if (array.length === 0) { + throw TypeScript.Errors.argumentOutOfRange('array'); + } + return array[array.length - 1]; + }; + ArrayUtilities.lastOrDefault = function (array, predicate) { + for (var i = array.length - 1; i >= 0; i--) { + var v = array[i]; + if (predicate(v, i)) { + return v; + } + } + return undefined; + }; + ArrayUtilities.firstOrDefault = function (array, func) { + for (var i = 0, n = array.length; i < n; i++) { + var value = array[i]; + if (func(value, i)) { + return value; + } + } + return undefined; + }; + ArrayUtilities.first = function (array, func) { + for (var i = 0, n = array.length; i < n; i++) { + var value = array[i]; + if (!func || func(value, i)) { + return value; + } + } + throw TypeScript.Errors.invalidOperation(); + }; + ArrayUtilities.sum = function (array, func) { + var result = 0; + for (var i = 0, n = array.length; i < n; i++) { + result += func(array[i]); + } + return result; + }; + ArrayUtilities.select = function (values, func) { + var result = new Array(values.length); + for (var i = 0; i < values.length; i++) { + result[i] = func(values[i]); + } + return result; + }; + ArrayUtilities.where = function (values, func) { + var result = new Array(); + for (var i = 0; i < values.length; i++) { + if (func(values[i])) { + result.push(values[i]); + } + } + return result; + }; + ArrayUtilities.any = function (array, func) { + for (var i = 0, n = array.length; i < n; i++) { + if (func(array[i])) { + return true; + } + } + return false; + }; + ArrayUtilities.all = function (array, func) { + for (var i = 0, n = array.length; i < n; i++) { + if (!func(array[i])) { + return false; + } + } + return true; + }; + ArrayUtilities.binarySearch = function (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; + }; + ArrayUtilities.createArray = function (length, defaultValue) { + var result = new Array(length); + for (var i = 0; i < length; i++) { + result[i] = defaultValue; + } + return result; + }; + ArrayUtilities.grow = function (array, length, defaultValue) { + var count = length - array.length; + for (var i = 0; i < count; i++) { + array.push(defaultValue); + } + }; + ArrayUtilities.copy = function (sourceArray, sourceIndex, destinationArray, destinationIndex, length) { + for (var i = 0; i < length; i++) { + destinationArray[destinationIndex + i] = sourceArray[sourceIndex + i]; + } + }; + ArrayUtilities.indexOf = function (array, predicate) { + for (var i = 0, n = array.length; i < n; i++) { + if (predicate(array[i])) { + return i; + } + } + return -1; + }; + return ArrayUtilities; + })(); + TypeScript.ArrayUtilities = ArrayUtilities; +})(TypeScript || (TypeScript = {})); +var TypeScript; +(function (TypeScript) { + (function (AssertionLevel) { + AssertionLevel[AssertionLevel["None"] = 0] = "None"; + AssertionLevel[AssertionLevel["Normal"] = 1] = "Normal"; + AssertionLevel[AssertionLevel["Aggressive"] = 2] = "Aggressive"; + AssertionLevel[AssertionLevel["VeryAggressive"] = 3] = "VeryAggressive"; + })(TypeScript.AssertionLevel || (TypeScript.AssertionLevel = {})); + var AssertionLevel = TypeScript.AssertionLevel; + var Debug = (function () { + function Debug() { + } + Debug.shouldAssert = function (level) { + return this.currentAssertionLevel >= level; + }; + Debug.assert = function (expression, message, verboseDebugInfo) { + if (!expression) { + var verboseDebugString = ""; + if (verboseDebugInfo) { + verboseDebugString = "\r\nVerbose Debug Information:" + verboseDebugInfo(); + } + message = message || ""; + throw new Error("Debug Failure. False expression: " + message + verboseDebugString); + } + }; + Debug.fail = function (message) { + Debug.assert(false, message); + }; + Debug.currentAssertionLevel = 0 /* None */; + return Debug; + })(); + TypeScript.Debug = Debug; +})(TypeScript || (TypeScript = {})); +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 TypeScript; +(function (TypeScript) { + var Location = (function () { + function Location(fileName, lineMap, start, length) { + this._fileName = fileName; + this._lineMap = lineMap; + this._start = start; + this._length = length; + } + Location.prototype.fileName = function () { + return this._fileName; + }; + Location.prototype.lineMap = function () { + return this._lineMap; + }; + Location.prototype.line = function () { + return this._lineMap ? this._lineMap.getLineNumberFromPosition(this.start()) : 0; + }; + Location.prototype.character = function () { + return this._lineMap ? this._lineMap.getLineAndCharacterFromPosition(this.start()).character() : 0; + }; + Location.prototype.start = function () { + return this._start; + }; + Location.prototype.length = function () { + return this._length; + }; + Location.equals = function (location1, location2) { + return location1._fileName === location2._fileName && location1._start === location2._start && location1._length === location2._length; + }; + return Location; + })(); + TypeScript.Location = Location; + var Diagnostic = (function (_super) { + __extends(Diagnostic, _super); + function Diagnostic(fileName, lineMap, start, length, diagnosticKey, _arguments, additionalLocations) { + _super.call(this, fileName, lineMap, start, length); + this._diagnosticKey = diagnosticKey; + this._arguments = (_arguments && _arguments.length > 0) ? _arguments : undefined; + this._additionalLocations = (additionalLocations && additionalLocations.length > 0) ? additionalLocations : undefined; + } + Diagnostic.prototype.toJSON = function (key) { + var result = {}; + result.start = this.start(); + result.length = this.length(); + result.diagnosticCode = this._diagnosticKey; + var _arguments = this.arguments(); + if (_arguments && _arguments.length > 0) { + result.arguments = _arguments; + } + return result; + }; + Diagnostic.prototype.diagnosticKey = function () { + return this._diagnosticKey; + }; + Diagnostic.prototype.arguments = function () { + return this._arguments; + }; + Diagnostic.prototype.text = function () { + return TypeScript.getLocalizedText(this._diagnosticKey, this._arguments); + }; + Diagnostic.prototype.message = function () { + return TypeScript.getDiagnosticMessage(this._diagnosticKey, this._arguments); + }; + Diagnostic.prototype.additionalLocations = function () { + return this._additionalLocations || []; + }; + Diagnostic.equals = function (diagnostic1, diagnostic2) { + return Location.equals(diagnostic1, diagnostic2) && diagnostic1._diagnosticKey === diagnostic2._diagnosticKey && TypeScript.ArrayUtilities.sequenceEquals(diagnostic1._arguments, diagnostic2._arguments, function (v1, v2) { return v1 === v2; }); + }; + Diagnostic.prototype.info = function () { + return getDiagnosticInfoFromKey(this.diagnosticKey()); + }; + return Diagnostic; + })(Location); + TypeScript.Diagnostic = Diagnostic; + function newLine() { + return "\r\n"; + } + TypeScript.newLine = newLine; + function getLargestIndex(diagnostic) { + var largest = -1; + var regex = /\{(\d+)\}/g; + var match; + while (match = regex.exec(diagnostic)) { + var val = parseInt(match[1]); + if (!isNaN(val) && val > largest) { + largest = val; + } + } + return largest; + } + function getDiagnosticInfoFromKey(diagnosticKey) { + var result = TypeScript.diagnosticInformationMap[diagnosticKey]; + TypeScript.Debug.assert(result); + return result; + } + function getLocalizedText(diagnosticKey, args) { + var diagnosticMessageText = diagnosticKey; + TypeScript.Debug.assert(diagnosticMessageText !== undefined && diagnosticMessageText !== null); + var actualCount = args ? args.length : 0; + var expectedCount = 1 + getLargestIndex(diagnosticKey); + if (expectedCount !== actualCount) { + throw new Error(getLocalizedText(TypeScript.DiagnosticCode.Expected_0_arguments_to_message_got_1_instead, [expectedCount, actualCount])); + } + var valueCount = 1 + getLargestIndex(diagnosticMessageText); + if (valueCount !== expectedCount) { + throw new Error(getLocalizedText(TypeScript.DiagnosticCode.Expected_the_message_0_to_have_1_arguments_but_it_had_2, [diagnosticMessageText, expectedCount, valueCount])); + } + diagnosticMessageText = diagnosticMessageText.replace(/{(\d+)}/g, function (match, num) { + return typeof args[num] !== 'undefined' ? args[num] : match; + }); + diagnosticMessageText = diagnosticMessageText.replace(/{(NL)}/g, function (match) { + return TypeScript.newLine(); + }); + return diagnosticMessageText; + } + TypeScript.getLocalizedText = getLocalizedText; + function getDiagnosticMessage(diagnosticKey, args) { + var diagnostic = getDiagnosticInfoFromKey(diagnosticKey); + var diagnosticMessageText = getLocalizedText(diagnosticKey, args); + var message; + if (diagnostic.category === 1 /* Error */) { + message = getLocalizedText(TypeScript.DiagnosticCode.error_TS_0_1, [diagnostic.code, diagnosticMessageText]); + } + else if (diagnostic.category === 0 /* Warning */) { + message = getLocalizedText(TypeScript.DiagnosticCode.warning_TS_0_1, [diagnostic.code, diagnosticMessageText]); + } + else { + message = diagnosticMessageText; + } + return message; + } + TypeScript.getDiagnosticMessage = getDiagnosticMessage; +})(TypeScript || (TypeScript = {})); +var TypeScript; +(function (TypeScript) { + var IntegerUtilities; + (function (IntegerUtilities) { + function integerDivide(numerator, denominator) { + return (numerator / denominator) >> 0; + } + IntegerUtilities.integerDivide = integerDivide; + function integerMultiplyLow32Bits(n1, n2) { + var resultLow32 = (((n1 & 0xffff0000) * n2) >>> 0) + (((n1 & 0x0000ffff) * n2) >>> 0) >>> 0; + return resultLow32; + } + IntegerUtilities.integerMultiplyLow32Bits = integerMultiplyLow32Bits; + function isInteger(text) { + return /^[0-9]+$/.test(text); + } + IntegerUtilities.isInteger = isInteger; + function isHexInteger(text) { + return /^0(x|X)[0-9a-fA-F]+$/.test(text); + } + IntegerUtilities.isHexInteger = isHexInteger; + })(IntegerUtilities = TypeScript.IntegerUtilities || (TypeScript.IntegerUtilities = {})); +})(TypeScript || (TypeScript = {})); +var TypeScript; +(function (TypeScript) { + var LineMap = (function () { + function LineMap(_computeLineStarts, length) { + this._computeLineStarts = _computeLineStarts; + this.length = length; + this._lineStarts = undefined; + } + LineMap.prototype.toJSON = function (key) { + return { lineStarts: this.lineStarts(), length: this.length }; + }; + LineMap.prototype.equals = function (other) { + return this.length === other.length && TypeScript.ArrayUtilities.sequenceEquals(this.lineStarts(), other.lineStarts(), function (v1, v2) { return v1 === v2; }); + }; + LineMap.prototype.lineStarts = function () { + if (!this._lineStarts) { + this._lineStarts = this._computeLineStarts(); + } + return this._lineStarts; + }; + LineMap.prototype.lineCount = function () { + return this.lineStarts().length; + }; + LineMap.prototype.getPosition = function (line, character) { + return this.lineStarts()[line] + character; + }; + LineMap.prototype.getLineNumberFromPosition = function (position) { + if (position < 0 || position > this.length) { + throw TypeScript.Errors.argumentOutOfRange("position"); + } + if (position === this.length) { + return this.lineCount() - 1; + } + var lineNumber = TypeScript.ArrayUtilities.binarySearch(this.lineStarts(), position); + if (lineNumber < 0) { + lineNumber = (~lineNumber) - 1; + } + return lineNumber; + }; + LineMap.prototype.getLineStartPosition = function (lineNumber) { + return this.lineStarts()[lineNumber]; + }; + LineMap.prototype.fillLineAndCharacterFromPosition = function (position, lineAndCharacter) { + if (position < 0 || position > this.length) { + throw TypeScript.Errors.argumentOutOfRange("position"); + } + var lineNumber = this.getLineNumberFromPosition(position); + lineAndCharacter.line = lineNumber; + lineAndCharacter.character = position - this.lineStarts()[lineNumber]; + }; + LineMap.prototype.getLineAndCharacterFromPosition = function (position) { + if (position < 0 || position > this.length) { + throw TypeScript.Errors.argumentOutOfRange("position"); + } + var lineNumber = this.getLineNumberFromPosition(position); + return new TypeScript.LineAndCharacter(lineNumber, position - this.lineStarts()[lineNumber]); + }; + LineMap.empty = new LineMap(function () { return [0]; }, 0); + return LineMap; + })(); + TypeScript.LineMap = LineMap; +})(TypeScript || (TypeScript = {})); +var TypeScript; +(function (TypeScript) { + var LineAndCharacter = (function () { + function LineAndCharacter(line, character) { + this._line = 0; + this._character = 0; + if (line < 0) { + throw TypeScript.Errors.argumentOutOfRange("line"); + } + if (character < 0) { + throw TypeScript.Errors.argumentOutOfRange("character"); + } + this._line = line; + this._character = character; + } + LineAndCharacter.prototype.line = function () { + return this._line; + }; + LineAndCharacter.prototype.character = function () { + return this._character; + }; + return LineAndCharacter; + })(); + TypeScript.LineAndCharacter = LineAndCharacter; +})(TypeScript || (TypeScript = {})); +var TypeScript; +(function (TypeScript) { + var StringUtilities = (function () { + function StringUtilities() { + } + StringUtilities.isString = function (value) { + return Object.prototype.toString.apply(value, []) === '[object String]'; + }; + StringUtilities.endsWith = function (string, value) { + return string.substring(string.length - value.length, string.length) === value; + }; + StringUtilities.startsWith = function (string, value) { + return string.substr(0, value.length) === value; + }; + StringUtilities.repeat = function (value, count) { + return Array(count + 1).join(value); + }; + return StringUtilities; + })(); + TypeScript.StringUtilities = StringUtilities; +})(TypeScript || (TypeScript = {})); +var TypeScript; +(function (TypeScript) { + (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["_"] = 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["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"; + })(TypeScript.CharacterCodes || (TypeScript.CharacterCodes = {})); + var CharacterCodes = TypeScript.CharacterCodes; +})(TypeScript || (TypeScript = {})); +var TypeScript; +(function (TypeScript) { + 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.getLineStartPositions = function () { + if (!this._lineStartPositions) { + this._lineStartPositions = TypeScript.TextUtilities.parseLineStarts(this.text); + } + return this._lineStartPositions; + }; + StringScriptSnapshot.prototype.getChangeRange = function (oldSnapshot) { + throw TypeScript.Errors.notYetImplemented(); + }; + return StringScriptSnapshot; + })(); + function fromString(text) { + return new StringScriptSnapshot(text); + } + ScriptSnapshot.fromString = fromString; + })(ScriptSnapshot = TypeScript.ScriptSnapshot || (TypeScript.ScriptSnapshot = {})); +})(TypeScript || (TypeScript = {})); +var TypeScript; +(function (TypeScript) { + var LineMap1; + (function (LineMap1) { + function fromSimpleText(text) { + return new TypeScript.LineMap(function () { return TypeScript.TextUtilities.parseLineStarts({ charCodeAt: function (index) { return text.charCodeAt(index); }, length: text.length() }); }, text.length()); + } + LineMap1.fromSimpleText = fromSimpleText; + function fromScriptSnapshot(scriptSnapshot) { + return new TypeScript.LineMap(function () { return scriptSnapshot.getLineStartPositions(); }, scriptSnapshot.getLength()); + } + LineMap1.fromScriptSnapshot = fromScriptSnapshot; + function fromString(text) { + return new TypeScript.LineMap(function () { return TypeScript.TextUtilities.parseLineStarts(text); }, text.length); + } + LineMap1.fromString = fromString; + })(LineMap1 = TypeScript.LineMap1 || (TypeScript.LineMap1 = {})); +})(TypeScript || (TypeScript = {})); +var TypeScript; +(function (TypeScript) { + var SimpleText; + (function (SimpleText) { + var SimpleStringText = (function () { + function SimpleStringText(value) { + this.value = value; + this._lineMap = undefined; + } + SimpleStringText.prototype.length = function () { + return this.value.length; + }; + SimpleStringText.prototype.substr = function (start, length) { + var val = this.value; + return start === 0 && length == val.length ? val : val.substr(start, length); + }; + SimpleStringText.prototype.charCodeAt = function (index) { + return this.value.charCodeAt(index); + }; + SimpleStringText.prototype.lineMap = function () { + if (!this._lineMap) { + this._lineMap = TypeScript.LineMap1.fromString(this.value); + } + return this._lineMap; + }; + return SimpleStringText; + })(); + var SimpleScriptSnapshotText = (function () { + function SimpleScriptSnapshotText(scriptSnapshot) { + this.scriptSnapshot = scriptSnapshot; + this._lineMap = undefined; + } + SimpleScriptSnapshotText.prototype.charCodeAt = function (index) { + return this.scriptSnapshot.getText(index, index + 1).charCodeAt(0); + }; + SimpleScriptSnapshotText.prototype.length = function () { + return this.scriptSnapshot.getLength(); + }; + SimpleScriptSnapshotText.prototype.substr = function (start, length) { + return this.scriptSnapshot.getText(start, start + length); + }; + SimpleScriptSnapshotText.prototype.lineMap = function () { + var _this = this; + if (!this._lineMap) { + this._lineMap = new TypeScript.LineMap(function () { return _this.scriptSnapshot.getLineStartPositions(); }, this.length()); + } + return this._lineMap; + }; + return SimpleScriptSnapshotText; + })(); + function fromString(value) { + return new SimpleStringText(value); + } + SimpleText.fromString = fromString; + function fromScriptSnapshot(scriptSnapshot) { + return new SimpleScriptSnapshotText(scriptSnapshot); + } + SimpleText.fromScriptSnapshot = fromScriptSnapshot; + })(SimpleText = TypeScript.SimpleText || (TypeScript.SimpleText = {})); +})(TypeScript || (TypeScript = {})); +var TypeScript; +(function (TypeScript) { + var TextUtilities; + (function (TextUtilities) { + function parseLineStarts(text) { + var length = text.length; + if (0 === length) { + var result = new Array(); + result.push(0); + return result; + } + var position = 0; + var index = 0; + var arrayBuilder = new Array(); + var lineNumber = 0; + while (index < length) { + var c = text.charCodeAt(index); + var lineBreakLength; + if (c > 13 /* carriageReturn */ && c <= 127) { + index++; + continue; + } + else if (c === 13 /* carriageReturn */ && index + 1 < length && text.charCodeAt(index + 1) === 10 /* lineFeed */) { + lineBreakLength = 2; + } + else if (c === 10 /* lineFeed */) { + lineBreakLength = 1; + } + else { + lineBreakLength = TextUtilities.getLengthOfLineBreak(text, index); + } + if (0 === lineBreakLength) { + index++; + } + else { + arrayBuilder.push(position); + index += lineBreakLength; + position = index; + lineNumber++; + } + } + arrayBuilder.push(position); + return arrayBuilder; + } + TextUtilities.parseLineStarts = parseLineStarts; + function getLengthOfLineBreakSlow(text, index, c) { + if (c === 13 /* carriageReturn */) { + var next = index + 1; + return (next < text.length) && 10 /* lineFeed */ === text.charCodeAt(next) ? 2 : 1; + } + else if (isAnyLineBreakCharacter(c)) { + return 1; + } + else { + return 0; + } + } + TextUtilities.getLengthOfLineBreakSlow = getLengthOfLineBreakSlow; + function getLengthOfLineBreak(text, index) { + var c = text.charCodeAt(index); + if (c > 13 /* carriageReturn */ && c <= 127) { + return 0; + } + return getLengthOfLineBreakSlow(text, index, c); + } + TextUtilities.getLengthOfLineBreak = getLengthOfLineBreak; + function isAnyLineBreakCharacter(c) { + return c === 10 /* lineFeed */ || c === 13 /* carriageReturn */ || c === 133 /* nextLine */ || c === 8232 /* lineSeparator */ || c === 8233 /* paragraphSeparator */; + } + TextUtilities.isAnyLineBreakCharacter = isAnyLineBreakCharacter; + })(TextUtilities = TypeScript.TextUtilities || (TypeScript.TextUtilities = {})); +})(TypeScript || (TypeScript = {})); +var TypeScript; +(function (TypeScript) { + var TextSpan = (function () { + function TextSpan(start, length) { + if (start < 0) { + TypeScript.Errors.argument("start"); + } + if (length < 0) { + TypeScript.Errors.argument("length"); + } + this._start = start; + this._length = length; + } + TextSpan.prototype.toJSON = function (key) { + return { start: this._start, length: this._length }; + }; + TextSpan.prototype.start = function () { + return this._start; + }; + TextSpan.prototype.length = function () { + return this._length; + }; + TextSpan.prototype.end = function () { + return this._start + this._length; + }; + TextSpan.prototype.isEmpty = function () { + return this._length === 0; + }; + TextSpan.prototype.containsPosition = function (position) { + return position >= this._start && position < this.end(); + }; + TextSpan.prototype.containsTextSpan = function (span) { + return span._start >= this._start && span.end() <= this.end(); + }; + TextSpan.prototype.overlapsWith = function (span) { + var overlapStart = Math.max(this._start, span._start); + var overlapEnd = Math.min(this.end(), span.end()); + return overlapStart < overlapEnd; + }; + TextSpan.prototype.overlap = function (span) { + var overlapStart = Math.max(this._start, span._start); + var overlapEnd = Math.min(this.end(), span.end()); + if (overlapStart < overlapEnd) { + return TextSpan.fromBounds(overlapStart, overlapEnd); + } + return undefined; + }; + TextSpan.prototype.intersectsWithTextSpan = function (span) { + return span._start <= this.end() && span.end() >= this._start; + }; + TextSpan.prototype.intersectsWith = function (start, length) { + var end = start + length; + return start <= this.end() && end >= this._start; + }; + TextSpan.prototype.intersectsWithPosition = function (position) { + return position <= this.end() && position >= this._start; + }; + TextSpan.prototype.intersection = function (span) { + var intersectStart = Math.max(this._start, span._start); + var intersectEnd = Math.min(this.end(), span.end()); + if (intersectStart <= intersectEnd) { + return TextSpan.fromBounds(intersectStart, intersectEnd); + } + return undefined; + }; + TextSpan.fromBounds = function (start, end) { + TypeScript.Debug.assert(start >= 0); + TypeScript.Debug.assert(end - start >= 0); + return new TextSpan(start, end - start); + }; + return TextSpan; + })(); + TypeScript.TextSpan = TextSpan; +})(TypeScript || (TypeScript = {})); +var TypeScript; +(function (TypeScript) { + var TextChangeRange = (function () { + function TextChangeRange(span, newLength) { + if (newLength < 0) { + throw TypeScript.Errors.argumentOutOfRange("newLength"); + } + this._span = span; + this._newLength = newLength; + } + TextChangeRange.prototype.span = function () { + return this._span; + }; + TextChangeRange.prototype.newLength = function () { + return this._newLength; + }; + TextChangeRange.prototype.newSpan = function () { + return new TypeScript.TextSpan(this.span().start(), this.newLength()); + }; + TextChangeRange.prototype.isUnchanged = function () { + return this.span().isEmpty() && this.newLength() === 0; + }; + TextChangeRange.collapseChangesAcrossMultipleVersions = function (changes) { + if (changes.length === 0) { + return TextChangeRange.unchanged; + } + if (changes.length === 1) { + return changes[0]; + } + var change0 = changes[0]; + var oldStartN = change0.span().start(); + var oldEndN = change0.span().end(); + 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 = nextChange.span().end(); + 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 new TextChangeRange(TypeScript.TextSpan.fromBounds(oldStartN, oldEndN), newEndN - oldStartN); + }; + TextChangeRange.unchanged = new TextChangeRange(new TypeScript.TextSpan(0, 0), 0); + return TextChangeRange; + })(); + TypeScript.TextChangeRange = TextChangeRange; +})(TypeScript || (TypeScript = {})); +var TypeScript; +(function (TypeScript) { + var CharacterInfo; + (function (CharacterInfo) { + function isDecimalDigit(c) { + return c >= 48 /* _0 */ && c <= 57 /* _9 */; + } + CharacterInfo.isDecimalDigit = isDecimalDigit; + function isOctalDigit(c) { + return c >= 48 /* _0 */ && c <= 55 /* _7 */; + } + CharacterInfo.isOctalDigit = isOctalDigit; + function isHexDigit(c) { + return CharacterInfo.isDecimalDigit(c) || (c >= 65 /* A */ && c <= 70 /* F */) || (c >= 97 /* a */ && c <= 102 /* f */); + } + CharacterInfo.isHexDigit = isHexDigit; + function hexValue(c) { + return CharacterInfo.isDecimalDigit(c) ? (c - 48 /* _0 */) : (c >= 65 /* A */ && c <= 70 /* F */) ? c - 65 /* A */ + 10 : c - 97 /* a */ + 10; + } + CharacterInfo.hexValue = hexValue; + function isWhitespace(ch) { + switch (ch) { + case 32 /* space */: + case 160 /* nonBreakingSpace */: + case 8192 /* enQuad */: + case 8193 /* emQuad */: + case 8194 /* enSpace */: + case 8195 /* emSpace */: + case 8196 /* threePerEmSpace */: + case 8197 /* fourPerEmSpace */: + case 8198 /* sixPerEmSpace */: + case 8199 /* figureSpace */: + case 8200 /* punctuationSpace */: + case 8201 /* thinSpace */: + case 8202 /* hairSpace */: + case 8203 /* zeroWidthSpace */: + case 8239 /* narrowNoBreakSpace */: + case 12288 /* ideographicSpace */: + case 9 /* tab */: + case 11 /* verticalTab */: + case 12 /* formFeed */: + case 65279 /* byteOrderMark */: + return true; + } + return false; + } + CharacterInfo.isWhitespace = isWhitespace; + function isLineTerminator(ch) { + switch (ch) { + case 13 /* carriageReturn */: + case 10 /* lineFeed */: + case 8233 /* paragraphSeparator */: + case 8232 /* lineSeparator */: + return true; + } + return false; + } + CharacterInfo.isLineTerminator = isLineTerminator; + })(CharacterInfo = TypeScript.CharacterInfo || (TypeScript.CharacterInfo = {})); +})(TypeScript || (TypeScript = {})); +var TypeScript; +(function (TypeScript) { + (function (ParserContextFlags) { + ParserContextFlags[ParserContextFlags["StrictMode"] = 1] = "StrictMode"; + ParserContextFlags[ParserContextFlags["DisallowIn"] = 2] = "DisallowIn"; + ParserContextFlags[ParserContextFlags["Yield"] = 4] = "Yield"; + ParserContextFlags[ParserContextFlags["GeneratorParameter"] = 8] = "GeneratorParameter"; + ParserContextFlags[ParserContextFlags["Async"] = 16] = "Async"; + ParserContextFlags[ParserContextFlags["Mask"] = 31] = "Mask"; + })(TypeScript.ParserContextFlags || (TypeScript.ParserContextFlags = {})); + var ParserContextFlags = TypeScript.ParserContextFlags; + (function (SyntaxNodeConstants) { + SyntaxNodeConstants[SyntaxNodeConstants["None"] = 0] = "None"; + SyntaxNodeConstants[SyntaxNodeConstants["DataComputed"] = 1 << 5] = "DataComputed"; + SyntaxNodeConstants[SyntaxNodeConstants["IncrementallyUnusableMask"] = 1 << 6] = "IncrementallyUnusableMask"; + SyntaxNodeConstants[SyntaxNodeConstants["FullWidthShift"] = 1 << 7] = "FullWidthShift"; + })(TypeScript.SyntaxNodeConstants || (TypeScript.SyntaxNodeConstants = {})); + var SyntaxNodeConstants = TypeScript.SyntaxNodeConstants; +})(TypeScript || (TypeScript = {})); +var TypeScript; +(function (TypeScript) { + var FormattingOptions = (function () { + function FormattingOptions(useTabs, spacesPerTab, indentSpaces, newLineCharacter) { + this.useTabs = useTabs; + this.spacesPerTab = spacesPerTab; + this.indentSpaces = indentSpaces; + this.newLineCharacter = newLineCharacter; + } + FormattingOptions.defaultOptions = new FormattingOptions(false, 4, 4, "\r\n"); + return FormattingOptions; + })(); + TypeScript.FormattingOptions = FormattingOptions; +})(TypeScript || (TypeScript = {})); +var TypeScript; +(function (TypeScript) { + (function (SyntaxKind) { + SyntaxKind[SyntaxKind["None"] = 0] = "None"; + SyntaxKind[SyntaxKind["List"] = 1] = "List"; + SyntaxKind[SyntaxKind["WhitespaceTrivia"] = 2] = "WhitespaceTrivia"; + SyntaxKind[SyntaxKind["NewLineTrivia"] = 3] = "NewLineTrivia"; + SyntaxKind[SyntaxKind["MultiLineCommentTrivia"] = 4] = "MultiLineCommentTrivia"; + SyntaxKind[SyntaxKind["SingleLineCommentTrivia"] = 5] = "SingleLineCommentTrivia"; + SyntaxKind[SyntaxKind["SkippedTokenTrivia"] = 6] = "SkippedTokenTrivia"; + SyntaxKind[SyntaxKind["ErrorToken"] = 7] = "ErrorToken"; + SyntaxKind[SyntaxKind["EndOfFileToken"] = 8] = "EndOfFileToken"; + SyntaxKind[SyntaxKind["IdentifierName"] = 9] = "IdentifierName"; + SyntaxKind[SyntaxKind["RegularExpressionLiteral"] = 10] = "RegularExpressionLiteral"; + SyntaxKind[SyntaxKind["NumericLiteral"] = 11] = "NumericLiteral"; + SyntaxKind[SyntaxKind["StringLiteral"] = 12] = "StringLiteral"; + SyntaxKind[SyntaxKind["NoSubstitutionTemplateToken"] = 13] = "NoSubstitutionTemplateToken"; + SyntaxKind[SyntaxKind["TemplateStartToken"] = 14] = "TemplateStartToken"; + SyntaxKind[SyntaxKind["TemplateMiddleToken"] = 15] = "TemplateMiddleToken"; + SyntaxKind[SyntaxKind["TemplateEndToken"] = 16] = "TemplateEndToken"; + SyntaxKind[SyntaxKind["BreakKeyword"] = 17] = "BreakKeyword"; + SyntaxKind[SyntaxKind["CaseKeyword"] = 18] = "CaseKeyword"; + SyntaxKind[SyntaxKind["CatchKeyword"] = 19] = "CatchKeyword"; + SyntaxKind[SyntaxKind["ContinueKeyword"] = 20] = "ContinueKeyword"; + SyntaxKind[SyntaxKind["DebuggerKeyword"] = 21] = "DebuggerKeyword"; + SyntaxKind[SyntaxKind["DefaultKeyword"] = 22] = "DefaultKeyword"; + SyntaxKind[SyntaxKind["DeleteKeyword"] = 23] = "DeleteKeyword"; + SyntaxKind[SyntaxKind["DoKeyword"] = 24] = "DoKeyword"; + SyntaxKind[SyntaxKind["ElseKeyword"] = 25] = "ElseKeyword"; + SyntaxKind[SyntaxKind["FalseKeyword"] = 26] = "FalseKeyword"; + SyntaxKind[SyntaxKind["FinallyKeyword"] = 27] = "FinallyKeyword"; + SyntaxKind[SyntaxKind["ForKeyword"] = 28] = "ForKeyword"; + SyntaxKind[SyntaxKind["FunctionKeyword"] = 29] = "FunctionKeyword"; + SyntaxKind[SyntaxKind["IfKeyword"] = 30] = "IfKeyword"; + SyntaxKind[SyntaxKind["InKeyword"] = 31] = "InKeyword"; + SyntaxKind[SyntaxKind["InstanceOfKeyword"] = 32] = "InstanceOfKeyword"; + SyntaxKind[SyntaxKind["NewKeyword"] = 33] = "NewKeyword"; + SyntaxKind[SyntaxKind["NullKeyword"] = 34] = "NullKeyword"; + SyntaxKind[SyntaxKind["ReturnKeyword"] = 35] = "ReturnKeyword"; + SyntaxKind[SyntaxKind["SwitchKeyword"] = 36] = "SwitchKeyword"; + SyntaxKind[SyntaxKind["ThisKeyword"] = 37] = "ThisKeyword"; + SyntaxKind[SyntaxKind["ThrowKeyword"] = 38] = "ThrowKeyword"; + SyntaxKind[SyntaxKind["TrueKeyword"] = 39] = "TrueKeyword"; + SyntaxKind[SyntaxKind["TryKeyword"] = 40] = "TryKeyword"; + SyntaxKind[SyntaxKind["TypeOfKeyword"] = 41] = "TypeOfKeyword"; + SyntaxKind[SyntaxKind["VarKeyword"] = 42] = "VarKeyword"; + SyntaxKind[SyntaxKind["VoidKeyword"] = 43] = "VoidKeyword"; + SyntaxKind[SyntaxKind["WhileKeyword"] = 44] = "WhileKeyword"; + SyntaxKind[SyntaxKind["WithKeyword"] = 45] = "WithKeyword"; + SyntaxKind[SyntaxKind["ClassKeyword"] = 46] = "ClassKeyword"; + SyntaxKind[SyntaxKind["ConstKeyword"] = 47] = "ConstKeyword"; + SyntaxKind[SyntaxKind["EnumKeyword"] = 48] = "EnumKeyword"; + SyntaxKind[SyntaxKind["ExportKeyword"] = 49] = "ExportKeyword"; + SyntaxKind[SyntaxKind["ExtendsKeyword"] = 50] = "ExtendsKeyword"; + SyntaxKind[SyntaxKind["ImportKeyword"] = 51] = "ImportKeyword"; + SyntaxKind[SyntaxKind["SuperKeyword"] = 52] = "SuperKeyword"; + SyntaxKind[SyntaxKind["ImplementsKeyword"] = 53] = "ImplementsKeyword"; + SyntaxKind[SyntaxKind["InterfaceKeyword"] = 54] = "InterfaceKeyword"; + SyntaxKind[SyntaxKind["LetKeyword"] = 55] = "LetKeyword"; + SyntaxKind[SyntaxKind["PackageKeyword"] = 56] = "PackageKeyword"; + SyntaxKind[SyntaxKind["PrivateKeyword"] = 57] = "PrivateKeyword"; + SyntaxKind[SyntaxKind["ProtectedKeyword"] = 58] = "ProtectedKeyword"; + SyntaxKind[SyntaxKind["PublicKeyword"] = 59] = "PublicKeyword"; + SyntaxKind[SyntaxKind["StaticKeyword"] = 60] = "StaticKeyword"; + SyntaxKind[SyntaxKind["YieldKeyword"] = 61] = "YieldKeyword"; + SyntaxKind[SyntaxKind["AnyKeyword"] = 62] = "AnyKeyword"; + SyntaxKind[SyntaxKind["AsyncKeyword"] = 63] = "AsyncKeyword"; + SyntaxKind[SyntaxKind["AwaitKeyword"] = 64] = "AwaitKeyword"; + SyntaxKind[SyntaxKind["BooleanKeyword"] = 65] = "BooleanKeyword"; + SyntaxKind[SyntaxKind["ConstructorKeyword"] = 66] = "ConstructorKeyword"; + SyntaxKind[SyntaxKind["DeclareKeyword"] = 67] = "DeclareKeyword"; + SyntaxKind[SyntaxKind["GetKeyword"] = 68] = "GetKeyword"; + SyntaxKind[SyntaxKind["ModuleKeyword"] = 69] = "ModuleKeyword"; + SyntaxKind[SyntaxKind["RequireKeyword"] = 70] = "RequireKeyword"; + SyntaxKind[SyntaxKind["NumberKeyword"] = 71] = "NumberKeyword"; + SyntaxKind[SyntaxKind["SetKeyword"] = 72] = "SetKeyword"; + SyntaxKind[SyntaxKind["StringKeyword"] = 73] = "StringKeyword"; + SyntaxKind[SyntaxKind["OpenBraceToken"] = 74] = "OpenBraceToken"; + SyntaxKind[SyntaxKind["CloseBraceToken"] = 75] = "CloseBraceToken"; + SyntaxKind[SyntaxKind["OpenParenToken"] = 76] = "OpenParenToken"; + SyntaxKind[SyntaxKind["CloseParenToken"] = 77] = "CloseParenToken"; + SyntaxKind[SyntaxKind["OpenBracketToken"] = 78] = "OpenBracketToken"; + SyntaxKind[SyntaxKind["CloseBracketToken"] = 79] = "CloseBracketToken"; + SyntaxKind[SyntaxKind["DotToken"] = 80] = "DotToken"; + SyntaxKind[SyntaxKind["DotDotDotToken"] = 81] = "DotDotDotToken"; + SyntaxKind[SyntaxKind["SemicolonToken"] = 82] = "SemicolonToken"; + SyntaxKind[SyntaxKind["CommaToken"] = 83] = "CommaToken"; + SyntaxKind[SyntaxKind["LessThanToken"] = 84] = "LessThanToken"; + SyntaxKind[SyntaxKind["GreaterThanToken"] = 85] = "GreaterThanToken"; + SyntaxKind[SyntaxKind["LessThanEqualsToken"] = 86] = "LessThanEqualsToken"; + SyntaxKind[SyntaxKind["GreaterThanEqualsToken"] = 87] = "GreaterThanEqualsToken"; + SyntaxKind[SyntaxKind["EqualsEqualsToken"] = 88] = "EqualsEqualsToken"; + SyntaxKind[SyntaxKind["EqualsGreaterThanToken"] = 89] = "EqualsGreaterThanToken"; + SyntaxKind[SyntaxKind["ExclamationEqualsToken"] = 90] = "ExclamationEqualsToken"; + SyntaxKind[SyntaxKind["EqualsEqualsEqualsToken"] = 91] = "EqualsEqualsEqualsToken"; + SyntaxKind[SyntaxKind["ExclamationEqualsEqualsToken"] = 92] = "ExclamationEqualsEqualsToken"; + SyntaxKind[SyntaxKind["PlusToken"] = 93] = "PlusToken"; + SyntaxKind[SyntaxKind["MinusToken"] = 94] = "MinusToken"; + SyntaxKind[SyntaxKind["AsteriskToken"] = 95] = "AsteriskToken"; + SyntaxKind[SyntaxKind["PercentToken"] = 96] = "PercentToken"; + SyntaxKind[SyntaxKind["PlusPlusToken"] = 97] = "PlusPlusToken"; + SyntaxKind[SyntaxKind["MinusMinusToken"] = 98] = "MinusMinusToken"; + SyntaxKind[SyntaxKind["LessThanLessThanToken"] = 99] = "LessThanLessThanToken"; + SyntaxKind[SyntaxKind["GreaterThanGreaterThanToken"] = 100] = "GreaterThanGreaterThanToken"; + SyntaxKind[SyntaxKind["GreaterThanGreaterThanGreaterThanToken"] = 101] = "GreaterThanGreaterThanGreaterThanToken"; + SyntaxKind[SyntaxKind["AmpersandToken"] = 102] = "AmpersandToken"; + SyntaxKind[SyntaxKind["BarToken"] = 103] = "BarToken"; + SyntaxKind[SyntaxKind["CaretToken"] = 104] = "CaretToken"; + SyntaxKind[SyntaxKind["ExclamationToken"] = 105] = "ExclamationToken"; + SyntaxKind[SyntaxKind["TildeToken"] = 106] = "TildeToken"; + SyntaxKind[SyntaxKind["AmpersandAmpersandToken"] = 107] = "AmpersandAmpersandToken"; + SyntaxKind[SyntaxKind["BarBarToken"] = 108] = "BarBarToken"; + SyntaxKind[SyntaxKind["QuestionToken"] = 109] = "QuestionToken"; + SyntaxKind[SyntaxKind["ColonToken"] = 110] = "ColonToken"; + SyntaxKind[SyntaxKind["EqualsToken"] = 111] = "EqualsToken"; + SyntaxKind[SyntaxKind["PlusEqualsToken"] = 112] = "PlusEqualsToken"; + SyntaxKind[SyntaxKind["MinusEqualsToken"] = 113] = "MinusEqualsToken"; + SyntaxKind[SyntaxKind["AsteriskEqualsToken"] = 114] = "AsteriskEqualsToken"; + SyntaxKind[SyntaxKind["PercentEqualsToken"] = 115] = "PercentEqualsToken"; + SyntaxKind[SyntaxKind["LessThanLessThanEqualsToken"] = 116] = "LessThanLessThanEqualsToken"; + SyntaxKind[SyntaxKind["GreaterThanGreaterThanEqualsToken"] = 117] = "GreaterThanGreaterThanEqualsToken"; + SyntaxKind[SyntaxKind["GreaterThanGreaterThanGreaterThanEqualsToken"] = 118] = "GreaterThanGreaterThanGreaterThanEqualsToken"; + SyntaxKind[SyntaxKind["AmpersandEqualsToken"] = 119] = "AmpersandEqualsToken"; + SyntaxKind[SyntaxKind["BarEqualsToken"] = 120] = "BarEqualsToken"; + SyntaxKind[SyntaxKind["CaretEqualsToken"] = 121] = "CaretEqualsToken"; + SyntaxKind[SyntaxKind["SlashToken"] = 122] = "SlashToken"; + SyntaxKind[SyntaxKind["SlashEqualsToken"] = 123] = "SlashEqualsToken"; + SyntaxKind[SyntaxKind["SourceUnit"] = 124] = "SourceUnit"; + SyntaxKind[SyntaxKind["QualifiedName"] = 125] = "QualifiedName"; + SyntaxKind[SyntaxKind["ObjectType"] = 126] = "ObjectType"; + SyntaxKind[SyntaxKind["FunctionType"] = 127] = "FunctionType"; + SyntaxKind[SyntaxKind["ArrayType"] = 128] = "ArrayType"; + SyntaxKind[SyntaxKind["ConstructorType"] = 129] = "ConstructorType"; + SyntaxKind[SyntaxKind["GenericType"] = 130] = "GenericType"; + SyntaxKind[SyntaxKind["TypeQuery"] = 131] = "TypeQuery"; + SyntaxKind[SyntaxKind["TupleType"] = 132] = "TupleType"; + SyntaxKind[SyntaxKind["UnionType"] = 133] = "UnionType"; + SyntaxKind[SyntaxKind["ParenthesizedType"] = 134] = "ParenthesizedType"; + SyntaxKind[SyntaxKind["InterfaceDeclaration"] = 135] = "InterfaceDeclaration"; + SyntaxKind[SyntaxKind["FunctionDeclaration"] = 136] = "FunctionDeclaration"; + SyntaxKind[SyntaxKind["ModuleDeclaration"] = 137] = "ModuleDeclaration"; + SyntaxKind[SyntaxKind["ClassDeclaration"] = 138] = "ClassDeclaration"; + SyntaxKind[SyntaxKind["EnumDeclaration"] = 139] = "EnumDeclaration"; + SyntaxKind[SyntaxKind["ImportDeclaration"] = 140] = "ImportDeclaration"; + SyntaxKind[SyntaxKind["ExportAssignment"] = 141] = "ExportAssignment"; + SyntaxKind[SyntaxKind["MemberFunctionDeclaration"] = 142] = "MemberFunctionDeclaration"; + SyntaxKind[SyntaxKind["MemberVariableDeclaration"] = 143] = "MemberVariableDeclaration"; + SyntaxKind[SyntaxKind["ConstructorDeclaration"] = 144] = "ConstructorDeclaration"; + SyntaxKind[SyntaxKind["IndexMemberDeclaration"] = 145] = "IndexMemberDeclaration"; + SyntaxKind[SyntaxKind["GetAccessor"] = 146] = "GetAccessor"; + SyntaxKind[SyntaxKind["SetAccessor"] = 147] = "SetAccessor"; + SyntaxKind[SyntaxKind["PropertySignature"] = 148] = "PropertySignature"; + SyntaxKind[SyntaxKind["CallSignature"] = 149] = "CallSignature"; + SyntaxKind[SyntaxKind["ConstructSignature"] = 150] = "ConstructSignature"; + SyntaxKind[SyntaxKind["IndexSignature"] = 151] = "IndexSignature"; + SyntaxKind[SyntaxKind["MethodSignature"] = 152] = "MethodSignature"; + SyntaxKind[SyntaxKind["Block"] = 153] = "Block"; + SyntaxKind[SyntaxKind["IfStatement"] = 154] = "IfStatement"; + SyntaxKind[SyntaxKind["VariableStatement"] = 155] = "VariableStatement"; + SyntaxKind[SyntaxKind["ExpressionStatement"] = 156] = "ExpressionStatement"; + SyntaxKind[SyntaxKind["ReturnStatement"] = 157] = "ReturnStatement"; + SyntaxKind[SyntaxKind["SwitchStatement"] = 158] = "SwitchStatement"; + SyntaxKind[SyntaxKind["BreakStatement"] = 159] = "BreakStatement"; + SyntaxKind[SyntaxKind["ContinueStatement"] = 160] = "ContinueStatement"; + SyntaxKind[SyntaxKind["ForStatement"] = 161] = "ForStatement"; + SyntaxKind[SyntaxKind["ForInStatement"] = 162] = "ForInStatement"; + SyntaxKind[SyntaxKind["EmptyStatement"] = 163] = "EmptyStatement"; + SyntaxKind[SyntaxKind["ThrowStatement"] = 164] = "ThrowStatement"; + SyntaxKind[SyntaxKind["WhileStatement"] = 165] = "WhileStatement"; + SyntaxKind[SyntaxKind["TryStatement"] = 166] = "TryStatement"; + SyntaxKind[SyntaxKind["LabeledStatement"] = 167] = "LabeledStatement"; + SyntaxKind[SyntaxKind["DoStatement"] = 168] = "DoStatement"; + SyntaxKind[SyntaxKind["DebuggerStatement"] = 169] = "DebuggerStatement"; + SyntaxKind[SyntaxKind["WithStatement"] = 170] = "WithStatement"; + SyntaxKind[SyntaxKind["PrefixUnaryExpression"] = 171] = "PrefixUnaryExpression"; + SyntaxKind[SyntaxKind["DeleteExpression"] = 172] = "DeleteExpression"; + SyntaxKind[SyntaxKind["TypeOfExpression"] = 173] = "TypeOfExpression"; + SyntaxKind[SyntaxKind["VoidExpression"] = 174] = "VoidExpression"; + SyntaxKind[SyntaxKind["ConditionalExpression"] = 175] = "ConditionalExpression"; + SyntaxKind[SyntaxKind["BinaryExpression"] = 176] = "BinaryExpression"; + SyntaxKind[SyntaxKind["PostfixUnaryExpression"] = 177] = "PostfixUnaryExpression"; + SyntaxKind[SyntaxKind["MemberAccessExpression"] = 178] = "MemberAccessExpression"; + SyntaxKind[SyntaxKind["InvocationExpression"] = 179] = "InvocationExpression"; + SyntaxKind[SyntaxKind["ArrayLiteralExpression"] = 180] = "ArrayLiteralExpression"; + SyntaxKind[SyntaxKind["ObjectLiteralExpression"] = 181] = "ObjectLiteralExpression"; + SyntaxKind[SyntaxKind["ObjectCreationExpression"] = 182] = "ObjectCreationExpression"; + SyntaxKind[SyntaxKind["ParenthesizedExpression"] = 183] = "ParenthesizedExpression"; + SyntaxKind[SyntaxKind["ParenthesizedArrowFunctionExpression"] = 184] = "ParenthesizedArrowFunctionExpression"; + SyntaxKind[SyntaxKind["SimpleArrowFunctionExpression"] = 185] = "SimpleArrowFunctionExpression"; + SyntaxKind[SyntaxKind["CastExpression"] = 186] = "CastExpression"; + SyntaxKind[SyntaxKind["ElementAccessExpression"] = 187] = "ElementAccessExpression"; + SyntaxKind[SyntaxKind["FunctionExpression"] = 188] = "FunctionExpression"; + SyntaxKind[SyntaxKind["OmittedExpression"] = 189] = "OmittedExpression"; + SyntaxKind[SyntaxKind["TemplateExpression"] = 190] = "TemplateExpression"; + SyntaxKind[SyntaxKind["TemplateAccessExpression"] = 191] = "TemplateAccessExpression"; + SyntaxKind[SyntaxKind["YieldExpression"] = 192] = "YieldExpression"; + SyntaxKind[SyntaxKind["AwaitExpression"] = 193] = "AwaitExpression"; + SyntaxKind[SyntaxKind["VariableDeclaration"] = 194] = "VariableDeclaration"; + SyntaxKind[SyntaxKind["VariableDeclarator"] = 195] = "VariableDeclarator"; + SyntaxKind[SyntaxKind["ArgumentList"] = 196] = "ArgumentList"; + SyntaxKind[SyntaxKind["ParameterList"] = 197] = "ParameterList"; + SyntaxKind[SyntaxKind["TypeArgumentList"] = 198] = "TypeArgumentList"; + SyntaxKind[SyntaxKind["TypeParameterList"] = 199] = "TypeParameterList"; + SyntaxKind[SyntaxKind["HeritageClause"] = 200] = "HeritageClause"; + SyntaxKind[SyntaxKind["EqualsValueClause"] = 201] = "EqualsValueClause"; + SyntaxKind[SyntaxKind["CaseSwitchClause"] = 202] = "CaseSwitchClause"; + SyntaxKind[SyntaxKind["DefaultSwitchClause"] = 203] = "DefaultSwitchClause"; + SyntaxKind[SyntaxKind["ElseClause"] = 204] = "ElseClause"; + SyntaxKind[SyntaxKind["CatchClause"] = 205] = "CatchClause"; + SyntaxKind[SyntaxKind["FinallyClause"] = 206] = "FinallyClause"; + SyntaxKind[SyntaxKind["TemplateClause"] = 207] = "TemplateClause"; + SyntaxKind[SyntaxKind["TypeParameter"] = 208] = "TypeParameter"; + SyntaxKind[SyntaxKind["Constraint"] = 209] = "Constraint"; + SyntaxKind[SyntaxKind["Parameter"] = 210] = "Parameter"; + SyntaxKind[SyntaxKind["EnumElement"] = 211] = "EnumElement"; + SyntaxKind[SyntaxKind["TypeAnnotation"] = 212] = "TypeAnnotation"; + SyntaxKind[SyntaxKind["ExpressionBody"] = 213] = "ExpressionBody"; + SyntaxKind[SyntaxKind["ComputedPropertyName"] = 214] = "ComputedPropertyName"; + SyntaxKind[SyntaxKind["PropertyAssignment"] = 215] = "PropertyAssignment"; + SyntaxKind[SyntaxKind["ExternalModuleReference"] = 216] = "ExternalModuleReference"; + SyntaxKind[SyntaxKind["ModuleNameModuleReference"] = 217] = "ModuleNameModuleReference"; + SyntaxKind[SyntaxKind["FirstStandardKeyword"] = 17] = "FirstStandardKeyword"; + SyntaxKind[SyntaxKind["LastStandardKeyword"] = 45] = "LastStandardKeyword"; + SyntaxKind[SyntaxKind["FirstFutureReservedKeyword"] = 46] = "FirstFutureReservedKeyword"; + SyntaxKind[SyntaxKind["LastFutureReservedKeyword"] = 52] = "LastFutureReservedKeyword"; + SyntaxKind[SyntaxKind["FirstFutureReservedStrictKeyword"] = 53] = "FirstFutureReservedStrictKeyword"; + SyntaxKind[SyntaxKind["LastFutureReservedStrictKeyword"] = 61] = "LastFutureReservedStrictKeyword"; + SyntaxKind[SyntaxKind["FirstTypeScriptKeyword"] = 62] = "FirstTypeScriptKeyword"; + SyntaxKind[SyntaxKind["LastTypeScriptKeyword"] = 73] = "LastTypeScriptKeyword"; + SyntaxKind[SyntaxKind["FirstKeyword"] = 17] = "FirstKeyword"; + SyntaxKind[SyntaxKind["LastKeyword"] = 73] = "LastKeyword"; + SyntaxKind[SyntaxKind["FirstToken"] = 7] = "FirstToken"; + SyntaxKind[SyntaxKind["LastToken"] = 123] = "LastToken"; + SyntaxKind[SyntaxKind["FirstPunctuation"] = 74] = "FirstPunctuation"; + SyntaxKind[SyntaxKind["LastPunctuation"] = 123] = "LastPunctuation"; + SyntaxKind[SyntaxKind["FirstFixedWidth"] = 17] = "FirstFixedWidth"; + SyntaxKind[SyntaxKind["LastFixedWidth"] = 123] = "LastFixedWidth"; + SyntaxKind[SyntaxKind["FirstTrivia"] = 2] = "FirstTrivia"; + SyntaxKind[SyntaxKind["LastTrivia"] = 6] = "LastTrivia"; + SyntaxKind[SyntaxKind["FirstNode"] = 124] = "FirstNode"; + SyntaxKind[SyntaxKind["LastNode"] = 217] = "LastNode"; + })(TypeScript.SyntaxKind || (TypeScript.SyntaxKind = {})); + var SyntaxKind = TypeScript.SyntaxKind; +})(TypeScript || (TypeScript = {})); +var TypeScript; +(function (TypeScript) { + var SyntaxFacts; + (function (SyntaxFacts) { + var textToKeywordKind = { + "any": 62 /* AnyKeyword */, + "async": 63 /* AsyncKeyword */, + "await": 64 /* AwaitKeyword */, + "boolean": 65 /* BooleanKeyword */, + "break": 17 /* BreakKeyword */, + "case": 18 /* CaseKeyword */, + "catch": 19 /* CatchKeyword */, + "class": 46 /* ClassKeyword */, + "continue": 20 /* ContinueKeyword */, + "const": 47 /* ConstKeyword */, + "constructor": 66 /* ConstructorKeyword */, + "debugger": 21 /* DebuggerKeyword */, + "declare": 67 /* DeclareKeyword */, + "default": 22 /* DefaultKeyword */, + "delete": 23 /* DeleteKeyword */, + "do": 24 /* DoKeyword */, + "else": 25 /* ElseKeyword */, + "enum": 48 /* EnumKeyword */, + "export": 49 /* ExportKeyword */, + "extends": 50 /* ExtendsKeyword */, + "false": 26 /* FalseKeyword */, + "finally": 27 /* FinallyKeyword */, + "for": 28 /* ForKeyword */, + "function": 29 /* FunctionKeyword */, + "get": 68 /* GetKeyword */, + "if": 30 /* IfKeyword */, + "implements": 53 /* ImplementsKeyword */, + "import": 51 /* ImportKeyword */, + "in": 31 /* InKeyword */, + "instanceof": 32 /* InstanceOfKeyword */, + "interface": 54 /* InterfaceKeyword */, + "let": 55 /* LetKeyword */, + "module": 69 /* ModuleKeyword */, + "new": 33 /* NewKeyword */, + "null": 34 /* NullKeyword */, + "number": 71 /* NumberKeyword */, + "package": 56 /* PackageKeyword */, + "private": 57 /* PrivateKeyword */, + "protected": 58 /* ProtectedKeyword */, + "public": 59 /* PublicKeyword */, + "require": 70 /* RequireKeyword */, + "return": 35 /* ReturnKeyword */, + "set": 72 /* SetKeyword */, + "static": 60 /* StaticKeyword */, + "string": 73 /* StringKeyword */, + "super": 52 /* SuperKeyword */, + "switch": 36 /* SwitchKeyword */, + "this": 37 /* ThisKeyword */, + "throw": 38 /* ThrowKeyword */, + "true": 39 /* TrueKeyword */, + "try": 40 /* TryKeyword */, + "typeof": 41 /* TypeOfKeyword */, + "var": 42 /* VarKeyword */, + "void": 43 /* VoidKeyword */, + "while": 44 /* WhileKeyword */, + "with": 45 /* WithKeyword */, + "yield": 61 /* YieldKeyword */, + "{": 74 /* OpenBraceToken */, + "}": 75 /* CloseBraceToken */, + "(": 76 /* OpenParenToken */, + ")": 77 /* CloseParenToken */, + "[": 78 /* OpenBracketToken */, + "]": 79 /* CloseBracketToken */, + ".": 80 /* DotToken */, + "...": 81 /* DotDotDotToken */, + ";": 82 /* SemicolonToken */, + ",": 83 /* CommaToken */, + "<": 84 /* LessThanToken */, + ">": 85 /* GreaterThanToken */, + "<=": 86 /* LessThanEqualsToken */, + ">=": 87 /* GreaterThanEqualsToken */, + "==": 88 /* EqualsEqualsToken */, + "=>": 89 /* EqualsGreaterThanToken */, + "!=": 90 /* ExclamationEqualsToken */, + "===": 91 /* EqualsEqualsEqualsToken */, + "!==": 92 /* ExclamationEqualsEqualsToken */, + "+": 93 /* PlusToken */, + "-": 94 /* MinusToken */, + "*": 95 /* AsteriskToken */, + "%": 96 /* PercentToken */, + "++": 97 /* PlusPlusToken */, + "--": 98 /* MinusMinusToken */, + "<<": 99 /* LessThanLessThanToken */, + ">>": 100 /* GreaterThanGreaterThanToken */, + ">>>": 101 /* GreaterThanGreaterThanGreaterThanToken */, + "&": 102 /* AmpersandToken */, + "|": 103 /* BarToken */, + "^": 104 /* CaretToken */, + "!": 105 /* ExclamationToken */, + "~": 106 /* TildeToken */, + "&&": 107 /* AmpersandAmpersandToken */, + "||": 108 /* BarBarToken */, + "?": 109 /* QuestionToken */, + ":": 110 /* ColonToken */, + "=": 111 /* EqualsToken */, + "+=": 112 /* PlusEqualsToken */, + "-=": 113 /* MinusEqualsToken */, + "*=": 114 /* AsteriskEqualsToken */, + "%=": 115 /* PercentEqualsToken */, + "<<=": 116 /* LessThanLessThanEqualsToken */, + ">>=": 117 /* GreaterThanGreaterThanEqualsToken */, + ">>>=": 118 /* GreaterThanGreaterThanGreaterThanEqualsToken */, + "&=": 119 /* AmpersandEqualsToken */, + "|=": 120 /* BarEqualsToken */, + "^=": 121 /* CaretEqualsToken */, + "/": 122 /* SlashToken */, + "/=": 123 /* SlashEqualsToken */ + }; + var kindToText = new Array(); + for (var name in textToKeywordKind) { + if (textToKeywordKind.hasOwnProperty(name)) { + kindToText[textToKeywordKind[name]] = name; + } + } + kindToText[66 /* ConstructorKeyword */] = "constructor"; + function getTokenKind(text) { + if (textToKeywordKind.hasOwnProperty(text)) { + return textToKeywordKind[text]; + } + return 0 /* None */; + } + SyntaxFacts.getTokenKind = getTokenKind; + function getText(kind) { + var result = kindToText[kind]; + return result; + } + SyntaxFacts.getText = getText; + function isAnyKeyword(kind) { + return kind >= 17 /* FirstKeyword */ && kind <= 73 /* LastKeyword */; + } + SyntaxFacts.isAnyKeyword = isAnyKeyword; + function isAnyPunctuation(kind) { + return kind >= 74 /* FirstPunctuation */ && kind <= 123 /* LastPunctuation */; + } + SyntaxFacts.isAnyPunctuation = isAnyPunctuation; + function isPrefixUnaryExpressionOperatorToken(tokenKind) { + switch (tokenKind) { + case 93 /* PlusToken */: + case 94 /* MinusToken */: + case 106 /* TildeToken */: + case 105 /* ExclamationToken */: + case 97 /* PlusPlusToken */: + case 98 /* MinusMinusToken */: + return true; + default: + return false; + } + } + SyntaxFacts.isPrefixUnaryExpressionOperatorToken = isPrefixUnaryExpressionOperatorToken; + function isBinaryExpressionOperatorToken(tokenKind) { + switch (tokenKind) { + case 95 /* AsteriskToken */: + case 122 /* SlashToken */: + case 96 /* PercentToken */: + case 93 /* PlusToken */: + case 94 /* MinusToken */: + case 99 /* LessThanLessThanToken */: + case 100 /* GreaterThanGreaterThanToken */: + case 101 /* GreaterThanGreaterThanGreaterThanToken */: + case 84 /* LessThanToken */: + case 85 /* GreaterThanToken */: + case 86 /* LessThanEqualsToken */: + case 87 /* GreaterThanEqualsToken */: + case 32 /* InstanceOfKeyword */: + case 31 /* InKeyword */: + case 88 /* EqualsEqualsToken */: + case 90 /* ExclamationEqualsToken */: + case 91 /* EqualsEqualsEqualsToken */: + case 92 /* ExclamationEqualsEqualsToken */: + case 102 /* AmpersandToken */: + case 104 /* CaretToken */: + case 103 /* BarToken */: + case 107 /* AmpersandAmpersandToken */: + case 108 /* BarBarToken */: + case 120 /* BarEqualsToken */: + case 119 /* AmpersandEqualsToken */: + case 121 /* CaretEqualsToken */: + case 116 /* LessThanLessThanEqualsToken */: + case 117 /* GreaterThanGreaterThanEqualsToken */: + case 118 /* GreaterThanGreaterThanGreaterThanEqualsToken */: + case 112 /* PlusEqualsToken */: + case 113 /* MinusEqualsToken */: + case 114 /* AsteriskEqualsToken */: + case 123 /* SlashEqualsToken */: + case 115 /* PercentEqualsToken */: + case 111 /* EqualsToken */: + case 83 /* CommaToken */: + return true; + default: + return false; + } + } + SyntaxFacts.isBinaryExpressionOperatorToken = isBinaryExpressionOperatorToken; + function isAssignmentOperatorToken(tokenKind) { + switch (tokenKind) { + case 120 /* BarEqualsToken */: + case 119 /* AmpersandEqualsToken */: + case 121 /* CaretEqualsToken */: + case 116 /* LessThanLessThanEqualsToken */: + case 117 /* GreaterThanGreaterThanEqualsToken */: + case 118 /* GreaterThanGreaterThanGreaterThanEqualsToken */: + case 112 /* PlusEqualsToken */: + case 113 /* MinusEqualsToken */: + case 114 /* AsteriskEqualsToken */: + case 123 /* SlashEqualsToken */: + case 115 /* PercentEqualsToken */: + case 111 /* EqualsToken */: + return true; + default: + return false; + } + } + SyntaxFacts.isAssignmentOperatorToken = isAssignmentOperatorToken; + function isType(kind) { + switch (kind) { + case 128 /* ArrayType */: + case 62 /* AnyKeyword */: + case 71 /* NumberKeyword */: + case 65 /* BooleanKeyword */: + case 73 /* StringKeyword */: + case 43 /* VoidKeyword */: + case 127 /* FunctionType */: + case 126 /* ObjectType */: + case 129 /* ConstructorType */: + case 131 /* TypeQuery */: + case 130 /* GenericType */: + case 125 /* QualifiedName */: + case 9 /* IdentifierName */: + return true; + } + return false; + } + SyntaxFacts.isType = isType; + })(SyntaxFacts = TypeScript.SyntaxFacts || (TypeScript.SyntaxFacts = {})); +})(TypeScript || (TypeScript = {})); +var TypeScript; +(function (TypeScript) { + var ScannerUtilities; + (function (ScannerUtilities) { + ScannerUtilities.fixedWidthArray = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 4, 5, 8, 8, 7, 6, 2, 4, 5, 7, 3, 8, 2, 2, 10, 3, 4, 6, 6, 4, 5, 4, 3, 6, 3, 4, 5, 4, 5, 5, 4, 6, 7, 6, 5, 10, 9, 3, 7, 7, 9, 6, 6, 5, 3, 5, 5, 7, 11, 7, 3, 6, 7, 6, 3, 6, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 2, 2, 2, 2, 2, 3, 3, 1, 1, 1, 1, 2, 2, 2, 2, 3, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 2, 2, 2, 2, 3, 3, 4, 2, 2, 2, 1, 2]; + function identifierKind(str, start, length) { + switch (length) { + case 2: + switch (str.charCodeAt(start)) { + case 100 /* d */: return (str.charCodeAt(start + 1) === 111 /* o */) ? 24 /* DoKeyword */ : 9 /* IdentifierName */; + case 105 /* i */: + switch (str.charCodeAt(start + 1)) { + case 102 /* f */: return 30 /* IfKeyword */; + case 110 /* n */: return 31 /* InKeyword */; + default: return 9 /* IdentifierName */; + } + default: return 9 /* IdentifierName */; + } + case 3: + switch (str.charCodeAt(start)) { + case 97 /* a */: return (str.charCodeAt(start + 1) === 110 /* n */ && str.charCodeAt(start + 2) === 121 /* y */) ? 62 /* AnyKeyword */ : 9 /* IdentifierName */; + case 102 /* f */: return (str.charCodeAt(start + 1) === 111 /* o */ && str.charCodeAt(start + 2) === 114 /* r */) ? 28 /* ForKeyword */ : 9 /* IdentifierName */; + case 103 /* g */: return (str.charCodeAt(start + 1) === 101 /* e */ && str.charCodeAt(start + 2) === 116 /* t */) ? 68 /* GetKeyword */ : 9 /* IdentifierName */; + case 108 /* l */: return (str.charCodeAt(start + 1) === 101 /* e */ && str.charCodeAt(start + 2) === 116 /* t */) ? 55 /* LetKeyword */ : 9 /* IdentifierName */; + case 110 /* n */: return (str.charCodeAt(start + 1) === 101 /* e */ && str.charCodeAt(start + 2) === 119 /* w */) ? 33 /* NewKeyword */ : 9 /* IdentifierName */; + case 115 /* s */: return (str.charCodeAt(start + 1) === 101 /* e */ && str.charCodeAt(start + 2) === 116 /* t */) ? 72 /* SetKeyword */ : 9 /* IdentifierName */; + case 116 /* t */: return (str.charCodeAt(start + 1) === 114 /* r */ && str.charCodeAt(start + 2) === 121 /* y */) ? 40 /* TryKeyword */ : 9 /* IdentifierName */; + case 118 /* v */: return (str.charCodeAt(start + 1) === 97 /* a */ && str.charCodeAt(start + 2) === 114 /* r */) ? 42 /* VarKeyword */ : 9 /* IdentifierName */; + default: return 9 /* IdentifierName */; + } + case 4: + switch (str.charCodeAt(start)) { + case 99 /* c */: return (str.charCodeAt(start + 1) === 97 /* a */ && str.charCodeAt(start + 2) === 115 /* s */ && str.charCodeAt(start + 3) === 101 /* e */) ? 18 /* CaseKeyword */ : 9 /* IdentifierName */; + case 101 /* e */: + switch (str.charCodeAt(start + 1)) { + case 108 /* l */: return (str.charCodeAt(start + 2) === 115 /* s */ && str.charCodeAt(start + 3) === 101 /* e */) ? 25 /* ElseKeyword */ : 9 /* IdentifierName */; + case 110 /* n */: return (str.charCodeAt(start + 2) === 117 /* u */ && str.charCodeAt(start + 3) === 109 /* m */) ? 48 /* EnumKeyword */ : 9 /* IdentifierName */; + default: return 9 /* IdentifierName */; + } + case 110 /* n */: return (str.charCodeAt(start + 1) === 117 /* u */ && str.charCodeAt(start + 2) === 108 /* l */ && str.charCodeAt(start + 3) === 108 /* l */) ? 34 /* NullKeyword */ : 9 /* IdentifierName */; + case 116 /* t */: + switch (str.charCodeAt(start + 1)) { + case 104 /* h */: return (str.charCodeAt(start + 2) === 105 /* i */ && str.charCodeAt(start + 3) === 115 /* s */) ? 37 /* ThisKeyword */ : 9 /* IdentifierName */; + case 114 /* r */: return (str.charCodeAt(start + 2) === 117 /* u */ && str.charCodeAt(start + 3) === 101 /* e */) ? 39 /* TrueKeyword */ : 9 /* IdentifierName */; + default: return 9 /* IdentifierName */; + } + case 118 /* v */: return (str.charCodeAt(start + 1) === 111 /* o */ && str.charCodeAt(start + 2) === 105 /* i */ && str.charCodeAt(start + 3) === 100 /* d */) ? 43 /* VoidKeyword */ : 9 /* IdentifierName */; + case 119 /* w */: return (str.charCodeAt(start + 1) === 105 /* i */ && str.charCodeAt(start + 2) === 116 /* t */ && str.charCodeAt(start + 3) === 104 /* h */) ? 45 /* WithKeyword */ : 9 /* IdentifierName */; + default: return 9 /* IdentifierName */; + } + case 5: + switch (str.charCodeAt(start)) { + case 97 /* a */: + switch (str.charCodeAt(start + 1)) { + case 115 /* s */: return (str.charCodeAt(start + 2) === 121 /* y */ && str.charCodeAt(start + 3) === 110 /* n */ && str.charCodeAt(start + 4) === 99 /* c */) ? 63 /* AsyncKeyword */ : 9 /* IdentifierName */; + case 119 /* w */: return (str.charCodeAt(start + 2) === 97 /* a */ && str.charCodeAt(start + 3) === 105 /* i */ && str.charCodeAt(start + 4) === 116 /* t */) ? 64 /* AwaitKeyword */ : 9 /* IdentifierName */; + default: return 9 /* IdentifierName */; + } + case 98 /* b */: return (str.charCodeAt(start + 1) === 114 /* r */ && str.charCodeAt(start + 2) === 101 /* e */ && str.charCodeAt(start + 3) === 97 /* a */ && str.charCodeAt(start + 4) === 107 /* k */) ? 17 /* BreakKeyword */ : 9 /* IdentifierName */; + case 99 /* c */: + switch (str.charCodeAt(start + 1)) { + case 97 /* a */: return (str.charCodeAt(start + 2) === 116 /* t */ && str.charCodeAt(start + 3) === 99 /* c */ && str.charCodeAt(start + 4) === 104 /* h */) ? 19 /* CatchKeyword */ : 9 /* IdentifierName */; + case 108 /* l */: return (str.charCodeAt(start + 2) === 97 /* a */ && str.charCodeAt(start + 3) === 115 /* s */ && str.charCodeAt(start + 4) === 115 /* s */) ? 46 /* ClassKeyword */ : 9 /* IdentifierName */; + case 111 /* o */: return (str.charCodeAt(start + 2) === 110 /* n */ && str.charCodeAt(start + 3) === 115 /* s */ && str.charCodeAt(start + 4) === 116 /* t */) ? 47 /* ConstKeyword */ : 9 /* IdentifierName */; + default: return 9 /* IdentifierName */; + } + case 102 /* f */: return (str.charCodeAt(start + 1) === 97 /* a */ && str.charCodeAt(start + 2) === 108 /* l */ && str.charCodeAt(start + 3) === 115 /* s */ && str.charCodeAt(start + 4) === 101 /* e */) ? 26 /* FalseKeyword */ : 9 /* IdentifierName */; + case 115 /* s */: return (str.charCodeAt(start + 1) === 117 /* u */ && str.charCodeAt(start + 2) === 112 /* p */ && str.charCodeAt(start + 3) === 101 /* e */ && str.charCodeAt(start + 4) === 114 /* r */) ? 52 /* SuperKeyword */ : 9 /* IdentifierName */; + case 116 /* t */: return (str.charCodeAt(start + 1) === 104 /* h */ && str.charCodeAt(start + 2) === 114 /* r */ && str.charCodeAt(start + 3) === 111 /* o */ && str.charCodeAt(start + 4) === 119 /* w */) ? 38 /* ThrowKeyword */ : 9 /* IdentifierName */; + case 119 /* w */: return (str.charCodeAt(start + 1) === 104 /* h */ && str.charCodeAt(start + 2) === 105 /* i */ && str.charCodeAt(start + 3) === 108 /* l */ && str.charCodeAt(start + 4) === 101 /* e */) ? 44 /* WhileKeyword */ : 9 /* IdentifierName */; + case 121 /* y */: return (str.charCodeAt(start + 1) === 105 /* i */ && str.charCodeAt(start + 2) === 101 /* e */ && str.charCodeAt(start + 3) === 108 /* l */ && str.charCodeAt(start + 4) === 100 /* d */) ? 61 /* YieldKeyword */ : 9 /* IdentifierName */; + default: return 9 /* IdentifierName */; + } + case 6: + switch (str.charCodeAt(start)) { + case 100 /* d */: return (str.charCodeAt(start + 1) === 101 /* e */ && str.charCodeAt(start + 2) === 108 /* l */ && str.charCodeAt(start + 3) === 101 /* e */ && str.charCodeAt(start + 4) === 116 /* t */ && str.charCodeAt(start + 5) === 101 /* e */) ? 23 /* DeleteKeyword */ : 9 /* IdentifierName */; + case 101 /* e */: return (str.charCodeAt(start + 1) === 120 /* x */ && str.charCodeAt(start + 2) === 112 /* p */ && str.charCodeAt(start + 3) === 111 /* o */ && str.charCodeAt(start + 4) === 114 /* r */ && str.charCodeAt(start + 5) === 116 /* t */) ? 49 /* ExportKeyword */ : 9 /* IdentifierName */; + case 105 /* i */: return (str.charCodeAt(start + 1) === 109 /* m */ && str.charCodeAt(start + 2) === 112 /* p */ && str.charCodeAt(start + 3) === 111 /* o */ && str.charCodeAt(start + 4) === 114 /* r */ && str.charCodeAt(start + 5) === 116 /* t */) ? 51 /* ImportKeyword */ : 9 /* IdentifierName */; + case 109 /* m */: return (str.charCodeAt(start + 1) === 111 /* o */ && str.charCodeAt(start + 2) === 100 /* d */ && str.charCodeAt(start + 3) === 117 /* u */ && str.charCodeAt(start + 4) === 108 /* l */ && str.charCodeAt(start + 5) === 101 /* e */) ? 69 /* ModuleKeyword */ : 9 /* IdentifierName */; + case 110 /* n */: return (str.charCodeAt(start + 1) === 117 /* u */ && str.charCodeAt(start + 2) === 109 /* m */ && str.charCodeAt(start + 3) === 98 /* b */ && str.charCodeAt(start + 4) === 101 /* e */ && str.charCodeAt(start + 5) === 114 /* r */) ? 71 /* NumberKeyword */ : 9 /* IdentifierName */; + case 112 /* p */: return (str.charCodeAt(start + 1) === 117 /* u */ && str.charCodeAt(start + 2) === 98 /* b */ && str.charCodeAt(start + 3) === 108 /* l */ && str.charCodeAt(start + 4) === 105 /* i */ && str.charCodeAt(start + 5) === 99 /* c */) ? 59 /* PublicKeyword */ : 9 /* IdentifierName */; + case 114 /* r */: return (str.charCodeAt(start + 1) === 101 /* e */ && str.charCodeAt(start + 2) === 116 /* t */ && str.charCodeAt(start + 3) === 117 /* u */ && str.charCodeAt(start + 4) === 114 /* r */ && str.charCodeAt(start + 5) === 110 /* n */) ? 35 /* ReturnKeyword */ : 9 /* IdentifierName */; + case 115 /* s */: + switch (str.charCodeAt(start + 1)) { + case 116 /* t */: + switch (str.charCodeAt(start + 2)) { + case 97 /* a */: return (str.charCodeAt(start + 3) === 116 /* t */ && str.charCodeAt(start + 4) === 105 /* i */ && str.charCodeAt(start + 5) === 99 /* c */) ? 60 /* StaticKeyword */ : 9 /* IdentifierName */; + case 114 /* r */: return (str.charCodeAt(start + 3) === 105 /* i */ && str.charCodeAt(start + 4) === 110 /* n */ && str.charCodeAt(start + 5) === 103 /* g */) ? 73 /* StringKeyword */ : 9 /* IdentifierName */; + default: return 9 /* IdentifierName */; + } + case 119 /* w */: return (str.charCodeAt(start + 2) === 105 /* i */ && str.charCodeAt(start + 3) === 116 /* t */ && str.charCodeAt(start + 4) === 99 /* c */ && str.charCodeAt(start + 5) === 104 /* h */) ? 36 /* SwitchKeyword */ : 9 /* IdentifierName */; + default: return 9 /* IdentifierName */; + } + case 116 /* t */: return (str.charCodeAt(start + 1) === 121 /* y */ && str.charCodeAt(start + 2) === 112 /* p */ && str.charCodeAt(start + 3) === 101 /* e */ && str.charCodeAt(start + 4) === 111 /* o */ && str.charCodeAt(start + 5) === 102 /* f */) ? 41 /* TypeOfKeyword */ : 9 /* IdentifierName */; + default: return 9 /* IdentifierName */; + } + case 7: + switch (str.charCodeAt(start)) { + case 98 /* b */: return (str.charCodeAt(start + 1) === 111 /* o */ && str.charCodeAt(start + 2) === 111 /* o */ && str.charCodeAt(start + 3) === 108 /* l */ && str.charCodeAt(start + 4) === 101 /* e */ && str.charCodeAt(start + 5) === 97 /* a */ && str.charCodeAt(start + 6) === 110 /* n */) ? 65 /* BooleanKeyword */ : 9 /* IdentifierName */; + case 100 /* d */: + switch (str.charCodeAt(start + 1)) { + case 101 /* e */: + switch (str.charCodeAt(start + 2)) { + case 99 /* c */: return (str.charCodeAt(start + 3) === 108 /* l */ && str.charCodeAt(start + 4) === 97 /* a */ && str.charCodeAt(start + 5) === 114 /* r */ && str.charCodeAt(start + 6) === 101 /* e */) ? 67 /* DeclareKeyword */ : 9 /* IdentifierName */; + case 102 /* f */: return (str.charCodeAt(start + 3) === 97 /* a */ && str.charCodeAt(start + 4) === 117 /* u */ && str.charCodeAt(start + 5) === 108 /* l */ && str.charCodeAt(start + 6) === 116 /* t */) ? 22 /* DefaultKeyword */ : 9 /* IdentifierName */; + default: return 9 /* IdentifierName */; + } + default: return 9 /* IdentifierName */; + } + case 101 /* e */: return (str.charCodeAt(start + 1) === 120 /* x */ && str.charCodeAt(start + 2) === 116 /* t */ && str.charCodeAt(start + 3) === 101 /* e */ && str.charCodeAt(start + 4) === 110 /* n */ && str.charCodeAt(start + 5) === 100 /* d */ && str.charCodeAt(start + 6) === 115 /* s */) ? 50 /* ExtendsKeyword */ : 9 /* IdentifierName */; + case 102 /* f */: return (str.charCodeAt(start + 1) === 105 /* i */ && str.charCodeAt(start + 2) === 110 /* n */ && str.charCodeAt(start + 3) === 97 /* a */ && str.charCodeAt(start + 4) === 108 /* l */ && str.charCodeAt(start + 5) === 108 /* l */ && str.charCodeAt(start + 6) === 121 /* y */) ? 27 /* FinallyKeyword */ : 9 /* IdentifierName */; + case 112 /* p */: + switch (str.charCodeAt(start + 1)) { + case 97 /* a */: return (str.charCodeAt(start + 2) === 99 /* c */ && str.charCodeAt(start + 3) === 107 /* k */ && str.charCodeAt(start + 4) === 97 /* a */ && str.charCodeAt(start + 5) === 103 /* g */ && str.charCodeAt(start + 6) === 101 /* e */) ? 56 /* PackageKeyword */ : 9 /* IdentifierName */; + case 114 /* r */: return (str.charCodeAt(start + 2) === 105 /* i */ && str.charCodeAt(start + 3) === 118 /* v */ && str.charCodeAt(start + 4) === 97 /* a */ && str.charCodeAt(start + 5) === 116 /* t */ && str.charCodeAt(start + 6) === 101 /* e */) ? 57 /* PrivateKeyword */ : 9 /* IdentifierName */; + default: return 9 /* IdentifierName */; + } + case 114 /* r */: return (str.charCodeAt(start + 1) === 101 /* e */ && str.charCodeAt(start + 2) === 113 /* q */ && str.charCodeAt(start + 3) === 117 /* u */ && str.charCodeAt(start + 4) === 105 /* i */ && str.charCodeAt(start + 5) === 114 /* r */ && str.charCodeAt(start + 6) === 101 /* e */) ? 70 /* RequireKeyword */ : 9 /* IdentifierName */; + default: return 9 /* IdentifierName */; + } + case 8: + switch (str.charCodeAt(start)) { + case 99 /* c */: return (str.charCodeAt(start + 1) === 111 /* o */ && str.charCodeAt(start + 2) === 110 /* n */ && str.charCodeAt(start + 3) === 116 /* t */ && str.charCodeAt(start + 4) === 105 /* i */ && str.charCodeAt(start + 5) === 110 /* n */ && str.charCodeAt(start + 6) === 117 /* u */ && str.charCodeAt(start + 7) === 101 /* e */) ? 20 /* ContinueKeyword */ : 9 /* IdentifierName */; + case 100 /* d */: return (str.charCodeAt(start + 1) === 101 /* e */ && str.charCodeAt(start + 2) === 98 /* b */ && str.charCodeAt(start + 3) === 117 /* u */ && str.charCodeAt(start + 4) === 103 /* g */ && str.charCodeAt(start + 5) === 103 /* g */ && str.charCodeAt(start + 6) === 101 /* e */ && str.charCodeAt(start + 7) === 114 /* r */) ? 21 /* DebuggerKeyword */ : 9 /* IdentifierName */; + case 102 /* f */: return (str.charCodeAt(start + 1) === 117 /* u */ && str.charCodeAt(start + 2) === 110 /* n */ && str.charCodeAt(start + 3) === 99 /* c */ && str.charCodeAt(start + 4) === 116 /* t */ && str.charCodeAt(start + 5) === 105 /* i */ && str.charCodeAt(start + 6) === 111 /* o */ && str.charCodeAt(start + 7) === 110 /* n */) ? 29 /* FunctionKeyword */ : 9 /* IdentifierName */; + default: return 9 /* IdentifierName */; + } + case 9: + switch (str.charCodeAt(start)) { + case 105 /* i */: return (str.charCodeAt(start + 1) === 110 /* n */ && str.charCodeAt(start + 2) === 116 /* t */ && str.charCodeAt(start + 3) === 101 /* e */ && str.charCodeAt(start + 4) === 114 /* r */ && str.charCodeAt(start + 5) === 102 /* f */ && str.charCodeAt(start + 6) === 97 /* a */ && str.charCodeAt(start + 7) === 99 /* c */ && str.charCodeAt(start + 8) === 101 /* e */) ? 54 /* InterfaceKeyword */ : 9 /* IdentifierName */; + case 112 /* p */: return (str.charCodeAt(start + 1) === 114 /* r */ && str.charCodeAt(start + 2) === 111 /* o */ && str.charCodeAt(start + 3) === 116 /* t */ && str.charCodeAt(start + 4) === 101 /* e */ && str.charCodeAt(start + 5) === 99 /* c */ && str.charCodeAt(start + 6) === 116 /* t */ && str.charCodeAt(start + 7) === 101 /* e */ && str.charCodeAt(start + 8) === 100 /* d */) ? 58 /* ProtectedKeyword */ : 9 /* IdentifierName */; + default: return 9 /* IdentifierName */; + } + case 10: + switch (str.charCodeAt(start)) { + case 105 /* i */: + switch (str.charCodeAt(start + 1)) { + case 109 /* m */: return (str.charCodeAt(start + 2) === 112 /* p */ && str.charCodeAt(start + 3) === 108 /* l */ && str.charCodeAt(start + 4) === 101 /* e */ && str.charCodeAt(start + 5) === 109 /* m */ && str.charCodeAt(start + 6) === 101 /* e */ && str.charCodeAt(start + 7) === 110 /* n */ && str.charCodeAt(start + 8) === 116 /* t */ && str.charCodeAt(start + 9) === 115 /* s */) ? 53 /* ImplementsKeyword */ : 9 /* IdentifierName */; + case 110 /* n */: return (str.charCodeAt(start + 2) === 115 /* s */ && str.charCodeAt(start + 3) === 116 /* t */ && str.charCodeAt(start + 4) === 97 /* a */ && str.charCodeAt(start + 5) === 110 /* n */ && str.charCodeAt(start + 6) === 99 /* c */ && str.charCodeAt(start + 7) === 101 /* e */ && str.charCodeAt(start + 8) === 111 /* o */ && str.charCodeAt(start + 9) === 102 /* f */) ? 32 /* InstanceOfKeyword */ : 9 /* IdentifierName */; + default: return 9 /* IdentifierName */; + } + default: return 9 /* IdentifierName */; + } + case 11: return (str.charCodeAt(start) === 99 /* c */ && str.charCodeAt(start + 1) === 111 /* o */ && str.charCodeAt(start + 2) === 110 /* n */ && str.charCodeAt(start + 3) === 115 /* s */ && str.charCodeAt(start + 4) === 116 /* t */ && str.charCodeAt(start + 5) === 114 /* r */ && str.charCodeAt(start + 6) === 117 /* u */ && str.charCodeAt(start + 7) === 99 /* c */ && str.charCodeAt(start + 8) === 116 /* t */ && str.charCodeAt(start + 9) === 111 /* o */ && str.charCodeAt(start + 10) === 114 /* r */) ? 66 /* ConstructorKeyword */ : 9 /* IdentifierName */; + default: return 9 /* IdentifierName */; + } + } + ScannerUtilities.identifierKind = identifierKind; + })(ScannerUtilities = TypeScript.ScannerUtilities || (TypeScript.ScannerUtilities = {})); +})(TypeScript || (TypeScript = {})); +var TypeScript; +(function (TypeScript) { + var Scanner; + (function (Scanner) { + TypeScript.Debug.assert(123 /* LastToken */ <= 127); + var ScannerConstants; + (function (ScannerConstants) { + ScannerConstants[ScannerConstants["LargeTokenFullWidthShift"] = 3] = "LargeTokenFullWidthShift"; + ScannerConstants[ScannerConstants["WhitespaceTrivia"] = 0x01] = "WhitespaceTrivia"; + ScannerConstants[ScannerConstants["NewlineTrivia"] = 0x02] = "NewlineTrivia"; + ScannerConstants[ScannerConstants["CommentTrivia"] = 0x04] = "CommentTrivia"; + ScannerConstants[ScannerConstants["TriviaMask"] = 0x07] = "TriviaMask"; + ScannerConstants[ScannerConstants["KindMask"] = 0x7F] = "KindMask"; + ScannerConstants[ScannerConstants["IsVariableWidthMask"] = 0x80] = "IsVariableWidthMask"; + })(ScannerConstants || (ScannerConstants = {})); + function largeTokenPackData(fullWidth, leadingTriviaInfo) { + return (fullWidth << 3 /* LargeTokenFullWidthShift */) | leadingTriviaInfo; + } + function largeTokenUnpackFullWidth(packedFullWidthAndInfo) { + return packedFullWidthAndInfo >> 3 /* LargeTokenFullWidthShift */; + } + function largeTokenUnpackLeadingTriviaInfo(packedFullWidthAndInfo) { + return packedFullWidthAndInfo & 7 /* TriviaMask */; + } + function largeTokenUnpackHasLeadingTrivia(packed) { + return largeTokenUnpackLeadingTriviaInfo(packed) !== 0; + } + function hasComment(info) { + return (info & 4 /* CommentTrivia */) !== 0; + } + function hasNewLine(info) { + return (info & 2 /* NewlineTrivia */) !== 0; + } + function largeTokenUnpackHasLeadingNewLine(packed) { + return hasNewLine(largeTokenUnpackLeadingTriviaInfo(packed)); + } + function largeTokenUnpackHasLeadingComment(packed) { + return hasComment(largeTokenUnpackLeadingTriviaInfo(packed)); + } + var isKeywordStartCharacter = TypeScript.ArrayUtilities.createArray(127 /* maxAsciiCharacter */, 0); + var isIdentifierStartCharacter = TypeScript.ArrayUtilities.createArray(127 /* maxAsciiCharacter */, false); + var isIdentifierPartCharacter = TypeScript.ArrayUtilities.createArray(127 /* maxAsciiCharacter */, false); + for (var character = 0; character < 127 /* maxAsciiCharacter */; character++) { + if ((character >= 97 /* a */ && character <= 122 /* z */) || (character >= 65 /* A */ && character <= 90 /* Z */) || character === 95 /* _ */ || character === 36 /* $ */) { + isIdentifierStartCharacter[character] = true; + isIdentifierPartCharacter[character] = true; + } + else if (character >= 48 /* _0 */ && character <= 57 /* _9 */) { + isIdentifierPartCharacter[character] = true; + } + } + for (var keywordKind = 17 /* FirstKeyword */; keywordKind <= 73 /* LastKeyword */; keywordKind++) { + var keyword = TypeScript.SyntaxFacts.getText(keywordKind); + isKeywordStartCharacter[keyword.charCodeAt(0)] = 1; + } + function isContextualToken(token) { + switch (token.kind) { + case 10 /* RegularExpressionLiteral */: + case 100 /* GreaterThanGreaterThanToken */: + case 101 /* GreaterThanGreaterThanGreaterThanToken */: + case 87 /* GreaterThanEqualsToken */: + case 117 /* GreaterThanGreaterThanEqualsToken */: + case 118 /* GreaterThanGreaterThanGreaterThanEqualsToken */: + return true; + case 15 /* TemplateMiddleToken */: + case 16 /* TemplateEndToken */: + return true; + default: + return token.isKeywordConvertedToIdentifier(); + } + } + Scanner.isContextualToken = isContextualToken; + var lastTokenInfo = { leadingTriviaWidth: -1 }; + var lastTokenInfoTokenID = -1; + var triviaScanner = createScannerInternal(2 /* Latest */, TypeScript.SimpleText.fromString(""), function () { + }); + function fillSizeInfo(token, text) { + if (lastTokenInfoTokenID !== TypeScript.syntaxID(token)) { + triviaScanner.fillTokenInfo(token, text, lastTokenInfo); + lastTokenInfoTokenID = TypeScript.syntaxID(token); + } + } + function fullText(token, text) { + return text.substr(token.fullStart(), token.fullWidth()); + } + function leadingTrivia(token, text) { + if (!token.hasLeadingTrivia()) { + return TypeScript.Syntax.emptyTriviaList; + } + return triviaScanner.scanTrivia(token, text); + } + function leadingTriviaWidth(token, text) { + if (!token.hasLeadingTrivia()) { + return 0; + } + fillSizeInfo(token, text); + return lastTokenInfo.leadingTriviaWidth; + } + function tokenIsIncrementallyUnusable(token) { + return false; + } + var FixedWidthTokenWithNoTrivia = (function () { + function FixedWidthTokenWithNoTrivia(_fullStart, kind) { + this._fullStart = _fullStart; + this.kind = kind; + TypeScript.Debug.assert(!isNaN(_fullStart)); + } + FixedWidthTokenWithNoTrivia.prototype.setFullStart = function (fullStart) { + this._fullStart = fullStart; + }; + FixedWidthTokenWithNoTrivia.prototype.childAt = function (index) { + throw TypeScript.Errors.invalidOperation(); + }; + FixedWidthTokenWithNoTrivia.prototype.isIncrementallyUnusable = function () { + return false; + }; + FixedWidthTokenWithNoTrivia.prototype.isKeywordConvertedToIdentifier = function () { + return false; + }; + FixedWidthTokenWithNoTrivia.prototype.fullText = function () { + return TypeScript.SyntaxFacts.getText(this.kind); + }; + FixedWidthTokenWithNoTrivia.prototype.text = function () { + return this.fullText(); + }; + FixedWidthTokenWithNoTrivia.prototype.leadingTrivia = function () { + return TypeScript.Syntax.emptyTriviaList; + }; + FixedWidthTokenWithNoTrivia.prototype.leadingTriviaWidth = function () { + return 0; + }; + FixedWidthTokenWithNoTrivia.prototype.fullWidth = function () { + return fixedWidthTokenLength(this.kind); + }; + FixedWidthTokenWithNoTrivia.prototype.fullStart = function () { + return this._fullStart; + }; + FixedWidthTokenWithNoTrivia.prototype.hasLeadingTrivia = function () { + return false; + }; + FixedWidthTokenWithNoTrivia.prototype.hasLeadingNewLine = function () { + return false; + }; + FixedWidthTokenWithNoTrivia.prototype.hasLeadingSkippedToken = function () { + return false; + }; + FixedWidthTokenWithNoTrivia.prototype.hasLeadingComment = function () { + return false; + }; + FixedWidthTokenWithNoTrivia.prototype.clone = function () { + return new FixedWidthTokenWithNoTrivia(this._fullStart, this.kind); + }; + return FixedWidthTokenWithNoTrivia; + })(); + FixedWidthTokenWithNoTrivia.prototype.childCount = 0; + var LargeScannerToken = (function () { + function LargeScannerToken(_fullStart, kind, _packedFullWidthAndInfo, cachedText) { + this._fullStart = _fullStart; + this.kind = kind; + this._packedFullWidthAndInfo = _packedFullWidthAndInfo; + TypeScript.Debug.assert(!isNaN(_fullStart)); + if (cachedText !== undefined) { + this.cachedText = cachedText; + } + } + LargeScannerToken.prototype.setFullStart = function (fullStart) { + this._fullStart = fullStart; + }; + LargeScannerToken.prototype.childAt = function (index) { + throw TypeScript.Errors.invalidOperation(); + }; + LargeScannerToken.prototype.syntaxTreeText = function (text) { + var result = text || TypeScript.syntaxTree(this).text; + TypeScript.Debug.assert(result); + return result; + }; + LargeScannerToken.prototype.isIncrementallyUnusable = function () { + return tokenIsIncrementallyUnusable(this); + }; + LargeScannerToken.prototype.isKeywordConvertedToIdentifier = function () { + return false; + }; + LargeScannerToken.prototype.fullText = function (text) { + return fullText(this, this.syntaxTreeText(text)); + }; + LargeScannerToken.prototype.text = function () { + var cachedText = this.cachedText; + return cachedText !== undefined ? cachedText : TypeScript.SyntaxFacts.getText(this.kind); + }; + LargeScannerToken.prototype.leadingTrivia = function (text) { + return leadingTrivia(this, this.syntaxTreeText(text)); + }; + LargeScannerToken.prototype.leadingTriviaWidth = function (text) { + return leadingTriviaWidth(this, this.syntaxTreeText(text)); + }; + LargeScannerToken.prototype.fullWidth = function () { + return largeTokenUnpackFullWidth(this._packedFullWidthAndInfo); + }; + LargeScannerToken.prototype.fullStart = function () { + return this._fullStart; + }; + LargeScannerToken.prototype.hasLeadingTrivia = function () { + return largeTokenUnpackHasLeadingTrivia(this._packedFullWidthAndInfo); + }; + LargeScannerToken.prototype.hasLeadingNewLine = function () { + return largeTokenUnpackHasLeadingNewLine(this._packedFullWidthAndInfo); + }; + LargeScannerToken.prototype.hasLeadingComment = function () { + return largeTokenUnpackHasLeadingComment(this._packedFullWidthAndInfo); + }; + LargeScannerToken.prototype.hasLeadingSkippedToken = function () { + return false; + }; + LargeScannerToken.prototype.clone = function () { + return new LargeScannerToken(this._fullStart, this.kind, this._packedFullWidthAndInfo, this.cachedText); + }; + return LargeScannerToken; + })(); + LargeScannerToken.prototype.childCount = 0; + function createScanner(languageVersion, text, reportDiagnostic) { + var scanner = createScannerInternal(languageVersion, text, reportDiagnostic); + return { + setIndex: scanner.setIndex, + scan: scanner.scan + }; + } + Scanner.createScanner = createScanner; + function createScannerInternal(languageVersion, text, reportDiagnostic) { + var str; + var index; + var start; + var end; + function setIndex(_index) { + index = _index; + } + function reset(_text, _start, _end) { + var textLength = _text.length(); + TypeScript.Debug.assert(_start <= textLength, "Token's start was not within the bounds of text."); + TypeScript.Debug.assert(_end <= textLength, "Token's end was not within the bounds of text:"); + if (!str || text !== _text) { + text = _text; + str = _text.substr(0, textLength); + } + start = _start; + end = _end; + index = _start; + } + function scan(allowContextualToken) { + var fullStart = index; + var leadingTriviaInfo = scanTriviaInfo(); + var start = index; + var kindAndIsVariableWidth = scanSyntaxKind(allowContextualToken); + var fullEnd = index; + var fullWidth = fullEnd - fullStart; + var kind = kindAndIsVariableWidth & 127 /* KindMask */; + var isFixedWidth = kind >= 17 /* FirstFixedWidth */ && kind <= 123 /* LastFixedWidth */ && ((kindAndIsVariableWidth & 128 /* IsVariableWidthMask */) === 0); + if (isFixedWidth && leadingTriviaInfo === 0) { + return new FixedWidthTokenWithNoTrivia(fullStart, kind); + } + else { + var packedFullWidthAndInfo = largeTokenPackData(fullWidth, leadingTriviaInfo); + var cachedText = isFixedWidth ? undefined : text.substr(start, fullEnd - start); + return new LargeScannerToken(fullStart, kind, packedFullWidthAndInfo, cachedText); + } + } + function scanTrivia(parent, text) { + var tokenFullStart = parent.fullStart(); + var tokenStart = tokenFullStart + leadingTriviaWidth(parent, text); + reset(text, tokenFullStart, tokenStart); + var trivia = []; + while (true) { + if (index < end) { + var ch = str.charCodeAt(index); + switch (ch) { + case 32 /* space */: + case 160 /* nonBreakingSpace */: + case 8192 /* enQuad */: + case 8193 /* emQuad */: + case 8194 /* enSpace */: + case 8195 /* emSpace */: + case 8196 /* threePerEmSpace */: + case 8197 /* fourPerEmSpace */: + case 8198 /* sixPerEmSpace */: + case 8199 /* figureSpace */: + case 8200 /* punctuationSpace */: + case 8201 /* thinSpace */: + case 8202 /* hairSpace */: + case 8203 /* zeroWidthSpace */: + case 8239 /* narrowNoBreakSpace */: + case 12288 /* ideographicSpace */: + case 9 /* tab */: + case 11 /* verticalTab */: + case 12 /* formFeed */: + case 65279 /* byteOrderMark */: + trivia.push(scanWhitespaceTrivia()); + continue; + case 47 /* slash */: + var ch2 = str.charCodeAt(index + 1); + if (ch2 === 47 /* slash */) { + trivia.push(scanSingleLineCommentTrivia()); + continue; + } + if (ch2 === 42 /* asterisk */) { + trivia.push(scanMultiLineCommentTrivia()); + continue; + } + throw TypeScript.Errors.invalidOperation(); + case 13 /* carriageReturn */: + case 10 /* lineFeed */: + case 8233 /* paragraphSeparator */: + case 8232 /* lineSeparator */: + trivia.push(scanLineTerminatorSequenceTrivia(ch)); + continue; + default: + throw TypeScript.Errors.invalidOperation(); + } + } + var triviaList = TypeScript.Syntax.triviaList(trivia); + triviaList.parent = parent; + return triviaList; + } + } + function scanTriviaInfo() { + var result = 0; + var _end = end; + while (index < _end) { + var ch = str.charCodeAt(index); + switch (ch) { + case 9 /* tab */: + case 32 /* space */: + case 11 /* verticalTab */: + case 12 /* formFeed */: + index++; + result |= 1 /* WhitespaceTrivia */; + continue; + case 13 /* carriageReturn */: + if ((index + 1) < end && str.charCodeAt(index + 1) === 10 /* lineFeed */) { + index++; + } + case 10 /* lineFeed */: + case 8233 /* paragraphSeparator */: + case 8232 /* lineSeparator */: + index++; + result |= 2 /* NewlineTrivia */; + continue; + case 47 /* slash */: + if ((index + 1) < _end) { + var ch2 = str.charCodeAt(index + 1); + if (ch2 === 47 /* slash */) { + result |= 4 /* CommentTrivia */; + skipSingleLineCommentTrivia(); + continue; + } + if (ch2 === 42 /* asterisk */) { + result |= 4 /* CommentTrivia */; + skipMultiLineCommentTrivia(); + continue; + } + } + return result; + default: + if (ch > 127 /* maxAsciiCharacter */ && slowScanWhitespaceTriviaInfo(ch)) { + result |= 1 /* WhitespaceTrivia */; + continue; + } + return result; + } + } + return result; + } + function slowScanWhitespaceTriviaInfo(ch) { + switch (ch) { + case 160 /* nonBreakingSpace */: + case 8192 /* enQuad */: + case 8193 /* emQuad */: + case 8194 /* enSpace */: + case 8195 /* emSpace */: + case 8196 /* threePerEmSpace */: + case 8197 /* fourPerEmSpace */: + case 8198 /* sixPerEmSpace */: + case 8199 /* figureSpace */: + case 8200 /* punctuationSpace */: + case 8201 /* thinSpace */: + case 8202 /* hairSpace */: + case 8203 /* zeroWidthSpace */: + case 8239 /* narrowNoBreakSpace */: + case 12288 /* ideographicSpace */: + case 65279 /* byteOrderMark */: + index++; + return true; + default: + return false; + } + } + function isNewLineCharacter(ch) { + switch (ch) { + case 13 /* carriageReturn */: + case 10 /* lineFeed */: + case 8233 /* paragraphSeparator */: + case 8232 /* lineSeparator */: + return true; + default: + return false; + } + } + function scanWhitespaceTrivia() { + var absoluteStartIndex = index; + while (true) { + var ch = str.charCodeAt(index); + switch (ch) { + case 32 /* space */: + case 160 /* nonBreakingSpace */: + case 8192 /* enQuad */: + case 8193 /* emQuad */: + case 8194 /* enSpace */: + case 8195 /* emSpace */: + case 8196 /* threePerEmSpace */: + case 8197 /* fourPerEmSpace */: + case 8198 /* sixPerEmSpace */: + case 8199 /* figureSpace */: + case 8200 /* punctuationSpace */: + case 8201 /* thinSpace */: + case 8202 /* hairSpace */: + case 8203 /* zeroWidthSpace */: + case 8239 /* narrowNoBreakSpace */: + case 12288 /* ideographicSpace */: + case 9 /* tab */: + case 11 /* verticalTab */: + case 12 /* formFeed */: + case 65279 /* byteOrderMark */: + index++; + continue; + } + break; + } + return createTrivia(2 /* WhitespaceTrivia */, absoluteStartIndex); + } + function createTrivia(kind, absoluteStartIndex) { + var fullWidth = index - absoluteStartIndex; + return TypeScript.Syntax.deferredTrivia(kind, text, absoluteStartIndex, fullWidth); + } + function scanSingleLineCommentTrivia() { + var absoluteStartIndex = index; + skipSingleLineCommentTrivia(); + return createTrivia(5 /* SingleLineCommentTrivia */, absoluteStartIndex); + } + function skipSingleLineCommentTrivia() { + index += 2; + while (index < end) { + if (isNewLineCharacter(str.charCodeAt(index))) { + return; + } + index++; + } + } + function scanMultiLineCommentTrivia() { + var absoluteStartIndex = index; + skipMultiLineCommentTrivia(); + return createTrivia(4 /* MultiLineCommentTrivia */, absoluteStartIndex); + } + function skipMultiLineCommentTrivia() { + var _index = index + 2; + var _end = end; + index += 2; + while (true) { + if (_index === _end) { + reportDiagnostic(end, 0, TypeScript.DiagnosticCode._0_expected, ["*/"]); + break; + } + if ((_index + 1) < _end && str.charCodeAt(_index) === 42 /* asterisk */ && str.charCodeAt(_index + 1) === 47 /* slash */) { + _index += 2; + break; + } + _index++; + } + index = _index; + } + function scanLineTerminatorSequenceTrivia(ch) { + var absoluteStartIndex = index; + skipLineTerminatorSequence(ch); + return createTrivia(3 /* NewLineTrivia */, absoluteStartIndex); + } + function skipLineTerminatorSequence(ch) { + index++; + if (ch === 13 /* carriageReturn */ && str.charCodeAt(index) === 10 /* lineFeed */) { + index++; + } + } + function scanSyntaxKind(allowContextualToken) { + if (index >= end) { + return 8 /* EndOfFileToken */; + } + var character = str.charCodeAt(index); + index++; + switch (character) { + case 33 /* exclamation */: return scanExclamationToken(); + case 34 /* doubleQuote */: return scanStringLiteral(character); + case 37 /* percent */: return scanPercentToken(); + case 38 /* ampersand */: return scanAmpersandToken(); + case 39 /* singleQuote */: return scanStringLiteral(character); + case 40 /* openParen */: return 76 /* OpenParenToken */; + case 41 /* closeParen */: return 77 /* CloseParenToken */; + case 42 /* asterisk */: return scanAsteriskToken(); + case 43 /* plus */: return scanPlusToken(); + case 44 /* comma */: return 83 /* CommaToken */; + case 45 /* minus */: return scanMinusToken(); + case 46 /* dot */: return scanDotToken(); + case 47 /* slash */: return scanSlashToken(allowContextualToken); + case 48 /* _0 */: + case 49 /* _1 */: + case 50 /* _2 */: + case 51 /* _3 */: + case 52 /* _4 */: + case 53 /* _5 */: + case 54 /* _6 */: + case 55 /* _7 */: + case 56 /* _8 */: + case 57 /* _9 */: + return scanNumericLiteral(character); + case 58 /* colon */: return 110 /* ColonToken */; + case 59 /* semicolon */: return 82 /* SemicolonToken */; + case 60 /* lessThan */: return scanLessThanToken(); + case 61 /* equals */: return scanEqualsToken(); + case 62 /* greaterThan */: return scanGreaterThanToken(allowContextualToken); + case 63 /* question */: return 109 /* QuestionToken */; + case 91 /* openBracket */: return 78 /* OpenBracketToken */; + case 93 /* closeBracket */: return 79 /* CloseBracketToken */; + case 94 /* caret */: return scanCaretToken(); + case 96 /* backtick */: return scanTemplateToken(character); + case 123 /* openBrace */: return 74 /* OpenBraceToken */; + case 124 /* bar */: return scanBarToken(); + case 125 /* closeBrace */: return scanCloseBraceToken(allowContextualToken, character); + case 126 /* tilde */: return 106 /* TildeToken */; + } + if (isIdentifierStartCharacter[character]) { + var result = tryFastScanIdentifierOrKeyword(character); + if (result !== 0 /* None */) { + return result; + } + } + index--; + if (isIdentifierStart(peekCharOrUnicodeEscape())) { + return slowScanIdentifierOrKeyword(); + } + var text = String.fromCharCode(character); + var messageText = getErrorMessageText(text); + reportDiagnostic(index, 1, TypeScript.DiagnosticCode.Unexpected_character_0, [messageText]); + index++; + return 7 /* ErrorToken */; + } + function isIdentifierStart(interpretedChar) { + if (isIdentifierStartCharacter[interpretedChar]) { + return true; + } + return interpretedChar > 127 /* maxAsciiCharacter */ && TypeScript.Unicode.isIdentifierStart(interpretedChar, languageVersion); + } + function isIdentifierPart(interpretedChar) { + if (isIdentifierPartCharacter[interpretedChar]) { + return true; + } + return interpretedChar > 127 /* maxAsciiCharacter */ && TypeScript.Unicode.isIdentifierPart(interpretedChar, languageVersion); + } + function tryFastScanIdentifierOrKeyword(firstCharacter) { + var startIndex = index; + var character = firstCharacter; + while (index < end) { + character = str.charCodeAt(index); + if (!isIdentifierPartCharacter[character]) { + break; + } + index++; + } + if (index < end && (character === 92 /* backslash */ || character > 127 /* maxAsciiCharacter */)) { + index = startIndex; + return 0 /* None */; + } + else { + if (isKeywordStartCharacter[firstCharacter]) { + return TypeScript.ScannerUtilities.identifierKind(str, startIndex - 1, index - startIndex + 1); + } + else { + return 9 /* IdentifierName */; + } + } + } + function slowScanIdentifierOrKeyword() { + var startIndex = index; + do { + scanCharOrUnicodeEscape(); + } while (isIdentifierPart(peekCharOrUnicodeEscape())); + var length = index - startIndex; + var text = str.substr(startIndex, length); + var valueText = TypeScript.massageEscapes(text); + var keywordKind = TypeScript.SyntaxFacts.getTokenKind(valueText); + if (keywordKind >= 17 /* FirstKeyword */ && keywordKind <= 73 /* LastKeyword */) { + return keywordKind | 128 /* IsVariableWidthMask */; + } + return 9 /* IdentifierName */; + } + function scanNumericLiteral(ch) { + if (isHexNumericLiteral(ch)) { + scanHexNumericLiteral(); + } + else if (isOctalNumericLiteral(ch)) { + scanOctalNumericLiteral(); + } + else { + scanDecimalNumericLiteral(); + } + return 11 /* NumericLiteral */; + } + function isOctalNumericLiteral(ch) { + return ch === 48 /* _0 */ && TypeScript.CharacterInfo.isOctalDigit(str.charCodeAt(index)); + } + function scanOctalNumericLiteral() { + var start = index - 1; + while (TypeScript.CharacterInfo.isOctalDigit(str.charCodeAt(index))) { + index++; + } + if (languageVersion >= 1 /* ES5 */) { + reportDiagnostic(start, index - start, TypeScript.DiagnosticCode.Octal_literals_are_not_available_when_targeting_ECMAScript_5_and_higher, undefined); + } + } + function scanDecimalDigits() { + while (TypeScript.CharacterInfo.isDecimalDigit(str.charCodeAt(index))) { + index++; + } + } + function scanDecimalNumericLiteral() { + scanDecimalDigits(); + if (str.charCodeAt(index) === 46 /* dot */) { + index++; + } + scanDecimalNumericLiteralAfterDot(); + } + function scanDecimalNumericLiteralAfterDot() { + scanDecimalDigits(); + var ch = str.charCodeAt(index); + if (ch === 101 /* e */ || ch === 69 /* E */) { + var nextChar1 = str.charCodeAt(index + 1); + if (TypeScript.CharacterInfo.isDecimalDigit(nextChar1)) { + index++; + scanDecimalDigits(); + } + else if (nextChar1 === 45 /* minus */ || nextChar1 === 43 /* plus */) { + var nextChar2 = str.charCodeAt(index + 2); + if (TypeScript.CharacterInfo.isDecimalDigit(nextChar2)) { + index += 2; + scanDecimalDigits(); + } + } + } + } + function scanHexNumericLiteral() { + index++; + while (TypeScript.CharacterInfo.isHexDigit(str.charCodeAt(index))) { + index++; + } + } + function isHexNumericLiteral(ch) { + if (ch === 48 /* _0 */) { + var ch = str.charCodeAt(index); + if (ch === 120 /* x */ || ch === 88 /* X */) { + return TypeScript.CharacterInfo.isHexDigit(str.charCodeAt(index + 1)); + } + } + return false; + } + function scanLessThanToken() { + var ch0 = str.charCodeAt(index); + if (ch0 === 61 /* equals */) { + index++; + return 86 /* LessThanEqualsToken */; + } + else if (ch0 === 60 /* lessThan */) { + index++; + if (str.charCodeAt(index) === 61 /* equals */) { + index++; + return 116 /* LessThanLessThanEqualsToken */; + } + else { + return 99 /* LessThanLessThanToken */; + } + } + else { + return 84 /* LessThanToken */; + } + } + function scanGreaterThanToken(allowContextualToken) { + if (allowContextualToken) { + var ch0 = str.charCodeAt(index); + if (ch0 === 62 /* greaterThan */) { + index++; + var ch1 = str.charCodeAt(index); + if (ch1 === 62 /* greaterThan */) { + index++; + var ch2 = str.charCodeAt(index); + if (ch2 === 61 /* equals */) { + index++; + return 118 /* GreaterThanGreaterThanGreaterThanEqualsToken */; + } + else { + return 101 /* GreaterThanGreaterThanGreaterThanToken */; + } + } + else if (ch1 === 61 /* equals */) { + index++; + return 117 /* GreaterThanGreaterThanEqualsToken */; + } + else { + return 100 /* GreaterThanGreaterThanToken */; + } + } + else if (ch0 === 61 /* equals */) { + index++; + return 87 /* GreaterThanEqualsToken */; + } + } + return 85 /* GreaterThanToken */; + } + function scanBarToken() { + var ch = str.charCodeAt(index); + if (ch === 61 /* equals */) { + index++; + return 120 /* BarEqualsToken */; + } + else if (ch === 124 /* bar */) { + index++; + return 108 /* BarBarToken */; + } + else { + return 103 /* BarToken */; + } + } + function scanCaretToken() { + if (str.charCodeAt(index) === 61 /* equals */) { + index++; + return 121 /* CaretEqualsToken */; + } + else { + return 104 /* CaretToken */; + } + } + function scanCloseBraceToken(allowContextualToken, startChar) { + return allowContextualToken ? scanTemplateToken(startChar) : 75 /* CloseBraceToken */; + } + function scanTemplateToken(startChar) { + var startedWithBacktick = startChar === 96 /* backtick */; + while (true) { + if (index === end) { + reportDiagnostic(end, 0, TypeScript.DiagnosticCode.Unterminated_template_literal); + break; + } + var ch = str.charCodeAt(index); + index++; + if (ch === 96 /* backtick */) { + break; + } + if (ch === 36 /* $ */ && index < end && str.charCodeAt(index) === 123 /* openBrace */) { + index++; + return startedWithBacktick ? 14 /* TemplateStartToken */ : 15 /* TemplateMiddleToken */; + } + } + return startedWithBacktick ? 13 /* NoSubstitutionTemplateToken */ : 16 /* TemplateEndToken */; + } + function scanAmpersandToken() { + var character = str.charCodeAt(index); + if (character === 61 /* equals */) { + index++; + return 119 /* AmpersandEqualsToken */; + } + else if (character === 38 /* ampersand */) { + index++; + return 107 /* AmpersandAmpersandToken */; + } + else { + return 102 /* AmpersandToken */; + } + } + function scanPercentToken() { + if (str.charCodeAt(index) === 61 /* equals */) { + index++; + return 115 /* PercentEqualsToken */; + } + else { + return 96 /* PercentToken */; + } + } + function scanMinusToken() { + var character = str.charCodeAt(index); + if (character === 61 /* equals */) { + index++; + return 113 /* MinusEqualsToken */; + } + else if (character === 45 /* minus */) { + index++; + return 98 /* MinusMinusToken */; + } + else { + return 94 /* MinusToken */; + } + } + function scanPlusToken() { + var character = str.charCodeAt(index); + if (character === 61 /* equals */) { + index++; + return 112 /* PlusEqualsToken */; + } + else if (character === 43 /* plus */) { + index++; + return 97 /* PlusPlusToken */; + } + else { + return 93 /* PlusToken */; + } + } + function scanAsteriskToken() { + if (str.charCodeAt(index) === 61 /* equals */) { + index++; + return 114 /* AsteriskEqualsToken */; + } + else { + return 95 /* AsteriskToken */; + } + } + function scanEqualsToken() { + var character = str.charCodeAt(index); + if (character === 61 /* equals */) { + index++; + if (str.charCodeAt(index) === 61 /* equals */) { + index++; + return 91 /* EqualsEqualsEqualsToken */; + } + else { + return 88 /* EqualsEqualsToken */; + } + } + else if (character === 62 /* greaterThan */) { + index++; + return 89 /* EqualsGreaterThanToken */; + } + else { + return 111 /* EqualsToken */; + } + } + function scanDotToken() { + var nextChar = str.charCodeAt(index); + if (TypeScript.CharacterInfo.isDecimalDigit(nextChar)) { + scanDecimalNumericLiteralAfterDot(); + return 11 /* NumericLiteral */; + } + if (nextChar === 46 /* dot */ && str.charCodeAt(index + 1) === 46 /* dot */) { + index += 2; + return 81 /* DotDotDotToken */; + } + else { + return 80 /* DotToken */; + } + } + function scanSlashToken(allowContextualToken) { + if (allowContextualToken) { + return scanRegularExpressionToken(); + } + if (str.charCodeAt(index) === 61 /* equals */) { + index++; + return 123 /* SlashEqualsToken */; + } + else { + return 122 /* SlashToken */; + } + } + function scanRegularExpressionToken() { + var startIndex = index; + var inEscape = false; + var inCharacterClass = false; + while (true) { + var ch = str.charCodeAt(index); + if (isNaN(ch) || isNewLineCharacter(ch)) { + reportDiagnostic(index, 0, TypeScript.DiagnosticCode.Unterminated_regular_expression_literal); + break; + } + index++; + if (inEscape) { + inEscape = false; + continue; + } + switch (ch) { + case 92 /* backslash */: + inEscape = true; + continue; + case 91 /* openBracket */: + inCharacterClass = true; + continue; + case 93 /* closeBracket */: + inCharacterClass = false; + continue; + case 47 /* slash */: + if (inCharacterClass) { + continue; + } + break; + default: + continue; + } + break; + } + while (index < end && isIdentifierPartCharacter[str.charCodeAt(index)]) { + index++; + } + return 10 /* RegularExpressionLiteral */; + } + function scanExclamationToken() { + if (str.charCodeAt(index) === 61 /* equals */) { + index++; + if (str.charCodeAt(index) === 61 /* equals */) { + index++; + return 92 /* ExclamationEqualsEqualsToken */; + } + else { + return 90 /* ExclamationEqualsToken */; + } + } + else { + return 105 /* ExclamationToken */; + } + } + function getErrorMessageText(text) { + if (text === "\\") { + return '"\\"'; + } + return JSON.stringify(text); + } + function skipEscapeSequence() { + var rewindPoint = index; + index++; + var ch = str.charCodeAt(index); + if (isNaN(ch)) { + return; + } + index++; + switch (ch) { + case 120 /* x */: + case 117 /* u */: + index = rewindPoint; + var value = scanUnicodeOrHexEscape(true); + break; + case 13 /* carriageReturn */: + if (str.charCodeAt(index) === 10 /* lineFeed */) { + index++; + } + break; + default: + break; + } + } + function scanStringLiteral(quoteCharacter) { + while (true) { + var ch = str.charCodeAt(index); + if (ch === 92 /* backslash */) { + skipEscapeSequence(); + } + else if (ch === quoteCharacter) { + index++; + break; + } + else if (isNaN(ch) || isNewLineCharacter(ch)) { + reportDiagnostic(index, 0, TypeScript.DiagnosticCode.Unterminated_string_literal); + break; + } + else { + index++; + } + } + return 12 /* StringLiteral */; + } + function isUnicodeEscape(character) { + return character === 92 /* backslash */ && str.charCodeAt(index + 1) === 117 /* u */; + } + function peekCharOrUnicodeEscape() { + var character = str.charCodeAt(index); + if (isUnicodeEscape(character)) { + return peekUnicodeOrHexEscape(); + } + else { + return character; + } + } + function peekUnicodeOrHexEscape() { + var startIndex = index; + var ch = scanUnicodeOrHexEscape(false); + index = startIndex; + return ch; + } + function scanCharOrUnicodeEscape() { + if (str.charCodeAt(index) === 92 /* backslash */ && str.charCodeAt(index + 1) === 117 /* u */) { + scanUnicodeOrHexEscape(true); + } + else { + index++; + } + } + function scanUnicodeOrHexEscape(report) { + var start = index; + var character = str.charCodeAt(index); + index++; + character = str.charCodeAt(index); + var intChar = 0; + index++; + var count = character === 117 /* u */ ? 4 : 2; + for (var i = 0; i < count; i++) { + var ch2 = str.charCodeAt(index); + if (!TypeScript.CharacterInfo.isHexDigit(ch2)) { + if (report) { + reportDiagnostic(start, index - start, TypeScript.DiagnosticCode.Unrecognized_escape_sequence, undefined); + } + break; + } + intChar = (intChar << 4) + TypeScript.CharacterInfo.hexValue(ch2); + index++; + } + return intChar; + } + function fillTokenInfo(token, text, tokenInfo) { + var fullStart = token.fullStart(); + var fullEnd = fullStart + token.fullWidth(); + reset(text, fullStart, fullEnd); + scanTriviaInfo(); + var start = index; + tokenInfo.leadingTriviaWidth = start - fullStart; + } + reset(text, 0, text.length()); + return { + setIndex: setIndex, + scan: scan, + fillTokenInfo: fillTokenInfo, + scanTrivia: scanTrivia + }; + } + function isValidIdentifier(text, languageVersion) { + var hadError = false; + var scanner = createScanner(languageVersion, text, function () { return hadError = true; }); + var token = scanner.scan(false); + return !hadError && TypeScript.SyntaxFacts.isIdentifierNameOrAnyKeyword(token) && TypeScript.width(token) === text.length(); + } + Scanner.isValidIdentifier = isValidIdentifier; + function createParserSource(fileName, text, languageVersion) { + var _absolutePosition = 0; + var _tokenDiagnostics = []; + var rewindPointPool = []; + var rewindPointPoolCount = 0; + var lastDiagnostic = undefined; + var reportDiagnostic = function (position, fullWidth, diagnosticKey, args) { + lastDiagnostic = new TypeScript.Diagnostic(fileName, text.lineMap(), position, fullWidth, diagnosticKey, args); + }; + var slidingWindow = new TypeScript.SlidingWindow(fetchNextItem, TypeScript.ArrayUtilities.createArray(1024, undefined), undefined); + var scanner = createScanner(languageVersion, text, reportDiagnostic); + function release() { + slidingWindow = undefined; + scanner = undefined; + _tokenDiagnostics = []; + rewindPointPool = []; + lastDiagnostic = undefined; + reportDiagnostic = undefined; + } + function currentNode() { + return undefined; + } + function absolutePosition() { + TypeScript.Debug.assert(!isNaN(_absolutePosition)); + return _absolutePosition; + } + function tokenDiagnostics() { + return _tokenDiagnostics; + } + function getOrCreateRewindPoint() { + if (rewindPointPoolCount === 0) { + return {}; + } + rewindPointPoolCount--; + var result = rewindPointPool[rewindPointPoolCount]; + rewindPointPool[rewindPointPoolCount] = undefined; + return result; + } + function getRewindPoint() { + var slidingWindowIndex = slidingWindow.getAndPinAbsoluteIndex(); + var rewindPoint = getOrCreateRewindPoint(); + rewindPoint.slidingWindowIndex = slidingWindowIndex; + rewindPoint.absolutePosition = _absolutePosition; + return rewindPoint; + } + function rewind(rewindPoint) { + slidingWindow.rewindToPinnedIndex(rewindPoint.slidingWindowIndex); + _absolutePosition = rewindPoint.absolutePosition; + } + function releaseRewindPoint(rewindPoint) { + slidingWindow.releaseAndUnpinAbsoluteIndex(rewindPoint.absoluteIndex); + rewindPointPool[rewindPointPoolCount] = rewindPoint; + rewindPointPoolCount++; + } + function fetchNextItem(allowContextualToken) { + var token = scanner.scan(allowContextualToken); + if (lastDiagnostic === undefined) { + return token; + } + _tokenDiagnostics.push(lastDiagnostic); + lastDiagnostic = undefined; + return TypeScript.Syntax.realizeToken(token, text); + } + function peekToken(n) { + return slidingWindow.peekItemN(n); + } + function consumeNodeOrToken(nodeOrToken) { + if (nodeOrToken === slidingWindow.currentItemWithoutFetching()) { + _absolutePosition += nodeOrToken.fullWidth(); + TypeScript.Debug.assert(!isNaN(_absolutePosition)); + slidingWindow.moveToNextItem(); + } + else { + resetToPosition(TypeScript.fullEnd(nodeOrToken)); + } + } + function currentToken() { + return slidingWindow.currentItem(false); + } + function removeDiagnosticsOnOrAfterPosition(position) { + var tokenDiagnosticsLength = _tokenDiagnostics.length; + while (tokenDiagnosticsLength > 0) { + var diagnostic = _tokenDiagnostics[tokenDiagnosticsLength - 1]; + if (diagnostic.start() >= position) { + tokenDiagnosticsLength--; + _tokenDiagnostics.pop(); + } + else { + break; + } + } + } + function resetToPosition(absolutePosition) { + TypeScript.Debug.assert(absolutePosition <= text.length(), "Trying to set the position outside the bounds of the text!"); + var resetBackward = absolutePosition <= _absolutePosition; + _absolutePosition = absolutePosition; + if (resetBackward) { + removeDiagnosticsOnOrAfterPosition(absolutePosition); + } + slidingWindow.disgardAllItemsFromCurrentIndexOnwards(); + scanner.setIndex(absolutePosition); + } + function currentContextualToken() { + resetToPosition(_absolutePosition); + var token = slidingWindow.currentItem(true); + return token; + } + return { + text: text, + fileName: fileName, + languageVersion: languageVersion, + currentNode: currentNode, + currentToken: currentToken, + currentContextualToken: currentContextualToken, + peekToken: peekToken, + consumeNodeOrToken: consumeNodeOrToken, + getRewindPoint: getRewindPoint, + rewind: rewind, + releaseRewindPoint: releaseRewindPoint, + tokenDiagnostics: tokenDiagnostics, + release: release, + absolutePosition: absolutePosition + }; + } + Scanner.createParserSource = createParserSource; + var fixedWidthArray = TypeScript.ScannerUtilities.fixedWidthArray; + function fixedWidthTokenLength(kind) { + return fixedWidthArray[kind]; + } + })(Scanner = TypeScript.Scanner || (TypeScript.Scanner = {})); +})(TypeScript || (TypeScript = {})); +var TypeScript; +(function (TypeScript) { + var SlidingWindow = (function () { + function SlidingWindow(fetchNextItem, window, defaultValue, sourceLength) { + if (sourceLength === void 0) { sourceLength = -1; } + this.fetchNextItem = fetchNextItem; + this.window = window; + this.defaultValue = defaultValue; + this.sourceLength = sourceLength; + this.windowCount = 0; + this.windowAbsoluteStartIndex = 0; + this.currentRelativeItemIndex = 0; + this._pinCount = 0; + this.firstPinnedAbsoluteIndex = -1; + } + SlidingWindow.prototype.addMoreItemsToWindow = function (argument) { + var sourceLength = this.sourceLength; + if (sourceLength >= 0 && this.absoluteIndex() >= sourceLength) { + return false; + } + if (this.windowCount >= this.window.length) { + this.tryShiftOrGrowWindow(); + } + var item = this.fetchNextItem(argument); + this.window[this.windowCount] = item; + this.windowCount++; + return true; + }; + SlidingWindow.prototype.tryShiftOrGrowWindow = function () { + var currentIndexIsPastWindowHalfwayPoint = this.currentRelativeItemIndex > (this.window.length >>> 1); + var isAllowedToShift = this.firstPinnedAbsoluteIndex === -1 || this.firstPinnedAbsoluteIndex > this.windowAbsoluteStartIndex; + if (currentIndexIsPastWindowHalfwayPoint && isAllowedToShift) { + var shiftStartIndex = this.firstPinnedAbsoluteIndex === -1 ? this.currentRelativeItemIndex : this.firstPinnedAbsoluteIndex - this.windowAbsoluteStartIndex; + var shiftCount = this.windowCount - shiftStartIndex; + if (shiftCount > 0) { + TypeScript.ArrayUtilities.copy(this.window, shiftStartIndex, this.window, 0, shiftCount); + } + this.windowAbsoluteStartIndex += shiftStartIndex; + this.windowCount -= shiftStartIndex; + this.currentRelativeItemIndex -= shiftStartIndex; + } + else { + TypeScript.ArrayUtilities.grow(this.window, this.window.length * 2, this.defaultValue); + } + }; + SlidingWindow.prototype.absoluteIndex = function () { + return this.windowAbsoluteStartIndex + this.currentRelativeItemIndex; + }; + SlidingWindow.prototype.isAtEndOfSource = function () { + return this.absoluteIndex() >= this.sourceLength; + }; + SlidingWindow.prototype.getAndPinAbsoluteIndex = function () { + var absoluteIndex = this.absoluteIndex(); + var pinCount = this._pinCount++; + if (pinCount === 0) { + this.firstPinnedAbsoluteIndex = absoluteIndex; + } + return absoluteIndex; + }; + SlidingWindow.prototype.releaseAndUnpinAbsoluteIndex = function (absoluteIndex) { + this._pinCount--; + if (this._pinCount === 0) { + this.firstPinnedAbsoluteIndex = -1; + } + }; + SlidingWindow.prototype.rewindToPinnedIndex = function (absoluteIndex) { + var relativeIndex = absoluteIndex - this.windowAbsoluteStartIndex; + this.currentRelativeItemIndex = relativeIndex; + }; + SlidingWindow.prototype.currentItem = function (argument) { + if (this.currentRelativeItemIndex >= this.windowCount) { + if (!this.addMoreItemsToWindow(argument)) { + return this.defaultValue; + } + } + return this.window[this.currentRelativeItemIndex]; + }; + SlidingWindow.prototype.currentItemWithoutFetching = function () { + if (this.currentRelativeItemIndex >= this.windowCount) { + return undefined; + } + return this.window[this.currentRelativeItemIndex]; + }; + SlidingWindow.prototype.peekItemN = function (n) { + while (this.currentRelativeItemIndex + n >= this.windowCount) { + if (!this.addMoreItemsToWindow(undefined)) { + return this.defaultValue; + } + } + return this.window[this.currentRelativeItemIndex + n]; + }; + SlidingWindow.prototype.moveToNextItem = function () { + this.currentRelativeItemIndex++; + }; + SlidingWindow.prototype.disgardAllItemsFromCurrentIndexOnwards = function () { + this.windowCount = this.currentRelativeItemIndex; + }; + return SlidingWindow; + })(); + TypeScript.SlidingWindow = SlidingWindow; +})(TypeScript || (TypeScript = {})); +var TypeScript; +(function (TypeScript) { + var Syntax; + (function (Syntax) { + Syntax._nextSyntaxID = 1; + function nodeHasSkippedOrMissingTokens(node) { + for (var i = 0; i < TypeScript.childCount(node); i++) { + var child = TypeScript.childAt(node, i); + if (TypeScript.isToken(child)) { + var token = child; + if (token.hasLeadingSkippedToken() || (TypeScript.fullWidth(token) === 0 && token.kind !== 8 /* EndOfFileToken */)) { + return true; + } + } + } + return false; + } + Syntax.nodeHasSkippedOrMissingTokens = nodeHasSkippedOrMissingTokens; + function isUnterminatedStringLiteral(token) { + if (token && token.kind === 12 /* StringLiteral */) { + var text = token.text(); + return text.length < 2 || text.charCodeAt(text.length - 1) !== text.charCodeAt(0); + } + return false; + } + Syntax.isUnterminatedStringLiteral = isUnterminatedStringLiteral; + function isUnterminatedMultilineCommentTrivia(trivia) { + if (trivia && trivia.kind === 4 /* MultiLineCommentTrivia */) { + var text = trivia.fullText(); + return text.length < 4 || text.substring(text.length - 2) !== "*/"; + } + return false; + } + Syntax.isUnterminatedMultilineCommentTrivia = isUnterminatedMultilineCommentTrivia; + function isEntirelyInsideCommentTrivia(trivia, fullStart, position) { + if (trivia && trivia.isComment() && position > fullStart) { + var end = fullStart + trivia.fullWidth(); + if (position < end) { + return true; + } + else if (position === end) { + return trivia.kind === 5 /* SingleLineCommentTrivia */ || isUnterminatedMultilineCommentTrivia(trivia); + } + } + return false; + } + Syntax.isEntirelyInsideCommentTrivia = isEntirelyInsideCommentTrivia; + function getAncestorOfKind(positionedToken, kind) { + while (positionedToken && positionedToken.parent) { + if (positionedToken.parent.kind === kind) { + return positionedToken.parent; + } + positionedToken = positionedToken.parent; + } + return undefined; + } + Syntax.getAncestorOfKind = getAncestorOfKind; + function hasAncestorOfKind(positionedToken, kind) { + return !!getAncestorOfKind(positionedToken, kind); + } + Syntax.hasAncestorOfKind = hasAncestorOfKind; + function isIntegerLiteral(expression) { + if (expression) { + switch (expression.kind) { + case 171 /* PrefixUnaryExpression */: + var prefixExpr = expression; + if (prefixExpr.operatorToken.kind == 93 /* PlusToken */ || prefixExpr.operatorToken.kind === 94 /* MinusToken */) { + expression = prefixExpr.operand; + return TypeScript.isToken(expression) && TypeScript.IntegerUtilities.isInteger(expression.text()); + } + return false; + case 11 /* NumericLiteral */: + var text = expression.text(); + return TypeScript.IntegerUtilities.isInteger(text) || TypeScript.IntegerUtilities.isHexInteger(text); + } + } + return false; + } + Syntax.isIntegerLiteral = isIntegerLiteral; + function containingNode(element) { + var current = element.parent; + while (current && !TypeScript.isNode(current)) { + current = current.parent; + } + return current; + } + Syntax.containingNode = containingNode; + function findTokenOnLeft(sourceUnit, position) { + var positionedToken = TypeScript.findToken(sourceUnit, position); + var _start = TypeScript.start(positionedToken); + if (position > _start) { + return positionedToken; + } + if (positionedToken.fullStart() === 0) { + return undefined; + } + return TypeScript.previousToken(positionedToken); + } + Syntax.findTokenOnLeft = findTokenOnLeft; + function findCompleteTokenOnLeft(sourceUnit, position) { + var positionedToken = TypeScript.findToken(sourceUnit, position); + if (TypeScript.width(positionedToken) > 0 && position >= TypeScript.fullEnd(positionedToken)) { + return positionedToken; + } + return TypeScript.previousToken(positionedToken); + } + Syntax.findCompleteTokenOnLeft = findCompleteTokenOnLeft; + })(Syntax = TypeScript.Syntax || (TypeScript.Syntax = {})); +})(TypeScript || (TypeScript = {})); +var TypeScript; +(function (TypeScript) { + function syntaxTree(element) { + if (element) { + while (element) { + if (element.kind === 124 /* SourceUnit */) { + return element.syntaxTree; + } + element = element.parent; + } + } + return undefined; + } + TypeScript.syntaxTree = syntaxTree; + function parserContextFlags(node) { + var info = node.__data; + if (info === undefined) { + return 0; + } + return info & 31 /* Mask */; + } + TypeScript.parserContextFlags = parserContextFlags; + function parsedInStrictModeContext(node) { + return (parserContextFlags(node) & 1 /* StrictMode */) !== 0; + } + TypeScript.parsedInStrictModeContext = parsedInStrictModeContext; + function parsedInDisallowInContext(node) { + return (parserContextFlags(node) & 2 /* DisallowIn */) !== 0; + } + TypeScript.parsedInDisallowInContext = parsedInDisallowInContext; + function parsedInYieldContext(node) { + return (parserContextFlags(node) & 4 /* Yield */) !== 0; + } + TypeScript.parsedInYieldContext = parsedInYieldContext; + function parsedInGeneratorParameterContext(node) { + return (parserContextFlags(node) & 8 /* GeneratorParameter */) !== 0; + } + TypeScript.parsedInGeneratorParameterContext = parsedInGeneratorParameterContext; + function parsedInAsyncContext(node) { + return (parserContextFlags(node) & 16 /* Async */) !== 0; + } + TypeScript.parsedInAsyncContext = parsedInAsyncContext; + function previousToken(token) { + var start = token.fullStart(); + if (start === 0) { + return undefined; + } + return findToken(syntaxTree(token).sourceUnit(), start - 1); + } + TypeScript.previousToken = previousToken; + function findToken(sourceUnit, position) { + if (position < 0) { + throw TypeScript.Errors.argumentOutOfRange("position"); + } + var token = findTokenInNodeOrToken(sourceUnit, 0, position); + if (token) { + TypeScript.Debug.assert(token.fullWidth() > 0); + return token; + } + if (position === fullWidth(sourceUnit)) { + return sourceUnit.endOfFileToken; + } + if (position > fullWidth(sourceUnit)) { + throw TypeScript.Errors.argumentOutOfRange("position"); + } + throw TypeScript.Errors.invalidOperation(); + } + TypeScript.findToken = findToken; + function findTokenWorker(element, elementPosition, position) { + if (isList(element)) { + return findTokenInList(element, elementPosition, position); + } + else { + return findTokenInNodeOrToken(element, elementPosition, position); + } + } + function findTokenInList(list, elementPosition, position) { + for (var i = 0, n = list.length; i < n; i++) { + var child = list[i]; + var childFullWidth = fullWidth(child); + var elementEndPosition = elementPosition + childFullWidth; + if (position < elementEndPosition) { + return findTokenWorker(child, elementPosition, position); + } + elementPosition = elementEndPosition; + } + return undefined; + } + function findTokenInNodeOrToken(nodeOrToken, elementPosition, position) { + if (isToken(nodeOrToken)) { + return nodeOrToken; + } + for (var i = 0, n = TypeScript.childCount(nodeOrToken); i < n; i++) { + var child = nodeOrToken.childAt(i); + if (child) { + var childFullWidth = fullWidth(child); + var elementEndPosition = elementPosition + childFullWidth; + if (position < elementEndPosition) { + return findTokenWorker(child, elementPosition, position); + } + elementPosition = elementEndPosition; + } + } + return undefined; + } + function tryGetEndOfFileAt(element, position) { + if (element.kind === 124 /* SourceUnit */ && position === fullWidth(element)) { + var sourceUnit = element; + return sourceUnit.endOfFileToken; + } + return undefined; + } + function nextToken(token, text) { + if (token.kind === 8 /* EndOfFileToken */) { + return undefined; + } + return findToken(syntaxTree(token).sourceUnit(), fullEnd(token)); + } + TypeScript.nextToken = nextToken; + function isNode(element) { + if (element) { + var kind = element.kind; + return kind >= 124 /* FirstNode */ && kind <= 217 /* LastNode */; + } + return false; + } + TypeScript.isNode = isNode; + function isTokenKind(kind) { + return kind >= 7 /* FirstToken */ && kind <= 123 /* LastToken */; + } + function isToken(element) { + if (element) { + return isTokenKind(element.kind); + } + return false; + } + TypeScript.isToken = isToken; + function isList(element) { + return element instanceof Array; + } + TypeScript.isList = isList; + function syntaxID(element) { + var obj = element; + if (obj._syntaxID === undefined) { + obj._syntaxID = TypeScript.Syntax._nextSyntaxID++; + } + return obj._syntaxID; + } + TypeScript.syntaxID = syntaxID; + function collectTextElements(element, elements, text) { + if (element) { + if (isToken(element)) { + elements.push(element.fullText(text)); + } + else { + for (var i = 0, n = TypeScript.childCount(element); i < n; i++) { + collectTextElements(TypeScript.childAt(element, i), elements, text); + } + } + } + } + function fullText(element, text) { + if (isToken(element)) { + return element.fullText(text); + } + var elements = []; + collectTextElements(element, elements, text); + return elements.join(""); + } + TypeScript.fullText = fullText; + function leadingTriviaWidth(element, text) { + var token = firstToken(element); + return token ? token.leadingTriviaWidth(text) : 0; + } + TypeScript.leadingTriviaWidth = leadingTriviaWidth; + function firstToken(element) { + if (element) { + var kind = element.kind; + if (isTokenKind(kind)) { + return element.fullWidth() > 0 || kind === 8 /* EndOfFileToken */ ? element : undefined; + } + for (var i = 0, n = TypeScript.childCount(element); i < n; i++) { + var token = firstToken(TypeScript.childAt(element, i)); + if (token) { + return token; + } + } + } + return undefined; + } + TypeScript.firstToken = firstToken; + function lastToken(element) { + if (isToken(element)) { + return fullWidth(element) > 0 || element.kind === 8 /* EndOfFileToken */ ? element : undefined; + } + if (element.kind === 124 /* SourceUnit */) { + return element.endOfFileToken; + } + for (var i = TypeScript.childCount(element) - 1; i >= 0; i--) { + var child = TypeScript.childAt(element, i); + if (child) { + var token = lastToken(child); + if (token) { + return token; + } + } + } + return undefined; + } + TypeScript.lastToken = lastToken; + function fullStart(element) { + var token = isToken(element) ? element : firstToken(element); + return token ? token.fullStart() : -1; + } + TypeScript.fullStart = fullStart; + function fullWidth(element) { + if (isToken(element)) { + return element.fullWidth(); + } + var info = data(element); + return (info / TypeScript.SyntaxNodeConstants.FullWidthShift) | 0; + } + TypeScript.fullWidth = fullWidth; + function isIncrementallyUnusable(element) { + if (isToken(element)) { + return element.isIncrementallyUnusable(); + } + return (data(element) & TypeScript.SyntaxNodeConstants.IncrementallyUnusableMask) !== 0; + } + TypeScript.isIncrementallyUnusable = isIncrementallyUnusable; + function data(element) { + var dataElement = element; + var info = dataElement.__data; + if (info === undefined) { + info = 0; + } + if ((info & TypeScript.SyntaxNodeConstants.DataComputed) === 0) { + info |= computeData(element); + dataElement.__data = info; + } + return info; + } + function combineData(fullWidth, isIncrementallyUnusable) { + return (fullWidth * TypeScript.SyntaxNodeConstants.FullWidthShift) + (isIncrementallyUnusable ? TypeScript.SyntaxNodeConstants.IncrementallyUnusableMask : 0) + TypeScript.SyntaxNodeConstants.DataComputed; + } + function listComputeData(list) { + var fullWidth = 0; + var isIncrementallyUnusable = false; + for (var i = 0, n = list.length; i < n; i++) { + var child = list[i]; + fullWidth += TypeScript.fullWidth(child); + isIncrementallyUnusable = isIncrementallyUnusable || TypeScript.isIncrementallyUnusable(child); + } + return combineData(fullWidth, isIncrementallyUnusable); + } + function computeData(element) { + if (isList(element)) { + return listComputeData(element); + } + else { + return nodeOrTokenComputeData(element); + } + } + function nodeOrTokenComputeData(nodeOrToken) { + var fullWidth = 0; + var slotCount = nodeOrToken.childCount; + var isIncrementallyUnusable = slotCount === 0; + for (var i = 0, n = slotCount; i < n; i++) { + var child = nodeOrToken.childAt(i); + if (child) { + fullWidth += TypeScript.fullWidth(child); + isIncrementallyUnusable = isIncrementallyUnusable || TypeScript.isIncrementallyUnusable(child); + } + } + return combineData(fullWidth, isIncrementallyUnusable); + } + function start(element, text) { + var token = isToken(element) ? element : firstToken(element); + return token ? token.fullStart() + token.leadingTriviaWidth(text) : -1; + } + TypeScript.start = start; + function width(element, text) { + if (isToken(element)) { + return element.text().length; + } + return fullWidth(element) - leadingTriviaWidth(element, text); + } + TypeScript.width = width; + function fullEnd(element) { + return fullStart(element) + fullWidth(element); + } + TypeScript.fullEnd = fullEnd; + function existsNewLineBetweenTokens(token1, token2, text) { + if (token1 === token2) { + return false; + } + if (!token1 || !token2) { + return true; + } + var lineMap = text.lineMap(); + return lineMap.getLineNumberFromPosition(fullEnd(token1)) !== lineMap.getLineNumberFromPosition(start(token2, text)); + } + TypeScript.existsNewLineBetweenTokens = existsNewLineBetweenTokens; +})(TypeScript || (TypeScript = {})); +var TypeScript; +(function (TypeScript) { + var SyntaxFacts; + (function (SyntaxFacts) { + function isDirectivePrologueElement(node) { + return node.kind === 156 /* ExpressionStatement */ && node.expression.kind === 12 /* StringLiteral */; + } + SyntaxFacts.isDirectivePrologueElement = isDirectivePrologueElement; + function isUseStrictDirective(node) { + var expressionStatement = node; + var stringLiteral = expressionStatement.expression; + var text = stringLiteral.text(); + return text === '"use strict"' || text === "'use strict'"; + } + SyntaxFacts.isUseStrictDirective = isUseStrictDirective; + function isIdentifierNameOrAnyKeyword(token) { + var tokenKind = token.kind; + return tokenKind === 9 /* IdentifierName */ || SyntaxFacts.isAnyKeyword(tokenKind); + } + SyntaxFacts.isIdentifierNameOrAnyKeyword = isIdentifierNameOrAnyKeyword; + function isAccessibilityModifier(kind) { + switch (kind) { + case 59 /* PublicKeyword */: + case 57 /* PrivateKeyword */: + case 58 /* ProtectedKeyword */: + return true; + } + return false; + } + SyntaxFacts.isAccessibilityModifier = isAccessibilityModifier; + })(SyntaxFacts = TypeScript.SyntaxFacts || (TypeScript.SyntaxFacts = {})); +})(TypeScript || (TypeScript = {})); +var TypeScript; +(function (TypeScript) { + function separatorCount(list) { + return list === undefined ? 0 : list.length >> 1; + } + TypeScript.separatorCount = separatorCount; + function nonSeparatorCount(list) { + return list === undefined ? 0 : (list.length + 1) >> 1; + } + TypeScript.nonSeparatorCount = nonSeparatorCount; + function separatorAt(list, index) { + return list[(index << 1) + 1]; + } + TypeScript.separatorAt = separatorAt; + function nonSeparatorAt(list, index) { + return list[index << 1]; + } + TypeScript.nonSeparatorAt = nonSeparatorAt; +})(TypeScript || (TypeScript = {})); +var TypeScript; +(function (TypeScript) { + var Syntax; + (function (Syntax) { + function addArrayPrototypeValue(name, val) { + if (Object.defineProperty && Array.prototype[name] === undefined) { + Object.defineProperty(Array.prototype, name, { value: val, writable: false, enumerable: false }); + } + else { + Array.prototype[name] = val; + } + } + addArrayPrototypeValue("kind", 1 /* List */); + function list(nodes) { + if (nodes !== undefined) { + for (var i = 0, n = nodes.length; i < n; i++) { + nodes[i].parent = nodes; + } + } + return nodes; + } + Syntax.list = list; + function separatedList(nodesAndTokens) { + if (nodesAndTokens !== undefined) { + for (var i = 0, n = nodesAndTokens.length; i < n; i++) { + nodesAndTokens[i].parent = nodesAndTokens; + } + } + return nodesAndTokens; + } + Syntax.separatedList = separatedList; + })(Syntax = TypeScript.Syntax || (TypeScript.Syntax = {})); +})(TypeScript || (TypeScript = {})); +var TypeScript; +(function (TypeScript) { + function tokenValue(token) { + if (token.fullWidth() === 0) { + return undefined; + } + var kind = token.kind; + var text = token.text(); + if (kind === 9 /* IdentifierName */) { + return massageEscapes(text); + } + switch (kind) { + case 39 /* TrueKeyword */: + return true; + case 26 /* FalseKeyword */: + return false; + case 34 /* NullKeyword */: + return undefined; + } + if (TypeScript.SyntaxFacts.isAnyKeyword(kind) || TypeScript.SyntaxFacts.isAnyPunctuation(kind)) { + return TypeScript.SyntaxFacts.getText(kind); + } + if (kind === 11 /* NumericLiteral */) { + return TypeScript.IntegerUtilities.isHexInteger(text) ? parseInt(text, 16) : parseFloat(text); + } + else if (kind === 12 /* StringLiteral */) { + return (text.length > 1 && text.charCodeAt(text.length - 1) === text.charCodeAt(0)) ? massageEscapes(text.substr(1, text.length - "''".length)) : massageEscapes(text.substr(1)); + } + else if (kind === 13 /* NoSubstitutionTemplateToken */ || kind === 16 /* TemplateEndToken */) { + return (text.length > 1 && text.charCodeAt(text.length - 1) === 96 /* backtick */) ? massageTemplate(text.substr(1, text.length - "``".length)) : massageTemplate(text.substr(1)); + } + else if (kind === 14 /* TemplateStartToken */ || kind === 15 /* TemplateMiddleToken */) { + return massageTemplate(text.substr(1, text.length - "`${".length)); + } + else if (kind === 10 /* RegularExpressionLiteral */) { + return regularExpressionValue(text); + } + else if (kind === 8 /* EndOfFileToken */ || kind === 7 /* ErrorToken */) { + return undefined; + } + else { + throw TypeScript.Errors.invalidOperation(); + } + } + TypeScript.tokenValue = tokenValue; + function tokenValueText(token) { + var value = tokenValue(token); + return value === undefined ? "" : massageDisallowedIdentifiers(value.toString()); + } + TypeScript.tokenValueText = tokenValueText; + function massageTemplate(text) { + text = text.replace("\r\n", "\n").replace("\r", "\n"); + return massageEscapes(text); + } + function massageEscapes(text) { + return text.indexOf("\\") >= 0 ? convertEscapes(text) : text; + } + TypeScript.massageEscapes = massageEscapes; + function regularExpressionValue(text) { + try { + var lastSlash = text.lastIndexOf("/"); + var body = text.substring(1, lastSlash); + var flags = text.substring(lastSlash + 1); + return new RegExp(body, flags); + } + catch (e) { + return undefined; + } + } + function massageDisallowedIdentifiers(text) { + if (text.charCodeAt(0) === 95 /* _ */ && text.charCodeAt(1) === 95 /* _ */) { + return "_" + text; + } + return text; + } + var characterArray = []; + function convertEscapes(text) { + characterArray.length = 0; + var result = ""; + for (var i = 0, n = text.length; i < n; i++) { + var ch = text.charCodeAt(i); + if (ch === 92 /* backslash */) { + i++; + if (i < n) { + ch = text.charCodeAt(i); + switch (ch) { + case 48 /* _0 */: + characterArray.push(0 /* nullCharacter */); + continue; + case 98 /* b */: + characterArray.push(8 /* backspace */); + continue; + case 102 /* f */: + characterArray.push(12 /* formFeed */); + continue; + case 110 /* n */: + characterArray.push(10 /* lineFeed */); + continue; + case 114 /* r */: + characterArray.push(13 /* carriageReturn */); + continue; + case 116 /* t */: + characterArray.push(9 /* tab */); + continue; + case 118 /* v */: + characterArray.push(11 /* verticalTab */); + continue; + case 120 /* x */: + characterArray.push(hexValue(text, i + 1, 2)); + i += 2; + continue; + case 117 /* u */: + characterArray.push(hexValue(text, i + 1, 4)); + i += 4; + continue; + case 13 /* carriageReturn */: + var nextIndex = i + 1; + if (nextIndex < text.length && text.charCodeAt(nextIndex) === 10 /* lineFeed */) { + i++; + } + continue; + case 10 /* lineFeed */: + case 8233 /* paragraphSeparator */: + case 8232 /* lineSeparator */: + continue; + default: + } + } + } + characterArray.push(ch); + if (i && !(i % 1024)) { + result = result.concat(String.fromCharCode.apply(undefined, characterArray)); + characterArray.length = 0; + } + } + if (characterArray.length) { + result = result.concat(String.fromCharCode.apply(undefined, characterArray)); + } + return result; + } + function hexValue(text, start, length) { + var intChar = 0; + for (var i = 0; i < length; i++) { + var ch2 = text.charCodeAt(start + i); + if (!TypeScript.CharacterInfo.isHexDigit(ch2)) { + break; + } + intChar = (intChar << 4) + TypeScript.CharacterInfo.hexValue(ch2); + } + return intChar; + } +})(TypeScript || (TypeScript = {})); +var TypeScript; +(function (TypeScript) { + var Syntax; + (function (Syntax) { + function realizeToken(token, text) { + return new RealizedToken(token.fullStart(), token.kind, token.isKeywordConvertedToIdentifier(), token.leadingTrivia(text), token.text()); + } + Syntax.realizeToken = realizeToken; + function convertKeywordToIdentifier(token) { + return new ConvertedKeywordToken(token); + } + Syntax.convertKeywordToIdentifier = convertKeywordToIdentifier; + function withLeadingTrivia(token, leadingTrivia, text) { + return new RealizedToken(token.fullStart(), token.kind, token.isKeywordConvertedToIdentifier(), leadingTrivia, token.text()); + } + Syntax.withLeadingTrivia = withLeadingTrivia; + function emptyToken(kind, fullStart) { + return new EmptyToken(kind, fullStart); + } + Syntax.emptyToken = emptyToken; + var EmptyToken = (function () { + function EmptyToken(kind, _fullStart) { + this.kind = kind; + this._fullStart = _fullStart; + TypeScript.Debug.assert(!isNaN(_fullStart)); + } + EmptyToken.prototype.setFullStart = function (fullStart) { + this._fullStart = fullStart; + }; + EmptyToken.prototype.childAt = function (index) { + throw TypeScript.Errors.invalidOperation(); + }; + EmptyToken.prototype.clone = function () { + return new EmptyToken(this.kind, this._fullStart); + }; + EmptyToken.prototype.isIncrementallyUnusable = function () { + return true; + }; + EmptyToken.prototype.isKeywordConvertedToIdentifier = function () { + return false; + }; + EmptyToken.prototype.fullWidth = function () { + return 0; + }; + EmptyToken.prototype.fullStart = function () { + return this._fullStart; + }; + EmptyToken.prototype.text = function () { + return ""; + }; + EmptyToken.prototype.fullText = function () { + return ""; + }; + EmptyToken.prototype.hasLeadingTrivia = function () { + return false; + }; + EmptyToken.prototype.hasLeadingNewLine = function () { + return false; + }; + EmptyToken.prototype.hasLeadingComment = function () { + return false; + }; + EmptyToken.prototype.hasLeadingSkippedToken = function () { + return false; + }; + EmptyToken.prototype.leadingTriviaWidth = function () { + return 0; + }; + EmptyToken.prototype.leadingTrivia = function () { + return Syntax.emptyTriviaList; + }; + return EmptyToken; + })(); + EmptyToken.prototype.childCount = 0; + var RealizedToken = (function () { + function RealizedToken(_fullStart, kind, isKeywordConvertedToIdentifier, leadingTrivia, text) { + this._fullStart = _fullStart; + this.kind = kind; + TypeScript.Debug.assert(!isNaN(_fullStart)); + this._isKeywordConvertedToIdentifier = isKeywordConvertedToIdentifier; + this._text = text; + this._leadingTrivia = leadingTrivia.clone(); + if (!this._leadingTrivia.isShared()) { + this._leadingTrivia.parent = this; + } + } + RealizedToken.prototype.setFullStart = function (fullStart) { + this._fullStart = fullStart; + }; + RealizedToken.prototype.childAt = function (index) { + throw TypeScript.Errors.invalidOperation(); + }; + RealizedToken.prototype.clone = function () { + return new RealizedToken(this._fullStart, this.kind, this._isKeywordConvertedToIdentifier, this._leadingTrivia, this._text); + }; + RealizedToken.prototype.isIncrementallyUnusable = function () { + return true; + }; + RealizedToken.prototype.isKeywordConvertedToIdentifier = function () { + return this._isKeywordConvertedToIdentifier; + }; + RealizedToken.prototype.fullStart = function () { + return this._fullStart; + }; + RealizedToken.prototype.fullWidth = function () { + return this._leadingTrivia.fullWidth() + this._text.length; + }; + RealizedToken.prototype.text = function () { + return this._text; + }; + RealizedToken.prototype.fullText = function () { + return this._leadingTrivia.fullText() + this.text(); + }; + RealizedToken.prototype.hasLeadingTrivia = function () { + return this._leadingTrivia.count() > 0; + }; + RealizedToken.prototype.hasLeadingNewLine = function () { + return this._leadingTrivia.hasNewLine(); + }; + RealizedToken.prototype.hasLeadingComment = function () { + return this._leadingTrivia.hasComment(); + }; + RealizedToken.prototype.hasLeadingSkippedToken = function () { + return this._leadingTrivia.hasSkippedToken(); + }; + RealizedToken.prototype.leadingTrivia = function () { + return this._leadingTrivia; + }; + RealizedToken.prototype.leadingTriviaWidth = function () { + return this._leadingTrivia.fullWidth(); + }; + return RealizedToken; + })(); + RealizedToken.prototype.childCount = 0; + var ConvertedKeywordToken = (function () { + function ConvertedKeywordToken(underlyingToken) { + this.underlyingToken = underlyingToken; + } + ConvertedKeywordToken.prototype.setFullStart = function (fullStart) { + this.underlyingToken.setFullStart(fullStart); + }; + ConvertedKeywordToken.prototype.childAt = function (index) { + throw TypeScript.Errors.invalidOperation(); + }; + ConvertedKeywordToken.prototype.fullStart = function () { + return this.underlyingToken.fullStart(); + }; + ConvertedKeywordToken.prototype.fullWidth = function () { + return this.underlyingToken.fullWidth(); + }; + ConvertedKeywordToken.prototype.text = function () { + return this.underlyingToken.text(); + }; + ConvertedKeywordToken.prototype.syntaxTreeText = function (text) { + var result = text || TypeScript.syntaxTree(this).text; + TypeScript.Debug.assert(result); + return result; + }; + ConvertedKeywordToken.prototype.fullText = function (text) { + return this.underlyingToken.fullText(this.syntaxTreeText(text)); + }; + ConvertedKeywordToken.prototype.hasLeadingTrivia = function () { + return this.underlyingToken.hasLeadingTrivia(); + }; + ConvertedKeywordToken.prototype.hasLeadingNewLine = function () { + return this.underlyingToken.hasLeadingNewLine(); + }; + ConvertedKeywordToken.prototype.hasLeadingComment = function () { + return this.underlyingToken.hasLeadingComment(); + }; + ConvertedKeywordToken.prototype.hasLeadingSkippedToken = function () { + return this.underlyingToken.hasLeadingSkippedToken(); + }; + ConvertedKeywordToken.prototype.leadingTrivia = function (text) { + var result = this.underlyingToken.leadingTrivia(this.syntaxTreeText(text)); + result.parent = this; + return result; + }; + ConvertedKeywordToken.prototype.leadingTriviaWidth = function (text) { + return this.underlyingToken.leadingTriviaWidth(this.syntaxTreeText(text)); + }; + ConvertedKeywordToken.prototype.isKeywordConvertedToIdentifier = function () { + return true; + }; + ConvertedKeywordToken.prototype.isIncrementallyUnusable = function () { + return this.underlyingToken.isIncrementallyUnusable(); + }; + ConvertedKeywordToken.prototype.clone = function () { + return new ConvertedKeywordToken(this.underlyingToken); + }; + return ConvertedKeywordToken; + })(); + ConvertedKeywordToken.prototype.kind = 9 /* IdentifierName */; + ConvertedKeywordToken.prototype.childCount = 0; + })(Syntax = TypeScript.Syntax || (TypeScript.Syntax = {})); +})(TypeScript || (TypeScript = {})); +var TypeScript; +(function (TypeScript) { + var Syntax; + (function (Syntax) { + var AbstractTrivia = (function () { + function AbstractTrivia(kind) { + this.kind = kind; + } + AbstractTrivia.prototype.clone = function () { + throw TypeScript.Errors.abstract(); + }; + AbstractTrivia.prototype.fullStart = function () { + throw TypeScript.Errors.abstract(); + }; + AbstractTrivia.prototype.fullWidth = function () { + throw TypeScript.Errors.abstract(); + }; + AbstractTrivia.prototype.fullText = function () { + throw TypeScript.Errors.abstract(); + }; + AbstractTrivia.prototype.skippedToken = function () { + throw TypeScript.Errors.abstract(); + }; + AbstractTrivia.prototype.isWhitespace = function () { + return this.kind === 2 /* WhitespaceTrivia */; + }; + AbstractTrivia.prototype.isComment = function () { + return this.kind === 5 /* SingleLineCommentTrivia */ || this.kind === 4 /* MultiLineCommentTrivia */; + }; + AbstractTrivia.prototype.isNewLine = function () { + return this.kind === 3 /* NewLineTrivia */; + }; + AbstractTrivia.prototype.isSkippedToken = function () { + return this.kind === 6 /* SkippedTokenTrivia */; + }; + return AbstractTrivia; + })(); + var SkippedTokenTrivia = (function (_super) { + __extends(SkippedTokenTrivia, _super); + function SkippedTokenTrivia(_skippedToken, _fullText) { + _super.call(this, 6 /* SkippedTokenTrivia */); + this._skippedToken = _skippedToken; + this._fullText = _fullText; + _skippedToken.parent = this; + } + SkippedTokenTrivia.prototype.clone = function () { + return new SkippedTokenTrivia(this._skippedToken.clone(), this._fullText); + }; + SkippedTokenTrivia.prototype.fullStart = function () { + return this._skippedToken.fullStart(); + }; + SkippedTokenTrivia.prototype.fullWidth = function () { + return this.fullText().length; + }; + SkippedTokenTrivia.prototype.fullText = function () { + return this._fullText; + }; + SkippedTokenTrivia.prototype.skippedToken = function () { + return this._skippedToken; + }; + return SkippedTokenTrivia; + })(AbstractTrivia); + var DeferredTrivia = (function (_super) { + __extends(DeferredTrivia, _super); + function DeferredTrivia(kind, _text, _fullStart, _fullWidth) { + _super.call(this, kind); + this._text = _text; + this._fullStart = _fullStart; + this._fullWidth = _fullWidth; + } + DeferredTrivia.prototype.clone = function () { + return new DeferredTrivia(this.kind, this._text, this._fullStart, this._fullWidth); + }; + DeferredTrivia.prototype.fullStart = function () { + return this._fullStart; + }; + DeferredTrivia.prototype.fullWidth = function () { + return this._fullWidth; + }; + DeferredTrivia.prototype.fullText = function () { + return this._text.substr(this._fullStart, this._fullWidth); + }; + DeferredTrivia.prototype.skippedToken = function () { + throw TypeScript.Errors.invalidOperation(); + }; + return DeferredTrivia; + })(AbstractTrivia); + function deferredTrivia(kind, text, fullStart, fullWidth) { + return new DeferredTrivia(kind, text, fullStart, fullWidth); + } + Syntax.deferredTrivia = deferredTrivia; + function skippedTokenTrivia(token, text) { + TypeScript.Debug.assert(!token.hasLeadingTrivia()); + TypeScript.Debug.assert(token.fullWidth() > 0); + return new SkippedTokenTrivia(token, token.fullText(text)); + } + Syntax.skippedTokenTrivia = skippedTokenTrivia; + function splitMultiLineCommentTriviaIntoMultipleLines(trivia) { + var result = []; + var triviaText = trivia.fullText(); + var currentIndex = 0; + for (var i = 0; i < triviaText.length; i++) { + var ch = triviaText.charCodeAt(i); + switch (ch) { + case 13 /* carriageReturn */: + if (i < triviaText.length - 1 && triviaText.charCodeAt(i + 1) === 10 /* lineFeed */) { + i++; + } + case 10 /* lineFeed */: + case 8233 /* paragraphSeparator */: + case 8232 /* lineSeparator */: + result.push(triviaText.substring(currentIndex, i + 1)); + currentIndex = i + 1; + continue; + } + } + result.push(triviaText.substring(currentIndex)); + return result; + } + Syntax.splitMultiLineCommentTriviaIntoMultipleLines = splitMultiLineCommentTriviaIntoMultipleLines; + })(Syntax = TypeScript.Syntax || (TypeScript.Syntax = {})); +})(TypeScript || (TypeScript = {})); +var TypeScript; +(function (TypeScript) { + var Syntax; + (function (Syntax) { + var EmptyTriviaList = (function () { + function EmptyTriviaList() { + } + EmptyTriviaList.prototype.isShared = function () { + return true; + }; + EmptyTriviaList.prototype.count = function () { + return 0; + }; + EmptyTriviaList.prototype.syntaxTriviaAt = function (index) { + throw TypeScript.Errors.argumentOutOfRange("index"); + }; + EmptyTriviaList.prototype.last = function () { + throw TypeScript.Errors.argumentOutOfRange("index"); + }; + EmptyTriviaList.prototype.fullWidth = function () { + return 0; + }; + EmptyTriviaList.prototype.fullText = function () { + return ""; + }; + EmptyTriviaList.prototype.hasComment = function () { + return false; + }; + EmptyTriviaList.prototype.hasNewLine = function () { + return false; + }; + EmptyTriviaList.prototype.hasSkippedToken = function () { + return false; + }; + EmptyTriviaList.prototype.toArray = function () { + return []; + }; + EmptyTriviaList.prototype.clone = function () { + return this; + }; + return EmptyTriviaList; + })(); + ; + Syntax.emptyTriviaList = new EmptyTriviaList(); + function isComment(trivia) { + return trivia.kind === 4 /* MultiLineCommentTrivia */ || trivia.kind === 5 /* SingleLineCommentTrivia */; + } + var SingletonSyntaxTriviaList = (function () { + function SingletonSyntaxTriviaList(item) { + this.item = item.clone(); + this.item.parent = this; + } + SingletonSyntaxTriviaList.prototype.isShared = function () { + return false; + }; + SingletonSyntaxTriviaList.prototype.count = function () { + return 1; + }; + SingletonSyntaxTriviaList.prototype.syntaxTriviaAt = function (index) { + if (index !== 0) { + throw TypeScript.Errors.argumentOutOfRange("index"); + } + return this.item; + }; + SingletonSyntaxTriviaList.prototype.last = function () { + return this.item; + }; + SingletonSyntaxTriviaList.prototype.fullWidth = function () { + return this.item.fullWidth(); + }; + SingletonSyntaxTriviaList.prototype.fullText = function () { + return this.item.fullText(); + }; + SingletonSyntaxTriviaList.prototype.hasComment = function () { + return isComment(this.item); + }; + SingletonSyntaxTriviaList.prototype.hasNewLine = function () { + return this.item.kind === 3 /* NewLineTrivia */; + }; + SingletonSyntaxTriviaList.prototype.hasSkippedToken = function () { + return this.item.kind === 6 /* SkippedTokenTrivia */; + }; + SingletonSyntaxTriviaList.prototype.toArray = function () { + return [this.item]; + }; + SingletonSyntaxTriviaList.prototype.clone = function () { + return new SingletonSyntaxTriviaList(this.item.clone()); + }; + return SingletonSyntaxTriviaList; + })(); + var NormalSyntaxTriviaList = (function () { + function NormalSyntaxTriviaList(trivia) { + var _this = this; + this.trivia = trivia.map(function (t) { + var cloned = t.clone(); + cloned.parent = _this; + return cloned; + }); + } + NormalSyntaxTriviaList.prototype.isShared = function () { + return false; + }; + NormalSyntaxTriviaList.prototype.count = function () { + return this.trivia.length; + }; + NormalSyntaxTriviaList.prototype.syntaxTriviaAt = function (index) { + if (index < 0 || index >= this.trivia.length) { + throw TypeScript.Errors.argumentOutOfRange("index"); + } + return this.trivia[index]; + }; + NormalSyntaxTriviaList.prototype.last = function () { + return this.trivia[this.trivia.length - 1]; + }; + NormalSyntaxTriviaList.prototype.fullWidth = function () { + return TypeScript.ArrayUtilities.sum(this.trivia, function (t) { return t.fullWidth(); }); + }; + NormalSyntaxTriviaList.prototype.fullText = function () { + var result = []; + for (var i = 0, n = this.trivia.length; i < n; i++) { + result.push(this.trivia[i].fullText()); + } + return result.join(""); + }; + NormalSyntaxTriviaList.prototype.hasComment = function () { + for (var i = 0; i < this.trivia.length; i++) { + if (isComment(this.trivia[i])) { + return true; + } + } + return false; + }; + NormalSyntaxTriviaList.prototype.hasNewLine = function () { + for (var i = 0; i < this.trivia.length; i++) { + if (this.trivia[i].kind === 3 /* NewLineTrivia */) { + return true; + } + } + return false; + }; + NormalSyntaxTriviaList.prototype.hasSkippedToken = function () { + for (var i = 0; i < this.trivia.length; i++) { + if (this.trivia[i].kind === 6 /* SkippedTokenTrivia */) { + return true; + } + } + return false; + }; + NormalSyntaxTriviaList.prototype.toArray = function () { + return this.trivia.slice(0); + }; + NormalSyntaxTriviaList.prototype.clone = function () { + return new NormalSyntaxTriviaList(this.trivia.map(function (t) { return t.clone(); })); + }; + return NormalSyntaxTriviaList; + })(); + function triviaList(trivia) { + if (!trivia || trivia.length === 0) { + return Syntax.emptyTriviaList; + } + if (trivia.length === 1) { + return new SingletonSyntaxTriviaList(trivia[0]); + } + return new NormalSyntaxTriviaList(trivia); + } + Syntax.triviaList = triviaList; + })(Syntax = TypeScript.Syntax || (TypeScript.Syntax = {})); +})(TypeScript || (TypeScript = {})); +var TypeScript; +(function (TypeScript) { + function childCount(element) { + if (TypeScript.isList(element)) { + return element.length; + } + return element.childCount; + } + TypeScript.childCount = childCount; + function childAt(element, index) { + if (TypeScript.isList(element)) { + return element[index]; + } + return element.childAt(index); + } + TypeScript.childAt = childAt; + var SyntaxUtilities; + (function (SyntaxUtilities) { + function isAnyFunctionExpressionOrDeclaration(ast) { + switch (ast.kind) { + case 185 /* SimpleArrowFunctionExpression */: + case 184 /* ParenthesizedArrowFunctionExpression */: + case 188 /* FunctionExpression */: + case 136 /* FunctionDeclaration */: + case 142 /* MemberFunctionDeclaration */: + case 144 /* ConstructorDeclaration */: + case 146 /* GetAccessor */: + case 147 /* SetAccessor */: + return true; + } + return false; + } + SyntaxUtilities.isAnyFunctionExpressionOrDeclaration = isAnyFunctionExpressionOrDeclaration; + function isLastTokenOnLine(token, text) { + var _nextToken = TypeScript.nextToken(token, text); + if (_nextToken === undefined) { + return true; + } + var lineMap = text.lineMap(); + var tokenLine = lineMap.getLineNumberFromPosition(TypeScript.fullEnd(token)); + var nextTokenLine = lineMap.getLineNumberFromPosition(TypeScript.start(_nextToken, text)); + return tokenLine !== nextTokenLine; + } + SyntaxUtilities.isLastTokenOnLine = isLastTokenOnLine; + function isLeftHandSizeExpression(element) { + if (element) { + switch (element.kind) { + case 178 /* MemberAccessExpression */: + case 187 /* ElementAccessExpression */: + case 191 /* TemplateAccessExpression */: + case 182 /* ObjectCreationExpression */: + case 179 /* InvocationExpression */: + case 180 /* ArrayLiteralExpression */: + case 183 /* ParenthesizedExpression */: + case 181 /* ObjectLiteralExpression */: + case 188 /* FunctionExpression */: + case 9 /* IdentifierName */: + case 10 /* RegularExpressionLiteral */: + case 11 /* NumericLiteral */: + case 12 /* StringLiteral */: + case 26 /* FalseKeyword */: + case 34 /* NullKeyword */: + case 37 /* ThisKeyword */: + case 39 /* TrueKeyword */: + case 52 /* SuperKeyword */: + return true; + } + } + return false; + } + SyntaxUtilities.isLeftHandSizeExpression = isLeftHandSizeExpression; + function isSwitchClause(element) { + if (element) { + switch (element.kind) { + case 202 /* CaseSwitchClause */: + case 203 /* DefaultSwitchClause */: + return true; + } + } + return false; + } + SyntaxUtilities.isSwitchClause = isSwitchClause; + function isTypeMember(element) { + if (element) { + switch (element.kind) { + case 150 /* ConstructSignature */: + case 152 /* MethodSignature */: + case 151 /* IndexSignature */: + case 148 /* PropertySignature */: + case 149 /* CallSignature */: + return true; + } + } + return false; + } + SyntaxUtilities.isTypeMember = isTypeMember; + function isClassElement(element) { + if (element) { + switch (element.kind) { + case 144 /* ConstructorDeclaration */: + case 145 /* IndexMemberDeclaration */: + case 142 /* MemberFunctionDeclaration */: + case 146 /* GetAccessor */: + case 147 /* SetAccessor */: + case 142 /* MemberFunctionDeclaration */: + case 143 /* MemberVariableDeclaration */: + return true; + } + } + return false; + } + SyntaxUtilities.isClassElement = isClassElement; + function isModuleElement(element) { + if (element) { + switch (element.kind) { + case 140 /* ImportDeclaration */: + case 141 /* ExportAssignment */: + case 138 /* ClassDeclaration */: + case 135 /* InterfaceDeclaration */: + case 137 /* ModuleDeclaration */: + case 139 /* EnumDeclaration */: + case 136 /* FunctionDeclaration */: + case 155 /* VariableStatement */: + case 153 /* Block */: + case 154 /* IfStatement */: + case 156 /* ExpressionStatement */: + case 164 /* ThrowStatement */: + case 157 /* ReturnStatement */: + case 158 /* SwitchStatement */: + case 159 /* BreakStatement */: + case 160 /* ContinueStatement */: + case 162 /* ForInStatement */: + case 161 /* ForStatement */: + case 165 /* WhileStatement */: + case 170 /* WithStatement */: + case 163 /* EmptyStatement */: + case 166 /* TryStatement */: + case 167 /* LabeledStatement */: + case 168 /* DoStatement */: + case 169 /* DebuggerStatement */: + return true; + } + } + return false; + } + SyntaxUtilities.isModuleElement = isModuleElement; + function isStatement(element) { + if (element) { + switch (element.kind) { + case 136 /* FunctionDeclaration */: + case 155 /* VariableStatement */: + case 153 /* Block */: + case 154 /* IfStatement */: + case 156 /* ExpressionStatement */: + case 164 /* ThrowStatement */: + case 157 /* ReturnStatement */: + case 158 /* SwitchStatement */: + case 159 /* BreakStatement */: + case 160 /* ContinueStatement */: + case 162 /* ForInStatement */: + case 161 /* ForStatement */: + case 165 /* WhileStatement */: + case 170 /* WithStatement */: + case 163 /* EmptyStatement */: + case 166 /* TryStatement */: + case 167 /* LabeledStatement */: + case 168 /* DoStatement */: + case 169 /* DebuggerStatement */: + return true; + } + } + return false; + } + SyntaxUtilities.isStatement = isStatement; + function isAngleBracket(positionedElement) { + var element = positionedElement; + var parent = positionedElement.parent; + if (parent && (element.kind === 84 /* LessThanToken */ || element.kind === 85 /* GreaterThanToken */)) { + switch (parent.kind) { + case 198 /* TypeArgumentList */: + case 199 /* TypeParameterList */: + case 186 /* CastExpression */: + return true; + } + } + return false; + } + SyntaxUtilities.isAngleBracket = isAngleBracket; + function getToken(list, kind) { + for (var i = 0, n = list.length; i < n; i++) { + var token = list[i]; + if (token.kind === kind) { + return token; + } + } + return undefined; + } + SyntaxUtilities.getToken = getToken; + function containsToken(list, kind) { + return !!SyntaxUtilities.getToken(list, kind); + } + SyntaxUtilities.containsToken = containsToken; + function hasExportKeyword(moduleElement) { + return !!SyntaxUtilities.getExportKeyword(moduleElement); + } + SyntaxUtilities.hasExportKeyword = hasExportKeyword; + function getExportKeyword(moduleElement) { + switch (moduleElement.kind) { + case 137 /* ModuleDeclaration */: + case 138 /* ClassDeclaration */: + case 136 /* FunctionDeclaration */: + case 155 /* VariableStatement */: + case 139 /* EnumDeclaration */: + case 135 /* InterfaceDeclaration */: + case 140 /* ImportDeclaration */: + return SyntaxUtilities.getToken(moduleElement.modifiers, 49 /* ExportKeyword */); + default: + return undefined; + } + } + SyntaxUtilities.getExportKeyword = getExportKeyword; + function isAmbientDeclarationSyntax(positionNode) { + if (!positionNode) { + return false; + } + var node = positionNode; + switch (node.kind) { + case 137 /* ModuleDeclaration */: + case 138 /* ClassDeclaration */: + case 136 /* FunctionDeclaration */: + case 155 /* VariableStatement */: + case 139 /* EnumDeclaration */: + if (SyntaxUtilities.containsToken(node.modifiers, 67 /* DeclareKeyword */)) { + return true; + } + case 140 /* ImportDeclaration */: + case 144 /* ConstructorDeclaration */: + case 142 /* MemberFunctionDeclaration */: + case 146 /* GetAccessor */: + case 147 /* SetAccessor */: + case 143 /* MemberVariableDeclaration */: + if (SyntaxUtilities.isClassElement(node) || SyntaxUtilities.isModuleElement(node)) { + return SyntaxUtilities.isAmbientDeclarationSyntax(TypeScript.Syntax.containingNode(positionNode)); + } + case 211 /* EnumElement */: + return SyntaxUtilities.isAmbientDeclarationSyntax(TypeScript.Syntax.containingNode(TypeScript.Syntax.containingNode(positionNode))); + default: + return SyntaxUtilities.isAmbientDeclarationSyntax(TypeScript.Syntax.containingNode(positionNode)); + } + } + SyntaxUtilities.isAmbientDeclarationSyntax = isAmbientDeclarationSyntax; + })(SyntaxUtilities = TypeScript.SyntaxUtilities || (TypeScript.SyntaxUtilities = {})); +})(TypeScript || (TypeScript = {})); +var TypeScript; +(function (TypeScript) { + function visitNodeOrToken(visitor, element) { + if (element === undefined) { + return undefined; + } + switch (element.kind) { + case 124 /* SourceUnit */: return visitor.visitSourceUnit(element); + case 125 /* QualifiedName */: return visitor.visitQualifiedName(element); + case 126 /* ObjectType */: return visitor.visitObjectType(element); + case 127 /* FunctionType */: return visitor.visitFunctionType(element); + case 128 /* ArrayType */: return visitor.visitArrayType(element); + case 129 /* ConstructorType */: return visitor.visitConstructorType(element); + case 130 /* GenericType */: return visitor.visitGenericType(element); + case 131 /* TypeQuery */: return visitor.visitTypeQuery(element); + case 132 /* TupleType */: return visitor.visitTupleType(element); + case 133 /* UnionType */: return visitor.visitUnionType(element); + case 134 /* ParenthesizedType */: return visitor.visitParenthesizedType(element); + case 135 /* InterfaceDeclaration */: return visitor.visitInterfaceDeclaration(element); + case 136 /* FunctionDeclaration */: return visitor.visitFunctionDeclaration(element); + case 137 /* ModuleDeclaration */: return visitor.visitModuleDeclaration(element); + case 138 /* ClassDeclaration */: return visitor.visitClassDeclaration(element); + case 139 /* EnumDeclaration */: return visitor.visitEnumDeclaration(element); + case 140 /* ImportDeclaration */: return visitor.visitImportDeclaration(element); + case 141 /* ExportAssignment */: return visitor.visitExportAssignment(element); + case 142 /* MemberFunctionDeclaration */: return visitor.visitMemberFunctionDeclaration(element); + case 143 /* MemberVariableDeclaration */: return visitor.visitMemberVariableDeclaration(element); + case 144 /* ConstructorDeclaration */: return visitor.visitConstructorDeclaration(element); + case 145 /* IndexMemberDeclaration */: return visitor.visitIndexMemberDeclaration(element); + case 146 /* GetAccessor */: return visitor.visitGetAccessor(element); + case 147 /* SetAccessor */: return visitor.visitSetAccessor(element); + case 148 /* PropertySignature */: return visitor.visitPropertySignature(element); + case 149 /* CallSignature */: return visitor.visitCallSignature(element); + case 150 /* ConstructSignature */: return visitor.visitConstructSignature(element); + case 151 /* IndexSignature */: return visitor.visitIndexSignature(element); + case 152 /* MethodSignature */: return visitor.visitMethodSignature(element); + case 153 /* Block */: return visitor.visitBlock(element); + case 154 /* IfStatement */: return visitor.visitIfStatement(element); + case 155 /* VariableStatement */: return visitor.visitVariableStatement(element); + case 156 /* ExpressionStatement */: return visitor.visitExpressionStatement(element); + case 157 /* ReturnStatement */: return visitor.visitReturnStatement(element); + case 158 /* SwitchStatement */: return visitor.visitSwitchStatement(element); + case 159 /* BreakStatement */: return visitor.visitBreakStatement(element); + case 160 /* ContinueStatement */: return visitor.visitContinueStatement(element); + case 161 /* ForStatement */: return visitor.visitForStatement(element); + case 162 /* ForInStatement */: return visitor.visitForInStatement(element); + case 163 /* EmptyStatement */: return visitor.visitEmptyStatement(element); + case 164 /* ThrowStatement */: return visitor.visitThrowStatement(element); + case 165 /* WhileStatement */: return visitor.visitWhileStatement(element); + case 166 /* TryStatement */: return visitor.visitTryStatement(element); + case 167 /* LabeledStatement */: return visitor.visitLabeledStatement(element); + case 168 /* DoStatement */: return visitor.visitDoStatement(element); + case 169 /* DebuggerStatement */: return visitor.visitDebuggerStatement(element); + case 170 /* WithStatement */: return visitor.visitWithStatement(element); + case 171 /* PrefixUnaryExpression */: return visitor.visitPrefixUnaryExpression(element); + case 172 /* DeleteExpression */: return visitor.visitDeleteExpression(element); + case 173 /* TypeOfExpression */: return visitor.visitTypeOfExpression(element); + case 174 /* VoidExpression */: return visitor.visitVoidExpression(element); + case 175 /* ConditionalExpression */: return visitor.visitConditionalExpression(element); + case 176 /* BinaryExpression */: return visitor.visitBinaryExpression(element); + case 177 /* PostfixUnaryExpression */: return visitor.visitPostfixUnaryExpression(element); + case 178 /* MemberAccessExpression */: return visitor.visitMemberAccessExpression(element); + case 179 /* InvocationExpression */: return visitor.visitInvocationExpression(element); + case 180 /* ArrayLiteralExpression */: return visitor.visitArrayLiteralExpression(element); + case 181 /* ObjectLiteralExpression */: return visitor.visitObjectLiteralExpression(element); + case 182 /* ObjectCreationExpression */: return visitor.visitObjectCreationExpression(element); + case 183 /* ParenthesizedExpression */: return visitor.visitParenthesizedExpression(element); + case 184 /* ParenthesizedArrowFunctionExpression */: return visitor.visitParenthesizedArrowFunctionExpression(element); + case 185 /* SimpleArrowFunctionExpression */: return visitor.visitSimpleArrowFunctionExpression(element); + case 186 /* CastExpression */: return visitor.visitCastExpression(element); + case 187 /* ElementAccessExpression */: return visitor.visitElementAccessExpression(element); + case 188 /* FunctionExpression */: return visitor.visitFunctionExpression(element); + case 189 /* OmittedExpression */: return visitor.visitOmittedExpression(element); + case 190 /* TemplateExpression */: return visitor.visitTemplateExpression(element); + case 191 /* TemplateAccessExpression */: return visitor.visitTemplateAccessExpression(element); + case 192 /* YieldExpression */: return visitor.visitYieldExpression(element); + case 193 /* AwaitExpression */: return visitor.visitAwaitExpression(element); + case 194 /* VariableDeclaration */: return visitor.visitVariableDeclaration(element); + case 195 /* VariableDeclarator */: return visitor.visitVariableDeclarator(element); + case 196 /* ArgumentList */: return visitor.visitArgumentList(element); + case 197 /* ParameterList */: return visitor.visitParameterList(element); + case 198 /* TypeArgumentList */: return visitor.visitTypeArgumentList(element); + case 199 /* TypeParameterList */: return visitor.visitTypeParameterList(element); + case 200 /* HeritageClause */: return visitor.visitHeritageClause(element); + case 201 /* EqualsValueClause */: return visitor.visitEqualsValueClause(element); + case 202 /* CaseSwitchClause */: return visitor.visitCaseSwitchClause(element); + case 203 /* DefaultSwitchClause */: return visitor.visitDefaultSwitchClause(element); + case 204 /* ElseClause */: return visitor.visitElseClause(element); + case 205 /* CatchClause */: return visitor.visitCatchClause(element); + case 206 /* FinallyClause */: return visitor.visitFinallyClause(element); + case 207 /* TemplateClause */: return visitor.visitTemplateClause(element); + case 208 /* TypeParameter */: return visitor.visitTypeParameter(element); + case 209 /* Constraint */: return visitor.visitConstraint(element); + case 210 /* Parameter */: return visitor.visitParameter(element); + case 211 /* EnumElement */: return visitor.visitEnumElement(element); + case 212 /* TypeAnnotation */: return visitor.visitTypeAnnotation(element); + case 213 /* ExpressionBody */: return visitor.visitExpressionBody(element); + case 214 /* ComputedPropertyName */: return visitor.visitComputedPropertyName(element); + case 215 /* PropertyAssignment */: return visitor.visitPropertyAssignment(element); + case 216 /* ExternalModuleReference */: return visitor.visitExternalModuleReference(element); + case 217 /* ModuleNameModuleReference */: return visitor.visitModuleNameModuleReference(element); + default: return visitor.visitToken(element); + } + } + TypeScript.visitNodeOrToken = visitNodeOrToken; +})(TypeScript || (TypeScript = {})); +var TypeScript; +(function (TypeScript) { + var SyntaxWalker = (function () { + function SyntaxWalker() { + } + SyntaxWalker.prototype.visitToken = function (token) { + }; + SyntaxWalker.prototype.visitOptionalToken = function (token) { + if (token === undefined) { + return; + } + this.visitToken(token); + }; + SyntaxWalker.prototype.visitList = function (list) { + for (var i = 0, n = list.length; i < n; i++) { + TypeScript.visitNodeOrToken(this, list[i]); + } + }; + SyntaxWalker.prototype.visitSourceUnit = function (node) { + this.visitList(node.moduleElements); + this.visitToken(node.endOfFileToken); + }; + SyntaxWalker.prototype.visitQualifiedName = function (node) { + TypeScript.visitNodeOrToken(this, node.left); + this.visitToken(node.dotToken); + this.visitToken(node.right); + }; + SyntaxWalker.prototype.visitObjectType = function (node) { + this.visitToken(node.openBraceToken); + this.visitList(node.typeMembers); + this.visitToken(node.closeBraceToken); + }; + SyntaxWalker.prototype.visitFunctionType = function (node) { + TypeScript.visitNodeOrToken(this, node.typeParameterList); + TypeScript.visitNodeOrToken(this, node.parameterList); + this.visitToken(node.equalsGreaterThanToken); + TypeScript.visitNodeOrToken(this, node.type); + }; + SyntaxWalker.prototype.visitArrayType = function (node) { + TypeScript.visitNodeOrToken(this, node.type); + this.visitToken(node.openBracketToken); + this.visitToken(node.closeBracketToken); + }; + SyntaxWalker.prototype.visitConstructorType = function (node) { + this.visitToken(node.newKeyword); + TypeScript.visitNodeOrToken(this, node.typeParameterList); + TypeScript.visitNodeOrToken(this, node.parameterList); + this.visitToken(node.equalsGreaterThanToken); + TypeScript.visitNodeOrToken(this, node.type); + }; + SyntaxWalker.prototype.visitGenericType = function (node) { + TypeScript.visitNodeOrToken(this, node.name); + TypeScript.visitNodeOrToken(this, node.typeArgumentList); + }; + SyntaxWalker.prototype.visitTypeQuery = function (node) { + this.visitToken(node.typeOfKeyword); + TypeScript.visitNodeOrToken(this, node.name); + }; + SyntaxWalker.prototype.visitTupleType = function (node) { + this.visitToken(node.openBracketToken); + this.visitList(node.types); + this.visitToken(node.closeBracketToken); + }; + SyntaxWalker.prototype.visitUnionType = function (node) { + TypeScript.visitNodeOrToken(this, node.left); + this.visitToken(node.barToken); + TypeScript.visitNodeOrToken(this, node.right); + }; + SyntaxWalker.prototype.visitParenthesizedType = function (node) { + this.visitToken(node.openParenToken); + TypeScript.visitNodeOrToken(this, node.type); + this.visitToken(node.closeParenToken); + }; + SyntaxWalker.prototype.visitInterfaceDeclaration = function (node) { + this.visitList(node.modifiers); + this.visitToken(node.interfaceKeyword); + this.visitToken(node.identifier); + TypeScript.visitNodeOrToken(this, node.typeParameterList); + this.visitList(node.heritageClauses); + TypeScript.visitNodeOrToken(this, node.body); + }; + SyntaxWalker.prototype.visitFunctionDeclaration = function (node) { + this.visitList(node.modifiers); + this.visitToken(node.functionKeyword); + this.visitOptionalToken(node.asterixToken); + this.visitToken(node.identifier); + TypeScript.visitNodeOrToken(this, node.callSignature); + TypeScript.visitNodeOrToken(this, node.body); + }; + SyntaxWalker.prototype.visitModuleDeclaration = function (node) { + this.visitList(node.modifiers); + this.visitToken(node.moduleKeyword); + TypeScript.visitNodeOrToken(this, node.name); + this.visitToken(node.openBraceToken); + this.visitList(node.moduleElements); + this.visitToken(node.closeBraceToken); + }; + SyntaxWalker.prototype.visitClassDeclaration = function (node) { + this.visitList(node.modifiers); + this.visitToken(node.classKeyword); + this.visitToken(node.identifier); + TypeScript.visitNodeOrToken(this, node.typeParameterList); + this.visitList(node.heritageClauses); + this.visitToken(node.openBraceToken); + this.visitList(node.classElements); + this.visitToken(node.closeBraceToken); + }; + SyntaxWalker.prototype.visitEnumDeclaration = function (node) { + this.visitList(node.modifiers); + this.visitToken(node.enumKeyword); + this.visitToken(node.identifier); + this.visitToken(node.openBraceToken); + this.visitList(node.enumElements); + this.visitToken(node.closeBraceToken); + }; + SyntaxWalker.prototype.visitImportDeclaration = function (node) { + this.visitList(node.modifiers); + this.visitToken(node.importKeyword); + this.visitToken(node.identifier); + this.visitToken(node.equalsToken); + TypeScript.visitNodeOrToken(this, node.moduleReference); + this.visitOptionalToken(node.semicolonToken); + }; + SyntaxWalker.prototype.visitExportAssignment = function (node) { + this.visitList(node.modifiers); + this.visitToken(node.exportKeyword); + this.visitToken(node.equalsToken); + this.visitToken(node.identifier); + this.visitOptionalToken(node.semicolonToken); + }; + SyntaxWalker.prototype.visitMemberFunctionDeclaration = function (node) { + this.visitList(node.modifiers); + this.visitOptionalToken(node.asterixToken); + TypeScript.visitNodeOrToken(this, node.propertyName); + TypeScript.visitNodeOrToken(this, node.callSignature); + TypeScript.visitNodeOrToken(this, node.body); + }; + SyntaxWalker.prototype.visitMemberVariableDeclaration = function (node) { + this.visitList(node.modifiers); + TypeScript.visitNodeOrToken(this, node.variableDeclarator); + this.visitOptionalToken(node.semicolonToken); + }; + SyntaxWalker.prototype.visitConstructorDeclaration = function (node) { + this.visitList(node.modifiers); + this.visitToken(node.constructorKeyword); + TypeScript.visitNodeOrToken(this, node.callSignature); + TypeScript.visitNodeOrToken(this, node.body); + }; + SyntaxWalker.prototype.visitIndexMemberDeclaration = function (node) { + this.visitList(node.modifiers); + TypeScript.visitNodeOrToken(this, node.indexSignature); + this.visitOptionalToken(node.semicolonToken); + }; + SyntaxWalker.prototype.visitGetAccessor = function (node) { + this.visitList(node.modifiers); + this.visitToken(node.getKeyword); + TypeScript.visitNodeOrToken(this, node.propertyName); + TypeScript.visitNodeOrToken(this, node.callSignature); + TypeScript.visitNodeOrToken(this, node.body); + }; + SyntaxWalker.prototype.visitSetAccessor = function (node) { + this.visitList(node.modifiers); + this.visitToken(node.setKeyword); + TypeScript.visitNodeOrToken(this, node.propertyName); + TypeScript.visitNodeOrToken(this, node.callSignature); + TypeScript.visitNodeOrToken(this, node.body); + }; + SyntaxWalker.prototype.visitPropertySignature = function (node) { + TypeScript.visitNodeOrToken(this, node.propertyName); + this.visitOptionalToken(node.questionToken); + TypeScript.visitNodeOrToken(this, node.typeAnnotation); + }; + SyntaxWalker.prototype.visitCallSignature = function (node) { + TypeScript.visitNodeOrToken(this, node.typeParameterList); + TypeScript.visitNodeOrToken(this, node.parameterList); + TypeScript.visitNodeOrToken(this, node.typeAnnotation); + }; + SyntaxWalker.prototype.visitConstructSignature = function (node) { + this.visitToken(node.newKeyword); + TypeScript.visitNodeOrToken(this, node.callSignature); + }; + SyntaxWalker.prototype.visitIndexSignature = function (node) { + this.visitToken(node.openBracketToken); + this.visitList(node.parameters); + this.visitToken(node.closeBracketToken); + TypeScript.visitNodeOrToken(this, node.typeAnnotation); + }; + SyntaxWalker.prototype.visitMethodSignature = function (node) { + TypeScript.visitNodeOrToken(this, node.propertyName); + this.visitOptionalToken(node.questionToken); + TypeScript.visitNodeOrToken(this, node.callSignature); + }; + SyntaxWalker.prototype.visitBlock = function (node) { + this.visitOptionalToken(node.equalsGreaterThanToken); + this.visitToken(node.openBraceToken); + this.visitList(node.statements); + this.visitToken(node.closeBraceToken); + }; + SyntaxWalker.prototype.visitIfStatement = function (node) { + this.visitToken(node.ifKeyword); + this.visitToken(node.openParenToken); + TypeScript.visitNodeOrToken(this, node.condition); + this.visitToken(node.closeParenToken); + TypeScript.visitNodeOrToken(this, node.statement); + TypeScript.visitNodeOrToken(this, node.elseClause); + }; + SyntaxWalker.prototype.visitVariableStatement = function (node) { + this.visitList(node.modifiers); + TypeScript.visitNodeOrToken(this, node.variableDeclaration); + this.visitOptionalToken(node.semicolonToken); + }; + SyntaxWalker.prototype.visitExpressionStatement = function (node) { + TypeScript.visitNodeOrToken(this, node.expression); + this.visitOptionalToken(node.semicolonToken); + }; + SyntaxWalker.prototype.visitReturnStatement = function (node) { + this.visitToken(node.returnKeyword); + TypeScript.visitNodeOrToken(this, node.expression); + this.visitOptionalToken(node.semicolonToken); + }; + SyntaxWalker.prototype.visitSwitchStatement = function (node) { + this.visitToken(node.switchKeyword); + this.visitToken(node.openParenToken); + TypeScript.visitNodeOrToken(this, node.expression); + this.visitToken(node.closeParenToken); + this.visitToken(node.openBraceToken); + this.visitList(node.switchClauses); + this.visitToken(node.closeBraceToken); + }; + SyntaxWalker.prototype.visitBreakStatement = function (node) { + this.visitToken(node.breakKeyword); + this.visitOptionalToken(node.identifier); + this.visitOptionalToken(node.semicolonToken); + }; + SyntaxWalker.prototype.visitContinueStatement = function (node) { + this.visitToken(node.continueKeyword); + this.visitOptionalToken(node.identifier); + this.visitOptionalToken(node.semicolonToken); + }; + SyntaxWalker.prototype.visitForStatement = function (node) { + this.visitToken(node.forKeyword); + this.visitToken(node.openParenToken); + TypeScript.visitNodeOrToken(this, node.initializer); + this.visitToken(node.firstSemicolonToken); + TypeScript.visitNodeOrToken(this, node.condition); + this.visitToken(node.secondSemicolonToken); + TypeScript.visitNodeOrToken(this, node.incrementor); + this.visitToken(node.closeParenToken); + TypeScript.visitNodeOrToken(this, node.statement); + }; + SyntaxWalker.prototype.visitForInStatement = function (node) { + this.visitToken(node.forKeyword); + this.visitToken(node.openParenToken); + TypeScript.visitNodeOrToken(this, node.left); + this.visitToken(node.inKeyword); + TypeScript.visitNodeOrToken(this, node.right); + this.visitToken(node.closeParenToken); + TypeScript.visitNodeOrToken(this, node.statement); + }; + SyntaxWalker.prototype.visitEmptyStatement = function (node) { + this.visitToken(node.semicolonToken); + }; + SyntaxWalker.prototype.visitThrowStatement = function (node) { + this.visitToken(node.throwKeyword); + TypeScript.visitNodeOrToken(this, node.expression); + this.visitOptionalToken(node.semicolonToken); + }; + SyntaxWalker.prototype.visitWhileStatement = function (node) { + this.visitToken(node.whileKeyword); + this.visitToken(node.openParenToken); + TypeScript.visitNodeOrToken(this, node.condition); + this.visitToken(node.closeParenToken); + TypeScript.visitNodeOrToken(this, node.statement); + }; + SyntaxWalker.prototype.visitTryStatement = function (node) { + this.visitToken(node.tryKeyword); + TypeScript.visitNodeOrToken(this, node.block); + TypeScript.visitNodeOrToken(this, node.catchClause); + TypeScript.visitNodeOrToken(this, node.finallyClause); + }; + SyntaxWalker.prototype.visitLabeledStatement = function (node) { + this.visitToken(node.identifier); + this.visitToken(node.colonToken); + TypeScript.visitNodeOrToken(this, node.statement); + }; + SyntaxWalker.prototype.visitDoStatement = function (node) { + this.visitToken(node.doKeyword); + TypeScript.visitNodeOrToken(this, node.statement); + this.visitToken(node.whileKeyword); + this.visitToken(node.openParenToken); + TypeScript.visitNodeOrToken(this, node.condition); + this.visitToken(node.closeParenToken); + this.visitOptionalToken(node.semicolonToken); + }; + SyntaxWalker.prototype.visitDebuggerStatement = function (node) { + this.visitToken(node.debuggerKeyword); + this.visitOptionalToken(node.semicolonToken); + }; + SyntaxWalker.prototype.visitWithStatement = function (node) { + this.visitToken(node.withKeyword); + this.visitToken(node.openParenToken); + TypeScript.visitNodeOrToken(this, node.condition); + this.visitToken(node.closeParenToken); + TypeScript.visitNodeOrToken(this, node.statement); + }; + SyntaxWalker.prototype.visitPrefixUnaryExpression = function (node) { + this.visitToken(node.operatorToken); + TypeScript.visitNodeOrToken(this, node.operand); + }; + SyntaxWalker.prototype.visitDeleteExpression = function (node) { + this.visitToken(node.deleteKeyword); + TypeScript.visitNodeOrToken(this, node.expression); + }; + SyntaxWalker.prototype.visitTypeOfExpression = function (node) { + this.visitToken(node.typeOfKeyword); + TypeScript.visitNodeOrToken(this, node.expression); + }; + SyntaxWalker.prototype.visitVoidExpression = function (node) { + this.visitToken(node.voidKeyword); + TypeScript.visitNodeOrToken(this, node.expression); + }; + SyntaxWalker.prototype.visitConditionalExpression = function (node) { + TypeScript.visitNodeOrToken(this, node.condition); + this.visitToken(node.questionToken); + TypeScript.visitNodeOrToken(this, node.whenTrue); + this.visitToken(node.colonToken); + TypeScript.visitNodeOrToken(this, node.whenFalse); + }; + SyntaxWalker.prototype.visitBinaryExpression = function (node) { + TypeScript.visitNodeOrToken(this, node.left); + this.visitToken(node.operatorToken); + TypeScript.visitNodeOrToken(this, node.right); + }; + SyntaxWalker.prototype.visitPostfixUnaryExpression = function (node) { + TypeScript.visitNodeOrToken(this, node.operand); + this.visitToken(node.operatorToken); + }; + SyntaxWalker.prototype.visitMemberAccessExpression = function (node) { + TypeScript.visitNodeOrToken(this, node.expression); + this.visitToken(node.dotToken); + this.visitToken(node.name); + }; + SyntaxWalker.prototype.visitInvocationExpression = function (node) { + TypeScript.visitNodeOrToken(this, node.expression); + TypeScript.visitNodeOrToken(this, node.argumentList); + }; + SyntaxWalker.prototype.visitArrayLiteralExpression = function (node) { + this.visitToken(node.openBracketToken); + this.visitList(node.expressions); + this.visitToken(node.closeBracketToken); + }; + SyntaxWalker.prototype.visitObjectLiteralExpression = function (node) { + this.visitToken(node.openBraceToken); + this.visitList(node.propertyAssignments); + this.visitToken(node.closeBraceToken); + }; + SyntaxWalker.prototype.visitObjectCreationExpression = function (node) { + this.visitToken(node.newKeyword); + TypeScript.visitNodeOrToken(this, node.expression); + TypeScript.visitNodeOrToken(this, node.argumentList); + }; + SyntaxWalker.prototype.visitParenthesizedExpression = function (node) { + this.visitToken(node.openParenToken); + TypeScript.visitNodeOrToken(this, node.expression); + this.visitToken(node.closeParenToken); + }; + SyntaxWalker.prototype.visitParenthesizedArrowFunctionExpression = function (node) { + this.visitOptionalToken(node.asyncKeyword); + TypeScript.visitNodeOrToken(this, node.callSignature); + this.visitToken(node.equalsGreaterThanToken); + TypeScript.visitNodeOrToken(this, node.body); + }; + SyntaxWalker.prototype.visitSimpleArrowFunctionExpression = function (node) { + this.visitOptionalToken(node.asyncKeyword); + TypeScript.visitNodeOrToken(this, node.parameter); + this.visitToken(node.equalsGreaterThanToken); + TypeScript.visitNodeOrToken(this, node.body); + }; + SyntaxWalker.prototype.visitCastExpression = function (node) { + this.visitToken(node.lessThanToken); + TypeScript.visitNodeOrToken(this, node.type); + this.visitToken(node.greaterThanToken); + TypeScript.visitNodeOrToken(this, node.expression); + }; + SyntaxWalker.prototype.visitElementAccessExpression = function (node) { + TypeScript.visitNodeOrToken(this, node.expression); + this.visitToken(node.openBracketToken); + TypeScript.visitNodeOrToken(this, node.argumentExpression); + this.visitToken(node.closeBracketToken); + }; + SyntaxWalker.prototype.visitFunctionExpression = function (node) { + this.visitOptionalToken(node.asyncKeyword); + this.visitToken(node.functionKeyword); + this.visitOptionalToken(node.asterixToken); + this.visitOptionalToken(node.identifier); + TypeScript.visitNodeOrToken(this, node.callSignature); + TypeScript.visitNodeOrToken(this, node.body); + }; + SyntaxWalker.prototype.visitOmittedExpression = function (node) { + }; + SyntaxWalker.prototype.visitTemplateExpression = function (node) { + this.visitToken(node.templateStartToken); + this.visitList(node.templateClauses); + }; + SyntaxWalker.prototype.visitTemplateAccessExpression = function (node) { + TypeScript.visitNodeOrToken(this, node.expression); + TypeScript.visitNodeOrToken(this, node.templateExpression); + }; + SyntaxWalker.prototype.visitYieldExpression = function (node) { + this.visitToken(node.yieldKeyword); + this.visitOptionalToken(node.asterixToken); + TypeScript.visitNodeOrToken(this, node.expression); + }; + SyntaxWalker.prototype.visitAwaitExpression = function (node) { + this.visitToken(node.awaitKeyword); + TypeScript.visitNodeOrToken(this, node.expression); + }; + SyntaxWalker.prototype.visitVariableDeclaration = function (node) { + this.visitToken(node.varKeyword); + this.visitList(node.variableDeclarators); + }; + SyntaxWalker.prototype.visitVariableDeclarator = function (node) { + TypeScript.visitNodeOrToken(this, node.propertyName); + TypeScript.visitNodeOrToken(this, node.typeAnnotation); + TypeScript.visitNodeOrToken(this, node.equalsValueClause); + }; + SyntaxWalker.prototype.visitArgumentList = function (node) { + TypeScript.visitNodeOrToken(this, node.typeArgumentList); + this.visitToken(node.openParenToken); + this.visitList(node.arguments); + this.visitToken(node.closeParenToken); + }; + SyntaxWalker.prototype.visitParameterList = function (node) { + this.visitToken(node.openParenToken); + this.visitList(node.parameters); + this.visitToken(node.closeParenToken); + }; + SyntaxWalker.prototype.visitTypeArgumentList = function (node) { + this.visitToken(node.lessThanToken); + this.visitList(node.typeArguments); + this.visitToken(node.greaterThanToken); + }; + SyntaxWalker.prototype.visitTypeParameterList = function (node) { + this.visitToken(node.lessThanToken); + this.visitList(node.typeParameters); + this.visitToken(node.greaterThanToken); + }; + SyntaxWalker.prototype.visitHeritageClause = function (node) { + this.visitToken(node.extendsOrImplementsKeyword); + this.visitList(node.typeNames); + }; + SyntaxWalker.prototype.visitEqualsValueClause = function (node) { + this.visitToken(node.equalsToken); + TypeScript.visitNodeOrToken(this, node.value); + }; + SyntaxWalker.prototype.visitCaseSwitchClause = function (node) { + this.visitToken(node.caseKeyword); + TypeScript.visitNodeOrToken(this, node.expression); + this.visitToken(node.colonToken); + this.visitList(node.statements); + }; + SyntaxWalker.prototype.visitDefaultSwitchClause = function (node) { + this.visitToken(node.defaultKeyword); + this.visitToken(node.colonToken); + this.visitList(node.statements); + }; + SyntaxWalker.prototype.visitElseClause = function (node) { + this.visitToken(node.elseKeyword); + TypeScript.visitNodeOrToken(this, node.statement); + }; + SyntaxWalker.prototype.visitCatchClause = function (node) { + this.visitToken(node.catchKeyword); + this.visitToken(node.openParenToken); + this.visitToken(node.identifier); + TypeScript.visitNodeOrToken(this, node.typeAnnotation); + this.visitToken(node.closeParenToken); + TypeScript.visitNodeOrToken(this, node.block); + }; + SyntaxWalker.prototype.visitFinallyClause = function (node) { + this.visitToken(node.finallyKeyword); + TypeScript.visitNodeOrToken(this, node.block); + }; + SyntaxWalker.prototype.visitTemplateClause = function (node) { + TypeScript.visitNodeOrToken(this, node.expression); + this.visitToken(node.templateMiddleOrEndToken); + }; + SyntaxWalker.prototype.visitTypeParameter = function (node) { + this.visitToken(node.identifier); + TypeScript.visitNodeOrToken(this, node.constraint); + }; + SyntaxWalker.prototype.visitConstraint = function (node) { + this.visitToken(node.extendsKeyword); + TypeScript.visitNodeOrToken(this, node.typeOrExpression); + }; + SyntaxWalker.prototype.visitParameter = function (node) { + this.visitOptionalToken(node.dotDotDotToken); + this.visitList(node.modifiers); + this.visitToken(node.identifier); + this.visitOptionalToken(node.questionToken); + TypeScript.visitNodeOrToken(this, node.typeAnnotation); + TypeScript.visitNodeOrToken(this, node.equalsValueClause); + }; + SyntaxWalker.prototype.visitEnumElement = function (node) { + TypeScript.visitNodeOrToken(this, node.propertyName); + TypeScript.visitNodeOrToken(this, node.equalsValueClause); + }; + SyntaxWalker.prototype.visitTypeAnnotation = function (node) { + this.visitToken(node.colonToken); + TypeScript.visitNodeOrToken(this, node.type); + }; + SyntaxWalker.prototype.visitExpressionBody = function (node) { + this.visitToken(node.equalsGreaterThanToken); + TypeScript.visitNodeOrToken(this, node.expression); + }; + SyntaxWalker.prototype.visitComputedPropertyName = function (node) { + this.visitToken(node.openBracketToken); + TypeScript.visitNodeOrToken(this, node.expression); + this.visitToken(node.closeBracketToken); + }; + SyntaxWalker.prototype.visitPropertyAssignment = function (node) { + TypeScript.visitNodeOrToken(this, node.propertyName); + this.visitToken(node.colonToken); + TypeScript.visitNodeOrToken(this, node.expression); + }; + SyntaxWalker.prototype.visitExternalModuleReference = function (node) { + this.visitToken(node.requireKeyword); + this.visitToken(node.openParenToken); + this.visitToken(node.stringLiteral); + this.visitToken(node.closeParenToken); + }; + SyntaxWalker.prototype.visitModuleNameModuleReference = function (node) { + TypeScript.visitNodeOrToken(this, node.moduleName); + }; + return SyntaxWalker; + })(); + TypeScript.SyntaxWalker = SyntaxWalker; +})(TypeScript || (TypeScript = {})); +var TypeScript; +(function (TypeScript) { + var Parser; + (function (Parser) { + function createParseSyntaxTree() { + var fileName; + var source; + var languageVersion; + var listParsingState = 0; + var contextFlags = 0; + var diagnostics = []; + var _skippedTokens = undefined; + function setContextFlag(val, flag) { + if (val) { + contextFlags |= flag; + } + else { + contextFlags &= ~flag; + } + } + function setStrictModeContext(val) { + setContextFlag(val, 1 /* StrictMode */); + } + function setDisallowInContext(val) { + setContextFlag(val, 2 /* DisallowIn */); + } + function setYieldContext(val) { + setContextFlag(val, 4 /* Yield */); + } + function setGeneratorParameterContext(val) { + setContextFlag(val, 8 /* GeneratorParameter */); + } + function setAsyncContext(val) { + setContextFlag(val, 16 /* Async */); + } + function inStrictModeContext() { + return (contextFlags & 1 /* StrictMode */) !== 0; + } + function inDisallowInContext() { + return (contextFlags & 2 /* DisallowIn */) !== 0; + } + function inYieldContext() { + return (contextFlags & 4 /* Yield */) !== 0; + } + function inGeneratorParameterContext() { + return (contextFlags & 8 /* GeneratorParameter */) !== 0; + } + function inAsyncContext() { + return (contextFlags & 16 /* Async */) !== 0; + } + function allowInAnd(func) { + if (inDisallowInContext()) { + setDisallowInContext(false); + var result = func(); + setDisallowInContext(true); + return result; + } + return func(); + } + function disallowInAnd(func) { + if (inDisallowInContext()) { + return func(); + } + setDisallowInContext(true); + var result = func(); + setDisallowInContext(false); + return result; + } + function doInsideYieldContext(func) { + if (inYieldContext()) { + return func(); + } + setYieldContext(true); + var result = func(); + setYieldContext(false); + return result; + } + function doOutsideYieldContext(func) { + if (inYieldContext()) { + setYieldContext(false); + var result = func(); + setYieldContext(true); + return result; + } + return func(); + } + function doInsideAsyncContext(func) { + if (inAsyncContext()) { + return func(); + } + setAsyncContext(true); + var result = func(); + setAsyncContext(false); + return result; + } + function doOutsideAsyncContext(func) { + if (inAsyncContext()) { + setAsyncContext(false); + var result = func(); + setAsyncContext(true); + return result; + } + return func(); + } + function parseSyntaxTree(_source, isDeclaration) { + fileName = _source.fileName; + source = _source; + languageVersion = source.languageVersion; + var result = parseSyntaxTreeWorker(isDeclaration); + diagnostics = []; + contextFlags = 0; + fileName = undefined; + source.release(); + source = undefined; + _source = undefined; + return result; + } + function parseSyntaxTreeWorker(isDeclaration) { + var sourceUnit = parseSourceUnit(); + var allDiagnostics = source.tokenDiagnostics().concat(diagnostics); + allDiagnostics.sort(function (a, b) { return a.start() - b.start(); }); + return new TypeScript.SyntaxTree(sourceUnit, isDeclaration, allDiagnostics, fileName, source.text, languageVersion); + } + function getRewindPoint() { + var rewindPoint = source.getRewindPoint(); + rewindPoint.diagnosticsCount = diagnostics.length; + rewindPoint.skippedTokens = _skippedTokens ? _skippedTokens.slice(0) : undefined; + return rewindPoint; + } + function rewind(rewindPoint) { + source.rewind(rewindPoint); + diagnostics.length = rewindPoint.diagnosticsCount; + _skippedTokens = rewindPoint.skippedTokens; + } + function releaseRewindPoint(rewindPoint) { + source.releaseRewindPoint(rewindPoint); + } + function currentNode() { + if (!_skippedTokens) { + var node = source.currentNode(); + if (node && TypeScript.parserContextFlags(node) === contextFlags) { + return node; + } + } + return undefined; + } + function currentToken() { + return source.currentToken(); + } + function currentContextualToken() { + return source.currentContextualToken(); + } + function peekToken(n) { + return source.peekToken(n); + } + function skipToken(token) { + _skippedTokens = _skippedTokens || []; + _skippedTokens.push(token); + source.consumeNodeOrToken(token); + } + function consumeToken(token) { + source.consumeNodeOrToken(token); + if (_skippedTokens) { + token = addSkippedTokensBeforeToken(token, _skippedTokens); + _skippedTokens = undefined; + } + return token; + } + function addSkippedTokensBeforeToken(token, skippedTokens) { + var leadingTrivia = []; + for (var i = 0, n = skippedTokens.length; i < n; i++) { + var skippedToken = skippedTokens[i]; + addSkippedTokenToTriviaArray(leadingTrivia, skippedToken); + } + addTriviaTo(token.leadingTrivia(source.text), leadingTrivia); + var updatedToken = TypeScript.Syntax.withLeadingTrivia(token, TypeScript.Syntax.triviaList(leadingTrivia), source.text); + updatedToken.setFullStart(skippedTokens[0].fullStart()); + return updatedToken; + } + function addSkippedTokenToTriviaArray(array, skippedToken) { + addTriviaTo(skippedToken.leadingTrivia(source.text), array); + var trimmedToken = TypeScript.Syntax.withLeadingTrivia(skippedToken, TypeScript.Syntax.emptyTriviaList, source.text); + trimmedToken.setFullStart(TypeScript.start(skippedToken, source.text)); + array.push(TypeScript.Syntax.skippedTokenTrivia(trimmedToken, source.text)); + } + function addTriviaTo(list, array) { + for (var i = 0, n = list.count(); i < n; i++) { + array.push(list.syntaxTriviaAt(i)); + } + } + function consumeNode(node) { + TypeScript.Debug.assert(_skippedTokens === undefined); + source.consumeNodeOrToken(node); + } + function eatToken(kind) { + var token = currentToken(); + if (token.kind === kind) { + return consumeToken(token); + } + return createMissingToken(kind, token); + } + function tryEatToken(kind) { + var _currentToken = currentToken(); + if (_currentToken.kind === kind) { + return consumeToken(_currentToken); + } + return undefined; + } + function isIdentifier(token) { + var tokenKind = token.kind; + if (tokenKind === 9 /* IdentifierName */) { + return true; + } + if (tokenKind === 61 /* YieldKeyword */ && inYieldContext()) { + return false; + } + if (tokenKind === 64 /* AwaitKeyword */ && inAsyncContext()) { + return false; + } + if (tokenKind >= 53 /* FirstFutureReservedStrictKeyword */) { + if (tokenKind <= 61 /* LastFutureReservedStrictKeyword */) { + return !inStrictModeContext(); + } + return tokenKind <= 73 /* LastTypeScriptKeyword */; + } + return false; + } + function eatIdentifierNameToken() { + var token = currentToken(); + var tokenKind = token.kind; + if (tokenKind === 9 /* IdentifierName */) { + return consumeToken(token); + } + if (TypeScript.SyntaxFacts.isAnyKeyword(tokenKind)) { + return TypeScript.Syntax.convertKeywordToIdentifier(consumeToken(token)); + } + return createMissingToken(9 /* IdentifierName */, token); + } + function eatOptionalIdentifierToken() { + return isIdentifier(currentToken()) ? eatIdentifierToken() : undefined; + } + function eatIdentifierToken(diagnosticCode) { + var token = currentToken(); + if (isIdentifier(token)) { + if (token.kind === 9 /* IdentifierName */) { + return consumeToken(token); + } + return TypeScript.Syntax.convertKeywordToIdentifier(consumeToken(token)); + } + return createMissingToken(9 /* IdentifierName */, token, diagnosticCode); + } + function canEatAutomaticSemicolon(allowWithoutNewLine) { + var token = currentToken(); + var tokenKind = token.kind; + if (tokenKind === 8 /* EndOfFileToken */) { + return true; + } + if (tokenKind === 75 /* CloseBraceToken */) { + return true; + } + if (allowWithoutNewLine) { + return true; + } + if (token.hasLeadingNewLine()) { + return true; + } + return false; + } + function canEatExplicitOrAutomaticSemicolon(allowWithoutNewline) { + var token = currentToken(); + if (token.kind === 82 /* SemicolonToken */) { + return true; + } + return canEatAutomaticSemicolon(allowWithoutNewline); + } + function eatExplicitOrAutomaticSemicolon(allowWithoutNewline) { + var token = currentToken(); + if (token.kind === 82 /* SemicolonToken */) { + return consumeToken(token); + } + if (canEatAutomaticSemicolon(allowWithoutNewline)) { + return undefined; + } + return eatToken(82 /* SemicolonToken */); + } + function createEmptyToken(kind) { + var fullStart = _skippedTokens ? _skippedTokens[0].fullStart() : source.absolutePosition(); + return TypeScript.Syntax.emptyToken(kind, fullStart); + } + function createMissingToken(expectedKind, actual, diagnosticCode, args) { + var diagnostic = getExpectedTokenDiagnostic(expectedKind, actual, diagnosticCode, args); + addDiagnostic(diagnostic); + return createEmptyToken(expectedKind); + } + function getExpectedTokenDiagnostic(expectedKind, actual, diagnosticCode, args) { + var token = currentToken(); + if (!diagnosticCode) { + if (TypeScript.SyntaxFacts.isAnyKeyword(expectedKind) || TypeScript.SyntaxFacts.isAnyPunctuation(expectedKind)) { + diagnosticCode = TypeScript.DiagnosticCode._0_expected; + args = [TypeScript.SyntaxFacts.getText(expectedKind)]; + } + else { + if (actual && TypeScript.SyntaxFacts.isAnyKeyword(actual.kind)) { + diagnosticCode = TypeScript.DiagnosticCode.Identifier_expected_0_is_a_keyword; + args = [TypeScript.SyntaxFacts.getText(actual.kind)]; + } + else { + diagnosticCode = TypeScript.DiagnosticCode.Identifier_expected; + } + } + } + return new TypeScript.Diagnostic(fileName, source.text.lineMap(), TypeScript.start(token, source.text), TypeScript.width(token), diagnosticCode, args); + } + function getBinaryExpressionPrecedence(tokenKind) { + switch (tokenKind) { + case 108 /* BarBarToken */: return 2 /* LogicalOrExpressionPrecedence */; + case 107 /* AmpersandAmpersandToken */: return 3 /* LogicalAndExpressionPrecedence */; + case 103 /* BarToken */: return 4 /* BitwiseOrExpressionPrecedence */; + case 104 /* CaretToken */: return 5 /* BitwiseExclusiveOrExpressionPrecedence */; + case 102 /* AmpersandToken */: return 6 /* BitwiseAndExpressionPrecedence */; + case 88 /* EqualsEqualsToken */: + case 90 /* ExclamationEqualsToken */: + case 91 /* EqualsEqualsEqualsToken */: + case 92 /* ExclamationEqualsEqualsToken */: + return 7 /* EqualityExpressionPrecedence */; + case 84 /* LessThanToken */: + case 85 /* GreaterThanToken */: + case 86 /* LessThanEqualsToken */: + case 87 /* GreaterThanEqualsToken */: + case 32 /* InstanceOfKeyword */: + case 31 /* InKeyword */: + return 8 /* RelationalExpressionPrecedence */; + case 99 /* LessThanLessThanToken */: + case 100 /* GreaterThanGreaterThanToken */: + case 101 /* GreaterThanGreaterThanGreaterThanToken */: + return 9 /* ShiftExpressionPrecdence */; + case 93 /* PlusToken */: + case 94 /* MinusToken */: + return 10 /* AdditiveExpressionPrecedence */; + case 95 /* AsteriskToken */: + case 122 /* SlashToken */: + case 96 /* PercentToken */: + return 11 /* MultiplicativeExpressionPrecedence */; + } + throw TypeScript.Errors.invalidOperation(); + } + function parseSourceUnit() { + var savedIsInStrictMode = inStrictModeContext(); + var moduleElements = parseSyntaxList(0 /* SourceUnit_ModuleElements */, updateStrictModeState); + setStrictModeContext(savedIsInStrictMode); + var sourceUnit = new TypeScript.SourceUnitSyntax(contextFlags, moduleElements, consumeToken(currentToken())); + if (TypeScript.Debug.shouldAssert(2 /* Aggressive */)) { + TypeScript.Debug.assert(TypeScript.fullWidth(sourceUnit) === source.text.length()); + if (TypeScript.Debug.shouldAssert(3 /* VeryAggressive */)) { + TypeScript.Debug.assert(TypeScript.fullText(sourceUnit) === source.text.substr(0, source.text.length())); + } + } + return sourceUnit; + } + function isDirectivePrologueElement(node) { + return node.kind === 156 /* ExpressionStatement */ && node.expression.kind === 12 /* StringLiteral */; + } + function updateStrictModeState(items) { + if (!inStrictModeContext()) { + for (var i = 0, n = items.length; i < n; i++) { + if (!isDirectivePrologueElement(items[i])) { + return; + } + } + setStrictModeContext(TypeScript.SyntaxFacts.isUseStrictDirective(items[items.length - 1])); + } + } + function isModuleElement(inErrorRecovery) { + if (TypeScript.SyntaxUtilities.isModuleElement(currentNode())) { + return true; + } + var _modifierCount = modifierCount(); + return isInterfaceEnumClassModuleImportOrExport(_modifierCount) || isStatement(_modifierCount, inErrorRecovery); + } + function tryParseModuleElement(inErrorRecovery) { + var node = currentNode(); + if (TypeScript.SyntaxUtilities.isModuleElement(node)) { + consumeNode(node); + return node; + } + var _currentToken = currentToken(); + var _modifierCount = modifierCount(); + if (_modifierCount) { + switch (peekToken(_modifierCount).kind) { + case 51 /* ImportKeyword */: return parseImportDeclaration(); + case 69 /* ModuleKeyword */: return parseModuleDeclaration(); + case 54 /* InterfaceKeyword */: return parseInterfaceDeclaration(); + case 46 /* ClassKeyword */: return parseClassDeclaration(); + case 48 /* EnumKeyword */: return parseEnumDeclaration(); + case 49 /* ExportKeyword */: return parseExportAssignment(); + } + } + var nextToken = peekToken(1); + var currentTokenKind = _currentToken.kind; + switch (currentTokenKind) { + case 69 /* ModuleKeyword */: + if (isIdentifier(nextToken) || nextToken.kind === 12 /* StringLiteral */) { + return parseModuleDeclaration(); + } + break; + case 51 /* ImportKeyword */: + if (isIdentifier(nextToken)) { + return parseImportDeclaration(); + } + break; + case 46 /* ClassKeyword */: + if (isIdentifier(nextToken)) { + return parseClassDeclaration(); + } + break; + case 48 /* EnumKeyword */: + if (isIdentifier(nextToken)) { + return parseEnumDeclaration(); + } + break; + case 54 /* InterfaceKeyword */: + if (isIdentifier(nextToken)) { + return parseInterfaceDeclaration(); + } + break; + case 49 /* ExportKeyword */: + if (nextToken.kind === 111 /* EqualsToken */) { + return parseExportAssignment(); + } + break; + } + return tryParseStatementWorker(_currentToken, currentTokenKind, _modifierCount, inErrorRecovery); + } + function parseImportDeclaration() { + return new TypeScript.ImportDeclarationSyntax(contextFlags, parseModifiers(), eatToken(51 /* ImportKeyword */), eatIdentifierToken(), eatToken(111 /* EqualsToken */), parseModuleReference(), eatExplicitOrAutomaticSemicolon(false)); + } + function parseExportAssignment() { + return new TypeScript.ExportAssignmentSyntax(contextFlags, parseModifiers(), eatToken(49 /* ExportKeyword */), eatToken(111 /* EqualsToken */), eatIdentifierToken(), eatExplicitOrAutomaticSemicolon(false)); + } + function parseModuleReference() { + return isExternalModuleReference() ? parseExternalModuleReference() : parseModuleNameModuleReference(); + } + function isExternalModuleReference() { + return currentToken().kind === 70 /* RequireKeyword */ && peekToken(1).kind === 76 /* OpenParenToken */; + } + function parseExternalModuleReference() { + return new TypeScript.ExternalModuleReferenceSyntax(contextFlags, eatToken(70 /* RequireKeyword */), eatToken(76 /* OpenParenToken */), eatToken(12 /* StringLiteral */), eatToken(77 /* CloseParenToken */)); + } + function parseModuleNameModuleReference() { + return new TypeScript.ModuleNameModuleReferenceSyntax(contextFlags, parseName(false)); + } + function tryParseTypeArgumentList(inExpression) { + var _currentToken = currentToken(); + if (_currentToken.kind !== 84 /* LessThanToken */) { + return undefined; + } + if (!inExpression) { + return new TypeScript.TypeArgumentListSyntax(contextFlags, consumeToken(_currentToken), parseSeparatedSyntaxList(18 /* TypeArgumentList_Types */), eatToken(85 /* GreaterThanToken */)); + } + var rewindPoint = getRewindPoint(); + var lessThanToken = consumeToken(_currentToken); + var typeArguments = parseSeparatedSyntaxList(18 /* TypeArgumentList_Types */); + var greaterThanToken = eatToken(85 /* GreaterThanToken */); + if (greaterThanToken.fullWidth() === 0 || !canFollowTypeArgumentListInExpression(currentToken().kind)) { + rewind(rewindPoint); + releaseRewindPoint(rewindPoint); + return undefined; + } + else { + releaseRewindPoint(rewindPoint); + return new TypeScript.TypeArgumentListSyntax(contextFlags, lessThanToken, typeArguments, greaterThanToken); + } + } + function canFollowTypeArgumentListInExpression(kind) { + switch (kind) { + case 76 /* OpenParenToken */: + case 80 /* DotToken */: + case 77 /* CloseParenToken */: + case 79 /* CloseBracketToken */: + case 110 /* ColonToken */: + case 82 /* SemicolonToken */: + case 83 /* CommaToken */: + case 109 /* QuestionToken */: + case 88 /* EqualsEqualsToken */: + case 91 /* EqualsEqualsEqualsToken */: + case 90 /* ExclamationEqualsToken */: + case 92 /* ExclamationEqualsEqualsToken */: + case 107 /* AmpersandAmpersandToken */: + case 108 /* BarBarToken */: + case 104 /* CaretToken */: + case 102 /* AmpersandToken */: + case 103 /* BarToken */: + case 75 /* CloseBraceToken */: + case 8 /* EndOfFileToken */: + return true; + default: + return false; + } + } + function parseName(allowIdentifierName) { + return tryParseName(allowIdentifierName) || eatIdentifierToken(); + } + function eatRightSideOfName(allowIdentifierNames) { + var _currentToken = currentToken(); + if (TypeScript.SyntaxFacts.isAnyKeyword(_currentToken.kind) && _currentToken.hasLeadingNewLine()) { + var token1 = peekToken(1); + if (!TypeScript.existsNewLineBetweenTokens(_currentToken, token1, source.text) && TypeScript.SyntaxFacts.isIdentifierNameOrAnyKeyword(token1)) { + return createMissingToken(9 /* IdentifierName */, _currentToken); + } + } + return allowIdentifierNames ? eatIdentifierNameToken() : eatIdentifierToken(); + } + function tryParseName(allowIdentifierNames) { + var token0 = currentToken(); + var shouldContinue = isIdentifier(token0); + if (!shouldContinue) { + return undefined; + } + var current = eatIdentifierToken(); + while (shouldContinue && currentToken().kind === 80 /* DotToken */) { + var dotToken = consumeToken(currentToken()); + var identifierName = eatRightSideOfName(allowIdentifierNames); + current = new TypeScript.QualifiedNameSyntax(contextFlags, current, dotToken, identifierName); + shouldContinue = identifierName.fullWidth() > 0; + } + return current; + } + function parseEnumDeclaration() { + var openBraceToken; + return new TypeScript.EnumDeclarationSyntax(contextFlags, parseModifiers(), eatToken(48 /* EnumKeyword */), eatIdentifierToken(), openBraceToken = eatToken(74 /* OpenBraceToken */), openBraceToken.fullWidth() > 0 ? parseSeparatedSyntaxList(8 /* EnumDeclaration_EnumElements */) : [], eatToken(75 /* CloseBraceToken */)); + } + function isEnumElement(inErrorRecovery) { + var node = currentNode(); + if (node && node.kind === 211 /* EnumElement */) { + return true; + } + return isPropertyName(0, inErrorRecovery); + } + function tryParseEnumElementEqualsValueClause() { + return isEqualsValueClause(false) ? allowInAnd(parseEqualsValueClause) : undefined; + } + function tryParseEnumElement(inErrorRecovery) { + var node = currentNode(); + if (node && node.kind === 211 /* EnumElement */) { + consumeNode(node); + return node; + } + if (!isPropertyName(0, inErrorRecovery)) { + return undefined; + } + return new TypeScript.EnumElementSyntax(contextFlags, parsePropertyName(), tryParseEnumElementEqualsValueClause()); + } + function isModifierKind(kind) { + switch (kind) { + case 49 /* ExportKeyword */: + case 59 /* PublicKeyword */: + case 57 /* PrivateKeyword */: + case 58 /* ProtectedKeyword */: + case 60 /* StaticKeyword */: + case 67 /* DeclareKeyword */: + case 63 /* AsyncKeyword */: + return true; + } + return false; + } + function isModifier(token, peekIndex) { + if (isModifierKind(token.kind)) { + var nextToken = peekToken(peekIndex + 1); + if (token.kind === 63 /* AsyncKeyword */) { + if (nextToken.hasLeadingNewLine()) { + return false; + } + } + var nextTokenKind = nextToken.kind; + switch (nextTokenKind) { + case 9 /* IdentifierName */: + case 78 /* OpenBracketToken */: + case 11 /* NumericLiteral */: + case 12 /* StringLiteral */: + case 13 /* NoSubstitutionTemplateToken */: + case 95 /* AsteriskToken */: + return true; + default: + return TypeScript.SyntaxFacts.isAnyKeyword(nextTokenKind); + } + } + return false; + } + function isAtModifier() { + return isModifier(currentToken(), 0); + } + function modifierCount() { + var modifierCount = 0; + while (isModifier(peekToken(modifierCount), modifierCount)) { + modifierCount++; + } + return modifierCount; + } + function parseModifiers() { + var tokens = []; + while (true) { + var token = currentToken(); + if (isModifier(token, 0)) { + tokens.push(consumeToken(token)); + continue; + } + break; + } + return TypeScript.Syntax.list(tokens); + } + function parseHeritageClauses(isClassHeritageClause) { + if (isHeritageClause()) { + return isClassHeritageClause && inGeneratorParameterContext() ? doOutsideYieldContext(parseHeritageClausesWorker) : parseHeritageClausesWorker(); + } + return []; + } + function parseHeritageClausesWorker() { + return parseSyntaxList(10 /* ClassOrInterfaceDeclaration_HeritageClauses */); + } + function tryParseHeritageClauseTypeName() { + return isHeritageClauseTypeName() ? tryParseNameOrGenericType() : undefined; + } + function parseClassDeclaration() { + var openBraceToken; + return new TypeScript.ClassDeclarationSyntax(contextFlags, parseModifiers(), eatToken(46 /* ClassKeyword */), eatIdentifierToken(), tryParseTypeParameterList(false), parseHeritageClauses(true), openBraceToken = eatToken(74 /* OpenBraceToken */), openBraceToken.fullWidth() > 0 ? parseSyntaxList(1 /* ClassDeclaration_ClassElements */) : [], eatToken(75 /* CloseBraceToken */)); + } + function parseClassElement(openBraceToken) { + if (openBraceToken.fullWidth() > 0) { + return inGeneratorParameterContext() ? doOutsideYieldContext(parseClassElements) : parseClassElements(); + } + return []; + } + function parseClassElements() { + return parseSyntaxList(1 /* ClassDeclaration_ClassElements */); + } + function isAccessor(inErrorRecovery) { + var tokenKind = currentToken().kind; + if (tokenKind !== 68 /* GetKeyword */ && tokenKind !== 72 /* SetKeyword */) { + return false; + } + return isPropertyName(1, inErrorRecovery); + } + function parseAccessor(modifiers) { + var _currentToken = currentToken(); + var tokenKind = _currentToken.kind; + if (tokenKind === 68 /* GetKeyword */) { + return parseGetAccessor(modifiers, _currentToken); + } + else if (tokenKind === 72 /* SetKeyword */) { + return parseSetAccessor(modifiers, _currentToken); + } + else { + throw TypeScript.Errors.invalidOperation(); + } + } + function parseGetAccessor(modifiers, getKeyword) { + return new TypeScript.GetAccessorSyntax(contextFlags, modifiers, consumeToken(getKeyword), parsePropertyName(), parseCallSignature(false, false, false), parseFunctionBody(false, false)); + } + function parseSetAccessor(modifiers, setKeyword) { + return new TypeScript.SetAccessorSyntax(contextFlags, modifiers, consumeToken(setKeyword), parsePropertyName(), parseCallSignature(false, false, false), parseFunctionBody(false, false)); + } + function isClassElement(inErrorRecovery) { + if (TypeScript.SyntaxUtilities.isClassElement(currentNode())) { + return true; + } + return isAtModifier() || isConstructorDeclaration() || isAccessor(inErrorRecovery) || isIndexMemberDeclaration() || isMemberVariableOrFunctionDeclaration(inErrorRecovery); + } + function isMemberVariableOrFunctionDeclaration(inErrorRecovery) { + var token0 = currentToken(); + var token0Kind = token0.kind; + if (token0Kind === 95 /* AsteriskToken */) { + if (inErrorRecovery) { + return peekToken(1).kind === 9 /* IdentifierName */ && isCallSignature(2); + } + return true; + } + if (!isPropertyName(0, inErrorRecovery)) { + return false; + } + if (!TypeScript.SyntaxFacts.isAnyKeyword(token0Kind)) { + return true; + } + var nextToken = peekToken(1); + switch (nextToken.kind) { + case 82 /* SemicolonToken */: + case 111 /* EqualsToken */: + case 110 /* ColonToken */: + case 75 /* CloseBraceToken */: + case 76 /* OpenParenToken */: + case 84 /* LessThanToken */: + case 8 /* EndOfFileToken */: + return true; + default: + return nextToken.hasLeadingNewLine(); + } + } + function tryParseClassElement(inErrorRecovery) { + var node = currentNode(); + if (TypeScript.SyntaxUtilities.isClassElement(node)) { + consumeNode(node); + return node; + } + var modifiers = parseModifiers(); + if (isConstructorDeclaration()) { + return parseConstructorDeclaration(modifiers); + } + else if (isIndexMemberDeclaration()) { + return parseIndexMemberDeclaration(modifiers); + } + else if (isAccessor(inErrorRecovery)) { + return parseAccessor(modifiers); + } + else if (modifiers.length > 0 || isMemberVariableOrFunctionDeclaration(inErrorRecovery)) { + var asterixToken = tryEatToken(95 /* AsteriskToken */); + var propertyName = parsePropertyName(); + if (asterixToken || isCallSignature(0)) { + return parseMemberFunctionDeclaration(modifiers, asterixToken, propertyName); + } + else { + return parseMemberVariableDeclaration(modifiers, propertyName); + } + } + else { + return undefined; + } + } + function isConstructorDeclaration() { + return currentToken().kind === 66 /* ConstructorKeyword */; + } + function parseConstructorDeclaration(modifiers) { + return new TypeScript.ConstructorDeclarationSyntax(contextFlags, modifiers, eatToken(66 /* ConstructorKeyword */), parseCallSignature(false, false, false), parseFunctionBody(false, false)); + } + function parseMemberFunctionDeclaration(modifiers, asteriskToken, propertyName) { + var asyncContext = containsAsync(modifiers); + var isGenerator = asteriskToken !== undefined; + return new TypeScript.MemberFunctionDeclarationSyntax(contextFlags, modifiers, asteriskToken, propertyName, parseCallSignature(false, isGenerator, asyncContext), parseFunctionBody(isGenerator, asyncContext)); + } + function containsAsync(modifiers) { + for (var i = 0, n = modifiers.length; i < n; i++) { + if (modifiers[i].kind === 63 /* AsyncKeyword */) { + return true; + } + } + return false; + } + function parseMemberVariableDeclaration(modifiers, propertyName) { + return new TypeScript.MemberVariableDeclarationSyntax(contextFlags, modifiers, new TypeScript.VariableDeclaratorSyntax(contextFlags, propertyName, parseOptionalTypeAnnotation(false), isEqualsValueClause(false) ? allowInAnd(parseEqualsValueClause) : undefined), eatExplicitOrAutomaticSemicolon(false)); + } + function isIndexMemberDeclaration() { + return isIndexSignature(0); + } + function parseIndexMemberDeclaration(modifiers) { + return new TypeScript.IndexMemberDeclarationSyntax(contextFlags, modifiers, parseIndexSignature(), eatExplicitOrAutomaticSemicolon(false)); + } + function isFunctionDeclaration(modifierCount) { + return peekToken(modifierCount).kind === 29 /* FunctionKeyword */; + } + function parseFunctionDeclaration() { + return parseFunctionDeclarationWorker(parseModifiers(), eatToken(29 /* FunctionKeyword */), tryEatToken(95 /* AsteriskToken */)); + } + function parseFunctionDeclarationWorker(modifiers, functionKeyword, asteriskToken) { + var asyncContext = containsAsync(modifiers); + var isGenerator = asteriskToken !== undefined; + return new TypeScript.FunctionDeclarationSyntax(contextFlags, modifiers, functionKeyword, asteriskToken, eatIdentifierToken(), parseCallSignature(false, isGenerator, asyncContext), parseFunctionBody(isGenerator, asyncContext)); + } + function parseFunctionBody(isGenerator, asyncContext) { + return isBlockOrArrow() ? parseFunctionBlockOrExpressionBody(isGenerator, asyncContext) : eatExplicitOrAutomaticSemicolon(false); + } + function parseModuleName() { + return currentToken().kind === 12 /* StringLiteral */ ? eatToken(12 /* StringLiteral */) : parseName(false); + } + function parseModuleDeclaration() { + var openBraceToken; + return new TypeScript.ModuleDeclarationSyntax(contextFlags, parseModifiers(), eatToken(69 /* ModuleKeyword */), parseModuleName(), openBraceToken = eatToken(74 /* OpenBraceToken */), openBraceToken.fullWidth() > 0 ? parseSyntaxList(2 /* ModuleDeclaration_ModuleElements */) : [], eatToken(75 /* CloseBraceToken */)); + } + function parseInterfaceDeclaration() { + return new TypeScript.InterfaceDeclarationSyntax(contextFlags, parseModifiers(), eatToken(54 /* InterfaceKeyword */), eatIdentifierToken(), tryParseTypeParameterList(false), parseHeritageClauses(false), parseObjectType()); + } + function parseObjectType() { + var openBraceToken; + return new TypeScript.ObjectTypeSyntax(contextFlags, openBraceToken = eatToken(74 /* OpenBraceToken */), openBraceToken.fullWidth() > 0 ? parseSeparatedSyntaxList(9 /* ObjectType_TypeMembers */) : [], eatToken(75 /* CloseBraceToken */)); + } + function parseTupleType(currentToken) { + return new TypeScript.TupleTypeSyntax(contextFlags, consumeToken(currentToken), parseSeparatedSyntaxList(20 /* TupleType_Types */), eatToken(79 /* CloseBracketToken */)); + } + function isTypeMember(inErrorRecovery) { + if (TypeScript.SyntaxUtilities.isTypeMember(currentNode())) { + return true; + } + return isCallSignature(0) || isConstructSignature() || isIndexSignature(0) || isMethodOrPropertySignature(inErrorRecovery); + } + function isMethodOrPropertySignature(inErrorRecovery) { + var _currentToken = currentToken(); + if (isModifier(_currentToken, 0)) { + var token1 = peekToken(1); + if (!TypeScript.existsNewLineBetweenTokens(_currentToken, token1, source.text) && isPropertyNameToken(token1, inErrorRecovery)) { + return false; + } + } + return isPropertyName(0, inErrorRecovery); + } + function tryParseTypeMember(inErrorRecovery) { + var node = currentNode(); + if (TypeScript.SyntaxUtilities.isTypeMember(node)) { + consumeNode(node); + return node; + } + if (isCallSignature(0)) { + return parseCallSignature(false, false, false); + } + else if (isConstructSignature()) { + return parseConstructSignature(); + } + else if (isIndexSignature(0)) { + return parseIndexSignature(); + } + else if (isMethodOrPropertySignature(inErrorRecovery)) { + var propertyName = parsePropertyName(); + var questionToken = tryEatToken(109 /* QuestionToken */); + if (isCallSignature(0)) { + return parseMethodSignature(propertyName, questionToken); + } + else { + return parsePropertySignature(propertyName, questionToken); + } + } + else { + return undefined; + } + } + function parseConstructSignature() { + return new TypeScript.ConstructSignatureSyntax(contextFlags, eatToken(33 /* NewKeyword */), parseCallSignature(false, false, false)); + } + function parseIndexSignature() { + return new TypeScript.IndexSignatureSyntax(contextFlags, eatToken(78 /* OpenBracketToken */), parseSeparatedSyntaxList(17 /* IndexSignature_Parameters */), eatToken(79 /* CloseBracketToken */), parseOptionalTypeAnnotation(false)); + } + function parseMethodSignature(propertyName, questionToken) { + return new TypeScript.MethodSignatureSyntax(contextFlags, propertyName, questionToken, parseCallSignature(false, false, false)); + } + function parsePropertySignature(propertyName, questionToken) { + return new TypeScript.PropertySignatureSyntax(contextFlags, propertyName, questionToken, parseOptionalTypeAnnotation(false)); + } + function isCallSignature(peekIndex) { + var tokenKind = peekToken(peekIndex).kind; + return tokenKind === 76 /* OpenParenToken */ || tokenKind === 84 /* LessThanToken */; + } + function isConstructSignature() { + if (currentToken().kind !== 33 /* NewKeyword */) { + return false; + } + return isCallSignature(1); + } + function isIndexSignature(peekIndex) { + if (peekToken(peekIndex).kind === 78 /* OpenBracketToken */) { + var token1 = peekToken(peekIndex + 1); + if (token1.kind === 81 /* DotDotDotToken */ || token1.kind === 79 /* CloseBracketToken */) { + return true; + } + if (isIdentifier(token1)) { + var token2 = peekToken(peekIndex + 2); + if (token2.kind === 110 /* ColonToken */ || token2.kind === 83 /* CommaToken */) { + return true; + } + } + if (token1.kind === 59 /* PublicKeyword */ || token1.kind === 57 /* PrivateKeyword */) { + var token2 = peekToken(peekIndex + 2); + return isIdentifier(token2); + } + } + return false; + } + function isHeritageClause() { + var tokenKind = currentToken().kind; + return tokenKind === 50 /* ExtendsKeyword */ || tokenKind === 53 /* ImplementsKeyword */; + } + function isNotHeritageClauseTypeName() { + var tokenKind = currentToken().kind; + if (tokenKind === 53 /* ImplementsKeyword */ || tokenKind === 50 /* ExtendsKeyword */) { + return isIdentifier(peekToken(1)); + } + return false; + } + function isHeritageClauseTypeName() { + if (isIdentifier(currentToken())) { + return !isNotHeritageClauseTypeName(); + } + return false; + } + function tryParseHeritageClause() { + var extendsOrImplementsKeyword = currentToken(); + var tokenKind = extendsOrImplementsKeyword.kind; + if (tokenKind !== 50 /* ExtendsKeyword */ && tokenKind !== 53 /* ImplementsKeyword */) { + return undefined; + } + return new TypeScript.HeritageClauseSyntax(contextFlags, consumeToken(extendsOrImplementsKeyword), parseSeparatedSyntaxList(11 /* HeritageClause_TypeNameList */)); + } + function isInterfaceEnumClassModuleImportOrExport(modifierCount, _currentToken) { + if (modifierCount) { + switch (peekToken(modifierCount).kind) { + case 51 /* ImportKeyword */: + case 69 /* ModuleKeyword */: + case 54 /* InterfaceKeyword */: + case 46 /* ClassKeyword */: + case 48 /* EnumKeyword */: + case 49 /* ExportKeyword */: + return true; + } + } + _currentToken = _currentToken || currentToken(); + var nextToken = peekToken(1); + switch (_currentToken.kind) { + case 69 /* ModuleKeyword */: + return isIdentifier(nextToken) || nextToken.kind === 12 /* StringLiteral */; + case 51 /* ImportKeyword */: + case 46 /* ClassKeyword */: + case 48 /* EnumKeyword */: + case 54 /* InterfaceKeyword */: + return isIdentifier(nextToken); + case 49 /* ExportKeyword */: + return nextToken.kind === 111 /* EqualsToken */; + } + return false; + } + function isStatement(modifierCount, inErrorRecovery) { + if (TypeScript.SyntaxUtilities.isStatement(currentNode())) { + return true; + } + var _currentToken = currentToken(); + var currentTokenKind = _currentToken.kind; + switch (currentTokenKind) { + case 59 /* PublicKeyword */: + case 57 /* PrivateKeyword */: + case 58 /* ProtectedKeyword */: + case 60 /* StaticKeyword */: + var token1 = peekToken(1); + if (TypeScript.SyntaxFacts.isIdentifierNameOrAnyKeyword(token1)) { + return false; + } + break; + case 30 /* IfKeyword */: + case 74 /* OpenBraceToken */: + case 35 /* ReturnKeyword */: + case 36 /* SwitchKeyword */: + case 38 /* ThrowKeyword */: + case 17 /* BreakKeyword */: + case 20 /* ContinueKeyword */: + case 28 /* ForKeyword */: + case 44 /* WhileKeyword */: + case 45 /* WithKeyword */: + case 24 /* DoKeyword */: + case 40 /* TryKeyword */: + case 21 /* DebuggerKeyword */: + return true; + } + if (isInterfaceEnumClassModuleImportOrExport(modifierCount, _currentToken)) { + return false; + } + return isLabeledStatement(_currentToken) || isVariableStatement(modifierCount) || isFunctionDeclaration(modifierCount) || isEmptyStatement(_currentToken, inErrorRecovery) || isExpressionStatement(_currentToken); + } + function parseStatement(inErrorRecovery) { + return tryParseStatement(inErrorRecovery) || parseExpressionStatement(); + } + function tryParseStatement(inErrorRecovery) { + var node = currentNode(); + if (TypeScript.SyntaxUtilities.isStatement(node)) { + consumeNode(node); + return node; + } + var _currentToken = currentToken(); + var currentTokenKind = _currentToken.kind; + return tryParseStatementWorker(_currentToken, currentTokenKind, modifierCount(), inErrorRecovery); + } + function tryParseStatementWorker(_currentToken, currentTokenKind, modifierCount, inErrorRecovery) { + switch (currentTokenKind) { + case 59 /* PublicKeyword */: + case 57 /* PrivateKeyword */: + case 58 /* ProtectedKeyword */: + case 60 /* StaticKeyword */: + if (TypeScript.SyntaxFacts.isIdentifierNameOrAnyKeyword(peekToken(1))) { + return undefined; + } + else { + break; + } + case 30 /* IfKeyword */: return parseIfStatement(_currentToken); + case 74 /* OpenBraceToken */: return parseStatementBlock(); + case 35 /* ReturnKeyword */: return parseReturnStatement(_currentToken); + case 36 /* SwitchKeyword */: return parseSwitchStatement(_currentToken); + case 38 /* ThrowKeyword */: return parseThrowStatement(_currentToken); + case 17 /* BreakKeyword */: return parseBreakStatement(_currentToken); + case 20 /* ContinueKeyword */: return parseContinueStatement(_currentToken); + case 28 /* ForKeyword */: return parseForOrForInStatement(_currentToken); + case 44 /* WhileKeyword */: return parseWhileStatement(_currentToken); + case 45 /* WithKeyword */: return parseWithStatement(_currentToken); + case 24 /* DoKeyword */: return parseDoStatement(_currentToken); + case 40 /* TryKeyword */: return parseTryStatement(_currentToken); + case 21 /* DebuggerKeyword */: return parseDebuggerStatement(_currentToken); + } + if (isInterfaceEnumClassModuleImportOrExport(modifierCount, _currentToken)) { + return undefined; + } + else if (isVariableStatement(modifierCount)) { + return parseVariableStatement(); + } + else if (isLabeledStatement(_currentToken)) { + return parseLabeledStatement(_currentToken); + } + else if (isFunctionDeclaration(modifierCount)) { + return parseFunctionDeclaration(); + } + else if (isEmptyStatement(_currentToken, inErrorRecovery)) { + return parseEmptyStatement(_currentToken); + } + else if (isExpressionStatement(_currentToken)) { + return parseExpressionStatement(); + } + else { + return undefined; + } + } + function parseDebuggerStatement(debuggerKeyword) { + return new TypeScript.DebuggerStatementSyntax(contextFlags, consumeToken(debuggerKeyword), eatExplicitOrAutomaticSemicolon(false)); + } + function parseDoStatement(doKeyword) { + return new TypeScript.DoStatementSyntax(contextFlags, consumeToken(doKeyword), parseStatement(false), eatToken(44 /* WhileKeyword */), eatToken(76 /* OpenParenToken */), allowInAnd(parseExpression), eatToken(77 /* CloseParenToken */), eatExplicitOrAutomaticSemicolon(true)); + } + function isLabeledStatement(currentToken) { + return isIdentifier(currentToken) && peekToken(1).kind === 110 /* ColonToken */; + } + function parseLabeledStatement(identifierToken) { + return new TypeScript.LabeledStatementSyntax(contextFlags, consumeToken(identifierToken), eatToken(110 /* ColonToken */), parseStatement(false)); + } + function parseTryStatement(tryKeyword) { + var tryKeyword = consumeToken(tryKeyword); + var savedListParsingState = listParsingState; + listParsingState |= (1 << 6 /* TryBlock_Statements */); + var block = parseStatementBlock(); + listParsingState = savedListParsingState; + var catchClause = undefined; + if (currentToken().kind === 19 /* CatchKeyword */) { + catchClause = parseCatchClause(); + } + var finallyClause = undefined; + if (!catchClause || currentToken().kind === 27 /* FinallyKeyword */) { + finallyClause = parseFinallyClause(); + } + return new TypeScript.TryStatementSyntax(contextFlags, tryKeyword, block, catchClause, finallyClause); + } + function parseCatchClauseBlock() { + var savedListParsingState = listParsingState; + listParsingState |= (1 << 7 /* CatchBlock_Statements */); + var block = parseStatementBlock(); + listParsingState = savedListParsingState; + return block; + } + function parseCatchClause() { + return new TypeScript.CatchClauseSyntax(contextFlags, eatToken(19 /* CatchKeyword */), eatToken(76 /* OpenParenToken */), eatIdentifierToken(), parseOptionalTypeAnnotation(false), eatToken(77 /* CloseParenToken */), parseCatchClauseBlock()); + } + function parseFinallyClause() { + return new TypeScript.FinallyClauseSyntax(contextFlags, eatToken(27 /* FinallyKeyword */), parseStatementBlock()); + } + function parseWithStatement(withKeyword) { + return new TypeScript.WithStatementSyntax(contextFlags, consumeToken(withKeyword), eatToken(76 /* OpenParenToken */), allowInAnd(parseExpression), eatToken(77 /* CloseParenToken */), parseStatement(false)); + } + function parseWhileStatement(whileKeyword) { + return new TypeScript.WhileStatementSyntax(contextFlags, consumeToken(whileKeyword), eatToken(76 /* OpenParenToken */), allowInAnd(parseExpression), eatToken(77 /* CloseParenToken */), parseStatement(false)); + } + function isEmptyStatement(currentToken, inErrorRecovery) { + if (inErrorRecovery) { + return false; + } + return currentToken.kind === 82 /* SemicolonToken */; + } + function parseEmptyStatement(semicolonToken) { + return new TypeScript.EmptyStatementSyntax(contextFlags, consumeToken(semicolonToken)); + } + function parseForOrForInStatement(forKeyword) { + forKeyword = consumeToken(forKeyword); + var openParenToken = eatToken(76 /* OpenParenToken */); + var _currentToken = currentToken(); + var tokenKind = _currentToken.kind; + var initializer = tokenKind === 82 /* SemicolonToken */ ? undefined : tokenKind === 42 /* VarKeyword */ ? disallowInAnd(parseVariableDeclaration) : disallowInAnd(parseExpression); + if (initializer !== undefined && currentToken().kind === 31 /* InKeyword */) { + return new TypeScript.ForInStatementSyntax(contextFlags, forKeyword, openParenToken, initializer, eatToken(31 /* InKeyword */), allowInAnd(parseExpression), eatToken(77 /* CloseParenToken */), parseStatement(false)); + } + else { + return new TypeScript.ForStatementSyntax(contextFlags, forKeyword, openParenToken, initializer, eatToken(82 /* SemicolonToken */), tryParseForStatementCondition(), eatToken(82 /* SemicolonToken */), tryParseForStatementIncrementor(), eatToken(77 /* CloseParenToken */), parseStatement(false)); + } + } + function tryParseForStatementCondition() { + var tokenKind = currentToken().kind; + if (tokenKind !== 82 /* SemicolonToken */ && tokenKind !== 77 /* CloseParenToken */ && tokenKind !== 8 /* EndOfFileToken */) { + return allowInAnd(parseExpression); + } + return undefined; + } + function tryParseForStatementIncrementor() { + var tokenKind = currentToken().kind; + if (tokenKind !== 77 /* CloseParenToken */ && tokenKind !== 8 /* EndOfFileToken */) { + return allowInAnd(parseExpression); + } + return undefined; + } + function tryEatBreakOrContinueLabel() { + var identifier = undefined; + if (!canEatExplicitOrAutomaticSemicolon(false)) { + if (isIdentifier(currentToken())) { + return eatIdentifierToken(); + } + } + return undefined; + } + function parseBreakStatement(breakKeyword) { + return new TypeScript.BreakStatementSyntax(contextFlags, consumeToken(breakKeyword), tryEatBreakOrContinueLabel(), eatExplicitOrAutomaticSemicolon(false)); + } + function parseContinueStatement(continueKeyword) { + return new TypeScript.ContinueStatementSyntax(contextFlags, consumeToken(continueKeyword), tryEatBreakOrContinueLabel(), eatExplicitOrAutomaticSemicolon(false)); + } + function parseSwitchExpression(openParenToken) { + return openParenToken.fullWidth() === 0 && currentToken().kind === 74 /* OpenBraceToken */ ? eatIdentifierToken() : allowInAnd(parseExpression); + } + function parseSwitchStatement(switchKeyword) { + var openParenToken; + var openBraceToken; + return new TypeScript.SwitchStatementSyntax(contextFlags, consumeToken(switchKeyword), openParenToken = eatToken(76 /* OpenParenToken */), parseSwitchExpression(openParenToken), eatToken(77 /* CloseParenToken */), openBraceToken = eatToken(74 /* OpenBraceToken */), openBraceToken.fullWidth() > 0 ? parseSyntaxList(3 /* SwitchStatement_SwitchClauses */) : [], eatToken(75 /* CloseBraceToken */)); + } + function isSwitchClause() { + if (TypeScript.SyntaxUtilities.isSwitchClause(currentNode())) { + return true; + } + var currentTokenKind = currentToken().kind; + return currentTokenKind === 18 /* CaseKeyword */ || currentTokenKind === 22 /* DefaultKeyword */; + } + function tryParseSwitchClause() { + var node = currentNode(); + if (TypeScript.SyntaxUtilities.isSwitchClause(node)) { + consumeNode(node); + return node; + } + var _currentToken = currentToken(); + var kind = _currentToken.kind; + if (kind === 18 /* CaseKeyword */) { + return parseCaseSwitchClause(_currentToken); + } + else if (kind === 22 /* DefaultKeyword */) { + return parseDefaultSwitchClause(_currentToken); + } + else { + return undefined; + } + } + function parseCaseSwitchClause(caseKeyword) { + return new TypeScript.CaseSwitchClauseSyntax(contextFlags, consumeToken(caseKeyword), allowInAnd(parseExpression), eatToken(110 /* ColonToken */), parseSyntaxList(4 /* SwitchClause_Statements */)); + } + function parseDefaultSwitchClause(defaultKeyword) { + return new TypeScript.DefaultSwitchClauseSyntax(contextFlags, consumeToken(defaultKeyword), eatToken(110 /* ColonToken */), parseSyntaxList(4 /* SwitchClause_Statements */)); + } + function parseThrowStatement(throwKeyword) { + return new TypeScript.ThrowStatementSyntax(contextFlags, consumeToken(throwKeyword), tryParseThrowStatementExpression(), eatExplicitOrAutomaticSemicolon(false)); + } + function tryParseThrowStatementExpression() { + return canEatExplicitOrAutomaticSemicolon(false) ? undefined : allowInAnd(parseExpression); + } + function parseReturnStatement(returnKeyword) { + return new TypeScript.ReturnStatementSyntax(contextFlags, consumeToken(returnKeyword), tryParseReturnStatementExpression(), eatExplicitOrAutomaticSemicolon(false)); + } + function tryParseReturnStatementExpression() { + return canEatExplicitOrAutomaticSemicolon(false) ? undefined : allowInAnd(parseExpression); + } + function isExpressionStatement(currentToken) { + var tokenKind = currentToken.kind; + return tokenKind !== 74 /* OpenBraceToken */ && tokenKind !== 29 /* FunctionKeyword */ && isExpression(currentToken); + } + function isAssignmentOrOmittedExpression() { + var _currentToken = currentToken(); + return _currentToken.kind === 83 /* CommaToken */ || isExpression(_currentToken); + } + function tryParseAssignmentOrOmittedExpression() { + if (currentToken().kind === 83 /* CommaToken */) { + return new TypeScript.OmittedExpressionSyntax(contextFlags); + } + return allowInAnd(tryParseAssignmentExpressionOrHigher); + } + function isExpression(currentToken) { + switch (currentToken.kind) { + case 11 /* NumericLiteral */: + case 12 /* StringLiteral */: + case 10 /* RegularExpressionLiteral */: + case 13 /* NoSubstitutionTemplateToken */: + case 14 /* TemplateStartToken */: + case 78 /* OpenBracketToken */: + case 76 /* OpenParenToken */: + case 84 /* LessThanToken */: + case 97 /* PlusPlusToken */: + case 98 /* MinusMinusToken */: + case 93 /* PlusToken */: + case 94 /* MinusToken */: + case 106 /* TildeToken */: + case 105 /* ExclamationToken */: + case 74 /* OpenBraceToken */: + case 89 /* EqualsGreaterThanToken */: + case 122 /* SlashToken */: + case 123 /* SlashEqualsToken */: + case 52 /* SuperKeyword */: + case 37 /* ThisKeyword */: + case 39 /* TrueKeyword */: + case 26 /* FalseKeyword */: + case 34 /* NullKeyword */: + case 33 /* NewKeyword */: + case 23 /* DeleteKeyword */: + case 43 /* VoidKeyword */: + case 41 /* TypeOfKeyword */: + case 29 /* FunctionKeyword */: + return true; + case 61 /* YieldKeyword */: + return true; + case 64 /* AwaitKeyword */: + return true; + case 63 /* AsyncKeyword */: + return true; + } + return isIdentifier(currentToken); + } + function parseExpressionStatement() { + return new TypeScript.ExpressionStatementSyntax(contextFlags, allowInAnd(parseExpression), eatExplicitOrAutomaticSemicolon(false)); + } + function parseIfStatement(ifKeyword) { + return new TypeScript.IfStatementSyntax(contextFlags, consumeToken(ifKeyword), eatToken(76 /* OpenParenToken */), allowInAnd(parseExpression), eatToken(77 /* CloseParenToken */), parseStatement(false), parseOptionalElseClause()); + } + function parseOptionalElseClause() { + return currentToken().kind === 25 /* ElseKeyword */ ? parseElseClause() : undefined; + } + function parseElseClause() { + return new TypeScript.ElseClauseSyntax(contextFlags, eatToken(25 /* ElseKeyword */), parseStatement(false)); + } + function isVariableStatement(modifierCount) { + return peekToken(modifierCount).kind === 42 /* VarKeyword */; + } + function parseVariableStatement() { + return new TypeScript.VariableStatementSyntax(contextFlags, parseModifiers(), allowInAnd(parseVariableDeclaration), eatExplicitOrAutomaticSemicolon(false)); + } + function parseVariableDeclaration() { + return new TypeScript.VariableDeclarationSyntax(contextFlags, eatToken(42 /* VarKeyword */), parseSeparatedSyntaxList(12 /* VariableDeclaration_VariableDeclarators */)); + } + function isVariableDeclarator() { + var node = currentNode(); + if (node && node.kind === 195 /* VariableDeclarator */) { + return true; + } + return isIdentifier(currentToken()); + } + function canReuseVariableDeclaratorNode(node) { + if (!node || node.kind !== 195 /* VariableDeclarator */) { + return false; + } + var variableDeclarator = node; + return variableDeclarator.equalsValueClause === undefined; + } + function tryParseVariableDeclarator() { + var node = currentNode(); + if (canReuseVariableDeclaratorNode(node)) { + consumeNode(node); + return node; + } + if (!isIdentifier(currentToken())) { + return undefined; + } + var propertyName = eatIdentifierToken(); + var equalsValueClause = undefined; + var typeAnnotation = undefined; + if (TypeScript.fullWidth(propertyName) > 0) { + typeAnnotation = parseOptionalTypeAnnotation(false); + if (isEqualsValueClause(false)) { + equalsValueClause = parseEqualsValueClause(); + } + } + return new TypeScript.VariableDeclaratorSyntax(contextFlags, propertyName, typeAnnotation, equalsValueClause); + } + function isEqualsValueClause(inParameter) { + var token0 = currentToken(); + if (token0.kind === 111 /* EqualsToken */) { + return true; + } + if (!token0.hasLeadingNewLine()) { + var tokenKind = token0.kind; + if (tokenKind === 89 /* EqualsGreaterThanToken */) { + return false; + } + if (tokenKind === 74 /* OpenBraceToken */ && inParameter) { + return false; + } + return isExpression(token0); + } + return false; + } + function parseEqualsValueClause() { + return new TypeScript.EqualsValueClauseSyntax(contextFlags, eatToken(111 /* EqualsToken */), parseAssignmentExpressionOrHigher()); + } + function parseExpression() { + var leftOperand = parseAssignmentExpressionOrHigher(); + while (true) { + var _currentToken = currentToken(); + if (_currentToken.kind !== 83 /* CommaToken */) { + break; + } + leftOperand = new TypeScript.BinaryExpressionSyntax(contextFlags, leftOperand, consumeToken(_currentToken), parseAssignmentExpressionOrHigher()); + } + return leftOperand; + } + function tryParseAssignmentExpressionOrHigher() { + return tryParseAssignmentExpressionOrHigherWorker(false); + } + function parseAssignmentExpressionOrHigher() { + return tryParseAssignmentExpressionOrHigherWorker(true); + } + function tryParseAssignmentExpressionOrHigherWorker(force) { + var _currentToken = currentToken(); + if (isYieldExpression(_currentToken)) { + return parseYieldExpression(_currentToken); + } + var arrowFunction = tryParseAnyArrowFunctionExpression(_currentToken); + if (arrowFunction) { + return arrowFunction; + } + var leftOperand = tryParseBinaryExpressionOrHigher(_currentToken, force, 1 /* Lowest */); + if (leftOperand === undefined) { + return undefined; + } + if (TypeScript.SyntaxUtilities.isLeftHandSizeExpression(leftOperand)) { + var operatorToken = currentOperatorToken(); + if (TypeScript.SyntaxFacts.isAssignmentOperatorToken(operatorToken.kind)) { + return new TypeScript.BinaryExpressionSyntax(contextFlags, leftOperand, consumeToken(operatorToken), parseAssignmentExpressionOrHigher()); + } + } + return parseConditionalExpressionRest(leftOperand); + } + function parsePossibleAwaitExpression(awaitKeyword) { + if (inAsyncContext()) { + return parseAwaitExpression(awaitKeyword); + } + if (isUnambiguouslyYieldOrAwaitExpression()) { + return parseAwaitExpression(awaitKeyword); + } + return tryParsePostfixExpressionOrHigher(awaitKeyword, true); + } + function parseAwaitExpression(awaitKeyword) { + return new TypeScript.AwaitExpressionSyntax(contextFlags, consumeToken(awaitKeyword), parseAssignmentExpressionOrHigher()); + } + function isYieldExpression(_currentToken) { + if (_currentToken.kind === 61 /* YieldKeyword */) { + if (inYieldContext()) { + return true; + } + if (inStrictModeContext()) { + return true; + } + return isUnambiguouslyYieldOrAwaitExpression(); + } + return false; + } + function isUnambiguouslyYieldOrAwaitExpression() { + var token1 = peekToken(1); + if (token1.hasLeadingNewLine()) { + return false; + } + if (isIdentifier(token1)) { + return true; + } + var currentTokenKind = token1.kind; + switch (currentTokenKind) { + case 37 /* ThisKeyword */: + case 39 /* TrueKeyword */: + case 26 /* FalseKeyword */: + case 34 /* NullKeyword */: + case 11 /* NumericLiteral */: + case 12 /* StringLiteral */: + case 29 /* FunctionKeyword */: + case 74 /* OpenBraceToken */: + case 33 /* NewKeyword */: + return true; + case 13 /* NoSubstitutionTemplateToken */: + case 14 /* TemplateStartToken */: + return false; + case 122 /* SlashToken */: + case 123 /* SlashEqualsToken */: + return false; + case 78 /* OpenBracketToken */: + return false; + case 76 /* OpenParenToken */: + return false; + default: + return false; + } + } + function parseYieldExpression(yieldKeyword) { + yieldKeyword = consumeToken(yieldKeyword); + var _currentToken = currentToken(); + if (!_currentToken.hasLeadingNewLine() && (_currentToken.kind === 95 /* AsteriskToken */ || isExpression(_currentToken))) { + return new TypeScript.YieldExpressionSyntax(contextFlags, yieldKeyword, tryEatToken(95 /* AsteriskToken */), parseAssignmentExpressionOrHigher()); + } + else { + return new TypeScript.YieldExpressionSyntax(contextFlags, yieldKeyword, undefined, undefined); + } + } + function tryParseAnyArrowFunctionExpression(_currentToken) { + return isSimpleArrowFunctionExpression(_currentToken) ? parseSimpleArrowFunctionExpression() : tryParseParenthesizedArrowFunctionExpression(); + } + function tryParseUnaryExpressionOrHigher(_currentToken, force) { + var currentTokenKind = _currentToken.kind; + switch (currentTokenKind) { + case 93 /* PlusToken */: + case 94 /* MinusToken */: + case 106 /* TildeToken */: + case 105 /* ExclamationToken */: + case 97 /* PlusPlusToken */: + case 98 /* MinusMinusToken */: + return new TypeScript.PrefixUnaryExpressionSyntax(contextFlags, consumeToken(_currentToken), tryParseUnaryExpressionOrHigher(currentToken(), true)); + case 41 /* TypeOfKeyword */: + return parseTypeOfExpression(_currentToken); + case 43 /* VoidKeyword */: + return parseVoidExpression(_currentToken); + case 23 /* DeleteKeyword */: + return parseDeleteExpression(_currentToken); + case 84 /* LessThanToken */: + return parseCastExpression(_currentToken); + case 64 /* AwaitKeyword */: + return parsePossibleAwaitExpression(_currentToken); + default: + return tryParsePostfixExpressionOrHigher(_currentToken, force); + } + } + function tryParseBinaryExpressionOrHigher(_currentToken, force, precedence) { + var leftOperand = tryParseUnaryExpressionOrHigher(_currentToken, force); + if (leftOperand === undefined) { + return undefined; + } + return parseBinaryExpressionRest(precedence, leftOperand); + } + function parseConditionalExpressionRest(leftOperand) { + var _currentToken = currentToken(); + if (_currentToken.kind !== 109 /* QuestionToken */) { + return leftOperand; + } + return new TypeScript.ConditionalExpressionSyntax(contextFlags, leftOperand, consumeToken(_currentToken), allowInAnd(parseAssignmentExpressionOrHigher), eatToken(110 /* ColonToken */), parseAssignmentExpressionOrHigher()); + } + function parseBinaryExpressionRest(precedence, leftOperand) { + while (true) { + var operatorToken = currentOperatorToken(); + var tokenKind = operatorToken.kind; + if (!TypeScript.SyntaxFacts.isBinaryExpressionOperatorToken(tokenKind) || tokenKind === 83 /* CommaToken */ || TypeScript.SyntaxFacts.isAssignmentOperatorToken(tokenKind)) { + break; + } + if (tokenKind === 31 /* InKeyword */ && inDisallowInContext()) { + break; + } + var newPrecedence = getBinaryExpressionPrecedence(tokenKind); + if (newPrecedence <= precedence) { + break; + } + leftOperand = new TypeScript.BinaryExpressionSyntax(contextFlags, leftOperand, consumeToken(operatorToken), tryParseBinaryExpressionOrHigher(currentToken(), true, newPrecedence)); + } + return leftOperand; + } + function currentOperatorToken() { + var token0 = currentToken(); + if (token0.kind === 85 /* GreaterThanToken */) { + return currentContextualToken(); + } + return token0; + } + function tryParseMemberExpressionOrHigher(_currentToken, force) { + var expression = tryParsePrimaryExpression(_currentToken, force); + if (expression === undefined) { + return undefined; + } + return parseMemberExpressionRest(expression); + } + function parseCallExpressionRest(expression) { + while (true) { + var _currentToken = currentToken(); + var currentTokenKind = _currentToken.kind; + switch (currentTokenKind) { + case 76 /* OpenParenToken */: + expression = new TypeScript.InvocationExpressionSyntax(contextFlags, expression, parseArgumentList(undefined, _currentToken)); + continue; + case 84 /* LessThanToken */: + var argumentList = tryParseArgumentList(); + if (argumentList === undefined) { + break; + } + expression = new TypeScript.InvocationExpressionSyntax(contextFlags, expression, argumentList); + continue; + case 78 /* OpenBracketToken */: + expression = parseElementAccessExpression(expression, _currentToken); + continue; + case 80 /* DotToken */: + expression = new TypeScript.MemberAccessExpressionSyntax(contextFlags, expression, consumeToken(_currentToken), eatIdentifierNameToken()); + continue; + case 13 /* NoSubstitutionTemplateToken */: + case 14 /* TemplateStartToken */: + expression = new TypeScript.TemplateAccessExpressionSyntax(contextFlags, expression, parseTemplateExpression(_currentToken)); + continue; + } + return expression; + } + } + function parseMemberExpressionRest(expression) { + while (true) { + var _currentToken = currentToken(); + var currentTokenKind = _currentToken.kind; + switch (currentTokenKind) { + case 78 /* OpenBracketToken */: + expression = parseElementAccessExpression(expression, _currentToken); + continue; + case 80 /* DotToken */: + expression = new TypeScript.MemberAccessExpressionSyntax(contextFlags, expression, consumeToken(_currentToken), eatIdentifierNameToken()); + continue; + case 13 /* NoSubstitutionTemplateToken */: + case 14 /* TemplateStartToken */: + expression = new TypeScript.TemplateAccessExpressionSyntax(contextFlags, expression, parseTemplateExpression(_currentToken)); + continue; + } + return expression; + } + } + function tryParseLeftHandSideExpressionOrHigher(_currentToken, force) { + var expression = undefined; + if (_currentToken.kind === 52 /* SuperKeyword */) { + expression = parseSuperExpression(_currentToken); + } + else { + expression = tryParseMemberExpressionOrHigher(_currentToken, force); + if (expression === undefined) { + return undefined; + } + } + return parseCallExpressionRest(expression); + } + function parseSuperExpression(superToken) { + var expression = consumeToken(superToken); + var currentTokenKind = currentToken().kind; + return currentTokenKind === 76 /* OpenParenToken */ || currentTokenKind === 80 /* DotToken */ ? expression : new TypeScript.MemberAccessExpressionSyntax(contextFlags, expression, eatToken(80 /* DotToken */), eatIdentifierNameToken()); + } + function tryParsePostfixExpressionOrHigher(_currentToken, force) { + var expression = tryParseLeftHandSideExpressionOrHigher(_currentToken, force); + if (expression === undefined) { + return undefined; + } + var _currentToken = currentToken(); + var currentTokenKind = _currentToken.kind; + switch (currentTokenKind) { + case 97 /* PlusPlusToken */: + case 98 /* MinusMinusToken */: + if (_currentToken.hasLeadingNewLine()) { + break; + } + return new TypeScript.PostfixUnaryExpressionSyntax(contextFlags, expression, consumeToken(_currentToken)); + } + return expression; + } + function tryParseGenericArgumentList() { + var rewindPoint = getRewindPoint(); + var typeArgumentList = tryParseTypeArgumentList(true); + var token0 = currentToken(); + var tokenKind = token0.kind; + var isOpenParen = tokenKind === 76 /* OpenParenToken */; + var isDot = tokenKind === 80 /* DotToken */; + var isOpenParenOrDot = isOpenParen || isDot; + var argumentList = undefined; + if (!typeArgumentList || !isOpenParenOrDot) { + rewind(rewindPoint); + releaseRewindPoint(rewindPoint); + return undefined; + } + else { + TypeScript.Debug.assert(typeArgumentList && isOpenParenOrDot); + releaseRewindPoint(rewindPoint); + if (isDot) { + return new TypeScript.ArgumentListSyntax(contextFlags, typeArgumentList, createMissingToken(76 /* OpenParenToken */, undefined, TypeScript.DiagnosticCode.A_parameter_list_must_follow_a_generic_type_argument_list_expected), [], eatToken(77 /* CloseParenToken */)); + } + else { + TypeScript.Debug.assert(token0.kind === 76 /* OpenParenToken */); + return parseArgumentList(typeArgumentList, token0); + } + } + } + function tryParseArgumentList() { + var _currentToken = currentToken(); + var tokenKind = _currentToken.kind; + if (tokenKind === 84 /* LessThanToken */) { + return tryParseGenericArgumentList(); + } + if (tokenKind === 76 /* OpenParenToken */) { + return parseArgumentList(undefined, _currentToken); + } + return undefined; + } + function parseArgumentList(typeArgumentList, openParenToken) { + TypeScript.Debug.assert(openParenToken.kind === 76 /* OpenParenToken */ && openParenToken.fullWidth() > 0); + return new TypeScript.ArgumentListSyntax(contextFlags, typeArgumentList, consumeToken(openParenToken), parseSeparatedSyntaxList(13 /* ArgumentList_AssignmentExpressions */), eatToken(77 /* CloseParenToken */)); + } + function tryParseArgumentListExpression() { + var force = currentToken().kind === 83 /* CommaToken */; + return allowInAnd(force ? parseAssignmentExpressionOrHigher : tryParseAssignmentExpressionOrHigher); + } + function parseElementAccessArgumentExpression(openBracketToken) { + return currentToken().kind === 79 /* CloseBracketToken */ ? undefined : allowInAnd(parseExpression); + } + function parseElementAccessExpression(expression, openBracketToken) { + return new TypeScript.ElementAccessExpressionSyntax(contextFlags, expression, consumeToken(openBracketToken), parseElementAccessArgumentExpression(openBracketToken), eatToken(79 /* CloseBracketToken */)); + } + function tryParsePrimaryExpression(_currentToken, force) { + if (_currentToken.kind === 63 /* AsyncKeyword */) { + var token1 = peekToken(1); + if (!token1.hasLeadingNewLine() && token1.kind === 29 /* FunctionKeyword */) { + return parseFunctionExpression(); + } + } + if (isIdentifier(_currentToken)) { + return eatIdentifierToken(); + } + var currentTokenKind = _currentToken.kind; + switch (currentTokenKind) { + case 37 /* ThisKeyword */: + case 39 /* TrueKeyword */: + case 26 /* FalseKeyword */: + case 34 /* NullKeyword */: + case 11 /* NumericLiteral */: + case 10 /* RegularExpressionLiteral */: + case 12 /* StringLiteral */: + return consumeToken(_currentToken); + case 29 /* FunctionKeyword */: + return parseFunctionExpression(); + case 78 /* OpenBracketToken */: + return parseArrayLiteralExpression(_currentToken); + case 74 /* OpenBraceToken */: + return parseObjectLiteralExpression(_currentToken); + case 76 /* OpenParenToken */: + return parseParenthesizedExpression(_currentToken); + case 33 /* NewKeyword */: + return parseObjectCreationExpression(_currentToken); + case 13 /* NoSubstitutionTemplateToken */: + case 14 /* TemplateStartToken */: + return parseTemplateExpression(_currentToken); + case 122 /* SlashToken */: + case 123 /* SlashEqualsToken */: + return reparseDivideAsRegularExpression(); + } + if (!force) { + return undefined; + } + return eatIdentifierToken(TypeScript.DiagnosticCode.Expression_expected); + } + function reparseDivideAsRegularExpression() { + var currentToken = currentContextualToken(); + var tokenKind = currentToken.kind; + TypeScript.Debug.assert(tokenKind === 10 /* RegularExpressionLiteral */); + return consumeToken(currentToken); + } + function parseTypeOfExpression(typeOfKeyword) { + return new TypeScript.TypeOfExpressionSyntax(contextFlags, consumeToken(typeOfKeyword), tryParseUnaryExpressionOrHigher(currentToken(), true)); + } + function parseDeleteExpression(deleteKeyword) { + return new TypeScript.DeleteExpressionSyntax(contextFlags, consumeToken(deleteKeyword), tryParseUnaryExpressionOrHigher(currentToken(), true)); + } + function parseVoidExpression(voidKeyword) { + return new TypeScript.VoidExpressionSyntax(contextFlags, consumeToken(voidKeyword), tryParseUnaryExpressionOrHigher(currentToken(), true)); + } + function parseFunctionExpression() { + var asyncKeyword; + var asteriskToken; + return new TypeScript.FunctionExpressionSyntax(contextFlags, asyncKeyword = tryEatToken(63 /* AsyncKeyword */), eatToken(29 /* FunctionKeyword */), asteriskToken = tryEatToken(95 /* AsteriskToken */), tryEatFunctionExpressionIdentifier(!!asteriskToken, !!asyncKeyword), parseCallSignature(false, !!asteriskToken, !!asyncKeyword), parseFunctionBody(!!asteriskToken, !!asyncKeyword)); + } + function tryEatFunctionExpressionIdentifier(yieldContext, asyncContext) { + var savedYieldContext = inYieldContext(); + var savedAsyncContext = inAsyncContext(); + setYieldContext(yieldContext); + setAsyncContext(asyncContext); + var result = eatOptionalIdentifierToken(); + setYieldContext(savedYieldContext); + setAsyncContext(savedAsyncContext); + return result; + } + function parseObjectCreationExpression(newKeyword) { + return new TypeScript.ObjectCreationExpressionSyntax(contextFlags, consumeToken(newKeyword), tryParseMemberExpressionOrHigher(currentToken(), true), tryParseArgumentList()); + } + function parseTemplateExpression(startToken) { + startToken = consumeToken(startToken); + if (startToken.kind === 13 /* NoSubstitutionTemplateToken */) { + return startToken; + } + var templateClauses = []; + do { + templateClauses.push(parseTemplateClause()); + } while (templateClauses[templateClauses.length - 1].templateMiddleOrEndToken.kind === 15 /* TemplateMiddleToken */); + return new TypeScript.TemplateExpressionSyntax(contextFlags, startToken, TypeScript.Syntax.list(templateClauses)); + } + function parseTemplateClause() { + var expression = allowInAnd(parseExpression); + var token = currentToken(); + if (token.kind === 75 /* CloseBraceToken */) { + token = currentContextualToken(); + TypeScript.Debug.assert(token.kind === 15 /* TemplateMiddleToken */ || token.kind === 16 /* TemplateEndToken */); + token = consumeToken(token); + } + else { + token = createMissingToken(16 /* TemplateEndToken */, undefined, TypeScript.DiagnosticCode._0_expected, ["{"]); + } + return new TypeScript.TemplateClauseSyntax(contextFlags, expression, token); + } + function parseCastExpression(lessThanToken) { + return new TypeScript.CastExpressionSyntax(contextFlags, consumeToken(lessThanToken), parseType(), eatToken(85 /* GreaterThanToken */), tryParseUnaryExpressionOrHigher(currentToken(), true)); + } + function parseParenthesizedExpression(openParenToken) { + return new TypeScript.ParenthesizedExpressionSyntax(contextFlags, consumeToken(openParenToken), allowInAnd(parseExpression), eatToken(77 /* CloseParenToken */)); + } + function tryParseParenthesizedArrowFunctionExpression() { + var tokenKind = currentToken().kind; + if (tokenKind !== 63 /* AsyncKeyword */ && tokenKind !== 76 /* OpenParenToken */ && tokenKind !== 84 /* LessThanToken */) { + return undefined; + } + if (isDefinitelyArrowFunctionExpression()) { + return tryParseParenthesizedArrowFunctionExpressionWorker(false); + } + if (!isPossiblyArrowFunctionExpression()) { + return undefined; + } + var rewindPoint = getRewindPoint(); + var arrowFunction = tryParseParenthesizedArrowFunctionExpressionWorker(true); + if (arrowFunction === undefined) { + rewind(rewindPoint); + } + releaseRewindPoint(rewindPoint); + return arrowFunction; + } + function tryParseParenthesizedArrowFunctionExpressionWorker(requireArrow) { + var asyncKeyword = tryEatToken(63 /* AsyncKeyword */); + var callSignature = parseCallSignature(true, inYieldContext(), !!asyncKeyword); + if (requireArrow && currentToken().kind !== 89 /* EqualsGreaterThanToken */) { + return undefined; + } + return new TypeScript.ParenthesizedArrowFunctionExpressionSyntax(contextFlags, asyncKeyword, callSignature, eatToken(89 /* EqualsGreaterThanToken */), parseArrowFunctionBody(!!asyncKeyword)); + } + function parseArrowFunctionBody(asyncContext) { + if (currentToken().kind === 74 /* OpenBraceToken */) { + return parseFunctionBlock(false, asyncContext, undefined); + } + var _modifierCount = modifierCount(); + if (isStatement(_modifierCount, false) && !isExpression(currentToken())) { + return new TypeScript.BlockSyntax(contextFlags, undefined, eatToken(74 /* OpenBraceToken */), parseFunctionBlockStatements(false, asyncContext), eatToken(75 /* CloseBraceToken */)); + } + return asyncContext ? doInsideAsyncContext(parseAssignmentExpressionOrHigher) : doOutsideAsyncContext(parseAssignmentExpressionOrHigher); + } + function isSimpleArrowFunctionExpression(_currentToken) { + if (_currentToken.kind === 89 /* EqualsGreaterThanToken */) { + return true; + } + if (_currentToken.kind === 63 /* AsyncKeyword */) { + var token1 = peekToken(1); + if (!token1.hasLeadingNewLine() && isIdentifier(peekToken(1))) { + return true; + } + } + return isIdentifier(_currentToken) && peekToken(1).kind === 89 /* EqualsGreaterThanToken */; + } + function parseSimpleArrowFunctionExpression() { + var asyncKeyword; + return new TypeScript.SimpleArrowFunctionExpressionSyntax(contextFlags, asyncKeyword = tryEatToken(63 /* AsyncKeyword */), asyncKeyword ? doInsideAsyncContext(eatSimpleParameter) : doOutsideAsyncContext(eatSimpleParameter), eatToken(89 /* EqualsGreaterThanToken */), parseArrowFunctionBody(!!asyncKeyword)); + } + function isFunctionBlock() { + var currentTokenKind = currentToken().kind; + return currentTokenKind === 74 /* OpenBraceToken */ || currentTokenKind === 89 /* EqualsGreaterThanToken */; + } + function isBlockOrArrow() { + var _currentToken = currentToken(); + return _currentToken.kind === 74 /* OpenBraceToken */ || _currentToken.kind === 89 /* EqualsGreaterThanToken */; + } + function isDefinitelyArrowFunctionExpression() { + var peekIndex = 0; + if (currentToken().kind === 63 /* AsyncKeyword */) { + if (peekToken(1).hasLeadingNewLine()) { + return false; + } + peekIndex++; + } + var token0 = peekToken(peekIndex); + if (token0.kind !== 76 /* OpenParenToken */) { + return false; + } + var token1 = peekToken(peekIndex + 1); + var token1Kind = token1.kind; + var token2; + if (token1Kind === 77 /* CloseParenToken */) { + token2 = peekToken(peekIndex + 2); + var token2Kind = token2.kind; + return token2Kind === 110 /* ColonToken */ || token2Kind === 89 /* EqualsGreaterThanToken */ || token2Kind === 74 /* OpenBraceToken */; + } + if (token1Kind === 81 /* DotDotDotToken */) { + return true; + } + token2 = peekToken(peekIndex + 2); + token2Kind = token2.kind; + if (TypeScript.SyntaxFacts.isAccessibilityModifier(token1Kind)) { + if (isIdentifier(token2)) { + return true; + } + } + if (!isIdentifier(token1)) { + return false; + } + if (token2Kind === 110 /* ColonToken */) { + return true; + } + var token3 = peekToken(peekIndex + 3); + var token3Kind = token3.kind; + if (token2Kind === 109 /* QuestionToken */) { + if (token3Kind === 110 /* ColonToken */ || token3Kind === 77 /* CloseParenToken */ || token3Kind === 83 /* CommaToken */) { + return true; + } + } + if (token2Kind === 77 /* CloseParenToken */) { + if (token3Kind === 89 /* EqualsGreaterThanToken */) { + return true; + } + } + return false; + } + function isPossiblyArrowFunctionExpression() { + var peekIndex = 0; + if (currentToken().kind === 63 /* AsyncKeyword */) { + if (peekToken(1).hasLeadingNewLine()) { + return false; + } + peekIndex++; + } + var token0 = peekToken(peekIndex); + if (token0.kind !== 76 /* OpenParenToken */) { + return true; + } + var token1 = peekToken(peekIndex + 1); + if (!isIdentifier(token1)) { + return false; + } + var token2 = peekToken(peekIndex + 2); + var token2Kind = token2.kind; + if (token2Kind === 111 /* EqualsToken */) { + return true; + } + if (token2Kind === 83 /* CommaToken */) { + return true; + } + if (token2Kind === 77 /* CloseParenToken */) { + var token3 = peekToken(peekIndex + 3); + if (token3.kind === 110 /* ColonToken */) { + return true; + } + } + return false; + } + function parseObjectLiteralExpression(openBraceToken) { + return new TypeScript.ObjectLiteralExpressionSyntax(contextFlags, consumeToken(openBraceToken), parseSeparatedSyntaxList(14 /* ObjectLiteralExpression_PropertyAssignments */), eatToken(75 /* CloseBraceToken */)); + } + function tryParsePropertyAssignment(inErrorRecovery) { + var modifiers = parseModifiers(); + if (isAccessor(inErrorRecovery)) { + return parseAccessor(modifiers); + } + var _currentToken = currentToken(); + if (modifiers.length === 0) { + if (isIdentifier(_currentToken)) { + var token1 = peekToken(1); + if (token1.kind !== 110 /* ColonToken */ && token1.kind !== 76 /* OpenParenToken */ && token1.kind !== 84 /* LessThanToken */) { + return eatIdentifierToken(); + } + } + } + if (modifiers.length > 0 || _currentToken.kind === 95 /* AsteriskToken */ || isPropertyName(0, inErrorRecovery)) { + var asterixToken = tryEatToken(95 /* AsteriskToken */); + var propertyName = parsePropertyName(); + if (modifiers.length > 0 || asterixToken !== undefined || isCallSignature(0)) { + return parseMemberFunctionDeclaration(modifiers, asterixToken, propertyName); + } + else { + return new TypeScript.PropertyAssignmentSyntax(contextFlags, propertyName, eatToken(110 /* ColonToken */), allowInAnd(parseAssignmentExpressionOrHigher)); + } + } + return undefined; + } + function isPropertyAssignment(inErrorRecovery) { + return isAtModifier() || isAccessor(inErrorRecovery) || currentToken().kind === 95 /* AsteriskToken */ || isPropertyName(0, inErrorRecovery); + } + function isPropertyName(peekIndex, inErrorRecovery) { + var token = peekToken(peekIndex); + if (token.kind === 78 /* OpenBracketToken */) { + return !isIndexSignature(peekIndex); + } + return isPropertyNameToken(token, inErrorRecovery); + } + function isPropertyNameToken(token, inErrorRecovery) { + if (TypeScript.SyntaxFacts.isIdentifierNameOrAnyKeyword(token)) { + if (inErrorRecovery) { + return isIdentifier(token); + } + else { + return true; + } + } + return isLiteralPropertyName(token); + } + function isLiteralPropertyName(token) { + var kind = token.kind; + return kind === 12 /* StringLiteral */ || kind === 11 /* NumericLiteral */ || kind === 13 /* NoSubstitutionTemplateToken */; + } + function parsePropertyName() { + var _currentToken = currentToken(); + if (_currentToken.kind === 78 /* OpenBracketToken */) { + return inGeneratorParameterContext() ? doOutsideYieldContext(parseComputedPropertyName) : parseComputedPropertyName(); + } + else if (TypeScript.SyntaxFacts.isIdentifierNameOrAnyKeyword(_currentToken)) { + return eatIdentifierNameToken(); + } + else if (isLiteralPropertyName(_currentToken)) { + return consumeToken(_currentToken); + } + else { + return eatIdentifierToken(); + } + } + function parseComputedPropertyName() { + return new TypeScript.ComputedPropertyNameSyntax(contextFlags, eatToken(78 /* OpenBracketToken */), allowInAnd(parseExpression), eatToken(79 /* CloseBracketToken */)); + } + function parseArrayLiteralExpression(openBracketToken) { + return new TypeScript.ArrayLiteralExpressionSyntax(contextFlags, consumeToken(openBracketToken), parseSeparatedSyntaxList(15 /* ArrayLiteralExpression_AssignmentExpressions */), eatToken(79 /* CloseBracketToken */)); + } + function parseStatementBlock() { + var openBraceToken; + return new TypeScript.BlockSyntax(contextFlags, tryEatToken(89 /* EqualsGreaterThanToken */), openBraceToken = eatToken(74 /* OpenBraceToken */), openBraceToken.fullWidth() > 0 ? parseSyntaxList(5 /* Block_Statements */) : [], eatToken(75 /* CloseBraceToken */)); + } + function parseFunctionBlockOrExpressionBody(yieldContext, asyncContext) { + var equalsGreaterThanToken = tryEatToken(89 /* EqualsGreaterThanToken */); + if (equalsGreaterThanToken) { + if (isExpression(currentToken())) { + return new TypeScript.ExpressionBody(contextFlags, equalsGreaterThanToken, parseExpression()); + } + } + return parseFunctionBlock(yieldContext, asyncContext, equalsGreaterThanToken); + } + function parseFunctionBlock(yieldContext, asyncContext, equalsGreaterThanToken) { + var openBraceToken; + return new TypeScript.BlockSyntax(contextFlags, equalsGreaterThanToken, openBraceToken = eatToken(74 /* OpenBraceToken */), equalsGreaterThanToken || openBraceToken.fullWidth() > 0 ? parseFunctionBlockStatements(yieldContext, asyncContext) : [], eatToken(75 /* CloseBraceToken */)); + } + function parseFunctionBlockStatements(yieldContext, asyncContext) { + var savedStrictModeContext = inStrictModeContext(); + var savedYieldContext = inYieldContext(); + var savedAsyncContext = inAsyncContext(); + setYieldContext(yieldContext); + setAsyncContext(asyncContext); + var statements = parseSyntaxList(5 /* Block_Statements */, updateStrictModeState); + setStrictModeContext(savedStrictModeContext); + setYieldContext(savedYieldContext); + setAsyncContext(savedAsyncContext); + return statements; + } + function parseCallSignature(requireCompleteTypeParameterList, yieldAndGeneratorParameterContext, asyncContext) { + return new TypeScript.CallSignatureSyntax(contextFlags, tryParseTypeParameterList(requireCompleteTypeParameterList), parseParameterList(yieldAndGeneratorParameterContext, asyncContext), parseOptionalTypeAnnotation(false)); + } + function tryParseTypeParameterList(requireCompleteTypeParameterList) { + var _currentToken = currentToken(); + if (_currentToken.kind !== 84 /* LessThanToken */) { + return undefined; + } + var rewindPoint = getRewindPoint(); + var lessThanToken = consumeToken(_currentToken); + var typeParameters = parseSeparatedSyntaxList(19 /* TypeParameterList_TypeParameters */); + var greaterThanToken = eatToken(85 /* GreaterThanToken */); + if (requireCompleteTypeParameterList && greaterThanToken.fullWidth() === 0) { + rewind(rewindPoint); + releaseRewindPoint(rewindPoint); + return undefined; + } + else { + releaseRewindPoint(rewindPoint); + return new TypeScript.TypeParameterListSyntax(contextFlags, lessThanToken, typeParameters, greaterThanToken); + } + } + function isTypeParameter() { + return isIdentifier(currentToken()); + } + function tryParseTypeParameter() { + if (!isIdentifier(currentToken())) { + return undefined; + } + return new TypeScript.TypeParameterSyntax(contextFlags, eatIdentifierToken(), tryParseConstraint()); + } + function tryParseConstraint() { + if (currentToken().kind !== 50 /* ExtendsKeyword */) { + return undefined; + } + return new TypeScript.ConstraintSyntax(contextFlags, eatToken(50 /* ExtendsKeyword */), parseTypeOrExpression()); + } + function parseParameterList(yieldAndGeneratorParameterContext, asyncContext) { + var savedYieldContext = inYieldContext(); + var savedGeneratorParameterContext = inGeneratorParameterContext(); + var savedAsyncContext = inAsyncContext(); + setYieldContext(yieldAndGeneratorParameterContext); + setGeneratorParameterContext(yieldAndGeneratorParameterContext); + setAsyncContext(asyncContext); + var openParenToken; + var result = new TypeScript.ParameterListSyntax(contextFlags, openParenToken = eatToken(76 /* OpenParenToken */), openParenToken.fullWidth() > 0 ? parseSeparatedSyntaxList(16 /* ParameterList_Parameters */) : [], eatToken(77 /* CloseParenToken */)); + setYieldContext(savedYieldContext); + setGeneratorParameterContext(savedGeneratorParameterContext); + setAsyncContext(savedAsyncContext); + return result; + } + function parseOptionalTypeAnnotation(allowStringLiteral) { + return currentToken().kind === 110 /* ColonToken */ ? parseTypeAnnotation(allowStringLiteral) : undefined; + } + function parseTypeAnnotationType(allowStringLiteral) { + if (allowStringLiteral) { + var _currentToken = currentToken(); + if (_currentToken.kind === 12 /* StringLiteral */) { + return consumeToken(_currentToken); + } + } + return parseType(); + } + function parseTypeAnnotation(allowStringLiteral) { + return new TypeScript.TypeAnnotationSyntax(contextFlags, consumeToken(currentToken()), parseTypeAnnotationType(allowStringLiteral)); + } + function isType() { + var _currentToken = currentToken(); + switch (_currentToken.kind) { + case 41 /* TypeOfKeyword */: + case 62 /* AnyKeyword */: + case 71 /* NumberKeyword */: + case 65 /* BooleanKeyword */: + case 73 /* StringKeyword */: + case 43 /* VoidKeyword */: + case 74 /* OpenBraceToken */: + case 76 /* OpenParenToken */: + case 84 /* LessThanToken */: + case 33 /* NewKeyword */: + return true; + default: + return isIdentifier(_currentToken); + } + } + function parseTypeOrExpression() { + var result = tryParseType(); + if (result) { + return result; + } + var _currentToken = currentToken(); + if (isExpression(_currentToken)) { + return tryParseUnaryExpressionOrHigher(_currentToken, true); + } + return eatIdentifierToken(TypeScript.DiagnosticCode.Type_expected); + } + function parseType() { + return tryParseType() || eatIdentifierToken(TypeScript.DiagnosticCode.Type_expected); + } + function tryParseType() { + var savedYieldContext = inYieldContext(); + var savedGeneratorParameterContext = inGeneratorParameterContext(); + setYieldContext(false); + setGeneratorParameterContext(false); + var result = tryParseTypeWorker(); + setYieldContext(savedYieldContext); + setGeneratorParameterContext(savedGeneratorParameterContext); + return result; + } + function tryParseTypeWorker() { + if (isFunctionType()) { + return parseFunctionType(); + } + if (currentToken().kind === 33 /* NewKeyword */) { + return parseConstructorType(); + } + return tryParseUnionTypeOrHigher(); + } + function tryParseUnionTypeOrHigher() { + var type = tryParsePrimaryType(); + if (type) { + var barToken; + while ((barToken = currentToken()).kind === 103 /* BarToken */) { + type = new TypeScript.UnionTypeSyntax(contextFlags, type, consumeToken(barToken), parsePrimaryType()); + } + } + return type; + } + function parsePrimaryType() { + return tryParsePrimaryType() || eatIdentifierToken(TypeScript.DiagnosticCode.Type_expected); + } + function tryParsePrimaryType() { + var type = tryParseNonArrayType(); + while (type) { + var _currentToken = currentToken(); + if (_currentToken.hasLeadingNewLine() || _currentToken.kind !== 78 /* OpenBracketToken */) { + break; + } + type = new TypeScript.ArrayTypeSyntax(contextFlags, type, consumeToken(_currentToken), eatToken(79 /* CloseBracketToken */)); + } + return type; + } + function parseTypeQuery(typeOfKeyword) { + return new TypeScript.TypeQuerySyntax(contextFlags, consumeToken(typeOfKeyword), parseName(true)); + } + function tryParseNonArrayType() { + var _currentToken = currentToken(); + switch (_currentToken.kind) { + case 62 /* AnyKeyword */: + case 71 /* NumberKeyword */: + case 65 /* BooleanKeyword */: + case 73 /* StringKeyword */: + if (peekToken(1).kind === 80 /* DotToken */) { + break; + } + return consumeToken(_currentToken); + case 43 /* VoidKeyword */: return consumeToken(_currentToken); + case 76 /* OpenParenToken */: return parseParenthesizedType(_currentToken); + case 74 /* OpenBraceToken */: return parseObjectType(); + case 41 /* TypeOfKeyword */: return parseTypeQuery(_currentToken); + case 78 /* OpenBracketToken */: return parseTupleType(_currentToken); + } + return tryParseNameOrGenericType(); + } + function parseParenthesizedType(openParenToken) { + return new TypeScript.ParenthesizedTypeSyntax(contextFlags, consumeToken(openParenToken), parseType(), eatToken(77 /* CloseParenToken */)); + } + function tryParseNameOrGenericType() { + var name = tryParseName(false); + if (name === undefined) { + return undefined; + } + if (currentToken().hasLeadingNewLine()) { + return name; + } + var typeArgumentList = tryParseTypeArgumentList(false); + return !typeArgumentList ? name : new TypeScript.GenericTypeSyntax(contextFlags, name, typeArgumentList); + } + function isFunctionType() { + var token0 = currentToken(); + var token0Kind = token0.kind; + if (token0Kind === 84 /* LessThanToken */) { + return true; + } + if (token0Kind === 76 /* OpenParenToken */) { + var token1 = peekToken(1); + var token1Kind = token1.kind; + if (token1Kind === 77 /* CloseParenToken */ || token1Kind === 81 /* DotDotDotToken */) { + return true; + } + if (isModifierKind(token1Kind) || isIdentifier(token1)) { + var token2 = peekToken(2); + var token2Kind = token2.kind; + if (token2Kind === 110 /* ColonToken */ || token2Kind === 83 /* CommaToken */ || token2Kind === 109 /* QuestionToken */ || token2Kind === 111 /* EqualsToken */ || isIdentifier(token2) || isModifierKind(token2Kind)) { + return true; + } + if (token2Kind === 77 /* CloseParenToken */) { + return peekToken(3).kind === 89 /* EqualsGreaterThanToken */; + } + } + } + return false; + } + function parseFunctionType() { + return new TypeScript.FunctionTypeSyntax(contextFlags, tryParseTypeParameterList(false), parseParameterList(false, false), eatToken(89 /* EqualsGreaterThanToken */), parseType()); + } + function parseConstructorType() { + return new TypeScript.ConstructorTypeSyntax(contextFlags, eatToken(33 /* NewKeyword */), tryParseTypeParameterList(false), parseParameterList(false, false), eatToken(89 /* EqualsGreaterThanToken */), parseType()); + } + function isParameter() { + if (currentNode() && currentNode().kind === 210 /* Parameter */) { + return true; + } + return isParameterHelper(currentToken()); + } + function isParameterHelper(token) { + var tokenKind = token.kind; + return tokenKind === 81 /* DotDotDotToken */ || isModifierKind(tokenKind) || isIdentifier(token); + } + function eatSimpleParameter() { + return new TypeScript.ParameterSyntax(contextFlags, undefined, [], eatIdentifierToken(), undefined, undefined, undefined); + } + function tryParseParameter() { + var node = currentNode(); + if (node && node.kind === 210 /* Parameter */) { + consumeNode(node); + return node; + } + var dotDotDotToken = tryEatToken(81 /* DotDotDotToken */); + var modifiers = parseModifiers(); + var _currentToken = currentToken(); + if (!isIdentifier(_currentToken) && !dotDotDotToken && modifiers.length === 0) { + if (isModifierKind(_currentToken.kind)) { + modifiers = TypeScript.Syntax.list([consumeToken(_currentToken)]); + } + else { + return undefined; + } + } + var identifier = inGeneratorParameterContext() ? doInsideYieldContext(eatIdentifierToken) : eatIdentifierToken(); + var questionToken = tryEatToken(109 /* QuestionToken */); + var typeAnnotation = parseOptionalTypeAnnotation(true); + var equalsValueClause = undefined; + if (isEqualsValueClause(true)) { + equalsValueClause = inGeneratorParameterContext() ? doOutsideYieldContext(parseEqualsValueClause) : parseEqualsValueClause(); + } + return new TypeScript.ParameterSyntax(contextFlags, dotDotDotToken, modifiers, identifier, questionToken, typeAnnotation, equalsValueClause); + } + function parseSyntaxList(currentListType, processItems) { + var savedListParsingState = listParsingState; + listParsingState |= (1 << currentListType); + var result = parseSyntaxListWorker(currentListType, processItems); + listParsingState = savedListParsingState; + return result; + } + function parseSeparatedSyntaxList(currentListType) { + var savedListParsingState = listParsingState; + listParsingState |= (1 << currentListType); + var result = parseSeparatedSyntaxListWorker(currentListType); + listParsingState = savedListParsingState; + return result; + } + function abortParsingListOrMoveToNextToken(currentListType) { + reportUnexpectedTokenDiagnostic(currentListType); + for (var state = ListParsingState.LastListParsingState; state >= ListParsingState.FirstListParsingState; state--) { + if ((listParsingState & (1 << state)) !== 0) { + if (isExpectedListTerminator(state) || isExpectedListItem(state, true)) { + return true; + } + } + } + skipToken(currentToken()); + return false; + } + function tryParseExpectedListItem(currentListType, inErrorRecovery, items, processItems) { + var item = tryParseExpectedListItemWorker(currentListType, inErrorRecovery); + if (item !== undefined) { + items.push(item); + if (processItems) { + processItems(items); + } + } + } + function listIsTerminated(currentListType) { + return isExpectedListTerminator(currentListType) || currentToken().kind === 8 /* EndOfFileToken */; + } + function parseSyntaxListWorker(currentListType, processItems) { + var items = []; + while (true) { + var oldItemsLength = items.length; + tryParseExpectedListItem(currentListType, false, items, processItems); + if (items.length === oldItemsLength) { + if (listIsTerminated(currentListType)) { + break; + } + var abort = abortParsingListOrMoveToNextToken(currentListType); + if (abort) { + break; + } + } + } + return TypeScript.Syntax.list(items); + } + function parseSeparatedSyntaxListWorker(currentListType) { + var nodesAndSeparators = []; + var _separatorKind = currentListType === 9 /* ObjectType_TypeMembers */ ? 82 /* SemicolonToken */ : 83 /* CommaToken */; + var allowAutomaticSemicolonInsertion = _separatorKind === 82 /* SemicolonToken */; + var inErrorRecovery = false; + while (true) { + var oldArrayLength = nodesAndSeparators.length; + tryParseExpectedListItem(currentListType, inErrorRecovery, nodesAndSeparators, undefined); + if (nodesAndSeparators.length === oldArrayLength) { + if (listIsTerminated(currentListType)) { + break; + } + var abort = abortParsingListOrMoveToNextToken(currentListType); + if (abort) { + break; + } + else { + inErrorRecovery = true; + continue; + } + } + inErrorRecovery = false; + var _currentToken = currentToken(); + var tokenKind = _currentToken.kind; + if (tokenKind === _separatorKind || tokenKind === 83 /* CommaToken */) { + nodesAndSeparators.push(consumeToken(_currentToken)); + continue; + } + if (listIsTerminated(currentListType)) { + break; + } + if (allowAutomaticSemicolonInsertion && canEatAutomaticSemicolon(false)) { + var semicolonToken = eatExplicitOrAutomaticSemicolon(false) || createEmptyToken(82 /* SemicolonToken */); + nodesAndSeparators.push(semicolonToken); + continue; + } + nodesAndSeparators.push(eatToken(_separatorKind)); + inErrorRecovery = true; + } + return TypeScript.Syntax.separatedList(nodesAndSeparators); + } + function reportUnexpectedTokenDiagnostic(listType) { + var token = currentToken(); + var diagnostic = new TypeScript.Diagnostic(fileName, source.text.lineMap(), TypeScript.start(token, source.text), TypeScript.width(token), TypeScript.DiagnosticCode.Unexpected_token_0_expected, [getExpectedListElementType(listType)]); + addDiagnostic(diagnostic); + } + function addDiagnostic(diagnostic) { + if (diagnostics.length > 0 && diagnostics[diagnostics.length - 1].start() === diagnostic.start()) { + return; + } + diagnostics.push(diagnostic); + } + function isExpectedListTerminator(currentListType) { + switch (currentListType) { + case 0 /* SourceUnit_ModuleElements */: return isExpectedSourceUnit_ModuleElementsTerminator(); + case 1 /* ClassDeclaration_ClassElements */: return isExpectedClassDeclaration_ClassElementsTerminator(); + case 2 /* ModuleDeclaration_ModuleElements */: return isExpectedModuleDeclaration_ModuleElementsTerminator(); + case 3 /* SwitchStatement_SwitchClauses */: return isExpectedSwitchStatement_SwitchClausesTerminator(); + case 4 /* SwitchClause_Statements */: return isExpectedSwitchClause_StatementsTerminator(); + case 5 /* Block_Statements */: return isExpectedBlock_StatementsTerminator(); + case 6 /* TryBlock_Statements */: return isExpectedTryBlock_StatementsTerminator(); + case 7 /* CatchBlock_Statements */: return isExpectedCatchBlock_StatementsTerminator(); + case 8 /* EnumDeclaration_EnumElements */: return isExpectedEnumDeclaration_EnumElementsTerminator(); + case 9 /* ObjectType_TypeMembers */: return isExpectedObjectType_TypeMembersTerminator(); + case 10 /* ClassOrInterfaceDeclaration_HeritageClauses */: return isExpectedClassOrInterfaceDeclaration_HeritageClausesTerminator(); + case 11 /* HeritageClause_TypeNameList */: return isExpectedHeritageClause_TypeNameListTerminator(); + case 12 /* VariableDeclaration_VariableDeclarators */: return isExpectedVariableDeclaration_VariableDeclaratorsTerminator(); + case 13 /* ArgumentList_AssignmentExpressions */: return isExpectedArgumentList_AssignmentExpressionsTerminator(); + case 14 /* ObjectLiteralExpression_PropertyAssignments */: return isExpectedObjectLiteralExpression_PropertyAssignmentsTerminator(); + case 15 /* ArrayLiteralExpression_AssignmentExpressions */: return isExpectedLiteralExpression_AssignmentExpressionsTerminator(); + case 16 /* ParameterList_Parameters */: return isExpectedParameterList_ParametersTerminator(); + case 17 /* IndexSignature_Parameters */: return isExpectedIndexSignature_ParametersTerminator(); + case 18 /* TypeArgumentList_Types */: return isExpectedTypeArgumentList_TypesTerminator(); + case 19 /* TypeParameterList_TypeParameters */: return isExpectedTypeParameterList_TypeParametersTerminator(); + case 20 /* TupleType_Types */: return isExpectedTupleType_TypesTerminator(); + default: + throw TypeScript.Errors.invalidOperation(); + } + } + function isExpectedSourceUnit_ModuleElementsTerminator() { + return currentToken().kind === 8 /* EndOfFileToken */; + } + function isExpectedEnumDeclaration_EnumElementsTerminator() { + return currentToken().kind === 75 /* CloseBraceToken */; + } + function isExpectedModuleDeclaration_ModuleElementsTerminator() { + return currentToken().kind === 75 /* CloseBraceToken */; + } + function isExpectedObjectType_TypeMembersTerminator() { + return currentToken().kind === 75 /* CloseBraceToken */; + } + function isExpectedObjectLiteralExpression_PropertyAssignmentsTerminator() { + return currentToken().kind === 75 /* CloseBraceToken */; + } + function isExpectedLiteralExpression_AssignmentExpressionsTerminator() { + return currentToken().kind === 79 /* CloseBracketToken */; + } + function isExpectedTypeArgumentList_TypesTerminator() { + var token = currentToken(); + var tokenKind = token.kind; + if (tokenKind === 85 /* GreaterThanToken */) { + return true; + } + if (canFollowTypeArgumentListInExpression(tokenKind)) { + return true; + } + return false; + } + function isExpectedTupleType_TypesTerminator() { + var token = currentToken(); + var tokenKind = token.kind; + if (tokenKind === 79 /* CloseBracketToken */) { + return true; + } + return false; + } + function isExpectedTypeParameterList_TypeParametersTerminator() { + var tokenKind = currentToken().kind; + if (tokenKind === 85 /* GreaterThanToken */) { + return true; + } + if (tokenKind === 76 /* OpenParenToken */ || tokenKind === 74 /* OpenBraceToken */ || tokenKind === 50 /* ExtendsKeyword */ || tokenKind === 53 /* ImplementsKeyword */) { + return true; + } + return false; + } + function isExpectedParameterList_ParametersTerminator() { + var tokenKind = currentToken().kind; + if (tokenKind === 77 /* CloseParenToken */) { + return true; + } + if (tokenKind === 74 /* OpenBraceToken */) { + return true; + } + if (tokenKind === 89 /* EqualsGreaterThanToken */) { + return true; + } + return false; + } + function isExpectedIndexSignature_ParametersTerminator() { + var tokenKind = currentToken().kind; + if (tokenKind === 79 /* CloseBracketToken */) { + return true; + } + if (tokenKind === 74 /* OpenBraceToken */) { + return true; + } + return false; + } + function isExpectedVariableDeclaration_VariableDeclaratorsTerminator() { + if (inDisallowInContext()) { + var tokenKind = currentToken().kind; + if (tokenKind === 82 /* SemicolonToken */ || tokenKind === 77 /* CloseParenToken */) { + return true; + } + if (tokenKind === 31 /* InKeyword */) { + return true; + } + return false; + } + else { + if (currentToken().kind === 89 /* EqualsGreaterThanToken */) { + return true; + } + return canEatExplicitOrAutomaticSemicolon(false); + } + } + function isExpectedClassOrInterfaceDeclaration_HeritageClausesTerminator() { + var tokenKind = currentToken().kind; + if (tokenKind === 74 /* OpenBraceToken */ || tokenKind === 75 /* CloseBraceToken */) { + return true; + } + return false; + } + function isExpectedHeritageClause_TypeNameListTerminator() { + var tokenKind = currentToken().kind; + if (tokenKind === 50 /* ExtendsKeyword */ || tokenKind === 53 /* ImplementsKeyword */) { + return true; + } + if (isExpectedClassOrInterfaceDeclaration_HeritageClausesTerminator()) { + return true; + } + return false; + } + function isExpectedArgumentList_AssignmentExpressionsTerminator() { + var token0 = currentToken(); + var tokenKind = token0.kind; + return tokenKind === 77 /* CloseParenToken */ || tokenKind === 82 /* SemicolonToken */; + } + function isExpectedClassDeclaration_ClassElementsTerminator() { + return currentToken().kind === 75 /* CloseBraceToken */; + } + function isExpectedSwitchStatement_SwitchClausesTerminator() { + return currentToken().kind === 75 /* CloseBraceToken */; + } + function isExpectedSwitchClause_StatementsTerminator() { + return currentToken().kind === 75 /* CloseBraceToken */ || isSwitchClause(); + } + function isExpectedBlock_StatementsTerminator() { + return currentToken().kind === 75 /* CloseBraceToken */; + } + function isExpectedTryBlock_StatementsTerminator() { + var tokenKind = currentToken().kind; + return tokenKind === 19 /* CatchKeyword */ || tokenKind === 27 /* FinallyKeyword */; + } + function isExpectedCatchBlock_StatementsTerminator() { + return currentToken().kind === 27 /* FinallyKeyword */; + } + function isExpectedListItem(currentListType, inErrorRecovery) { + switch (currentListType) { + case 0 /* SourceUnit_ModuleElements */: return isModuleElement(inErrorRecovery); + case 1 /* ClassDeclaration_ClassElements */: return isClassElement(inErrorRecovery); + case 2 /* ModuleDeclaration_ModuleElements */: return isModuleElement(inErrorRecovery); + case 3 /* SwitchStatement_SwitchClauses */: return isSwitchClause(); + case 4 /* SwitchClause_Statements */: return isStatement(modifierCount(), inErrorRecovery); + case 5 /* Block_Statements */: return isStatement(modifierCount(), inErrorRecovery); + case 6 /* TryBlock_Statements */: return false; + case 7 /* CatchBlock_Statements */: return false; + case 8 /* EnumDeclaration_EnumElements */: return isEnumElement(inErrorRecovery); + case 9 /* ObjectType_TypeMembers */: return isTypeMember(inErrorRecovery); + case 10 /* ClassOrInterfaceDeclaration_HeritageClauses */: return isHeritageClause(); + case 11 /* HeritageClause_TypeNameList */: return isHeritageClauseTypeName(); + case 12 /* VariableDeclaration_VariableDeclarators */: return isVariableDeclarator(); + case 13 /* ArgumentList_AssignmentExpressions */: return isExpectedArgumentList_AssignmentExpression(); + case 14 /* ObjectLiteralExpression_PropertyAssignments */: return isPropertyAssignment(inErrorRecovery); + case 15 /* ArrayLiteralExpression_AssignmentExpressions */: return isAssignmentOrOmittedExpression(); + case 16 /* ParameterList_Parameters */: return isParameter(); + case 17 /* IndexSignature_Parameters */: return isParameter(); + case 18 /* TypeArgumentList_Types */: return isType(); + case 19 /* TypeParameterList_TypeParameters */: return isTypeParameter(); + case 20 /* TupleType_Types */: return isType(); + default: throw TypeScript.Errors.invalidOperation(); + } + } + function isExpectedArgumentList_AssignmentExpression() { + var _currentToken = currentToken(); + if (isExpression(_currentToken)) { + return true; + } + if (_currentToken.kind === 83 /* CommaToken */) { + return true; + } + return false; + } + function tryParseExpectedListItemWorker(currentListType, inErrorRecovery) { + switch (currentListType) { + case 0 /* SourceUnit_ModuleElements */: return tryParseModuleElement(inErrorRecovery); + case 1 /* ClassDeclaration_ClassElements */: return tryParseClassElement(inErrorRecovery); + case 2 /* ModuleDeclaration_ModuleElements */: return tryParseModuleElement(inErrorRecovery); + case 3 /* SwitchStatement_SwitchClauses */: return tryParseSwitchClause(); + case 4 /* SwitchClause_Statements */: return tryParseStatement(inErrorRecovery); + case 5 /* Block_Statements */: return tryParseStatement(inErrorRecovery); + case 6 /* TryBlock_Statements */: return tryParseStatement(inErrorRecovery); + case 7 /* CatchBlock_Statements */: return tryParseStatement(inErrorRecovery); + case 8 /* EnumDeclaration_EnumElements */: return tryParseEnumElement(inErrorRecovery); + case 9 /* ObjectType_TypeMembers */: return tryParseTypeMember(inErrorRecovery); + case 10 /* ClassOrInterfaceDeclaration_HeritageClauses */: return tryParseHeritageClause(); + case 11 /* HeritageClause_TypeNameList */: return tryParseHeritageClauseTypeName(); + case 12 /* VariableDeclaration_VariableDeclarators */: return tryParseVariableDeclarator(); + case 13 /* ArgumentList_AssignmentExpressions */: return tryParseArgumentListExpression(); + case 14 /* ObjectLiteralExpression_PropertyAssignments */: return tryParsePropertyAssignment(inErrorRecovery); + case 15 /* ArrayLiteralExpression_AssignmentExpressions */: return tryParseAssignmentOrOmittedExpression(); + case 16 /* ParameterList_Parameters */: return tryParseParameter(); + case 17 /* IndexSignature_Parameters */: return tryParseParameter(); + case 18 /* TypeArgumentList_Types */: return tryParseType(); + case 19 /* TypeParameterList_TypeParameters */: return tryParseTypeParameter(); + case 20 /* TupleType_Types */: return tryParseType(); + default: throw TypeScript.Errors.invalidOperation(); + } + } + function getExpectedListElementType(currentListType) { + switch (currentListType) { + case 0 /* SourceUnit_ModuleElements */: return TypeScript.getLocalizedText(TypeScript.DiagnosticCode.module_class_interface_enum_import_or_statement, undefined); + case 10 /* ClassOrInterfaceDeclaration_HeritageClauses */: return '{'; + case 1 /* ClassDeclaration_ClassElements */: return TypeScript.getLocalizedText(TypeScript.DiagnosticCode.constructor_function_accessor_or_variable, undefined); + case 2 /* ModuleDeclaration_ModuleElements */: return TypeScript.getLocalizedText(TypeScript.DiagnosticCode.module_class_interface_enum_import_or_statement, undefined); + case 3 /* SwitchStatement_SwitchClauses */: return TypeScript.getLocalizedText(TypeScript.DiagnosticCode.case_or_default_clause, undefined); + case 4 /* SwitchClause_Statements */: return TypeScript.getLocalizedText(TypeScript.DiagnosticCode.statement, undefined); + case 5 /* Block_Statements */: return TypeScript.getLocalizedText(TypeScript.DiagnosticCode.statement, undefined); + case 12 /* VariableDeclaration_VariableDeclarators */: return TypeScript.getLocalizedText(TypeScript.DiagnosticCode.identifier, undefined); + case 8 /* EnumDeclaration_EnumElements */: return TypeScript.getLocalizedText(TypeScript.DiagnosticCode.identifier, undefined); + case 9 /* ObjectType_TypeMembers */: return TypeScript.getLocalizedText(TypeScript.DiagnosticCode.call_construct_index_property_or_function_signature, undefined); + case 13 /* ArgumentList_AssignmentExpressions */: return TypeScript.getLocalizedText(TypeScript.DiagnosticCode.expression, undefined); + case 11 /* HeritageClause_TypeNameList */: return TypeScript.getLocalizedText(TypeScript.DiagnosticCode.type_name, undefined); + case 14 /* ObjectLiteralExpression_PropertyAssignments */: return TypeScript.getLocalizedText(TypeScript.DiagnosticCode.property_or_accessor, undefined); + case 16 /* ParameterList_Parameters */: return TypeScript.getLocalizedText(TypeScript.DiagnosticCode.parameter, undefined); + case 17 /* IndexSignature_Parameters */: return TypeScript.getLocalizedText(TypeScript.DiagnosticCode.parameter, undefined); + case 18 /* TypeArgumentList_Types */: return TypeScript.getLocalizedText(TypeScript.DiagnosticCode.type, undefined); + case 19 /* TypeParameterList_TypeParameters */: return TypeScript.getLocalizedText(TypeScript.DiagnosticCode.type_parameter, undefined); + case 20 /* TupleType_Types */: return TypeScript.getLocalizedText(TypeScript.DiagnosticCode.type, undefined); + case 15 /* ArrayLiteralExpression_AssignmentExpressions */: return TypeScript.getLocalizedText(TypeScript.DiagnosticCode.expression, undefined); + default: throw TypeScript.Errors.invalidOperation(); + } + } + return parseSyntaxTree; + } + var BinaryExpressionPrecedence; + (function (BinaryExpressionPrecedence) { + BinaryExpressionPrecedence[BinaryExpressionPrecedence["Lowest"] = 1] = "Lowest"; + BinaryExpressionPrecedence[BinaryExpressionPrecedence["LogicalOrExpressionPrecedence"] = 2] = "LogicalOrExpressionPrecedence"; + BinaryExpressionPrecedence[BinaryExpressionPrecedence["LogicalAndExpressionPrecedence"] = 3] = "LogicalAndExpressionPrecedence"; + BinaryExpressionPrecedence[BinaryExpressionPrecedence["BitwiseOrExpressionPrecedence"] = 4] = "BitwiseOrExpressionPrecedence"; + BinaryExpressionPrecedence[BinaryExpressionPrecedence["BitwiseExclusiveOrExpressionPrecedence"] = 5] = "BitwiseExclusiveOrExpressionPrecedence"; + BinaryExpressionPrecedence[BinaryExpressionPrecedence["BitwiseAndExpressionPrecedence"] = 6] = "BitwiseAndExpressionPrecedence"; + BinaryExpressionPrecedence[BinaryExpressionPrecedence["EqualityExpressionPrecedence"] = 7] = "EqualityExpressionPrecedence"; + BinaryExpressionPrecedence[BinaryExpressionPrecedence["RelationalExpressionPrecedence"] = 8] = "RelationalExpressionPrecedence"; + BinaryExpressionPrecedence[BinaryExpressionPrecedence["ShiftExpressionPrecdence"] = 9] = "ShiftExpressionPrecdence"; + BinaryExpressionPrecedence[BinaryExpressionPrecedence["AdditiveExpressionPrecedence"] = 10] = "AdditiveExpressionPrecedence"; + BinaryExpressionPrecedence[BinaryExpressionPrecedence["MultiplicativeExpressionPrecedence"] = 11] = "MultiplicativeExpressionPrecedence"; + })(BinaryExpressionPrecedence || (BinaryExpressionPrecedence = {})); + var ListParsingState; + (function (ListParsingState) { + ListParsingState[ListParsingState["SourceUnit_ModuleElements"] = 0] = "SourceUnit_ModuleElements"; + ListParsingState[ListParsingState["ClassDeclaration_ClassElements"] = 1] = "ClassDeclaration_ClassElements"; + ListParsingState[ListParsingState["ModuleDeclaration_ModuleElements"] = 2] = "ModuleDeclaration_ModuleElements"; + ListParsingState[ListParsingState["SwitchStatement_SwitchClauses"] = 3] = "SwitchStatement_SwitchClauses"; + ListParsingState[ListParsingState["SwitchClause_Statements"] = 4] = "SwitchClause_Statements"; + ListParsingState[ListParsingState["Block_Statements"] = 5] = "Block_Statements"; + ListParsingState[ListParsingState["TryBlock_Statements"] = 6] = "TryBlock_Statements"; + ListParsingState[ListParsingState["CatchBlock_Statements"] = 7] = "CatchBlock_Statements"; + ListParsingState[ListParsingState["EnumDeclaration_EnumElements"] = 8] = "EnumDeclaration_EnumElements"; + ListParsingState[ListParsingState["ObjectType_TypeMembers"] = 9] = "ObjectType_TypeMembers"; + ListParsingState[ListParsingState["ClassOrInterfaceDeclaration_HeritageClauses"] = 10] = "ClassOrInterfaceDeclaration_HeritageClauses"; + ListParsingState[ListParsingState["HeritageClause_TypeNameList"] = 11] = "HeritageClause_TypeNameList"; + ListParsingState[ListParsingState["VariableDeclaration_VariableDeclarators"] = 12] = "VariableDeclaration_VariableDeclarators"; + ListParsingState[ListParsingState["ArgumentList_AssignmentExpressions"] = 13] = "ArgumentList_AssignmentExpressions"; + ListParsingState[ListParsingState["ObjectLiteralExpression_PropertyAssignments"] = 14] = "ObjectLiteralExpression_PropertyAssignments"; + ListParsingState[ListParsingState["ArrayLiteralExpression_AssignmentExpressions"] = 15] = "ArrayLiteralExpression_AssignmentExpressions"; + ListParsingState[ListParsingState["ParameterList_Parameters"] = 16] = "ParameterList_Parameters"; + ListParsingState[ListParsingState["IndexSignature_Parameters"] = 17] = "IndexSignature_Parameters"; + ListParsingState[ListParsingState["TypeArgumentList_Types"] = 18] = "TypeArgumentList_Types"; + ListParsingState[ListParsingState["TypeParameterList_TypeParameters"] = 19] = "TypeParameterList_TypeParameters"; + ListParsingState[ListParsingState["TupleType_Types"] = 20] = "TupleType_Types"; + ListParsingState[ListParsingState["FirstListParsingState"] = ListParsingState.SourceUnit_ModuleElements] = "FirstListParsingState"; + ListParsingState[ListParsingState["LastListParsingState"] = ListParsingState.TupleType_Types] = "LastListParsingState"; + })(ListParsingState || (ListParsingState = {})); + TypeScript.Debug.assert(ListParsingState.LastListParsingState <= 30); + var parseSyntaxTree = createParseSyntaxTree(); + function parse(fileName, text, languageVersion, isDeclaration) { + return parseSource(TypeScript.Scanner.createParserSource(fileName, text, languageVersion), isDeclaration); + } + Parser.parse = parse; + function parseSource(source, isDeclaration) { + return parseSyntaxTree(source, isDeclaration); + } + Parser.parseSource = parseSource; + })(Parser = TypeScript.Parser || (TypeScript.Parser = {})); +})(TypeScript || (TypeScript = {})); +var TypeScript; +(function (TypeScript) { + TypeScript.SourceUnitSyntax = function (data, moduleElements, endOfFileToken) { + if (data) { + this.__data = data; + } + this.moduleElements = moduleElements, this.endOfFileToken = endOfFileToken, moduleElements.parent = this, endOfFileToken.parent = this; + }; + TypeScript.SourceUnitSyntax.prototype.kind = 124 /* SourceUnit */; + TypeScript.SourceUnitSyntax.prototype.childCount = 2; + TypeScript.SourceUnitSyntax.prototype.childAt = function (index) { + switch (index) { + case 0: return this.moduleElements; + case 1: return this.endOfFileToken; + } + }; + TypeScript.QualifiedNameSyntax = function (data, left, dotToken, right) { + if (data) { + this.__data = data; + } + this.left = left, this.dotToken = dotToken, this.right = right, left.parent = this, dotToken.parent = this, right.parent = this; + }; + TypeScript.QualifiedNameSyntax.prototype.kind = 125 /* QualifiedName */; + TypeScript.QualifiedNameSyntax.prototype.childCount = 3; + TypeScript.QualifiedNameSyntax.prototype.childAt = function (index) { + switch (index) { + case 0: return this.left; + case 1: return this.dotToken; + case 2: return this.right; + } + }; + TypeScript.ObjectTypeSyntax = function (data, openBraceToken, typeMembers, closeBraceToken) { + if (data) { + this.__data = data; + } + this.openBraceToken = openBraceToken, this.typeMembers = typeMembers, this.closeBraceToken = closeBraceToken, openBraceToken.parent = this, typeMembers.parent = this, closeBraceToken.parent = this; + }; + TypeScript.ObjectTypeSyntax.prototype.kind = 126 /* ObjectType */; + TypeScript.ObjectTypeSyntax.prototype.childCount = 3; + TypeScript.ObjectTypeSyntax.prototype.childAt = function (index) { + switch (index) { + case 0: return this.openBraceToken; + case 1: return this.typeMembers; + case 2: return this.closeBraceToken; + } + }; + TypeScript.FunctionTypeSyntax = function (data, typeParameterList, parameterList, equalsGreaterThanToken, type) { + if (data) { + this.__data = data; + } + this.typeParameterList = typeParameterList, this.parameterList = parameterList, this.equalsGreaterThanToken = equalsGreaterThanToken, this.type = type, typeParameterList && (typeParameterList.parent = this), parameterList.parent = this, equalsGreaterThanToken.parent = this, type.parent = this; + }; + TypeScript.FunctionTypeSyntax.prototype.kind = 127 /* FunctionType */; + TypeScript.FunctionTypeSyntax.prototype.childCount = 4; + TypeScript.FunctionTypeSyntax.prototype.childAt = function (index) { + switch (index) { + case 0: return this.typeParameterList; + case 1: return this.parameterList; + case 2: return this.equalsGreaterThanToken; + case 3: return this.type; + } + }; + TypeScript.ArrayTypeSyntax = function (data, type, openBracketToken, closeBracketToken) { + if (data) { + this.__data = data; + } + this.type = type, this.openBracketToken = openBracketToken, this.closeBracketToken = closeBracketToken, type.parent = this, openBracketToken.parent = this, closeBracketToken.parent = this; + }; + TypeScript.ArrayTypeSyntax.prototype.kind = 128 /* ArrayType */; + TypeScript.ArrayTypeSyntax.prototype.childCount = 3; + TypeScript.ArrayTypeSyntax.prototype.childAt = function (index) { + switch (index) { + case 0: return this.type; + case 1: return this.openBracketToken; + case 2: return this.closeBracketToken; + } + }; + TypeScript.ConstructorTypeSyntax = function (data, newKeyword, typeParameterList, parameterList, equalsGreaterThanToken, type) { + if (data) { + this.__data = data; + } + this.newKeyword = newKeyword, this.typeParameterList = typeParameterList, this.parameterList = parameterList, this.equalsGreaterThanToken = equalsGreaterThanToken, this.type = type, newKeyword.parent = this, typeParameterList && (typeParameterList.parent = this), parameterList.parent = this, equalsGreaterThanToken.parent = this, type.parent = this; + }; + TypeScript.ConstructorTypeSyntax.prototype.kind = 129 /* ConstructorType */; + TypeScript.ConstructorTypeSyntax.prototype.childCount = 5; + TypeScript.ConstructorTypeSyntax.prototype.childAt = function (index) { + switch (index) { + case 0: return this.newKeyword; + case 1: return this.typeParameterList; + case 2: return this.parameterList; + case 3: return this.equalsGreaterThanToken; + case 4: return this.type; + } + }; + TypeScript.GenericTypeSyntax = function (data, name, typeArgumentList) { + if (data) { + this.__data = data; + } + this.name = name, this.typeArgumentList = typeArgumentList, name.parent = this, typeArgumentList.parent = this; + }; + TypeScript.GenericTypeSyntax.prototype.kind = 130 /* GenericType */; + TypeScript.GenericTypeSyntax.prototype.childCount = 2; + TypeScript.GenericTypeSyntax.prototype.childAt = function (index) { + switch (index) { + case 0: return this.name; + case 1: return this.typeArgumentList; + } + }; + TypeScript.TypeQuerySyntax = function (data, typeOfKeyword, name) { + if (data) { + this.__data = data; + } + this.typeOfKeyword = typeOfKeyword, this.name = name, typeOfKeyword.parent = this, name.parent = this; + }; + TypeScript.TypeQuerySyntax.prototype.kind = 131 /* TypeQuery */; + TypeScript.TypeQuerySyntax.prototype.childCount = 2; + TypeScript.TypeQuerySyntax.prototype.childAt = function (index) { + switch (index) { + case 0: return this.typeOfKeyword; + case 1: return this.name; + } + }; + TypeScript.TupleTypeSyntax = function (data, openBracketToken, types, closeBracketToken) { + if (data) { + this.__data = data; + } + this.openBracketToken = openBracketToken, this.types = types, this.closeBracketToken = closeBracketToken, openBracketToken.parent = this, types.parent = this, closeBracketToken.parent = this; + }; + TypeScript.TupleTypeSyntax.prototype.kind = 132 /* TupleType */; + TypeScript.TupleTypeSyntax.prototype.childCount = 3; + TypeScript.TupleTypeSyntax.prototype.childAt = function (index) { + switch (index) { + case 0: return this.openBracketToken; + case 1: return this.types; + case 2: return this.closeBracketToken; + } + }; + TypeScript.UnionTypeSyntax = function (data, left, barToken, right) { + if (data) { + this.__data = data; + } + this.left = left, this.barToken = barToken, this.right = right, left.parent = this, barToken.parent = this, right.parent = this; + }; + TypeScript.UnionTypeSyntax.prototype.kind = 133 /* UnionType */; + TypeScript.UnionTypeSyntax.prototype.childCount = 3; + TypeScript.UnionTypeSyntax.prototype.childAt = function (index) { + switch (index) { + case 0: return this.left; + case 1: return this.barToken; + case 2: return this.right; + } + }; + TypeScript.ParenthesizedTypeSyntax = function (data, openParenToken, type, closeParenToken) { + if (data) { + this.__data = data; + } + this.openParenToken = openParenToken, this.type = type, this.closeParenToken = closeParenToken, openParenToken.parent = this, type.parent = this, closeParenToken.parent = this; + }; + TypeScript.ParenthesizedTypeSyntax.prototype.kind = 134 /* ParenthesizedType */; + TypeScript.ParenthesizedTypeSyntax.prototype.childCount = 3; + TypeScript.ParenthesizedTypeSyntax.prototype.childAt = function (index) { + switch (index) { + case 0: return this.openParenToken; + case 1: return this.type; + case 2: return this.closeParenToken; + } + }; + TypeScript.InterfaceDeclarationSyntax = function (data, modifiers, interfaceKeyword, identifier, typeParameterList, heritageClauses, body) { + if (data) { + this.__data = data; + } + this.modifiers = modifiers, this.interfaceKeyword = interfaceKeyword, this.identifier = identifier, this.typeParameterList = typeParameterList, this.heritageClauses = heritageClauses, this.body = body, modifiers.parent = this, interfaceKeyword.parent = this, identifier.parent = this, typeParameterList && (typeParameterList.parent = this), heritageClauses.parent = this, body.parent = this; + }; + TypeScript.InterfaceDeclarationSyntax.prototype.kind = 135 /* InterfaceDeclaration */; + TypeScript.InterfaceDeclarationSyntax.prototype.childCount = 6; + TypeScript.InterfaceDeclarationSyntax.prototype.childAt = function (index) { + switch (index) { + case 0: return this.modifiers; + case 1: return this.interfaceKeyword; + case 2: return this.identifier; + case 3: return this.typeParameterList; + case 4: return this.heritageClauses; + case 5: return this.body; + } + }; + TypeScript.FunctionDeclarationSyntax = function (data, modifiers, functionKeyword, asterixToken, identifier, callSignature, body) { + if (data) { + this.__data = data; + } + this.modifiers = modifiers, this.functionKeyword = functionKeyword, this.asterixToken = asterixToken, this.identifier = identifier, this.callSignature = callSignature, this.body = body, modifiers.parent = this, functionKeyword.parent = this, asterixToken && (asterixToken.parent = this), identifier.parent = this, callSignature.parent = this, body && (body.parent = this); + }; + TypeScript.FunctionDeclarationSyntax.prototype.kind = 136 /* FunctionDeclaration */; + TypeScript.FunctionDeclarationSyntax.prototype.childCount = 6; + TypeScript.FunctionDeclarationSyntax.prototype.childAt = function (index) { + switch (index) { + case 0: return this.modifiers; + case 1: return this.functionKeyword; + case 2: return this.asterixToken; + case 3: return this.identifier; + case 4: return this.callSignature; + case 5: return this.body; + } + }; + TypeScript.ModuleDeclarationSyntax = function (data, modifiers, moduleKeyword, name, openBraceToken, moduleElements, closeBraceToken) { + if (data) { + this.__data = data; + } + this.modifiers = modifiers, this.moduleKeyword = moduleKeyword, this.name = name, this.openBraceToken = openBraceToken, this.moduleElements = moduleElements, this.closeBraceToken = closeBraceToken, modifiers.parent = this, moduleKeyword.parent = this, name.parent = this, openBraceToken.parent = this, moduleElements.parent = this, closeBraceToken.parent = this; + }; + TypeScript.ModuleDeclarationSyntax.prototype.kind = 137 /* ModuleDeclaration */; + TypeScript.ModuleDeclarationSyntax.prototype.childCount = 6; + TypeScript.ModuleDeclarationSyntax.prototype.childAt = function (index) { + switch (index) { + case 0: return this.modifiers; + case 1: return this.moduleKeyword; + case 2: return this.name; + case 3: return this.openBraceToken; + case 4: return this.moduleElements; + case 5: return this.closeBraceToken; + } + }; + TypeScript.ClassDeclarationSyntax = function (data, modifiers, classKeyword, identifier, typeParameterList, heritageClauses, openBraceToken, classElements, closeBraceToken) { + if (data) { + this.__data = data; + } + this.modifiers = modifiers, this.classKeyword = classKeyword, this.identifier = identifier, this.typeParameterList = typeParameterList, this.heritageClauses = heritageClauses, this.openBraceToken = openBraceToken, this.classElements = classElements, this.closeBraceToken = closeBraceToken, modifiers.parent = this, classKeyword.parent = this, identifier.parent = this, typeParameterList && (typeParameterList.parent = this), heritageClauses.parent = this, openBraceToken.parent = this, classElements.parent = this, closeBraceToken.parent = this; + }; + TypeScript.ClassDeclarationSyntax.prototype.kind = 138 /* ClassDeclaration */; + TypeScript.ClassDeclarationSyntax.prototype.childCount = 8; + TypeScript.ClassDeclarationSyntax.prototype.childAt = function (index) { + switch (index) { + case 0: return this.modifiers; + case 1: return this.classKeyword; + case 2: return this.identifier; + case 3: return this.typeParameterList; + case 4: return this.heritageClauses; + case 5: return this.openBraceToken; + case 6: return this.classElements; + case 7: return this.closeBraceToken; + } + }; + TypeScript.EnumDeclarationSyntax = function (data, modifiers, enumKeyword, identifier, openBraceToken, enumElements, closeBraceToken) { + if (data) { + this.__data = data; + } + this.modifiers = modifiers, this.enumKeyword = enumKeyword, this.identifier = identifier, this.openBraceToken = openBraceToken, this.enumElements = enumElements, this.closeBraceToken = closeBraceToken, modifiers.parent = this, enumKeyword.parent = this, identifier.parent = this, openBraceToken.parent = this, enumElements.parent = this, closeBraceToken.parent = this; + }; + TypeScript.EnumDeclarationSyntax.prototype.kind = 139 /* EnumDeclaration */; + TypeScript.EnumDeclarationSyntax.prototype.childCount = 6; + TypeScript.EnumDeclarationSyntax.prototype.childAt = function (index) { + switch (index) { + case 0: return this.modifiers; + case 1: return this.enumKeyword; + case 2: return this.identifier; + case 3: return this.openBraceToken; + case 4: return this.enumElements; + case 5: return this.closeBraceToken; + } + }; + TypeScript.ImportDeclarationSyntax = function (data, modifiers, importKeyword, identifier, equalsToken, moduleReference, semicolonToken) { + if (data) { + this.__data = data; + } + this.modifiers = modifiers, this.importKeyword = importKeyword, this.identifier = identifier, this.equalsToken = equalsToken, this.moduleReference = moduleReference, this.semicolonToken = semicolonToken, modifiers.parent = this, importKeyword.parent = this, identifier.parent = this, equalsToken.parent = this, moduleReference.parent = this, semicolonToken && (semicolonToken.parent = this); + }; + TypeScript.ImportDeclarationSyntax.prototype.kind = 140 /* ImportDeclaration */; + TypeScript.ImportDeclarationSyntax.prototype.childCount = 6; + TypeScript.ImportDeclarationSyntax.prototype.childAt = function (index) { + switch (index) { + case 0: return this.modifiers; + case 1: return this.importKeyword; + case 2: return this.identifier; + case 3: return this.equalsToken; + case 4: return this.moduleReference; + case 5: return this.semicolonToken; + } + }; + TypeScript.ExportAssignmentSyntax = function (data, modifiers, exportKeyword, equalsToken, identifier, semicolonToken) { + if (data) { + this.__data = data; + } + this.modifiers = modifiers, this.exportKeyword = exportKeyword, this.equalsToken = equalsToken, this.identifier = identifier, this.semicolonToken = semicolonToken, modifiers.parent = this, exportKeyword.parent = this, equalsToken.parent = this, identifier.parent = this, semicolonToken && (semicolonToken.parent = this); + }; + TypeScript.ExportAssignmentSyntax.prototype.kind = 141 /* ExportAssignment */; + TypeScript.ExportAssignmentSyntax.prototype.childCount = 5; + TypeScript.ExportAssignmentSyntax.prototype.childAt = function (index) { + switch (index) { + case 0: return this.modifiers; + case 1: return this.exportKeyword; + case 2: return this.equalsToken; + case 3: return this.identifier; + case 4: return this.semicolonToken; + } + }; + TypeScript.MemberFunctionDeclarationSyntax = function (data, modifiers, asterixToken, propertyName, callSignature, body) { + if (data) { + this.__data = data; + } + this.modifiers = modifiers, this.asterixToken = asterixToken, this.propertyName = propertyName, this.callSignature = callSignature, this.body = body, modifiers.parent = this, asterixToken && (asterixToken.parent = this), propertyName.parent = this, callSignature.parent = this, body && (body.parent = this); + }; + TypeScript.MemberFunctionDeclarationSyntax.prototype.kind = 142 /* MemberFunctionDeclaration */; + TypeScript.MemberFunctionDeclarationSyntax.prototype.childCount = 5; + TypeScript.MemberFunctionDeclarationSyntax.prototype.childAt = function (index) { + switch (index) { + case 0: return this.modifiers; + case 1: return this.asterixToken; + case 2: return this.propertyName; + case 3: return this.callSignature; + case 4: return this.body; + } + }; + TypeScript.MemberVariableDeclarationSyntax = function (data, modifiers, variableDeclarator, semicolonToken) { + if (data) { + this.__data = data; + } + this.modifiers = modifiers, this.variableDeclarator = variableDeclarator, this.semicolonToken = semicolonToken, modifiers.parent = this, variableDeclarator.parent = this, semicolonToken && (semicolonToken.parent = this); + }; + TypeScript.MemberVariableDeclarationSyntax.prototype.kind = 143 /* MemberVariableDeclaration */; + TypeScript.MemberVariableDeclarationSyntax.prototype.childCount = 3; + TypeScript.MemberVariableDeclarationSyntax.prototype.childAt = function (index) { + switch (index) { + case 0: return this.modifiers; + case 1: return this.variableDeclarator; + case 2: return this.semicolonToken; + } + }; + TypeScript.ConstructorDeclarationSyntax = function (data, modifiers, constructorKeyword, callSignature, body) { + if (data) { + this.__data = data; + } + this.modifiers = modifiers, this.constructorKeyword = constructorKeyword, this.callSignature = callSignature, this.body = body, modifiers.parent = this, constructorKeyword.parent = this, callSignature.parent = this, body && (body.parent = this); + }; + TypeScript.ConstructorDeclarationSyntax.prototype.kind = 144 /* ConstructorDeclaration */; + TypeScript.ConstructorDeclarationSyntax.prototype.childCount = 4; + TypeScript.ConstructorDeclarationSyntax.prototype.childAt = function (index) { + switch (index) { + case 0: return this.modifiers; + case 1: return this.constructorKeyword; + case 2: return this.callSignature; + case 3: return this.body; + } + }; + TypeScript.IndexMemberDeclarationSyntax = function (data, modifiers, indexSignature, semicolonToken) { + if (data) { + this.__data = data; + } + this.modifiers = modifiers, this.indexSignature = indexSignature, this.semicolonToken = semicolonToken, modifiers.parent = this, indexSignature.parent = this, semicolonToken && (semicolonToken.parent = this); + }; + TypeScript.IndexMemberDeclarationSyntax.prototype.kind = 145 /* IndexMemberDeclaration */; + TypeScript.IndexMemberDeclarationSyntax.prototype.childCount = 3; + TypeScript.IndexMemberDeclarationSyntax.prototype.childAt = function (index) { + switch (index) { + case 0: return this.modifiers; + case 1: return this.indexSignature; + case 2: return this.semicolonToken; + } + }; + TypeScript.GetAccessorSyntax = function (data, modifiers, getKeyword, propertyName, callSignature, body) { + if (data) { + this.__data = data; + } + this.modifiers = modifiers, this.getKeyword = getKeyword, this.propertyName = propertyName, this.callSignature = callSignature, this.body = body, modifiers.parent = this, getKeyword.parent = this, propertyName.parent = this, callSignature.parent = this, body && (body.parent = this); + }; + TypeScript.GetAccessorSyntax.prototype.kind = 146 /* GetAccessor */; + TypeScript.GetAccessorSyntax.prototype.childCount = 5; + TypeScript.GetAccessorSyntax.prototype.childAt = function (index) { + switch (index) { + case 0: return this.modifiers; + case 1: return this.getKeyword; + case 2: return this.propertyName; + case 3: return this.callSignature; + case 4: return this.body; + } + }; + TypeScript.SetAccessorSyntax = function (data, modifiers, setKeyword, propertyName, callSignature, body) { + if (data) { + this.__data = data; + } + this.modifiers = modifiers, this.setKeyword = setKeyword, this.propertyName = propertyName, this.callSignature = callSignature, this.body = body, modifiers.parent = this, setKeyword.parent = this, propertyName.parent = this, callSignature.parent = this, body && (body.parent = this); + }; + TypeScript.SetAccessorSyntax.prototype.kind = 147 /* SetAccessor */; + TypeScript.SetAccessorSyntax.prototype.childCount = 5; + TypeScript.SetAccessorSyntax.prototype.childAt = function (index) { + switch (index) { + case 0: return this.modifiers; + case 1: return this.setKeyword; + case 2: return this.propertyName; + case 3: return this.callSignature; + case 4: return this.body; + } + }; + TypeScript.PropertySignatureSyntax = function (data, propertyName, questionToken, typeAnnotation) { + if (data) { + this.__data = data; + } + this.propertyName = propertyName, this.questionToken = questionToken, this.typeAnnotation = typeAnnotation, propertyName.parent = this, questionToken && (questionToken.parent = this), typeAnnotation && (typeAnnotation.parent = this); + }; + TypeScript.PropertySignatureSyntax.prototype.kind = 148 /* PropertySignature */; + TypeScript.PropertySignatureSyntax.prototype.childCount = 3; + TypeScript.PropertySignatureSyntax.prototype.childAt = function (index) { + switch (index) { + case 0: return this.propertyName; + case 1: return this.questionToken; + case 2: return this.typeAnnotation; + } + }; + TypeScript.CallSignatureSyntax = function (data, typeParameterList, parameterList, typeAnnotation) { + if (data) { + this.__data = data; + } + this.typeParameterList = typeParameterList, this.parameterList = parameterList, this.typeAnnotation = typeAnnotation, typeParameterList && (typeParameterList.parent = this), parameterList.parent = this, typeAnnotation && (typeAnnotation.parent = this); + }; + TypeScript.CallSignatureSyntax.prototype.kind = 149 /* CallSignature */; + TypeScript.CallSignatureSyntax.prototype.childCount = 3; + TypeScript.CallSignatureSyntax.prototype.childAt = function (index) { + switch (index) { + case 0: return this.typeParameterList; + case 1: return this.parameterList; + case 2: return this.typeAnnotation; + } + }; + TypeScript.ConstructSignatureSyntax = function (data, newKeyword, callSignature) { + if (data) { + this.__data = data; + } + this.newKeyword = newKeyword, this.callSignature = callSignature, newKeyword.parent = this, callSignature.parent = this; + }; + TypeScript.ConstructSignatureSyntax.prototype.kind = 150 /* ConstructSignature */; + TypeScript.ConstructSignatureSyntax.prototype.childCount = 2; + TypeScript.ConstructSignatureSyntax.prototype.childAt = function (index) { + switch (index) { + case 0: return this.newKeyword; + case 1: return this.callSignature; + } + }; + TypeScript.IndexSignatureSyntax = function (data, openBracketToken, parameters, closeBracketToken, typeAnnotation) { + if (data) { + this.__data = data; + } + this.openBracketToken = openBracketToken, this.parameters = parameters, this.closeBracketToken = closeBracketToken, this.typeAnnotation = typeAnnotation, openBracketToken.parent = this, parameters.parent = this, closeBracketToken.parent = this, typeAnnotation && (typeAnnotation.parent = this); + }; + TypeScript.IndexSignatureSyntax.prototype.kind = 151 /* IndexSignature */; + TypeScript.IndexSignatureSyntax.prototype.childCount = 4; + TypeScript.IndexSignatureSyntax.prototype.childAt = function (index) { + switch (index) { + case 0: return this.openBracketToken; + case 1: return this.parameters; + case 2: return this.closeBracketToken; + case 3: return this.typeAnnotation; + } + }; + TypeScript.MethodSignatureSyntax = function (data, propertyName, questionToken, callSignature) { + if (data) { + this.__data = data; + } + this.propertyName = propertyName, this.questionToken = questionToken, this.callSignature = callSignature, propertyName.parent = this, questionToken && (questionToken.parent = this), callSignature.parent = this; + }; + TypeScript.MethodSignatureSyntax.prototype.kind = 152 /* MethodSignature */; + TypeScript.MethodSignatureSyntax.prototype.childCount = 3; + TypeScript.MethodSignatureSyntax.prototype.childAt = function (index) { + switch (index) { + case 0: return this.propertyName; + case 1: return this.questionToken; + case 2: return this.callSignature; + } + }; + TypeScript.BlockSyntax = function (data, equalsGreaterThanToken, openBraceToken, statements, closeBraceToken) { + if (data) { + this.__data = data; + } + this.equalsGreaterThanToken = equalsGreaterThanToken, this.openBraceToken = openBraceToken, this.statements = statements, this.closeBraceToken = closeBraceToken, equalsGreaterThanToken && (equalsGreaterThanToken.parent = this), openBraceToken.parent = this, statements.parent = this, closeBraceToken.parent = this; + }; + TypeScript.BlockSyntax.prototype.kind = 153 /* Block */; + TypeScript.BlockSyntax.prototype.childCount = 4; + TypeScript.BlockSyntax.prototype.childAt = function (index) { + switch (index) { + case 0: return this.equalsGreaterThanToken; + case 1: return this.openBraceToken; + case 2: return this.statements; + case 3: return this.closeBraceToken; + } + }; + TypeScript.IfStatementSyntax = function (data, ifKeyword, openParenToken, condition, closeParenToken, statement, elseClause) { + if (data) { + this.__data = data; + } + this.ifKeyword = ifKeyword, this.openParenToken = openParenToken, this.condition = condition, this.closeParenToken = closeParenToken, this.statement = statement, this.elseClause = elseClause, ifKeyword.parent = this, openParenToken.parent = this, condition.parent = this, closeParenToken.parent = this, statement.parent = this, elseClause && (elseClause.parent = this); + }; + TypeScript.IfStatementSyntax.prototype.kind = 154 /* IfStatement */; + TypeScript.IfStatementSyntax.prototype.childCount = 6; + TypeScript.IfStatementSyntax.prototype.childAt = function (index) { + switch (index) { + case 0: return this.ifKeyword; + case 1: return this.openParenToken; + case 2: return this.condition; + case 3: return this.closeParenToken; + case 4: return this.statement; + case 5: return this.elseClause; + } + }; + TypeScript.VariableStatementSyntax = function (data, modifiers, variableDeclaration, semicolonToken) { + if (data) { + this.__data = data; + } + this.modifiers = modifiers, this.variableDeclaration = variableDeclaration, this.semicolonToken = semicolonToken, modifiers.parent = this, variableDeclaration.parent = this, semicolonToken && (semicolonToken.parent = this); + }; + TypeScript.VariableStatementSyntax.prototype.kind = 155 /* VariableStatement */; + TypeScript.VariableStatementSyntax.prototype.childCount = 3; + TypeScript.VariableStatementSyntax.prototype.childAt = function (index) { + switch (index) { + case 0: return this.modifiers; + case 1: return this.variableDeclaration; + case 2: return this.semicolonToken; + } + }; + TypeScript.ExpressionStatementSyntax = function (data, expression, semicolonToken) { + if (data) { + this.__data = data; + } + this.expression = expression, this.semicolonToken = semicolonToken, expression.parent = this, semicolonToken && (semicolonToken.parent = this); + }; + TypeScript.ExpressionStatementSyntax.prototype.kind = 156 /* ExpressionStatement */; + TypeScript.ExpressionStatementSyntax.prototype.childCount = 2; + TypeScript.ExpressionStatementSyntax.prototype.childAt = function (index) { + switch (index) { + case 0: return this.expression; + case 1: return this.semicolonToken; + } + }; + TypeScript.ReturnStatementSyntax = function (data, returnKeyword, expression, semicolonToken) { + if (data) { + this.__data = data; + } + this.returnKeyword = returnKeyword, this.expression = expression, this.semicolonToken = semicolonToken, returnKeyword.parent = this, expression && (expression.parent = this), semicolonToken && (semicolonToken.parent = this); + }; + TypeScript.ReturnStatementSyntax.prototype.kind = 157 /* ReturnStatement */; + TypeScript.ReturnStatementSyntax.prototype.childCount = 3; + TypeScript.ReturnStatementSyntax.prototype.childAt = function (index) { + switch (index) { + case 0: return this.returnKeyword; + case 1: return this.expression; + case 2: return this.semicolonToken; + } + }; + TypeScript.SwitchStatementSyntax = function (data, switchKeyword, openParenToken, expression, closeParenToken, openBraceToken, switchClauses, closeBraceToken) { + if (data) { + this.__data = data; + } + this.switchKeyword = switchKeyword, this.openParenToken = openParenToken, this.expression = expression, this.closeParenToken = closeParenToken, this.openBraceToken = openBraceToken, this.switchClauses = switchClauses, this.closeBraceToken = closeBraceToken, switchKeyword.parent = this, openParenToken.parent = this, expression.parent = this, closeParenToken.parent = this, openBraceToken.parent = this, switchClauses.parent = this, closeBraceToken.parent = this; + }; + TypeScript.SwitchStatementSyntax.prototype.kind = 158 /* SwitchStatement */; + TypeScript.SwitchStatementSyntax.prototype.childCount = 7; + TypeScript.SwitchStatementSyntax.prototype.childAt = function (index) { + switch (index) { + case 0: return this.switchKeyword; + case 1: return this.openParenToken; + case 2: return this.expression; + case 3: return this.closeParenToken; + case 4: return this.openBraceToken; + case 5: return this.switchClauses; + case 6: return this.closeBraceToken; + } + }; + TypeScript.BreakStatementSyntax = function (data, breakKeyword, identifier, semicolonToken) { + if (data) { + this.__data = data; + } + this.breakKeyword = breakKeyword, this.identifier = identifier, this.semicolonToken = semicolonToken, breakKeyword.parent = this, identifier && (identifier.parent = this), semicolonToken && (semicolonToken.parent = this); + }; + TypeScript.BreakStatementSyntax.prototype.kind = 159 /* BreakStatement */; + TypeScript.BreakStatementSyntax.prototype.childCount = 3; + TypeScript.BreakStatementSyntax.prototype.childAt = function (index) { + switch (index) { + case 0: return this.breakKeyword; + case 1: return this.identifier; + case 2: return this.semicolonToken; + } + }; + TypeScript.ContinueStatementSyntax = function (data, continueKeyword, identifier, semicolonToken) { + if (data) { + this.__data = data; + } + this.continueKeyword = continueKeyword, this.identifier = identifier, this.semicolonToken = semicolonToken, continueKeyword.parent = this, identifier && (identifier.parent = this), semicolonToken && (semicolonToken.parent = this); + }; + TypeScript.ContinueStatementSyntax.prototype.kind = 160 /* ContinueStatement */; + TypeScript.ContinueStatementSyntax.prototype.childCount = 3; + TypeScript.ContinueStatementSyntax.prototype.childAt = function (index) { + switch (index) { + case 0: return this.continueKeyword; + case 1: return this.identifier; + case 2: return this.semicolonToken; + } + }; + TypeScript.ForStatementSyntax = function (data, forKeyword, openParenToken, initializer, firstSemicolonToken, condition, secondSemicolonToken, incrementor, closeParenToken, statement) { + if (data) { + this.__data = data; + } + this.forKeyword = forKeyword, this.openParenToken = openParenToken, this.initializer = initializer, this.firstSemicolonToken = firstSemicolonToken, this.condition = condition, this.secondSemicolonToken = secondSemicolonToken, this.incrementor = incrementor, this.closeParenToken = closeParenToken, this.statement = statement, forKeyword.parent = this, openParenToken.parent = this, initializer && (initializer.parent = this), firstSemicolonToken.parent = this, condition && (condition.parent = this), secondSemicolonToken.parent = this, incrementor && (incrementor.parent = this), closeParenToken.parent = this, statement.parent = this; + }; + TypeScript.ForStatementSyntax.prototype.kind = 161 /* ForStatement */; + TypeScript.ForStatementSyntax.prototype.childCount = 9; + TypeScript.ForStatementSyntax.prototype.childAt = function (index) { + switch (index) { + case 0: return this.forKeyword; + case 1: return this.openParenToken; + case 2: return this.initializer; + case 3: return this.firstSemicolonToken; + case 4: return this.condition; + case 5: return this.secondSemicolonToken; + case 6: return this.incrementor; + case 7: return this.closeParenToken; + case 8: return this.statement; + } + }; + TypeScript.ForInStatementSyntax = function (data, forKeyword, openParenToken, left, inKeyword, right, closeParenToken, statement) { + if (data) { + this.__data = data; + } + this.forKeyword = forKeyword, this.openParenToken = openParenToken, this.left = left, this.inKeyword = inKeyword, this.right = right, this.closeParenToken = closeParenToken, this.statement = statement, forKeyword.parent = this, openParenToken.parent = this, left.parent = this, inKeyword.parent = this, right.parent = this, closeParenToken.parent = this, statement.parent = this; + }; + TypeScript.ForInStatementSyntax.prototype.kind = 162 /* ForInStatement */; + TypeScript.ForInStatementSyntax.prototype.childCount = 7; + TypeScript.ForInStatementSyntax.prototype.childAt = function (index) { + switch (index) { + case 0: return this.forKeyword; + case 1: return this.openParenToken; + case 2: return this.left; + case 3: return this.inKeyword; + case 4: return this.right; + case 5: return this.closeParenToken; + case 6: return this.statement; + } + }; + TypeScript.EmptyStatementSyntax = function (data, semicolonToken) { + if (data) { + this.__data = data; + } + this.semicolonToken = semicolonToken, semicolonToken.parent = this; + }; + TypeScript.EmptyStatementSyntax.prototype.kind = 163 /* EmptyStatement */; + TypeScript.EmptyStatementSyntax.prototype.childCount = 1; + TypeScript.EmptyStatementSyntax.prototype.childAt = function (index) { + switch (index) { + case 0: return this.semicolonToken; + } + }; + TypeScript.ThrowStatementSyntax = function (data, throwKeyword, expression, semicolonToken) { + if (data) { + this.__data = data; + } + this.throwKeyword = throwKeyword, this.expression = expression, this.semicolonToken = semicolonToken, throwKeyword.parent = this, expression && (expression.parent = this), semicolonToken && (semicolonToken.parent = this); + }; + TypeScript.ThrowStatementSyntax.prototype.kind = 164 /* ThrowStatement */; + TypeScript.ThrowStatementSyntax.prototype.childCount = 3; + TypeScript.ThrowStatementSyntax.prototype.childAt = function (index) { + switch (index) { + case 0: return this.throwKeyword; + case 1: return this.expression; + case 2: return this.semicolonToken; + } + }; + TypeScript.WhileStatementSyntax = function (data, whileKeyword, openParenToken, condition, closeParenToken, statement) { + if (data) { + this.__data = data; + } + this.whileKeyword = whileKeyword, this.openParenToken = openParenToken, this.condition = condition, this.closeParenToken = closeParenToken, this.statement = statement, whileKeyword.parent = this, openParenToken.parent = this, condition.parent = this, closeParenToken.parent = this, statement.parent = this; + }; + TypeScript.WhileStatementSyntax.prototype.kind = 165 /* WhileStatement */; + TypeScript.WhileStatementSyntax.prototype.childCount = 5; + TypeScript.WhileStatementSyntax.prototype.childAt = function (index) { + switch (index) { + case 0: return this.whileKeyword; + case 1: return this.openParenToken; + case 2: return this.condition; + case 3: return this.closeParenToken; + case 4: return this.statement; + } + }; + TypeScript.TryStatementSyntax = function (data, tryKeyword, block, catchClause, finallyClause) { + if (data) { + this.__data = data; + } + this.tryKeyword = tryKeyword, this.block = block, this.catchClause = catchClause, this.finallyClause = finallyClause, tryKeyword.parent = this, block.parent = this, catchClause && (catchClause.parent = this), finallyClause && (finallyClause.parent = this); + }; + TypeScript.TryStatementSyntax.prototype.kind = 166 /* TryStatement */; + TypeScript.TryStatementSyntax.prototype.childCount = 4; + TypeScript.TryStatementSyntax.prototype.childAt = function (index) { + switch (index) { + case 0: return this.tryKeyword; + case 1: return this.block; + case 2: return this.catchClause; + case 3: return this.finallyClause; + } + }; + TypeScript.LabeledStatementSyntax = function (data, identifier, colonToken, statement) { + if (data) { + this.__data = data; + } + this.identifier = identifier, this.colonToken = colonToken, this.statement = statement, identifier.parent = this, colonToken.parent = this, statement.parent = this; + }; + TypeScript.LabeledStatementSyntax.prototype.kind = 167 /* LabeledStatement */; + TypeScript.LabeledStatementSyntax.prototype.childCount = 3; + TypeScript.LabeledStatementSyntax.prototype.childAt = function (index) { + switch (index) { + case 0: return this.identifier; + case 1: return this.colonToken; + case 2: return this.statement; + } + }; + TypeScript.DoStatementSyntax = function (data, doKeyword, statement, whileKeyword, openParenToken, condition, closeParenToken, semicolonToken) { + if (data) { + this.__data = data; + } + this.doKeyword = doKeyword, this.statement = statement, this.whileKeyword = whileKeyword, this.openParenToken = openParenToken, this.condition = condition, this.closeParenToken = closeParenToken, this.semicolonToken = semicolonToken, doKeyword.parent = this, statement.parent = this, whileKeyword.parent = this, openParenToken.parent = this, condition.parent = this, closeParenToken.parent = this, semicolonToken && (semicolonToken.parent = this); + }; + TypeScript.DoStatementSyntax.prototype.kind = 168 /* DoStatement */; + TypeScript.DoStatementSyntax.prototype.childCount = 7; + TypeScript.DoStatementSyntax.prototype.childAt = function (index) { + switch (index) { + case 0: return this.doKeyword; + case 1: return this.statement; + case 2: return this.whileKeyword; + case 3: return this.openParenToken; + case 4: return this.condition; + case 5: return this.closeParenToken; + case 6: return this.semicolonToken; + } + }; + TypeScript.DebuggerStatementSyntax = function (data, debuggerKeyword, semicolonToken) { + if (data) { + this.__data = data; + } + this.debuggerKeyword = debuggerKeyword, this.semicolonToken = semicolonToken, debuggerKeyword.parent = this, semicolonToken && (semicolonToken.parent = this); + }; + TypeScript.DebuggerStatementSyntax.prototype.kind = 169 /* DebuggerStatement */; + TypeScript.DebuggerStatementSyntax.prototype.childCount = 2; + TypeScript.DebuggerStatementSyntax.prototype.childAt = function (index) { + switch (index) { + case 0: return this.debuggerKeyword; + case 1: return this.semicolonToken; + } + }; + TypeScript.WithStatementSyntax = function (data, withKeyword, openParenToken, condition, closeParenToken, statement) { + if (data) { + this.__data = data; + } + this.withKeyword = withKeyword, this.openParenToken = openParenToken, this.condition = condition, this.closeParenToken = closeParenToken, this.statement = statement, withKeyword.parent = this, openParenToken.parent = this, condition.parent = this, closeParenToken.parent = this, statement.parent = this; + }; + TypeScript.WithStatementSyntax.prototype.kind = 170 /* WithStatement */; + TypeScript.WithStatementSyntax.prototype.childCount = 5; + TypeScript.WithStatementSyntax.prototype.childAt = function (index) { + switch (index) { + case 0: return this.withKeyword; + case 1: return this.openParenToken; + case 2: return this.condition; + case 3: return this.closeParenToken; + case 4: return this.statement; + } + }; + TypeScript.PrefixUnaryExpressionSyntax = function (data, operatorToken, operand) { + if (data) { + this.__data = data; + } + this.operatorToken = operatorToken, this.operand = operand, operatorToken.parent = this, operand.parent = this; + }; + TypeScript.PrefixUnaryExpressionSyntax.prototype.kind = 171 /* PrefixUnaryExpression */; + TypeScript.PrefixUnaryExpressionSyntax.prototype.childCount = 2; + TypeScript.PrefixUnaryExpressionSyntax.prototype.childAt = function (index) { + switch (index) { + case 0: return this.operatorToken; + case 1: return this.operand; + } + }; + TypeScript.DeleteExpressionSyntax = function (data, deleteKeyword, expression) { + if (data) { + this.__data = data; + } + this.deleteKeyword = deleteKeyword, this.expression = expression, deleteKeyword.parent = this, expression.parent = this; + }; + TypeScript.DeleteExpressionSyntax.prototype.kind = 172 /* DeleteExpression */; + TypeScript.DeleteExpressionSyntax.prototype.childCount = 2; + TypeScript.DeleteExpressionSyntax.prototype.childAt = function (index) { + switch (index) { + case 0: return this.deleteKeyword; + case 1: return this.expression; + } + }; + TypeScript.TypeOfExpressionSyntax = function (data, typeOfKeyword, expression) { + if (data) { + this.__data = data; + } + this.typeOfKeyword = typeOfKeyword, this.expression = expression, typeOfKeyword.parent = this, expression.parent = this; + }; + TypeScript.TypeOfExpressionSyntax.prototype.kind = 173 /* TypeOfExpression */; + TypeScript.TypeOfExpressionSyntax.prototype.childCount = 2; + TypeScript.TypeOfExpressionSyntax.prototype.childAt = function (index) { + switch (index) { + case 0: return this.typeOfKeyword; + case 1: return this.expression; + } + }; + TypeScript.VoidExpressionSyntax = function (data, voidKeyword, expression) { + if (data) { + this.__data = data; + } + this.voidKeyword = voidKeyword, this.expression = expression, voidKeyword.parent = this, expression.parent = this; + }; + TypeScript.VoidExpressionSyntax.prototype.kind = 174 /* VoidExpression */; + TypeScript.VoidExpressionSyntax.prototype.childCount = 2; + TypeScript.VoidExpressionSyntax.prototype.childAt = function (index) { + switch (index) { + case 0: return this.voidKeyword; + case 1: return this.expression; + } + }; + TypeScript.ConditionalExpressionSyntax = function (data, condition, questionToken, whenTrue, colonToken, whenFalse) { + if (data) { + this.__data = data; + } + this.condition = condition, this.questionToken = questionToken, this.whenTrue = whenTrue, this.colonToken = colonToken, this.whenFalse = whenFalse, condition.parent = this, questionToken.parent = this, whenTrue.parent = this, colonToken.parent = this, whenFalse.parent = this; + }; + TypeScript.ConditionalExpressionSyntax.prototype.kind = 175 /* ConditionalExpression */; + TypeScript.ConditionalExpressionSyntax.prototype.childCount = 5; + TypeScript.ConditionalExpressionSyntax.prototype.childAt = function (index) { + switch (index) { + case 0: return this.condition; + case 1: return this.questionToken; + case 2: return this.whenTrue; + case 3: return this.colonToken; + case 4: return this.whenFalse; + } + }; + TypeScript.BinaryExpressionSyntax = function (data, left, operatorToken, right) { + if (data) { + this.__data = data; + } + this.left = left, this.operatorToken = operatorToken, this.right = right, left.parent = this, operatorToken.parent = this, right.parent = this; + }; + TypeScript.BinaryExpressionSyntax.prototype.kind = 176 /* BinaryExpression */; + TypeScript.BinaryExpressionSyntax.prototype.childCount = 3; + TypeScript.BinaryExpressionSyntax.prototype.childAt = function (index) { + switch (index) { + case 0: return this.left; + case 1: return this.operatorToken; + case 2: return this.right; + } + }; + TypeScript.PostfixUnaryExpressionSyntax = function (data, operand, operatorToken) { + if (data) { + this.__data = data; + } + this.operand = operand, this.operatorToken = operatorToken, operand.parent = this, operatorToken.parent = this; + }; + TypeScript.PostfixUnaryExpressionSyntax.prototype.kind = 177 /* PostfixUnaryExpression */; + TypeScript.PostfixUnaryExpressionSyntax.prototype.childCount = 2; + TypeScript.PostfixUnaryExpressionSyntax.prototype.childAt = function (index) { + switch (index) { + case 0: return this.operand; + case 1: return this.operatorToken; + } + }; + TypeScript.MemberAccessExpressionSyntax = function (data, expression, dotToken, name) { + if (data) { + this.__data = data; + } + this.expression = expression, this.dotToken = dotToken, this.name = name, expression.parent = this, dotToken.parent = this, name.parent = this; + }; + TypeScript.MemberAccessExpressionSyntax.prototype.kind = 178 /* MemberAccessExpression */; + TypeScript.MemberAccessExpressionSyntax.prototype.childCount = 3; + TypeScript.MemberAccessExpressionSyntax.prototype.childAt = function (index) { + switch (index) { + case 0: return this.expression; + case 1: return this.dotToken; + case 2: return this.name; + } + }; + TypeScript.InvocationExpressionSyntax = function (data, expression, argumentList) { + if (data) { + this.__data = data; + } + this.expression = expression, this.argumentList = argumentList, expression.parent = this, argumentList.parent = this; + }; + TypeScript.InvocationExpressionSyntax.prototype.kind = 179 /* InvocationExpression */; + TypeScript.InvocationExpressionSyntax.prototype.childCount = 2; + TypeScript.InvocationExpressionSyntax.prototype.childAt = function (index) { + switch (index) { + case 0: return this.expression; + case 1: return this.argumentList; + } + }; + TypeScript.ArrayLiteralExpressionSyntax = function (data, openBracketToken, expressions, closeBracketToken) { + if (data) { + this.__data = data; + } + this.openBracketToken = openBracketToken, this.expressions = expressions, this.closeBracketToken = closeBracketToken, openBracketToken.parent = this, expressions.parent = this, closeBracketToken.parent = this; + }; + TypeScript.ArrayLiteralExpressionSyntax.prototype.kind = 180 /* ArrayLiteralExpression */; + TypeScript.ArrayLiteralExpressionSyntax.prototype.childCount = 3; + TypeScript.ArrayLiteralExpressionSyntax.prototype.childAt = function (index) { + switch (index) { + case 0: return this.openBracketToken; + case 1: return this.expressions; + case 2: return this.closeBracketToken; + } + }; + TypeScript.ObjectLiteralExpressionSyntax = function (data, openBraceToken, propertyAssignments, closeBraceToken) { + if (data) { + this.__data = data; + } + this.openBraceToken = openBraceToken, this.propertyAssignments = propertyAssignments, this.closeBraceToken = closeBraceToken, openBraceToken.parent = this, propertyAssignments.parent = this, closeBraceToken.parent = this; + }; + TypeScript.ObjectLiteralExpressionSyntax.prototype.kind = 181 /* ObjectLiteralExpression */; + TypeScript.ObjectLiteralExpressionSyntax.prototype.childCount = 3; + TypeScript.ObjectLiteralExpressionSyntax.prototype.childAt = function (index) { + switch (index) { + case 0: return this.openBraceToken; + case 1: return this.propertyAssignments; + case 2: return this.closeBraceToken; + } + }; + TypeScript.ObjectCreationExpressionSyntax = function (data, newKeyword, expression, argumentList) { + if (data) { + this.__data = data; + } + this.newKeyword = newKeyword, this.expression = expression, this.argumentList = argumentList, newKeyword.parent = this, expression.parent = this, argumentList && (argumentList.parent = this); + }; + TypeScript.ObjectCreationExpressionSyntax.prototype.kind = 182 /* ObjectCreationExpression */; + TypeScript.ObjectCreationExpressionSyntax.prototype.childCount = 3; + TypeScript.ObjectCreationExpressionSyntax.prototype.childAt = function (index) { + switch (index) { + case 0: return this.newKeyword; + case 1: return this.expression; + case 2: return this.argumentList; + } + }; + TypeScript.ParenthesizedExpressionSyntax = function (data, openParenToken, expression, closeParenToken) { + if (data) { + this.__data = data; + } + this.openParenToken = openParenToken, this.expression = expression, this.closeParenToken = closeParenToken, openParenToken.parent = this, expression.parent = this, closeParenToken.parent = this; + }; + TypeScript.ParenthesizedExpressionSyntax.prototype.kind = 183 /* ParenthesizedExpression */; + TypeScript.ParenthesizedExpressionSyntax.prototype.childCount = 3; + TypeScript.ParenthesizedExpressionSyntax.prototype.childAt = function (index) { + switch (index) { + case 0: return this.openParenToken; + case 1: return this.expression; + case 2: return this.closeParenToken; + } + }; + TypeScript.ParenthesizedArrowFunctionExpressionSyntax = function (data, asyncKeyword, callSignature, equalsGreaterThanToken, body) { + if (data) { + this.__data = data; + } + this.asyncKeyword = asyncKeyword, this.callSignature = callSignature, this.equalsGreaterThanToken = equalsGreaterThanToken, this.body = body, asyncKeyword && (asyncKeyword.parent = this), callSignature.parent = this, equalsGreaterThanToken.parent = this, body.parent = this; + }; + TypeScript.ParenthesizedArrowFunctionExpressionSyntax.prototype.kind = 184 /* ParenthesizedArrowFunctionExpression */; + TypeScript.ParenthesizedArrowFunctionExpressionSyntax.prototype.childCount = 4; + TypeScript.ParenthesizedArrowFunctionExpressionSyntax.prototype.childAt = function (index) { + switch (index) { + case 0: return this.asyncKeyword; + case 1: return this.callSignature; + case 2: return this.equalsGreaterThanToken; + case 3: return this.body; + } + }; + TypeScript.SimpleArrowFunctionExpressionSyntax = function (data, asyncKeyword, parameter, equalsGreaterThanToken, body) { + if (data) { + this.__data = data; + } + this.asyncKeyword = asyncKeyword, this.parameter = parameter, this.equalsGreaterThanToken = equalsGreaterThanToken, this.body = body, asyncKeyword && (asyncKeyword.parent = this), parameter.parent = this, equalsGreaterThanToken.parent = this, body.parent = this; + }; + TypeScript.SimpleArrowFunctionExpressionSyntax.prototype.kind = 185 /* SimpleArrowFunctionExpression */; + TypeScript.SimpleArrowFunctionExpressionSyntax.prototype.childCount = 4; + TypeScript.SimpleArrowFunctionExpressionSyntax.prototype.childAt = function (index) { + switch (index) { + case 0: return this.asyncKeyword; + case 1: return this.parameter; + case 2: return this.equalsGreaterThanToken; + case 3: return this.body; + } + }; + TypeScript.CastExpressionSyntax = function (data, lessThanToken, type, greaterThanToken, expression) { + if (data) { + this.__data = data; + } + this.lessThanToken = lessThanToken, this.type = type, this.greaterThanToken = greaterThanToken, this.expression = expression, lessThanToken.parent = this, type.parent = this, greaterThanToken.parent = this, expression.parent = this; + }; + TypeScript.CastExpressionSyntax.prototype.kind = 186 /* CastExpression */; + TypeScript.CastExpressionSyntax.prototype.childCount = 4; + TypeScript.CastExpressionSyntax.prototype.childAt = function (index) { + switch (index) { + case 0: return this.lessThanToken; + case 1: return this.type; + case 2: return this.greaterThanToken; + case 3: return this.expression; + } + }; + TypeScript.ElementAccessExpressionSyntax = function (data, expression, openBracketToken, argumentExpression, closeBracketToken) { + if (data) { + this.__data = data; + } + this.expression = expression, this.openBracketToken = openBracketToken, this.argumentExpression = argumentExpression, this.closeBracketToken = closeBracketToken, expression.parent = this, openBracketToken.parent = this, argumentExpression && (argumentExpression.parent = this), closeBracketToken.parent = this; + }; + TypeScript.ElementAccessExpressionSyntax.prototype.kind = 187 /* ElementAccessExpression */; + TypeScript.ElementAccessExpressionSyntax.prototype.childCount = 4; + TypeScript.ElementAccessExpressionSyntax.prototype.childAt = function (index) { + switch (index) { + case 0: return this.expression; + case 1: return this.openBracketToken; + case 2: return this.argumentExpression; + case 3: return this.closeBracketToken; + } + }; + TypeScript.FunctionExpressionSyntax = function (data, asyncKeyword, functionKeyword, asterixToken, identifier, callSignature, body) { + if (data) { + this.__data = data; + } + this.asyncKeyword = asyncKeyword, this.functionKeyword = functionKeyword, this.asterixToken = asterixToken, this.identifier = identifier, this.callSignature = callSignature, this.body = body, asyncKeyword && (asyncKeyword.parent = this), functionKeyword.parent = this, asterixToken && (asterixToken.parent = this), identifier && (identifier.parent = this), callSignature.parent = this, body && (body.parent = this); + }; + TypeScript.FunctionExpressionSyntax.prototype.kind = 188 /* FunctionExpression */; + TypeScript.FunctionExpressionSyntax.prototype.childCount = 6; + TypeScript.FunctionExpressionSyntax.prototype.childAt = function (index) { + switch (index) { + case 0: return this.asyncKeyword; + case 1: return this.functionKeyword; + case 2: return this.asterixToken; + case 3: return this.identifier; + case 4: return this.callSignature; + case 5: return this.body; + } + }; + TypeScript.OmittedExpressionSyntax = function (data) { + if (data) { + this.__data = data; + } + }; + TypeScript.OmittedExpressionSyntax.prototype.kind = 189 /* OmittedExpression */; + TypeScript.OmittedExpressionSyntax.prototype.childCount = 0; + TypeScript.OmittedExpressionSyntax.prototype.childAt = function (index) { + throw TypeScript.Errors.invalidOperation(); + }; + TypeScript.TemplateExpressionSyntax = function (data, templateStartToken, templateClauses) { + if (data) { + this.__data = data; + } + this.templateStartToken = templateStartToken, this.templateClauses = templateClauses, templateStartToken.parent = this, templateClauses.parent = this; + }; + TypeScript.TemplateExpressionSyntax.prototype.kind = 190 /* TemplateExpression */; + TypeScript.TemplateExpressionSyntax.prototype.childCount = 2; + TypeScript.TemplateExpressionSyntax.prototype.childAt = function (index) { + switch (index) { + case 0: return this.templateStartToken; + case 1: return this.templateClauses; + } + }; + TypeScript.TemplateAccessExpressionSyntax = function (data, expression, templateExpression) { + if (data) { + this.__data = data; + } + this.expression = expression, this.templateExpression = templateExpression, expression.parent = this, templateExpression.parent = this; + }; + TypeScript.TemplateAccessExpressionSyntax.prototype.kind = 191 /* TemplateAccessExpression */; + TypeScript.TemplateAccessExpressionSyntax.prototype.childCount = 2; + TypeScript.TemplateAccessExpressionSyntax.prototype.childAt = function (index) { + switch (index) { + case 0: return this.expression; + case 1: return this.templateExpression; + } + }; + TypeScript.YieldExpressionSyntax = function (data, yieldKeyword, asterixToken, expression) { + if (data) { + this.__data = data; + } + this.yieldKeyword = yieldKeyword, this.asterixToken = asterixToken, this.expression = expression, yieldKeyword.parent = this, asterixToken && (asterixToken.parent = this), expression && (expression.parent = this); + }; + TypeScript.YieldExpressionSyntax.prototype.kind = 192 /* YieldExpression */; + TypeScript.YieldExpressionSyntax.prototype.childCount = 3; + TypeScript.YieldExpressionSyntax.prototype.childAt = function (index) { + switch (index) { + case 0: return this.yieldKeyword; + case 1: return this.asterixToken; + case 2: return this.expression; + } + }; + TypeScript.AwaitExpressionSyntax = function (data, awaitKeyword, expression) { + if (data) { + this.__data = data; + } + this.awaitKeyword = awaitKeyword, this.expression = expression, awaitKeyword.parent = this, expression && (expression.parent = this); + }; + TypeScript.AwaitExpressionSyntax.prototype.kind = 193 /* AwaitExpression */; + TypeScript.AwaitExpressionSyntax.prototype.childCount = 2; + TypeScript.AwaitExpressionSyntax.prototype.childAt = function (index) { + switch (index) { + case 0: return this.awaitKeyword; + case 1: return this.expression; + } + }; + TypeScript.VariableDeclarationSyntax = function (data, varKeyword, variableDeclarators) { + if (data) { + this.__data = data; + } + this.varKeyword = varKeyword, this.variableDeclarators = variableDeclarators, varKeyword.parent = this, variableDeclarators.parent = this; + }; + TypeScript.VariableDeclarationSyntax.prototype.kind = 194 /* VariableDeclaration */; + TypeScript.VariableDeclarationSyntax.prototype.childCount = 2; + TypeScript.VariableDeclarationSyntax.prototype.childAt = function (index) { + switch (index) { + case 0: return this.varKeyword; + case 1: return this.variableDeclarators; + } + }; + TypeScript.VariableDeclaratorSyntax = function (data, propertyName, typeAnnotation, equalsValueClause) { + if (data) { + this.__data = data; + } + this.propertyName = propertyName, this.typeAnnotation = typeAnnotation, this.equalsValueClause = equalsValueClause, propertyName.parent = this, typeAnnotation && (typeAnnotation.parent = this), equalsValueClause && (equalsValueClause.parent = this); + }; + TypeScript.VariableDeclaratorSyntax.prototype.kind = 195 /* VariableDeclarator */; + TypeScript.VariableDeclaratorSyntax.prototype.childCount = 3; + TypeScript.VariableDeclaratorSyntax.prototype.childAt = function (index) { + switch (index) { + case 0: return this.propertyName; + case 1: return this.typeAnnotation; + case 2: return this.equalsValueClause; + } + }; + TypeScript.ArgumentListSyntax = function (data, typeArgumentList, openParenToken, _arguments, closeParenToken) { + if (data) { + this.__data = data; + } + this.typeArgumentList = typeArgumentList, this.openParenToken = openParenToken, this.arguments = _arguments, this.closeParenToken = closeParenToken, typeArgumentList && (typeArgumentList.parent = this), openParenToken.parent = this, _arguments.parent = this, closeParenToken.parent = this; + }; + TypeScript.ArgumentListSyntax.prototype.kind = 196 /* ArgumentList */; + TypeScript.ArgumentListSyntax.prototype.childCount = 4; + TypeScript.ArgumentListSyntax.prototype.childAt = function (index) { + switch (index) { + case 0: return this.typeArgumentList; + case 1: return this.openParenToken; + case 2: return this.arguments; + case 3: return this.closeParenToken; + } + }; + TypeScript.ParameterListSyntax = function (data, openParenToken, parameters, closeParenToken) { + if (data) { + this.__data = data; + } + this.openParenToken = openParenToken, this.parameters = parameters, this.closeParenToken = closeParenToken, openParenToken.parent = this, parameters.parent = this, closeParenToken.parent = this; + }; + TypeScript.ParameterListSyntax.prototype.kind = 197 /* ParameterList */; + TypeScript.ParameterListSyntax.prototype.childCount = 3; + TypeScript.ParameterListSyntax.prototype.childAt = function (index) { + switch (index) { + case 0: return this.openParenToken; + case 1: return this.parameters; + case 2: return this.closeParenToken; + } + }; + TypeScript.TypeArgumentListSyntax = function (data, lessThanToken, typeArguments, greaterThanToken) { + if (data) { + this.__data = data; + } + this.lessThanToken = lessThanToken, this.typeArguments = typeArguments, this.greaterThanToken = greaterThanToken, lessThanToken.parent = this, typeArguments.parent = this, greaterThanToken.parent = this; + }; + TypeScript.TypeArgumentListSyntax.prototype.kind = 198 /* TypeArgumentList */; + TypeScript.TypeArgumentListSyntax.prototype.childCount = 3; + TypeScript.TypeArgumentListSyntax.prototype.childAt = function (index) { + switch (index) { + case 0: return this.lessThanToken; + case 1: return this.typeArguments; + case 2: return this.greaterThanToken; + } + }; + TypeScript.TypeParameterListSyntax = function (data, lessThanToken, typeParameters, greaterThanToken) { + if (data) { + this.__data = data; + } + this.lessThanToken = lessThanToken, this.typeParameters = typeParameters, this.greaterThanToken = greaterThanToken, lessThanToken.parent = this, typeParameters.parent = this, greaterThanToken.parent = this; + }; + TypeScript.TypeParameterListSyntax.prototype.kind = 199 /* TypeParameterList */; + TypeScript.TypeParameterListSyntax.prototype.childCount = 3; + TypeScript.TypeParameterListSyntax.prototype.childAt = function (index) { + switch (index) { + case 0: return this.lessThanToken; + case 1: return this.typeParameters; + case 2: return this.greaterThanToken; + } + }; + TypeScript.HeritageClauseSyntax = function (data, extendsOrImplementsKeyword, typeNames) { + if (data) { + this.__data = data; + } + this.extendsOrImplementsKeyword = extendsOrImplementsKeyword, this.typeNames = typeNames, extendsOrImplementsKeyword.parent = this, typeNames.parent = this; + }; + TypeScript.HeritageClauseSyntax.prototype.kind = 200 /* HeritageClause */; + TypeScript.HeritageClauseSyntax.prototype.childCount = 2; + TypeScript.HeritageClauseSyntax.prototype.childAt = function (index) { + switch (index) { + case 0: return this.extendsOrImplementsKeyword; + case 1: return this.typeNames; + } + }; + TypeScript.EqualsValueClauseSyntax = function (data, equalsToken, value) { + if (data) { + this.__data = data; + } + this.equalsToken = equalsToken, this.value = value, equalsToken.parent = this, value.parent = this; + }; + TypeScript.EqualsValueClauseSyntax.prototype.kind = 201 /* EqualsValueClause */; + TypeScript.EqualsValueClauseSyntax.prototype.childCount = 2; + TypeScript.EqualsValueClauseSyntax.prototype.childAt = function (index) { + switch (index) { + case 0: return this.equalsToken; + case 1: return this.value; + } + }; + TypeScript.CaseSwitchClauseSyntax = function (data, caseKeyword, expression, colonToken, statements) { + if (data) { + this.__data = data; + } + this.caseKeyword = caseKeyword, this.expression = expression, this.colonToken = colonToken, this.statements = statements, caseKeyword.parent = this, expression.parent = this, colonToken.parent = this, statements.parent = this; + }; + TypeScript.CaseSwitchClauseSyntax.prototype.kind = 202 /* CaseSwitchClause */; + TypeScript.CaseSwitchClauseSyntax.prototype.childCount = 4; + TypeScript.CaseSwitchClauseSyntax.prototype.childAt = function (index) { + switch (index) { + case 0: return this.caseKeyword; + case 1: return this.expression; + case 2: return this.colonToken; + case 3: return this.statements; + } + }; + TypeScript.DefaultSwitchClauseSyntax = function (data, defaultKeyword, colonToken, statements) { + if (data) { + this.__data = data; + } + this.defaultKeyword = defaultKeyword, this.colonToken = colonToken, this.statements = statements, defaultKeyword.parent = this, colonToken.parent = this, statements.parent = this; + }; + TypeScript.DefaultSwitchClauseSyntax.prototype.kind = 203 /* DefaultSwitchClause */; + TypeScript.DefaultSwitchClauseSyntax.prototype.childCount = 3; + TypeScript.DefaultSwitchClauseSyntax.prototype.childAt = function (index) { + switch (index) { + case 0: return this.defaultKeyword; + case 1: return this.colonToken; + case 2: return this.statements; + } + }; + TypeScript.ElseClauseSyntax = function (data, elseKeyword, statement) { + if (data) { + this.__data = data; + } + this.elseKeyword = elseKeyword, this.statement = statement, elseKeyword.parent = this, statement.parent = this; + }; + TypeScript.ElseClauseSyntax.prototype.kind = 204 /* ElseClause */; + TypeScript.ElseClauseSyntax.prototype.childCount = 2; + TypeScript.ElseClauseSyntax.prototype.childAt = function (index) { + switch (index) { + case 0: return this.elseKeyword; + case 1: return this.statement; + } + }; + TypeScript.CatchClauseSyntax = function (data, catchKeyword, openParenToken, identifier, typeAnnotation, closeParenToken, block) { + if (data) { + this.__data = data; + } + this.catchKeyword = catchKeyword, this.openParenToken = openParenToken, this.identifier = identifier, this.typeAnnotation = typeAnnotation, this.closeParenToken = closeParenToken, this.block = block, catchKeyword.parent = this, openParenToken.parent = this, identifier.parent = this, typeAnnotation && (typeAnnotation.parent = this), closeParenToken.parent = this, block.parent = this; + }; + TypeScript.CatchClauseSyntax.prototype.kind = 205 /* CatchClause */; + TypeScript.CatchClauseSyntax.prototype.childCount = 6; + TypeScript.CatchClauseSyntax.prototype.childAt = function (index) { + switch (index) { + case 0: return this.catchKeyword; + case 1: return this.openParenToken; + case 2: return this.identifier; + case 3: return this.typeAnnotation; + case 4: return this.closeParenToken; + case 5: return this.block; + } + }; + TypeScript.FinallyClauseSyntax = function (data, finallyKeyword, block) { + if (data) { + this.__data = data; + } + this.finallyKeyword = finallyKeyword, this.block = block, finallyKeyword.parent = this, block.parent = this; + }; + TypeScript.FinallyClauseSyntax.prototype.kind = 206 /* FinallyClause */; + TypeScript.FinallyClauseSyntax.prototype.childCount = 2; + TypeScript.FinallyClauseSyntax.prototype.childAt = function (index) { + switch (index) { + case 0: return this.finallyKeyword; + case 1: return this.block; + } + }; + TypeScript.TemplateClauseSyntax = function (data, expression, templateMiddleOrEndToken) { + if (data) { + this.__data = data; + } + this.expression = expression, this.templateMiddleOrEndToken = templateMiddleOrEndToken, expression.parent = this, templateMiddleOrEndToken.parent = this; + }; + TypeScript.TemplateClauseSyntax.prototype.kind = 207 /* TemplateClause */; + TypeScript.TemplateClauseSyntax.prototype.childCount = 2; + TypeScript.TemplateClauseSyntax.prototype.childAt = function (index) { + switch (index) { + case 0: return this.expression; + case 1: return this.templateMiddleOrEndToken; + } + }; + TypeScript.TypeParameterSyntax = function (data, identifier, constraint) { + if (data) { + this.__data = data; + } + this.identifier = identifier, this.constraint = constraint, identifier.parent = this, constraint && (constraint.parent = this); + }; + TypeScript.TypeParameterSyntax.prototype.kind = 208 /* TypeParameter */; + TypeScript.TypeParameterSyntax.prototype.childCount = 2; + TypeScript.TypeParameterSyntax.prototype.childAt = function (index) { + switch (index) { + case 0: return this.identifier; + case 1: return this.constraint; + } + }; + TypeScript.ConstraintSyntax = function (data, extendsKeyword, typeOrExpression) { + if (data) { + this.__data = data; + } + this.extendsKeyword = extendsKeyword, this.typeOrExpression = typeOrExpression, extendsKeyword.parent = this, typeOrExpression.parent = this; + }; + TypeScript.ConstraintSyntax.prototype.kind = 209 /* Constraint */; + TypeScript.ConstraintSyntax.prototype.childCount = 2; + TypeScript.ConstraintSyntax.prototype.childAt = function (index) { + switch (index) { + case 0: return this.extendsKeyword; + case 1: return this.typeOrExpression; + } + }; + TypeScript.ParameterSyntax = function (data, dotDotDotToken, modifiers, identifier, questionToken, typeAnnotation, equalsValueClause) { + if (data) { + this.__data = data; + } + this.dotDotDotToken = dotDotDotToken, this.modifiers = modifiers, this.identifier = identifier, this.questionToken = questionToken, this.typeAnnotation = typeAnnotation, this.equalsValueClause = equalsValueClause, dotDotDotToken && (dotDotDotToken.parent = this), modifiers.parent = this, identifier.parent = this, questionToken && (questionToken.parent = this), typeAnnotation && (typeAnnotation.parent = this), equalsValueClause && (equalsValueClause.parent = this); + }; + TypeScript.ParameterSyntax.prototype.kind = 210 /* Parameter */; + TypeScript.ParameterSyntax.prototype.childCount = 6; + TypeScript.ParameterSyntax.prototype.childAt = function (index) { + switch (index) { + case 0: return this.dotDotDotToken; + case 1: return this.modifiers; + case 2: return this.identifier; + case 3: return this.questionToken; + case 4: return this.typeAnnotation; + case 5: return this.equalsValueClause; + } + }; + TypeScript.EnumElementSyntax = function (data, propertyName, equalsValueClause) { + if (data) { + this.__data = data; + } + this.propertyName = propertyName, this.equalsValueClause = equalsValueClause, propertyName.parent = this, equalsValueClause && (equalsValueClause.parent = this); + }; + TypeScript.EnumElementSyntax.prototype.kind = 211 /* EnumElement */; + TypeScript.EnumElementSyntax.prototype.childCount = 2; + TypeScript.EnumElementSyntax.prototype.childAt = function (index) { + switch (index) { + case 0: return this.propertyName; + case 1: return this.equalsValueClause; + } + }; + TypeScript.TypeAnnotationSyntax = function (data, colonToken, type) { + if (data) { + this.__data = data; + } + this.colonToken = colonToken, this.type = type, colonToken.parent = this, type.parent = this; + }; + TypeScript.TypeAnnotationSyntax.prototype.kind = 212 /* TypeAnnotation */; + TypeScript.TypeAnnotationSyntax.prototype.childCount = 2; + TypeScript.TypeAnnotationSyntax.prototype.childAt = function (index) { + switch (index) { + case 0: return this.colonToken; + case 1: return this.type; + } + }; + TypeScript.ExpressionBody = function (data, equalsGreaterThanToken, expression) { + if (data) { + this.__data = data; + } + this.equalsGreaterThanToken = equalsGreaterThanToken, this.expression = expression, equalsGreaterThanToken.parent = this, expression.parent = this; + }; + TypeScript.ExpressionBody.prototype.kind = 213 /* ExpressionBody */; + TypeScript.ExpressionBody.prototype.childCount = 2; + TypeScript.ExpressionBody.prototype.childAt = function (index) { + switch (index) { + case 0: return this.equalsGreaterThanToken; + case 1: return this.expression; + } + }; + TypeScript.ComputedPropertyNameSyntax = function (data, openBracketToken, expression, closeBracketToken) { + if (data) { + this.__data = data; + } + this.openBracketToken = openBracketToken, this.expression = expression, this.closeBracketToken = closeBracketToken, openBracketToken.parent = this, expression.parent = this, closeBracketToken.parent = this; + }; + TypeScript.ComputedPropertyNameSyntax.prototype.kind = 214 /* ComputedPropertyName */; + TypeScript.ComputedPropertyNameSyntax.prototype.childCount = 3; + TypeScript.ComputedPropertyNameSyntax.prototype.childAt = function (index) { + switch (index) { + case 0: return this.openBracketToken; + case 1: return this.expression; + case 2: return this.closeBracketToken; + } + }; + TypeScript.PropertyAssignmentSyntax = function (data, propertyName, colonToken, expression) { + if (data) { + this.__data = data; + } + this.propertyName = propertyName, this.colonToken = colonToken, this.expression = expression, propertyName.parent = this, colonToken.parent = this, expression.parent = this; + }; + TypeScript.PropertyAssignmentSyntax.prototype.kind = 215 /* PropertyAssignment */; + TypeScript.PropertyAssignmentSyntax.prototype.childCount = 3; + TypeScript.PropertyAssignmentSyntax.prototype.childAt = function (index) { + switch (index) { + case 0: return this.propertyName; + case 1: return this.colonToken; + case 2: return this.expression; + } + }; + TypeScript.ExternalModuleReferenceSyntax = function (data, requireKeyword, openParenToken, stringLiteral, closeParenToken) { + if (data) { + this.__data = data; + } + this.requireKeyword = requireKeyword, this.openParenToken = openParenToken, this.stringLiteral = stringLiteral, this.closeParenToken = closeParenToken, requireKeyword.parent = this, openParenToken.parent = this, stringLiteral.parent = this, closeParenToken.parent = this; + }; + TypeScript.ExternalModuleReferenceSyntax.prototype.kind = 216 /* ExternalModuleReference */; + TypeScript.ExternalModuleReferenceSyntax.prototype.childCount = 4; + TypeScript.ExternalModuleReferenceSyntax.prototype.childAt = function (index) { + switch (index) { + case 0: return this.requireKeyword; + case 1: return this.openParenToken; + case 2: return this.stringLiteral; + case 3: return this.closeParenToken; + } + }; + TypeScript.ModuleNameModuleReferenceSyntax = function (data, moduleName) { + if (data) { + this.__data = data; + } + this.moduleName = moduleName, moduleName.parent = this; + }; + TypeScript.ModuleNameModuleReferenceSyntax.prototype.kind = 217 /* ModuleNameModuleReference */; + TypeScript.ModuleNameModuleReferenceSyntax.prototype.childCount = 1; + TypeScript.ModuleNameModuleReferenceSyntax.prototype.childAt = function (index) { + switch (index) { + case 0: return this.moduleName; + } + }; +})(TypeScript || (TypeScript = {})); +var TypeScript; +(function (TypeScript) { + TypeScript.syntaxDiagnosticsTime = 0; + var SyntaxTree = (function () { + function SyntaxTree(sourceUnit, isDeclaration, diagnostics, fileName, text, languageVersion) { + this.text = text; + this._allDiagnostics = undefined; + this._sourceUnit = sourceUnit; + this._isDeclaration = isDeclaration; + this._parserDiagnostics = diagnostics; + this._fileName = fileName; + this._lineMap = text.lineMap(); + this._languageVersion = languageVersion; + sourceUnit.syntaxTree = this; + } + SyntaxTree.prototype.sourceUnit = function () { + return this._sourceUnit; + }; + SyntaxTree.prototype.isDeclaration = function () { + return this._isDeclaration; + }; + SyntaxTree.prototype.computeDiagnostics = function () { + if (this._parserDiagnostics.length > 0) { + return this._parserDiagnostics; + } + var diagnostics = []; + TypeScript.visitNodeOrToken(new GrammarCheckerWalker(this, diagnostics), this.sourceUnit()); + return diagnostics; + }; + SyntaxTree.prototype.diagnostics = function () { + if (!this._allDiagnostics) { + var start = new Date().getTime(); + this._allDiagnostics = this.computeDiagnostics(); + TypeScript.syntaxDiagnosticsTime += new Date().getTime() - start; + } + return this._allDiagnostics; + }; + SyntaxTree.prototype.fileName = function () { + return this._fileName; + }; + SyntaxTree.prototype.lineMap = function () { + return this._lineMap; + }; + SyntaxTree.prototype.languageVersion = function () { + return this._languageVersion; + }; + SyntaxTree.prototype.cacheSyntaxTreeInfo = function () { + var firstToken = firstSyntaxTreeToken(this); + var leadingTrivia = firstToken.leadingTrivia(this.text); + this._isExternalModule = !!externalModuleIndicatorSpanWorker(this, firstToken); + var amdDependencies = []; + for (var i = 0, n = leadingTrivia.count(); i < n; i++) { + var trivia = leadingTrivia.syntaxTriviaAt(i); + if (trivia.isComment()) { + var amdDependency = this.getAmdDependency(trivia.fullText()); + if (amdDependency) { + amdDependencies.push(amdDependency); + } + } + } + this._amdDependencies = amdDependencies; + }; + SyntaxTree.prototype.getAmdDependency = function (comment) { + var amdDependencyRegEx = /^\/\/\/\s* 0) { + var modifiers = parameter.modifiers; + for (var i = 0, n = modifiers.length; i < n; i++) { + var modifier = modifiers[i]; + if (this.checkParameterAccessibilityModifier(modifier, i)) { + return true; + } + } + } + return false; + }; + GrammarCheckerWalker.prototype.checkParameterAccessibilityModifier = function (modifier, modifierIndex) { + if (!TypeScript.SyntaxFacts.isAccessibilityModifier(modifier.kind)) { + return this.pushDiagnostic(modifier, TypeScript.DiagnosticCode._0_modifier_cannot_appear_on_a_parameter, [modifier.text()]); + } + else { + if (modifierIndex > 0) { + return this.pushDiagnostic(modifier, TypeScript.DiagnosticCode.Accessibility_modifier_already_seen); + } + } + return false; + }; + GrammarCheckerWalker.prototype.checkForTrailingComma = function (list) { + if (list.length === 0 || list.length % 2 === 1) { + return false; + } + var child = list[list.length - 1]; + return this.pushDiagnostic(child, TypeScript.DiagnosticCode.Trailing_comma_not_allowed); + }; + GrammarCheckerWalker.prototype.checkForAtLeastOneElement = function (list, reportToken, listKind) { + if (TypeScript.childCount(list) > 0) { + return false; + } + return this.pushDiagnostic(reportToken, TypeScript.DiagnosticCode._0_list_cannot_be_empty, [listKind]); + }; + GrammarCheckerWalker.prototype.visitParameterList = function (node) { + if (this.checkParameterListOrder(node) || this.checkForTrailingComma(node.parameters)) { + return; + } + _super.prototype.visitParameterList.call(this, node); + }; + GrammarCheckerWalker.prototype.visitHeritageClause = function (node) { + if (this.checkForTrailingComma(node.typeNames) || this.checkForAtLeastOneElement(node.typeNames, node.extendsOrImplementsKeyword, TypeScript.SyntaxFacts.getText(node.extendsOrImplementsKeyword.kind))) { + return; + } + _super.prototype.visitHeritageClause.call(this, node); + }; + GrammarCheckerWalker.prototype.visitArgumentList = function (node) { + if (this.checkForTrailingComma(node.arguments)) { + return; + } + _super.prototype.visitArgumentList.call(this, node); + }; + GrammarCheckerWalker.prototype.visitVariableDeclaration = function (node) { + if (this.checkForAtLeastOneElement(node.variableDeclarators, node.varKeyword, TypeScript.getLocalizedText(TypeScript.DiagnosticCode.variable_declaration, undefined)) || this.checkForTrailingComma(node.variableDeclarators)) { + return; + } + _super.prototype.visitVariableDeclaration.call(this, node); + }; + GrammarCheckerWalker.prototype.visitTypeArgumentList = function (node) { + if (this.checkForTrailingComma(node.typeArguments) || this.checkForAtLeastOneElement(node.typeArguments, node.lessThanToken, TypeScript.getLocalizedText(TypeScript.DiagnosticCode.type_argument, undefined))) { + return; + } + _super.prototype.visitTypeArgumentList.call(this, node); + }; + GrammarCheckerWalker.prototype.visitTupleType = function (node) { + if (this.checkForTrailingComma(node.types) || this.checkForAtLeastOneElement(node.types, node.openBracketToken, TypeScript.getLocalizedText(TypeScript.DiagnosticCode.type, undefined))) { + return; + } + _super.prototype.visitTupleType.call(this, node); + }; + GrammarCheckerWalker.prototype.visitTypeParameterList = function (node) { + if (this.checkForTrailingComma(node.typeParameters) || this.checkForAtLeastOneElement(node.typeParameters, node.lessThanToken, TypeScript.getLocalizedText(TypeScript.DiagnosticCode.type_parameter, undefined))) { + return; + } + _super.prototype.visitTypeParameterList.call(this, node); + }; + GrammarCheckerWalker.prototype.checkIndexSignatureParameter = function (node) { + if (node.parameters.length !== 1) { + return this.pushDiagnostic(node.openBracketToken, TypeScript.DiagnosticCode.Index_signature_must_have_exactly_one_parameter); + } + var parameter = TypeScript.nonSeparatorAt(node.parameters, 0); + if (parameter.dotDotDotToken) { + return this.pushDiagnostic(parameter, TypeScript.DiagnosticCode.Index_signatures_cannot_have_rest_parameters); + } + else if (parameter.modifiers.length > 0) { + return this.pushDiagnostic(parameter, TypeScript.DiagnosticCode.Index_signature_parameter_cannot_have_modifiers); + } + else if (parameter.questionToken) { + return this.pushDiagnostic(parameter, TypeScript.DiagnosticCode.Index_signature_parameter_cannot_have_a_question_mark); + } + else if (parameter.equalsValueClause) { + return this.pushDiagnostic(parameter, TypeScript.DiagnosticCode.Index_signature_parameter_cannot_have_an_initializer); + } + else if (!parameter.typeAnnotation) { + return this.pushDiagnostic(parameter, TypeScript.DiagnosticCode.Index_signature_parameter_must_have_a_type_annotation); + } + else if (parameter.typeAnnotation.type.kind !== 73 /* StringKeyword */ && parameter.typeAnnotation.type.kind !== 71 /* NumberKeyword */) { + return this.pushDiagnostic(parameter, TypeScript.DiagnosticCode.Index_signature_parameter_type_must_be_string_or_number); + } + return false; + }; + GrammarCheckerWalker.prototype.visitIndexSignature = function (node) { + if (this.checkIndexSignatureParameter(node)) { + return; + } + if (!node.typeAnnotation) { + this.pushDiagnostic(node, TypeScript.DiagnosticCode.Index_signature_must_have_a_type_annotation); + return; + } + _super.prototype.visitIndexSignature.call(this, node); + }; + GrammarCheckerWalker.prototype.checkClassDeclarationHeritageClauses = function (node) { + var seenExtendsClause = false; + var seenImplementsClause = false; + for (var i = 0, n = node.heritageClauses.length; i < n; i++) { + TypeScript.Debug.assert(i <= 2); + var heritageClause = node.heritageClauses[i]; + if (heritageClause.extendsOrImplementsKeyword.kind === 50 /* ExtendsKeyword */) { + if (seenExtendsClause) { + return this.pushDiagnostic(heritageClause, TypeScript.DiagnosticCode.extends_clause_already_seen); + } + if (seenImplementsClause) { + return this.pushDiagnostic(heritageClause, TypeScript.DiagnosticCode.extends_clause_must_precede_implements_clause); + } + if (TypeScript.nonSeparatorCount(heritageClause.typeNames) > 1) { + return this.pushDiagnostic(heritageClause, TypeScript.DiagnosticCode.Classes_can_only_extend_a_single_class); + } + seenExtendsClause = true; + } + else { + TypeScript.Debug.assert(heritageClause.extendsOrImplementsKeyword.kind === 53 /* ImplementsKeyword */); + if (seenImplementsClause) { + return this.pushDiagnostic(heritageClause, TypeScript.DiagnosticCode.implements_clause_already_seen); + } + seenImplementsClause = true; + } + } + return false; + }; + GrammarCheckerWalker.prototype.checkForDisallowedDeclareModifier = function (modifiers) { + if (this.inAmbientDeclaration) { + var declareToken = TypeScript.SyntaxUtilities.getToken(modifiers, 67 /* DeclareKeyword */); + if (declareToken) { + return this.pushDiagnostic(declareToken, TypeScript.DiagnosticCode.A_declare_modifier_cannot_be_used_in_an_already_ambient_context); + } + } + return false; + }; + GrammarCheckerWalker.prototype.checkForRequiredDeclareModifier = function (moduleElement, reportToken, modifiers) { + if (!this.inAmbientDeclaration && this.syntaxTree.isDeclaration()) { + if (!TypeScript.SyntaxUtilities.containsToken(modifiers, 67 /* DeclareKeyword */)) { + return this.pushDiagnostic(reportToken, TypeScript.DiagnosticCode.A_declare_modifier_is_required_for_a_top_level_declaration_in_a_d_ts_file); + } + } + }; + GrammarCheckerWalker.prototype.visitClassDeclaration = function (node) { + if (this.checkForDisallowedDeclareModifier(node.modifiers) || this.checkForRequiredDeclareModifier(node, node.identifier, node.modifiers) || this.checkModuleElementModifiers(node.modifiers) || this.checkClassDeclarationHeritageClauses(node) || this.checkForDisallowedAsyncModifier(node.modifiers)) { + return; + } + var savedInAmbientDeclaration = this.inAmbientDeclaration; + this.inAmbientDeclaration = this.inAmbientDeclaration || this.syntaxTree.isDeclaration() || TypeScript.SyntaxUtilities.containsToken(node.modifiers, 67 /* DeclareKeyword */); + _super.prototype.visitClassDeclaration.call(this, node); + this.inAmbientDeclaration = savedInAmbientDeclaration; + }; + GrammarCheckerWalker.prototype.checkInterfaceDeclarationHeritageClauses = function (node) { + var seenExtendsClause = false; + for (var i = 0, n = node.heritageClauses.length; i < n; i++) { + TypeScript.Debug.assert(i <= 1); + var heritageClause = node.heritageClauses[i]; + if (heritageClause.extendsOrImplementsKeyword.kind === 50 /* ExtendsKeyword */) { + if (seenExtendsClause) { + return this.pushDiagnostic(heritageClause, TypeScript.DiagnosticCode.extends_clause_already_seen); + } + seenExtendsClause = true; + } + else { + TypeScript.Debug.assert(heritageClause.extendsOrImplementsKeyword.kind === 53 /* ImplementsKeyword */); + return this.pushDiagnostic(heritageClause, TypeScript.DiagnosticCode.Interface_declaration_cannot_have_implements_clause); + } + } + return false; + }; + GrammarCheckerWalker.prototype.checkInterfaceModifiers = function (modifiers) { + for (var i = 0, n = modifiers.length; i < n; i++) { + var modifier = modifiers[i]; + if (modifier.kind === 67 /* DeclareKeyword */) { + return this.pushDiagnostic(modifier, TypeScript.DiagnosticCode.A_declare_modifier_cannot_be_used_with_an_interface_declaration); + } + } + return false; + }; + GrammarCheckerWalker.prototype.visitInterfaceDeclaration = function (node) { + if (this.checkInterfaceModifiers(node.modifiers) || this.checkModuleElementModifiers(node.modifiers) || this.checkInterfaceDeclarationHeritageClauses(node) || this.checkForDisallowedAsyncModifier(node.modifiers)) { + return; + } + _super.prototype.visitInterfaceDeclaration.call(this, node); + }; + GrammarCheckerWalker.prototype.checkClassElementModifiers = function (list) { + var seenAccessibilityModifier = false; + var seenStaticModifier = false; + var seenAsyncModifier = false; + for (var i = 0, n = list.length; i < n; i++) { + var modifier = list[i]; + if (TypeScript.SyntaxFacts.isAccessibilityModifier(modifier.kind)) { + if (seenAccessibilityModifier) { + return this.pushDiagnostic(modifier, TypeScript.DiagnosticCode.Accessibility_modifier_already_seen); + } + if (seenStaticModifier) { + return this.pushDiagnostic(modifier, TypeScript.DiagnosticCode._0_modifier_must_precede_1_modifier, [modifier.text(), list[i - 1].text()]); + } + if (seenAsyncModifier) { + return this.pushDiagnostic(modifier, TypeScript.DiagnosticCode._0_modifier_must_precede_1_modifier, [modifier.text(), TypeScript.SyntaxFacts.getText(63 /* AsyncKeyword */)]); + } + seenAccessibilityModifier = true; + } + else if (modifier.kind === 60 /* StaticKeyword */) { + if (seenStaticModifier) { + return this.pushDiagnostic(modifier, TypeScript.DiagnosticCode._0_modifier_already_seen, [modifier.text()]); + } + if (seenAsyncModifier) { + return this.pushDiagnostic(modifier, TypeScript.DiagnosticCode._0_modifier_must_precede_1_modifier, [modifier.text(), TypeScript.SyntaxFacts.getText(63 /* AsyncKeyword */)]); + } + seenStaticModifier = true; + } + else if (modifier.kind === 63 /* AsyncKeyword */) { + if (seenAsyncModifier) { + return this.pushDiagnostic(modifier, TypeScript.DiagnosticCode._0_modifier_already_seen, [modifier.text()]); + } + seenAsyncModifier = true; + } + else { + return this.pushDiagnostic(modifier, TypeScript.DiagnosticCode._0_modifier_cannot_appear_on_a_class_element, [modifier.text()]); + } + } + return false; + }; + GrammarCheckerWalker.prototype.visitMemberVariableDeclaration = function (node) { + if (this.checkClassElementModifiers(node.modifiers) || this.checkForDisallowedAsyncModifier(node.modifiers)) { + return; + } + _super.prototype.visitMemberVariableDeclaration.call(this, node); + }; + GrammarCheckerWalker.prototype.visitMethodSignature = function (node) { + if (this.checkForDisallowedTemplatePropertyName(node.propertyName) || this.checkForDisallowedComputedPropertyName(node.propertyName)) { + return; + } + _super.prototype.visitMethodSignature.call(this, node); + }; + GrammarCheckerWalker.prototype.visitPropertySignature = function (node) { + if (this.checkForDisallowedTemplatePropertyName(node.propertyName) || this.checkForDisallowedComputedPropertyName(node.propertyName)) { + return; + } + _super.prototype.visitPropertySignature.call(this, node); + }; + GrammarCheckerWalker.prototype.visitMemberFunctionDeclaration = function (node) { + if (node.parent && node.parent.parent && node.parent.kind === 1 /* List */ && node.parent.parent.kind === 181 /* ObjectLiteralExpression */) { + if (this.checkForSemicolonInsteadOfBlock(node, node.body) || this.checkForDisallowedObjectLiteralMethod(node.modifiers)) { + return; + } + } + else { + if (this.checkClassElementModifiers(node.modifiers)) { + return; + } + } + if (this.checkForDisallowedTemplatePropertyName(node.propertyName) || this.checkForAsyncGenerator(this.getAsyncModifier(node.modifiers), node.asterixToken)) { + return; + } + _super.prototype.visitMemberFunctionDeclaration.call(this, node); + }; + GrammarCheckerWalker.prototype.checkForDisallowedObjectLiteralMethod = function (modifiers) { + for (var i = 0, n = modifiers.length; i < n; i++) { + var modifier = modifiers[i]; + if (modifier.kind !== 63 /* AsyncKeyword */) { + return this.pushDiagnostic(modifier, TypeScript.DiagnosticCode.Modifiers_cannot_appear_here); + } + } + return false; + }; + GrammarCheckerWalker.prototype.checkGetAccessorParameter = function (node) { + if (node.callSignature.parameterList.parameters.length !== 0) { + return this.pushDiagnostic(node.propertyName, TypeScript.DiagnosticCode.get_accessor_cannot_have_parameters); + } + return false; + }; + GrammarCheckerWalker.prototype.visitIndexMemberDeclaration = function (node) { + if (this.checkIndexMemberModifiers(node)) { + return; + } + _super.prototype.visitIndexMemberDeclaration.call(this, node); + }; + GrammarCheckerWalker.prototype.checkIndexMemberModifiers = function (node) { + if (node.modifiers.length > 0) { + return this.pushDiagnostic(node.modifiers[0], TypeScript.DiagnosticCode.Modifiers_cannot_appear_here); + } + return false; + }; + GrammarCheckerWalker.prototype.checkEcmaScriptVersionIsAtLeast = function (reportToken, languageVersion, diagnosticKey) { + if (this.syntaxTree.languageVersion() < languageVersion) { + return this.pushDiagnostic(reportToken, diagnosticKey); + } + return false; + }; + GrammarCheckerWalker.prototype.visitObjectLiteralExpression = function (node) { + var savedInObjectLiteralExpression = this.inObjectLiteralExpression; + this.inObjectLiteralExpression = true; + _super.prototype.visitObjectLiteralExpression.call(this, node); + this.inObjectLiteralExpression = savedInObjectLiteralExpression; + }; + GrammarCheckerWalker.prototype.visitGetAccessor = function (node) { + if (this.checkForAccessorDeclarationInAmbientContext(node) || this.checkEcmaScriptVersionIsAtLeast(node.getKeyword, 1 /* ES5 */, TypeScript.DiagnosticCode.Accessors_are_only_available_when_targeting_ECMAScript_5_and_higher) || this.checkForDisallowedModifiers(node.modifiers) || this.checkClassElementModifiers(node.modifiers) || this.checkForDisallowedAccessorTypeParameters(node.callSignature) || this.checkGetAccessorParameter(node) || this.checkForDisallowedTemplatePropertyName(node.propertyName) || this.checkForSemicolonInsteadOfBlock(node, node.body) || this.checkForDisallowedAsyncModifier(node.modifiers)) { + return; + } + _super.prototype.visitGetAccessor.call(this, node); + }; + GrammarCheckerWalker.prototype.checkForSemicolonInsteadOfBlock = function (parent, node) { + if (node === undefined) { + return this.pushDiagnosticAt(TypeScript.fullEnd(parent), 0, TypeScript.DiagnosticCode._0_expected, ["{"]); + } + else if (node.kind === 82 /* SemicolonToken */) { + return this.pushDiagnostic(node, TypeScript.DiagnosticCode._0_expected, ["{"]); + } + return false; + }; + GrammarCheckerWalker.prototype.checkForDisallowedSetAccessorTypeAnnotation = function (accessor) { + if (accessor.callSignature.typeAnnotation) { + return this.pushDiagnostic(accessor.callSignature.typeAnnotation, TypeScript.DiagnosticCode.Type_annotation_cannot_appear_on_a_set_accessor); + } + return false; + }; + GrammarCheckerWalker.prototype.checkForDisallowedAccessorTypeParameters = function (callSignature) { + if (callSignature.typeParameterList) { + return this.pushDiagnostic(callSignature.typeParameterList, TypeScript.DiagnosticCode.Type_parameters_cannot_appear_on_an_accessor); + } + return false; + }; + GrammarCheckerWalker.prototype.checkForAccessorDeclarationInAmbientContext = function (accessor) { + if (this.inAmbientDeclaration) { + return this.pushDiagnostic(accessor, TypeScript.DiagnosticCode.Accessors_are_not_allowed_in_ambient_contexts); + } + return false; + }; + GrammarCheckerWalker.prototype.checkSetAccessorParameter = function (node) { + var parameters = node.callSignature.parameterList.parameters; + if (TypeScript.nonSeparatorCount(parameters) !== 1) { + return this.pushDiagnostic(node.propertyName, TypeScript.DiagnosticCode.set_accessor_must_have_exactly_one_parameter); + } + var parameter = TypeScript.nonSeparatorAt(parameters, 0); + if (parameter.questionToken) { + return this.pushDiagnostic(parameter, TypeScript.DiagnosticCode.set_accessor_parameter_cannot_be_optional); + } + if (parameter.equalsValueClause) { + return this.pushDiagnostic(parameter, TypeScript.DiagnosticCode.set_accessor_parameter_cannot_have_an_initializer); + } + if (parameter.dotDotDotToken) { + return this.pushDiagnostic(parameter, TypeScript.DiagnosticCode.set_accessor_cannot_have_rest_parameter); + } + return false; + }; + GrammarCheckerWalker.prototype.visitSimpleArrowFunctionExpression = function (node) { + if (node.asyncKeyword) { + this.pushDiagnostic(node.asyncKeyword, TypeScript.DiagnosticCode.async_arrow_function_parameters_must_be_parenthesized); + return; + } + _super.prototype.visitSimpleArrowFunctionExpression.call(this, node); + }; + GrammarCheckerWalker.prototype.visitPropertyAssignment = function (node) { + if (this.checkForDisallowedTemplatePropertyName(node.propertyName)) { + return; + } + _super.prototype.visitPropertyAssignment.call(this, node); + }; + GrammarCheckerWalker.prototype.visitSetAccessor = function (node) { + if (this.checkForAccessorDeclarationInAmbientContext(node) || this.checkEcmaScriptVersionIsAtLeast(node.setKeyword, 1 /* ES5 */, TypeScript.DiagnosticCode.Accessors_are_only_available_when_targeting_ECMAScript_5_and_higher) || this.checkForDisallowedModifiers(node.modifiers) || this.checkClassElementModifiers(node.modifiers) || this.checkForDisallowedAccessorTypeParameters(node.callSignature) || this.checkForDisallowedSetAccessorTypeAnnotation(node) || this.checkSetAccessorParameter(node) || this.checkForDisallowedTemplatePropertyName(node.propertyName) || this.checkForSemicolonInsteadOfBlock(node, node.body) || this.checkForDisallowedAsyncModifier(node.modifiers)) { + return; + } + _super.prototype.visitSetAccessor.call(this, node); + }; + GrammarCheckerWalker.prototype.checkForDisallowedAsyncModifier = function (modifiers) { + var asyncKeyword = this.getAsyncModifier(modifiers); + if (asyncKeyword) { + return this.pushDiagnostic(asyncKeyword, TypeScript.DiagnosticCode.async_modifier_cannot_appear_here); + } + return false; + }; + GrammarCheckerWalker.prototype.visitElementAccessExpression = function (node) { + if (this.checkForMissingArgumentExpression(node)) { + return; + } + _super.prototype.visitElementAccessExpression.call(this, node); + }; + GrammarCheckerWalker.prototype.checkForMissingArgumentExpression = function (node) { + if (node.argumentExpression === undefined) { + if (node.parent.kind === 182 /* ObjectCreationExpression */ && node.parent.expression === node) { + var start = TypeScript.start(node.openBracketToken); + var end = TypeScript.fullEnd(node.closeBracketToken); + return this.pushDiagnosticAt(start, end - start, TypeScript.DiagnosticCode.new_T_cannot_be_used_to_create_an_array_Use_new_Array_T_instead); + } + else { + return this.pushDiagnostic(node.closeBracketToken, TypeScript.DiagnosticCode.Expression_expected); + } + } + return false; + }; + GrammarCheckerWalker.prototype.visitEnumDeclaration = function (node) { + if (this.checkForDisallowedDeclareModifier(node.modifiers) || this.checkForRequiredDeclareModifier(node, node.identifier, node.modifiers) || this.checkModuleElementModifiers(node.modifiers), this.checkEnumElements(node) || this.checkForDisallowedAsyncModifier(node.modifiers)) { + return; + } + var savedInAmbientDeclaration = this.inAmbientDeclaration; + this.inAmbientDeclaration = this.inAmbientDeclaration || this.syntaxTree.isDeclaration() || TypeScript.SyntaxUtilities.containsToken(node.modifiers, 67 /* DeclareKeyword */); + _super.prototype.visitEnumDeclaration.call(this, node); + this.inAmbientDeclaration = savedInAmbientDeclaration; + }; + GrammarCheckerWalker.prototype.checkEnumElements = function (node) { + var previousValueWasComputed = false; + for (var i = 0, n = TypeScript.nonSeparatorCount(node.enumElements); i < n; i++) { + var enumElement = TypeScript.nonSeparatorAt(node.enumElements, i); + if (!enumElement.equalsValueClause && previousValueWasComputed) { + return this.pushDiagnostic(enumElement, TypeScript.DiagnosticCode.Enum_member_must_have_initializer); + } + if (enumElement.equalsValueClause) { + var value = enumElement.equalsValueClause.value; + previousValueWasComputed = !TypeScript.Syntax.isIntegerLiteral(value); + } + } + return false; + }; + GrammarCheckerWalker.prototype.visitEnumElement = function (node) { + if (this.checkForDisallowedTemplatePropertyName(node.propertyName) || this.checkForDisallowedComputedPropertyName(node.propertyName)) { + return; + } + if (this.inAmbientDeclaration && node.equalsValueClause) { + var expression = node.equalsValueClause.value; + if (!TypeScript.Syntax.isIntegerLiteral(expression)) { + this.pushDiagnostic(node.equalsValueClause.value, TypeScript.DiagnosticCode.Ambient_enum_elements_can_only_have_integer_literal_initializers); + return; + } + } + _super.prototype.visitEnumElement.call(this, node); + }; + GrammarCheckerWalker.prototype.visitInvocationExpression = function (node) { + if (node.expression.kind === 52 /* SuperKeyword */ && node.argumentList.typeArgumentList) { + this.pushDiagnostic(node, TypeScript.DiagnosticCode.super_invocation_cannot_have_type_arguments); + } + _super.prototype.visitInvocationExpression.call(this, node); + }; + GrammarCheckerWalker.prototype.checkModuleElementModifiers = function (modifiers) { + var seenExportModifier = false; + var seenDeclareModifier = false; + var seenAsyncModifier = false; + for (var i = 0, n = modifiers.length; i < n; i++) { + var modifier = modifiers[i]; + if (TypeScript.SyntaxFacts.isAccessibilityModifier(modifier.kind) || modifier.kind === 60 /* StaticKeyword */) { + return this.pushDiagnostic(modifier, TypeScript.DiagnosticCode._0_modifier_cannot_appear_on_a_module_element, [modifier.text()]); + } + if (modifier.kind === 67 /* DeclareKeyword */) { + if (seenDeclareModifier) { + this.pushDiagnostic(modifier, TypeScript.DiagnosticCode.Accessibility_modifier_already_seen); + return; + } + if (seenAsyncModifier) { + this.pushDiagnostic(modifier, TypeScript.DiagnosticCode._0_modifier_must_precede_1_modifier, [TypeScript.SyntaxFacts.getText(67 /* DeclareKeyword */), TypeScript.SyntaxFacts.getText(63 /* AsyncKeyword */)]); + return; + } + seenDeclareModifier = true; + } + else if (modifier.kind === 49 /* ExportKeyword */) { + if (seenExportModifier) { + this.pushDiagnostic(modifier, TypeScript.DiagnosticCode._0_modifier_already_seen, [modifier.text()]); + return; + } + if (seenDeclareModifier) { + this.pushDiagnostic(modifier, TypeScript.DiagnosticCode._0_modifier_must_precede_1_modifier, [TypeScript.SyntaxFacts.getText(49 /* ExportKeyword */), TypeScript.SyntaxFacts.getText(67 /* DeclareKeyword */)]); + return; + } + if (seenAsyncModifier) { + this.pushDiagnostic(modifier, TypeScript.DiagnosticCode._0_modifier_must_precede_1_modifier, [TypeScript.SyntaxFacts.getText(49 /* ExportKeyword */), TypeScript.SyntaxFacts.getText(63 /* AsyncKeyword */)]); + return; + } + seenExportModifier = true; + } + else if (modifier.kind === 63 /* AsyncKeyword */) { + if (seenAsyncModifier) { + this.pushDiagnostic(modifier, TypeScript.DiagnosticCode._0_modifier_already_seen, [modifier.text()]); + return; + } + seenAsyncModifier = true; + } + } + return false; + }; + GrammarCheckerWalker.prototype.checkForDisallowedImportDeclaration = function (node) { + if (node.name.kind !== 12 /* StringLiteral */) { + for (var i = 0, n = node.moduleElements.length; i < n; i++) { + var child = node.moduleElements[i]; + if (child.kind === 140 /* ImportDeclaration */) { + var importDeclaration = child; + if (importDeclaration.moduleReference.kind === 216 /* ExternalModuleReference */) { + this.pushDiagnostic(importDeclaration, TypeScript.DiagnosticCode.Import_declarations_in_an_internal_module_cannot_reference_an_external_module); + } + } + } + } + return false; + }; + GrammarCheckerWalker.prototype.checkForDisallowedDeclareModifierOnImportDeclaration = function (modifiers) { + var declareToken = TypeScript.SyntaxUtilities.getToken(modifiers, 67 /* DeclareKeyword */); + if (declareToken) { + return this.pushDiagnostic(declareToken, TypeScript.DiagnosticCode.A_declare_modifier_cannot_be_used_with_an_import_declaration); + } + }; + GrammarCheckerWalker.prototype.visitImportDeclaration = function (node) { + if (this.checkForDisallowedDeclareModifierOnImportDeclaration(node.modifiers) || this.checkModuleElementModifiers(node.modifiers) || this.checkForDisallowedAsyncModifier(node.modifiers)) { + return; + } + _super.prototype.visitImportDeclaration.call(this, node); + }; + GrammarCheckerWalker.prototype.visitModuleDeclaration = function (node) { + if (this.checkForDisallowedDeclareModifier(node.modifiers) || this.checkForRequiredDeclareModifier(node, TypeScript.firstToken(node.name), node.modifiers) || this.checkModuleElementModifiers(node.modifiers) || this.checkForDisallowedImportDeclaration(node) || this.checkForDisallowedAsyncModifier(node.modifiers)) { + return; + } + if (node.name.kind === 12 /* StringLiteral */) { + if (!this.inAmbientDeclaration && !TypeScript.SyntaxUtilities.containsToken(node.modifiers, 67 /* DeclareKeyword */)) { + this.pushDiagnostic(node.name, TypeScript.DiagnosticCode.Only_ambient_modules_can_use_quoted_names); + return; + } + } + if (node.name.kind !== 12 /* StringLiteral */ && this.checkForDisallowedExportAssignment(node)) { + return; + } + var savedInAmbientDeclaration = this.inAmbientDeclaration; + this.inAmbientDeclaration = this.inAmbientDeclaration || this.syntaxTree.isDeclaration() || TypeScript.SyntaxUtilities.containsToken(node.modifiers, 67 /* DeclareKeyword */); + _super.prototype.visitModuleDeclaration.call(this, node); + this.inAmbientDeclaration = savedInAmbientDeclaration; + }; + GrammarCheckerWalker.prototype.checkForDisallowedExportAssignment = function (node) { + for (var i = 0, n = node.moduleElements.length; i < n; i++) { + var child = node.moduleElements[i]; + if (child.kind === 141 /* ExportAssignment */) { + return this.pushDiagnostic(child, TypeScript.DiagnosticCode.Export_assignment_cannot_be_used_in_internal_modules); + } + } + return false; + }; + GrammarCheckerWalker.prototype.visitBlock = function (node) { + if (this.checkForBlockInAmbientContext(node) || this.checkForMalformedBlock(node)) { + return; + } + var savedInBlock = this.inBlock; + this.inBlock = true; + _super.prototype.visitBlock.call(this, node); + this.inBlock = savedInBlock; + }; + GrammarCheckerWalker.prototype.checkForMalformedBlock = function (node) { + if (node.equalsGreaterThanToken || node.openBraceToken === undefined) { + return this.pushDiagnostic(TypeScript.firstToken(node), TypeScript.DiagnosticCode._0_expected, ["{"]); + } + return false; + }; + GrammarCheckerWalker.prototype.checkForBlockInAmbientContext = function (node) { + if (this.inAmbientDeclaration || this.syntaxTree.isDeclaration()) { + if (node.parent.kind === 1 /* List */) { + return this.pushDiagnostic(TypeScript.firstToken(node), TypeScript.DiagnosticCode.Statements_are_not_allowed_in_ambient_contexts); + } + else { + return this.pushDiagnostic(TypeScript.firstToken(node), TypeScript.DiagnosticCode.A_function_implementation_cannot_be_declared_in_an_ambient_context); + } + } + return false; + }; + GrammarCheckerWalker.prototype.checkForStatementInAmbientContxt = function (node) { + if (this.inAmbientDeclaration || this.syntaxTree.isDeclaration()) { + return this.pushDiagnostic(TypeScript.firstToken(node), TypeScript.DiagnosticCode.Statements_are_not_allowed_in_ambient_contexts); + } + return false; + }; + GrammarCheckerWalker.prototype.visitExportAssignment = function (node) { + if (node.modifiers.length > 0) { + this.pushDiagnostic(node.modifiers[0], TypeScript.DiagnosticCode.Modifiers_cannot_appear_here); + return; + } + _super.prototype.visitExportAssignment.call(this, node); + }; + GrammarCheckerWalker.prototype.visitExpressionBody = function (node) { + this.pushDiagnostic(node.equalsGreaterThanToken, TypeScript.DiagnosticCode._0_expected, ["{"]); + }; + GrammarCheckerWalker.prototype.visitBreakStatement = function (node) { + if (this.checkForStatementInAmbientContxt(node) || this.checkBreakStatementTarget(node)) { + return; + } + _super.prototype.visitBreakStatement.call(this, node); + }; + GrammarCheckerWalker.prototype.visitComputedPropertyName = function (node) { + if (node.expression.kind === 176 /* BinaryExpression */ && node.expression.operatorToken.kind === 83 /* CommaToken */) { + this.pushDiagnostic(node.expression.operatorToken, TypeScript.DiagnosticCode.comma_expression_cannot_appear_in_a_computed_property_name); + return; + } + _super.prototype.visitComputedPropertyName.call(this, node); + }; + GrammarCheckerWalker.prototype.visitContinueStatement = function (node) { + if (this.checkForStatementInAmbientContxt(node) || this.checkContinueStatementTarget(node)) { + return; + } + _super.prototype.visitContinueStatement.call(this, node); + }; + GrammarCheckerWalker.prototype.checkBreakStatementTarget = function (node) { + if (node.identifier) { + var breakableLabels = this.getEnclosingLabels(node, true, false); + if (!TypeScript.ArrayUtilities.any(breakableLabels, function (s) { return TypeScript.tokenValueText(s.identifier) === TypeScript.tokenValueText(node.identifier); })) { + var breakableLabels = this.getEnclosingLabels(node, true, true); + if (TypeScript.ArrayUtilities.any(breakableLabels, function (s) { return TypeScript.tokenValueText(s.identifier) === TypeScript.tokenValueText(node.identifier); })) { + return this.pushDiagnostic(node, TypeScript.DiagnosticCode.Jump_target_cannot_cross_function_boundary); + } + else { + return this.pushDiagnostic(node, TypeScript.DiagnosticCode.Jump_target_not_found); + } + } + } + else if (!this.inIterationStatement(node, false) && !this.inSwitchStatement(node)) { + if (this.inIterationStatement(node, true)) { + return this.pushDiagnostic(node, TypeScript.DiagnosticCode.Jump_target_cannot_cross_function_boundary); + } + else { + return this.pushDiagnostic(node, TypeScript.DiagnosticCode.break_statement_can_only_be_used_within_an_enclosing_iteration_or_switch_statement); + } + } + return false; + }; + GrammarCheckerWalker.prototype.inSwitchStatement = function (ast) { + while (ast) { + if (ast.kind === 158 /* SwitchStatement */) { + return true; + } + if (TypeScript.SyntaxUtilities.isAnyFunctionExpressionOrDeclaration(ast)) { + return false; + } + ast = ast.parent; + } + return false; + }; + GrammarCheckerWalker.prototype.isIterationStatement = function (ast) { + switch (ast.kind) { + case 161 /* ForStatement */: + case 162 /* ForInStatement */: + case 165 /* WhileStatement */: + case 168 /* DoStatement */: + return true; + } + return false; + }; + GrammarCheckerWalker.prototype.inIterationStatement = function (element, crossFunctions) { + while (element) { + if (this.isIterationStatement(element)) { + return true; + } + if (!crossFunctions && TypeScript.SyntaxUtilities.isAnyFunctionExpressionOrDeclaration(element)) { + return false; + } + element = element.parent; + } + return false; + }; + GrammarCheckerWalker.prototype.getEnclosingLabels = function (element, breakable, crossFunctions) { + var result = []; + element = element.parent; + while (element) { + if (element.kind === 167 /* LabeledStatement */) { + var labeledStatement = element; + if (breakable) { + result.push(labeledStatement); + } + else { + if (this.labelIsOnContinuableConstruct(labeledStatement.statement)) { + result.push(labeledStatement); + } + } + } + if (!crossFunctions && TypeScript.SyntaxUtilities.isAnyFunctionExpressionOrDeclaration(element)) { + break; + } + element = element.parent; + } + return result; + }; + GrammarCheckerWalker.prototype.labelIsOnContinuableConstruct = function (statement) { + switch (statement.kind) { + case 167 /* LabeledStatement */: + return this.labelIsOnContinuableConstruct(statement.statement); + case 165 /* WhileStatement */: + case 161 /* ForStatement */: + case 162 /* ForInStatement */: + case 168 /* DoStatement */: + return true; + default: + return false; + } + }; + GrammarCheckerWalker.prototype.checkContinueStatementTarget = function (node) { + if (!this.inIterationStatement(node, false)) { + if (this.inIterationStatement(node, true)) { + return this.pushDiagnostic(node, TypeScript.DiagnosticCode.Jump_target_cannot_cross_function_boundary); + } + else { + return this.pushDiagnostic(node, TypeScript.DiagnosticCode.continue_statement_can_only_be_used_within_an_enclosing_iteration_statement); + } + } + else if (node.identifier) { + var continuableLabels = this.getEnclosingLabels(node, false, false); + if (!TypeScript.ArrayUtilities.any(continuableLabels, function (s) { return TypeScript.tokenValueText(s.identifier) === TypeScript.tokenValueText(node.identifier); })) { + var continuableLabels = this.getEnclosingLabels(node, false, true); + if (TypeScript.ArrayUtilities.any(continuableLabels, function (s) { return TypeScript.tokenValueText(s.identifier) === TypeScript.tokenValueText(node.identifier); })) { + return this.pushDiagnostic(node, TypeScript.DiagnosticCode.Jump_target_cannot_cross_function_boundary); + } + else { + return this.pushDiagnostic(node, TypeScript.DiagnosticCode.Jump_target_not_found); + } + } + } + return false; + }; + GrammarCheckerWalker.prototype.visitDebuggerStatement = function (node) { + if (this.checkForStatementInAmbientContxt(node)) { + return; + } + _super.prototype.visitDebuggerStatement.call(this, node); + }; + GrammarCheckerWalker.prototype.visitDoStatement = function (node) { + if (this.checkForStatementInAmbientContxt(node)) { + return; + } + _super.prototype.visitDoStatement.call(this, node); + }; + GrammarCheckerWalker.prototype.visitEmptyStatement = function (node) { + if (this.checkForStatementInAmbientContxt(node)) { + return; + } + _super.prototype.visitEmptyStatement.call(this, node); + }; + GrammarCheckerWalker.prototype.visitExpressionStatement = function (node) { + if (this.checkForStatementInAmbientContxt(node)) { + return; + } + _super.prototype.visitExpressionStatement.call(this, node); + }; + GrammarCheckerWalker.prototype.visitForInStatement = function (node) { + if (this.checkForStatementInAmbientContxt(node) || this.checkForInStatementVariableDeclaration(node) || this.checkForInLeftHandSideExpression(node)) { + return; + } + _super.prototype.visitForInStatement.call(this, node); + }; + GrammarCheckerWalker.prototype.checkForInLeftHandSideExpression = function (node) { + if (node.left.kind !== 194 /* VariableDeclaration */ && !TypeScript.SyntaxUtilities.isLeftHandSizeExpression(node.left)) { + return this.pushDiagnostic(node.left, TypeScript.DiagnosticCode.Invalid_left_hand_side_in_for_in_statement); + } + return false; + }; + GrammarCheckerWalker.prototype.checkForInStatementVariableDeclaration = function (node) { + if (node.left.kind === 194 /* VariableDeclaration */ && node.left.variableDeclarators.length > 1) { + return this.pushDiagnostic(node.left, TypeScript.DiagnosticCode.Only_a_single_variable_declaration_is_allowed_in_a_for_in_statement); + } + return false; + }; + GrammarCheckerWalker.prototype.visitForStatement = function (node) { + if (this.checkForStatementInAmbientContxt(node)) { + return; + } + _super.prototype.visitForStatement.call(this, node); + }; + GrammarCheckerWalker.prototype.visitIfStatement = function (node) { + if (this.checkForStatementInAmbientContxt(node)) { + return; + } + _super.prototype.visitIfStatement.call(this, node); + }; + GrammarCheckerWalker.prototype.visitLabeledStatement = function (node) { + if (this.checkForStatementInAmbientContxt(node) || this.checkForInvalidLabelIdentifier(node)) { + return; + } + _super.prototype.visitLabeledStatement.call(this, node); + }; + GrammarCheckerWalker.prototype.checkForInvalidLabelIdentifier = function (node) { + var labelIdentifier = TypeScript.tokenValueText(node.identifier); + var breakableLabels = this.getEnclosingLabels(node, true, false); + var matchingLabel = TypeScript.ArrayUtilities.firstOrDefault(breakableLabels, function (s) { return TypeScript.tokenValueText(s.identifier) === labelIdentifier; }); + if (matchingLabel) { + return this.pushDiagnostic(node.identifier, TypeScript.DiagnosticCode.Duplicate_identifier_0, [labelIdentifier]); + } + return false; + }; + GrammarCheckerWalker.prototype.visitReturnStatement = function (node) { + if (this.checkForStatementInAmbientContxt(node) || this.checkForReturnStatementNotInFunctionBody(node)) { + return; + } + _super.prototype.visitReturnStatement.call(this, node); + }; + GrammarCheckerWalker.prototype.checkForReturnStatementNotInFunctionBody = function (node) { + for (var element = node; element; element = element.parent) { + if (TypeScript.SyntaxUtilities.isAnyFunctionExpressionOrDeclaration(element)) { + return false; + } + } + return this.pushDiagnostic(TypeScript.firstToken(node), TypeScript.DiagnosticCode.return_statement_must_be_contained_within_a_function_body); + }; + GrammarCheckerWalker.prototype.visitSwitchStatement = function (node) { + if (this.checkForStatementInAmbientContxt(node)) { + return; + } + _super.prototype.visitSwitchStatement.call(this, node); + }; + GrammarCheckerWalker.prototype.visitThrowStatement = function (node) { + if (this.checkForStatementInAmbientContxt(node) || this.checkForMissingThrowStatementExpression(node)) { + return; + } + _super.prototype.visitThrowStatement.call(this, node); + }; + GrammarCheckerWalker.prototype.checkForMissingThrowStatementExpression = function (node) { + if (node.expression === undefined) { + return this.pushDiagnosticAt(TypeScript.fullEnd(node.throwKeyword), 0, TypeScript.DiagnosticCode.Expression_expected); + } + return false; + }; + GrammarCheckerWalker.prototype.visitTryStatement = function (node) { + if (this.checkForStatementInAmbientContxt(node)) { + return; + } + _super.prototype.visitTryStatement.call(this, node); + }; + GrammarCheckerWalker.prototype.visitWhileStatement = function (node) { + if (this.checkForStatementInAmbientContxt(node)) { + return; + } + _super.prototype.visitWhileStatement.call(this, node); + }; + GrammarCheckerWalker.prototype.visitWithStatement = function (node) { + if (this.checkForStatementInAmbientContxt(node) || this.checkForWithInStrictMode(node)) { + return; + } + _super.prototype.visitWithStatement.call(this, node); + }; + GrammarCheckerWalker.prototype.checkForWithInStrictMode = function (node) { + if (TypeScript.parsedInStrictModeContext(node)) { + return this.pushDiagnostic(TypeScript.firstToken(node), TypeScript.DiagnosticCode.with_statements_are_not_allowed_in_strict_mode); + } + return false; + }; + GrammarCheckerWalker.prototype.checkForDisallowedModifiers = function (modifiers) { + if (this.inBlock || this.inObjectLiteralExpression) { + if (modifiers.length > 0) { + return this.pushDiagnostic(modifiers[0], TypeScript.DiagnosticCode.Modifiers_cannot_appear_here); + } + } + return false; + }; + GrammarCheckerWalker.prototype.visitFunctionDeclaration = function (node) { + if (this.checkForDisallowedDeclareModifier(node.modifiers) || this.checkForDisallowedModifiers(node.modifiers) || this.checkForRequiredDeclareModifier(node, node.identifier, node.modifiers) || this.checkModuleElementModifiers(node.modifiers) || this.checkForDisallowedEvalOrArguments(node, node.identifier) || this.checkForAsyncGenerator(this.getAsyncModifier(node.modifiers), node.asterixToken)) { + return; + } + var savedInAmbientDeclaration = this.inAmbientDeclaration; + this.inAmbientDeclaration = this.inAmbientDeclaration || this.syntaxTree.isDeclaration() || TypeScript.SyntaxUtilities.containsToken(node.modifiers, 67 /* DeclareKeyword */); + _super.prototype.visitFunctionDeclaration.call(this, node); + this.inAmbientDeclaration = savedInAmbientDeclaration; + }; + GrammarCheckerWalker.prototype.getAsyncModifier = function (modifiers) { + for (var i = 0, n = modifiers.length; i < n; i++) { + var modifier = modifiers[i]; + if (modifier.kind === 63 /* AsyncKeyword */) { + return modifier; + } + } + return undefined; + }; + GrammarCheckerWalker.prototype.checkForAsyncGenerator = function (asyncKeyword, asterixToken) { + if (asyncKeyword && asterixToken) { + return this.pushDiagnostic(asyncKeyword, TypeScript.DiagnosticCode.A_generator_declaration_cannot_have_the_async_modifier); + } + return false; + }; + GrammarCheckerWalker.prototype.visitFunctionExpression = function (node) { + if (this.checkForDisallowedEvalOrArguments(node, node.identifier) || this.checkForSemicolonInsteadOfBlock(node, node.body) || this.checkForAsyncGenerator(node.asyncKeyword, node.asterixToken)) { + return; + } + _super.prototype.visitFunctionExpression.call(this, node); + }; + GrammarCheckerWalker.prototype.visitVariableStatement = function (node) { + if (this.checkForDisallowedDeclareModifier(node.modifiers) || this.checkForDisallowedModifiers(node.modifiers) || this.checkForRequiredDeclareModifier(node, node.variableDeclaration.varKeyword, node.modifiers) || this.checkModuleElementModifiers(node.modifiers) || this.checkForDisallowedAsyncModifier(node.modifiers)) { + return; + } + var savedInAmbientDeclaration = this.inAmbientDeclaration; + this.inAmbientDeclaration = this.inAmbientDeclaration || this.syntaxTree.isDeclaration() || TypeScript.SyntaxUtilities.containsToken(node.modifiers, 67 /* DeclareKeyword */); + _super.prototype.visitVariableStatement.call(this, node); + this.inAmbientDeclaration = savedInAmbientDeclaration; + }; + GrammarCheckerWalker.prototype.checkListSeparators = function (list, kind) { + for (var i = 0, n = TypeScript.separatorCount(list); i < n; i++) { + var child = TypeScript.separatorAt(list, i); + if (child.kind !== kind) { + this.pushDiagnostic(child, TypeScript.DiagnosticCode._0_expected, [TypeScript.SyntaxFacts.getText(kind)]); + } + } + return false; + }; + GrammarCheckerWalker.prototype.visitObjectType = function (node) { + if (this.checkListSeparators(node.typeMembers, 82 /* SemicolonToken */)) { + return; + } + var savedInAmbientDeclaration = this.inAmbientDeclaration; + this.inAmbientDeclaration = true; + _super.prototype.visitObjectType.call(this, node); + this.inAmbientDeclaration = savedInAmbientDeclaration; + }; + GrammarCheckerWalker.prototype.visitArrayType = function (node) { + var savedInAmbientDeclaration = this.inAmbientDeclaration; + this.inAmbientDeclaration = true; + _super.prototype.visitArrayType.call(this, node); + this.inAmbientDeclaration = savedInAmbientDeclaration; + }; + GrammarCheckerWalker.prototype.visitFunctionType = function (node) { + var savedInAmbientDeclaration = this.inAmbientDeclaration; + this.inAmbientDeclaration = true; + _super.prototype.visitFunctionType.call(this, node); + this.inAmbientDeclaration = savedInAmbientDeclaration; + }; + GrammarCheckerWalker.prototype.visitConstructorType = function (node) { + var savedInAmbientDeclaration = this.inAmbientDeclaration; + this.inAmbientDeclaration = true; + _super.prototype.visitConstructorType.call(this, node); + this.inAmbientDeclaration = savedInAmbientDeclaration; + }; + GrammarCheckerWalker.prototype.visitVariableDeclarator = function (node) { + if (this.checkVariableDeclaratorInitializer(node) || this.checkVariableDeclaratorIdentifier(node) || this.checkForDisallowedTemplatePropertyName(node.propertyName)) { + return; + } + _super.prototype.visitVariableDeclarator.call(this, node); + }; + GrammarCheckerWalker.prototype.checkForDisallowedTemplatePropertyName = function (propertyName) { + if (propertyName.kind === 13 /* NoSubstitutionTemplateToken */) { + return this.pushDiagnostic(propertyName, TypeScript.DiagnosticCode.Template_literal_cannot_be_used_as_an_element_name); + } + return false; + }; + GrammarCheckerWalker.prototype.checkForDisallowedComputedPropertyName = function (propertyName) { + if (propertyName.kind === 214 /* ComputedPropertyName */) { + return this.pushDiagnostic(propertyName, TypeScript.DiagnosticCode.Computed_property_names_cannot_be_used_here); + } + return false; + }; + GrammarCheckerWalker.prototype.checkVariableDeclaratorIdentifier = function (node) { + if (node.parent.kind !== 143 /* MemberVariableDeclaration */) { + TypeScript.Debug.assert(TypeScript.isToken(node.propertyName), "A normal variable declarator must always have a token for a name."); + if (this.checkForDisallowedEvalOrArguments(node, node.propertyName)) { + return true; + } + } + return false; + }; + GrammarCheckerWalker.prototype.checkVariableDeclaratorInitializer = function (node) { + if (this.inAmbientDeclaration && node.equalsValueClause) { + return this.pushDiagnostic(TypeScript.firstToken(node.equalsValueClause.value), TypeScript.DiagnosticCode.Initializers_are_not_allowed_in_ambient_contexts); + } + return false; + }; + GrammarCheckerWalker.prototype.visitConstructorDeclaration = function (node) { + if (this.checkClassElementModifiers(node.modifiers) || this.checkConstructorModifiers(node.modifiers) || this.checkConstructorTypeParameterList(node) || this.checkConstructorTypeAnnotation(node) || this.checkForDisallowedAsyncModifier(node.modifiers)) { + return; + } + _super.prototype.visitConstructorDeclaration.call(this, node); + }; + GrammarCheckerWalker.prototype.checkConstructorModifiers = function (modifiers) { + for (var i = 0, n = modifiers.length; i < n; i++) { + var child = modifiers[i]; + if (child.kind !== 59 /* PublicKeyword */) { + return this.pushDiagnostic(child, TypeScript.DiagnosticCode._0_modifier_cannot_appear_on_a_constructor_declaration, [TypeScript.SyntaxFacts.getText(child.kind)]); + } + } + return false; + }; + GrammarCheckerWalker.prototype.checkConstructorTypeParameterList = function (node) { + if (node.callSignature.typeParameterList) { + return this.pushDiagnostic(node.callSignature.typeParameterList, TypeScript.DiagnosticCode.Type_parameters_cannot_appear_on_a_constructor_declaration); + } + return false; + }; + GrammarCheckerWalker.prototype.checkConstructorTypeAnnotation = function (node) { + if (node.callSignature.typeAnnotation) { + return this.pushDiagnostic(node.callSignature.typeAnnotation, TypeScript.DiagnosticCode.Type_annotation_cannot_appear_on_a_constructor_declaration); + } + return false; + }; + GrammarCheckerWalker.prototype.visitBinaryExpression = function (node) { + if (this.checkIllegalAssignment(node)) { + return; + } + _super.prototype.visitBinaryExpression.call(this, node); + }; + GrammarCheckerWalker.prototype.visitPrefixUnaryExpression = function (node) { + if (TypeScript.parsedInStrictModeContext(node) && this.isPreIncrementOrDecrementExpression(node) && this.isEvalOrArguments(node.operand)) { + this.pushDiagnostic(node.operatorToken, TypeScript.DiagnosticCode.Invalid_use_of_0_in_strict_mode, [this.getEvalOrArguments(node.operand)]); + } + _super.prototype.visitPrefixUnaryExpression.call(this, node); + }; + GrammarCheckerWalker.prototype.visitPostfixUnaryExpression = function (node) { + if (TypeScript.parsedInStrictModeContext(node) && this.isEvalOrArguments(node.operand)) { + this.pushDiagnostic(node.operatorToken, TypeScript.DiagnosticCode.Invalid_use_of_0_in_strict_mode, [this.getEvalOrArguments(node.operand)]); + } + _super.prototype.visitPostfixUnaryExpression.call(this, node); + }; + GrammarCheckerWalker.prototype.visitParameter = function (node) { + if (this.checkParameterAccessibilityModifiers(node) || this.checkForDisallowedEvalOrArguments(node, node.identifier)) { + return; + } + _super.prototype.visitParameter.call(this, node); + }; + GrammarCheckerWalker.prototype.checkForDisallowedEvalOrArguments = function (node, token) { + if (token) { + if (TypeScript.parsedInStrictModeContext(node) && this.isEvalOrArguments(token)) { + return this.pushDiagnostic(token, TypeScript.DiagnosticCode.Invalid_use_of_0_in_strict_mode, [this.getEvalOrArguments(token)]); + } + } + return false; + }; + GrammarCheckerWalker.prototype.isPreIncrementOrDecrementExpression = function (node) { + switch (node.operatorToken.kind) { + case 98 /* MinusMinusToken */: + case 97 /* PlusPlusToken */: + return true; + } + return false; + }; + GrammarCheckerWalker.prototype.visitDeleteExpression = function (node) { + if (TypeScript.parsedInStrictModeContext(node) && node.expression.kind === 9 /* IdentifierName */) { + this.pushDiagnostic(node.deleteKeyword, TypeScript.DiagnosticCode.delete_cannot_be_called_on_an_identifier_in_strict_mode); + return; + } + _super.prototype.visitDeleteExpression.call(this, node); + }; + GrammarCheckerWalker.prototype.visitYieldExpression = function (node) { + if (!TypeScript.parsedInYieldContext(node)) { + this.pushDiagnostic(node.yieldKeyword, TypeScript.DiagnosticCode.yield_expression_must_be_contained_within_a_generator_declaration); + return; + } + _super.prototype.visitYieldExpression.call(this, node); + }; + GrammarCheckerWalker.prototype.visitAwaitExpression = function (node) { + if (!TypeScript.parsedInAsyncContext(node)) { + this.pushDiagnostic(node.awaitKeyword, TypeScript.DiagnosticCode.await_expression_must_be_contained_within_an_async_declaration); + return; + } + _super.prototype.visitAwaitExpression.call(this, node); + }; + GrammarCheckerWalker.prototype.checkIllegalAssignment = function (node) { + if (TypeScript.parsedInStrictModeContext(node) && TypeScript.SyntaxFacts.isAssignmentOperatorToken(node.operatorToken.kind) && this.isEvalOrArguments(node.left)) { + return this.pushDiagnostic(node.operatorToken, TypeScript.DiagnosticCode.Invalid_use_of_0_in_strict_mode, [this.getEvalOrArguments(node.left)]); + } + return false; + }; + GrammarCheckerWalker.prototype.getEvalOrArguments = function (expr) { + if (expr.kind === 9 /* IdentifierName */) { + var text = TypeScript.tokenValueText(expr); + if (text === "eval" || text === "arguments") { + return text; + } + } + return undefined; + }; + GrammarCheckerWalker.prototype.isEvalOrArguments = function (expr) { + return !!this.getEvalOrArguments(expr); + }; + GrammarCheckerWalker.prototype.visitConstraint = function (node) { + if (this.checkConstraintType(node)) { + return; + } + _super.prototype.visitConstraint.call(this, node); + }; + GrammarCheckerWalker.prototype.checkConstraintType = function (node) { + if (!TypeScript.SyntaxFacts.isType(node.typeOrExpression.kind)) { + return this.pushDiagnostic(node.typeOrExpression, TypeScript.DiagnosticCode.Type_expected); + } + return false; + }; + return GrammarCheckerWalker; + })(TypeScript.SyntaxWalker); + function firstSyntaxTreeToken(syntaxTree) { + var scanner = TypeScript.Scanner.createScanner(syntaxTree.languageVersion(), syntaxTree.text, function () { + }); + return scanner.scan(false); + } + function externalModuleIndicatorSpan(syntaxTree) { + var firstToken = firstSyntaxTreeToken(syntaxTree); + return externalModuleIndicatorSpanWorker(syntaxTree, firstToken); + } + TypeScript.externalModuleIndicatorSpan = externalModuleIndicatorSpan; + function externalModuleIndicatorSpanWorker(syntaxTree, firstToken) { + var leadingTrivia = firstToken.leadingTrivia(syntaxTree.text); + return implicitImportSpan(leadingTrivia) || topLevelImportOrExportSpan(syntaxTree.sourceUnit()); + } + TypeScript.externalModuleIndicatorSpanWorker = externalModuleIndicatorSpanWorker; + function implicitImportSpan(sourceUnitLeadingTrivia) { + for (var i = 0, n = sourceUnitLeadingTrivia.count(); i < n; i++) { + var trivia = sourceUnitLeadingTrivia.syntaxTriviaAt(i); + if (trivia.isComment()) { + var span = implicitImportSpanWorker(trivia); + if (span) { + return span; + } + } + } + return undefined; + } + function implicitImportSpanWorker(trivia) { + var implicitImportRegEx = /^(\/\/\/\s*/gim; + var match = implicitImportRegEx.exec(trivia.fullText()); + if (match) { + return new TypeScript.TextSpan(trivia.fullStart(), trivia.fullWidth()); + } + return undefined; + } + function topLevelImportOrExportSpan(node) { + for (var i = 0, n = node.moduleElements.length; i < n; i++) { + var moduleElement = node.moduleElements[i]; + var _firstToken = TypeScript.firstToken(moduleElement); + if (_firstToken && _firstToken.kind === 49 /* ExportKeyword */) { + return new TypeScript.TextSpan(TypeScript.start(_firstToken), TypeScript.width(_firstToken)); + } + if (moduleElement.kind === 140 /* ImportDeclaration */) { + var importDecl = moduleElement; + if (importDecl.moduleReference.kind === 216 /* ExternalModuleReference */) { + var literal = importDecl.moduleReference.stringLiteral; + return new TypeScript.TextSpan(TypeScript.start(literal), TypeScript.width(literal)); + } + } + } + return undefined; + } +})(TypeScript || (TypeScript = {})); +var TypeScript; +(function (TypeScript) { + var Unicode = (function () { + function Unicode() { + } + Unicode.lookupInUnicodeMap = function (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; + }; + Unicode.isIdentifierStart = function (code, languageVersion) { + if (languageVersion === 0 /* ES3 */) { + return Unicode.lookupInUnicodeMap(code, Unicode.unicodeES3IdentifierStart); + } + else if (languageVersion >= 1 /* ES5 */) { + return Unicode.lookupInUnicodeMap(code, Unicode.unicodeES5IdentifierStart); + } + else { + throw TypeScript.Errors.argumentOutOfRange("languageVersion"); + } + }; + Unicode.isIdentifierPart = function (code, languageVersion) { + if (languageVersion === 0 /* ES3 */) { + return Unicode.lookupInUnicodeMap(code, Unicode.unicodeES3IdentifierPart); + } + else if (languageVersion >= 1 /* ES5 */) { + return Unicode.lookupInUnicodeMap(code, Unicode.unicodeES5IdentifierPart); + } + else { + throw TypeScript.Errors.argumentOutOfRange("languageVersion"); + } + }; + Unicode.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,]; + Unicode.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,]; + Unicode.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,]; + Unicode.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,]; + return Unicode; + })(); + TypeScript.Unicode = Unicode; +})(TypeScript || (TypeScript = {})); +var TypeScript; +(function (TypeScript) { + var PrettyPrinter; + (function (PrettyPrinter) { + function prettyPrint(node, indentWhitespace) { + if (indentWhitespace === void 0) { indentWhitespace = " "; } + var impl = new PrettyPrinterImpl(indentWhitespace); + TypeScript.visitNodeOrToken(impl, node); + return impl.result.join(""); + } + PrettyPrinter.prettyPrint = prettyPrint; + var PrettyPrinterImpl = (function () { + function PrettyPrinterImpl(indentWhitespace) { + this.indentWhitespace = indentWhitespace; + this.result = []; + this.indentations = []; + this.indentation = 0; + } + PrettyPrinterImpl.prototype.newLineCountBetweenModuleElements = function (element1, element2) { + if (!element1 || !element2) { + return 0; + } + if (TypeScript.lastToken(element1).kind === 75 /* CloseBraceToken */) { + return 2; + } + return 1; + }; + PrettyPrinterImpl.prototype.newLineCountBetweenClassElements = function (element1, element2) { + if (!element1 || !element2) { + return 0; + } + return 1; + }; + PrettyPrinterImpl.prototype.newLineCountBetweenStatements = function (element1, element2) { + if (!element1 || !element2) { + return 0; + } + if (TypeScript.lastToken(element1).kind === 75 /* CloseBraceToken */) { + return 2; + } + return 1; + }; + PrettyPrinterImpl.prototype.newLineCountBetweenSwitchClauses = function (element1, element2) { + if (!element1 || !element2) { + return 0; + } + if (TypeScript.childCount(element1.statements) === 0) { + return 1; + } + return 2; + }; + PrettyPrinterImpl.prototype.ensureSpace = function () { + if (this.result.length > 0) { + var last = TypeScript.ArrayUtilities.last(this.result); + if (last !== " " && last !== "\r\n") { + this.appendText(" "); + } + } + }; + PrettyPrinterImpl.prototype.ensureNewLine = function () { + if (this.result.length > 0) { + var last = TypeScript.ArrayUtilities.last(this.result); + if (last !== "\r\n") { + this.appendText("\r\n"); + } + } + }; + PrettyPrinterImpl.prototype.appendNewLines = function (count) { + for (var i = 0; i < count; i++) { + this.appendText("\r\n"); + } + }; + PrettyPrinterImpl.prototype.getIndentation = function (count) { + for (var i = this.indentations.length; i <= count; i++) { + var text = i === 0 ? "" : this.indentations[i - 1] + this.indentWhitespace; + this.indentations[i] = text; + } + return this.indentations[count]; + }; + PrettyPrinterImpl.prototype.appendIndentationIfAfterNewLine = function () { + if (this.result.length > 0) { + if (TypeScript.ArrayUtilities.last(this.result) === "\r\n") { + this.result.push(this.getIndentation(this.indentation)); + } + } + }; + PrettyPrinterImpl.prototype.appendText = function (text) { + this.result.push(text); + }; + PrettyPrinterImpl.prototype.appendElement = function (element) { + if (TypeScript.isToken(element)) { + this.appendToken(element); + } + else if (TypeScript.isNode(element)) { + this.appendNode(element); + } + }; + PrettyPrinterImpl.prototype.appendNode = function (node) { + TypeScript.visitNodeOrToken(this, node); + }; + PrettyPrinterImpl.prototype.appendToken = function (token) { + if (token && token.fullWidth() > 0) { + this.appendIndentationIfAfterNewLine(); + this.appendText(token.text()); + } + }; + PrettyPrinterImpl.prototype.visitToken = function (token) { + this.appendToken(token); + }; + PrettyPrinterImpl.prototype.appendSpaceList = function (list) { + for (var i = 0, n = TypeScript.childCount(list); i < n; i++) { + if (TypeScript.isNode(TypeScript.childAt(list, i))) { + this.appendNode(TypeScript.childAt(list, i)); + } + else { + this.appendToken(TypeScript.childAt(list, i)); + } + this.ensureSpace(); + } + }; + PrettyPrinterImpl.prototype.appendSeparatorSpaceList = function (list) { + for (var i = 0, n = TypeScript.childCount(list); i < n; i++) { + if (i % 2 === 0) { + if (i > 0) { + this.ensureSpace(); + } + TypeScript.visitNodeOrToken(this, list[i]); + } + else { + this.appendToken(TypeScript.childAt(list, i)); + } + } + }; + PrettyPrinterImpl.prototype.appendSeparatorNewLineList = function (list) { + for (var i = 0, n = TypeScript.childCount(list); i < n; i++) { + if (i % 2 === 0) { + if (i > 0) { + this.ensureNewLine(); + } + TypeScript.visitNodeOrToken(this, list[i]); + } + else { + this.appendToken(TypeScript.childAt(list, i)); + } + } + }; + PrettyPrinterImpl.prototype.appendModuleElements = function (list) { + var lastModuleElement = undefined; + for (var i = 0, n = list.length; i < n; i++) { + var moduleElement = list[i]; + var newLineCount = this.newLineCountBetweenModuleElements(lastModuleElement, moduleElement); + this.appendNewLines(newLineCount); + TypeScript.visitNodeOrToken(this, moduleElement); + lastModuleElement = moduleElement; + } + }; + PrettyPrinterImpl.prototype.visitSourceUnit = function (node) { + this.appendModuleElements(node.moduleElements); + }; + PrettyPrinterImpl.prototype.visitExternalModuleReference = function (node) { + this.appendToken(node.requireKeyword); + this.appendToken(node.openParenToken); + this.appendToken(node.stringLiteral); + this.appendToken(node.closeParenToken); + }; + PrettyPrinterImpl.prototype.visitModuleNameModuleReference = function (node) { + TypeScript.visitNodeOrToken(this, node.moduleName); + }; + PrettyPrinterImpl.prototype.visitImportDeclaration = function (node) { + this.appendToken(node.importKeyword); + this.ensureSpace(); + this.appendToken(node.identifier); + this.ensureSpace(); + this.appendToken(node.equalsToken); + this.ensureSpace(); + TypeScript.visitNodeOrToken(this, node.moduleReference); + this.appendToken(node.semicolonToken); + }; + PrettyPrinterImpl.prototype.visitExportAssignment = function (node) { + this.appendToken(node.exportKeyword); + this.ensureSpace(); + this.appendToken(node.equalsToken); + this.ensureSpace(); + this.appendToken(node.identifier); + this.appendToken(node.semicolonToken); + }; + PrettyPrinterImpl.prototype.visitClassDeclaration = function (node) { + this.appendSpaceList(node.modifiers); + this.ensureSpace(); + this.appendToken(node.classKeyword); + this.ensureSpace(); + this.appendToken(node.identifier); + this.appendNode(node.typeParameterList); + this.ensureSpace(); + this.appendSpaceList(node.heritageClauses); + this.ensureSpace(); + this.appendToken(node.openBraceToken); + this.ensureNewLine(); + this.indentation++; + var lastClassElement = undefined; + for (var i = 0, n = node.classElements.length; i < n; i++) { + var classElement = node.classElements[i]; + var newLineCount = this.newLineCountBetweenClassElements(lastClassElement, classElement); + this.appendNewLines(newLineCount); + TypeScript.visitNodeOrToken(this, classElement); + lastClassElement = classElement; + } + this.indentation--; + this.ensureNewLine(); + this.appendToken(node.closeBraceToken); + }; + PrettyPrinterImpl.prototype.visitInterfaceDeclaration = function (node) { + this.appendSpaceList(node.modifiers); + this.ensureSpace(); + this.appendToken(node.interfaceKeyword); + this.ensureSpace(); + this.appendToken(node.identifier); + this.appendNode(node.typeParameterList); + this.ensureSpace(); + this.appendSpaceList(node.heritageClauses); + this.ensureSpace(); + this.appendObjectType(node.body, true); + }; + PrettyPrinterImpl.prototype.appendObjectType = function (node, appendNewLines) { + this.appendToken(node.openBraceToken); + if (appendNewLines) { + this.ensureNewLine(); + this.indentation++; + } + else { + this.ensureSpace(); + } + for (var i = 0, n = TypeScript.childCount(node.typeMembers); i < n; i++) { + TypeScript.visitNodeOrToken(this, node.typeMembers[i]); + if (appendNewLines) { + this.ensureNewLine(); + } + else { + this.ensureSpace(); + } + } + this.indentation--; + this.appendToken(node.closeBraceToken); + }; + PrettyPrinterImpl.prototype.visitHeritageClause = function (node) { + this.appendToken(node.extendsOrImplementsKeyword); + this.ensureSpace(); + this.appendSeparatorSpaceList(node.typeNames); + }; + PrettyPrinterImpl.prototype.visitModuleDeclaration = function (node) { + this.appendSpaceList(node.modifiers); + this.ensureSpace(); + this.appendToken(node.moduleKeyword); + this.ensureSpace(); + this.appendElement(node.name); + this.ensureSpace(); + this.appendToken(node.openBraceToken); + this.ensureNewLine(); + this.indentation++; + this.appendModuleElements(node.moduleElements); + this.indentation--; + this.appendToken(node.closeBraceToken); + }; + PrettyPrinterImpl.prototype.appendBody = function (body) { + if (body.kind === 153 /* Block */ || body.kind === 213 /* ExpressionBody */) { + this.ensureSpace(); + TypeScript.visitNodeOrToken(this, body); + } + else { + this.appendToken(body); + } + }; + PrettyPrinterImpl.prototype.visitExpressionBody = function (node) { + this.appendToken(node.equalsGreaterThanToken); + this.ensureSpace(); + TypeScript.visitNodeOrToken(this, node.expression); + }; + PrettyPrinterImpl.prototype.visitFunctionDeclaration = function (node) { + this.appendSpaceList(node.modifiers); + this.ensureSpace(); + this.appendToken(node.functionKeyword); + this.ensureSpace(); + this.appendToken(node.identifier); + this.appendNode(node.callSignature); + this.appendBody(node.body); + }; + PrettyPrinterImpl.prototype.visitVariableStatement = function (node) { + this.appendSpaceList(node.modifiers); + this.ensureSpace(); + TypeScript.visitNodeOrToken(this, node.variableDeclaration); + this.appendToken(node.semicolonToken); + }; + PrettyPrinterImpl.prototype.visitVariableDeclaration = function (node) { + this.appendToken(node.varKeyword); + this.ensureSpace(); + this.appendSeparatorSpaceList(node.variableDeclarators); + }; + PrettyPrinterImpl.prototype.visitVariableDeclarator = function (node) { + TypeScript.visitNodeOrToken(this, node.propertyName); + this.appendNode(node.equalsValueClause); + }; + PrettyPrinterImpl.prototype.visitEqualsValueClause = function (node) { + this.ensureSpace(); + this.appendToken(node.equalsToken); + this.ensureSpace(); + TypeScript.visitNodeOrToken(this, node.value); + }; + PrettyPrinterImpl.prototype.visitPrefixUnaryExpression = function (node) { + this.appendToken(node.operatorToken); + TypeScript.visitNodeOrToken(this, node.operand); + }; + PrettyPrinterImpl.prototype.visitArrayLiteralExpression = function (node) { + this.appendToken(node.openBracketToken); + this.appendSeparatorSpaceList(node.expressions); + this.appendToken(node.closeBracketToken); + }; + PrettyPrinterImpl.prototype.visitOmittedExpression = function (node) { + }; + PrettyPrinterImpl.prototype.visitParenthesizedExpression = function (node) { + this.appendToken(node.openParenToken); + TypeScript.visitNodeOrToken(this, node.expression); + this.appendToken(node.closeParenToken); + }; + PrettyPrinterImpl.prototype.visitSimpleArrowFunctionExpression = function (node) { + this.appendNode(node.parameter); + this.ensureSpace(); + this.appendToken(node.equalsGreaterThanToken); + this.ensureSpace(); + TypeScript.visitNodeOrToken(this, node.body); + }; + PrettyPrinterImpl.prototype.visitParenthesizedArrowFunctionExpression = function (node) { + TypeScript.visitNodeOrToken(this, node.callSignature); + this.ensureSpace(); + this.appendToken(node.equalsGreaterThanToken); + this.ensureSpace(); + TypeScript.visitNodeOrToken(this, node.body); + }; + PrettyPrinterImpl.prototype.visitQualifiedName = function (node) { + TypeScript.visitNodeOrToken(this, node.left); + this.appendToken(node.dotToken); + this.appendToken(node.right); + }; + PrettyPrinterImpl.prototype.visitTypeQuery = function (node) { + this.appendToken(node.typeOfKeyword); + this.ensureSpace(); + TypeScript.visitNodeOrToken(this, node.name); + }; + PrettyPrinterImpl.prototype.visitTypeArgumentList = function (node) { + this.appendToken(node.lessThanToken); + this.appendSeparatorSpaceList(node.typeArguments); + this.appendToken(node.greaterThanToken); + }; + PrettyPrinterImpl.prototype.visitTupleType = function (node) { + this.appendToken(node.openBracketToken); + this.appendSeparatorSpaceList(node.types); + this.appendToken(node.closeBracketToken); + }; + PrettyPrinterImpl.prototype.visitParenthesizedType = function (node) { + this.appendToken(node.openParenToken); + this.appendElement(node.type); + this.appendToken(node.closeParenToken); + }; + PrettyPrinterImpl.prototype.visitUnionType = function (node) { + this.appendElement(node.left); + this.ensureSpace(); + this.appendToken(node.barToken); + this.ensureSpace(); + this.appendElement(node.right); + }; + PrettyPrinterImpl.prototype.visitConstructorType = function (node) { + this.appendToken(node.newKeyword); + this.ensureSpace(); + this.appendNode(node.typeParameterList); + TypeScript.visitNodeOrToken(this, node.parameterList); + this.ensureSpace(); + this.appendToken(node.equalsGreaterThanToken); + this.ensureSpace(); + TypeScript.visitNodeOrToken(this, node.type); + }; + PrettyPrinterImpl.prototype.visitFunctionType = function (node) { + this.appendNode(node.typeParameterList); + TypeScript.visitNodeOrToken(this, node.parameterList); + this.ensureSpace(); + this.appendToken(node.equalsGreaterThanToken); + this.ensureSpace(); + TypeScript.visitNodeOrToken(this, node.type); + }; + PrettyPrinterImpl.prototype.visitObjectType = function (node) { + this.appendToken(node.openBraceToken); + this.ensureSpace(); + this.appendSeparatorSpaceList(node.typeMembers); + this.appendToken(node.closeBraceToken); + }; + PrettyPrinterImpl.prototype.visitArrayType = function (node) { + TypeScript.visitNodeOrToken(this, node.type); + this.appendToken(node.openBracketToken); + this.appendToken(node.closeBracketToken); + }; + PrettyPrinterImpl.prototype.visitGenericType = function (node) { + TypeScript.visitNodeOrToken(this, node.name); + TypeScript.visitNodeOrToken(this, node.typeArgumentList); + }; + PrettyPrinterImpl.prototype.visitTypeAnnotation = function (node) { + this.appendToken(node.colonToken); + this.ensureSpace(); + TypeScript.visitNodeOrToken(this, node.type); + }; + PrettyPrinterImpl.prototype.appendStatements = function (statements) { + var lastStatement = undefined; + for (var i = 0, n = statements.length; i < n; i++) { + var statement = statements[i]; + var newLineCount = this.newLineCountBetweenStatements(lastStatement, statement); + this.appendNewLines(newLineCount); + TypeScript.visitNodeOrToken(this, statement); + lastStatement = statement; + } + }; + PrettyPrinterImpl.prototype.visitBlock = function (node) { + this.appendToken(node.openBraceToken); + this.ensureNewLine(); + this.indentation++; + this.appendStatements(node.statements); + this.indentation--; + this.ensureNewLine(); + this.appendToken(node.closeBraceToken); + }; + PrettyPrinterImpl.prototype.visitParameter = function (node) { + this.appendToken(node.dotDotDotToken); + this.appendSpaceList(node.modifiers); + this.appendToken(node.identifier); + this.appendToken(node.questionToken); + this.appendNode(node.typeAnnotation); + this.appendNode(node.equalsValueClause); + }; + PrettyPrinterImpl.prototype.visitMemberAccessExpression = function (node) { + TypeScript.visitNodeOrToken(this, node.expression); + this.appendToken(node.dotToken); + this.appendToken(node.name); + }; + PrettyPrinterImpl.prototype.visitPostfixUnaryExpression = function (node) { + TypeScript.visitNodeOrToken(this, node.operand); + this.appendToken(node.operatorToken); + }; + PrettyPrinterImpl.prototype.visitElementAccessExpression = function (node) { + TypeScript.visitNodeOrToken(this, node.expression); + this.appendToken(node.openBracketToken); + TypeScript.visitNodeOrToken(this, node.argumentExpression); + this.appendToken(node.closeBracketToken); + }; + PrettyPrinterImpl.prototype.visitInvocationExpression = function (node) { + TypeScript.visitNodeOrToken(this, node.expression); + TypeScript.visitNodeOrToken(this, node.argumentList); + }; + PrettyPrinterImpl.prototype.visitArgumentList = function (node) { + this.appendToken(node.openParenToken); + this.appendSeparatorSpaceList(node.arguments); + this.appendToken(node.closeParenToken); + }; + PrettyPrinterImpl.prototype.visitBinaryExpression = function (node) { + TypeScript.visitNodeOrToken(this, node.left); + if (node.operatorToken.kind !== 83 /* CommaToken */) { + this.ensureSpace(); + } + this.appendToken(node.operatorToken); + this.ensureSpace(); + TypeScript.visitNodeOrToken(this, node.right); + }; + PrettyPrinterImpl.prototype.visitConditionalExpression = function (node) { + TypeScript.visitNodeOrToken(this, node.condition); + this.ensureSpace(); + this.appendToken(node.questionToken); + this.ensureSpace(); + TypeScript.visitNodeOrToken(this, node.whenTrue); + this.ensureSpace(); + this.appendToken(node.colonToken); + this.ensureSpace(); + TypeScript.visitNodeOrToken(this, node.whenFalse); + }; + PrettyPrinterImpl.prototype.visitConstructSignature = function (node) { + this.appendToken(node.newKeyword); + TypeScript.visitNodeOrToken(this, node.callSignature); + }; + PrettyPrinterImpl.prototype.visitMethodSignature = function (node) { + TypeScript.visitNodeOrToken(this, node.propertyName); + this.appendToken(node.questionToken); + TypeScript.visitNodeOrToken(this, node.callSignature); + }; + PrettyPrinterImpl.prototype.visitIndexSignature = function (node) { + this.appendToken(node.openBracketToken); + this.appendSeparatorSpaceList(node.parameters); + this.appendToken(node.closeBracketToken); + this.appendNode(node.typeAnnotation); + }; + PrettyPrinterImpl.prototype.visitPropertySignature = function (node) { + TypeScript.visitNodeOrToken(this, node.propertyName); + this.appendToken(node.questionToken); + this.appendNode(node.typeAnnotation); + }; + PrettyPrinterImpl.prototype.visitParameterList = function (node) { + this.appendToken(node.openParenToken); + this.appendSeparatorSpaceList(node.parameters); + this.appendToken(node.closeParenToken); + }; + PrettyPrinterImpl.prototype.visitCallSignature = function (node) { + this.appendNode(node.typeParameterList); + TypeScript.visitNodeOrToken(this, node.parameterList); + this.appendNode(node.typeAnnotation); + }; + PrettyPrinterImpl.prototype.visitTypeParameterList = function (node) { + this.appendToken(node.lessThanToken); + this.appendSeparatorSpaceList(node.typeParameters); + this.appendToken(node.greaterThanToken); + }; + PrettyPrinterImpl.prototype.visitTypeParameter = function (node) { + this.appendToken(node.identifier); + this.appendNode(node.constraint); + }; + PrettyPrinterImpl.prototype.visitConstraint = function (node) { + this.ensureSpace(); + this.appendToken(node.extendsKeyword); + this.ensureSpace(); + TypeScript.visitNodeOrToken(this, node.typeOrExpression); + }; + PrettyPrinterImpl.prototype.appendBlockOrStatement = function (node) { + if (node.kind === 153 /* Block */) { + this.ensureSpace(); + TypeScript.visitNodeOrToken(this, node); + } + else { + this.ensureNewLine(); + this.indentation++; + TypeScript.visitNodeOrToken(this, node); + this.indentation--; + } + }; + PrettyPrinterImpl.prototype.visitIfStatement = function (node) { + this.appendToken(node.ifKeyword); + this.ensureSpace(); + this.appendToken(node.openParenToken); + TypeScript.visitNodeOrToken(this, node.condition); + this.appendToken(node.closeParenToken); + this.appendBlockOrStatement(node.statement); + this.appendNode(node.elseClause); + }; + PrettyPrinterImpl.prototype.visitElseClause = function (node) { + this.ensureNewLine(); + this.appendToken(node.elseKeyword); + if (node.statement.kind === 154 /* IfStatement */) { + this.ensureSpace(); + TypeScript.visitNodeOrToken(this, node.statement); + } + else { + this.appendBlockOrStatement(node.statement); + } + }; + PrettyPrinterImpl.prototype.visitExpressionStatement = function (node) { + TypeScript.visitNodeOrToken(this, node.expression); + this.appendToken(node.semicolonToken); + }; + PrettyPrinterImpl.prototype.visitConstructorDeclaration = function (node) { + this.appendToken(node.constructorKeyword); + TypeScript.visitNodeOrToken(this, node.callSignature); + this.appendBody(node.body); + }; + PrettyPrinterImpl.prototype.visitIndexMemberDeclaration = function (node) { + this.appendSpaceList(node.modifiers); + this.ensureSpace(); + TypeScript.visitNodeOrToken(this, node.indexSignature); + this.appendToken(node.semicolonToken); + }; + PrettyPrinterImpl.prototype.visitMemberFunctionDeclaration = function (node) { + this.appendSpaceList(node.modifiers); + this.ensureSpace(); + TypeScript.visitNodeOrToken(this, node.propertyName); + TypeScript.visitNodeOrToken(this, node.callSignature); + this.appendBody(node.body); + }; + PrettyPrinterImpl.prototype.visitGetAccessor = function (node) { + this.appendSpaceList(node.modifiers); + this.ensureSpace(); + this.appendToken(node.getKeyword); + this.ensureSpace(); + TypeScript.visitNodeOrToken(this, node.propertyName); + TypeScript.visitNodeOrToken(this, node.callSignature); + this.ensureSpace(); + TypeScript.visitNodeOrToken(this, node.body); + }; + PrettyPrinterImpl.prototype.visitSetAccessor = function (node) { + this.appendSpaceList(node.modifiers); + this.ensureSpace(); + this.appendToken(node.setKeyword); + this.ensureSpace(); + TypeScript.visitNodeOrToken(this, node.propertyName); + TypeScript.visitNodeOrToken(this, node.callSignature); + this.ensureSpace(); + TypeScript.visitNodeOrToken(this, node.body); + }; + PrettyPrinterImpl.prototype.visitMemberVariableDeclaration = function (node) { + this.appendSpaceList(node.modifiers); + this.ensureSpace(); + TypeScript.visitNodeOrToken(this, node.variableDeclarator); + this.appendToken(node.semicolonToken); + }; + PrettyPrinterImpl.prototype.visitThrowStatement = function (node) { + this.appendToken(node.throwKeyword); + if (node.expression) { + this.ensureSpace(); + TypeScript.visitNodeOrToken(this, node.expression); + } + this.appendToken(node.semicolonToken); + }; + PrettyPrinterImpl.prototype.visitReturnStatement = function (node) { + this.appendToken(node.returnKeyword); + if (node.expression) { + this.ensureSpace(); + TypeScript.visitNodeOrToken(this, node.expression); + } + this.appendToken(node.semicolonToken); + }; + PrettyPrinterImpl.prototype.visitObjectCreationExpression = function (node) { + this.appendToken(node.newKeyword); + this.ensureSpace(); + TypeScript.visitNodeOrToken(this, node.expression); + this.appendNode(node.argumentList); + }; + PrettyPrinterImpl.prototype.visitSwitchStatement = function (node) { + this.appendToken(node.switchKeyword); + this.ensureSpace(); + this.appendToken(node.openParenToken); + TypeScript.visitNodeOrToken(this, node.expression); + this.appendToken(node.closeParenToken); + this.ensureSpace(); + this.appendToken(node.openBraceToken); + this.ensureNewLine(); + var lastSwitchClause = undefined; + for (var i = 0, n = node.switchClauses.length; i < n; i++) { + var switchClause = node.switchClauses[i]; + var newLineCount = this.newLineCountBetweenSwitchClauses(lastSwitchClause, switchClause); + this.appendNewLines(newLineCount); + TypeScript.visitNodeOrToken(this, switchClause); + lastSwitchClause = switchClause; + } + this.ensureNewLine(); + this.appendToken(node.closeBraceToken); + }; + PrettyPrinterImpl.prototype.appendSwitchClauseStatements = function (node) { + if (TypeScript.childCount(node.statements) === 1 && TypeScript.childAt(node.statements, 0).kind === 153 /* Block */) { + this.ensureSpace(); + TypeScript.visitNodeOrToken(this, node.statements[0]); + } + else if (TypeScript.childCount(node.statements) > 0) { + this.ensureNewLine(); + this.indentation++; + this.appendStatements(node.statements); + this.indentation--; + } + }; + PrettyPrinterImpl.prototype.visitCaseSwitchClause = function (node) { + this.appendToken(node.caseKeyword); + this.ensureSpace(); + TypeScript.visitNodeOrToken(this, node.expression); + this.appendToken(node.colonToken); + this.appendSwitchClauseStatements(node); + }; + PrettyPrinterImpl.prototype.visitDefaultSwitchClause = function (node) { + this.appendToken(node.defaultKeyword); + this.appendToken(node.colonToken); + this.appendSwitchClauseStatements(node); + }; + PrettyPrinterImpl.prototype.visitBreakStatement = function (node) { + this.appendToken(node.breakKeyword); + if (node.identifier) { + this.ensureSpace(); + this.appendToken(node.identifier); + } + this.appendToken(node.semicolonToken); + }; + PrettyPrinterImpl.prototype.visitContinueStatement = function (node) { + this.appendToken(node.continueKeyword); + if (node.identifier) { + this.ensureSpace(); + this.appendToken(node.identifier); + } + this.appendToken(node.semicolonToken); + }; + PrettyPrinterImpl.prototype.visitForStatement = function (node) { + this.appendToken(node.forKeyword); + this.ensureSpace(); + this.appendToken(node.openParenToken); + TypeScript.visitNodeOrToken(this, node.initializer); + this.appendToken(node.firstSemicolonToken); + if (node.condition) { + this.ensureSpace(); + TypeScript.visitNodeOrToken(this, node.condition); + } + this.appendToken(node.secondSemicolonToken); + if (node.incrementor) { + this.ensureSpace(); + TypeScript.visitNodeOrToken(this, node.incrementor); + } + this.appendToken(node.closeParenToken); + this.appendBlockOrStatement(node.statement); + }; + PrettyPrinterImpl.prototype.visitForInStatement = function (node) { + this.appendToken(node.forKeyword); + this.ensureSpace(); + this.appendToken(node.openParenToken); + this.appendElement(node.left); + this.ensureSpace(); + this.appendToken(node.inKeyword); + this.ensureSpace(); + this.appendElement(node.right); + this.appendToken(node.closeParenToken); + this.appendBlockOrStatement(node.statement); + }; + PrettyPrinterImpl.prototype.visitWhileStatement = function (node) { + this.appendToken(node.whileKeyword); + this.ensureSpace(); + this.appendToken(node.openParenToken); + TypeScript.visitNodeOrToken(this, node.condition); + this.appendToken(node.closeParenToken); + this.appendBlockOrStatement(node.statement); + }; + PrettyPrinterImpl.prototype.visitWithStatement = function (node) { + this.appendToken(node.withKeyword); + this.ensureSpace(); + this.appendToken(node.openParenToken); + TypeScript.visitNodeOrToken(this, node.condition); + this.appendToken(node.closeParenToken); + this.appendBlockOrStatement(node.statement); + }; + PrettyPrinterImpl.prototype.visitEnumDeclaration = function (node) { + this.appendSpaceList(node.modifiers); + this.ensureSpace(); + this.appendToken(node.enumKeyword); + this.ensureSpace(); + this.appendToken(node.identifier); + this.ensureSpace(); + this.appendToken(node.openBraceToken); + this.ensureNewLine(); + this.indentation++; + this.appendSeparatorNewLineList(node.enumElements); + this.indentation--; + this.appendToken(node.closeBraceToken); + }; + PrettyPrinterImpl.prototype.visitEnumElement = function (node) { + TypeScript.visitNodeOrToken(this, node.propertyName); + this.ensureSpace(); + this.appendNode(node.equalsValueClause); + }; + PrettyPrinterImpl.prototype.visitCastExpression = function (node) { + this.appendToken(node.lessThanToken); + TypeScript.visitNodeOrToken(this, node.type); + this.appendToken(node.greaterThanToken); + TypeScript.visitNodeOrToken(this, node.expression); + }; + PrettyPrinterImpl.prototype.visitObjectLiteralExpression = function (node) { + this.appendToken(node.openBraceToken); + if (TypeScript.childCount(node.propertyAssignments) === 1) { + this.ensureSpace(); + TypeScript.visitNodeOrToken(this, TypeScript.childAt(node.propertyAssignments, 0)); + this.ensureSpace(); + } + else if (TypeScript.childCount(node.propertyAssignments) > 0) { + this.indentation++; + this.ensureNewLine(); + this.appendSeparatorNewLineList(node.propertyAssignments); + this.ensureNewLine(); + this.indentation--; + } + this.appendToken(node.closeBraceToken); + }; + PrettyPrinterImpl.prototype.visitComputedPropertyName = function (node) { + this.appendToken(node.openBracketToken); + TypeScript.visitNodeOrToken(this, node.expression); + this.appendToken(node.closeBracketToken); + }; + PrettyPrinterImpl.prototype.visitPropertyAssignment = function (node) { + TypeScript.visitNodeOrToken(this, node.propertyName); + this.appendToken(node.colonToken); + this.ensureSpace(); + TypeScript.visitNodeOrToken(this, node.expression); + }; + PrettyPrinterImpl.prototype.visitFunctionExpression = function (node) { + this.appendToken(node.functionKeyword); + if (node.identifier) { + this.ensureSpace(); + this.appendToken(node.identifier); + } + TypeScript.visitNodeOrToken(this, node.callSignature); + this.ensureSpace(); + TypeScript.visitNodeOrToken(this, node.body); + }; + PrettyPrinterImpl.prototype.visitEmptyStatement = function (node) { + this.appendToken(node.semicolonToken); + }; + PrettyPrinterImpl.prototype.visitTryStatement = function (node) { + this.appendToken(node.tryKeyword); + this.ensureSpace(); + TypeScript.visitNodeOrToken(this, node.block); + this.appendNode(node.catchClause); + this.appendNode(node.finallyClause); + }; + PrettyPrinterImpl.prototype.visitCatchClause = function (node) { + this.ensureNewLine(); + this.appendToken(node.catchKeyword); + this.ensureSpace(); + this.appendToken(node.openParenToken); + this.appendToken(node.identifier); + this.appendToken(node.closeParenToken); + this.ensureSpace(); + TypeScript.visitNodeOrToken(this, node.block); + }; + PrettyPrinterImpl.prototype.visitFinallyClause = function (node) { + this.ensureNewLine(); + this.appendToken(node.finallyKeyword); + this.ensureNewLine(); + TypeScript.visitNodeOrToken(this, node.block); + }; + PrettyPrinterImpl.prototype.visitLabeledStatement = function (node) { + this.appendToken(node.identifier); + this.appendToken(node.colonToken); + this.appendBlockOrStatement(node.statement); + }; + PrettyPrinterImpl.prototype.visitDoStatement = function (node) { + this.appendToken(node.doKeyword); + this.appendBlockOrStatement(node.statement); + this.ensureNewLine(); + this.appendToken(node.whileKeyword); + this.ensureSpace(); + this.appendToken(node.openParenToken); + TypeScript.visitNodeOrToken(this, node.condition); + this.appendToken(node.closeParenToken); + this.appendToken(node.semicolonToken); + }; + PrettyPrinterImpl.prototype.visitTypeOfExpression = function (node) { + this.appendToken(node.typeOfKeyword); + this.ensureSpace(); + TypeScript.visitNodeOrToken(this, node.expression); + }; + PrettyPrinterImpl.prototype.visitDeleteExpression = function (node) { + this.appendToken(node.deleteKeyword); + this.ensureSpace(); + TypeScript.visitNodeOrToken(this, node.expression); + }; + PrettyPrinterImpl.prototype.visitVoidExpression = function (node) { + this.appendToken(node.voidKeyword); + this.ensureSpace(); + TypeScript.visitNodeOrToken(this, node.expression); + }; + PrettyPrinterImpl.prototype.visitYieldExpression = function (node) { + this.appendToken(node.yieldKeyword); + this.ensureSpace(); + this.appendToken(node.asterixToken); + this.ensureSpace(); + TypeScript.visitNodeOrToken(this, node.expression); + }; + PrettyPrinterImpl.prototype.visitAwaitExpression = function (node) { + this.appendToken(node.awaitKeyword); + this.ensureSpace(); + TypeScript.visitNodeOrToken(this, node.expression); + }; + PrettyPrinterImpl.prototype.visitDebuggerStatement = function (node) { + this.appendToken(node.debuggerKeyword); + this.appendToken(node.semicolonToken); + }; + PrettyPrinterImpl.prototype.visitTemplateExpression = function (node) { + this.appendToken(node.templateStartToken); + this.ensureSpace(); + this.appendSpaceList(node.templateClauses); + }; + PrettyPrinterImpl.prototype.visitTemplateClause = function (node) { + TypeScript.visitNodeOrToken(this, node.expression); + this.ensureSpace(); + this.appendToken(node.templateMiddleOrEndToken); + }; + PrettyPrinterImpl.prototype.visitTemplateAccessExpression = function (node) { + TypeScript.visitNodeOrToken(this, node.expression); + this.ensureSpace(); + TypeScript.visitNodeOrToken(this, node.templateExpression); + }; + return PrettyPrinterImpl; + })(); + })(PrettyPrinter = TypeScript.PrettyPrinter || (TypeScript.PrettyPrinter = {})); +})(TypeScript || (TypeScript = {})); +var negative262ExpectedResults = { + 'Sbp_12.5_A9_T3.js': false, + 'Sbp_12.6.1_A13_T3.js': false, + 'Sbp_12.6.2_A13_T3.js': false, + 'Sbp_12.6.4_A13_T3.js': false, + 'Sbp_7.8.4_A6.1_T4.js': false, + 'Sbp_7.8.4_A6.2_T1.js': false, + 'Sbp_7.8.4_A6.2_T2.js': false, + 'Sbp_A1_T1.js': true, + 'Sbp_A2_T1.js': true, + 'Sbp_A2_T2.js': true, + 'Sbp_A3_T1.js': true, + 'Sbp_A3_T2.js': true, + 'Sbp_A4_T1.js': true, + 'Sbp_A4_T2.js': true, + 'Sbp_A5_T1.js': true, + 'Sbp_A5_T2.js': true, + 'S7.2_A5_T1.js': false, + 'S7.2_A5_T2.js': false, + 'S7.2_A5_T3.js': false, + 'S7.2_A5_T4.js': false, + 'S7.2_A5_T5.js': false, + 'S7.3_A2.1_T1.js': true, + 'S7.3_A2.1_T2.js': false, + 'S7.3_A2.2_T1.js': true, + 'S7.3_A2.2_T2.js': false, + 'S7.3_A2.3.js': true, + 'S7.3_A2.4.js': true, + 'S7.3_A3.1_T1.js': true, + 'S7.3_A3.1_T2.js': true, + 'S7.3_A3.1_T3.js': false, + 'S7.3_A3.2_T1.js': true, + 'S7.3_A3.2_T2.js': true, + 'S7.3_A3.2_T3.js': false, + 'S7.3_A3.3_T1.js': true, + 'S7.3_A3.3_T2.js': true, + 'S7.3_A3.4_T1.js': true, + 'S7.3_A3.4_T2.js': true, + 'S7.3_A6_T1.js': false, + 'S7.3_A6_T2.js': false, + 'S7.3_A6_T3.js': false, + 'S7.3_A6_T4.js': false, + 'S7.4_A2_T2.js': false, + 'S7.4_A3.js': false, + 'S7.4_A4_T1.js': false, + 'S7.4_A4_T4.js': false, + 'S7.6.1.1_A1.1.js': false, + 'S7.6.1.1_A1.10.js': false, + 'S7.6.1.1_A1.11.js': false, + 'S7.6.1.1_A1.12.js': false, + 'S7.6.1.1_A1.13.js': false, + 'S7.6.1.1_A1.14.js': false, + 'S7.6.1.1_A1.15.js': false, + 'S7.6.1.1_A1.16.js': false, + 'S7.6.1.1_A1.17.js': false, + 'S7.6.1.1_A1.18.js': true, + 'S7.6.1.1_A1.19.js': false, + 'S7.6.1.1_A1.2.js': false, + 'S7.6.1.1_A1.20.js': false, + 'S7.6.1.1_A1.21.js': false, + 'S7.6.1.1_A1.22.js': false, + 'S7.6.1.1_A1.23.js': false, + 'S7.6.1.1_A1.24.js': false, + 'S7.6.1.1_A1.25.js': false, + 'S7.6.1.1_A1.3.js': false, + 'S7.6.1.1_A1.4.js': false, + 'S7.6.1.1_A1.5.js': false, + 'S7.6.1.1_A1.6.js': false, + 'S7.6.1.1_A1.7.js': false, + 'S7.6.1.1_A1.8.js': false, + 'S7.6.1.1_A1.9.js': false, + 'S7.6.1.2_A1.10.js': false, + 'S7.6.1.2_A1.11.js': false, + 'S7.6.1.2_A1.15.js': false, + 'S7.6.1.2_A1.16.js': false, + 'S7.6.1.2_A1.18.js': false, + 'S7.6.1.2_A1.21.js': false, + 'S7.6.1.2_A1.22.js': false, + 'S7.6.1.2_A1.23.js': false, + 'S7.6.1.2_A1.24.js': false, + 'S7.6.1.2_A1.26.js': false, + 'S7.6.1.2_A1.27.js': false, + 'S7.6.1.2_A1.5.js': false, + 'S7.6.1.2_A1.6.js': false, + 'S7.6.1.2_A1.7.js': false, + 'S7.6.1.2_A1.9.js': false, + '7.6.1.2-1gs.js': false, + 'S7.6.1_A1.1.js': true, + 'S7.6.1_A1.2.js': true, + 'S7.6.1_A1.3.js': true, + 'S7.7_A2_T1.js': false, + 'S7.7_A2_T10.js': false, + 'S7.7_A2_T2.js': false, + 'S7.7_A2_T3.js': false, + 'S7.7_A2_T4.js': false, + 'S7.7_A2_T5.js': false, + 'S7.7_A2_T6.js': false, + 'S7.7_A2_T7.js': false, + 'S7.7_A2_T8.js': false, + 'S7.7_A2_T9.js': false, + '7.8.3-1gs.js': true, + '7.8.3-2gs.js': true, + '7.8.3-3gs.js': true, + 'S7.8.3_A4.1_T1.js': true, + 'S7.8.3_A4.1_T2.js': true, + 'S7.8.3_A4.1_T3.js': true, + 'S7.8.3_A4.1_T4.js': true, + 'S7.8.3_A4.1_T5.js': true, + 'S7.8.3_A4.1_T6.js': true, + 'S7.8.3_A4.1_T7.js': true, + 'S7.8.3_A4.1_T8.js': true, + 'S7.8.3_A6.1_T1.js': false, + 'S7.8.3_A6.1_T2.js': false, + 'S7.8.3_A6.2_T1.js': false, + 'S7.8.3_A6.2_T2.js': false, + '7.8.4-1gs.js': true, + 'S7.8.4_A1.1_T1.js': false, + 'S7.8.4_A1.1_T2.js': false, + 'S7.8.4_A1.2_T1.js': false, + 'S7.8.4_A1.2_T2.js': false, + 'S7.8.4_A3.1_T1.js': false, + 'S7.8.4_A3.1_T2.js': false, + 'S7.8.4_A3.2_T1.js': false, + 'S7.8.4_A3.2_T2.js': false, + 'S7.8.4_A4.3_T1.js': true, + 'S7.8.4_A4.3_T2.js': true, + 'S7.8.4_A7.1_T4.js': false, + 'S7.8.4_A7.2_T1.js': false, + 'S7.8.4_A7.2_T2.js': false, + 'S7.8.4_A7.2_T3.js': false, + 'S7.8.4_A7.2_T4.js': false, + 'S7.8.4_A7.2_T5.js': false, + 'S7.8.4_A7.2_T6.js': false, + '7.8.5-1gs.js': false, + 'S7.8.5_A1.2_T1.js': false, + 'S7.8.5_A1.2_T2.js': false, + 'S7.8.5_A1.2_T3.js': false, + 'S7.8.5_A1.2_T4.js': false, + 'S7.8.5_A1.3_T1.js': false, + 'S7.8.5_A1.3_T3.js': false, + 'S7.8.5_A1.5_T1.js': false, + 'S7.8.5_A1.5_T3.js': false, + 'S7.8.5_A2.2_T1.js': false, + 'S7.8.5_A2.2_T2.js': false, + 'S7.8.5_A2.3_T1.js': false, + 'S7.8.5_A2.3_T3.js': false, + 'S7.8.5_A2.5_T1.js': false, + 'S7.8.5_A2.5_T3.js': false, + 'S7.9.2_A1_T1.js': false, + 'S7.9.2_A1_T3.js': false, + 'S7.9.2_A1_T6.js': false, + 'S7.9_A10_T2.js': false, + 'S7.9_A10_T4.js': false, + 'S7.9_A10_T6.js': false, + 'S7.9_A10_T8.js': false, + 'S7.9_A11_T4.js': false, + 'S7.9_A11_T8.js': false, + 'S7.9_A4.js': false, + 'S7.9_A5.1_T1.js': false, + 'S7.9_A5.3_T1.js': false, + 'S7.9_A5.7_T1.js': true, + 'S7.9_A6.2_T1.js': false, + 'S7.9_A6.2_T10.js': false, + 'S7.9_A6.2_T2.js': false, + 'S7.9_A6.2_T3.js': false, + 'S7.9_A6.2_T4.js': false, + 'S7.9_A6.2_T5.js': false, + 'S7.9_A6.2_T6.js': false, + 'S7.9_A6.2_T7.js': false, + 'S7.9_A6.2_T8.js': false, + 'S7.9_A6.2_T9.js': false, + 'S7.9_A6.3_T1.js': false, + 'S7.9_A6.3_T2.js': false, + 'S7.9_A6.3_T3.js': false, + 'S7.9_A6.3_T4.js': false, + 'S7.9_A6.3_T5.js': false, + 'S7.9_A6.3_T6.js': false, + 'S7.9_A6.3_T7.js': false, + 'S7.9_A6.4_T1.js': false, + 'S7.9_A6.4_T2.js': false, + 'S7.9_A7_T7.js': true, + 'S7.9_A9_T6.js': false, + 'S7.9_A9_T7.js': false, + 'S7.9_A9_T8.js': false, + 'S8.2_A2.js': false, + 'S8.3_A2.1.js': true, + 'S8.3_A2.2.js': true, + 'S8.4_A13_T1.js': false, + 'S8.4_A13_T2.js': false, + 'S8.4_A13_T3.js': false, + 'S8.4_A14_T1.js': false, + 'S8.4_A14_T2.js': false, + 'S8.4_A14_T3.js': false, + 'S8.4_A7.1.js': true, + 'S8.4_A7.2.js': true, + 'S8.4_A7.3.js': true, + 'S8.4_A7.4.js': true, + 'S8.6.2_A7.js': true, + '8.7.2-3-a-1gs.js': true, + '8.7.2-3-a-2gs.js': true, + 'S8.7.2_A1_T1.js': true, + 'S8.7.2_A1_T2.js': true, + '10.1.1-2gs.js': false, + '10.1.1-5gs.js': false, + '10.1.1-8gs.js': false, + '10.4.2.1-1gs.js': true, + '10.5-1gs.js': true, + '10.6-2gs.js': true, + 'S11.1.1_A1.js': true, + '11.1.5-1gs.js': true, + '11.1.5-2gs.js': true, + '11.13.1-4-28gs.js': true, + '11.13.1-4-29gs.js': true, + 'S11.13.1_A2.1_T3.js': true, + '11.13.2-6-1gs.js': true, + 'S11.13.2_A2.2_T1.js': true, + 'S11.13.2_A2.2_T10.js': true, + 'S11.13.2_A2.2_T11.js': true, + 'S11.13.2_A2.2_T2.js': true, + 'S11.13.2_A2.2_T3.js': true, + 'S11.13.2_A2.2_T4.js': true, + 'S11.13.2_A2.2_T5.js': true, + 'S11.13.2_A2.2_T6.js': true, + 'S11.13.2_A2.2_T7.js': true, + 'S11.13.2_A2.2_T8.js': true, + 'S11.13.2_A2.2_T9.js': true, + 'S11.2.4_A1.3_T1.js': false, + '11.3.1-2-1gs.js': true, + 'S11.3.1_A1.1_T1.js': true, + 'S11.3.1_A1.1_T2.js': true, + 'S11.3.1_A1.1_T3.js': true, + 'S11.3.1_A1.1_T4.js': true, + 'S11.3.1_A2.1_T3.js': true, + 'S11.3.2_A1.1_T1.js': true, + 'S11.3.2_A1.1_T2.js': true, + 'S11.3.2_A1.1_T3.js': true, + 'S11.3.2_A1.1_T4.js': true, + 'S11.3.2_A2.1_T3.js': true, + '11.4.1-5-a-5gs.js': true, + 'S11.4.2_A2_T2.js': true, + 'S11.4.4_A2.1_T3.js': true, + '11.4.5-2-2gs.js': true, + 'S11.4.5_A2.1_T3.js': true, + 'S12.1_A4_T1.js': false, + 'S12.1_A4_T2.js': false, + '12.10.1-11gs.js': true, + 'S12.11_A2_T1.js': true, + 'S12.11_A3_T1.js': false, + 'S12.11_A3_T2.js': false, + 'S12.11_A3_T3.js': false, + 'S12.11_A3_T4.js': false, + 'S12.11_A3_T5.js': false, + 'S12.13_A1.js': true, + '12.14.1-1gs.js': true, + 'S12.14_A16_T1.js': false, + 'S12.14_A16_T10.js': false, + 'S12.14_A16_T11.js': false, + 'S12.14_A16_T12.js': false, + 'S12.14_A16_T13.js': false, + 'S12.14_A16_T14.js': false, + 'S12.14_A16_T15.js': false, + 'S12.14_A16_T2.js': false, + 'S12.14_A16_T3.js': false, + 'S12.14_A16_T4.js': false, + 'S12.14_A16_T5.js': false, + 'S12.14_A16_T6.js': false, + 'S12.14_A16_T7.js': false, + 'S12.14_A16_T8.js': false, + 'S12.14_A16_T9.js': false, + '12.2.1-1gs.js': true, + '12.2.1-4gs.js': true, + 'S12.2_A8_T1.js': false, + 'S12.2_A8_T2.js': false, + 'S12.2_A8_T3.js': false, + 'S12.2_A8_T4.js': false, + 'S12.2_A8_T5.js': false, + 'S12.2_A8_T6.js': false, + 'S12.2_A8_T7.js': false, + 'S12.2_A8_T8.js': false, + 'S12.4_A1.js': false, + 'S12.5_A11.js': false, + 'S12.5_A2.js': true, + 'S12.5_A6_T1.js': false, + 'S12.5_A6_T2.js': false, + 'S12.5_A8.js': false, + 'S12.6.1_A12.js': false, + 'S12.6.1_A15.js': false, + 'S12.6.1_A6_T1.js': false, + 'S12.6.1_A6_T2.js': false, + 'S12.6.1_A6_T3.js': false, + 'S12.6.1_A6_T4.js': false, + 'S12.6.1_A6_T5.js': false, + 'S12.6.1_A6_T6.js': false, + 'S12.6.2_A15.js': false, + 'S12.6.2_A6_T1.js': false, + 'S12.6.2_A6_T2.js': false, + 'S12.6.2_A6_T3.js': false, + 'S12.6.2_A6_T4.js': false, + 'S12.6.2_A6_T5.js': false, + 'S12.6.2_A6_T6.js': false, + 'S12.6.3_A11.1_T3.js': true, + 'S12.6.3_A11_T3.js': true, + 'S12.6.3_A12.1_T3.js': true, + 'S12.6.3_A12_T3.js': true, + 'S12.6.3_A4.1.js': false, + 'S12.6.3_A4_T1.js': false, + 'S12.6.3_A4_T2.js': false, + 'S12.6.3_A7.1_T1.js': false, + 'S12.6.3_A7.1_T2.js': false, + 'S12.6.3_A7_T1.js': false, + 'S12.6.3_A7_T2.js': false, + 'S12.6.3_A8.1_T1.js': false, + 'S12.6.3_A8.1_T2.js': false, + 'S12.6.3_A8.1_T3.js': false, + 'S12.6.3_A8_T1.js': false, + 'S12.6.3_A8_T2.js': false, + 'S12.6.3_A8_T3.js': false, + 'S12.6.4_A15.js': false, + 'S12.7_A1_T1.js': true, + 'S12.7_A1_T2.js': true, + 'S12.7_A1_T3.js': true, + 'S12.7_A1_T4.js': true, + 'S12.7_A5_T1.js': true, + 'S12.7_A5_T2.js': true, + 'S12.7_A5_T3.js': true, + 'S12.7_A6.js': true, + 'S12.7_A8_T1.js': true, + 'S12.7_A8_T2.js': true, + 'S12.8_A1_T1.js': true, + 'S12.8_A1_T2.js': true, + 'S12.8_A1_T3.js': true, + 'S12.8_A1_T4.js': true, + 'S12.8_A5_T1.js': true, + 'S12.8_A5_T2.js': true, + 'S12.8_A5_T3.js': true, + 'S12.8_A6.js': true, + 'S12.8_A8_T1.js': true, + 'S12.8_A8_T2.js': true, + 'S12.9_A1_T1.js': true, + 'S12.9_A1_T10.js': true, + 'S12.9_A1_T2.js': true, + 'S12.9_A1_T3.js': true, + 'S12.9_A1_T4.js': true, + 'S12.9_A1_T5.js': true, + 'S12.9_A1_T6.js': true, + 'S12.9_A1_T7.js': true, + 'S12.9_A1_T8.js': true, + 'S12.9_A1_T9.js': true, + '13.0_4-17gs.js': true, + '13.0_4-5gs.js': true, + 'S13_A7_T3.js': false, + '13.1-13gs.js': true, + '13.1-1gs.js': true, + '13.1-4gs.js': true, + '13.1-5gs.js': true, + '13.1-8gs.js': true, + '13.2-19-b-3gs.js': true, + '14.1-4gs.js': true, + '14.1-5gs.js': true, + 'S15.1.2.1_A2_T2.js': true, + 'S15.1_A1_T1.js': true, + 'S15.1_A1_T2.js': true, + 'S15.1_A2_T1.js': true, + 'S15.2.4.3_A12.js': true, + 'S15.2.4.3_A13.js': true, + 'S15.2.4.4_A12.js': true, + 'S15.2.4.4_A13.js': true, + 'S15.2.4.4_A14.js': true, + 'S15.2.4.4_A15.js': true, + 'S15.2.4.5_A12.js': true, + 'S15.2.4.5_A13.js': true, + 'S15.2.4.6_A12.js': true, + 'S15.2.4.6_A13.js': true, + 'S15.2.4.7_A12.js': true, + 'S15.2.4.7_A13.js': true, + '15.3.2.1-10-4gs.js': true, + '15.3.2.1-10-6gs.js': true, + 'S15.3.4.2_A12.js': true, + 'S15.3.4.2_A13.js': true, + 'S15.3.4.2_A14.js': true, + 'S15.3.4.2_A15.js': true, + 'S15.3.4.2_A16.js': true, + 'S15.3.4.3_A13.js': true, + 'S15.3.4.3_A14.js': true, + 'S15.3.4.3_A15.js': true, + 'S15.3.4.4_A13.js': true, + 'S15.3.4.4_A14.js': true, + 'S15.3.4.4_A15.js': true, + 'S15.3.4.5_A1.js': true, + 'S15.3.4.5_A13.js': true, + 'S15.3.4.5_A14.js': true, + 'S15.3.4.5_A15.js': true, + 'S15.3.4.5_A2.js': true, + '15.3.5.4_2-10gs.js': true, + '15.3.5.4_2-11gs.js': true, + '15.3.5.4_2-13gs.js': true, + '15.3.5.4_2-15gs.js': true, + '15.3.5.4_2-16gs.js': true, + '15.3.5.4_2-17gs.js': true, + '15.3.5.4_2-18gs.js': true, + '15.3.5.4_2-19gs.js': true, + '15.3.5.4_2-1gs.js': true, + '15.3.5.4_2-20gs.js': true, + '15.3.5.4_2-21gs.js': true, + '15.3.5.4_2-22gs.js': true, + '15.3.5.4_2-23gs.js': true, + '15.3.5.4_2-24gs.js': true, + '15.3.5.4_2-25gs.js': true, + '15.3.5.4_2-26gs.js': true, + '15.3.5.4_2-27gs.js': true, + '15.3.5.4_2-28gs.js': true, + '15.3.5.4_2-29gs.js': true, + '15.3.5.4_2-2gs.js': true, + '15.3.5.4_2-30gs.js': true, + '15.3.5.4_2-31gs.js': true, + '15.3.5.4_2-32gs.js': true, + '15.3.5.4_2-33gs.js': true, + '15.3.5.4_2-34gs.js': true, + '15.3.5.4_2-35gs.js': true, + '15.3.5.4_2-36gs.js': true, + '15.3.5.4_2-37gs.js': true, + '15.3.5.4_2-38gs.js': true, + '15.3.5.4_2-39gs.js': true, + '15.3.5.4_2-3gs.js': true, + '15.3.5.4_2-40gs.js': true, + '15.3.5.4_2-41gs.js': true, + '15.3.5.4_2-42gs.js': true, + '15.3.5.4_2-43gs.js': true, + '15.3.5.4_2-44gs.js': true, + '15.3.5.4_2-45gs.js': true, + '15.3.5.4_2-46gs.js': true, + '15.3.5.4_2-47gs.js': true, + '15.3.5.4_2-48gs.js': true, + '15.3.5.4_2-49gs.js': true, + '15.3.5.4_2-4gs.js': true, + '15.3.5.4_2-50gs.js': true, + '15.3.5.4_2-51gs.js': true, + '15.3.5.4_2-52gs.js': true, + '15.3.5.4_2-53gs.js': true, + '15.3.5.4_2-54gs.js': true, + '15.3.5.4_2-55gs.js': true, + '15.3.5.4_2-56gs.js': true, + '15.3.5.4_2-57gs.js': true, + '15.3.5.4_2-58gs.js': true, + '15.3.5.4_2-59gs.js': true, + '15.3.5.4_2-5gs.js': true, + '15.3.5.4_2-60gs.js': true, + '15.3.5.4_2-61gs.js': true, + '15.3.5.4_2-62gs.js': true, + '15.3.5.4_2-63gs.js': true, + '15.3.5.4_2-64gs.js': true, + '15.3.5.4_2-65gs.js': true, + '15.3.5.4_2-66gs.js': true, + '15.3.5.4_2-67gs.js': true, + '15.3.5.4_2-68gs.js': true, + '15.3.5.4_2-69gs.js': true, + '15.3.5.4_2-6gs.js': true, + '15.3.5.4_2-70gs.js': true, + '15.3.5.4_2-71gs.js': true, + '15.3.5.4_2-72gs.js': true, + '15.3.5.4_2-73gs.js': true, + '15.3.5.4_2-74gs.js': true, + '15.3.5.4_2-7gs.js': true, + '15.3.5.4_2-8gs.js': true, + '15.3.5.4_2-94gs.js': true, + '15.3.5.4_2-95gs.js': true, + '15.3.5.4_2-96gs.js': true, + '15.3.5.4_2-97gs.js': true, + '15.3.5.4_2-9gs.js': true, + '15.3.5-1gs.js': true, + '15.3.5-2gs.js': true +}; +var TypeScript; +(function (TypeScript) { + var SyntaxElementsCollector = (function () { + function SyntaxElementsCollector() { + } + SyntaxElementsCollector.collectElements = function (node) { + var result = []; + this.collect(node, result); + return result; + }; + SyntaxElementsCollector.collect = function (element, result) { + if (element) { + var kind = element.kind; + result.push(element); + for (var i = 0, n = TypeScript.childCount(element); i < n; i++) { + this.collect(TypeScript.childAt(element, i), result); + } + } + }; + return SyntaxElementsCollector; + })(); + TypeScript.SyntaxElementsCollector = SyntaxElementsCollector; + function withChange(text, start, length, newText) { + var contents = text.substr(0, text.length()); + var newContents = contents.substr(0, start) + newText + contents.substring(start + length); + return { text: TypeScript.SimpleText.fromString(newContents), textChangeRange: new TypeScript.TextChangeRange(new TypeScript.TextSpan(start, length), newText.length) }; + } + function withInsert(text, start, newText) { + return withChange(text, start, 0, newText); + } + function withDelete(text, start, length) { + return withChange(text, start, length, ""); + } + function compareTrees(oldText, newText, textChangeRange, reusedElements) { + if (reusedElements === void 0) { reusedElements = -1; } + var oldTree = TypeScript.Parser.parse("", oldText, 1 /* ES5 */, false); + TypeScript.visitNodeOrToken(new PositionValidatingWalker(), oldTree.sourceUnit()); + var newTree = TypeScript.Parser.parse("", newText, 1 /* ES5 */, false); + TypeScript.visitNodeOrToken(new PositionValidatingWalker(), newTree.sourceUnit()); + var incrementalNewTree = TypeScript.IncrementalParser.parse(oldTree, textChangeRange, newText); + TypeScript.visitNodeOrToken(new PositionValidatingWalker(), incrementalNewTree.sourceUnit()); + TypeScript.Debug.assert(TypeScript.treeStructuralEquals(newTree, incrementalNewTree, true)); + TypeScript.Debug.assert(IncrementalParserTests.reusedElements(oldTree.sourceUnit(), newTree.sourceUnit()) === 0); + if (reusedElements !== -1) { + var actualReusedCount = IncrementalParserTests.reusedElements(oldTree.sourceUnit(), incrementalNewTree.sourceUnit()); + TypeScript.Debug.assert(actualReusedCount === reusedElements, actualReusedCount + " !== " + reusedElements); + } + } + var IncrementalParserTests = (function () { + function IncrementalParserTests() { + } + IncrementalParserTests.runAllTests = function () { + for (var name in IncrementalParserTests) { + if (IncrementalParserTests.hasOwnProperty(name) && TypeScript.StringUtilities.startsWith(name, "test")) { + var o = IncrementalParserTests; + o[name](); + } + } + }; + IncrementalParserTests.reusedElements = function (oldNode, newNode) { + var allOldElements = SyntaxElementsCollector.collectElements(oldNode); + var allNewElements = SyntaxElementsCollector.collectElements(newNode); + return TypeScript.ArrayUtilities.where(allOldElements, function (v) { return TypeScript.ArrayUtilities.contains(allNewElements, v); }).length; + }; + IncrementalParserTests.testIncremental1 = function () { + var source = "class C {\r\n"; + source += " public foo1() { }\r\n"; + source += " public foo2() {\r\n"; + source += " return 1;\r\n"; + source += " }\r\n"; + source += " public foo3() { }\r\n"; + source += "}"; + var semicolonIndex = source.indexOf(";"); + var oldText = TypeScript.SimpleText.fromString(source); + var newTextAndChange = withInsert(oldText, semicolonIndex, " + 1"); + compareTrees(oldText, newTextAndChange.text, newTextAndChange.textChangeRange, 36); + }; + IncrementalParserTests.testIncremental2 = function () { + var source = "class C {\r\n"; + source += " public foo1() { }\r\n"; + source += " public foo2() {\r\n"; + source += " return 1 + 1;\r\n"; + source += " }\r\n"; + source += " public foo3() { }\r\n"; + source += "}"; + var index = source.indexOf("+ 1"); + var oldText = TypeScript.SimpleText.fromString(source); + var newTextAndChange = withDelete(oldText, index, 3); + compareTrees(oldText, newTextAndChange.text, newTextAndChange.textChangeRange, 36); + }; + IncrementalParserTests.testIncrementalRegex1 = function () { + var source = "class C { public foo1() { /; } public foo2() { return 1;} public foo3() { } }"; + var semicolonIndex = source.indexOf(";}"); + var oldText = TypeScript.SimpleText.fromString(source); + var newTextAndChange = withInsert(oldText, semicolonIndex, "/"); + compareTrees(oldText, newTextAndChange.text, newTextAndChange.textChangeRange, 5); + }; + IncrementalParserTests.testIncrementalRegex2 = function () { + var source = "class C { public foo1() { ; } public foo2() { return 1/;} public foo3() { } }"; + var semicolonIndex = source.indexOf(";"); + var oldText = TypeScript.SimpleText.fromString(source); + var newTextAndChange = withInsert(oldText, semicolonIndex, "/"); + compareTrees(oldText, newTextAndChange.text, newTextAndChange.textChangeRange, 21); + }; + IncrementalParserTests.testIncrementalComment1 = function () { + var source = "class C { public foo1() { /; } public foo2() { return 1; } public foo3() { } }"; + var semicolonIndex = source.indexOf(";"); + var oldText = TypeScript.SimpleText.fromString(source); + var newTextAndChange = withInsert(oldText, semicolonIndex, "/"); + compareTrees(oldText, newTextAndChange.text, newTextAndChange.textChangeRange, 5); + }; + IncrementalParserTests.testIncrementalComment2 = function () { + var source = "class C { public foo1() { /; } public foo2() { return 1; } public foo3() { } }"; + var oldText = TypeScript.SimpleText.fromString(source); + var newTextAndChange = withInsert(oldText, 0, "//"); + compareTrees(oldText, newTextAndChange.text, newTextAndChange.textChangeRange, 0); + }; + IncrementalParserTests.testIncrementalComment3 = function () { + var source = "//class C { public foo1() { /; } public foo2() { return 1; } public foo3() { } }"; + var oldText = TypeScript.SimpleText.fromString(source); + var newTextAndChange = withDelete(oldText, 0, 2); + compareTrees(oldText, newTextAndChange.text, newTextAndChange.textChangeRange, 0); + }; + IncrementalParserTests.testIncrementalComment4 = function () { + var source = "class C { public foo1() { /; } public foo2() { */ return 1; } public foo3() { } }"; + var index = source.indexOf(";"); + var oldText = TypeScript.SimpleText.fromString(source); + var newTextAndChange = withInsert(oldText, index, "*"); + compareTrees(oldText, newTextAndChange.text, newTextAndChange.textChangeRange, 22); + }; + IncrementalParserTests.testParameter1 = function () { + var source = "class C {\r\n"; + source += " public foo2(a, b, c, d) {\r\n"; + source += " return 1;\r\n"; + source += " }\r\n"; + source += "}"; + var semicolonIndex = source.indexOf(";"); + var oldText = TypeScript.SimpleText.fromString(source); + var newTextAndChange = withInsert(oldText, semicolonIndex, " + 1"); + compareTrees(oldText, newTextAndChange.text, newTextAndChange.textChangeRange, 25); + }; + IncrementalParserTests.testTypeMember1 = function () { + var source = "interface I { a: number; b: string; (c): d; new (e): f; g(): h }"; + var index = source.indexOf(": string"); + var oldText = TypeScript.SimpleText.fromString(source); + var newTextAndChange = withInsert(oldText, index, "?"); + compareTrees(oldText, newTextAndChange.text, newTextAndChange.textChangeRange, 44); + }; + IncrementalParserTests.testEnumElement1 = function () { + var source = "enum E { a = 1, b = 1 << 1, c = 3, e = 4, f = 5, g = 7, h = 8, i = 9, j = 10 }"; + var index = source.indexOf("<<"); + var oldText = TypeScript.SimpleText.fromString(source); + var newTextAndChange = withChange(oldText, index, 2, "+"); + compareTrees(oldText, newTextAndChange.text, newTextAndChange.textChangeRange, 53); + }; + IncrementalParserTests.testStrictMode1 = function () { + var source = "foo1();\r\nfoo1();\r\nfoo1();\r\package();"; + var oldText = TypeScript.SimpleText.fromString(source); + var newTextAndChange = withInsert(oldText, 0, "'strict';\r\n"); + compareTrees(oldText, newTextAndChange.text, newTextAndChange.textChangeRange, 27); + }; + IncrementalParserTests.testStrictMode2 = function () { + var source = "foo1();\r\nfoo1();\r\nfoo1();\r\package();"; + var oldText = TypeScript.SimpleText.fromString(source); + var newTextAndChange = withInsert(oldText, 0, "'use strict';\r\n"); + compareTrees(oldText, newTextAndChange.text, newTextAndChange.textChangeRange, 13); + }; + IncrementalParserTests.testStrictMode3 = function () { + var source = "'strict';\r\nfoo1();\r\nfoo1();\r\nfoo1();\r\npackage();"; + var index = source.indexOf('f'); + var oldText = TypeScript.SimpleText.fromString(source); + var newTextAndChange = withDelete(oldText, 0, index); + compareTrees(oldText, newTextAndChange.text, newTextAndChange.textChangeRange, 27); + }; + IncrementalParserTests.testStrictMode4 = function () { + var source = "'use strict';\r\nfoo1();\r\nfoo1();\r\nfoo1();\r\npackage();"; + var index = source.indexOf('f'); + var oldText = TypeScript.SimpleText.fromString(source); + var newTextAndChange = withDelete(oldText, 0, index); + compareTrees(oldText, newTextAndChange.text, newTextAndChange.textChangeRange, 12); + }; + IncrementalParserTests.testIncremental5 = function () { + var source = "'use blahhh';\r\nfoo1();\r\nfoo2();\r\nfoo3();\r\nfoo4();\r\nfoo4();\r\nfoo6();\r\nfoo7();\r\nfoo8();\r\nfoo9();\r\n"; + var index = source.indexOf('b'); + var oldText = TypeScript.SimpleText.fromString(source); + var newTextAndChange = withChange(oldText, index, 6, "strict"); + compareTrees(oldText, newTextAndChange.text, newTextAndChange.textChangeRange, 37); + }; + IncrementalParserTests.testIncremental6 = function () { + var source = "'use strict';\r\nfoo1();\r\nfoo2();\r\nfoo3();\r\nfoo4();\r\nfoo4();\r\nfoo6();\r\nfoo7();\r\nfoo8();\r\nfoo9();\r\n"; + var index = source.indexOf('s'); + var oldText = TypeScript.SimpleText.fromString(source); + var newTextAndChange = withChange(oldText, index, 6, "blahhh"); + compareTrees(oldText, newTextAndChange.text, newTextAndChange.textChangeRange, 37); + }; + IncrementalParserTests.testDelete1 = function () { + var source = "'use blahhh';\r\nfoo1();\r\nfoo2();\r\nfoo3();\r\nfoo4();\r\nfoo4();\r\nfoo6();\r\nfoo7();\r\nfoo8();\r\nfoo9();\r\n"; + var index = source.indexOf('f'); + var oldText = TypeScript.SimpleText.fromString(source); + var newTextAndChange = withDelete(oldText, 0, index); + compareTrees(oldText, newTextAndChange.text, newTextAndChange.textChangeRange, 67); + }; + IncrementalParserTests.testIncremental3 = function () { + var source = "var v = (a, b, c, d, e)"; + var index = source.indexOf('a'); + var oldText = TypeScript.SimpleText.fromString(source); + var newTextAndChange = withInsert(oldText, index + 1, ":"); + compareTrees(oldText, newTextAndChange.text, newTextAndChange.textChangeRange, -1); + }; + IncrementalParserTests.testIncremental4 = function () { + var source = "var v = (a:, b, c, d, e)"; + var index = source.indexOf(':'); + var oldText = TypeScript.SimpleText.fromString(source); + var newTextAndChange = withDelete(oldText, index, 1); + compareTrees(oldText, newTextAndChange.text, newTextAndChange.textChangeRange, -1); + }; + IncrementalParserTests.testIncremental7 = function () { + var source = "var v = Fe"; + var index = source.indexOf('b'); + var oldText = TypeScript.SimpleText.fromString(source); + var newTextAndChange = withInsert(oldText, index + 1, ",x"); + compareTrees(oldText, newTextAndChange.text, newTextAndChange.textChangeRange, -1); + }; + IncrementalParserTests.testIncremental8 = function () { + var source = "var v = Fe"; + var index = source.indexOf('b'); + var oldText = TypeScript.SimpleText.fromString(source); + var newTextAndChange = withInsert(oldText, index + 1, ",x"); + compareTrees(oldText, newTextAndChange.text, newTextAndChange.textChangeRange, -1); + }; + IncrementalParserTests.testIncremental9 = function () { + var source = "var v = Fe"; + var index = source.indexOf('b'); + var oldText = TypeScript.SimpleText.fromString(source); + var newTextAndChange = withInsert(oldText, index + 1, ",x"); + compareTrees(oldText, newTextAndChange.text, newTextAndChange.textChangeRange, -1); + }; + IncrementalParserTests.testIncremental10 = function () { + var source = "var v = Fe"; + var index = source.indexOf('b'); + var oldText = TypeScript.SimpleText.fromString(source); + var newTextAndChange = withInsert(oldText, index + 1, ",x"); + compareTrees(oldText, newTextAndChange.text, newTextAndChange.textChangeRange, -1); + }; + IncrementalParserTests.testIncremental11 = function () { + var source = "interface IFoo { }\r\ninterface Array extends IFoo { }"; + var index = source.indexOf('extends'); + var repeat = "extends IFoo".length; + for (var i = 0; i < repeat; i++) { + var oldText = TypeScript.SimpleText.fromString(source); + var newTextAndChange = withDelete(oldText, index, 1); + compareTrees(oldText, newTextAndChange.text, newTextAndChange.textChangeRange, -1); + source = newTextAndChange.text.substr(0, newTextAndChange.text.length()); + } + }; + IncrementalParserTests.testGenerics1 = function () { + var source = "var v = (a);"; + var index = source.indexOf(';'); + var oldText = TypeScript.SimpleText.fromString(source); + var newTextAndChange = withInsert(oldText, index, " => 1"); + compareTrees(oldText, newTextAndChange.text, newTextAndChange.textChangeRange, 3); + }; + IncrementalParserTests.testGenerics2 = function () { + var source = "var v = (a) => 1;"; + var index = source.indexOf(' =>'); + var oldText = TypeScript.SimpleText.fromString(source); + var newTextAndChange = withDelete(oldText, index, " => 1".length); + compareTrees(oldText, newTextAndChange.text, newTextAndChange.textChangeRange, 6); + }; + IncrementalParserTests.testGenerics3 = function () { + var source = "var v = 1 >> = 2"; + var index = source.indexOf('>> ='); + var oldText = TypeScript.SimpleText.fromString(source); + var newTextAndChange = withDelete(oldText, index + 2, 1); + compareTrees(oldText, newTextAndChange.text, newTextAndChange.textChangeRange, -1); + }; + IncrementalParserTests.testGenerics4 = function () { + var source = "var v = 1 >>= 2"; + var index = source.indexOf('>>='); + var oldText = TypeScript.SimpleText.fromString(source); + var newTextAndChange = withInsert(oldText, index + 2, " "); + compareTrees(oldText, newTextAndChange.text, newTextAndChange.textChangeRange, 2); + }; + IncrementalParserTests.testGenerics5 = function () { + var source = "var v = T>>(2)"; + var index = source.indexOf('T'); + var oldText = TypeScript.SimpleText.fromString(source); + var newTextAndChange = withInsert(oldText, index, "Foo"); + compareTrees(oldText, newTextAndChange.text, newTextAndChange.textChangeRange, -1); + }; + IncrementalParserTests.testLambdaToParenthesizedExpression = function () { + var source = "var v = (a, b) => c"; + var index = source.indexOf(">"); + var oldText = TypeScript.SimpleText.fromString(source); + var newTextAndChange = withDelete(oldText, index, 1); + compareTrees(oldText, newTextAndChange.text, newTextAndChange.textChangeRange, -1); + }; + IncrementalParserTests.testGenericToArithmetic = function () { + var source = "var v = new Dictionary()"; + var index = source.indexOf("()"); + var oldText = TypeScript.SimpleText.fromString(source); + var newTextAndChange = withDelete(oldText, index, 2); + compareTrees(oldText, newTextAndChange.text, newTextAndChange.textChangeRange, -1); + }; + IncrementalParserTests.testArithmeticToGeneric = function () { + var source = "var v = new Dictionary"; + var index = source.length; + var oldText = TypeScript.SimpleText.fromString(source); + var newTextAndChange = withInsert(oldText, index, "()"); + compareTrees(oldText, newTextAndChange.text, newTextAndChange.textChangeRange, -1); + }; + IncrementalParserTests.testYield1 = function () { + var source = "function foo() {\r\nyield(foo1);\r\n}"; + var oldText = TypeScript.SimpleText.fromString(source); + var index = source.indexOf("foo"); + var newTextAndChange = withInsert(oldText, index, "*"); + compareTrees(oldText, newTextAndChange.text, newTextAndChange.textChangeRange, -1); + }; + IncrementalParserTests.testYield2 = function () { + var source = "function *foo() {\r\nyield(foo1);\r\n}"; + var oldText = TypeScript.SimpleText.fromString(source); + var index = source.indexOf("*"); + var newTextAndChange = withDelete(oldText, index, "*".length); + compareTrees(oldText, newTextAndChange.text, newTextAndChange.textChangeRange, -1); + }; + IncrementalParserTests.textComplexEdits1 = function () { + var source = "if (typeParameterSymbol.isResolved() || typeParameterSymbol.isResolving()) {\ + return typeParameterSymbol;\ +}\ +else {\ + return null;\ +}"; + var index = source.indexOf("||"); + var text1 = TypeScript.SimpleText.fromString(source); + var textAndChange1 = withChange(text1, index, "|| typeParameterSymbol.isResolving()".length, "/*|| typeParameterSymbol.isResolving()*/"); + var text2 = textAndChange1.text; + var start = text2.substr(0, text2.length()).indexOf("else"); + var end = text2.substr(0, text2.length()).lastIndexOf("}") + 1; + var textAndChange2 = withDelete(text2, start, end - start); + var text3 = textAndChange2.text; + compareTrees(text1, text2, textAndChange1.textChangeRange, -1); + compareTrees(text2, text3, textAndChange2.textChangeRange, -1); + compareTrees(text1, text3, TypeScript.TextChangeRange.collapseChangesAcrossMultipleVersions([textAndChange1.textChangeRange, textAndChange2.textChangeRange]), -1); + }; + IncrementalParserTests.testSemicolonDelete1 = function () { + var source = "export class Foo {\r\n}\r\n\r\nexport var foo = new Foo();\r\n\r\n export function test(foo: Foo) {\r\n return true;\r\n }\r\n"; + var oldText = TypeScript.SimpleText.fromString(source); + var index = source.lastIndexOf(";"); + var newTextAndChange = withDelete(oldText, index, 1); + compareTrees(oldText, newTextAndChange.text, newTextAndChange.textChangeRange, 39); + }; + IncrementalParserTests.testGenericError1 = function () { + var source = "class Dictionary<> { }\r\nvar y;\r\n"; + var oldText = TypeScript.SimpleText.fromString(source); + var index = source.length; + var newTextAndChange = withInsert(oldText, index, "var x;"); + compareTrees(oldText, newTextAndChange.text, newTextAndChange.textChangeRange, -1); + }; + IncrementalParserTests.testParameterDeleteAfterComment1 = function () { + var source = "function fn(/* comment! */ a: number, c) { }"; + var oldText = TypeScript.SimpleText.fromString(source); + var index = source.indexOf("a:"); + var newTextAndChange = withDelete(oldText, index, "a: number,".length); + compareTrees(oldText, newTextAndChange.text, newTextAndChange.textChangeRange, -1); + }; + IncrementalParserTests.testInsertModifierBeforeSetter1 = function () { + var source = "class C {\ + set Bar(bar:string) {}\ +}\ +var o2 = { set Foo(val:number) { } };"; + var oldText = TypeScript.SimpleText.fromString(source); + var index = source.indexOf("set"); + var newTextAndChange = withInsert(oldText, index, "public "); + compareTrees(oldText, newTextAndChange.text, newTextAndChange.textChangeRange, -1); + }; + IncrementalParserTests.testParameter2 = function () { + var source = "alert(100);\ +\ +class OverloadedMonster {\ +constructor();\ +constructor(name) { }\ +}"; + var oldText = TypeScript.SimpleText.fromString(source); + var index = source.indexOf("100"); + var newTextAndChange = withInsert(oldText, index, "'1', "); + compareTrees(oldText, newTextAndChange.text, newTextAndChange.textChangeRange, -1); + }; + IncrementalParserTests.testInsertAboveComment = function () { + var source = "\ +// foo\ +1;"; + var oldText = TypeScript.SimpleText.fromString(source); + var index = 0; + var newTextAndChange = withInsert(oldText, index, "var x;\r\n"); + compareTrees(oldText, newTextAndChange.text, newTextAndChange.textChangeRange, -1); + }; + IncrementalParserTests.testInsertDeclareAboveModule = function () { + var source = "module mAmbient {\ +module m3 { }\ +}"; + var oldText = TypeScript.SimpleText.fromString(source); + var index = 0; + var newTextAndChange = withInsert(oldText, index, "declare "); + compareTrees(oldText, newTextAndChange.text, newTextAndChange.textChangeRange, -1); + }; + IncrementalParserTests.testInsertFunctionAboveLambdaWithComment = function () { + var source = "\ +() =>\ + // do something\ +0;"; + var oldText = TypeScript.SimpleText.fromString(source); + var index = 0; + var newTextAndChange = withInsert(oldText, index, "function Foo() { }"); + compareTrees(oldText, newTextAndChange.text, newTextAndChange.textChangeRange, -1); + }; + IncrementalParserTests.testSlashToRegex1 = function () { + var source = "while (true) /3; return;"; + var oldText = TypeScript.SimpleText.fromString(source); + var index = source.length - 1; + var newTextAndChange = withInsert(oldText, index, "/"); + compareTrees(oldText, newTextAndChange.text, newTextAndChange.textChangeRange, -1); + }; + IncrementalParserTests.testRegex1 = function () { + var source = "return;\r\nwhile (true) /3/g;"; + var oldText = TypeScript.SimpleText.fromString(source); + var index = source.indexOf("while"); + var newTextAndChange = withDelete(oldText, index, "while ".length); + compareTrees(oldText, newTextAndChange.text, newTextAndChange.textChangeRange, -1); + }; + IncrementalParserTests.testRegex2 = function () { + var source = "return;\r\n(true) /3/g;"; + var oldText = TypeScript.SimpleText.fromString(source); + var index = source.indexOf("("); + var newTextAndChange = withInsert(oldText, index, "while "); + compareTrees(oldText, newTextAndChange.text, newTextAndChange.textChangeRange, -1); + }; + IncrementalParserTests.testKeywordAsIdentifier1 = function () { + var source = "return; a.public /*"; + var oldText = TypeScript.SimpleText.fromString(source); + var newTextAndChange = withInsert(oldText, 0, ""); + compareTrees(oldText, newTextAndChange.text, newTextAndChange.textChangeRange, -1); + }; + IncrementalParserTests.testSkippedToken1 = function () { + var source = "function foo() {\r\n" + " function getOccurrencesAtPosition() {\r\n" + " switch (node) {\r\n" + " enum \r\n" + " }\r\n" + " \r\n" + " return undefined;\r\n" + " \r\n" + " function keywordToReferenceEntry() {\r\n" + " }\r\n" + " }\r\n" + " \r\n" + " return {\r\n" + " getEmitOutput: (filename): Bar => null,\r\n" + " };\r\n" + " }"; + var text1 = TypeScript.SimpleText.fromString(source); + var tree1 = TypeScript.Parser.parse("", text1, 1 /* ES5 */, false); + var index = source.indexOf("enum ") + "enum ".length; + var textAndChange1 = withInsert(text1, index, "F"); + var incrementalTree1 = TypeScript.IncrementalParser.parse(tree1, textAndChange1.textChangeRange, textAndChange1.text); + var textAndChange2 = withInsert(textAndChange1.text, index + 1, "o"); + var incrementalTree2 = TypeScript.IncrementalParser.parse(incrementalTree1, textAndChange2.textChangeRange, textAndChange2.text); + }; + return IncrementalParserTests; + })(); + TypeScript.IncrementalParserTests = IncrementalParserTests; +})(TypeScript || (TypeScript = {})); +var TypeScript; +(function (TypeScript) { + var IncrementalParser; + (function (IncrementalParser) { + function createParserSource(oldSyntaxTree, textChangeRange, text) { + var _scannerParserSource = TypeScript.Scanner.createParserSource(oldSyntaxTree.fileName(), text, oldSyntaxTree.languageVersion()); + var oldSourceUnit = oldSyntaxTree.sourceUnit(); + var _outstandingRewindPointCount = 0; + var _oldSourceUnitCursor = getSyntaxCursor(); + if (oldSourceUnit.moduleElements.length > 0) { + _oldSourceUnitCursor.pushElement(TypeScript.childAt(oldSourceUnit.moduleElements, 0), 0); + } + var _changeRange = extendToAffectedRange(textChangeRange, oldSourceUnit); + var _changeRangeNewSpan = _changeRange.newSpan(); + if (TypeScript.Debug.shouldAssert(2 /* Aggressive */)) { + TypeScript.Debug.assert((TypeScript.fullWidth(oldSourceUnit) - _changeRange.span().length() + _changeRange.newLength()) === text.length()); + } + var delta = _changeRange.newSpan().length() - _changeRange.span().length(); + updateTokenPositionsAndMarkElements(oldSourceUnit, _changeRange.span().start(), _changeRange.span().end(), delta, 0); + function release() { + _scannerParserSource.release(); + _scannerParserSource = undefined; + _oldSourceUnitCursor = undefined; + _outstandingRewindPointCount = 0; + } + function extendToAffectedRange(changeRange, sourceUnit) { + var maxLookahead = 1; + var start = changeRange.span().start(); + for (var i = 0; start > 0 && i <= maxLookahead; i++) { + var token = TypeScript.findToken(sourceUnit, start); + var position = token.fullStart(); + start = Math.max(0, position - 1); + } + var finalSpan = TypeScript.TextSpan.fromBounds(start, changeRange.span().end()); + var finalLength = changeRange.newLength() + (changeRange.span().start() - start); + return new TypeScript.TextChangeRange(finalSpan, finalLength); + } + function absolutePosition() { + return _scannerParserSource.absolutePosition(); + } + function tokenDiagnostics() { + return _scannerParserSource.tokenDiagnostics(); + } + function getRewindPoint() { + var rewindPoint = _scannerParserSource.getRewindPoint(); + rewindPoint.oldSourceUnitCursor = cloneSyntaxCursor(_oldSourceUnitCursor); + _outstandingRewindPointCount++; + return rewindPoint; + } + function rewind(rewindPoint) { + returnSyntaxCursor(_oldSourceUnitCursor); + _oldSourceUnitCursor = rewindPoint.oldSourceUnitCursor; + rewindPoint.oldSourceUnitCursor = undefined; + _scannerParserSource.rewind(rewindPoint); + } + function releaseRewindPoint(rewindPoint) { + if (rewindPoint.oldSourceUnitCursor) { + returnSyntaxCursor(rewindPoint.oldSourceUnitCursor); + } + _scannerParserSource.releaseRewindPoint(rewindPoint); + _outstandingRewindPointCount--; + TypeScript.Debug.assert(_outstandingRewindPointCount >= 0); + } + function isPinned() { + return _outstandingRewindPointCount > 0; + } + function trySynchronizeCursorToPosition() { + if (isPinned()) { + return false; + } + var absolutePos = absolutePosition(); + while (true) { + if (_oldSourceUnitCursor.isFinished()) { + return false; + } + var currentNodeOrToken = _oldSourceUnitCursor.currentNodeOrToken(); + if (currentNodeOrToken.intersectsChange) { + if (TypeScript.isNode(currentNodeOrToken)) { + _oldSourceUnitCursor.moveToFirstChild(); + } + else { + _oldSourceUnitCursor.moveToNextSibling(); + } + continue; + } + var currentNodeOrTokenFullStart = TypeScript.fullStart(currentNodeOrToken); + if (currentNodeOrTokenFullStart === absolutePos) { + return true; + } + if (currentNodeOrTokenFullStart > absolutePos) { + return false; + } + var currentNodeOrTokenFullWidth = TypeScript.fullWidth(currentNodeOrToken); + var currentNodeOrTokenFullEnd = currentNodeOrTokenFullStart + currentNodeOrTokenFullWidth; + if (currentNodeOrTokenFullEnd <= absolutePos || TypeScript.isToken(currentNodeOrToken)) { + _oldSourceUnitCursor.moveToNextSibling(); + } + else { + _oldSourceUnitCursor.moveToFirstChild(); + } + } + } + function currentNode() { + if (trySynchronizeCursorToPosition()) { + var node = tryGetNodeFromOldSourceUnit(); + if (node) { + return node; + } + } + return undefined; + } + function currentToken() { + if (trySynchronizeCursorToPosition()) { + var token = tryGetTokenFromOldSourceUnit(); + if (token) { + return token; + } + } + return _scannerParserSource.currentToken(); + } + function currentContextualToken() { + return _scannerParserSource.currentContextualToken(); + } + function tryGetNodeFromOldSourceUnit() { + while (true) { + var node = _oldSourceUnitCursor.currentNode(); + if (node === undefined) { + return undefined; + } + if (!TypeScript.isIncrementallyUnusable(node)) { + return node; + } + _oldSourceUnitCursor.moveToFirstChild(); + } + } + function canReuseTokenFromOldSourceUnit(token) { + return token && !token.intersectsChange && !token.isIncrementallyUnusable() && !TypeScript.Scanner.isContextualToken(token); + } + function tryGetTokenFromOldSourceUnit() { + var token = _oldSourceUnitCursor.currentToken(); + return canReuseTokenFromOldSourceUnit(token) ? token : undefined; + } + function peekToken(n) { + if (trySynchronizeCursorToPosition()) { + var token = tryPeekTokenFromOldSourceUnit(n); + if (token) { + return token; + } + } + return _scannerParserSource.peekToken(n); + } + function tryPeekTokenFromOldSourceUnit(n) { + var cursorClone = cloneSyntaxCursor(_oldSourceUnitCursor); + var token = tryPeekTokenFromOldSourceUnitWorker(n); + returnSyntaxCursor(_oldSourceUnitCursor); + _oldSourceUnitCursor = cursorClone; + return token; + } + function tryPeekTokenFromOldSourceUnitWorker(n) { + _oldSourceUnitCursor.moveToFirstToken(); + for (var i = 0; i < n; i++) { + var interimToken = _oldSourceUnitCursor.currentToken(); + if (!canReuseTokenFromOldSourceUnit(interimToken)) { + return undefined; + } + _oldSourceUnitCursor.moveToNextSibling(); + } + var token = _oldSourceUnitCursor.currentToken(); + return canReuseTokenFromOldSourceUnit(token) ? token : undefined; + } + function consumeNodeOrToken(nodeOrToken) { + _scannerParserSource.consumeNodeOrToken(nodeOrToken); + } + return { + text: text, + fileName: oldSyntaxTree.fileName(), + languageVersion: oldSyntaxTree.languageVersion(), + absolutePosition: absolutePosition, + currentNode: currentNode, + currentToken: currentToken, + currentContextualToken: currentContextualToken, + peekToken: peekToken, + consumeNodeOrToken: consumeNodeOrToken, + getRewindPoint: getRewindPoint, + rewind: rewind, + releaseRewindPoint: releaseRewindPoint, + tokenDiagnostics: tokenDiagnostics, + release: release + }; + } + function createSyntaxCursorPiece(element, indexInParent) { + return { element: element, indexInParent: indexInParent }; + } + var syntaxCursorPool = []; + var syntaxCursorPoolCount = 0; + function returnSyntaxCursor(cursor) { + cursor.clean(); + syntaxCursorPool[syntaxCursorPoolCount] = cursor; + syntaxCursorPoolCount++; + } + function getSyntaxCursor() { + var cursor = syntaxCursorPoolCount > 0 ? syntaxCursorPool[syntaxCursorPoolCount - 1] : createSyntaxCursor(); + if (syntaxCursorPoolCount > 0) { + syntaxCursorPoolCount--; + syntaxCursorPool[syntaxCursorPoolCount] = undefined; + } + return cursor; + } + function cloneSyntaxCursor(cursor) { + var newCursor = getSyntaxCursor(); + newCursor.deepCopyFrom(cursor); + return newCursor; + } + function createSyntaxCursor() { + var pieces = []; + var currentPieceIndex = -1; + function clean() { + for (var i = 0, n = pieces.length; i < n; i++) { + var piece = pieces[i]; + if (piece.element === undefined) { + break; + } + piece.element = undefined; + piece.indexInParent = -1; + } + currentPieceIndex = -1; + } + function deepCopyFrom(other) { + for (var i = 0, n = other.pieces.length; i < n; i++) { + var piece = other.pieces[i]; + if (piece.element === undefined) { + break; + } + pushElement(piece.element, piece.indexInParent); + } + } + function isFinished() { + return currentPieceIndex < 0; + } + function currentNodeOrToken() { + if (isFinished()) { + return undefined; + } + var result = pieces[currentPieceIndex].element; + return result; + } + function currentNode() { + var element = currentNodeOrToken(); + return TypeScript.isNode(element) ? element : undefined; + } + function isEmptyList(element) { + return TypeScript.isList(element) && element.length === 0; + } + function moveToFirstChild() { + var nodeOrToken = currentNodeOrToken(); + if (nodeOrToken === undefined) { + return; + } + if (TypeScript.isToken(nodeOrToken)) { + return; + } + for (var i = 0, n = TypeScript.childCount(nodeOrToken); i < n; i++) { + var child = TypeScript.childAt(nodeOrToken, i); + if (child && !isEmptyList(child)) { + pushElement(child, i); + moveToFirstChildIfList(); + return; + } + } + moveToNextSibling(); + } + function moveToNextSibling() { + while (!isFinished()) { + var currentPiece = pieces[currentPieceIndex]; + var parent = currentPiece.element.parent; + for (var i = currentPiece.indexInParent + 1, n = TypeScript.childCount(parent); i < n; i++) { + var sibling = TypeScript.childAt(parent, i); + if (sibling && !isEmptyList(sibling)) { + currentPiece.element = sibling; + currentPiece.indexInParent = i; + moveToFirstChildIfList(); + return; + } + } + currentPiece.element = undefined; + currentPiece.indexInParent = -1; + currentPieceIndex--; + } + } + function moveToFirstChildIfList() { + var element = pieces[currentPieceIndex].element; + if (TypeScript.isList(element)) { + pushElement(TypeScript.childAt(element, 0), 0); + } + } + function pushElement(element, indexInParent) { + currentPieceIndex++; + if (currentPieceIndex === pieces.length) { + pieces.push(createSyntaxCursorPiece(element, indexInParent)); + } + else { + var piece = pieces[currentPieceIndex]; + piece.element = element; + piece.indexInParent = indexInParent; + } + } + function moveToFirstToken() { + while (!isFinished()) { + var element = pieces[currentPieceIndex].element; + if (TypeScript.isNode(element)) { + moveToFirstChild(); + continue; + } + return; + } + } + function currentToken() { + moveToFirstToken(); + var element = currentNodeOrToken(); + return element; + } + return { + pieces: pieces, + clean: clean, + isFinished: isFinished, + moveToFirstChild: moveToFirstChild, + moveToFirstToken: moveToFirstToken, + moveToNextSibling: moveToNextSibling, + currentNodeOrToken: currentNodeOrToken, + currentNode: currentNode, + currentToken: currentToken, + pushElement: pushElement, + deepCopyFrom: deepCopyFrom + }; + } + var TokenCollectorWalker = (function (_super) { + __extends(TokenCollectorWalker, _super); + function TokenCollectorWalker() { + _super.apply(this, arguments); + this.tokens = []; + } + TokenCollectorWalker.prototype.visitToken = function (token) { + this.tokens.push(token); + }; + return TokenCollectorWalker; + })(TypeScript.SyntaxWalker); + var tokenCollectorWalker = new TokenCollectorWalker(); + function updateTokenPositionsAndMarkElements(element, changeStart, changeRangeOldEnd, delta, fullStart) { + if (fullStart > changeRangeOldEnd) { + forceUpdateTokenPositionsForElement(element, delta); + } + else { + var fullEnd = fullStart + TypeScript.fullWidth(element); + if (fullEnd >= changeStart) { + element.intersectsChange = true; + if (TypeScript.isList(element)) { + var list = element; + for (var i = 0, n = list.length; i < n; i++) { + var child = list[i]; + updateTokenPositionsAndMarkElements(child, changeStart, changeRangeOldEnd, delta, fullStart); + fullStart += TypeScript.fullWidth(child); + } + } + else if (TypeScript.isNode(element)) { + var node = element; + for (var i = 0, n = node.childCount; i < n; i++) { + var child = node.childAt(i); + if (child) { + updateTokenPositionsAndMarkElements(child, changeStart, changeRangeOldEnd, delta, fullStart); + fullStart += TypeScript.fullWidth(child); + } + } + } + } + } + } + function forceUpdateTokenPositionsForElement(element, delta) { + if (delta !== 0) { + if (TypeScript.isList(element)) { + var list = element; + for (var i = 0, n = list.length; i < n; i++) { + forceUpdateTokenPositionForNodeOrToken(list[i], delta); + } + } + else { + forceUpdateTokenPositionForNodeOrToken(element, delta); + } + } + } + function forceUpdateTokenPosition(token, delta) { + token.setFullStart(token.fullStart() + delta); + } + function forceUpdateTokenPositionForNodeOrToken(nodeOrToken, delta) { + if (TypeScript.isToken(nodeOrToken)) { + forceUpdateTokenPosition(nodeOrToken, delta); + } + else { + var node = nodeOrToken; + var tokens = getTokens(node); + for (var i = 0, n = tokens.length; i < n; i++) { + forceUpdateTokenPosition(tokens[i], delta); + } + } + } + function getTokens(node) { + var tokens = node.__cachedTokens; + if (!tokens) { + tokens = []; + tokenCollectorWalker.tokens = tokens; + TypeScript.visitNodeOrToken(tokenCollectorWalker, node); + node.__cachedTokens = tokens; + tokenCollectorWalker.tokens = undefined; + } + return tokens; + } + function parse(oldSyntaxTree, textChangeRange, newText) { + if (textChangeRange.isUnchanged()) { + return oldSyntaxTree; + } + return TypeScript.Parser.parseSource(createParserSource(oldSyntaxTree, textChangeRange, newText), oldSyntaxTree.isDeclaration()); + } + IncrementalParser.parse = parse; + })(IncrementalParser = TypeScript.IncrementalParser || (TypeScript.IncrementalParser = {})); +})(TypeScript || (TypeScript = {})); +var TypeScript; +(function (TypeScript) { + function assertParent(parent, child) { + if (child) { + return TypeScript.Debug.assert(parent === child.parent); + } + } + function nodeStructuralEquals(node1, node2, checkParents, text1, text2) { + if (node1 === node2) { + return true; + } + if (!node1 || !node2) { + return false; + } + TypeScript.Debug.assert(node1.kind === 124 /* SourceUnit */ || node1.parent); + TypeScript.Debug.assert(node2.kind === 124 /* SourceUnit */ || node2.parent); + if (node1.kind !== node2.kind) { + return false; + } + if (TypeScript.childCount(node1) !== TypeScript.childCount(node2)) { + return false; + } + for (var i = 0, n = TypeScript.childCount(node1); i < n; i++) { + var element1 = TypeScript.childAt(node1, i); + var element2 = TypeScript.childAt(node2, i); + if (checkParents) { + assertParent(node1, element1); + assertParent(node2, element2); + } + if (!elementStructuralEquals(element1, element2, checkParents, text1, text2)) { + return false; + } + } + return true; + } + TypeScript.nodeStructuralEquals = nodeStructuralEquals; + function nodeOrTokenStructuralEquals(node1, node2, checkParents, text1, text2) { + if (node1 === node2) { + return true; + } + if (!node1 || !node2) { + return false; + } + TypeScript.Debug.assert(node1.kind === 124 /* SourceUnit */ || node1.parent); + TypeScript.Debug.assert(node2.kind === 124 /* SourceUnit */ || node2.parent); + if (TypeScript.isToken(node1)) { + return TypeScript.isToken(node2) ? tokenStructuralEquals(node1, node2, text1, text2) : false; + } + return TypeScript.isNode(node2) ? nodeStructuralEquals(node1, node2, checkParents, text1, text2) : false; + } + TypeScript.nodeOrTokenStructuralEquals = nodeOrTokenStructuralEquals; + function tokenStructuralEquals(token1, token2, text1, text2) { + if (token1 === token2) { + return true; + } + if (!token1 || !token2) { + return false; + } + TypeScript.Debug.assert(token1.parent); + TypeScript.Debug.assert(token2.parent); + return token1.kind === token2.kind && TypeScript.width(token1) === TypeScript.width(token2) && token1.fullWidth() === token2.fullWidth() && token1.fullStart() === token2.fullStart() && TypeScript.fullEnd(token1) === TypeScript.fullEnd(token2) && TypeScript.start(token1, text1) === TypeScript.start(token2, text2) && token1.text() === token2.text() && triviaListStructuralEquals(token1.leadingTrivia(text1), token2.leadingTrivia(text2)); + } + TypeScript.tokenStructuralEquals = tokenStructuralEquals; + function triviaListStructuralEquals(triviaList1, triviaList2) { + TypeScript.Debug.assert(triviaList1.isShared() || triviaList1.parent); + TypeScript.Debug.assert(triviaList1.isShared() || triviaList2.parent); + if (triviaList1.count() !== triviaList2.count()) { + return false; + } + for (var i = 0, n = triviaList1.count(); i < n; i++) { + if (!triviaStructuralEquals(triviaList1.syntaxTriviaAt(i), triviaList2.syntaxTriviaAt(i))) { + return false; + } + } + return true; + } + TypeScript.triviaListStructuralEquals = triviaListStructuralEquals; + function triviaStructuralEquals(trivia1, trivia2) { + TypeScript.Debug.assert(trivia1.parent); + TypeScript.Debug.assert(trivia2.parent); + return trivia1.kind === trivia2.kind && trivia1.fullWidth() === trivia2.fullWidth() && trivia1.fullText() === trivia2.fullText(); + } + TypeScript.triviaStructuralEquals = triviaStructuralEquals; + function listStructuralEquals(list1, list2, checkParents, text1, text2) { + TypeScript.Debug.assert(list1.parent); + TypeScript.Debug.assert(list2.parent); + if (TypeScript.childCount(list1) !== TypeScript.childCount(list2)) { + return false; + } + for (var i = 0, n = TypeScript.childCount(list1); i < n; i++) { + var child1 = TypeScript.childAt(list1, i); + var child2 = TypeScript.childAt(list2, i); + if (checkParents) { + assertParent(list1, child1); + assertParent(list2, child2); + } + if (!elementStructuralEquals(child1, child2, checkParents, text1, text2)) { + return false; + } + } + return true; + } + function elementStructuralEquals(element1, element2, checkParents, text1, text2) { + if (element1 === element2) { + return true; + } + if (!element1 || !element2) { + return false; + } + TypeScript.Debug.assert(element1.kind === 124 /* SourceUnit */ || element1.parent); + TypeScript.Debug.assert(element2.kind === 124 /* SourceUnit */ || element2.parent); + if (element2.kind !== element2.kind) { + return false; + } + if (TypeScript.fullStart(element1) !== TypeScript.fullStart(element2)) { + return false; + } + if (TypeScript.start(element1) !== TypeScript.start(element2)) { + return false; + } + if (TypeScript.fullEnd(element1) !== TypeScript.fullEnd(element2)) { + return false; + } + if (TypeScript.isToken(element1)) { + return tokenStructuralEquals(element1, element2, text1, text2); + } + else if (TypeScript.isNode(element1)) { + return nodeStructuralEquals(element1, element2, checkParents, text1, text2); + } + else if (TypeScript.isList(element1)) { + return listStructuralEquals(element1, element2, checkParents, text1, text2); + } + throw TypeScript.Errors.invalidOperation(); + } + TypeScript.elementStructuralEquals = elementStructuralEquals; + function treeStructuralEquals(tree1, tree2, checkParents) { + if (!TypeScript.ArrayUtilities.sequenceEquals(tree1.diagnostics(), tree2.diagnostics(), TypeScript.Diagnostic.equals)) { + return false; + } + return nodeStructuralEquals(tree1.sourceUnit(), tree2.sourceUnit(), checkParents, tree1.text, tree2.text); + } + TypeScript.treeStructuralEquals = treeStructuralEquals; +})(TypeScript || (TypeScript = {})); +var specificFile = undefined; +var generate = false; +function isDTSFile(s) { + return ts.fileExtensionIs(s, ".d.ts"); +} +var PositionValidatingWalker = (function (_super) { + __extends(PositionValidatingWalker, _super); + function PositionValidatingWalker() { + _super.apply(this, arguments); + this.position = 0; + } + PositionValidatingWalker.prototype.visitToken = function (token) { + TypeScript.Debug.assert(this.position === token.fullStart()); + this.position += token.fullWidth(); + }; + return PositionValidatingWalker; +})(TypeScript.SyntaxWalker); +function tokenToJSON(token, text, mergeTrivia) { + if (!token) { + return undefined; + } + var isSkippedToken = token.parent && token.parent.kind === 6 /* SkippedTokenTrivia */; + var isMissingToken = token.fullWidth() === 0 && token.kind !== 8 /* EndOfFileToken */; + var result = {}; + for (var name in getSyntaxKindEnum()) { + if (getSyntaxKindEnum()[name] === token.kind) { + result.kind = name; + break; + } + } + var fullStart = TypeScript.fullStart(token); + var fullEnd = TypeScript.fullEnd(token); + result.fullStart = fullStart; + result.start = TypeScript.start(token, text); + result.fullWidth = fullEnd - fullStart; + result.width = TypeScript.width(token, text); + result.text = token.text(); + var value = TypeScript.tokenValue(token); + if (value !== undefined) { + result.value = value; + result.valueText = TypeScript.tokenValueText(token); + } + if (token.isKeywordConvertedToIdentifier()) { + result.isKeywordConvertedToIdentifier = true; + } + if (token.isIncrementallyUnusable()) { + result.isIncrementallyUnusable = true; + } + if (isSkippedToken || isMissingToken) { + TypeScript.Debug.assert(!token.hasLeadingTrivia()); + } + else { + var leadingTriviaList = token.hasLeadingTrivia() ? token.leadingTrivia(text) : undefined; + if (leadingTriviaList) { + var leadingTrivia = leadingTriviaList.toArray(); + result.hasLeadingTrivia = true; + if (TypeScript.ArrayUtilities.any(leadingTrivia, function (t) { return t.isComment(); })) { + result.hasLeadingComment = true; + } + if (TypeScript.ArrayUtilities.any(leadingTrivia, function (t) { return t.isNewLine(); })) { + result.hasLeadingNewLine = true; + } + if (TypeScript.ArrayUtilities.any(leadingTrivia, function (t) { return t.isSkippedToken(); })) { + result.hasLeadingSkippedToken = true; + } + result.leadingTrivia = triviaListToJSON(leadingTrivia, text); + } + } + return result; +} +function triviaListToJSON(trivia, text) { + var result = []; + for (var i = 0, n = trivia.length; i < n; i++) { + result.push(triviaToJSON(trivia[i], text)); + } + return result; +} +function triviaToJSON(trivia, text) { + var result = {}; + for (var name in getSyntaxKindEnum()) { + if (getSyntaxKindEnum()[name] === trivia.kind) { + result.kind = name; + break; + } + } + if (trivia.isSkippedToken()) { + result.skippedToken = tokenToJSON(trivia.skippedToken(), text, false); + } + else { + result.fullStart = trivia.fullStart(); + result.fullEnd = trivia.fullStart() + trivia.fullWidth(); + result.text = trivia.fullText(); + } + return result; +} +function getSyntaxKindEnum() { + var name = "SyntaxKind"; + return TypeScript[name]; +} +function nodeToJSON(node, text) { + var result = {}; + for (var name in getSyntaxKindEnum()) { + if (getSyntaxKindEnum()[name] === node.kind) { + result.kind = name; + break; + } + } + result.start = TypeScript.start(node); + result.end = TypeScript.fullEnd(node); + result.width = TypeScript.width(node); + if (TypeScript.isIncrementallyUnusable(node)) { + result.isIncrementallyUnusable = true; + } + if (TypeScript.parsedInStrictModeContext(node)) { + result.parsedInStrictModeContext = true; + } + if (TypeScript.parsedInDisallowInContext(node)) { + result.parsedInDisallowInContext = true; + } + if (TypeScript.parsedInYieldContext(node)) { + result.parsedInYieldContext = true; + } + if (TypeScript.parsedInGeneratorParameterContext(node)) { + result.parsedInGeneratorParameterContext = true; + } + if (TypeScript.parsedInAsyncContext(node)) { + result.parsedInAsyncContext = true; + } + var usedNames = {}; + var thisAsIndexable = node; + for (var i = 0, n = TypeScript.childCount(node); i < n; i++) { + var value = TypeScript.childAt(node, i); + if (value) { + for (var name in node) { + if (usedNames[name] === undefined && value === thisAsIndexable[name]) { + result[name] = elementToJSON(value, text); + usedNames[name] = true; + break; + } + } + } + } + return result; +} +function elementToJSON(element, text) { + if (element !== undefined) { + if (TypeScript.isToken(element)) { + return tokenToJSON(element, text, true); + } + else if (TypeScript.isList(element)) { + if (TypeScript.childCount(element) > 0) { + var result = []; + for (var i = 0, n = TypeScript.childCount(element); i < n; i++) { + result.push(elementToJSON(TypeScript.childAt(element, i), text)); + } + return result; + } + } + else { + return nodeToJSON(element, text); + } + } +} +function syntaxTreeToJSON(tree) { + var result = {}; + result.isDeclaration = tree.isDeclaration(); + switch (tree.languageVersion()) { + case 0 /* ES3 */: + result.languageVersion = "EcmaScript3"; + break; + case 1 /* ES5 */: + result.languageVersion = "EcmaScript5"; + break; + case 2 /* ES6 */: + result.languageVersion = "EcmaScript6"; + break; + default: + throw new Error(); + } + if (tree.diagnostics().length > 0) { + result.diagnostics = tree.diagnostics(); + } + result.sourceUnit = elementToJSON(tree.sourceUnit(), tree.text); + result.lineMap = tree.lineMap(); + return result; +} +function emptySourceUnit() { + return TypeScript.Parser.parse("", TypeScript.SimpleText.fromString(""), 1 /* ES5 */, false).sourceUnit(); +} +var Program = (function () { + function Program() { + } + Program.prototype.runAllTests = function (verify) { + var _this = this; + TypeScript.Environment.standardOut.WriteLine(""); + if (generate) { + TypeScript.Environment.standardOut.WriteLine("!!!!!!!!!! WARNING - GENERATING !!!!!!!!!"); + TypeScript.Environment.standardOut.WriteLine(""); + } + if (specificFile === undefined) { + TypeScript.Environment.standardOut.WriteLine("Testing Incremental 2."); + TypeScript.IncrementalParserTests.runAllTests(); + } + TypeScript.Environment.standardOut.Write("Testing Incremental 1:"); + this.runTests(TypeScript.Environment.currentDirectory() + "\\tests\\Fidelity\\parser\\ecmascript5", function (fileName) { return _this.runIncremental(fileName, 1 /* ES5 */); }); + if (specificFile === undefined) { + this.testIncrementalSpeed(TypeScript.Environment.currentDirectory() + "\\src\\services\\syntax\\syntaxNodes.concrete.generated.ts"); + } + TypeScript.Environment.standardOut.Write("Testing scanner ES3:"); + this.runTests(TypeScript.Environment.currentDirectory() + "\\tests\\Fidelity\\scanner\\ecmascript3", function (fileName) { return _this.runScanner(fileName, 0 /* ES3 */, verify, generate); }); + TypeScript.Environment.standardOut.Write("Testing scanner ES5:"); + this.runTests(TypeScript.Environment.currentDirectory() + "\\tests\\Fidelity\\scanner\\ecmascript5", function (fileName) { return _this.runScanner(fileName, 1 /* ES5 */, verify, generate); }); + TypeScript.Environment.standardOut.Write("Testing findToken:"); + this.runTests(TypeScript.Environment.currentDirectory() + "\\tests\\Fidelity\\findToken\\ecmascript5", function (fileName) { return _this.runFindToken(fileName, 1 /* ES5 */, verify, generate); }); + TypeScript.Environment.standardOut.Write("Testing trivia:"); + this.runTests(TypeScript.Environment.currentDirectory() + "\\tests\\Fidelity\\trivia\\ecmascript5", function (fileName) { return _this.runTrivia(fileName, 1 /* ES5 */, verify, generate); }); + TypeScript.Environment.standardOut.Write("Testing parser ES6:"); + this.runTests(TypeScript.Environment.currentDirectory() + "\\tests\\Fidelity\\parser\\ecmascript6", function (fileName) { return _this.runParser(fileName, 2 /* ES6 */, verify, generate); }); + TypeScript.Environment.standardOut.Write("Testing parser ES5:"); + this.runTests(TypeScript.Environment.currentDirectory() + "\\tests\\Fidelity\\parser\\ecmascript5", function (fileName) { return _this.runParser(fileName, 1 /* ES5 */, verify, generate); }); + TypeScript.Environment.standardOut.Write("Testing parser ES3:"); + this.runTests(TypeScript.Environment.currentDirectory() + "\\tests\\Fidelity\\parser\\ecmascript3", function (fileName) { return _this.runParser(fileName, 0 /* ES3 */, verify, generate); }); + TypeScript.Environment.standardOut.Write("Testing emitter 2:"); + this.runTests(TypeScript.Environment.currentDirectory() + "\\tests\\Fidelity\\emitter2\\ecmascript5", function (fileName) { return _this.runEmitter(fileName, 1 /* ES5 */, verify, generate, true); }); + TypeScript.Environment.standardOut.Write("Testing emitter 1:"); + this.runTests(TypeScript.Environment.currentDirectory() + "\\tests\\Fidelity\\emitter\\ecmascript5", function (fileName) { return _this.runEmitter(fileName, 1 /* ES5 */, verify, generate, false); }); + TypeScript.Environment.standardOut.Write("Testing pretty printer:"); + this.runTests(TypeScript.Environment.currentDirectory() + "\\tests\\Fidelity\\prettyPrinter\\ecmascript5", function (fileName) { return _this.runPrettyPrinter(fileName, 1 /* ES5 */, verify, generate); }); + TypeScript.Environment.standardOut.Write("Testing against 262:"); + this.runTests(TypeScript.Environment.currentDirectory() + "\\tests\\Fidelity\\test262", function (fileName) { return _this.runParser(fileName, 1 /* ES5 */, verify, generate); }); + }; + Program.reusedElements = function (oldNode, newNode, key) { + var allOldElements = TypeScript.SyntaxElementsCollector.collectElements(oldNode); + var allNewElements = TypeScript.SyntaxElementsCollector.collectElements(newNode); + for (var i = 0; i < allOldElements.length; i++) { + var oldElement = allOldElements[i]; + oldElement[key] = key; + } + var reused = 0; + for (var j = 0; j < allNewElements.length; j++) { + var newElement = allNewElements[j]; + if (newElement[key] === key) { + reused++; + } + } + return { originalElements: allOldElements.length, reusedElements: reused }; + }; + Program.prototype.testIncrementalSpeed = function (fileName) { + var repeat = 500; + TypeScript.Environment.standardOut.WriteLine("Incremental Perf - Changed Text."); + this.testIncrementalSpeedChange(fileName, repeat); + TypeScript.Environment.standardOut.WriteLine(""); + TypeScript.Environment.standardOut.WriteLine("Incremental Perf - No Changed Text."); + this.testIncrementalSpeedNoChange(fileName, repeat); + }; + Program.prototype.testIncrementalSpeedNoChange = function (fileName, repeat) { + if (specificFile !== undefined) { + return; + } + var contents = TypeScript.Environment.readFile(fileName, undefined).contents; + var text = TypeScript.SimpleText.fromString(contents); + var tree = TypeScript.Parser.parse(fileName, text, 1 /* ES5 */, isDTSFile(fileName)); + var originalTree = tree; + var totalIncrementalTime = 0; + for (var i = 0; i < repeat; i++) { + var changeLength = i * 2; + var start = new Date().getTime(); + var tree2 = TypeScript.IncrementalParser.parse(tree, new TypeScript.TextChangeRange(new TypeScript.TextSpan(((text.length() / 2) >> 0) - i, changeLength), changeLength), text); + totalIncrementalTime += (new Date().getTime() - start); + TypeScript.Debug.assert(TypeScript.treeStructuralEquals(tree, tree2, false)); + tree = tree2; + } + var rateBytesPerMillisecond = (contents.length * repeat) / totalIncrementalTime; + var rateBytesPerSecond = rateBytesPerMillisecond * 1000; + var rateMBPerSecond = rateBytesPerSecond / (1024 * 1024); + TypeScript.Environment.standardOut.WriteLine("Incremental rate: " + rateMBPerSecond + " MB/s"); + var allOldElements = TypeScript.SyntaxElementsCollector.collectElements(originalTree.sourceUnit()); + var allNewElements = TypeScript.SyntaxElementsCollector.collectElements(tree.sourceUnit()); + var reuse = TypeScript.ArrayUtilities.where(allNewElements, function (v) { return TypeScript.ArrayUtilities.contains(allOldElements, v); }).length; + TypeScript.Environment.standardOut.WriteLine("Reuse: " + reuse / allNewElements.length); + }; + Program.prototype.testIncrementalSpeedChange = function (fileName, repeat) { + if (specificFile !== undefined) { + return; + } + var contents = TypeScript.Environment.readFile(fileName, undefined).contents; + var text = TypeScript.SimpleText.fromString(contents); + var tree = TypeScript.Parser.parse(fileName, text, 1 /* ES5 */, isDTSFile(fileName)); + var originalTree = tree; + var allElements = TypeScript.SyntaxElementsCollector.collectElements(tree.sourceUnit()); + var nonSharedElements = TypeScript.ArrayUtilities.where(allElements, function (e) { return !(TypeScript.isList(e) && e.length === 0); }); + TypeScript.Environment.standardOut.WriteLine("All elements : " + allElements.length); + TypeScript.Environment.standardOut.WriteLine("Non empty lists: " + nonSharedElements.length); + var totalIncrementalTime = 0; + var totalIncrementalASTTime = 0; + for (var i = 0; i < repeat; i++) { + var changeLength = i * 2; + var changeSpan = new TypeScript.TextSpan(((text.length() / 2) >> 0) - i, changeLength); + contents = text.substr(0, text.length()); + var contentsToReplace = contents.substr(changeSpan.start(), changeSpan.length()); + var first = true; + var updatedText = contentsToReplace.replace(/[^a-zA-Z0-9][a-z]+[^a-zA-Z0-9]/, function (sub) { + if (first && TypeScript.SyntaxFacts.getTokenKind(sub.substr(1, sub.length - 2)) === 0 /* None */) { + first = false; + return sub.substr(0, sub.length - 1) + "a" + sub.substr(sub.length - 1); + } + return sub; + }); + text = TypeScript.SimpleText.fromString(contents.substr(0, changeSpan.start()) + updatedText + contents.substr(changeSpan.end())); + var changeRange = new TypeScript.TextChangeRange(changeSpan, updatedText.length); + var start = new Date().getTime(); + var tree2 = TypeScript.IncrementalParser.parse(tree, changeRange, text); + totalIncrementalTime += (new Date().getTime() - start); + tree = tree2; + } + var rateBytesPerMillisecond = (contents.length * repeat) / totalIncrementalTime; + var rateBytesPerSecond = rateBytesPerMillisecond * 1000; + var rateMBPerSecond = rateBytesPerSecond / (1024 * 1024); + TypeScript.Environment.standardOut.WriteLine("Incremental rate: " + rateMBPerSecond + " MB/s"); + rateBytesPerMillisecond = (contents.length * repeat) / totalIncrementalASTTime; + rateBytesPerSecond = rateBytesPerMillisecond * 1000; + rateMBPerSecond = rateBytesPerSecond / (1024 * 1024); + var allOldElements = TypeScript.SyntaxElementsCollector.collectElements(originalTree.sourceUnit()); + var allNewElements = TypeScript.SyntaxElementsCollector.collectElements(tree.sourceUnit()); + var reuse = TypeScript.ArrayUtilities.where(allNewElements, function (v) { return TypeScript.ArrayUtilities.contains(allOldElements, v); }).length; + TypeScript.Environment.standardOut.WriteLine("Reuse: " + reuse / allNewElements.length); + }; + Program.prototype.handleException = function (fileName, e) { + TypeScript.Environment.standardOut.WriteLine(""); + if (e.message.indexOf(fileName) < 0) { + TypeScript.Environment.standardOut.WriteLine("Exception: " + fileName + ": " + e.message); + } + else { + TypeScript.Environment.standardOut.WriteLine(e.message); + } + }; + Program.prototype.runTests = function (path, action) { + var _this = this; + var testFiles = TypeScript.Environment.listFiles(path, undefined, { recursive: true }); + var indexNum = 0; + testFiles.forEach(function (fileName) { + if (specificFile !== undefined && fileName.indexOf(specificFile) < 0) { + return; + } + if (indexNum % 100 === 0) { + TypeScript.Environment.standardOut.Write("."); + } + try { + action(fileName); + } + catch (e) { + _this.handleException(fileName, e); + } + indexNum++; + }); + TypeScript.Environment.standardOut.WriteLine(""); + }; + Program.prototype.checkResult = function (fileName, result, convert, verify, generateBaseline, justText) { + var actualResult; + var expectedFile = fileName + ".expected"; + var actualFile = fileName + ".actual"; + if (generateBaseline) { + actualResult = justText ? result : JSON.stringify(convert(result), undefined, 4); + expectedFile = fileName + ".expected"; + TypeScript.Environment.writeFile(expectedFile, actualResult, false); + if (TypeScript.Environment.fileExists(actualFile)) { + TypeScript.Environment.deleteFile(actualFile); + } + } + else if (verify) { + actualResult = justText ? result : JSON.stringify(convert(result), undefined, 4); + var expectedResult = undefined; + if (!TypeScript.Environment.fileExists(expectedFile)) { + TypeScript.Environment.writeFile(expectedFile, "", false); + } + else { + expectedResult = TypeScript.Environment.readFile(expectedFile, undefined).contents; + } + if (expectedResult !== actualResult) { + TypeScript.Environment.standardOut.WriteLine(" ! Fail: " + actualFile); + TypeScript.Environment.writeFile(actualFile, actualResult, false); + } + else { + if (TypeScript.Environment.fileExists(actualFile)) { + TypeScript.Environment.deleteFile(actualFile); + } + } + } + }; + Program.prototype.runEmitter = function (fileName, languageVersion, verify, generateBaseline, justText) { + if (true) { + return; + } + if (!TypeScript.StringUtilities.endsWith(fileName, ".ts") && !TypeScript.StringUtilities.endsWith(fileName, ".js")) { + return; + } + if (fileName.indexOf("RealSource") >= 0) { + return; + } + var contents = TypeScript.Environment.readFile(fileName, undefined).contents; + totalSize += contents.length; + var text = TypeScript.SimpleText.fromString(contents); + var tree = TypeScript.Parser.parse(fileName, text, languageVersion, isDTSFile(fileName)); + }; + Program.prototype.runPrettyPrinter = function (fileName, languageVersion, verify, generateBaseline) { + if (!TypeScript.StringUtilities.endsWith(fileName, ".ts") && !TypeScript.StringUtilities.endsWith(fileName, ".js")) { + return; + } + if (fileName.indexOf("RealSource") >= 0) { + return; + } + var contents = TypeScript.Environment.readFile(fileName, undefined).contents; + totalSize += contents.length; + var text = TypeScript.SimpleText.fromString(contents); + var tree = TypeScript.Parser.parse(fileName, text, languageVersion, isDTSFile(fileName)); + var result = TypeScript.PrettyPrinter.prettyPrint(tree.sourceUnit()); + this.checkResult(fileName, result, undefined, verify, generateBaseline, true); + }; + Program.prototype.runParser = function (fileName, languageVersion, verify, generateBaseline, allowErrors) { + if (allowErrors === void 0) { allowErrors = true; } + if (!TypeScript.StringUtilities.endsWith(fileName, ".ts") && !TypeScript.StringUtilities.endsWith(fileName, ".js")) { + return; + } + if (fileName.indexOf("RealSource") >= 0) { + return; + } + var contents = TypeScript.Environment.readFile(fileName, undefined).contents; + totalSize += contents.length; + var text = TypeScript.SimpleText.fromString(contents); + var andersStart = new Date().getTime(); + var andersText = ts.createSourceFile(fileName, contents, 2 /* ES6 */, "0"); + andersTime += (new Date().getTime() - andersStart); + var start = new Date().getTime(); + var tree = TypeScript.Parser.parse(fileName, text, languageVersion, isDTSFile(fileName)); + var delta = new Date().getTime() - start; + cyrusTime += delta; + if (!allowErrors) { + var diagnostics = tree.diagnostics(); + if (diagnostics.length > 0) { + TypeScript.Environment.standardOut.WriteLine(fileName); + TypeScript.Environment.standardOut.WriteLine("\t" + diagnostics[0].message()); + } + } + if (verify) { + TypeScript.Debug.assert(TypeScript.fullWidth(tree.sourceUnit()) === contents.length); + TypeScript.visitNodeOrToken(new PositionValidatingWalker(), tree.sourceUnit()); + this.checkResult(fileName, tree, syntaxTreeToJSON, verify, generateBaseline, false); + } + totalTime += delta; + }; + Program.prototype.runIncremental = function (fileName, languageVersion) { + if (!TypeScript.StringUtilities.endsWith(fileName, ".ts") && !TypeScript.StringUtilities.endsWith(fileName, ".js")) { + return; + } + if (fileName.indexOf("RealSource") >= 0) { + return; + } + var contents = TypeScript.Environment.readFile(fileName, undefined).contents; + var text = TypeScript.SimpleText.fromString(contents); + var tree1 = TypeScript.Parser.parse(fileName, text, languageVersion, isDTSFile(fileName)); + var tree2 = TypeScript.IncrementalParser.parse(new TypeScript.SyntaxTree(emptySourceUnit(), isDTSFile(fileName), [], fileName, text, tree1.languageVersion()), new TypeScript.TextChangeRange(new TypeScript.TextSpan(0, 0), text.length()), text); + TypeScript.Debug.assert(TypeScript.treeStructuralEquals(tree1, tree2, true)); + }; + Program.prototype.runFindToken = function (fileName, languageVersion, verify, generateBaseline) { + if (!TypeScript.StringUtilities.endsWith(fileName, ".ts") && !TypeScript.StringUtilities.endsWith(fileName, ".js")) { + return; + } + if (fileName.indexOf("RealSource") >= 0) { + return; + } + var contents = TypeScript.Environment.readFile(fileName, undefined).contents; + var text = TypeScript.SimpleText.fromString(contents); + var tree = TypeScript.Parser.parse(fileName, text, languageVersion, isDTSFile(fileName)); + var sourceUnit = tree.sourceUnit(); + TypeScript.Debug.assert(TypeScript.fullWidth(tree.sourceUnit()) === contents.length); + var tokens = {}; + var tokensOnLeft = {}; + var leftToRight = []; + var rightToLeft = []; + for (var i = 0; i <= contents.length; i++) { + var token = TypeScript.findToken(sourceUnit, i); + var left = TypeScript.Syntax.findTokenOnLeft(sourceUnit, i); + var tokenOnLeft = left || null; + TypeScript.Debug.assert(TypeScript.isToken(token)); + if (i === contents.length) { + TypeScript.Debug.assert(token.kind === 8 /* EndOfFileToken */); + } + else { + TypeScript.Debug.assert(TypeScript.width(token) > 0 || token.kind === 8 /* EndOfFileToken */); + TypeScript.Debug.assert(token.fullWidth() > 0); + } + tokens[i] = tokenToJSON(token, text, false); + tokensOnLeft[i] = tokenToJSON(tokenOnLeft, text, false) || null; + } + var positionedToken = TypeScript.findToken(sourceUnit, 0); + while (positionedToken) { + leftToRight.push(tokenToJSON(positionedToken, text, false)); + positionedToken = TypeScript.nextToken(positionedToken); + } + positionedToken = TypeScript.findToken(sourceUnit, contents.length); + while (positionedToken) { + rightToLeft.push(tokenToJSON(positionedToken, text, false)); + positionedToken = TypeScript.previousToken(positionedToken); + } + var result = { + tokens: tokens, + tokensOnLeft: tokensOnLeft, + leftToRight: leftToRight, + rightToLeft: rightToLeft + }; + this.checkResult(fileName, result, function (a) { return a; }, verify, generateBaseline, false); + }; + Program.prototype.runTrivia = function (fileName, languageVersion, verify, generateBaseline) { + if (!TypeScript.StringUtilities.endsWith(fileName, ".ts")) { + return; + } + var contents = TypeScript.Environment.readFile(fileName, undefined).contents; + var text = TypeScript.SimpleText.fromString(contents); + var scanner = TypeScript.Scanner.createScanner(languageVersion, text, function () { + }); + var tokens = []; + var textArray = []; + var diagnostics = []; + while (true) { + var token = scanner.scan(false); + tokens.push(tokenToJSON(token, text, false)); + if (token.kind === 8 /* EndOfFileToken */) { + break; + } + } + this.checkResult(fileName, tokens, function (a) { return a; }, verify, generateBaseline, false); + }; + Program.prototype.runScanner = function (fileName, languageVersion, verify, generateBaseline) { + if (!TypeScript.StringUtilities.endsWith(fileName, ".ts")) { + return; + } + var contents = TypeScript.Environment.readFile(fileName, undefined).contents; + var diagnostics = []; + var reportDiagnostic = function (position, fullWidth, diagnosticKey, args) { + diagnostics.push(new TypeScript.Diagnostic(fileName, text.lineMap(), position, fullWidth, diagnosticKey, args)); + }; + var text = TypeScript.SimpleText.fromString(contents); + var scanner = TypeScript.Scanner.createScanner(languageVersion, text, reportDiagnostic); + var tokens = []; + var jsonTokens = []; + var textArray = []; + var position = 0; + while (true) { + var token = scanner.scan(false); + jsonTokens.push(tokenToJSON(token, text, false)); + tokens.push(token); + TypeScript.Debug.assert(position === token.fullStart()); + position += token.fullWidth(); + if (token.kind === 8 /* EndOfFileToken */) { + break; + } + } + if (verify) { + var tokenText = TypeScript.ArrayUtilities.select(tokens, function (t) { return t.fullText(text); }).join(""); + if (tokenText !== contents) { + throw new Error("Token invariant broken!"); + } + } + var result = diagnostics.length === 0 ? jsonTokens : { diagnostics: diagnostics, tokens: jsonTokens }; + this.checkResult(fileName, result, function (a) { return a; }, verify, generateBaseline, false); + }; + Program.prototype.parseArguments = function () { + TypeScript.Environment.standardOut.WriteLine("Testing input files."); + for (var index in TypeScript.Environment.arguments) { + var fileName = TypeScript.Environment.arguments[index]; + if (specificFile !== undefined && fileName.indexOf(specificFile) < 0) { + continue; + } + this.runParser(fileName, 1 /* ES5 */, false, false, false); + } + }; + Program.prototype.run262 = function () { + var path = "C:\\temp\\test262\\suite"; + var testFiles = TypeScript.Environment.listFiles(path, undefined, { recursive: true }); + var testCount = 0; + var failCount = 0; + var skippedTests = []; + for (var index in testFiles) { + var fileName = testFiles[index]; + if (specificFile !== undefined && fileName.indexOf(specificFile) < 0) { + continue; + } + var contents = TypeScript.Environment.readFile(fileName, undefined).contents; + var isNegative = contents.indexOf("@negative") >= 0; + testCount++; + try { + var stringText = TypeScript.SimpleText.fromString(contents); + var tree = TypeScript.Parser.parse(fileName, stringText, 1 /* ES5 */, isDTSFile(fileName)); + if (isNegative) { + var nameOnly = fileName.substr(fileName.lastIndexOf("\\") + 1); + var canParseSuccessfully = negative262ExpectedResults[nameOnly]; + if (canParseSuccessfully) { + if (tree.diagnostics() && tree.diagnostics().length > 0) { + TypeScript.Environment.standardOut.WriteLine("Negative test. Unexpected failure: " + fileName); + failCount++; + } + } + else { + if (!tree.diagnostics() || tree.diagnostics().length === 0) { + TypeScript.Environment.standardOut.WriteLine("Negative test. Unexpected success: " + fileName); + failCount++; + } + } + } + else { + if (tree.diagnostics() && tree.diagnostics().length > 0) { + TypeScript.Environment.standardOut.WriteLine("Unexpected failure: " + fileName); + failCount++; + } + } + } + catch (e) { + failCount++; + this.handleException(fileName, e); + } + } + TypeScript.Environment.standardOut.WriteLine(""); + TypeScript.Environment.standardOut.WriteLine("Test 262 results:"); + TypeScript.Environment.standardOut.WriteLine("Test Count: " + testCount); + TypeScript.Environment.standardOut.WriteLine("Skip Count: " + skippedTests.length); + TypeScript.Environment.standardOut.WriteLine("Fail Count: " + failCount); + for (var i = 0; i < skippedTests.length; i++) { + TypeScript.Environment.standardOut.WriteLine(skippedTests[i]); + } + }; + return Program; +})(); +var andersTime = 0; +var cyrusTime = 0; +var totalTime = 0; +var totalSize = 0; +var program = new Program(); +totalTime = 0; +totalSize = 0; +program.runAllTests(true); +var count = 1; +TypeScript.Environment.standardOut.WriteLine("Total time: " + (totalTime / count)); +TypeScript.Environment.standardOut.WriteLine("Total size: " + (totalSize / count)); +TypeScript.Environment.standardOut.WriteLine("Anders time: " + andersTime); +TypeScript.Environment.standardOut.WriteLine("Cyrus time : " + cyrusTime); +//# sourceMappingURL=file:///C:/VSPro_1/src/typescript/public_cyrusn/tests/Fidelity/program.js.map \ No newline at end of file diff --git a/tests/Fidelity/program.js.map b/tests/Fidelity/program.js.map new file mode 100644 index 00000000000..3bee2fc925a --- /dev/null +++ b/tests/Fidelity/program.js.map @@ -0,0 +1 @@ +{"version":3,"file":"program.js","sourceRoot":"","sources":["file:///C:/VSPro_1/src/typescript/public_cyrusn/tests/Fidelity/es5compat.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/tests/Fidelity/json2.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/tests/Fidelity/enumerator.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/tests/Fidelity/process.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/tests/Fidelity/require.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/tests/Fidelity/environment.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/compiler/core.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/compiler/types.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/compiler/diagnosticInformationMap.generated.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/compiler/scanner.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/compiler/parser.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/compiler/binder.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/compiler/emitter.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/compiler/checker.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/resources/diagnosticCode.generated.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/core/diagnosticCategory.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/resources/diagnosticInformationMap.generated.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/resources/references.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/core/errors.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/core/arrayUtilities.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/core/debug.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/core/diagnosticCore.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/core/diagnosticInfo.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/core/integerUtilities.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/core/lineMap.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/core/linePosition.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/core/stringUtilities.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/core/references.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/text/characterCodes.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/text/scriptSnapshot.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/text/text.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/text/lineMap.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/text/textFactory.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/text/textUtilities.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/text/textSpan.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/text/textChangeRange.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/text/references.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/syntax/characterInfo.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/syntax/constants.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/syntax/formattingOptions.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/syntax/languageVersion.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/syntax/syntaxKind.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/syntax/syntaxFacts.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/syntax/scannerUtilities.generated.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/syntax/scanner.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/syntax/slidingWindow.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/syntax/syntax.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/syntax/syntaxElement.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/syntax/syntaxFacts2.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/syntax/syntaxList.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/syntax/syntaxNodeOrToken.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/syntax/syntaxToken.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/syntax/syntaxTrivia.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/syntax/syntaxTriviaList.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/syntax/syntaxUtilities.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/syntax/syntaxVisitor.generated.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/syntax/syntaxWalker.generated.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/syntax/depthLimitedWalker.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/syntax/parser.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/syntax/syntaxInterfaces.generated.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/syntax/syntaxNodes.concrete.generated.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/syntax/syntaxTree.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/syntax/unicode.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/syntax/references.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/syntax/prettyPrinter.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/tests/Fidelity/Test262.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/tests/Fidelity/incremental/IncrementalParserTests.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/syntax/incrementalParser.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/syntax/testUtilities.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/tests/Fidelity/Program.ts"],"names":["reduce","f","quote","str","walk","TypeScript","TypeScript.ByteOrderMark","TypeScript.FileInformation","TypeScript.FileInformation.constructor","TypeScript.throwIOError","getWindowsScriptHostEnvironment","getWindowsScriptHostEnvironment.getStreamObject","getWindowsScriptHostEnvironment.releaseStreamObject","getWindowsScriptHostEnvironment.filesInFolder","getNodeEnvironment","getNodeEnvironment.mkdirRecursiveSync","getNodeEnvironment.filesInFolder","ts","ts.Ternary","ts.Comparison","ts.forEach","ts.contains","ts.indexOf","ts.countWhere","ts.filter","ts.map","ts.concatenate","ts.deduplicate","ts.sum","ts.lastOrUndefined","ts.binarySearch","ts.hasProperty","ts.getProperty","ts.isEmpty","ts.clone","ts.forEachValue","ts.forEachKey","ts.lookUp","ts.mapToArray","ts.arrayToMap","ts.formatStringFromArgs","ts.getLocaleSpecificMessage","ts.createFileDiagnostic","ts.createCompilerDiagnostic","ts.chainDiagnosticMessages","ts.concatenateDiagnosticMessageChains","ts.flattenDiagnosticChain","ts.compareValues","ts.getDiagnosticFilename","ts.compareDiagnostics","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.escapeString","ts.Symbol","ts.Type","ts.Signature","ts.Node","ts.AssertionLevel","ts.Debug","ts.Debug.shouldAssert","ts.Debug.assert","ts.Debug.fail","ts.SyntaxKind","ts.NodeFlags","ts.ParserContextFlags","ts.EmitReturnStatus","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.lookupInUnicodeMap","ts.isUnicodeIdentifierStart","ts.isUnicodeIdentifierPart","ts.makeReverseMap","ts.tokenToString","ts.computeLineStarts","ts.getPositionFromLineAndCharacter","ts.getLineAndCharacterOfPosition","ts.positionToLineAndCharacter","ts.isWhiteSpace","ts.isLineBreak","ts.isDigit","ts.isOctalDigit","ts.skipTrivia","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.scanHexDigits","ts.createScanner.scanString","ts.createScanner.scanTemplateAndSetTokenValue","ts.createScanner.scanEscapeSequence","ts.createScanner.peekUnicodeEscape","ts.createScanner.scanIdentifierParts","ts.createScanner.getIdentifierToken","ts.createScanner.scan","ts.createScanner.reScanGreaterToken","ts.createScanner.reScanSlashToken","ts.createScanner.reScanTemplateToken","ts.createScanner.tryScan","ts.createScanner.setText","ts.createScanner.setTextPos","ts.getNodeConstructor","ts.createRootNode","ts.getSourceFileOfNode","ts.nodePosToString","ts.getStartPosOfNode","ts.getTokenPosOfNode","ts.getSourceTextOfNodeFromSourceFile","ts.getTextOfNodeFromSourceText","ts.getTextOfNode","ts.escapeIdentifier","ts.unescapeIdentifier","ts.declarationNameToString","ts.createDiagnosticForNode","ts.createDiagnosticForNodeFromMessageChain","ts.getErrorSpanForNode","ts.isExternalModule","ts.isDeclarationFile","ts.isConstEnumDeclaration","ts.isConst","ts.isLet","ts.isPrologueDirective","ts.isEvalOrArgumentsIdentifier","ts.isUseStrictPrologueDirective","ts.getLeadingCommentRangesOfNode","ts.getJsDocComments","ts.getJsDocComments.isJsDocComment","ts.forEachChild","ts.forEachChild.child","ts.forEachChild.children","ts.forEachReturnStatement","ts.forEachReturnStatement.traverse","ts.isAnyFunction","ts.getContainingFunction","ts.getThisContainer","ts.getSuperContainer","ts.getInvokedExpression","ts.isExpression","ts.hasRestParameters","ts.isLiteralKind","ts.isTextualLiteralKind","ts.isTemplateLiteralKind","ts.isInAmbientContext","ts.isDeclaration","ts.isStatement","ts.isDeclarationOrFunctionExpressionOrCatchVariableName","ts.tryResolveScriptReference","ts.getAncestor","ts.ParsingContext","ts.Tristate","ts.parsingContextErrors","ts.LookAheadMode","ts.getFileReferenceFromReferencePath","ts.isKeyword","ts.isTrivia","ts.isUnterminatedTemplateEnd","ts.isModifier","ts.modifierToFlag","ts.createSourceFile","ts.createSourceFile.setContextFlag","ts.createSourceFile.setStrictModeContext","ts.createSourceFile.setDisallowInContext","ts.createSourceFile.setYieldContext","ts.createSourceFile.setGeneratorParameterContext","ts.createSourceFile.allowInAnd","ts.createSourceFile.disallowInAnd","ts.createSourceFile.doInYieldContext","ts.createSourceFile.doOutsideOfYieldContext","ts.createSourceFile.inYieldContext","ts.createSourceFile.inStrictModeContext","ts.createSourceFile.inGeneratorParameterContext","ts.createSourceFile.inDisallowInContext","ts.createSourceFile.getLineStarts","ts.createSourceFile.getLineAndCharacterFromSourcePosition","ts.createSourceFile.getPositionFromSourceLineAndCharacter","ts.createSourceFile.error","ts.createSourceFile.errorAtPos","ts.createSourceFile.scanError","ts.createSourceFile.onComment","ts.createSourceFile.getNodePos","ts.createSourceFile.getNodeEnd","ts.createSourceFile.nextToken","ts.createSourceFile.getTokenPos","ts.createSourceFile.reScanGreaterToken","ts.createSourceFile.reScanSlashToken","ts.createSourceFile.reScanTemplateToken","ts.createSourceFile.lookAheadHelper","ts.createSourceFile.lookAhead","ts.createSourceFile.tryParse","ts.createSourceFile.isIdentifier","ts.createSourceFile.parseExpected","ts.createSourceFile.parseOptional","ts.createSourceFile.canParseSemicolon","ts.createSourceFile.parseSemicolon","ts.createSourceFile.createNode","ts.createSourceFile.finishNode","ts.createSourceFile.createMissingNode","ts.createSourceFile.internIdentifier","ts.createSourceFile.createIdentifier","ts.createSourceFile.parseIdentifier","ts.createSourceFile.parseIdentifierName","ts.createSourceFile.isPropertyName","ts.createSourceFile.parsePropertyName","ts.createSourceFile.parseContextualModifier","ts.createSourceFile.parseAnyContextualModifier","ts.createSourceFile.isListElement","ts.createSourceFile.isListTerminator","ts.createSourceFile.isVariableDeclaratorListTerminator","ts.createSourceFile.isInSomeParsingContext","ts.createSourceFile.parseList","ts.createSourceFile.parseDelimitedList","ts.createSourceFile.createMissingList","ts.createSourceFile.parseBracketedList","ts.createSourceFile.parseEntityName","ts.createSourceFile.parseTokenNode","ts.createSourceFile.parseTemplateExpression","ts.createSourceFile.parseTemplateSpan","ts.createSourceFile.parseLiteralNode","ts.createSourceFile.parseStringLiteral","ts.createSourceFile.parseTypeReference","ts.createSourceFile.parseTypeQuery","ts.createSourceFile.parseTypeParameter","ts.createSourceFile.parseTypeParameters","ts.createSourceFile.parseParameterType","ts.createSourceFile.isStartOfParameter","ts.createSourceFile.setModifiers","ts.createSourceFile.parseParameter","ts.createSourceFile.parseParameterInitializer","ts.createSourceFile.parseSignature","ts.createSourceFile.fillSignature","ts.createSourceFile.parseParameterList","ts.createSourceFile.parseSignatureMember","ts.createSourceFile.parseIndexSignatureMember","ts.createSourceFile.parsePropertyOrMethod","ts.createSourceFile.isStartOfTypeMember","ts.createSourceFile.parseTypeMember","ts.createSourceFile.parseTypeLiteral","ts.createSourceFile.parseObjectType","ts.createSourceFile.parseTupleType","ts.createSourceFile.parseParenType","ts.createSourceFile.parseFunctionType","ts.createSourceFile.parseKeywordAndNoDot","ts.createSourceFile.parseNonArrayType","ts.createSourceFile.isStartOfType","ts.createSourceFile.parsePrimaryType","ts.createSourceFile.parseUnionType","ts.createSourceFile.isStartOfFunctionType","ts.createSourceFile.parseType","ts.createSourceFile.parseTypeWorker","ts.createSourceFile.parseTypeAnnotation","ts.createSourceFile.isStartOfExpression","ts.createSourceFile.isStartOfExpressionStatement","ts.createSourceFile.parseExpression","ts.createSourceFile.parseInitializer","ts.createSourceFile.parseAssignmentExpression","ts.createSourceFile.isYieldExpression","ts.createSourceFile.parseYieldExpression","ts.createSourceFile.parseSimpleArrowFunctionExpression","ts.createSourceFile.tryParseParenthesizedArrowFunctionExpression","ts.createSourceFile.isParenthesizedArrowFunctionExpression","ts.createSourceFile.tryParseSignatureIfArrowOrBraceFollows","ts.createSourceFile.parseArrowExpressionTail","ts.createSourceFile.parseConditionalExpression","ts.createSourceFile.parseBinaryOperators","ts.createSourceFile.getOperatorPrecedence","ts.createSourceFile.makeBinaryExpression","ts.createSourceFile.parseUnaryExpression","ts.createSourceFile.parseTypeAssertion","ts.createSourceFile.makeUnaryExpression","ts.createSourceFile.parseCallAndAccess","ts.createSourceFile.parseTypeArgumentsAndOpenParen","ts.createSourceFile.parseTypeArguments","ts.createSourceFile.parseSingleTypeArgument","ts.createSourceFile.parsePrimaryExpression","ts.createSourceFile.parseParenExpression","ts.createSourceFile.parseAssignmentExpressionOrOmittedExpression","ts.createSourceFile.parseArrayLiteralElement","ts.createSourceFile.parseArgumentExpression","ts.createSourceFile.parseArrayLiteral","ts.createSourceFile.parsePropertyAssignment","ts.createSourceFile.parseObjectLiteralMember","ts.createSourceFile.parseObjectLiteral","ts.createSourceFile.parseFunctionExpression","ts.createSourceFile.parseOptionalIdentifier","ts.createSourceFile.makeFunctionExpression","ts.createSourceFile.parseNewExpression","ts.createSourceFile.parseBlock","ts.createSourceFile.parseFunctionBlock","ts.createSourceFile.parseEmptyStatement","ts.createSourceFile.parseIfStatement","ts.createSourceFile.parseDoStatement","ts.createSourceFile.parseWhileStatement","ts.createSourceFile.parseForOrForInStatement","ts.createSourceFile.parseBreakOrContinueStatement","ts.createSourceFile.parseReturnStatement","ts.createSourceFile.parseWithStatement","ts.createSourceFile.parseCaseClause","ts.createSourceFile.parseDefaultClause","ts.createSourceFile.parseCaseOrDefaultClause","ts.createSourceFile.parseSwitchStatement","ts.createSourceFile.parseThrowStatement","ts.createSourceFile.parseTryStatement","ts.createSourceFile.parseTokenAndBlock","ts.createSourceFile.parseCatchBlock","ts.createSourceFile.parseDebuggerStatement","ts.createSourceFile.isLabel","ts.createSourceFile.parseLabeledStatement","ts.createSourceFile.parseExpressionStatement","ts.createSourceFile.isStatement","ts.createSourceFile.parseStatement","ts.createSourceFile.parseFunctionBlockOrSemicolon","ts.createSourceFile.parseVariableDeclaration","ts.createSourceFile.setFlag","ts.createSourceFile.parseVariableDeclarationList","ts.createSourceFile.parseVariableStatement","ts.createSourceFile.parseFunctionDeclaration","ts.createSourceFile.parseConstructorDeclaration","ts.createSourceFile.parsePropertyMemberDeclaration","ts.createSourceFile.parseMemberAccessorDeclaration","ts.createSourceFile.isClassMemberStart","ts.createSourceFile.parseModifiers","ts.createSourceFile.parseClassMemberDeclaration","ts.createSourceFile.parseClassDeclaration","ts.createSourceFile.parseClassMembers","ts.createSourceFile.parseClassBaseType","ts.createSourceFile.parseInterfaceDeclaration","ts.createSourceFile.parseTypeAliasDeclaration","ts.createSourceFile.parseEnumMember","ts.createSourceFile.parseAndCheckEnumDeclaration","ts.createSourceFile.parseModuleBody","ts.createSourceFile.parseInternalModuleTail","ts.createSourceFile.parseAmbientExternalModuleDeclaration","ts.createSourceFile.parseModuleDeclaration","ts.createSourceFile.parseImportDeclaration","ts.createSourceFile.parseExportAssignmentTail","ts.createSourceFile.isDeclarationStart","ts.createSourceFile.parseDeclaration","ts.createSourceFile.isSourceElement","ts.createSourceFile.parseSourceElement","ts.createSourceFile.parseModuleElement","ts.createSourceFile.parseSourceElementOrModuleElement","ts.createSourceFile.processReferenceComments","ts.createSourceFile.getExternalModuleIndicator","ts.createSourceFile.getSyntacticDiagnostics","ts.isLeftHandSideExpression","ts.isAssignmentOperator","ts.checkGrammar","ts.checkGrammar.visitNode","ts.checkGrammar.checkNodeAndChildren","ts.checkGrammar.checkNode","ts.checkGrammar.grammarErrorOnFirstToken","ts.checkGrammar.grammarErrorOnNode","ts.checkGrammar.grammarErrorAtPos","ts.checkGrammar.reportInvalidUseInStrictMode","ts.checkGrammar.checkForStatementInAmbientContext","ts.checkGrammar.checkAnyParsedSignature","ts.checkGrammar.checkBinaryExpression","ts.checkGrammar.isIterationStatement","ts.checkGrammar.checkLabeledStatement","ts.checkGrammar.checkBreakOrContinueStatement","ts.checkGrammar.checkCallOrNewExpression","ts.checkGrammar.checkArguments","ts.checkGrammar.checkTypeArguments","ts.checkGrammar.checkForOmittedArgument","ts.checkGrammar.checkForMissingTypeArgument","ts.checkGrammar.checkForAtLeastOneTypeArgument","ts.checkGrammar.checkForDisallowedTrailingComma","ts.checkGrammar.checkCatchBlock","ts.checkGrammar.checkClassDeclaration","ts.checkGrammar.checkForAtLeastOneHeritageClause","ts.checkGrammar.checkConstructor","ts.checkGrammar.checkConstructorTypeParameters","ts.checkGrammar.checkConstructorTypeAnnotation","ts.checkGrammar.checkEnumDeclaration","ts.checkGrammar.isIntegerLiteral","ts.checkGrammar.isIntegerLiteral.isInteger","ts.checkGrammar.checkExportAssignment","ts.checkGrammar.checkForInStatement","ts.checkGrammar.checkForStatement","ts.checkGrammar.checkForMoreThanOneDeclaration","ts.checkGrammar.checkFunctionDeclaration","ts.checkGrammar.checkFunctionExpression","ts.checkGrammar.checkFunctionName","ts.checkGrammar.checkGetAccessor","ts.checkGrammar.checkIndexedAccess","ts.checkGrammar.checkIndexSignature","ts.checkGrammar.checkForIndexSignatureModifiers","ts.checkGrammar.checkIndexSignatureParameters","ts.checkGrammar.checkInterfaceDeclaration","ts.checkGrammar.checkMethod","ts.checkGrammar.checkForBodyInAmbientContext","ts.checkGrammar.checkModuleDeclaration","ts.checkGrammar.checkModuleDeclarationName","ts.checkGrammar.checkModuleDeclarationStatements","ts.checkGrammar.checkObjectLiteral","ts.checkGrammar.checkNumericLiteral","ts.checkGrammar.checkModifiers","ts.checkGrammar.checkParameter","ts.checkGrammar.checkTypeParameterList","ts.checkGrammar.checkParameterList","ts.checkGrammar.checkPostfixOperator","ts.checkGrammar.checkPrefixOperator","ts.checkGrammar.checkProperty","ts.checkGrammar.checkForInitializerInAmbientContext","ts.checkGrammar.checkPropertyAssignment","ts.checkGrammar.checkForInvalidQuestionMark","ts.checkGrammar.checkReturnStatement","ts.checkGrammar.checkSetAccessor","ts.checkGrammar.checkAccessor","ts.checkGrammar.checkSourceFile","ts.checkGrammar.checkTopLevelElementsForRequiredDeclareModifier","ts.checkGrammar.checkTopLevelElementForRequiredDeclareModifier","ts.checkGrammar.checkShorthandPropertyAssignment","ts.checkGrammar.checkSwitchStatement","ts.checkGrammar.checkTaggedTemplateExpression","ts.checkGrammar.checkTupleType","ts.checkGrammar.checkForAtLeastOneType","ts.checkGrammar.checkTypeParameter","ts.checkGrammar.checkTypeReference","ts.checkGrammar.checkVariableDeclaration","ts.checkGrammar.checkVariableDeclarations","ts.checkGrammar.checkVariableStatement","ts.checkGrammar.checkForDisallowedLetOrConstStatement","ts.checkGrammar.allowLetAndConstDeclarations","ts.checkGrammar.checkWithStatement","ts.checkGrammar.checkYieldExpression","ts.createProgram","ts.createProgram.getSourceFile","ts.createProgram.getDiagnostics","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.ModuleInstanceState","ts.getModuleInstanceState","ts.bindSourceFile","ts.bindSourceFile.createSymbol","ts.bindSourceFile.addDeclarationToSymbol","ts.bindSourceFile.getDeclarationName","ts.bindSourceFile.getDisplayName","ts.bindSourceFile.declareSymbol","ts.bindSourceFile.isAmbientContext","ts.bindSourceFile.declareModuleMember","ts.bindSourceFile.bindChildren","ts.bindSourceFile.bindDeclaration","ts.bindSourceFile.bindConstructorDeclaration","ts.bindSourceFile.bindModuleDeclaration","ts.bindSourceFile.bindFunctionOrConstructorType","ts.bindSourceFile.bindAnonymousDeclaration","ts.bindSourceFile.bindCatchVariableDeclaration","ts.bindSourceFile.bindBlockScopedVariableDeclaration","ts.bindSourceFile.bind","ts.getIndentString","ts.getIndentSize","ts.shouldEmitToOwnFile","ts.isExternalModuleOrDeclarationFile","ts.createTextWriter","ts.createTextWriter.write","ts.createTextWriter.rawWrite","ts.createTextWriter.writeLiteral","ts.createTextWriter.writeLine","ts.createTextWriter.writeTextOfNode","ts.getLineOfLocalPosition","ts.emitNewLineBeforeLeadingComments","ts.emitComments","ts.writeCommentRange","ts.writeCommentRange.writeTrimmedCurrentLine","ts.writeCommentRange.calculateIndent","ts.getFirstConstructorWithBody","ts.getAllAccessorDeclarations","ts.getSourceFilePathInNewDir","ts.getOwnEmitOutputFilePath","ts.writeFile","ts.emitDeclarations","ts.emitDeclarations.createAndSetNewTextWriterWithSymbolWriter","ts.emitDeclarations.setWriter","ts.emitDeclarations.writeAsychronousImportDeclarations","ts.emitDeclarations.handleSymbolAccessibilityError","ts.emitDeclarations.trackSymbol","ts.emitDeclarations.writeTypeAtLocation","ts.emitDeclarations.writeReturnTypeAtSignature","ts.emitDeclarations.emitLines","ts.emitDeclarations.emitSeparatedList","ts.emitDeclarations.emitCommaList","ts.emitDeclarations.writeJsDocComments","ts.emitDeclarations.emitTypeWithNewGetSymbolAccessibilityDiangostic","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.emitModuleElementDeclarationFlags","ts.emitDeclarations.emitClassMemberDeclarationFlags","ts.emitDeclarations.emitImportDeclaration","ts.emitDeclarations.writeImportDeclaration","ts.emitDeclarations.writeImportDeclaration.getImportEntityNameVisibilityError","ts.emitDeclarations.emitModuleDeclaration","ts.emitDeclarations.emitTypeAliasDeclaration","ts.emitDeclarations.emitTypeAliasDeclaration.getTypeAliasDeclarationVisibilityError","ts.emitDeclarations.emitEnumDeclaration","ts.emitDeclarations.emitEnumMemberDeclaration","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.emitClassDeclaration","ts.emitDeclarations.emitClassDeclaration.emitParameterProperties","ts.emitDeclarations.emitInterfaceDeclaration","ts.emitDeclarations.emitPropertyDeclaration","ts.emitDeclarations.emitVariableDeclaration","ts.emitDeclarations.emitVariableDeclaration.getVariableDeclarationTypeVisibilityError","ts.emitDeclarations.emitTypeOfVariableDeclarationFromTypeLiteral","ts.emitDeclarations.emitVariableStatement","ts.emitDeclarations.emitAccessorDeclaration","ts.emitDeclarations.emitAccessorDeclaration.getTypeAnnotationFromAccessor","ts.emitDeclarations.emitAccessorDeclaration.getAccessorDeclarationTypeVisibilityError","ts.emitDeclarations.emitFunctionDeclaration","ts.emitDeclarations.emitSignatureDeclarationWithJsDocComments","ts.emitDeclarations.emitSignatureDeclaration","ts.emitDeclarations.emitSignatureDeclaration.getReturnTypeVisibilityError","ts.emitDeclarations.emitParameterDeclaration","ts.emitDeclarations.emitParameterDeclaration.getParameterDeclarationTypeVisibilityError","ts.emitDeclarations.emitNode","ts.emitDeclarations.writeReferencePath","ts.getDeclarationDiagnostics","ts.emitFiles","ts.emitFiles.emitJavaScript","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.emitNodeWithMap","ts.emitFiles.emitJavaScript.writeJavaScriptFile","ts.emitFiles.emitJavaScript.emitTokenText","ts.emitFiles.emitJavaScript.emitOptional","ts.emitFiles.emitJavaScript.emitTrailingCommaIfPresent","ts.emitFiles.emitJavaScript.emitCommaList","ts.emitFiles.emitJavaScript.emitMultiLineList","ts.emitFiles.emitJavaScript.emitLines","ts.emitFiles.emitJavaScript.emitLinesStartingAt","ts.emitFiles.emitJavaScript.emitLiteral","ts.emitFiles.emitJavaScript.emitLiteral.getLiteralText","ts.emitFiles.emitJavaScript.getTemplateLiteralAsStringLiteral","ts.emitFiles.emitJavaScript.emitTemplateExpression","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.emitIdentifier","ts.emitFiles.emitJavaScript.emitThis","ts.emitFiles.emitJavaScript.emitSuper","ts.emitFiles.emitJavaScript.emitArrayLiteral","ts.emitFiles.emitJavaScript.emitObjectLiteral","ts.emitFiles.emitJavaScript.emitPropertyAssignment","ts.emitFiles.emitJavaScript.emitShortHandPropertyAssignment","ts.emitFiles.emitJavaScript.emitShortHandPropertyAssignment.emitAsNormalPropertyAssignment","ts.emitFiles.emitJavaScript.tryEmitConstantValue","ts.emitFiles.emitJavaScript.emitPropertyAccess","ts.emitFiles.emitJavaScript.emitIndexedAccess","ts.emitFiles.emitJavaScript.emitCallExpression","ts.emitFiles.emitJavaScript.emitNewExpression","ts.emitFiles.emitJavaScript.emitTaggedTemplateExpression","ts.emitFiles.emitJavaScript.emitParenExpression","ts.emitFiles.emitJavaScript.emitUnaryExpression","ts.emitFiles.emitJavaScript.emitBinaryExpression","ts.emitFiles.emitJavaScript.emitConditionalExpression","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.emitForStatement","ts.emitFiles.emitJavaScript.emitForInStatement","ts.emitFiles.emitJavaScript.emitBreakOrContinueStatement","ts.emitFiles.emitJavaScript.emitReturnStatement","ts.emitFiles.emitJavaScript.emitWithStatement","ts.emitFiles.emitJavaScript.emitSwitchStatement","ts.emitFiles.emitJavaScript.isOnSameLine","ts.emitFiles.emitJavaScript.emitCaseOrDefaultClause","ts.emitFiles.emitJavaScript.emitThrowStatement","ts.emitFiles.emitJavaScript.emitTryStatement","ts.emitFiles.emitJavaScript.emitCatchBlock","ts.emitFiles.emitJavaScript.emitDebuggerStatement","ts.emitFiles.emitJavaScript.emitLabelledStatement","ts.emitFiles.emitJavaScript.getContainingModule","ts.emitFiles.emitJavaScript.emitModuleMemberName","ts.emitFiles.emitJavaScript.emitVariableDeclaration","ts.emitFiles.emitJavaScript.emitVariableStatement","ts.emitFiles.emitJavaScript.emitParameter","ts.emitFiles.emitJavaScript.emitDefaultValueAssignments","ts.emitFiles.emitJavaScript.emitRestParameter","ts.emitFiles.emitJavaScript.emitAccessor","ts.emitFiles.emitJavaScript.emitFunctionDeclaration","ts.emitFiles.emitJavaScript.emitCaptureThisForNodeIfNecessary","ts.emitFiles.emitJavaScript.emitSignatureParameters","ts.emitFiles.emitJavaScript.emitSignatureAndBody","ts.emitFiles.emitJavaScript.findInitialSuperCall","ts.emitFiles.emitJavaScript.emitParameterPropertyAssignments","ts.emitFiles.emitJavaScript.emitMemberAccess","ts.emitFiles.emitJavaScript.emitMemberAssignments","ts.emitFiles.emitJavaScript.emitMemberFunctions","ts.emitFiles.emitJavaScript.emitClassDeclaration","ts.emitFiles.emitJavaScript.emitClassDeclaration.emitClassReturnStatement","ts.emitFiles.emitJavaScript.emitClassDeclaration.emitConstructorOfClass","ts.emitFiles.emitJavaScript.emitInterfaceDeclaration","ts.emitFiles.emitJavaScript.emitEnumDeclaration","ts.emitFiles.emitJavaScript.emitEnumDeclaration.emitEnumMemberDeclarations","ts.emitFiles.emitJavaScript.getInnerMostModuleDeclarationFromDottedModule","ts.emitFiles.emitJavaScript.emitModuleDeclaration","ts.emitFiles.emitJavaScript.emitImportDeclaration","ts.emitFiles.emitJavaScript.getExternalImportDeclarations","ts.emitFiles.emitJavaScript.getFirstExportAssignment","ts.emitFiles.emitJavaScript.emitAMDModule","ts.emitFiles.emitJavaScript.emitCommonJSModule","ts.emitFiles.emitJavaScript.emitDirectivePrologues","ts.emitFiles.emitJavaScript.emitSourceFile","ts.emitFiles.emitJavaScript.emitNode","ts.emitFiles.emitJavaScript.hasDetachedComments","ts.emitFiles.emitJavaScript.getLeadingCommentsWithoutDetachedComments","ts.emitFiles.emitJavaScript.getLeadingCommentsToEmit","ts.emitFiles.emitJavaScript.emitLeadingDeclarationComments","ts.emitFiles.emitJavaScript.emitTrailingDeclarationComments","ts.emitFiles.emitJavaScript.emitLeadingCommentsOfLocalPosition","ts.emitFiles.emitJavaScript.emitDetachedCommentsAtPosition","ts.emitFiles.emitJavaScript.emitPinnedOrTripleSlashCommentsOfNode","ts.emitFiles.emitJavaScript.emitPinnedOrTripleSlashCommentsOfNode.isPinnedOrTripleSlashComment","ts.emitFiles.writeDeclarationFile","ts.emitFiles.emitFile","ts.getDeclarationOfKind","ts.getSingleLineStringWriter","ts.createTypeChecker","ts.createTypeChecker.addDiagnostic","ts.createTypeChecker.error","ts.createTypeChecker.createSymbol","ts.createTypeChecker.getExcludedSymbolFlags","ts.createTypeChecker.recordMergedSymbol","ts.createTypeChecker.cloneSymbol","ts.createTypeChecker.extendSymbol","ts.createTypeChecker.cloneSymbolTable","ts.createTypeChecker.extendSymbolTable","ts.createTypeChecker.getSymbolLinks","ts.createTypeChecker.getNodeLinks","ts.createTypeChecker.getSourceFile","ts.createTypeChecker.isGlobalSourceFile","ts.createTypeChecker.getSymbol","ts.createTypeChecker.isDefinedBefore","ts.createTypeChecker.resolveName","ts.createTypeChecker.resolveImport","ts.createTypeChecker.getSymbolOfPartOfRightHandSideOfImport","ts.createTypeChecker.getFullyQualifiedName","ts.createTypeChecker.resolveEntityName","ts.createTypeChecker.isExternalModuleNameRelative","ts.createTypeChecker.resolveExternalModuleName","ts.createTypeChecker.getResolvedExportSymbol","ts.createTypeChecker.getExportAssignmentSymbol","ts.createTypeChecker.checkTypeOfExportAssignmentSymbol","ts.createTypeChecker.collectExportInformationForSourceFileOrModule","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.isOptionalProperty","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.releaseStringWriter","ts.createTypeChecker.writeKeyword","ts.createTypeChecker.writePunctuation","ts.createTypeChecker.writeOperator","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.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.getTypeOfPrototypeProperty","ts.createTypeChecker.getTypeOfVariableOrPropertyDeclaration","ts.createTypeChecker.getTypeOfVariableOrPropertyDeclaration.checkImplicitAny","ts.createTypeChecker.getTypeOfVariableOrParameterOrProperty","ts.createTypeChecker.getSetAccessorTypeAnnotationNode","ts.createTypeChecker.getAnnotatedAccessorType","ts.createTypeChecker.getTypeOfAccessors","ts.createTypeChecker.checkAndStoreTypeOfAccessors","ts.createTypeChecker.getTypeOfFuncClassEnumModule","ts.createTypeChecker.getTypeOfEnumMember","ts.createTypeChecker.getTypeOfImport","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.getDeclaredTypeOfImport","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.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.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.getGlobalSymbol","ts.createTypeChecker.getGlobalType","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.isContextSensitiveExpression","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.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.isTypeOfObjectLiteral","ts.createTypeChecker.isArrayType","ts.createTypeChecker.getInnermostTypeOfNestedArrayTypes","ts.createTypeChecker.getWidenedType","ts.createTypeChecker.getWidenedType.getWidenedTypeOfUnion","ts.createTypeChecker.getWidenedType.getWidenedTypeOfObjectLiteral","ts.createTypeChecker.getWidenedType.getWidenedTypeOfArrayLiteral","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.subtractPrimitiveTypes","ts.createTypeChecker.isVariableAssignedWithin","ts.createTypeChecker.isVariableAssignedWithin.isAssignedInBinaryExpression","ts.createTypeChecker.isVariableAssignedWithin.isAssignedInVariableDeclaration","ts.createTypeChecker.isVariableAssignedWithin.isAssignedIn","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.captureLexicalThis","ts.createTypeChecker.checkThisExpression","ts.createTypeChecker.getSuperContainer","ts.createTypeChecker.isInConstructorArgumentInitializer","ts.createTypeChecker.checkSuperExpression","ts.createTypeChecker.getContextuallyTypedParameterType","ts.createTypeChecker.getContextualTypeForInitializerExpression","ts.createTypeChecker.getContextualTypeForReturnExpression","ts.createTypeChecker.getContextualTypeForArgument","ts.createTypeChecker.getContextualTypeForBinaryOperand","ts.createTypeChecker.applyToContextualType","ts.createTypeChecker.getTypeOfPropertyOfContextualType","ts.createTypeChecker.getIndexTypeOfContextualType","ts.createTypeChecker.contextualTypeIsTupleType","ts.createTypeChecker.contextualTypeHasIndexSignature","ts.createTypeChecker.getContextualTypeForPropertyExpression","ts.createTypeChecker.getContextualTypeForElementExpression","ts.createTypeChecker.getContextualTypeForConditionalOperand","ts.createTypeChecker.getContextualType","ts.createTypeChecker.getNonGenericSignature","ts.createTypeChecker.getContextualSignature","ts.createTypeChecker.isInferentialContext","ts.createTypeChecker.checkArrayLiteral","ts.createTypeChecker.isNumericName","ts.createTypeChecker.checkObjectLiteral","ts.createTypeChecker.checkObjectLiteral.getIndexType","ts.createTypeChecker.getDeclarationKindFromSymbol","ts.createTypeChecker.getDeclarationFlagsFromSymbol","ts.createTypeChecker.checkClassPropertyAccess","ts.createTypeChecker.checkPropertyAccess","ts.createTypeChecker.isValidPropertyAccess","ts.createTypeChecker.checkIndexedAccess","ts.createTypeChecker.resolveUntypedCall","ts.createTypeChecker.resolveErrorCall","ts.createTypeChecker.hasCorrectArity","ts.createTypeChecker.hasCorrectArity.checkArity","ts.createTypeChecker.getSingleCallSignature","ts.createTypeChecker.instantiateSignatureInContextOf","ts.createTypeChecker.inferTypeArguments","ts.createTypeChecker.checkTypeArguments","ts.createTypeChecker.checkApplicableSignature","ts.createTypeChecker.getEffectiveCallArguments","ts.createTypeChecker.resolveCall","ts.createTypeChecker.resolveCall.chooseOverload","ts.createTypeChecker.resolveCall.collectCandidates","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.checkFunctionExpression","ts.createTypeChecker.checkFunctionExpressionBody","ts.createTypeChecker.checkArithmeticOperandType","ts.createTypeChecker.checkReferenceExpression","ts.createTypeChecker.checkReferenceExpression.findSymbol","ts.createTypeChecker.checkReferenceExpression.isReferenceOrErrorExpression","ts.createTypeChecker.checkReferenceExpression.isConstVariableReference","ts.createTypeChecker.checkPrefixExpression","ts.createTypeChecker.checkPostfixExpression","ts.createTypeChecker.isStructuredType","ts.createTypeChecker.isConstEnumObjectType","ts.createTypeChecker.isConstEnumSymbol","ts.createTypeChecker.checkInstanceOfExpression","ts.createTypeChecker.checkInExpression","ts.createTypeChecker.checkBinaryExpression","ts.createTypeChecker.checkBinaryExpression.getSuggestedBooleanOperator","ts.createTypeChecker.checkBinaryExpression.checkAssignmentOperator","ts.createTypeChecker.checkBinaryExpression.reportOperatorError","ts.createTypeChecker.checkConditionalExpression","ts.createTypeChecker.checkTemplateExpression","ts.createTypeChecker.checkExpressionWithContextualType","ts.createTypeChecker.checkAndMarkExpression","ts.createTypeChecker.checkExpression","ts.createTypeChecker.checkExpressionNode","ts.createTypeChecker.checkTypeParameter","ts.createTypeChecker.checkParameter","ts.createTypeChecker.checkParameter.checkReferencesInInitializer","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.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.checkFlagAgreementBetweenOverloads","ts.createTypeChecker.checkFunctionOrConstructorSymbol.reportImplementationExpectedError","ts.createTypeChecker.checkExportsOnMergedDeclarations","ts.createTypeChecker.checkExportsOnMergedDeclarations.getDeclarationSpaces","ts.createTypeChecker.checkFunctionDeclaration","ts.createTypeChecker.checkBlock","ts.createTypeChecker.checkCollisionWithArgumentsInGeneratedCode","ts.createTypeChecker.checkCollisionWithIndexVariableInGeneratedCode","ts.createTypeChecker.needCollisionCheckForIdentifier","ts.createTypeChecker.checkCollisionWithCapturedThisVariable","ts.createTypeChecker.checkIfThisIsCapturedInEnclosingScope","ts.createTypeChecker.checkCollisionWithCapturedSuperVariable","ts.createTypeChecker.checkCollisionWithRequireExportsInGeneratedCode","ts.createTypeChecker.checkCollisionWithConstDeclarations","ts.createTypeChecker.checkVariableDeclaration","ts.createTypeChecker.checkVariableStatement","ts.createTypeChecker.checkExpressionStatement","ts.createTypeChecker.checkIfStatement","ts.createTypeChecker.checkDoStatement","ts.createTypeChecker.checkWhileStatement","ts.createTypeChecker.checkForStatement","ts.createTypeChecker.checkForInStatement","ts.createTypeChecker.checkBreakOrContinueStatement","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.checkImportDeclaration","ts.createTypeChecker.checkExportAssignment","ts.createTypeChecker.checkSourceElement","ts.createTypeChecker.checkFunctionExpressionBodies","ts.createTypeChecker.checkBody","ts.createTypeChecker.checkSourceFile","ts.createTypeChecker.checkProgram","ts.createTypeChecker.getSortedDiagnostics","ts.createTypeChecker.getDiagnostics","ts.createTypeChecker.getDeclarationDiagnostics","ts.createTypeChecker.getGlobalDiagnostics","ts.createTypeChecker.getNodeAtPosition","ts.createTypeChecker.getNodeAtPosition.findChildAtPosition","ts.createTypeChecker.isInsideWithStatementBody","ts.createTypeChecker.getSymbolsInScope","ts.createTypeChecker.getSymbolsInScope.copySymbol","ts.createTypeChecker.getSymbolsInScope.copySymbols","ts.createTypeChecker.isTypeDeclarationName","ts.createTypeChecker.isTypeDeclaration","ts.createTypeChecker.isTypeReferenceIdentifier","ts.createTypeChecker.isTypeNode","ts.createTypeChecker.isInRightSideOfImportOrExportAssignment","ts.createTypeChecker.isRightSideOfQualifiedNameOrPropertyAccess","ts.createTypeChecker.getSymbolOfEntityName","ts.createTypeChecker.getSymbolInfo","ts.createTypeChecker.getShorthandAssignmentValueSymbol","ts.createTypeChecker.getTypeOfNode","ts.createTypeChecker.getTypeOfExpression","ts.createTypeChecker.getAugmentedPropertiesOfType","ts.createTypeChecker.getRootSymbols","ts.createTypeChecker.isExternalModuleSymbol","ts.createTypeChecker.isNodeDescendentOf","ts.createTypeChecker.isUniqueLocalName","ts.createTypeChecker.getLocalNameOfContainer","ts.createTypeChecker.getLocalNameForSymbol","ts.createTypeChecker.getExpressionNamePrefix","ts.createTypeChecker.getExportAssignmentName","ts.createTypeChecker.isTopLevelValueImportWithEntityName","ts.createTypeChecker.hasSemanticErrors","ts.createTypeChecker.isEmitBlocked","ts.createTypeChecker.hasEarlyErrors","ts.createTypeChecker.isImportResolvedToValue","ts.createTypeChecker.isConstEnumOrConstEnumOnlyModule","ts.createTypeChecker.isReferencedImportDeclaration","ts.createTypeChecker.isImplementationOfOverload","ts.createTypeChecker.getNodeCheckFlags","ts.createTypeChecker.getEnumMemberValue","ts.createTypeChecker.getConstantValue","ts.createTypeChecker.writeTypeAtLocation","ts.createTypeChecker.writeReturnTypeOfSignatureDeclaration","ts.createTypeChecker.createResolver","ts.createTypeChecker.invokeEmitter","ts.createTypeChecker.initializeTypeChecker","TypeScript.DiagnosticCategory","TypeScript.Errors","TypeScript.Errors.constructor","TypeScript.Errors.argument","TypeScript.Errors.argumentOutOfRange","TypeScript.Errors.argumentNull","TypeScript.Errors.abstract","TypeScript.Errors.notYetImplemented","TypeScript.Errors.invalidOperation","TypeScript.ArrayUtilities","TypeScript.ArrayUtilities.constructor","TypeScript.ArrayUtilities.sequenceEquals","TypeScript.ArrayUtilities.contains","TypeScript.ArrayUtilities.distinct","TypeScript.ArrayUtilities.last","TypeScript.ArrayUtilities.lastOrDefault","TypeScript.ArrayUtilities.firstOrDefault","TypeScript.ArrayUtilities.first","TypeScript.ArrayUtilities.sum","TypeScript.ArrayUtilities.select","TypeScript.ArrayUtilities.where","TypeScript.ArrayUtilities.any","TypeScript.ArrayUtilities.all","TypeScript.ArrayUtilities.binarySearch","TypeScript.ArrayUtilities.createArray","TypeScript.ArrayUtilities.grow","TypeScript.ArrayUtilities.copy","TypeScript.ArrayUtilities.indexOf","TypeScript.AssertionLevel","TypeScript.Debug","TypeScript.Debug.constructor","TypeScript.Debug.shouldAssert","TypeScript.Debug.assert","TypeScript.Debug.fail","TypeScript.Location","TypeScript.Location.constructor","TypeScript.Location.fileName","TypeScript.Location.lineMap","TypeScript.Location.line","TypeScript.Location.character","TypeScript.Location.start","TypeScript.Location.length","TypeScript.Location.equals","TypeScript.Diagnostic","TypeScript.Diagnostic.constructor","TypeScript.Diagnostic.toJSON","TypeScript.Diagnostic.diagnosticKey","TypeScript.Diagnostic.arguments","TypeScript.Diagnostic.text","TypeScript.Diagnostic.message","TypeScript.Diagnostic.additionalLocations","TypeScript.Diagnostic.equals","TypeScript.Diagnostic.info","TypeScript.newLine","TypeScript.getLargestIndex","TypeScript.getDiagnosticInfoFromKey","TypeScript.getLocalizedText","TypeScript.getDiagnosticMessage","TypeScript.IntegerUtilities","TypeScript.IntegerUtilities.integerDivide","TypeScript.IntegerUtilities.integerMultiplyLow32Bits","TypeScript.IntegerUtilities.isInteger","TypeScript.IntegerUtilities.isHexInteger","TypeScript.LineMap","TypeScript.LineMap.constructor","TypeScript.LineMap.toJSON","TypeScript.LineMap.equals","TypeScript.LineMap.lineStarts","TypeScript.LineMap.lineCount","TypeScript.LineMap.getPosition","TypeScript.LineMap.getLineNumberFromPosition","TypeScript.LineMap.getLineStartPosition","TypeScript.LineMap.fillLineAndCharacterFromPosition","TypeScript.LineMap.getLineAndCharacterFromPosition","TypeScript.LineAndCharacter","TypeScript.LineAndCharacter.constructor","TypeScript.LineAndCharacter.line","TypeScript.LineAndCharacter.character","TypeScript.StringUtilities","TypeScript.StringUtilities.constructor","TypeScript.StringUtilities.isString","TypeScript.StringUtilities.endsWith","TypeScript.StringUtilities.startsWith","TypeScript.StringUtilities.repeat","TypeScript.CharacterCodes","TypeScript.ScriptSnapshot","TypeScript.ScriptSnapshot.StringScriptSnapshot","TypeScript.ScriptSnapshot.StringScriptSnapshot.constructor","TypeScript.ScriptSnapshot.StringScriptSnapshot.getText","TypeScript.ScriptSnapshot.StringScriptSnapshot.getLength","TypeScript.ScriptSnapshot.StringScriptSnapshot.getLineStartPositions","TypeScript.ScriptSnapshot.StringScriptSnapshot.getChangeRange","TypeScript.ScriptSnapshot.fromString","TypeScript.LineMap1","TypeScript.LineMap1.fromSimpleText","TypeScript.LineMap1.fromScriptSnapshot","TypeScript.LineMap1.fromString","TypeScript.SimpleText","TypeScript.SimpleText.SimpleStringText","TypeScript.SimpleText.SimpleStringText.constructor","TypeScript.SimpleText.SimpleStringText.length","TypeScript.SimpleText.SimpleStringText.substr","TypeScript.SimpleText.SimpleStringText.charCodeAt","TypeScript.SimpleText.SimpleStringText.lineMap","TypeScript.SimpleText.SimpleScriptSnapshotText","TypeScript.SimpleText.SimpleScriptSnapshotText.constructor","TypeScript.SimpleText.SimpleScriptSnapshotText.charCodeAt","TypeScript.SimpleText.SimpleScriptSnapshotText.length","TypeScript.SimpleText.SimpleScriptSnapshotText.substr","TypeScript.SimpleText.SimpleScriptSnapshotText.lineMap","TypeScript.SimpleText.fromString","TypeScript.SimpleText.fromScriptSnapshot","TypeScript.TextUtilities","TypeScript.TextUtilities.parseLineStarts","TypeScript.TextUtilities.getLengthOfLineBreakSlow","TypeScript.TextUtilities.getLengthOfLineBreak","TypeScript.TextUtilities.isAnyLineBreakCharacter","TypeScript.TextSpan","TypeScript.TextSpan.constructor","TypeScript.TextSpan.toJSON","TypeScript.TextSpan.start","TypeScript.TextSpan.length","TypeScript.TextSpan.end","TypeScript.TextSpan.isEmpty","TypeScript.TextSpan.containsPosition","TypeScript.TextSpan.containsTextSpan","TypeScript.TextSpan.overlapsWith","TypeScript.TextSpan.overlap","TypeScript.TextSpan.intersectsWithTextSpan","TypeScript.TextSpan.intersectsWith","TypeScript.TextSpan.intersectsWithPosition","TypeScript.TextSpan.intersection","TypeScript.TextSpan.fromBounds","TypeScript.TextChangeRange","TypeScript.TextChangeRange.constructor","TypeScript.TextChangeRange.span","TypeScript.TextChangeRange.newLength","TypeScript.TextChangeRange.newSpan","TypeScript.TextChangeRange.isUnchanged","TypeScript.TextChangeRange.collapseChangesAcrossMultipleVersions","TypeScript.CharacterInfo","TypeScript.CharacterInfo.isDecimalDigit","TypeScript.CharacterInfo.isOctalDigit","TypeScript.CharacterInfo.isHexDigit","TypeScript.CharacterInfo.hexValue","TypeScript.CharacterInfo.isWhitespace","TypeScript.CharacterInfo.isLineTerminator","TypeScript.ParserContextFlags","TypeScript.SyntaxNodeConstants","TypeScript.FormattingOptions","TypeScript.FormattingOptions.constructor","TypeScript.SyntaxKind","TypeScript.SyntaxFacts","TypeScript.SyntaxFacts.getTokenKind","TypeScript.SyntaxFacts.getText","TypeScript.SyntaxFacts.isAnyKeyword","TypeScript.SyntaxFacts.isAnyPunctuation","TypeScript.SyntaxFacts.isPrefixUnaryExpressionOperatorToken","TypeScript.SyntaxFacts.isBinaryExpressionOperatorToken","TypeScript.SyntaxFacts.isAssignmentOperatorToken","TypeScript.SyntaxFacts.isType","TypeScript.ScannerUtilities","TypeScript.ScannerUtilities.identifierKind","TypeScript.Scanner","TypeScript.Scanner.ScannerConstants","TypeScript.Scanner.largeTokenPackData","TypeScript.Scanner.largeTokenUnpackFullWidth","TypeScript.Scanner.largeTokenUnpackLeadingTriviaInfo","TypeScript.Scanner.largeTokenUnpackHasLeadingTrivia","TypeScript.Scanner.hasComment","TypeScript.Scanner.hasNewLine","TypeScript.Scanner.largeTokenUnpackHasLeadingNewLine","TypeScript.Scanner.largeTokenUnpackHasLeadingComment","TypeScript.Scanner.isContextualToken","TypeScript.Scanner.fillSizeInfo","TypeScript.Scanner.fullText","TypeScript.Scanner.leadingTrivia","TypeScript.Scanner.leadingTriviaWidth","TypeScript.Scanner.tokenIsIncrementallyUnusable","TypeScript.Scanner.FixedWidthTokenWithNoTrivia","TypeScript.Scanner.FixedWidthTokenWithNoTrivia.constructor","TypeScript.Scanner.FixedWidthTokenWithNoTrivia.setFullStart","TypeScript.Scanner.FixedWidthTokenWithNoTrivia.childAt","TypeScript.Scanner.FixedWidthTokenWithNoTrivia.isIncrementallyUnusable","TypeScript.Scanner.FixedWidthTokenWithNoTrivia.isKeywordConvertedToIdentifier","TypeScript.Scanner.FixedWidthTokenWithNoTrivia.fullText","TypeScript.Scanner.FixedWidthTokenWithNoTrivia.text","TypeScript.Scanner.FixedWidthTokenWithNoTrivia.leadingTrivia","TypeScript.Scanner.FixedWidthTokenWithNoTrivia.leadingTriviaWidth","TypeScript.Scanner.FixedWidthTokenWithNoTrivia.fullWidth","TypeScript.Scanner.FixedWidthTokenWithNoTrivia.fullStart","TypeScript.Scanner.FixedWidthTokenWithNoTrivia.hasLeadingTrivia","TypeScript.Scanner.FixedWidthTokenWithNoTrivia.hasLeadingNewLine","TypeScript.Scanner.FixedWidthTokenWithNoTrivia.hasLeadingSkippedToken","TypeScript.Scanner.FixedWidthTokenWithNoTrivia.hasLeadingComment","TypeScript.Scanner.FixedWidthTokenWithNoTrivia.clone","TypeScript.Scanner.LargeScannerToken","TypeScript.Scanner.LargeScannerToken.constructor","TypeScript.Scanner.LargeScannerToken.setFullStart","TypeScript.Scanner.LargeScannerToken.childAt","TypeScript.Scanner.LargeScannerToken.syntaxTreeText","TypeScript.Scanner.LargeScannerToken.isIncrementallyUnusable","TypeScript.Scanner.LargeScannerToken.isKeywordConvertedToIdentifier","TypeScript.Scanner.LargeScannerToken.fullText","TypeScript.Scanner.LargeScannerToken.text","TypeScript.Scanner.LargeScannerToken.leadingTrivia","TypeScript.Scanner.LargeScannerToken.leadingTriviaWidth","TypeScript.Scanner.LargeScannerToken.fullWidth","TypeScript.Scanner.LargeScannerToken.fullStart","TypeScript.Scanner.LargeScannerToken.hasLeadingTrivia","TypeScript.Scanner.LargeScannerToken.hasLeadingNewLine","TypeScript.Scanner.LargeScannerToken.hasLeadingComment","TypeScript.Scanner.LargeScannerToken.hasLeadingSkippedToken","TypeScript.Scanner.LargeScannerToken.clone","TypeScript.Scanner.createScanner","TypeScript.Scanner.createScannerInternal","TypeScript.Scanner.createScannerInternal.setIndex","TypeScript.Scanner.createScannerInternal.reset","TypeScript.Scanner.createScannerInternal.scan","TypeScript.Scanner.createScannerInternal.scanTrivia","TypeScript.Scanner.createScannerInternal.scanTriviaInfo","TypeScript.Scanner.createScannerInternal.slowScanWhitespaceTriviaInfo","TypeScript.Scanner.createScannerInternal.isNewLineCharacter","TypeScript.Scanner.createScannerInternal.scanWhitespaceTrivia","TypeScript.Scanner.createScannerInternal.createTrivia","TypeScript.Scanner.createScannerInternal.scanSingleLineCommentTrivia","TypeScript.Scanner.createScannerInternal.skipSingleLineCommentTrivia","TypeScript.Scanner.createScannerInternal.scanMultiLineCommentTrivia","TypeScript.Scanner.createScannerInternal.skipMultiLineCommentTrivia","TypeScript.Scanner.createScannerInternal.scanLineTerminatorSequenceTrivia","TypeScript.Scanner.createScannerInternal.skipLineTerminatorSequence","TypeScript.Scanner.createScannerInternal.scanSyntaxKind","TypeScript.Scanner.createScannerInternal.isIdentifierStart","TypeScript.Scanner.createScannerInternal.isIdentifierPart","TypeScript.Scanner.createScannerInternal.tryFastScanIdentifierOrKeyword","TypeScript.Scanner.createScannerInternal.slowScanIdentifierOrKeyword","TypeScript.Scanner.createScannerInternal.scanNumericLiteral","TypeScript.Scanner.createScannerInternal.isOctalNumericLiteral","TypeScript.Scanner.createScannerInternal.scanOctalNumericLiteral","TypeScript.Scanner.createScannerInternal.scanDecimalDigits","TypeScript.Scanner.createScannerInternal.scanDecimalNumericLiteral","TypeScript.Scanner.createScannerInternal.scanDecimalNumericLiteralAfterDot","TypeScript.Scanner.createScannerInternal.scanHexNumericLiteral","TypeScript.Scanner.createScannerInternal.isHexNumericLiteral","TypeScript.Scanner.createScannerInternal.scanLessThanToken","TypeScript.Scanner.createScannerInternal.scanGreaterThanToken","TypeScript.Scanner.createScannerInternal.scanBarToken","TypeScript.Scanner.createScannerInternal.scanCaretToken","TypeScript.Scanner.createScannerInternal.scanCloseBraceToken","TypeScript.Scanner.createScannerInternal.scanTemplateToken","TypeScript.Scanner.createScannerInternal.scanAmpersandToken","TypeScript.Scanner.createScannerInternal.scanPercentToken","TypeScript.Scanner.createScannerInternal.scanMinusToken","TypeScript.Scanner.createScannerInternal.scanPlusToken","TypeScript.Scanner.createScannerInternal.scanAsteriskToken","TypeScript.Scanner.createScannerInternal.scanEqualsToken","TypeScript.Scanner.createScannerInternal.scanDotToken","TypeScript.Scanner.createScannerInternal.scanSlashToken","TypeScript.Scanner.createScannerInternal.scanRegularExpressionToken","TypeScript.Scanner.createScannerInternal.scanExclamationToken","TypeScript.Scanner.createScannerInternal.getErrorMessageText","TypeScript.Scanner.createScannerInternal.skipEscapeSequence","TypeScript.Scanner.createScannerInternal.scanStringLiteral","TypeScript.Scanner.createScannerInternal.isUnicodeEscape","TypeScript.Scanner.createScannerInternal.peekCharOrUnicodeEscape","TypeScript.Scanner.createScannerInternal.peekUnicodeOrHexEscape","TypeScript.Scanner.createScannerInternal.scanCharOrUnicodeEscape","TypeScript.Scanner.createScannerInternal.scanUnicodeOrHexEscape","TypeScript.Scanner.createScannerInternal.fillTokenInfo","TypeScript.Scanner.isValidIdentifier","TypeScript.Scanner.createParserSource","TypeScript.Scanner.createParserSource.release","TypeScript.Scanner.createParserSource.currentNode","TypeScript.Scanner.createParserSource.absolutePosition","TypeScript.Scanner.createParserSource.tokenDiagnostics","TypeScript.Scanner.createParserSource.getOrCreateRewindPoint","TypeScript.Scanner.createParserSource.getRewindPoint","TypeScript.Scanner.createParserSource.rewind","TypeScript.Scanner.createParserSource.releaseRewindPoint","TypeScript.Scanner.createParserSource.fetchNextItem","TypeScript.Scanner.createParserSource.peekToken","TypeScript.Scanner.createParserSource.consumeNodeOrToken","TypeScript.Scanner.createParserSource.currentToken","TypeScript.Scanner.createParserSource.removeDiagnosticsOnOrAfterPosition","TypeScript.Scanner.createParserSource.resetToPosition","TypeScript.Scanner.createParserSource.currentContextualToken","TypeScript.Scanner.fixedWidthTokenLength","TypeScript.SlidingWindow","TypeScript.SlidingWindow.constructor","TypeScript.SlidingWindow.addMoreItemsToWindow","TypeScript.SlidingWindow.tryShiftOrGrowWindow","TypeScript.SlidingWindow.absoluteIndex","TypeScript.SlidingWindow.isAtEndOfSource","TypeScript.SlidingWindow.getAndPinAbsoluteIndex","TypeScript.SlidingWindow.releaseAndUnpinAbsoluteIndex","TypeScript.SlidingWindow.rewindToPinnedIndex","TypeScript.SlidingWindow.currentItem","TypeScript.SlidingWindow.currentItemWithoutFetching","TypeScript.SlidingWindow.peekItemN","TypeScript.SlidingWindow.moveToNextItem","TypeScript.SlidingWindow.disgardAllItemsFromCurrentIndexOnwards","TypeScript.Syntax","TypeScript.Syntax.nodeHasSkippedOrMissingTokens","TypeScript.Syntax.isUnterminatedStringLiteral","TypeScript.Syntax.isUnterminatedMultilineCommentTrivia","TypeScript.Syntax.isEntirelyInsideCommentTrivia","TypeScript.Syntax.getAncestorOfKind","TypeScript.Syntax.hasAncestorOfKind","TypeScript.Syntax.isIntegerLiteral","TypeScript.Syntax.containingNode","TypeScript.Syntax.findTokenOnLeft","TypeScript.Syntax.findCompleteTokenOnLeft","TypeScript.syntaxTree","TypeScript.parserContextFlags","TypeScript.parsedInStrictModeContext","TypeScript.parsedInDisallowInContext","TypeScript.parsedInYieldContext","TypeScript.parsedInGeneratorParameterContext","TypeScript.parsedInAsyncContext","TypeScript.previousToken","TypeScript.findToken","TypeScript.findTokenWorker","TypeScript.findTokenInList","TypeScript.findTokenInNodeOrToken","TypeScript.tryGetEndOfFileAt","TypeScript.nextToken","TypeScript.isNode","TypeScript.isTokenKind","TypeScript.isToken","TypeScript.isList","TypeScript.syntaxID","TypeScript.collectTextElements","TypeScript.fullText","TypeScript.leadingTriviaWidth","TypeScript.firstToken","TypeScript.lastToken","TypeScript.fullStart","TypeScript.fullWidth","TypeScript.isIncrementallyUnusable","TypeScript.data","TypeScript.combineData","TypeScript.listComputeData","TypeScript.computeData","TypeScript.nodeOrTokenComputeData","TypeScript.start","TypeScript.width","TypeScript.fullEnd","TypeScript.existsNewLineBetweenTokens","TypeScript.SyntaxFacts.isDirectivePrologueElement","TypeScript.SyntaxFacts.isUseStrictDirective","TypeScript.SyntaxFacts.isIdentifierNameOrAnyKeyword","TypeScript.SyntaxFacts.isAccessibilityModifier","TypeScript.separatorCount","TypeScript.nonSeparatorCount","TypeScript.separatorAt","TypeScript.nonSeparatorAt","TypeScript.Syntax.addArrayPrototypeValue","TypeScript.Syntax.list","TypeScript.Syntax.separatedList","TypeScript.tokenValue","TypeScript.tokenValueText","TypeScript.massageTemplate","TypeScript.massageEscapes","TypeScript.regularExpressionValue","TypeScript.massageDisallowedIdentifiers","TypeScript.convertEscapes","TypeScript.hexValue","TypeScript.Syntax.realizeToken","TypeScript.Syntax.convertKeywordToIdentifier","TypeScript.Syntax.withLeadingTrivia","TypeScript.Syntax.emptyToken","TypeScript.Syntax.EmptyToken","TypeScript.Syntax.EmptyToken.constructor","TypeScript.Syntax.EmptyToken.setFullStart","TypeScript.Syntax.EmptyToken.childAt","TypeScript.Syntax.EmptyToken.clone","TypeScript.Syntax.EmptyToken.isIncrementallyUnusable","TypeScript.Syntax.EmptyToken.isKeywordConvertedToIdentifier","TypeScript.Syntax.EmptyToken.fullWidth","TypeScript.Syntax.EmptyToken.fullStart","TypeScript.Syntax.EmptyToken.text","TypeScript.Syntax.EmptyToken.fullText","TypeScript.Syntax.EmptyToken.hasLeadingTrivia","TypeScript.Syntax.EmptyToken.hasLeadingNewLine","TypeScript.Syntax.EmptyToken.hasLeadingComment","TypeScript.Syntax.EmptyToken.hasLeadingSkippedToken","TypeScript.Syntax.EmptyToken.leadingTriviaWidth","TypeScript.Syntax.EmptyToken.leadingTrivia","TypeScript.Syntax.RealizedToken","TypeScript.Syntax.RealizedToken.constructor","TypeScript.Syntax.RealizedToken.setFullStart","TypeScript.Syntax.RealizedToken.childAt","TypeScript.Syntax.RealizedToken.clone","TypeScript.Syntax.RealizedToken.isIncrementallyUnusable","TypeScript.Syntax.RealizedToken.isKeywordConvertedToIdentifier","TypeScript.Syntax.RealizedToken.fullStart","TypeScript.Syntax.RealizedToken.fullWidth","TypeScript.Syntax.RealizedToken.text","TypeScript.Syntax.RealizedToken.fullText","TypeScript.Syntax.RealizedToken.hasLeadingTrivia","TypeScript.Syntax.RealizedToken.hasLeadingNewLine","TypeScript.Syntax.RealizedToken.hasLeadingComment","TypeScript.Syntax.RealizedToken.hasLeadingSkippedToken","TypeScript.Syntax.RealizedToken.leadingTrivia","TypeScript.Syntax.RealizedToken.leadingTriviaWidth","TypeScript.Syntax.ConvertedKeywordToken","TypeScript.Syntax.ConvertedKeywordToken.constructor","TypeScript.Syntax.ConvertedKeywordToken.setFullStart","TypeScript.Syntax.ConvertedKeywordToken.childAt","TypeScript.Syntax.ConvertedKeywordToken.fullStart","TypeScript.Syntax.ConvertedKeywordToken.fullWidth","TypeScript.Syntax.ConvertedKeywordToken.text","TypeScript.Syntax.ConvertedKeywordToken.syntaxTreeText","TypeScript.Syntax.ConvertedKeywordToken.fullText","TypeScript.Syntax.ConvertedKeywordToken.hasLeadingTrivia","TypeScript.Syntax.ConvertedKeywordToken.hasLeadingNewLine","TypeScript.Syntax.ConvertedKeywordToken.hasLeadingComment","TypeScript.Syntax.ConvertedKeywordToken.hasLeadingSkippedToken","TypeScript.Syntax.ConvertedKeywordToken.leadingTrivia","TypeScript.Syntax.ConvertedKeywordToken.leadingTriviaWidth","TypeScript.Syntax.ConvertedKeywordToken.isKeywordConvertedToIdentifier","TypeScript.Syntax.ConvertedKeywordToken.isIncrementallyUnusable","TypeScript.Syntax.ConvertedKeywordToken.clone","TypeScript.Syntax.AbstractTrivia","TypeScript.Syntax.AbstractTrivia.constructor","TypeScript.Syntax.AbstractTrivia.clone","TypeScript.Syntax.AbstractTrivia.fullStart","TypeScript.Syntax.AbstractTrivia.fullWidth","TypeScript.Syntax.AbstractTrivia.fullText","TypeScript.Syntax.AbstractTrivia.skippedToken","TypeScript.Syntax.AbstractTrivia.isWhitespace","TypeScript.Syntax.AbstractTrivia.isComment","TypeScript.Syntax.AbstractTrivia.isNewLine","TypeScript.Syntax.AbstractTrivia.isSkippedToken","TypeScript.Syntax.SkippedTokenTrivia","TypeScript.Syntax.SkippedTokenTrivia.constructor","TypeScript.Syntax.SkippedTokenTrivia.clone","TypeScript.Syntax.SkippedTokenTrivia.fullStart","TypeScript.Syntax.SkippedTokenTrivia.fullWidth","TypeScript.Syntax.SkippedTokenTrivia.fullText","TypeScript.Syntax.SkippedTokenTrivia.skippedToken","TypeScript.Syntax.DeferredTrivia","TypeScript.Syntax.DeferredTrivia.constructor","TypeScript.Syntax.DeferredTrivia.clone","TypeScript.Syntax.DeferredTrivia.fullStart","TypeScript.Syntax.DeferredTrivia.fullWidth","TypeScript.Syntax.DeferredTrivia.fullText","TypeScript.Syntax.DeferredTrivia.skippedToken","TypeScript.Syntax.deferredTrivia","TypeScript.Syntax.skippedTokenTrivia","TypeScript.Syntax.splitMultiLineCommentTriviaIntoMultipleLines","TypeScript.Syntax.EmptyTriviaList","TypeScript.Syntax.EmptyTriviaList.constructor","TypeScript.Syntax.EmptyTriviaList.isShared","TypeScript.Syntax.EmptyTriviaList.count","TypeScript.Syntax.EmptyTriviaList.syntaxTriviaAt","TypeScript.Syntax.EmptyTriviaList.last","TypeScript.Syntax.EmptyTriviaList.fullWidth","TypeScript.Syntax.EmptyTriviaList.fullText","TypeScript.Syntax.EmptyTriviaList.hasComment","TypeScript.Syntax.EmptyTriviaList.hasNewLine","TypeScript.Syntax.EmptyTriviaList.hasSkippedToken","TypeScript.Syntax.EmptyTriviaList.toArray","TypeScript.Syntax.EmptyTriviaList.clone","TypeScript.Syntax.isComment","TypeScript.Syntax.SingletonSyntaxTriviaList","TypeScript.Syntax.SingletonSyntaxTriviaList.constructor","TypeScript.Syntax.SingletonSyntaxTriviaList.isShared","TypeScript.Syntax.SingletonSyntaxTriviaList.count","TypeScript.Syntax.SingletonSyntaxTriviaList.syntaxTriviaAt","TypeScript.Syntax.SingletonSyntaxTriviaList.last","TypeScript.Syntax.SingletonSyntaxTriviaList.fullWidth","TypeScript.Syntax.SingletonSyntaxTriviaList.fullText","TypeScript.Syntax.SingletonSyntaxTriviaList.hasComment","TypeScript.Syntax.SingletonSyntaxTriviaList.hasNewLine","TypeScript.Syntax.SingletonSyntaxTriviaList.hasSkippedToken","TypeScript.Syntax.SingletonSyntaxTriviaList.toArray","TypeScript.Syntax.SingletonSyntaxTriviaList.clone","TypeScript.Syntax.NormalSyntaxTriviaList","TypeScript.Syntax.NormalSyntaxTriviaList.constructor","TypeScript.Syntax.NormalSyntaxTriviaList.isShared","TypeScript.Syntax.NormalSyntaxTriviaList.count","TypeScript.Syntax.NormalSyntaxTriviaList.syntaxTriviaAt","TypeScript.Syntax.NormalSyntaxTriviaList.last","TypeScript.Syntax.NormalSyntaxTriviaList.fullWidth","TypeScript.Syntax.NormalSyntaxTriviaList.fullText","TypeScript.Syntax.NormalSyntaxTriviaList.hasComment","TypeScript.Syntax.NormalSyntaxTriviaList.hasNewLine","TypeScript.Syntax.NormalSyntaxTriviaList.hasSkippedToken","TypeScript.Syntax.NormalSyntaxTriviaList.toArray","TypeScript.Syntax.NormalSyntaxTriviaList.clone","TypeScript.Syntax.triviaList","TypeScript.childCount","TypeScript.childAt","TypeScript.SyntaxUtilities","TypeScript.SyntaxUtilities.isAnyFunctionExpressionOrDeclaration","TypeScript.SyntaxUtilities.isLastTokenOnLine","TypeScript.SyntaxUtilities.isLeftHandSizeExpression","TypeScript.SyntaxUtilities.isSwitchClause","TypeScript.SyntaxUtilities.isTypeMember","TypeScript.SyntaxUtilities.isClassElement","TypeScript.SyntaxUtilities.isModuleElement","TypeScript.SyntaxUtilities.isStatement","TypeScript.SyntaxUtilities.isAngleBracket","TypeScript.SyntaxUtilities.getToken","TypeScript.SyntaxUtilities.containsToken","TypeScript.SyntaxUtilities.hasExportKeyword","TypeScript.SyntaxUtilities.getExportKeyword","TypeScript.SyntaxUtilities.isAmbientDeclarationSyntax","TypeScript.visitNodeOrToken","TypeScript.SyntaxWalker","TypeScript.SyntaxWalker.constructor","TypeScript.SyntaxWalker.visitToken","TypeScript.SyntaxWalker.visitOptionalToken","TypeScript.SyntaxWalker.visitList","TypeScript.SyntaxWalker.visitSourceUnit","TypeScript.SyntaxWalker.visitQualifiedName","TypeScript.SyntaxWalker.visitObjectType","TypeScript.SyntaxWalker.visitFunctionType","TypeScript.SyntaxWalker.visitArrayType","TypeScript.SyntaxWalker.visitConstructorType","TypeScript.SyntaxWalker.visitGenericType","TypeScript.SyntaxWalker.visitTypeQuery","TypeScript.SyntaxWalker.visitTupleType","TypeScript.SyntaxWalker.visitUnionType","TypeScript.SyntaxWalker.visitParenthesizedType","TypeScript.SyntaxWalker.visitInterfaceDeclaration","TypeScript.SyntaxWalker.visitFunctionDeclaration","TypeScript.SyntaxWalker.visitModuleDeclaration","TypeScript.SyntaxWalker.visitClassDeclaration","TypeScript.SyntaxWalker.visitEnumDeclaration","TypeScript.SyntaxWalker.visitImportDeclaration","TypeScript.SyntaxWalker.visitExportAssignment","TypeScript.SyntaxWalker.visitMemberFunctionDeclaration","TypeScript.SyntaxWalker.visitMemberVariableDeclaration","TypeScript.SyntaxWalker.visitConstructorDeclaration","TypeScript.SyntaxWalker.visitIndexMemberDeclaration","TypeScript.SyntaxWalker.visitGetAccessor","TypeScript.SyntaxWalker.visitSetAccessor","TypeScript.SyntaxWalker.visitPropertySignature","TypeScript.SyntaxWalker.visitCallSignature","TypeScript.SyntaxWalker.visitConstructSignature","TypeScript.SyntaxWalker.visitIndexSignature","TypeScript.SyntaxWalker.visitMethodSignature","TypeScript.SyntaxWalker.visitBlock","TypeScript.SyntaxWalker.visitIfStatement","TypeScript.SyntaxWalker.visitVariableStatement","TypeScript.SyntaxWalker.visitExpressionStatement","TypeScript.SyntaxWalker.visitReturnStatement","TypeScript.SyntaxWalker.visitSwitchStatement","TypeScript.SyntaxWalker.visitBreakStatement","TypeScript.SyntaxWalker.visitContinueStatement","TypeScript.SyntaxWalker.visitForStatement","TypeScript.SyntaxWalker.visitForInStatement","TypeScript.SyntaxWalker.visitEmptyStatement","TypeScript.SyntaxWalker.visitThrowStatement","TypeScript.SyntaxWalker.visitWhileStatement","TypeScript.SyntaxWalker.visitTryStatement","TypeScript.SyntaxWalker.visitLabeledStatement","TypeScript.SyntaxWalker.visitDoStatement","TypeScript.SyntaxWalker.visitDebuggerStatement","TypeScript.SyntaxWalker.visitWithStatement","TypeScript.SyntaxWalker.visitPrefixUnaryExpression","TypeScript.SyntaxWalker.visitDeleteExpression","TypeScript.SyntaxWalker.visitTypeOfExpression","TypeScript.SyntaxWalker.visitVoidExpression","TypeScript.SyntaxWalker.visitConditionalExpression","TypeScript.SyntaxWalker.visitBinaryExpression","TypeScript.SyntaxWalker.visitPostfixUnaryExpression","TypeScript.SyntaxWalker.visitMemberAccessExpression","TypeScript.SyntaxWalker.visitInvocationExpression","TypeScript.SyntaxWalker.visitArrayLiteralExpression","TypeScript.SyntaxWalker.visitObjectLiteralExpression","TypeScript.SyntaxWalker.visitObjectCreationExpression","TypeScript.SyntaxWalker.visitParenthesizedExpression","TypeScript.SyntaxWalker.visitParenthesizedArrowFunctionExpression","TypeScript.SyntaxWalker.visitSimpleArrowFunctionExpression","TypeScript.SyntaxWalker.visitCastExpression","TypeScript.SyntaxWalker.visitElementAccessExpression","TypeScript.SyntaxWalker.visitFunctionExpression","TypeScript.SyntaxWalker.visitOmittedExpression","TypeScript.SyntaxWalker.visitTemplateExpression","TypeScript.SyntaxWalker.visitTemplateAccessExpression","TypeScript.SyntaxWalker.visitYieldExpression","TypeScript.SyntaxWalker.visitAwaitExpression","TypeScript.SyntaxWalker.visitVariableDeclaration","TypeScript.SyntaxWalker.visitVariableDeclarator","TypeScript.SyntaxWalker.visitArgumentList","TypeScript.SyntaxWalker.visitParameterList","TypeScript.SyntaxWalker.visitTypeArgumentList","TypeScript.SyntaxWalker.visitTypeParameterList","TypeScript.SyntaxWalker.visitHeritageClause","TypeScript.SyntaxWalker.visitEqualsValueClause","TypeScript.SyntaxWalker.visitCaseSwitchClause","TypeScript.SyntaxWalker.visitDefaultSwitchClause","TypeScript.SyntaxWalker.visitElseClause","TypeScript.SyntaxWalker.visitCatchClause","TypeScript.SyntaxWalker.visitFinallyClause","TypeScript.SyntaxWalker.visitTemplateClause","TypeScript.SyntaxWalker.visitTypeParameter","TypeScript.SyntaxWalker.visitConstraint","TypeScript.SyntaxWalker.visitParameter","TypeScript.SyntaxWalker.visitEnumElement","TypeScript.SyntaxWalker.visitTypeAnnotation","TypeScript.SyntaxWalker.visitExpressionBody","TypeScript.SyntaxWalker.visitComputedPropertyName","TypeScript.SyntaxWalker.visitPropertyAssignment","TypeScript.SyntaxWalker.visitExternalModuleReference","TypeScript.SyntaxWalker.visitModuleNameModuleReference","TypeScript.Parser","TypeScript.Parser.createParseSyntaxTree","TypeScript.Parser.createParseSyntaxTree.setContextFlag","TypeScript.Parser.createParseSyntaxTree.setStrictModeContext","TypeScript.Parser.createParseSyntaxTree.setDisallowInContext","TypeScript.Parser.createParseSyntaxTree.setYieldContext","TypeScript.Parser.createParseSyntaxTree.setGeneratorParameterContext","TypeScript.Parser.createParseSyntaxTree.setAsyncContext","TypeScript.Parser.createParseSyntaxTree.inStrictModeContext","TypeScript.Parser.createParseSyntaxTree.inDisallowInContext","TypeScript.Parser.createParseSyntaxTree.inYieldContext","TypeScript.Parser.createParseSyntaxTree.inGeneratorParameterContext","TypeScript.Parser.createParseSyntaxTree.inAsyncContext","TypeScript.Parser.createParseSyntaxTree.allowInAnd","TypeScript.Parser.createParseSyntaxTree.disallowInAnd","TypeScript.Parser.createParseSyntaxTree.doInsideYieldContext","TypeScript.Parser.createParseSyntaxTree.doOutsideYieldContext","TypeScript.Parser.createParseSyntaxTree.doInsideAsyncContext","TypeScript.Parser.createParseSyntaxTree.doOutsideAsyncContext","TypeScript.Parser.createParseSyntaxTree.parseSyntaxTree","TypeScript.Parser.createParseSyntaxTree.parseSyntaxTreeWorker","TypeScript.Parser.createParseSyntaxTree.getRewindPoint","TypeScript.Parser.createParseSyntaxTree.rewind","TypeScript.Parser.createParseSyntaxTree.releaseRewindPoint","TypeScript.Parser.createParseSyntaxTree.currentNode","TypeScript.Parser.createParseSyntaxTree.currentToken","TypeScript.Parser.createParseSyntaxTree.currentContextualToken","TypeScript.Parser.createParseSyntaxTree.peekToken","TypeScript.Parser.createParseSyntaxTree.skipToken","TypeScript.Parser.createParseSyntaxTree.consumeToken","TypeScript.Parser.createParseSyntaxTree.addSkippedTokensBeforeToken","TypeScript.Parser.createParseSyntaxTree.addSkippedTokenToTriviaArray","TypeScript.Parser.createParseSyntaxTree.addTriviaTo","TypeScript.Parser.createParseSyntaxTree.consumeNode","TypeScript.Parser.createParseSyntaxTree.eatToken","TypeScript.Parser.createParseSyntaxTree.tryEatToken","TypeScript.Parser.createParseSyntaxTree.isIdentifier","TypeScript.Parser.createParseSyntaxTree.eatIdentifierNameToken","TypeScript.Parser.createParseSyntaxTree.eatOptionalIdentifierToken","TypeScript.Parser.createParseSyntaxTree.eatIdentifierToken","TypeScript.Parser.createParseSyntaxTree.canEatAutomaticSemicolon","TypeScript.Parser.createParseSyntaxTree.canEatExplicitOrAutomaticSemicolon","TypeScript.Parser.createParseSyntaxTree.eatExplicitOrAutomaticSemicolon","TypeScript.Parser.createParseSyntaxTree.createEmptyToken","TypeScript.Parser.createParseSyntaxTree.createMissingToken","TypeScript.Parser.createParseSyntaxTree.getExpectedTokenDiagnostic","TypeScript.Parser.createParseSyntaxTree.getBinaryExpressionPrecedence","TypeScript.Parser.createParseSyntaxTree.parseSourceUnit","TypeScript.Parser.createParseSyntaxTree.isDirectivePrologueElement","TypeScript.Parser.createParseSyntaxTree.updateStrictModeState","TypeScript.Parser.createParseSyntaxTree.isModuleElement","TypeScript.Parser.createParseSyntaxTree.tryParseModuleElement","TypeScript.Parser.createParseSyntaxTree.parseImportDeclaration","TypeScript.Parser.createParseSyntaxTree.parseExportAssignment","TypeScript.Parser.createParseSyntaxTree.parseModuleReference","TypeScript.Parser.createParseSyntaxTree.isExternalModuleReference","TypeScript.Parser.createParseSyntaxTree.parseExternalModuleReference","TypeScript.Parser.createParseSyntaxTree.parseModuleNameModuleReference","TypeScript.Parser.createParseSyntaxTree.tryParseTypeArgumentList","TypeScript.Parser.createParseSyntaxTree.canFollowTypeArgumentListInExpression","TypeScript.Parser.createParseSyntaxTree.parseName","TypeScript.Parser.createParseSyntaxTree.eatRightSideOfName","TypeScript.Parser.createParseSyntaxTree.tryParseName","TypeScript.Parser.createParseSyntaxTree.parseEnumDeclaration","TypeScript.Parser.createParseSyntaxTree.isEnumElement","TypeScript.Parser.createParseSyntaxTree.tryParseEnumElementEqualsValueClause","TypeScript.Parser.createParseSyntaxTree.tryParseEnumElement","TypeScript.Parser.createParseSyntaxTree.isModifierKind","TypeScript.Parser.createParseSyntaxTree.isModifier","TypeScript.Parser.createParseSyntaxTree.isAtModifier","TypeScript.Parser.createParseSyntaxTree.modifierCount","TypeScript.Parser.createParseSyntaxTree.parseModifiers","TypeScript.Parser.createParseSyntaxTree.parseHeritageClauses","TypeScript.Parser.createParseSyntaxTree.parseHeritageClausesWorker","TypeScript.Parser.createParseSyntaxTree.tryParseHeritageClauseTypeName","TypeScript.Parser.createParseSyntaxTree.parseClassDeclaration","TypeScript.Parser.createParseSyntaxTree.parseClassElement","TypeScript.Parser.createParseSyntaxTree.parseClassElements","TypeScript.Parser.createParseSyntaxTree.isAccessor","TypeScript.Parser.createParseSyntaxTree.parseAccessor","TypeScript.Parser.createParseSyntaxTree.parseGetAccessor","TypeScript.Parser.createParseSyntaxTree.parseSetAccessor","TypeScript.Parser.createParseSyntaxTree.isClassElement","TypeScript.Parser.createParseSyntaxTree.isMemberVariableOrFunctionDeclaration","TypeScript.Parser.createParseSyntaxTree.tryParseClassElement","TypeScript.Parser.createParseSyntaxTree.isConstructorDeclaration","TypeScript.Parser.createParseSyntaxTree.parseConstructorDeclaration","TypeScript.Parser.createParseSyntaxTree.parseMemberFunctionDeclaration","TypeScript.Parser.createParseSyntaxTree.containsAsync","TypeScript.Parser.createParseSyntaxTree.parseMemberVariableDeclaration","TypeScript.Parser.createParseSyntaxTree.isIndexMemberDeclaration","TypeScript.Parser.createParseSyntaxTree.parseIndexMemberDeclaration","TypeScript.Parser.createParseSyntaxTree.isFunctionDeclaration","TypeScript.Parser.createParseSyntaxTree.parseFunctionDeclaration","TypeScript.Parser.createParseSyntaxTree.parseFunctionDeclarationWorker","TypeScript.Parser.createParseSyntaxTree.parseFunctionBody","TypeScript.Parser.createParseSyntaxTree.parseModuleName","TypeScript.Parser.createParseSyntaxTree.parseModuleDeclaration","TypeScript.Parser.createParseSyntaxTree.parseInterfaceDeclaration","TypeScript.Parser.createParseSyntaxTree.parseObjectType","TypeScript.Parser.createParseSyntaxTree.parseTupleType","TypeScript.Parser.createParseSyntaxTree.isTypeMember","TypeScript.Parser.createParseSyntaxTree.isMethodOrPropertySignature","TypeScript.Parser.createParseSyntaxTree.tryParseTypeMember","TypeScript.Parser.createParseSyntaxTree.parseConstructSignature","TypeScript.Parser.createParseSyntaxTree.parseIndexSignature","TypeScript.Parser.createParseSyntaxTree.parseMethodSignature","TypeScript.Parser.createParseSyntaxTree.parsePropertySignature","TypeScript.Parser.createParseSyntaxTree.isCallSignature","TypeScript.Parser.createParseSyntaxTree.isConstructSignature","TypeScript.Parser.createParseSyntaxTree.isIndexSignature","TypeScript.Parser.createParseSyntaxTree.isHeritageClause","TypeScript.Parser.createParseSyntaxTree.isNotHeritageClauseTypeName","TypeScript.Parser.createParseSyntaxTree.isHeritageClauseTypeName","TypeScript.Parser.createParseSyntaxTree.tryParseHeritageClause","TypeScript.Parser.createParseSyntaxTree.isInterfaceEnumClassModuleImportOrExport","TypeScript.Parser.createParseSyntaxTree.isStatement","TypeScript.Parser.createParseSyntaxTree.parseStatement","TypeScript.Parser.createParseSyntaxTree.tryParseStatement","TypeScript.Parser.createParseSyntaxTree.tryParseStatementWorker","TypeScript.Parser.createParseSyntaxTree.parseDebuggerStatement","TypeScript.Parser.createParseSyntaxTree.parseDoStatement","TypeScript.Parser.createParseSyntaxTree.isLabeledStatement","TypeScript.Parser.createParseSyntaxTree.parseLabeledStatement","TypeScript.Parser.createParseSyntaxTree.parseTryStatement","TypeScript.Parser.createParseSyntaxTree.parseCatchClauseBlock","TypeScript.Parser.createParseSyntaxTree.parseCatchClause","TypeScript.Parser.createParseSyntaxTree.parseFinallyClause","TypeScript.Parser.createParseSyntaxTree.parseWithStatement","TypeScript.Parser.createParseSyntaxTree.parseWhileStatement","TypeScript.Parser.createParseSyntaxTree.isEmptyStatement","TypeScript.Parser.createParseSyntaxTree.parseEmptyStatement","TypeScript.Parser.createParseSyntaxTree.parseForOrForInStatement","TypeScript.Parser.createParseSyntaxTree.tryParseForStatementCondition","TypeScript.Parser.createParseSyntaxTree.tryParseForStatementIncrementor","TypeScript.Parser.createParseSyntaxTree.tryEatBreakOrContinueLabel","TypeScript.Parser.createParseSyntaxTree.parseBreakStatement","TypeScript.Parser.createParseSyntaxTree.parseContinueStatement","TypeScript.Parser.createParseSyntaxTree.parseSwitchExpression","TypeScript.Parser.createParseSyntaxTree.parseSwitchStatement","TypeScript.Parser.createParseSyntaxTree.isSwitchClause","TypeScript.Parser.createParseSyntaxTree.tryParseSwitchClause","TypeScript.Parser.createParseSyntaxTree.parseCaseSwitchClause","TypeScript.Parser.createParseSyntaxTree.parseDefaultSwitchClause","TypeScript.Parser.createParseSyntaxTree.parseThrowStatement","TypeScript.Parser.createParseSyntaxTree.tryParseThrowStatementExpression","TypeScript.Parser.createParseSyntaxTree.parseReturnStatement","TypeScript.Parser.createParseSyntaxTree.tryParseReturnStatementExpression","TypeScript.Parser.createParseSyntaxTree.isExpressionStatement","TypeScript.Parser.createParseSyntaxTree.isAssignmentOrOmittedExpression","TypeScript.Parser.createParseSyntaxTree.tryParseAssignmentOrOmittedExpression","TypeScript.Parser.createParseSyntaxTree.isExpression","TypeScript.Parser.createParseSyntaxTree.parseExpressionStatement","TypeScript.Parser.createParseSyntaxTree.parseIfStatement","TypeScript.Parser.createParseSyntaxTree.parseOptionalElseClause","TypeScript.Parser.createParseSyntaxTree.parseElseClause","TypeScript.Parser.createParseSyntaxTree.isVariableStatement","TypeScript.Parser.createParseSyntaxTree.parseVariableStatement","TypeScript.Parser.createParseSyntaxTree.parseVariableDeclaration","TypeScript.Parser.createParseSyntaxTree.isVariableDeclarator","TypeScript.Parser.createParseSyntaxTree.canReuseVariableDeclaratorNode","TypeScript.Parser.createParseSyntaxTree.tryParseVariableDeclarator","TypeScript.Parser.createParseSyntaxTree.isEqualsValueClause","TypeScript.Parser.createParseSyntaxTree.parseEqualsValueClause","TypeScript.Parser.createParseSyntaxTree.parseExpression","TypeScript.Parser.createParseSyntaxTree.tryParseAssignmentExpressionOrHigher","TypeScript.Parser.createParseSyntaxTree.parseAssignmentExpressionOrHigher","TypeScript.Parser.createParseSyntaxTree.tryParseAssignmentExpressionOrHigherWorker","TypeScript.Parser.createParseSyntaxTree.parsePossibleAwaitExpression","TypeScript.Parser.createParseSyntaxTree.parseAwaitExpression","TypeScript.Parser.createParseSyntaxTree.isYieldExpression","TypeScript.Parser.createParseSyntaxTree.isUnambiguouslyYieldOrAwaitExpression","TypeScript.Parser.createParseSyntaxTree.parseYieldExpression","TypeScript.Parser.createParseSyntaxTree.tryParseAnyArrowFunctionExpression","TypeScript.Parser.createParseSyntaxTree.tryParseUnaryExpressionOrHigher","TypeScript.Parser.createParseSyntaxTree.tryParseBinaryExpressionOrHigher","TypeScript.Parser.createParseSyntaxTree.parseConditionalExpressionRest","TypeScript.Parser.createParseSyntaxTree.parseBinaryExpressionRest","TypeScript.Parser.createParseSyntaxTree.currentOperatorToken","TypeScript.Parser.createParseSyntaxTree.tryParseMemberExpressionOrHigher","TypeScript.Parser.createParseSyntaxTree.parseCallExpressionRest","TypeScript.Parser.createParseSyntaxTree.parseMemberExpressionRest","TypeScript.Parser.createParseSyntaxTree.tryParseLeftHandSideExpressionOrHigher","TypeScript.Parser.createParseSyntaxTree.parseSuperExpression","TypeScript.Parser.createParseSyntaxTree.tryParsePostfixExpressionOrHigher","TypeScript.Parser.createParseSyntaxTree.tryParseGenericArgumentList","TypeScript.Parser.createParseSyntaxTree.tryParseArgumentList","TypeScript.Parser.createParseSyntaxTree.parseArgumentList","TypeScript.Parser.createParseSyntaxTree.tryParseArgumentListExpression","TypeScript.Parser.createParseSyntaxTree.parseElementAccessArgumentExpression","TypeScript.Parser.createParseSyntaxTree.parseElementAccessExpression","TypeScript.Parser.createParseSyntaxTree.tryParsePrimaryExpression","TypeScript.Parser.createParseSyntaxTree.reparseDivideAsRegularExpression","TypeScript.Parser.createParseSyntaxTree.parseTypeOfExpression","TypeScript.Parser.createParseSyntaxTree.parseDeleteExpression","TypeScript.Parser.createParseSyntaxTree.parseVoidExpression","TypeScript.Parser.createParseSyntaxTree.parseFunctionExpression","TypeScript.Parser.createParseSyntaxTree.tryEatFunctionExpressionIdentifier","TypeScript.Parser.createParseSyntaxTree.parseObjectCreationExpression","TypeScript.Parser.createParseSyntaxTree.parseTemplateExpression","TypeScript.Parser.createParseSyntaxTree.parseTemplateClause","TypeScript.Parser.createParseSyntaxTree.parseCastExpression","TypeScript.Parser.createParseSyntaxTree.parseParenthesizedExpression","TypeScript.Parser.createParseSyntaxTree.tryParseParenthesizedArrowFunctionExpression","TypeScript.Parser.createParseSyntaxTree.tryParseParenthesizedArrowFunctionExpressionWorker","TypeScript.Parser.createParseSyntaxTree.parseArrowFunctionBody","TypeScript.Parser.createParseSyntaxTree.isSimpleArrowFunctionExpression","TypeScript.Parser.createParseSyntaxTree.parseSimpleArrowFunctionExpression","TypeScript.Parser.createParseSyntaxTree.isFunctionBlock","TypeScript.Parser.createParseSyntaxTree.isBlockOrArrow","TypeScript.Parser.createParseSyntaxTree.isDefinitelyArrowFunctionExpression","TypeScript.Parser.createParseSyntaxTree.isPossiblyArrowFunctionExpression","TypeScript.Parser.createParseSyntaxTree.parseObjectLiteralExpression","TypeScript.Parser.createParseSyntaxTree.tryParsePropertyAssignment","TypeScript.Parser.createParseSyntaxTree.isPropertyAssignment","TypeScript.Parser.createParseSyntaxTree.isPropertyName","TypeScript.Parser.createParseSyntaxTree.isPropertyNameToken","TypeScript.Parser.createParseSyntaxTree.isLiteralPropertyName","TypeScript.Parser.createParseSyntaxTree.parsePropertyName","TypeScript.Parser.createParseSyntaxTree.parseComputedPropertyName","TypeScript.Parser.createParseSyntaxTree.parseArrayLiteralExpression","TypeScript.Parser.createParseSyntaxTree.parseStatementBlock","TypeScript.Parser.createParseSyntaxTree.parseFunctionBlockOrExpressionBody","TypeScript.Parser.createParseSyntaxTree.parseFunctionBlock","TypeScript.Parser.createParseSyntaxTree.parseFunctionBlockStatements","TypeScript.Parser.createParseSyntaxTree.parseCallSignature","TypeScript.Parser.createParseSyntaxTree.tryParseTypeParameterList","TypeScript.Parser.createParseSyntaxTree.isTypeParameter","TypeScript.Parser.createParseSyntaxTree.tryParseTypeParameter","TypeScript.Parser.createParseSyntaxTree.tryParseConstraint","TypeScript.Parser.createParseSyntaxTree.parseParameterList","TypeScript.Parser.createParseSyntaxTree.parseOptionalTypeAnnotation","TypeScript.Parser.createParseSyntaxTree.parseTypeAnnotationType","TypeScript.Parser.createParseSyntaxTree.parseTypeAnnotation","TypeScript.Parser.createParseSyntaxTree.isType","TypeScript.Parser.createParseSyntaxTree.parseTypeOrExpression","TypeScript.Parser.createParseSyntaxTree.parseType","TypeScript.Parser.createParseSyntaxTree.tryParseType","TypeScript.Parser.createParseSyntaxTree.tryParseTypeWorker","TypeScript.Parser.createParseSyntaxTree.tryParseUnionTypeOrHigher","TypeScript.Parser.createParseSyntaxTree.parsePrimaryType","TypeScript.Parser.createParseSyntaxTree.tryParsePrimaryType","TypeScript.Parser.createParseSyntaxTree.parseTypeQuery","TypeScript.Parser.createParseSyntaxTree.tryParseNonArrayType","TypeScript.Parser.createParseSyntaxTree.parseParenthesizedType","TypeScript.Parser.createParseSyntaxTree.tryParseNameOrGenericType","TypeScript.Parser.createParseSyntaxTree.isFunctionType","TypeScript.Parser.createParseSyntaxTree.parseFunctionType","TypeScript.Parser.createParseSyntaxTree.parseConstructorType","TypeScript.Parser.createParseSyntaxTree.isParameter","TypeScript.Parser.createParseSyntaxTree.isParameterHelper","TypeScript.Parser.createParseSyntaxTree.eatSimpleParameter","TypeScript.Parser.createParseSyntaxTree.tryParseParameter","TypeScript.Parser.createParseSyntaxTree.parseSyntaxList","TypeScript.Parser.createParseSyntaxTree.parseSeparatedSyntaxList","TypeScript.Parser.createParseSyntaxTree.abortParsingListOrMoveToNextToken","TypeScript.Parser.createParseSyntaxTree.tryParseExpectedListItem","TypeScript.Parser.createParseSyntaxTree.listIsTerminated","TypeScript.Parser.createParseSyntaxTree.parseSyntaxListWorker","TypeScript.Parser.createParseSyntaxTree.parseSeparatedSyntaxListWorker","TypeScript.Parser.createParseSyntaxTree.reportUnexpectedTokenDiagnostic","TypeScript.Parser.createParseSyntaxTree.addDiagnostic","TypeScript.Parser.createParseSyntaxTree.isExpectedListTerminator","TypeScript.Parser.createParseSyntaxTree.isExpectedSourceUnit_ModuleElementsTerminator","TypeScript.Parser.createParseSyntaxTree.isExpectedEnumDeclaration_EnumElementsTerminator","TypeScript.Parser.createParseSyntaxTree.isExpectedModuleDeclaration_ModuleElementsTerminator","TypeScript.Parser.createParseSyntaxTree.isExpectedObjectType_TypeMembersTerminator","TypeScript.Parser.createParseSyntaxTree.isExpectedObjectLiteralExpression_PropertyAssignmentsTerminator","TypeScript.Parser.createParseSyntaxTree.isExpectedLiteralExpression_AssignmentExpressionsTerminator","TypeScript.Parser.createParseSyntaxTree.isExpectedTypeArgumentList_TypesTerminator","TypeScript.Parser.createParseSyntaxTree.isExpectedTupleType_TypesTerminator","TypeScript.Parser.createParseSyntaxTree.isExpectedTypeParameterList_TypeParametersTerminator","TypeScript.Parser.createParseSyntaxTree.isExpectedParameterList_ParametersTerminator","TypeScript.Parser.createParseSyntaxTree.isExpectedIndexSignature_ParametersTerminator","TypeScript.Parser.createParseSyntaxTree.isExpectedVariableDeclaration_VariableDeclaratorsTerminator","TypeScript.Parser.createParseSyntaxTree.isExpectedClassOrInterfaceDeclaration_HeritageClausesTerminator","TypeScript.Parser.createParseSyntaxTree.isExpectedHeritageClause_TypeNameListTerminator","TypeScript.Parser.createParseSyntaxTree.isExpectedArgumentList_AssignmentExpressionsTerminator","TypeScript.Parser.createParseSyntaxTree.isExpectedClassDeclaration_ClassElementsTerminator","TypeScript.Parser.createParseSyntaxTree.isExpectedSwitchStatement_SwitchClausesTerminator","TypeScript.Parser.createParseSyntaxTree.isExpectedSwitchClause_StatementsTerminator","TypeScript.Parser.createParseSyntaxTree.isExpectedBlock_StatementsTerminator","TypeScript.Parser.createParseSyntaxTree.isExpectedTryBlock_StatementsTerminator","TypeScript.Parser.createParseSyntaxTree.isExpectedCatchBlock_StatementsTerminator","TypeScript.Parser.createParseSyntaxTree.isExpectedListItem","TypeScript.Parser.createParseSyntaxTree.isExpectedArgumentList_AssignmentExpression","TypeScript.Parser.createParseSyntaxTree.tryParseExpectedListItemWorker","TypeScript.Parser.createParseSyntaxTree.getExpectedListElementType","TypeScript.Parser.BinaryExpressionPrecedence","TypeScript.Parser.ListParsingState","TypeScript.Parser.parse","TypeScript.Parser.parseSource","TypeScript.SyntaxTree","TypeScript.SyntaxTree.constructor","TypeScript.SyntaxTree.sourceUnit","TypeScript.SyntaxTree.isDeclaration","TypeScript.SyntaxTree.computeDiagnostics","TypeScript.SyntaxTree.diagnostics","TypeScript.SyntaxTree.fileName","TypeScript.SyntaxTree.lineMap","TypeScript.SyntaxTree.languageVersion","TypeScript.SyntaxTree.cacheSyntaxTreeInfo","TypeScript.SyntaxTree.getAmdDependency","TypeScript.SyntaxTree.isExternalModule","TypeScript.SyntaxTree.amdDependencies","TypeScript.GrammarCheckerWalker","TypeScript.GrammarCheckerWalker.constructor","TypeScript.GrammarCheckerWalker.pushDiagnostic","TypeScript.GrammarCheckerWalker.pushDiagnosticAt","TypeScript.GrammarCheckerWalker.visitCatchClause","TypeScript.GrammarCheckerWalker.checkForCatchClauseTypeAnnotation","TypeScript.GrammarCheckerWalker.checkParameterListOrder","TypeScript.GrammarCheckerWalker.checkParameterAccessibilityModifiers","TypeScript.GrammarCheckerWalker.checkParameterAccessibilityModifier","TypeScript.GrammarCheckerWalker.checkForTrailingComma","TypeScript.GrammarCheckerWalker.checkForAtLeastOneElement","TypeScript.GrammarCheckerWalker.visitParameterList","TypeScript.GrammarCheckerWalker.visitHeritageClause","TypeScript.GrammarCheckerWalker.visitArgumentList","TypeScript.GrammarCheckerWalker.visitVariableDeclaration","TypeScript.GrammarCheckerWalker.visitTypeArgumentList","TypeScript.GrammarCheckerWalker.visitTupleType","TypeScript.GrammarCheckerWalker.visitTypeParameterList","TypeScript.GrammarCheckerWalker.checkIndexSignatureParameter","TypeScript.GrammarCheckerWalker.visitIndexSignature","TypeScript.GrammarCheckerWalker.checkClassDeclarationHeritageClauses","TypeScript.GrammarCheckerWalker.checkForDisallowedDeclareModifier","TypeScript.GrammarCheckerWalker.checkForRequiredDeclareModifier","TypeScript.GrammarCheckerWalker.visitClassDeclaration","TypeScript.GrammarCheckerWalker.checkInterfaceDeclarationHeritageClauses","TypeScript.GrammarCheckerWalker.checkInterfaceModifiers","TypeScript.GrammarCheckerWalker.visitInterfaceDeclaration","TypeScript.GrammarCheckerWalker.checkClassElementModifiers","TypeScript.GrammarCheckerWalker.visitMemberVariableDeclaration","TypeScript.GrammarCheckerWalker.visitMethodSignature","TypeScript.GrammarCheckerWalker.visitPropertySignature","TypeScript.GrammarCheckerWalker.visitMemberFunctionDeclaration","TypeScript.GrammarCheckerWalker.checkForDisallowedObjectLiteralMethod","TypeScript.GrammarCheckerWalker.checkGetAccessorParameter","TypeScript.GrammarCheckerWalker.visitIndexMemberDeclaration","TypeScript.GrammarCheckerWalker.checkIndexMemberModifiers","TypeScript.GrammarCheckerWalker.checkEcmaScriptVersionIsAtLeast","TypeScript.GrammarCheckerWalker.visitObjectLiteralExpression","TypeScript.GrammarCheckerWalker.visitGetAccessor","TypeScript.GrammarCheckerWalker.checkForSemicolonInsteadOfBlock","TypeScript.GrammarCheckerWalker.checkForDisallowedSetAccessorTypeAnnotation","TypeScript.GrammarCheckerWalker.checkForDisallowedAccessorTypeParameters","TypeScript.GrammarCheckerWalker.checkForAccessorDeclarationInAmbientContext","TypeScript.GrammarCheckerWalker.checkSetAccessorParameter","TypeScript.GrammarCheckerWalker.visitSimpleArrowFunctionExpression","TypeScript.GrammarCheckerWalker.visitPropertyAssignment","TypeScript.GrammarCheckerWalker.visitSetAccessor","TypeScript.GrammarCheckerWalker.checkForDisallowedAsyncModifier","TypeScript.GrammarCheckerWalker.visitElementAccessExpression","TypeScript.GrammarCheckerWalker.checkForMissingArgumentExpression","TypeScript.GrammarCheckerWalker.visitEnumDeclaration","TypeScript.GrammarCheckerWalker.checkEnumElements","TypeScript.GrammarCheckerWalker.visitEnumElement","TypeScript.GrammarCheckerWalker.visitInvocationExpression","TypeScript.GrammarCheckerWalker.checkModuleElementModifiers","TypeScript.GrammarCheckerWalker.checkForDisallowedImportDeclaration","TypeScript.GrammarCheckerWalker.checkForDisallowedDeclareModifierOnImportDeclaration","TypeScript.GrammarCheckerWalker.visitImportDeclaration","TypeScript.GrammarCheckerWalker.visitModuleDeclaration","TypeScript.GrammarCheckerWalker.checkForDisallowedExportAssignment","TypeScript.GrammarCheckerWalker.visitBlock","TypeScript.GrammarCheckerWalker.checkForMalformedBlock","TypeScript.GrammarCheckerWalker.checkForBlockInAmbientContext","TypeScript.GrammarCheckerWalker.checkForStatementInAmbientContxt","TypeScript.GrammarCheckerWalker.visitExportAssignment","TypeScript.GrammarCheckerWalker.visitExpressionBody","TypeScript.GrammarCheckerWalker.visitBreakStatement","TypeScript.GrammarCheckerWalker.visitComputedPropertyName","TypeScript.GrammarCheckerWalker.visitContinueStatement","TypeScript.GrammarCheckerWalker.checkBreakStatementTarget","TypeScript.GrammarCheckerWalker.inSwitchStatement","TypeScript.GrammarCheckerWalker.isIterationStatement","TypeScript.GrammarCheckerWalker.inIterationStatement","TypeScript.GrammarCheckerWalker.getEnclosingLabels","TypeScript.GrammarCheckerWalker.labelIsOnContinuableConstruct","TypeScript.GrammarCheckerWalker.checkContinueStatementTarget","TypeScript.GrammarCheckerWalker.visitDebuggerStatement","TypeScript.GrammarCheckerWalker.visitDoStatement","TypeScript.GrammarCheckerWalker.visitEmptyStatement","TypeScript.GrammarCheckerWalker.visitExpressionStatement","TypeScript.GrammarCheckerWalker.visitForInStatement","TypeScript.GrammarCheckerWalker.checkForInLeftHandSideExpression","TypeScript.GrammarCheckerWalker.checkForInStatementVariableDeclaration","TypeScript.GrammarCheckerWalker.visitForStatement","TypeScript.GrammarCheckerWalker.visitIfStatement","TypeScript.GrammarCheckerWalker.visitLabeledStatement","TypeScript.GrammarCheckerWalker.checkForInvalidLabelIdentifier","TypeScript.GrammarCheckerWalker.visitReturnStatement","TypeScript.GrammarCheckerWalker.checkForReturnStatementNotInFunctionBody","TypeScript.GrammarCheckerWalker.visitSwitchStatement","TypeScript.GrammarCheckerWalker.visitThrowStatement","TypeScript.GrammarCheckerWalker.checkForMissingThrowStatementExpression","TypeScript.GrammarCheckerWalker.visitTryStatement","TypeScript.GrammarCheckerWalker.visitWhileStatement","TypeScript.GrammarCheckerWalker.visitWithStatement","TypeScript.GrammarCheckerWalker.checkForWithInStrictMode","TypeScript.GrammarCheckerWalker.checkForDisallowedModifiers","TypeScript.GrammarCheckerWalker.visitFunctionDeclaration","TypeScript.GrammarCheckerWalker.getAsyncModifier","TypeScript.GrammarCheckerWalker.checkForAsyncGenerator","TypeScript.GrammarCheckerWalker.visitFunctionExpression","TypeScript.GrammarCheckerWalker.visitVariableStatement","TypeScript.GrammarCheckerWalker.checkListSeparators","TypeScript.GrammarCheckerWalker.visitObjectType","TypeScript.GrammarCheckerWalker.visitArrayType","TypeScript.GrammarCheckerWalker.visitFunctionType","TypeScript.GrammarCheckerWalker.visitConstructorType","TypeScript.GrammarCheckerWalker.visitVariableDeclarator","TypeScript.GrammarCheckerWalker.checkForDisallowedTemplatePropertyName","TypeScript.GrammarCheckerWalker.checkForDisallowedComputedPropertyName","TypeScript.GrammarCheckerWalker.checkVariableDeclaratorIdentifier","TypeScript.GrammarCheckerWalker.checkVariableDeclaratorInitializer","TypeScript.GrammarCheckerWalker.visitConstructorDeclaration","TypeScript.GrammarCheckerWalker.checkConstructorModifiers","TypeScript.GrammarCheckerWalker.checkConstructorTypeParameterList","TypeScript.GrammarCheckerWalker.checkConstructorTypeAnnotation","TypeScript.GrammarCheckerWalker.visitBinaryExpression","TypeScript.GrammarCheckerWalker.visitPrefixUnaryExpression","TypeScript.GrammarCheckerWalker.visitPostfixUnaryExpression","TypeScript.GrammarCheckerWalker.visitParameter","TypeScript.GrammarCheckerWalker.checkForDisallowedEvalOrArguments","TypeScript.GrammarCheckerWalker.isPreIncrementOrDecrementExpression","TypeScript.GrammarCheckerWalker.visitDeleteExpression","TypeScript.GrammarCheckerWalker.visitYieldExpression","TypeScript.GrammarCheckerWalker.visitAwaitExpression","TypeScript.GrammarCheckerWalker.checkIllegalAssignment","TypeScript.GrammarCheckerWalker.getEvalOrArguments","TypeScript.GrammarCheckerWalker.isEvalOrArguments","TypeScript.GrammarCheckerWalker.visitConstraint","TypeScript.GrammarCheckerWalker.checkConstraintType","TypeScript.firstSyntaxTreeToken","TypeScript.externalModuleIndicatorSpan","TypeScript.externalModuleIndicatorSpanWorker","TypeScript.implicitImportSpan","TypeScript.implicitImportSpanWorker","TypeScript.topLevelImportOrExportSpan","TypeScript.Unicode","TypeScript.Unicode.constructor","TypeScript.Unicode.lookupInUnicodeMap","TypeScript.Unicode.isIdentifierStart","TypeScript.Unicode.isIdentifierPart","TypeScript.PrettyPrinter","TypeScript.PrettyPrinter.prettyPrint","TypeScript.PrettyPrinter.PrettyPrinterImpl","TypeScript.PrettyPrinter.PrettyPrinterImpl.constructor","TypeScript.PrettyPrinter.PrettyPrinterImpl.newLineCountBetweenModuleElements","TypeScript.PrettyPrinter.PrettyPrinterImpl.newLineCountBetweenClassElements","TypeScript.PrettyPrinter.PrettyPrinterImpl.newLineCountBetweenStatements","TypeScript.PrettyPrinter.PrettyPrinterImpl.newLineCountBetweenSwitchClauses","TypeScript.PrettyPrinter.PrettyPrinterImpl.ensureSpace","TypeScript.PrettyPrinter.PrettyPrinterImpl.ensureNewLine","TypeScript.PrettyPrinter.PrettyPrinterImpl.appendNewLines","TypeScript.PrettyPrinter.PrettyPrinterImpl.getIndentation","TypeScript.PrettyPrinter.PrettyPrinterImpl.appendIndentationIfAfterNewLine","TypeScript.PrettyPrinter.PrettyPrinterImpl.appendText","TypeScript.PrettyPrinter.PrettyPrinterImpl.appendElement","TypeScript.PrettyPrinter.PrettyPrinterImpl.appendNode","TypeScript.PrettyPrinter.PrettyPrinterImpl.appendToken","TypeScript.PrettyPrinter.PrettyPrinterImpl.visitToken","TypeScript.PrettyPrinter.PrettyPrinterImpl.appendSpaceList","TypeScript.PrettyPrinter.PrettyPrinterImpl.appendSeparatorSpaceList","TypeScript.PrettyPrinter.PrettyPrinterImpl.appendSeparatorNewLineList","TypeScript.PrettyPrinter.PrettyPrinterImpl.appendModuleElements","TypeScript.PrettyPrinter.PrettyPrinterImpl.visitSourceUnit","TypeScript.PrettyPrinter.PrettyPrinterImpl.visitExternalModuleReference","TypeScript.PrettyPrinter.PrettyPrinterImpl.visitModuleNameModuleReference","TypeScript.PrettyPrinter.PrettyPrinterImpl.visitImportDeclaration","TypeScript.PrettyPrinter.PrettyPrinterImpl.visitExportAssignment","TypeScript.PrettyPrinter.PrettyPrinterImpl.visitClassDeclaration","TypeScript.PrettyPrinter.PrettyPrinterImpl.visitInterfaceDeclaration","TypeScript.PrettyPrinter.PrettyPrinterImpl.appendObjectType","TypeScript.PrettyPrinter.PrettyPrinterImpl.visitHeritageClause","TypeScript.PrettyPrinter.PrettyPrinterImpl.visitModuleDeclaration","TypeScript.PrettyPrinter.PrettyPrinterImpl.appendBody","TypeScript.PrettyPrinter.PrettyPrinterImpl.visitExpressionBody","TypeScript.PrettyPrinter.PrettyPrinterImpl.visitFunctionDeclaration","TypeScript.PrettyPrinter.PrettyPrinterImpl.visitVariableStatement","TypeScript.PrettyPrinter.PrettyPrinterImpl.visitVariableDeclaration","TypeScript.PrettyPrinter.PrettyPrinterImpl.visitVariableDeclarator","TypeScript.PrettyPrinter.PrettyPrinterImpl.visitEqualsValueClause","TypeScript.PrettyPrinter.PrettyPrinterImpl.visitPrefixUnaryExpression","TypeScript.PrettyPrinter.PrettyPrinterImpl.visitArrayLiteralExpression","TypeScript.PrettyPrinter.PrettyPrinterImpl.visitOmittedExpression","TypeScript.PrettyPrinter.PrettyPrinterImpl.visitParenthesizedExpression","TypeScript.PrettyPrinter.PrettyPrinterImpl.visitSimpleArrowFunctionExpression","TypeScript.PrettyPrinter.PrettyPrinterImpl.visitParenthesizedArrowFunctionExpression","TypeScript.PrettyPrinter.PrettyPrinterImpl.visitQualifiedName","TypeScript.PrettyPrinter.PrettyPrinterImpl.visitTypeQuery","TypeScript.PrettyPrinter.PrettyPrinterImpl.visitTypeArgumentList","TypeScript.PrettyPrinter.PrettyPrinterImpl.visitTupleType","TypeScript.PrettyPrinter.PrettyPrinterImpl.visitParenthesizedType","TypeScript.PrettyPrinter.PrettyPrinterImpl.visitUnionType","TypeScript.PrettyPrinter.PrettyPrinterImpl.visitConstructorType","TypeScript.PrettyPrinter.PrettyPrinterImpl.visitFunctionType","TypeScript.PrettyPrinter.PrettyPrinterImpl.visitObjectType","TypeScript.PrettyPrinter.PrettyPrinterImpl.visitArrayType","TypeScript.PrettyPrinter.PrettyPrinterImpl.visitGenericType","TypeScript.PrettyPrinter.PrettyPrinterImpl.visitTypeAnnotation","TypeScript.PrettyPrinter.PrettyPrinterImpl.appendStatements","TypeScript.PrettyPrinter.PrettyPrinterImpl.visitBlock","TypeScript.PrettyPrinter.PrettyPrinterImpl.visitParameter","TypeScript.PrettyPrinter.PrettyPrinterImpl.visitMemberAccessExpression","TypeScript.PrettyPrinter.PrettyPrinterImpl.visitPostfixUnaryExpression","TypeScript.PrettyPrinter.PrettyPrinterImpl.visitElementAccessExpression","TypeScript.PrettyPrinter.PrettyPrinterImpl.visitInvocationExpression","TypeScript.PrettyPrinter.PrettyPrinterImpl.visitArgumentList","TypeScript.PrettyPrinter.PrettyPrinterImpl.visitBinaryExpression","TypeScript.PrettyPrinter.PrettyPrinterImpl.visitConditionalExpression","TypeScript.PrettyPrinter.PrettyPrinterImpl.visitConstructSignature","TypeScript.PrettyPrinter.PrettyPrinterImpl.visitMethodSignature","TypeScript.PrettyPrinter.PrettyPrinterImpl.visitIndexSignature","TypeScript.PrettyPrinter.PrettyPrinterImpl.visitPropertySignature","TypeScript.PrettyPrinter.PrettyPrinterImpl.visitParameterList","TypeScript.PrettyPrinter.PrettyPrinterImpl.visitCallSignature","TypeScript.PrettyPrinter.PrettyPrinterImpl.visitTypeParameterList","TypeScript.PrettyPrinter.PrettyPrinterImpl.visitTypeParameter","TypeScript.PrettyPrinter.PrettyPrinterImpl.visitConstraint","TypeScript.PrettyPrinter.PrettyPrinterImpl.appendBlockOrStatement","TypeScript.PrettyPrinter.PrettyPrinterImpl.visitIfStatement","TypeScript.PrettyPrinter.PrettyPrinterImpl.visitElseClause","TypeScript.PrettyPrinter.PrettyPrinterImpl.visitExpressionStatement","TypeScript.PrettyPrinter.PrettyPrinterImpl.visitConstructorDeclaration","TypeScript.PrettyPrinter.PrettyPrinterImpl.visitIndexMemberDeclaration","TypeScript.PrettyPrinter.PrettyPrinterImpl.visitMemberFunctionDeclaration","TypeScript.PrettyPrinter.PrettyPrinterImpl.visitGetAccessor","TypeScript.PrettyPrinter.PrettyPrinterImpl.visitSetAccessor","TypeScript.PrettyPrinter.PrettyPrinterImpl.visitMemberVariableDeclaration","TypeScript.PrettyPrinter.PrettyPrinterImpl.visitThrowStatement","TypeScript.PrettyPrinter.PrettyPrinterImpl.visitReturnStatement","TypeScript.PrettyPrinter.PrettyPrinterImpl.visitObjectCreationExpression","TypeScript.PrettyPrinter.PrettyPrinterImpl.visitSwitchStatement","TypeScript.PrettyPrinter.PrettyPrinterImpl.appendSwitchClauseStatements","TypeScript.PrettyPrinter.PrettyPrinterImpl.visitCaseSwitchClause","TypeScript.PrettyPrinter.PrettyPrinterImpl.visitDefaultSwitchClause","TypeScript.PrettyPrinter.PrettyPrinterImpl.visitBreakStatement","TypeScript.PrettyPrinter.PrettyPrinterImpl.visitContinueStatement","TypeScript.PrettyPrinter.PrettyPrinterImpl.visitForStatement","TypeScript.PrettyPrinter.PrettyPrinterImpl.visitForInStatement","TypeScript.PrettyPrinter.PrettyPrinterImpl.visitWhileStatement","TypeScript.PrettyPrinter.PrettyPrinterImpl.visitWithStatement","TypeScript.PrettyPrinter.PrettyPrinterImpl.visitEnumDeclaration","TypeScript.PrettyPrinter.PrettyPrinterImpl.visitEnumElement","TypeScript.PrettyPrinter.PrettyPrinterImpl.visitCastExpression","TypeScript.PrettyPrinter.PrettyPrinterImpl.visitObjectLiteralExpression","TypeScript.PrettyPrinter.PrettyPrinterImpl.visitComputedPropertyName","TypeScript.PrettyPrinter.PrettyPrinterImpl.visitPropertyAssignment","TypeScript.PrettyPrinter.PrettyPrinterImpl.visitFunctionExpression","TypeScript.PrettyPrinter.PrettyPrinterImpl.visitEmptyStatement","TypeScript.PrettyPrinter.PrettyPrinterImpl.visitTryStatement","TypeScript.PrettyPrinter.PrettyPrinterImpl.visitCatchClause","TypeScript.PrettyPrinter.PrettyPrinterImpl.visitFinallyClause","TypeScript.PrettyPrinter.PrettyPrinterImpl.visitLabeledStatement","TypeScript.PrettyPrinter.PrettyPrinterImpl.visitDoStatement","TypeScript.PrettyPrinter.PrettyPrinterImpl.visitTypeOfExpression","TypeScript.PrettyPrinter.PrettyPrinterImpl.visitDeleteExpression","TypeScript.PrettyPrinter.PrettyPrinterImpl.visitVoidExpression","TypeScript.PrettyPrinter.PrettyPrinterImpl.visitYieldExpression","TypeScript.PrettyPrinter.PrettyPrinterImpl.visitAwaitExpression","TypeScript.PrettyPrinter.PrettyPrinterImpl.visitDebuggerStatement","TypeScript.PrettyPrinter.PrettyPrinterImpl.visitTemplateExpression","TypeScript.PrettyPrinter.PrettyPrinterImpl.visitTemplateClause","TypeScript.PrettyPrinter.PrettyPrinterImpl.visitTemplateAccessExpression","TypeScript.SyntaxElementsCollector","TypeScript.SyntaxElementsCollector.constructor","TypeScript.SyntaxElementsCollector.collectElements","TypeScript.SyntaxElementsCollector.collect","TypeScript.withChange","TypeScript.withInsert","TypeScript.withDelete","TypeScript.compareTrees","TypeScript.IncrementalParserTests","TypeScript.IncrementalParserTests.constructor","TypeScript.IncrementalParserTests.runAllTests","TypeScript.IncrementalParserTests.reusedElements","TypeScript.IncrementalParserTests.testIncremental1","TypeScript.IncrementalParserTests.testIncremental2","TypeScript.IncrementalParserTests.testIncrementalRegex1","TypeScript.IncrementalParserTests.testIncrementalRegex2","TypeScript.IncrementalParserTests.testIncrementalComment1","TypeScript.IncrementalParserTests.testIncrementalComment2","TypeScript.IncrementalParserTests.testIncrementalComment3","TypeScript.IncrementalParserTests.testIncrementalComment4","TypeScript.IncrementalParserTests.testParameter1","TypeScript.IncrementalParserTests.testTypeMember1","TypeScript.IncrementalParserTests.testEnumElement1","TypeScript.IncrementalParserTests.testStrictMode1","TypeScript.IncrementalParserTests.testStrictMode2","TypeScript.IncrementalParserTests.testStrictMode3","TypeScript.IncrementalParserTests.testStrictMode4","TypeScript.IncrementalParserTests.testIncremental5","TypeScript.IncrementalParserTests.testIncremental6","TypeScript.IncrementalParserTests.testDelete1","TypeScript.IncrementalParserTests.testIncremental3","TypeScript.IncrementalParserTests.testIncremental4","TypeScript.IncrementalParserTests.testIncremental7","TypeScript.IncrementalParserTests.testIncremental8","TypeScript.IncrementalParserTests.testIncremental9","TypeScript.IncrementalParserTests.testIncremental10","TypeScript.IncrementalParserTests.testIncremental11","TypeScript.IncrementalParserTests.testGenerics1","TypeScript.IncrementalParserTests.testGenerics2","TypeScript.IncrementalParserTests.testGenerics3","TypeScript.IncrementalParserTests.testGenerics4","TypeScript.IncrementalParserTests.testGenerics5","TypeScript.IncrementalParserTests.testGenerics6","TypeScript.IncrementalParserTests.testGenerics7","TypeScript.IncrementalParserTests.testGenerics8","TypeScript.IncrementalParserTests.testParenthesizedExpressionToLambda","TypeScript.IncrementalParserTests.testLambdaToParenthesizedExpression","TypeScript.IncrementalParserTests.testGenericToArithmetic","TypeScript.IncrementalParserTests.testArithmeticToGeneric","TypeScript.IncrementalParserTests.testYield1","TypeScript.IncrementalParserTests.testYield2","TypeScript.IncrementalParserTests.textComplexEdits1","TypeScript.IncrementalParserTests.testSemicolonDelete1","TypeScript.IncrementalParserTests.testGenericError1","TypeScript.IncrementalParserTests.testParameterDeleteAfterComment1","TypeScript.IncrementalParserTests.testInsertModifierBeforeSetter1","TypeScript.IncrementalParserTests.testParameter2","TypeScript.IncrementalParserTests.testInsertAboveComment","TypeScript.IncrementalParserTests.testInsertDeclareAboveModule","TypeScript.IncrementalParserTests.testInsertFunctionAboveLambdaWithComment","TypeScript.IncrementalParserTests.testSlashToRegex1","TypeScript.IncrementalParserTests.testRegex1","TypeScript.IncrementalParserTests.testRegex2","TypeScript.IncrementalParserTests.testKeywordAsIdentifier1","TypeScript.IncrementalParserTests.testSkippedToken1","TypeScript.IncrementalParser","TypeScript.IncrementalParser.createParserSource","TypeScript.IncrementalParser.createParserSource.release","TypeScript.IncrementalParser.createParserSource.extendToAffectedRange","TypeScript.IncrementalParser.createParserSource.absolutePosition","TypeScript.IncrementalParser.createParserSource.tokenDiagnostics","TypeScript.IncrementalParser.createParserSource.getRewindPoint","TypeScript.IncrementalParser.createParserSource.rewind","TypeScript.IncrementalParser.createParserSource.releaseRewindPoint","TypeScript.IncrementalParser.createParserSource.isPinned","TypeScript.IncrementalParser.createParserSource.trySynchronizeCursorToPosition","TypeScript.IncrementalParser.createParserSource.currentNode","TypeScript.IncrementalParser.createParserSource.currentToken","TypeScript.IncrementalParser.createParserSource.currentContextualToken","TypeScript.IncrementalParser.createParserSource.tryGetNodeFromOldSourceUnit","TypeScript.IncrementalParser.createParserSource.canReuseTokenFromOldSourceUnit","TypeScript.IncrementalParser.createParserSource.tryGetTokenFromOldSourceUnit","TypeScript.IncrementalParser.createParserSource.peekToken","TypeScript.IncrementalParser.createParserSource.tryPeekTokenFromOldSourceUnit","TypeScript.IncrementalParser.createParserSource.tryPeekTokenFromOldSourceUnitWorker","TypeScript.IncrementalParser.createParserSource.consumeNodeOrToken","TypeScript.IncrementalParser.createSyntaxCursorPiece","TypeScript.IncrementalParser.returnSyntaxCursor","TypeScript.IncrementalParser.getSyntaxCursor","TypeScript.IncrementalParser.cloneSyntaxCursor","TypeScript.IncrementalParser.createSyntaxCursor","TypeScript.IncrementalParser.createSyntaxCursor.clean","TypeScript.IncrementalParser.createSyntaxCursor.deepCopyFrom","TypeScript.IncrementalParser.createSyntaxCursor.isFinished","TypeScript.IncrementalParser.createSyntaxCursor.currentNodeOrToken","TypeScript.IncrementalParser.createSyntaxCursor.currentNode","TypeScript.IncrementalParser.createSyntaxCursor.isEmptyList","TypeScript.IncrementalParser.createSyntaxCursor.moveToFirstChild","TypeScript.IncrementalParser.createSyntaxCursor.moveToNextSibling","TypeScript.IncrementalParser.createSyntaxCursor.moveToFirstChildIfList","TypeScript.IncrementalParser.createSyntaxCursor.pushElement","TypeScript.IncrementalParser.createSyntaxCursor.moveToFirstToken","TypeScript.IncrementalParser.createSyntaxCursor.currentToken","TypeScript.IncrementalParser.TokenCollectorWalker","TypeScript.IncrementalParser.TokenCollectorWalker.constructor","TypeScript.IncrementalParser.TokenCollectorWalker.visitToken","TypeScript.IncrementalParser.updateTokenPositionsAndMarkElements","TypeScript.IncrementalParser.forceUpdateTokenPositionsForElement","TypeScript.IncrementalParser.forceUpdateTokenPosition","TypeScript.IncrementalParser.forceUpdateTokenPositionForNodeOrToken","TypeScript.IncrementalParser.getTokens","TypeScript.IncrementalParser.parse","TypeScript.assertParent","TypeScript.nodeStructuralEquals","TypeScript.nodeOrTokenStructuralEquals","TypeScript.tokenStructuralEquals","TypeScript.triviaListStructuralEquals","TypeScript.triviaStructuralEquals","TypeScript.listStructuralEquals","TypeScript.elementStructuralEquals","TypeScript.treeStructuralEquals","isDTSFile","PositionValidatingWalker","PositionValidatingWalker.constructor","PositionValidatingWalker.visitToken","tokenToJSON","triviaListToJSON","triviaToJSON","getSyntaxKindEnum","nodeToJSON","elementToJSON","syntaxTreeToJSON","emptySourceUnit","Program","Program.constructor","Program.runAllTests","Program.reusedElements","Program.testIncrementalSpeed","Program.testIncrementalSpeedNoChange","Program.testIncrementalSpeedChange","Program.handleException","Program.runTests","Program.checkResult","Program.runEmitter","Program.runPrettyPrinter","Program.runParser","Program.runIncremental","Program.runFindToken","Program.runTrivia","Program.runScanner","Program.parseArguments","Program.run262"],"mappings":"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GA,GAAGA,OAAOA,CAACA,IAAIA,CAACA,GAAGA,CAACA,GAAGA,GAAGA,CAACA;oBACpCA,GAAGA,GAAGA,IAAIA,CAACA;oBACXA,MAAMA,CAACA,CAACA,CAACA;gBACbA,CAACA;gBAIDA,EAAEA,CAACA,CAACA,GAAGA,IAAIA,OAAOA,GAAGA,KAAKA,QAAQA,CAACA,CAACA,CAACA;oBACjCA,MAAMA,GAAGA,GAAGA,CAACA,MAAMA,CAACA;oBACpBA,GAAGA,CAACA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,MAAMA,EAAEA,CAACA,IAAIA,CAACA,EAAEA,CAACA;wBAC7BA,EAAEA,CAACA,CAACA,OAAOA,GAAGA,CAACA,CAACA,CAACA,KAAKA,QAAQA,CAACA,CAACA,CAACA;4BAC7BA,CAACA,GAAGA,GAAGA,CAACA,CAACA,CAACA,CAACA;4BACXA,CAACA,GAAGA,GAAGA,CAACA,CAACA,EAAEA,KAAKA,CAACA,CAACA;4BAClBA,EAAEA,CAACA,CAACA,CAACA,CAACA,CAACA,CAACA;gCACJA,OAAOA,CAACA,IAAIA,CAACA,KAAKA,CAACA,CAACA,CAACA,GAAGA,CAACA,GAAGA,GAAGA,IAAIA,GAAGA,GAAGA,CAACA,GAAGA,CAACA,CAACA,CAACA;4BACpDA,CAACA;wBACLA,CAACA;oBACLA,CAACA;gBACLA,CAACA;gBAACA,IAAIA,CAACA,CAACA;oBAIJA,GAAGA,CAACA,CAACA,CAACA,IAAIA,KAAKA,CAACA,CAACA,CAACA;wBACdA,EAAEA,CAACA,CAACA,MAAMA,CAACA,SAASA,CAACA,cAAcA,CAACA,IAAIA,CAACA,KAAKA,EAAEA,CAACA,CAACA,CAACA,CAACA,CAACA;4BACjDA,CAACA,GAAGA,GAAGA,CAACA,CAACA,EAAEA,KAAKA,CAACA,CAACA;4BAClBA,EAAEA,CAACA,CAACA,CAACA,CAACA,CAACA,CAACA;gCACJA,OAAOA,CAACA,IAAIA,CAACA,KAAKA,CAACA,CAACA,CAACA,GAAGA,CAACA,GAAGA,GAAGA,IAAIA,GAAGA,GAA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EA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,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,EA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YACjBA,CAACA,CAACA,CAACA;YAEHA,MAAMA,CAACA,MAAMA,CAACA;QAClBA,CAACA;QAED7B,SAASA,QAAQA,CAAIA,QAAiBA;YAClC8B,MAAMA,CAACA,OAAOA,CAACA,OAAOA,CAACA,cAAMA,OAAAA,eAAeA,CAACA,QAAQA,EAAwBA,KAAKA,CAACA,EAAtDA,CAAsDA,CAACA,CAACA;QACzFA,CAACA;QAED9B,SAASA,YAAYA;YACjB+B,EAAEA,CAACA,CAACA,KAAKA,KAAKA,mBAAqBA,CAACA,CAACA,CAACA;gBAClCA,MAAMA,CAACA,IAAIA,CAACA;YAChBA,CAACA;YAIDA,EAAEA,CAACA,CAACA,KAAKA,KAAKA,sBAAuBA,IAAIA,cAAcA,EAAEA,CAACA,CAACA,CAACA;gBACxDA,MAAMA,CAACA,KAAKA,CAACA;YACjBA,CAACA;YAEDA,MAAMA,CAACA,mBAAmBA,EAAEA,GAAGA,KAAKA,GAAGA,gCAAiCA,GAAGA,KAAKA,GAAGA,yBAA2BA,CAACA;QACnHA,CAACA;QAED/B,SAASA,aAAaA,CAACA,CAAaA;YAChCgC,EAAEA,CAACA,CAACA,KAAKA,KAAKA,CAACA,CAACA,CAACA,CAACA;gBACdA,SAASA,EAAEA,CAACA;gBACZA,MAAMA,CAACA,IAAIA,CAACA;YAChBA,CAACA;YACDA,KAAKA,CAACA,cAAWA,CAACA,WAAWA,EAAEA,gBAAaA,CAACA,CAACA,CAACA,CAACA,CAACA;YACjDA,MAAMA,CAACA,KAAKA,CAACA;QACjBA,CAACA;QAEDhC,SAASA,aAAaA,CAACA,CAAaA;YAChCiC,EAAEA,CAACA,CAACA,KAAKA,KAAKA,CAACA,CAACA,CAACA,CAACA;gBACdA,SAASA,EAAEA,CAACA;gBACZA,MAAMA,CAACA,IAAIA,CAACA;YAChBA,CAACA;YACDA,MAAMA,CAACA,KAAKA,CAACA;QACjBA,CAACA;QAEDjC,SAASA,iBAAiBA;YAEtBkC,EAAEA,CAACA,CAACA,KAAKA,KAAKA,uBAAyBA,CAACA,CAACA,CAACA;gBACtCA,MAAMA,CAACA,IAAIA,CAACA;YAChB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IA,CAACA,CAACA;oBACFA,MAAMA,CAACA,kBAAkBA,CAACA,IAAIA,EAAEA,cAAWA,CAACA,kDAAkDA,CAACA,CAACA;gBACpGA,CAACA;YACLA,CAACA;YACDA,IAAIA,CAACA,EAAEA,CAACA,CAACA,SAASA,CAACA,KAAKA,GAAGA,YAAcA,CAACA,CAACA,CAACA;gBACxCA,MAAMA,CAACA,kBAAkBA,CAACA,SAASA,CAACA,IAAIA,EAAEA,cAAWA,CAACA,+CAA+CA,CAACA,CAACA;YAC3GA,CAACA;YACDA,IAAIA,CAACA,EAAEA,CAACA,CAACA,SAASA,CAACA,KAAKA,GAAGA,kBAAkBA,CAACA,CAACA,CAACA;gBAC5CA,MAAMA,CAACA,kBAAkBA,CAACA,SAASA,CAACA,IAAIA,EAAEA,cAAWA,CAACA,kEAAkEA,CAACA,CAACA;YAC9HA,CAACA;YACDA,IAAIA,CAACA,EAAEA,CAACA,CAACA,SAASA,CAACA,KAAKA,GAAGA,oBAAsBA,CAACA,CAACA,CAACA;gBAChDA,MAAMA,CAACA,kBAAkBA,CAACA,SAASA,CAACA,IAAIA,EAAEA,cAAWA,CAACA,wDAAwDA,CAACA,CAACA;YACpHA,CAACA;YACDA,IAAIA,CAACA,EAAEA,CAACA,CAACA,SAASA,CAACA,WAAWA,CAACA,CAACA,CAACA;gBAC7BA,MAAMA,CAACA,kBAAkBA,CAACA,SAASA,CAACA,IAAIA,EAAEA,cAAWA,CAACA,uDAAuDA,CAACA,CAACA;YACnHA,CAACA;YACDA,IAAIA,CAACA,EAAEA,CAACA,CAACA,CAACA,SAASA,CAACA,IAAIA,CAACA,CAACA,CAACA;gBACvBA,MAAMA,CAACA,kBAAkBA,CAACA,SAASA,CAACA,IAAIA,EAAEA,cAAWA,CAACA,wDAAwDA,CAACA,CAACA;YACpHA,CAACA;YACDA,IAAIA,CAACA,EAAEA,CAACA,CAACA,SAASA,CAACA,IAAIA,CAACA,IAAIA,KAAKA,uBAAwBA,IAAIA,SAASA,CAACA,IAAIA,CAACA,IAAIA,KAAKA,uBAAwBA,CAACA,CAACA,CAACA;gBAC5GA,MAAMA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UA,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,KAAKA,GAAGA,YAAcA,CAACA,CAACA,CAACA;oBACnCA,EAAEA,CAACA,CAACA,CAACA,KAAKA,CAACA,cAAcA,GAAGA,CAACA,CAACA,CAACA,CAACA,CAACA;wBAC7BA,MAAMA,CAACA,kBAAkBA,CAACA,SAASA,CAACA,IAAIA,EAAEA,cAAWA,CAACA,iDAAiDA,CAACA,CAACA;oBAC7GA,CAACA;oBAEDA,EAAEA,CAACA,CAACA,SAASA,CAACA,KAAKA,GAAGA,oBAAsBA,CAACA,CAACA,CAACA;wBAC3CA,MAAMA,CAACA,kBAAkBA,CAACA,SAASA,CAACA,IAAIA,EAAEA,cAAWA,CAACA,mCAAmCA,CAACA,CAACA;oBAC/FA,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,KAAKA,GAAGA,oBAAsBA,IAAIA,SAASA,CAACA,WAAWA,CAACA,CAACA,CAACA;oBACzEA,qBAAqBA,GAAGA,IAAIA,CAACA;oBAE7BA,EAAEA,CAACA,CAACA,SAASA,CAACA,KAAKA,GAAGA,oBAAsBA,IAAIA,SAASA,CAACA,WAAWA,CAACA,CAACA,CAACA;wBACpEA,MAAMA,CAACA,kBAAkBA,CAACA,SAASA,CAACA,IAAIA,EAAEA,cAAWA,CAACA,mDAAmDA,CAACA,CAACA;oBAC/GA,CAACA;gBACLA,CAACA;gBACDA,IAAIA,CAACA,CAACA;oBACFA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UA,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,KAAKA,GAAGA,YAAcA,CAACA,CAACA,CAACA;wBACnCA,MAAMA,CAACA,kBAAkBA,CAACA,QAAQA,CAACA,IAAIA,EAAEA,cAAWA,CAACA,yCAAyCA,CAACA,CAACA;oBACpGA,CAACA;oBACDA,IAAIA,CAACA,EAAEA,CAACA,CAACA,SAASA,CAACA,KAAKA,GAAGA,kBAAkBA,CAACA,CAACA,CAACA;wBAC5CA,MAAMA,CAACA,kBAAkBA,CAACA,QAAQA,CAACA,IAAIA,EAAEA,cAAWA,CAACA,oEAAoEA,CAACA,CAACA;oBAC/HA,CAACA;oBACDA,IAAIA,CAACA,EAAEA,CAACA,CAACA,SAASA,CAACA,KAAKA,GAAGA,oBAAsBA,CAACA,CAACA,CAACA;wBAChDA,MAAMA,CAACA,kBAAkBA,CAACA,QAAQA,CAACA,IAAIA,EAAEA,cAAWA,CAACA,gDAAgDA,CAACA,CAACA;oBAC3GA,CAACA;oBACDA,IAAIA,CAACA,EAAEA,CAACA,CAACA,SAASA,CAACA,WAAWA,CAACA,CAACA,CAACA;wBAC7BA,MAAMA,CAACA,kBAAkBA,CAACA,QAAQA,CAACA,IAAIA,EAAEA,cAAWA,CAACA,mDAAmDA,CAACA,CAACA;oBAC9GA,CAACA;gBACLA,CAACA;YACLA,CAACA;QACLA,CAACA;QAED9D,SAASA,eAAeA,CAACA,IAAgBA;YACrC+D,MAAMA,CAACA,gBAAgBA,IAAIA,+CAA+CA,CAACA,IAAIA,CAACA,CAACA;QACrFA,CAACA;QAED/D,SAASA,+CAA+CA,CAACA,IAAgBA;YACrEgE,GAAGA,CAACA,CAACA,GAAGA,CAACA,CA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AAEA,CAACA,CAACA,YAAYA,CAACA,CAACA,CAACA;gBACfA,EAAEA,CAACA,CAACA,+BAA+BA,CAACA,YAAYA,CAACA,CAACA,CAACA,CAACA;oBAChDA,MAAMA,CAACA,IAAIA,CAACA;gBAChBA,CAACA;gBAEDA,EAAEA,CAACA,CAACA,CAACA,YAAYA,CAACA,MAAMA,CAACA,CAACA,CAACA;oBACvBA,MAAMA,CAACA,iBAAiBA,CAACA,YAAYA,CAACA,GAAGA,EAAEA,YAAYA,CAACA,GAAGA,GAAGA,YAAYA,CAACA,GAAGA,EAAEA,cAAWA,CAACA,yCAAyCA,CAACA,CAACA;gBAC3IA,CAACA;gBAEDA,IAAIA,IAAIA,GAAGA,YAAYA,CAACA,CAACA,CAACA,CAACA;gBAC3BA,EAAEA,CAACA,CAACA,eAAeA,GAAGA,WAAgBA,CAACA,CAACA,CAACA;oBACrCA,EAAEA,CAACA,CAACA,KAAKA,CAACA,IAAIA,CAACA,CAACA,CAACA,CAACA;wBACdA,MAAMA,CAACA,wBAAwBA,CAACA,IAAIA,EAAEA,cAAWA,CAACA,0EAA0EA,CAACA,CAACA;oBAClIA,CAACA;oBACDA,IAAIA,CAACA,EAAEA,CAACA,CAACA,OAAOA,CAACA,IAAIA,CAACA,CAACA,CAACA,CAACA;wBACrBA,MAAMA,CAACA,wBAAwBA,CAACA,IAAIA,EAAEA,cAAWA,CAACA,4EAA4EA,CAACA,CAACA;oBACpIA,CAACA;gBACLA,CAACA;YACLA,CAACA;QACLA,CAACA;QAED1E,SAASA,sBAAsBA,CAACA,IAAuBA;YACnD2E,MAAMA,CAACA,yBAAyBA,CAACA,IAAIA,CAACA,YAAYA,CAACA,IAC/CA,qCAAqCA,CAACA,IAAIA,CAACA,CAACA;QACpDA,CAACA;QAED3E,SAASA,qCAAqCA,CAACA,IAAuBA;YAClE4E,EAAEA,CAACA,CAACA,CAACA,4BAA4BA,CAACA,IAAIA,CAACA,MAAMA,CAACA,CAACA,CAACA,CAACA;gBAC7CA,EAAEA,CAACA,CAACA,KAAKA,CAACA,IAAIA,CAACA,CAACA,CAACA,CAACA;oBACdA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AIA,OAAOA,GAAGA,CAACA,CAACA;QAEhBA,SAASA,KAAKA,CAACA,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,SAASA,QAAQA,CAACA,CAASA;YACvBE,EAAEA,CAACA,CAACA,CAACA,KAAKA,SAASA,CAACA,CAACA,CAACA;gBAClBA,EAAEA,CAACA,CAACA,SAASA,CAACA,CAACA,CAACA;oBACZA,SAASA,GAAGA,KAAKA,CAACA;gBACtBA,CAACA;gBACDA,MAAMA,IAAIA,CAACA,CAACA;YAChBA,CAACA;QACLA,CAACA;QAEDF,SAASA,YAAYA,CAACA,CAASA;YAC3BG,EAAEA,CAACA,CAACA,CAACA,IAAIA,CAACA,CAACA,MAAMA,CAACA,CAACA,CAACA;gBAChBA,KAAKA,CAACA,CAACA,CAACA,CAACA;gBACTA,IAAIA,aAAaA,GAAGA,oBAAiBA,CAACA,CAACA,CAACA,CAACA;gBACzCA,EAAEA,CAACA,CAACA,aAAaA,CAACA,MAAMA,GAAGA,CAACA,CAACA,CAACA,CAACA;oBAC3BA,SAASA,GAAGA,SAASA,GAAGA,aAAaA,CAACA,MAAMA,GAAGA,CAACA,CAACA;oBACjDA,OAAOA,GAAGA,MAAMA,CAACA,MAAMA,GAAGA,CAACA,CAACA,MAAMA,GAAGA,aAAaA,CAACA,aAAaA,CAACA,MAAMA,GAAGA,CAACA,CAACA,CAACA;gBACjFA,CAACA;YACLA,CAACA;QACLA,CAACA;QAEDH,SAASA,SAASA;YACdI,EAAEA,CAACA,CAACA,CAACA,SAASA,CAACA,CAACA,CAACA;gBACbA,MAAMA,IAAIA,OAAOA,CAACA;gBAClBA,SAASA,EAAEA,CA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iBA,EAAEA,EAAEA,CAACA;wBACxFA,cAAcA,EAAEA,CAACA;oBACrBA,CAACA;oBACDA,sBAAsBA,CAACA,YAAYA,CAACA,CAACA;oBACrCA,aAAaA,CAACA,kBAAkBA,GAAGA,MAAMA,CAACA,OAAOA,EAAEA,CAACA;gBACxDA,CAACA;YACLA,CAACA,CAACA,CAACA;YACHA,SAASA,CAACA,SAASA,CAACA,CAACA;QACzBA,CAACA;QAEDH,SAASA,8BAA8BA,CAACA,wBAAkDA;YACtFI,EAAEA,CAACA,CAACA,wBAAwBA,CAACA,aAAaA,KAAKA,kBAA8BA,CAACA,CAACA,CAACA;gBAE5EA,EAAEA,CAACA,CAACA,wBAAwBA,IAAIA,wBAAwBA,CAACA,oBAAoBA,CAACA,CAACA,CAACA;oBAC5EA,kCAAkCA,CAACA,wBAAwBA,CAACA,oBAAoBA,CAACA,CAACA;gBACtFA,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,EACxC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CAACA,GAAGA,CAACA,CAACA;YACXA,SAASA,EAAEA,CAACA;QAChBA,CAACA;QAEDxB,SAASA,iCAAiCA,CAACA,IAAiBA;YAExDyB,EAAEA,CAACA,CAACA,IAAIA,CAACA,MAAMA,KAAKA,iBAAiBA,CAACA,CAACA,CAACA;gBAEpCA,EAAEA,CAACA,CAACA,IAAIA,CAACA,KAAKA,GAAGA,cAAgBA,CAACA,CAACA,CAACA;oBAChCA,KAAKA,CAACA,SAASA,CAACA,CAACA;gBACrBA,CAACA;gBAEDA,EAAEA,CAACA,CAACA,IAAIA,CAACA,IAAIA,KAAKA,8BAA+BA,CAACA,CAACA,CAACA;oBAChDA,KAAKA,CAACA,UAAUA,CAACA,CAACA;gBACtBA,CAACA;YACLA,CAACA;QACLA,CAACA;QAEDzB,SAASA,+BAA+BA,CAACA,IAAiBA;YACtD0B,EAAEA,CAACA,CAACA,IAAIA,CAACA,KAAKA,GAAGA,gBAAiBA,CAACA,CAACA,CAACA;gBACjCA,KAAKA,CAACA,UAAUA,CAACA,CAACA;YACtBA,CAACA;YACDA,IAAIA,CAACA,EAAEA,CAACA,CAACA,IAAIA,CAACA,KAAKA,GAAGA,kBAAmBA,CAACA,CAACA,CAACA;gBACxCA,KAAKA,CAACA,YAAYA,CAACA,CAACA;YACxBA,CAACA;YAEDA,EAAEA,CAACA,CAACA,IAAIA,CAACA,KAAKA,GAAGA,gBAAgBA,CAACA,CAACA,CAACA;gBAChCA,KAAKA,CAACA,SAASA,CAACA,CAACA;YACrBA,CAACA;QACLA,CAACA;QAED1B,SAASA,qBAAqBA,CAACA,IAAuBA;YAClD2B,IAAIA,YAAYA,GAAGA;gBACfA,WAAWA,EAAEA,IAAIA;gBACjBA,SAASA,EAAEA,MAAMA,CAACA,UAAUA,EAAEA;gBAC9BA,MAAMA,EAAEA,MAAMA,CAACA,SAASA,EAAEA;gBAC1BA,UAAUA,EAAEA,QAAQA,CAACA,oBAAoBA,CAACA,IAAIA,CAACA;aAClDA,CAACA;YACFA,wBAAwBA,CAACA,IAAIA,CAACA,YAAYA,CAACA,CAACA;YAC5CA,EAAEA,CAACA,CAACA,YAAYA,CAACA,UAAUA,CAACA,CAACA,CAACA;gBAC1BA,sBAAsBA,CAACA,IAAIA,CAACA,CAACA;YACjCA,CAACA;QACLA,CAACA;QAED3B,SAASA,sBAAsBA,CAACA,IAAuBA;YAGnD4B,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,IAAIA,CAACA,UAAUA,CAACA,CAACA,CAACA;gBAClBA,+CAA+CA,CAACA,IAAIA,CAACA,UAAUA,EAAEA,kCAAkCA,CAACA,CAACA;gBACrGA,KAAKA,CAACA,GAAGA,CAACA,CAACA;YACfA,CAACA;YACDA,IAAIA,CAACA,CAACA;gBACFA,KAAKA,CAACA,UAAUA,CAACA,CAACA;gBAClBA,eAAeA,CAACA,iBAAiBA,EAAEA,IAAIA,CAACA,kBAAkBA,CAACA,CAACA;gBAC5DA,KAAKA,CAACA,IAAIA,CAACA,CAACA;YAChBA,CAACA;YACDA,MAAMA,CAACA,SAASA,EAAEA,CAACA;YAEnBA,SAASA,kCAAkCA,CAACA,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;QAED5B,SAASA,qBAAqBA,CAACA,IAAuBA;YAClD8B,EAAEA,CAACA,CAACA,QAAQA,CAACA,oBAAoBA,CAACA,IAAIA,CAACA,CAACA,CAACA,CAACA;gBACtCA,iBAAiBA,CAACA,IAAIA,CAACA,CAACA;gBACxBA,iCAAiCA,CAACA,IAAIA,CAACA,CAACA;gBACxCA,KAAKA,CAACA,SAASA,CAACA,CAACA;gBACjBA,eAAeA,CAACA,iBAAiBA,EAAEA,IAAIA,CAACA,IAAIA,CAACA,CAACA;gBAC9CA,OAAOA,IAAIA,CAACA,IAAIA,CAACA,IAAIA,KAAKA,qBAAsBA,EAAEA,CAACA;oBAC/CA,IAAIA,GAAsBA,IAAIA,CAACA,IAAIA,CAACA;oBACpCA,KAAKA,CAACA,GAAGA,CAACA,CAACA;oBACXA,eAAeA,CAACA,iBAAiBA,EAAEA,IAAIA,CAACA,IAAIA,CAACA,CAACA;gBAClDA,CAACA;gBACDA,IAAIA,wBAAwBA,GAAGA,oBAAoBA,CAACA;gBACpDA,oBAAoBA,GAAGA,IAAIA,CAACA;gBAC5BA,KAAKA,CAACA,IAAIA,CAACA,CAACA;gBACZA,SAASA,EAAEA,CAACA;gBACZA,cAAcA,EAAEA,CAACA;gBACjBA,SAASA,CAASA,IAAIA,CAACA,IAAKA,CAACA,UAAUA,CAACA,CAACA;gBACzCA,cAAcA,EAAEA,CAACA;gBACjBA,KAAKA,CAACA,GAAGA,CAACA,CAACA;gBACXA,SAASA,EAAEA,CAACA;gBACZA,oBAAoBA,GAAGA,wBAAwBA,CAACA;YACpDA,CAACA;QACLA,CAACA;QAED9B,SAASA,wBAAwBA,CAACA,IAA0BA;YACxD+B,EAAEA,CAACA,CAACA,QAAQA,CAACA,oBAAoBA,CAACA,IAAIA,CAACA,CAACA,CAACA,CAACA;gBACtCA,iBAAiBA,CAACA,IAAIA,CAACA,CAACA;gBACxBA,iCAAiCA,CAACA,IAAIA,CAACA,CAACA;gBACxCA,KAAKA,CAACA,OAAOA,CAACA,CAACA;gBACfA,eAAeA,CAACA,iBAAiBA,EAAEA,IAAIA,CAACA,IAAIA,CAACA,CAACA;gBAC9CA,KAAKA,CAACA,KAAKA,CAACA,CAACA;gBACbA,+CAA+CA,CAACA,IAAIA,CAACA,IAAIA,EAAEA,sCAAsCA,CAACA,CAACA;gBACnGA,KAAKA,CAACA,GAAGA,CAACA,CAACA;gBACXA,SAASA,EAAEA,CAACA;YAChBA,CAACA;YACDA,SAASA,sCAAsCA,CAACA,wBAAkDA;gBAC9FC,MAAMA,CAACA;oBACHA,iBAAiBA,EAAEA,cAAWA,CAACA,oDAAoDA;oBACnFA,SAASA,EAAEA,IAAIA,CAACA,IAAIA;oBACpBA,QAAQA,EAAEA,IAAIA,CAACA,IAAIA;iBACtBA,CAACA;YACNA,CAACA;QACLD,CAACA;QAED/B,SAASA,mBAAmBA,CAACA,IAAqBA;YAC9CiC,EAAEA,CAACA,CAACA,QAAQA,CAACA,oBAAoBA,CAACA,IAAIA,CAACA,CAACA,CAACA,CAACA;gBACtCA,iBAAiBA,CAACA,IAAIA,CAACA,CAACA;gBACxBA,iCAAiCA,CAACA,IAAIA,CAACA,CAACA;gBACxCA,EAAEA,CAACA,CAACA,UAAOA,CAACA,IAAIA,CAACA,CAACA,CAACA,CAACA;oBAChBA,KAAKA,CAACA,QAAQA,CAACA,CAAAA;gBACnBA,CAACA;gBACDA,KAAKA,CAACA,OAAOA,CAACA,CAACA;gBACfA,eAAeA,CAACA,iBAAiBA,EAAEA,IAAIA,CAACA,IAAIA,CAACA,CAACA;gBAC9CA,KAAKA,CAACA,IAAIA,CAACA,CAACA;gBACZA,SAASA,EAAEA,CAACA;gBACZA,cAAcA,EAAEA,CAACA;gBACjBA,SAASA,CAACA,IAAIA,CAACA,OAAOA,CAACA,CAACA;gBACxBA,cAAcA,EAAEA,CAACA;gBACjBA,KAAKA,CAACA,GAAGA,CAACA,CAACA;gBACXA,SAASA,EAAEA,CAACA;YAChBA,CAACA;QACLA,CAACA;QAEDjC,SAASA,yBAAyBA,CAACA,IAAgBA;YAC/CkC,iBAAiBA,CAACA,IAAIA,CAACA,CAACA;YACxBA,eAAeA,CAACA,iBAAiBA,EAAEA,IAAIA,CAACA,IAAIA,CAACA,CAACA;YAC9CA,IAAIA,eAAeA,GAAGA,QAAQA,CAACA,kBAAkBA,CAACA,IAAIA,CAACA,CAACA;YACxDA,EAAEA,CAACA,CAACA,eAAeA,KAAKA,SAASA,CAACA,CAACA,CAACA;gBAChCA,KAAKA,CAACA,KAAKA,CAACA,CAACA;gBACbA,KAAKA,C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CA;gBACjBA,KAAKA,CAACA,GAAGA,CAACA,CAACA;gBACXA,SAASA,EAAEA,CAACA;gBACZA,oBAAoBA,GAAGA,wBAAwBA,CAACA;YACpDA,CAACA;QACLA,CAACA;QAEDzC,SAASA,wBAAwBA,CAACA,IAA0BA;YACxD2C,EAAEA,CAACA,CAACA,QAAQA,CAACA,oBAAoBA,CAACA,IAAIA,CAACA,CAACA,CAACA,CAACA;gBACtCA,iBAAiBA,CAACA,IAAIA,CAACA,CAACA;gBACxBA,iCAAiCA,CAACA,IAAIA,CAACA,CAACA;gBACxCA,KAAKA,CAACA,YAAYA,CAACA,CAACA;gBACpBA,eAAeA,CAACA,iBAAiBA,EAAEA,IAAIA,CAACA,IAAIA,CAACA,CAACA;gBAC9CA,IAAIA,wBAAwBA,GAAGA,oBAAoBA,CAACA;gBACpDA,oBAAoBA,GAAGA,IAAIA,CAACA;gBAC5BA,kBAAkBA,CAACA,IAAIA,CAACA,cAAcA,CAACA,CAACA;gBACxCA,kBAAkBA,CAACA,IAAIA,CAACA,SAASA,EAAuBA,KAAKA,CAACA,CAACA;gBAC/DA,KAAKA,CAACA,IAAIA,CAACA,CAACA;gBACZA,SAASA,EAAEA,CAACA;gBACZA,cAAcA,EAAEA,CAACA;gBACjBA,SAASA,CAACA,IAAIA,CAACA,OAAOA,CAACA,CAACA;gBACxBA,cAAcA,EAAEA,CAACA;gBACjBA,KAAKA,CAACA,GAAGA,CAACA,CAACA;gBACXA,SAASA,EAAEA,CAACA;gBACZA,oBAAoBA,GAAGA,wBAAwBA,CAACA;YACpDA,CAACA;QACLA,CAACA;QAED3C,SAASA,uBAAuBA,CAACA,IAAyBA;YACtD4C,iBAAiBA,CAACA,IAAIA,CAACA,CAACA;YACxBA,+BAA+BA,CAACA,IAAIA,CAACA,CAACA;YACtCA,uBAAuBA,CAAsBA,IAAIA,CAACA,CAACA;YACnDA,KAAKA,CAACA,GAAGA,CAACA,CAACA;YACXA,SAASA,EAAEA,CAACA;QAChBA,CAACA;QAGD5C,SAASA,uBAAuBA,CAACA,IAAyBA;YAGtD6C,EAAEA,CAACA,CAACA,IAAIA,CAA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A,EAAEA,CAACA,CAACA,sBAAsBA,CAACA,CAACA,CAACA;gBACzBA,iBAAiBA,CAACA,IAAIA,CAACA,CAACA;gBACxBA,iCAAiCA,CAACA,IAAIA,CAACA,CAACA;gBACxCA,EAAEA,CAACA,CAACA,QAAKA,CAACA,IAAIA,CAACA,CAACA,CAACA,CAACA;oBACdA,KAAKA,CAACA,MAAMA,CAACA,CAACA;gBAClBA,CAACA;gBACDA,IAAIA,CAACA,EAAEA,CAACA,CAACA,UAAOA,CAACA,IAAIA,CAACA,CAACA,CAACA,CAACA;oBACrBA,KAAKA,CAACA,QAAQA,CAACA,CAACA;gBACpBA,CAACA;gBACDA,IAAIA,CAACA,CAACA;oBACFA,KAAKA,CAACA,MAAMA,CAACA,CAACA;gBAClBA,CAACA;gBACDA,aAAaA,CAACA,IAAIA,CAACA,YAAYA,EAAEA,uBAAuBA,CAACA,CAACA;gBAC1DA,KAAKA,CAACA,GAAGA,CAACA,CAACA;gBACXA,SAASA,EAAEA,CAACA;YAChBA,CAACA;QACLA,CAACA;QAEDhD,SAASA,uBAAuBA,CAACA,IAAyBA;YACtDiD,IAAIA,SAASA,GAAGA,0BAA0BA,CAAmBA,IAAIA,CAACA,MAAMA,EAAEA,IAAIA,CAACA,CAACA;YAChFA,EAAEA,CAACA,CAACA,IAAIA,KAAKA,SAASA,CAACA,aAAaA,CAACA,CAACA,CAACA;gBACnCA,iBAAiBA,CAACA,SAASA,CAACA,WAAWA,CAACA,CAACA;gBACzCA,iBAAiBA,CAACA,SAASA,CAACA,WAAWA,CAACA,CAACA;gBACzCA,+BAA+BA,CAACA,IAAIA,CAACA,CAACA;gBACtCA,eAAeA,CAACA,iBAAiBA,EAAEA,IAAIA,CAACA,IAAIA,CAACA,CAACA;gBAC9CA,EAAEA,CAACA,CAACA,CAACA,CAACA,IAAIA,CAACA,KAAKA,GAAGA,gBAAiBA,CAACA,CAACA,CAACA,CAACA;oBACpCA,IAAIA,0BAA0BA,GAAwBA,IAAIA,CAACA;oBAC3DA,IAAIA,IAAIA,GAAGA,6BAA6BA,CAACA,IAAIA,CAACA,CAACA;oBAC/C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BAC5CA,CAACA;gBACDA,IAAIA,CAACA,EAAEA,CAACA,CAACA,IAAIA,CAACA,IAAIA,KAAKA,gBAAiBA,CAACA,CAACA,CAACA;oBACvCA,+BAA+BA,CAACA,IAAIA,CAACA,CAACA;gBAC1CA,CAACA;gBACDA,EAAEA,CAACA,CAACA,IAAIA,CAACA,IAAIA,KAAKA,6BAA8BA,CAACA,CAACA,CAACA;oBAC/CA,KAAKA,CAACA,WAAWA,CAACA,CAACA;oBACnBA,eAAeA,CAACA,iBAAiBA,EAAEA,IAAIA,CAACA,IAAIA,CAACA,CAACA;gBAClDA,CAACA;gBACDA,IAAIA,CAACA,EAAEA,CAACA,CAACA,IAAIA,CAACA,IAAIA,KAAKA,qBAAsBA,CAACA,CAACA,CAACA;oBAC5CA,KAAKA,CAACA,aAAaA,CAACA,CAACA;gBACzBA,CAACA;gBACDA,IAAIA,CAACA,CAACA;oBACFA,eAAeA,CAACA,iBAAiBA,EAAEA,IAAIA,CAACA,IAAIA,CAACA,CAACA;oBAC9CA,EAAEA,CAACA,CAACA,IAAIA,CAACA,KAAKA,GAAGA,oBAAsBA,CAACA,CAACA,CAACA;wBACtCA,KAAKA,CAACA,GAAGA,CAACA,CAACA;oBACfA,CAACA;gBACLA,CAACA;gBACDA,wBAAwBA,CAACA,IAAIA,CAACA,CAACA;YACnCA,CAACA;QACLA,CAACA;QAEDpD,SAASA,yCAAyCA,CAACA,IAA0BA;YACzEqD,iBAAiBA,CAACA,IAAIA,CAACA,CAACA;YACxBA,wBAAwBA,CAACA,IAAIA,CAACA,CAACA;QACnCA,CAACA;QAEDrD,SAASA,wBAAwBA,CAACA,IAA0BA;YAExDsD,EAAEA,CAACA,CAACA,IAAIA,CAACA,IAAIA,KAAKA,4BAA6BA,IAAIA,IAAIA,CAACA,IAAIA,KAAKA,yBAA0BA,CAACA,CAACA,CAACA;gBAC1FA,KAAKA,CAACA,MAAMA,CAACA,CAACA;YAClBA,CAACA;YACDA,kBAAkBA,CAACA,IAAIA,CAACA,cAAcA,CAACA,CAACA;YACxCA,EAAEA,CAACA,CAACA,IAAIA,CAACA,IAAIA,KAAKA,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AACA,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;YAEDrB,SAASA,YAAYA,CAACA,MAAcA,EAAEA,IAAUA;gBAC5CsB,EAAEA,CAACA,CAACA,IAAIA,CAACA,CAACA,CAACA;oBACPA,KAAKA,CAACA,MAAMA,CAACA,CAACA;oBACdA,IAAIA,CAACA,IAAIA,CAACA,CAACA;gBACfA,CAACA;YACLA,CAACA;YAEDtB,SAASA,0BAA0BA,CAACA,QAAyBA,EAAEA,WAAoBA;gBAC/EuB,EAAEA,CAACA,CAACA,QAAQA,CAACA,gBAAgBA,CAACA,CAACA,CAACA;oBAC5BA,KAAKA,CAACA,GAAGA,CAACA,CAACA;oBACXA,EAAEA,CAACA,CAACA,WAAWA,CAACA,CAACA,CAACA;wBACdA,SAASA,EAAEA,CAACA;oBAChBA,CAACA;gBACLA,CAACA;YACLA,CAACA;YAEDvB,SAASA,aAAaA,CAACA,KAAsBA,EAAEA,oBAA6BA,EAAEA,KAAcA;gBACxFwB,EAAEA,CAACA,CAACA,CAACA,CAACA,KAAKA,IAAIA,CAACA,CAACA,CAACA,CAACA,CAACA;oBAChBA,KAAKA,GAAGA,KAAKA,CAACA,MAAMA,CAACA;gBACzBA,CAACA;gBACDA,EAAEA,CAACA,CAACA,KAAKA,CAACA,CAACA,CAACA;oBACRA,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,KAAKA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;wBAC7BA,EAAEA,CAACA,CAACA,CAACA,CAACA,CAACA,CAACA;4BACJA,KAAKA,CAACA,IAAIA,CAACA,CAACA;wBAChBA,CAACA;wBACDA,IAAIA,CAACA,KAAKA,CAACA,CAACA,CAACA,CAACA,CAACA;oBACnBA,CAACA;oBAEDA,EAAEA,CAACA,CAACA,oBAAoBA,CAACA,CAACA,CAACA;wBACvBA,0BAA0BA,CAACA,KAAKA,EAAkBA,KAAKA,CAACA,CAACA;oBAC7DA,CAACA;gBACLA,CAACA;YACLA,CAACA;YAEDxB,SAASA,iBAAiBA,CAACA,KAAsBA,EAAEA,oBAA6BA;gBAC5EyB,EAAEA,CAACA,CAACA,KAAKA,CAACA,CAACA,CAACA;oBACRA,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,KAAKA,CAACA,MAAMA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;wBACpCA,EAAEA,CAACA,CAACA,CAACA,CAACA,CAACA,CAACA;4BACJA,KAAKA,CAACA,GAAGA,CAACA,CAACA;wBACfA,CAACA;wBACDA,SAASA,EAAEA,CAACA;wBACZA,IAAIA,CAACA,KAAKA,CAACA,CAACA,CAACA,CAACA,CAACA;oBACnBA,CAACA;oBAEDA,EAAEA,CAACA,CAACA,oBAAoBA,CAACA,CAACA,CAACA;wBACvBA,0BAA0BA,CAACA,KAAKA,EAAkBA,IAAIA,CAACA,CAACA;oBAC5DA,CAACA;gBACLA,CAACA;YACLA,CAACA;YAEDzB,SAASA,SAASA,CAACA,KAAaA;gBAC5B0B,mBAAmBA,CAACA,KAAKA,EAAiBA,CAACA,CAACA,CAACA;YACjDA,CAACA;YAED1B,SAASA,mBAAmBA,CAACA,KAAaA,EAAEA,UAAkBA;gBAC1D2B,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,UAAUA,EAAEA,CAACA,GAAGA,KAAKA,CAACA,MAAMA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;oBAC7CA,SAASA,EAAEA,CAACA;oBACZA,IAAIA,CAACA,KAAKA,CAACA,CAACA,CAACA,CAACA,CAACA;gBACnBA,CAACA;YACLA,CAACA;YAED3B,SAASA,WAAWA,CAACA,IAAuBA;gBACxC4B,IAAIA,IAAIA,GAAGA,cAAcA,EAAEA,CAACA;gBAE5BA,EAAEA,CAACA,CAACA,eAAeA,CAACA,SAASA,IAAIA,CAACA,IAAIA,CAACA,I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A;gBACpDA,EAAEA,CAACA,CAACA,MAAMA,CAACA,CAACA,CAACA;oBACTA,KAAKA,CAACA,MAAMA,CAACA,CAACA;oBACdA,KAAKA,CAACA,GAAGA,CAACA,CAACA;gBACfA,CAACA;gBACDA,eAAeA,CAACA,iBAAiBA,EAAEA,IAAIA,CAACA,CAACA;YAC7CA,CAACA;YAEDrC,SAASA,cAAcA,CAACA,IAAgBA;gBACpCsC,EAAEA,CAACA,CAACA,CAACA,yBAAyBA,CAACA,IAAIA,CAACA,CAACA,CAACA,CAACA;oBACnCA,wBAAwBA,CAACA,IAAIA,CAACA,CAACA;gBACnCA,CAACA;gBACDA,IAAIA,CAACA,CAACA;oBACFA,eAAeA,CAACA,iBAAiBA,EAAEA,IAAIA,CAACA,CAACA;gBAC7CA,CAACA;YACLA,CAACA;YAEDtC,SAASA,QAAQA,CAACA,IAAUA;gBACxBuC,EAAEA,CAACA,CAACA,QAAQA,CAACA,iBAAiBA,CAACA,IAAIA,CAACA,GAAGA,mBAA0BA,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;YAEDvC,SAASA,SAASA,CAACA,IAAUA;gBACzBwC,IAAIA,KAAKA,GAAGA,QAAQA,CAACA,iBAAiBA,CAACA,IAAIA,CAACA,CAACA;gBAC7CA,EAAEA,CAACA,CAACA,KAAKA,GAAGA,sBAA4BA,CAACA,CAACA,CAACA;oBACvCA,KAAKA,CAACA,kBAAkBA,CAACA,CAACA;gBAC9BA,CAACA;gBACDA,IAAIA,CAACA,EAAEA,CAACA,CAACA,KAAKA,GAAGA,oBAA0BA,CAACA,CAACA,CAACA;oBAC1CA,KAAKA,CAACA,QAAQA,CAACA,CAACA;gBACpBA,CAACA;gBACDA,IAAIA,CAACA,CAACA;oBACFA,KAAKA,CAACA,OAAOA,CAACA,CAACA;gBACnBA,CAACA;YACLA,CAACA;YAEDxC,SAASA,gBAAgBA,CAACA,IAAkBA;gBACxCyC,EAAEA,CAACA,CAACA,IAAIA,CAACA,KAAKA,GAAGA,mBAAmBA,CAACA,CAACA,CAACA;oBACnCA,KAAKA,CAACA,GAAGA,CAACA,CAACA;oBACXA,cAAcA,EAAEA,CAACA;oBACjBA,iBAAiBA,CAACA,IAAIA,CAACA,QAAQA,EAA2BA,IAAIA,CAACA,CAACA;oBAChEA,cAAcA,EAAEA,CAACA;oBACjBA,SAASA,EAAEA,CAACA;oBACZA,KAAKA,CAACA,GAAGA,CAACA,CAACA;gBACfA,CAACA;gBACDA,IAAIA,CAACA,CAACA;oBACFA,KAAKA,CAACA,GAAGA,CAACA,CAACA;oBACXA,aAAaA,CAACA,IAAIA,CAACA,QAAQA,EAA2BA,IAAIA,CAACA,CAACA;oBAC5DA,KAAKA,CAACA,GAAGA,CAACA,CAACA;gBACfA,CAACA;YACLA,CAACA;YAEDzC,SAASA,iBAAiBA,CAACA,IAAmBA;gBAC1C0C,EAAEA,CAACA,CAACA,CAACA,IAAIA,CAACA,UAAUA,CAACA,MAAMA,CAACA,CAACA,CAACA;oBAC1BA,KAAKA,CAACA,IAAIA,CAACA,CAACA;gBAChBA,CAACA;gBACDA,IAAIA,CAACA,EAAEA,CAACA,CAACA,IAAIA,CAACA,KAAKA,GAAGA,mBAAmBA,CAACA,CAACA,CAACA;oBACxCA,KAAKA,CAACA,GAAGA,CAACA,CAACA;oBACXA,cAAcA,EAAEA,CAACA;oBACjBA,iBAAiBA,CAACA,IAAIA,CAACA,UAAUA,EAA2BA,eAAeA,CAACA,MAAMA,IAAIA,WAAgBA,CAACA,CAACA;oBACxGA,cAAcA,EAAEA,CAACA;oBACjBA,SAASA,EAAEA,CAACA;oBACZA,KAAKA,CAACA,GAAGA,CAACA,CAACA;gBACfA,CAACA;gBACDA,IAAIA,CAACA,CAACA;oBACFA,KAAKA,CAACA,IAAIA,CAACA,CAACA;oBACZA,aAAaA,CAACA,IAAIA,CAACA,UAAUA,EAA2BA,eAAeA,CAACA,MAAMA,IAAIA,WAAgBA,CAACA,CAACA;oBACpGA,KAAKA,CAACA,IAAIA,CAACA,CAACA;gBACh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CAACA,CAACA,CAACA;oBAC7CA,KAAKA,CAACA,QAAQA,CAACA,CAACA;oBAChBA,SAASA,GAAGA,IAAIA,CAACA;gBACrBA,CAACA;gBACDA,IAAIA,CAACA,CAACA;oBACFA,IAAIA,CAACA,IAAIA,CAACA,IAAIA,CAACA,CAACA;oBAChBA,SAASA,GAAGA,IAAIA,CAACA,IAAIA,CAACA,IAAIA,KAAKA,wBAAyBA,IAAqBA,IAAIA,CAACA,IAAKA,CAACA,IAAIA,CAACA,IAAIA,KAAKA,qBAAuBA,CAACA;gBAClIA,CAACA;gBACDA,EAAEA,CAACA,CAACA,SAASA,CAACA,CAACA,CAACA;oBACZA,KAAKA,CAACA,QAAQA,CAACA,CAACA;oBAChBA,QAAQA,CAACA,IAAIA,CAACA,IAAIA,CAACA,CAACA;oBACpBA,EAAEA,CAACA,CAACA,IAAIA,CAACA,SAASA,CAACA,MAAMA,CAACA,CAACA,CAACA;wBACxBA,KAAKA,CAACA,IAAIA,CAACA,CAACA;wBACZA,aAAaA,CAACA,IAAIA,CAACA,SAASA,EAA2BA,KAAKA,CAACA,CAACA;oBAClEA,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,EAA2BA,KAAKA,CAACA,CAACA;oBAC9DA,KAAKA,CAACA,GAAGA,CAACA,CAACA;gBACfA,CAACA;YACLA,CAACA;YAEDjD,SAASA,iBAAiBA,CAACA,IAAmBA;gBAC1CkD,KAAKA,CAACA,MAAMA,CAACA,CAACA;gBACdA,IAAIA,CAACA,IAAIA,CAACA,IAAIA,CAACA,CAACA;gBAChBA,EAAEA,CAACA,CAACA,IAAIA,CAACA,SAASA,CAACA,CAACA,CAACA;oBACjBA,KAAKA,CAACA,GAAGA,CAACA,CAACA;oBACXA,aAAaA,CAACA,IAAIA,CAACA,SAASA,EAA2BA,KAAKA,CAACA,CAACA;oBAC9DA,KAAKA,CAACA,GAAGA,CAACA,CAACA;gBACfA,CAACA;YACLA,CAACA;YAEDlD,SAASA,4BAA4BA,CAACA,IAA8BA;gBAChEmD,QAAKA,CAACA,MAAMA,CAACA,eAAeA,CAACA,MAAMA,IAAIA,WAAgBA,EAAEA,mDAAmDA,CAACA,CAACA;gBAC9GA,IAAIA,CAACA,IAAIA,CAACA,GAAGA,CAACA,CAACA;gBACfA,KAAKA,CAACA,GAAGA,CAACA,CAACA;gBACXA,IAAIA,CAACA,IAAIA,CAACA,QAAQA,CAACA,CAACA;YACxBA,CAACA;YAEDnD,SAASA,mBAAmBA,CAACA,IAAqBA;gBAC9CoD,EAAEA,CAACA,CAACA,IAAIA,CAACA,UAAUA,CAACA,IAAIA,KAAKA,uBAAwBA,CAACA,CAACA,CAACA;oBACpDA,IAAIA,OAAOA,GAAmBA,IAAIA,CAACA,UAAWA,CAACA,OAAOA,CAACA;oBAIvDA,OAAOA,OAAOA,CAACA,IAAIA,IAAIA,uBAAwBA,EAAEA,CAACA;wBAC9CA,OAAOA,GAAmBA,OAAQA,CAACA,OAAOA,CAACA;oBAC/CA,CAACA;oBAUDA,EAAEA,CAACA,CAACA,OAAOA,CAACA,IAAIA,KAAKA,wBAAyBA,IAAIA,OAAOA,CAACA,IAAIA,KAAKA,yBAA0BA,IAAIA,OAAOA,CAACA,IAAIA,KAAKA,uBAAwBA,IACtIA,CAACA,CAACA,OAAOA,CAACA,IAAIA,KAAKA,wBAAyBA,IAAIA,IAAIA,CAACA,MAAMA,CAACA,IAAIA,KAAKA,uBAAwBA,CAACA,IAC9FA,CAACA,CAACA,OAAOA,CAACA,IAAIA,KAAKA,4BAA6BA,IAAIA,IAAIA,CAACA,MAAMA,CAACA,IAAIA,KAAKA,wBAAyBA,CAACA,CAACA,CAACA,CAACA;wBACtGA,IAAIA,CAACA,OAAOA,CAACA,CAACA;wBACdA,MAAMA,CAACA;oBACXA,CAACA;gBACLA,CAACA;gBACDA,KAAKA,CAACA,GAAGA,CAACA,CAACA;gBACXA,IAAIA,CAACA,IAAIA,CAACA,UAAUA,CAACA,CAACA;gBACtBA,KAAKA,CAACA,GAAGA,CAACA,CAACA;YACfA,CAACA;YAEDpD,SAASA,mBAAmBA,CAACA,IAAqBA;gBAC9CqD,EAAEA,CAACA,CAACA,IAAIA,CAACA,IAAIA,KAAKA,wBAAyBA,CAACA,CAACA,CAACA;oBAC1CA,KAAKA,CAACA,gBAAaA,CAACA,IAAIA,CAACA,QAAQA,CAACA,CAACA,CAACA;gBACxCA,CAACA;gBAaDA,EAAEA,CAACA,CAACA,IAAIA,CAACA,QAAQA,IAAIA,mBAAqBA,CAACA,CAACA,CAACA;oBACzCA,KAAKA,CAACA,GAAGA,CAACA,CAACA;gBACfA,CAACA;gBACDA,IAAIA,CAACA,EAAEA,CAACA,CAACA,IAAIA,CAACA,IAAIA,KAAKA,wBAAyBA,IAAIA,IAAIA,CAACA,OAAOA,CAACA,IAAIA,KAAKA,wBAAyBA,CAACA,CAACA,CAACA;oBAClGA,IAAIA,OAAOA,GAAoBA,IAAIA,CAACA,OAAOA,CAACA;oBAC5CA,EAAEA,CAACA,CAACA,IAAIA,CAACA,QAAQA,KAAKA,kBAAoBA,IAAIA,CAACA,OAAOA,CAACA,QAAQA,KAAKA,kBAAoBA,IAAIA,OAAOA,CAACA,QAAQA,KAAKA,sBAAwBA,CAACA,CAACA,CAACA,CAACA;wBACzIA,KAAKA,CAACA,GAAGA,CAACA,CAACA;oBACfA,CAACA;oBACDA,IAAIA,CAACA,EAAEA,CAACA,CAACA,IAAIA,CAACA,QAAQA,KAAKA,mBAAqBA,IAAIA,CAACA,OAAOA,CAACA,QAAQA,KAAKA,mBAAqBA,IAAIA,OAAOA,CAACA,QAAQA,KAAKA,wBAA0BA,CAACA,CAACA,CAACA,CAACA;wBAClJA,KAAKA,CAACA,GAAGA,CAACA,CAACA;oBACfA,CAACA;gBACLA,CAACA;gBACDA,IAAIA,CAACA,IAAIA,CAACA,OAAOA,CAACA,CAACA;gBACnBA,EAAEA,CAACA,CAACA,IAAIA,CAACA,IAAIA,KAAKA,yBAA0BA,CAACA,CAACA,CAACA;oBAC3CA,KAAKA,CAACA,gBAAaA,CAACA,IAAIA,CAACA,QAAQA,CAACA,CAACA,CAACA;gBACxCA,CAACA;YACLA,CAACA;YAEDrD,SAASA,oBAAoBA,CAACA,IAAsBA;gBAChDsD,IAAIA,CAACA,IAAIA,CAACA,IAAIA,CAACA,CAACA;gBAChBA,EAAEA,CAACA,CAACA,IAAIA,CAACA,QAAQA,KAAKA,mBAAqBA,CAACA;oBAACA,KAAKA,CAACA,GAAGA,CAACA,CAACA;gBACxDA,KAAKA,CAACA,gBAAaA,CAACA,IAAIA,CAACA,QAAQA,CAACA,CAACA,CAACA;gBACpCA,KAAKA,CAACA,GAAGA,CAACA,CAACA;gBACXA,IAAIA,CAACA,IAAIA,CAACA,KAAKA,CAACA,CAACA;YACrBA,CAACA;YAEDtD,SAASA,yBAAyBA,CAACA,IAA2BA;gBAC1DuD,IAAIA,CAACA,IAAIA,CAACA,SAASA,CAACA,CAACA;gBACrBA,KAAKA,CAACA,KAAKA,CAACA,CAACA;gBACbA,IAAIA,CAACA,IAAIA,CAACA,QAAQA,CAACA,CAACA;gBACpBA,KAAKA,CAACA,KAAKA,CAACA,CAACA;gBACbA,IAAIA,CAACA,IAAIA,CAACA,SAASA,CAACA,CAACA;YACzBA,CAACA;YAEDvD,SAASA,SAASA,CAACA,IAAWA;gBAC1BwD,SAASA,CAACA,uBAAyBA,EAAEA,IAAIA,CAACA,GAAGA,CAACA,CAACA;gBAC/CA,cAAcA,EAAEA,CAACA;gBACjBA,cAAcA,CAACA,IAAIA,CAACA,MAAMA,CAACA,CAACA;gBAC5BA,EAAEA,CAACA,CAACA,IAAIA,CAACA,IAAIA,KAAKA,qBAAsBA,CAACA,CAACA,CAACA;oBACvCA,QAAKA,CAACA,MAAMA,CAACA,IAAIA,CAACA,MAAMA,CAACA,IAAIA,KAAKA,2BAA4BA,CAACA,CAACA;oBAChEA,iCAAiCA,CAACA,IAAIA,CAACA,MAAMA,CAACA,CAACA;gBACnDA,CAACA;gBACDA,SAASA,CAACA,IAAIA,CAACA,UAAUA,CAACA,CAACA;gBAC3BA,cAAcA,EAAEA,CAACA;gBACjBA,SAASA,EAAEA,CAACA;gBACZA,SAASA,CAACA,wBAA0BA,EAAEA,IAAIA,CAACA,UAAUA,CAACA,GAAGA,CAACA,CAACA;gBAC3DA,YAAYA,EAAEA,CAACA;YACnBA,CAACA;YAEDxD,SAASA,qBAAqBA,CAACA,IAAUA;gBACrCyD,EAAEA,CAACA,CAACA,IAAIA,CAACA,IAAIA,KAAKA,eAAgBA,CAACA,CAACA,CAACA;oBACjCA,KAAKA,CAACA,GAAGA,CAACA,CAACA;oBACXA,IAAIA,CAAQA,IAAIA,CAACA,CAACA;gBACtBA,CAACA;gBACDA,IAAIA,CAACA,CAACA;oBACFA,cAAcA,EAAEA,CAACA;oBACjBA,SAASA,EAAEA,CAACA;oBACZA,IAAIA,CAACA,IAAIA,CAACA,CAACA;oBACXA,cAAcA,EAAEA,CAACA;gBACrBA,CAACA;YACLA,CAACA;YAEDzD,SAASA,uBAAuBA,CAACA,IAAyBA;gBACtD0D,IAAIA,iBAAiBA,GAAGA,IAAIA,CAACA,UAAUA,CAACA,IAAIA,KAAKA,uBAAwBA,CAACA;gBAC1EA,mBAAmBA,CAACA,IAAIA,CAACA,CAACA;gBAC1BA,EAAEA,CAACA,CAACA,iBAAiBA,CAACA;oBAACA,KAAKA,CAACA,GAAGA,CAACA,CAACA;gBAClCA,IAAIA,CAACA,IAAIA,CAACA,UAAUA,CAACA,CAACA;gBACtBA,EAAEA,CAACA,CAACA,iBAAiBA,CAACA;oBAACA,KAAKA,CAACA,GAAGA,CAACA,CAACA;gBAClCA,KAAKA,CAACA,GAAGA,CAACA,CAACA;gBACXA,oBAAoBA,CAACA,IAAIA,CAACA,CAACA;YAC/BA,CAACA;YAED1D,SAASA,eAAeA,CAACA,IAAiBA;gBACtC2D,mBAAmBA,CAACA,IAAIA,CAACA,CAACA;gBAC1BA,IAAIA,MAAMA,GAAGA,SAASA,CAACA,kBAAoBA,EAAEA,IAAIA,CAACA,GAAGA,CAACA,CAACA;gBACvDA,KAAKA,CAACA,GAAGA,CAACA,CAACA;gBACXA,MAAMA,GAAGA,SAASA,CAACA,uBAAyBA,EAAEA,MAAMA,CAACA,CAACA;gBACtDA,IAAIA,CAACA,IAAIA,CAACA,UAAUA,CAACA,CAACA;gBACtBA,SAASA,CAACA,wBAA0BA,EAAEA,IAAIA,CAACA,UAAUA,CAACA,GAAGA,CAACA,CAACA;gBAC3DA,qBAAqBA,CAACA,IAAIA,CAACA,aAAaA,CAACA,CAACA;gBAC1CA,EAAEA,CAACA,CAACA,IAAIA,CAACA,aAAaA,CAACA,CAACA,CAACA;oBACrBA,SAASA,EAAEA,CAACA;oBACZA,SAASA,CAACA,oBAAsBA,EAAEA,IAAIA,CAACA,aAAaA,CAACA,GAAGA,CAACA,CAACA;oBAC1DA,EAAEA,CAACA,CAACA,IAAIA,CAACA,aAAaA,CAACA,IAAIA,KAAKA,qBAAsBA,CAACA,CAACA,CAACA;wBACrDA,KAAKA,CAACA,GAAGA,CAACA,CAACA;wBACXA,IAAIA,CAACA,IAAIA,CAACA,aAAaA,CAACA,CAACA;oBAC7BA,CAACA;oBACDA,IAAIA,CAACA,CAACA;wBACFA,qBAAqBA,CAACA,IAAIA,CAACA,aAAaA,CAACA,CAACA;oBAC9CA,CAACA;gBACLA,CAACA;gBACDA,oBAAoBA,CAACA,IAAIA,CAACA,CAACA;YAC/BA,CAACA;YAED3D,SAASA,eAAeA,CAACA,IAAiBA;gBACtC4D,KAAKA,CAACA,IAAIA,CAACA,CAACA;gBACZA,qBAAqBA,CAACA,IAAIA,CAACA,SAASA,CAACA,CAACA;gBACtCA,EAAEA,CAACA,CAACA,IAAIA,CAACA,SAASA,CAACA,IAAIA,KAAKA,eAAgBA,CAACA,CAACA,CAACA;oBAC3CA,KAAKA,CAACA,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;YAED5D,SAASA,kBAAkBA,CAACA,IAAoBA;gBAC5C6D,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;YAED7D,SAASA,gBAAgBA,CAACA,IAAkBA;gBACxC8D,IAAIA,MAAMA,GAAGA,SAASA,CAACA,mBAAqBA,EAAEA,IAAIA,CAACA,GAAGA,CAACA,CAACA;gBACxDA,KAAKA,CAACA,GAAGA,CAACA,CAACA;gBACXA,MAAMA,GAAGA,SAASA,CAACA,uBAAyBA,EAAEA,MAAMA,CAACA,CAACA;gBACtDA,EAAEA,CAACA,CAACA,IAAIA,CAACA,YAAYA,CAACA,CAACA,CAACA;oBACpBA,EAAEA,CAACA,CAACA,IAAIA,CAACA,YAAYA,CAACA,CAACA,CAACA,IAAIA,QAAKA,CAACA,IAAIA,CAACA,YAAYA,CAACA,CAACA,CAACA,CAACA,CAACA,CAACA,CAACA;wBACtDA,SAASA,CAACA,oBAAqBA,EAAEA,MAAMA,CAACA,CAACA;oBAC7CA,CAACA;oBACDA,IAAIA,CAACA,EAAEA,CAACA,CAACA,IAAIA,CAACA,YAAYA,CAACA,CAACA,CAACA,IAAIA,UAAOA,CAACA,IAAIA,CAACA,YAAYA,CAACA,CAACA,CAACA,CAACA,CAACA,CAACA,CAACA;wBAC7DA,SAASA,CAACA,qBAAuBA,EAAEA,MAAMA,CAACA,CAACA;oBAC/CA,CAACA;oBACDA,IAAIA,CAACA,CAACA;wBACFA,SAASA,CAACA,mBAAqBA,EAAEA,MAAMA,CAACA,CAACA;oBAC7CA,CAACA;oBACDA,KAAKA,CAACA,GAAGA,CAACA,CAACA;oBACXA,aAAaA,CAACA,IAAIA,CAACA,YAAYA,EAA2BA,KAAKA,CAACA,CAACA;gBACrEA,CAACA;gBACDA,EAAEA,CAACA,CAACA,IAAIA,CAACA,WAAWA,CAACA,CAACA,CAACA;oBACnBA,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;YAED9D,SAASA,kBAAkBA,CAACA,IAAoBA;gBAC5C+D,IAAIA,MAAMA,GAAGA,SAASA,CAACA,mBAAqBA,EAAEA,IAAIA,CAACA,GAAGA,CAACA,CAACA;gBACxDA,KAAKA,CAACA,GAAGA,CAACA,CAACA;gBACXA,MAAMA,GAAGA,SAASA,CAACA,uBAAyBA,EAAEA,MAAMA,CAACA,CAACA;gBACtDA,EAAEA,CAACA,CAACA,IAAIA,CAACA,YAAYA,CAACA,CAACA,CAACA;oBACpBA,EAAEA,CAACA,CAACA,IAAIA,CAACA,YAAYA,CAACA,MAAMA,IAAIA,CAACA,CAACA,CAACA,CAACA;wBAChCA,IAAIA,IAAIA,GAAGA,IAAIA,CAACA,YAAYA,CAACA,CAACA,CAACA,CAACA;wBAChCA,EAAEA,CAACA,CAACA,QAAKA,CAACA,IAAIA,CAACA,CAACA,CAACA,CAACA;4BACdA,SAASA,CAACA,oBAAqBA,EAAEA,MAAMA,CAACA,CAACA;wBAC7CA,CAACA;wBACDA,IAAIA,CAACA,CAACA;4BACFA,SAASA,CAACA,mBAAqBA,EAAEA,MAAMA,CAACA,CAACA;wBAC7CA,CAACA;wBACDA,KAAKA,CAACA,GAAGA,CAACA,CAACA;wBACXA,IAAIA,CAACA,IAAIA,CAACA,CAACA;oBACfA,CAACA;gBACLA,CAACA;gBACDA,IAAIA,CAACA,CAACA;oBACFA,IAAIA,CAACA,IAAIA,CAACA,QAAQA,CAACA,CAACA;gBACxBA,CAACA;gBACDA,KAAKA,CAACA,MAAMA,CAACA,CAACA;gBACdA,IAAIA,CAACA,IAAIA,CAACA,UAAUA,CAACA,CAACA;gBACtBA,SAASA,CAACA,wBAA0BA,EAAEA,IAAIA,CAACA,UAAUA,CAACA,GAAGA,CAACA,CAACA;gBAC3DA,q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AAcA,EAAEA,CAACA;oBACjBA,SAASA,CAACA,IAAIA,CAACA,UAAUA,CAACA,CAACA;oBAC3BA,cAAcA,EAAEA,CAACA;gBACrBA,CAACA;YACLA,CAACA;YAEDrE,SAASA,kBAAkBA,CAACA,IAAoBA;gBAC5CsE,KAAKA,CAACA,QAAQA,CAACA,CAACA;gBAChBA,IAAIA,CAACA,IAAIA,CAACA,UAAUA,CAACA,CAACA;gBACtBA,KAAKA,CAACA,GAAGA,CAACA,CAACA;YACfA,CAACA;YAEDtE,SAASA,gBAAgBA,CAACA,IAAkBA;gBACxCuE,KAAKA,CAACA,MAAMA,CAACA,CAACA;gBACdA,IAAIA,CAACA,IAAIA,CAACA,QAAQA,CAACA,CAACA;gBACpBA,IAAIA,CAACA,IAAIA,CAACA,UAAUA,CAACA,CAACA;gBACtBA,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;YAEDvE,SAASA,cAAcA,CAACA,IAAgBA;gBACpCwE,SAASA,EAAEA,CAACA;gBACZA,IAAIA,MAAMA,GAAGA,SAASA,CAACA,qBAAuBA,EAAEA,IAAIA,CAACA,GAAGA,CAACA,CAACA;gBAC1DA,KAAKA,CAACA,GAAGA,CAACA,CAACA;gBACXA,SAASA,CAACA,uBAAyBA,EAAEA,MAAMA,CAACA,CAACA;gBAC7CA,IAAIA,CAACA,IAAIA,CAACA,QAAQA,CAACA,CAACA;gBACpBA,SAASA,CAACA,wBAA0BA,EAAEA,IAAIA,CAACA,QAAQA,CAACA,GAAGA,CAACA,CAACA;gBACzDA,KAAKA,CAACA,GAAGA,CAACA,CAACA;gBACXA,SAASA,CAACA,IAAIA,CAACA,CAACA;YACpBA,CAACA;YAEDxE,SAASA,qBAAqBA,CAACA,IAAUA;gBACrCyE,SAASA,CAACA,wBAA0BA,EAAEA,IAAIA,CAACA,GAAGA,CAACA,CAACA;gBAChDA,KAAKA,CAACA,GAAGA,CAACA,CAACA;YACfA,CAACA;YAEDzE,SAASA,qBAAqBA,CAACA,IAAsBA;gBACjD0E,IAAIA,CAACA,IAAIA,CAACA,KAAKA,CAACA,CAACA;gBACjBA,KAAKA,CAACA,IAAIA,CAACA,CAACA;gBACZA,IAAIA,CAACA,IAAIA,CAACA,SAASA,CAACA,CAACA;YACzBA,CAACA;YAED1E,SAASA,mBAAmBA,CAACA,IAAUA;gBACnC2E,GAAGA,CAACA;oBACAA,IAAIA,GAAGA,IAAIA,CAACA,MAAMA,CAACA;gBACvBA,CAACA,QAAQA,IAAIA,IAAIA,IAAIA,CAACA,IAAIA,KAAKA,2BAA4BA,EAAEA;gBAC7DA,MAAMA,CAAoBA,IAAIA,CAACA;YACnCA,CAACA;YAED3E,SAASA,oBAAoBA,CAACA,IAAiBA;gBAC3C4E,SAASA,CAACA,IAAIA,CAACA,IAAIA,CAACA,CAACA;gBACrBA,EAAEA,CAACA,CAACA,IAAIA,CAACA,KAAKA,GAAGA,cAAgBA,CAACA,CAACA,CAACA;oBAChCA,IAAIA,SAASA,GAAGA,mBAAmBA,CAACA,IAAIA,CAACA,CAACA;oBAC1CA,KAAKA,CAACA,SAASA,GAAGA,QAAQA,CAACA,uBAAuBA,CAACA,SAASA,CAACA,GAAGA,SAASA,CAACA,CAACA;oBAC3EA,KAAKA,CAACA,GAAGA,CAACA,CAACA;gBACfA,CAACA;gBACDA,QAAQA,CAACA,IAAIA,CAACA,IAAIA,CAACA,CAACA;gBACpBA,OAAOA,CAACA,IAAIA,CAACA,IAAIA,CAACA,CAACA;YACvBA,CAACA;YAED5E,SAASA,uBAAuBA,CAACA,IAAyBA;gBACtD6E,mBAAmBA,CAACA,IAAIA,CAACA,CAACA;gBAC1BA,oBAAoBA,CAACA,IAAIA,CAACA,CAACA;gBAC3BA,YAAYA,CAACA,KAAKA,EAAEA,IAAIA,CAACA,WAAWA,CAACA,CAACA;gBACtCA,oBAAoBA,CAACA,IAAIA,CAACA,CAACA;YAC/BA,CAACA;YAED7E,SAASA,qBAAqBA,CAACA,IAAuBA;gBAClD8E,mBAAmBA,CAACA,IAAIA,CAACA,CAACA;gBAC1BA,EAAEA,CAACA,CAACA,CAACA,CAACA,IAAIA,CAACA,KAAKA,GAAGA,cAAgBA,CAACA,CAACA,CAACA,CAACA;oBACnCA,EAAEA,CAACA,CAACA,QAAKA,CAACA,IAAIA,CAACA,CAACA,CAACA,CAACA;wBACdA,KAAKA,CAACA,MAAMA,CAACA,CAACA;oBAClBA,CAACA;oBACDA,IAAIA,CAACA,EAAEA,CAACA,CAACA,UAAOA,CAACA,IAAIA,CAACA,CAACA,CAACA,CAACA;wBACrBA,KAAKA,CAACA,QAAQA,CAACA,CAACA;oBACpBA,CAACA;oBACDA,IAAIA,CAACA,CAACA;wBACFA,KAAKA,CAACA,MAAMA,CAACA,CAACA;oBAClBA,CAACA;gBACLA,CAACA;gBACDA,aAAaA,CAACA,IAAIA,CAACA,YAAYA,EAA2BA,KAAKA,CAACA,CAACA;gBACjEA,KAAKA,CAACA,GAAGA,CAACA,CAACA;gBACXA,oBAAoBA,CAACA,IAAIA,CAACA,CAACA;YAC/BA,CAACA;YAED9E,SAASA,aAAaA,CAACA,IAA0BA;gBAC7C+E,mBAAmBA,CAACA,IAAIA,CAACA,CAACA;gBAC1BA,IAAIA,CAACA,IAAIA,CAACA,IAAIA,CAACA,CAACA;gBAChBA,oBAAoBA,CAACA,IAAIA,CAACA,CAACA;YAC/BA,CAACA;YAED/E,SAASA,2BAA2BA,CAACA,IAA6BA;gBAC9DgF,UAAOA,CAACA,IAAIA,CAACA,UAAUA,EAAEA,UAAAA,KAAQA;oBAC7BA,EAAEA,CAACA,CAACA,KAAKA,CAACA,WAAWA,CAACA,CAACA,CAACA;wBACpBA,SAASA,EAAEA,CAACA;wBACZA,SAASA,CAACA,KAAKA,CAACA,CAACA;wBACjBA,KAAKA,CAACA,MAAMA,CAACA,CAACA;wBACdA,QAAQA,CAACA,KAAKA,CAACA,IAAIA,CAACA,CAACA;wBACrBA,KAAKA,CAACA,cAAcA,CAACA,CAACA;wBACtBA,OAAOA,CAACA,KAAKA,CAACA,CAACA;wBACfA,KAAKA,CAACA,KAAKA,CAACA,CAACA;wBACbA,SAASA,CAACA,KAAKA,CAACA,CAACA;wBACjBA,QAAQA,CAACA,KAAKA,CAACA,IAAIA,CAACA,CAACA;wBACrBA,KAAKA,CAACA,KAAKA,CAACA,CAACA;wBACbA,QAAQA,CAACA,KAAKA,CAACA,WAAWA,CAACA,CAACA;wBAC5BA,OAAOA,CAACA,KAAKA,CAACA,CAACA;wBACfA,KAAKA,CAACA,KAAKA,CAACA,CAACA;oBACjBA,CAACA;gBACLA,CAACA,CAACA,CAACA;YACPA,CAACA;YAEDhF,SAASA,iBAAiBA,CAACA,IAA6BA;gBACpDiF,EAAEA,CAACA,CAACA,oBAAiBA,CAACA,IAAIA,CAACA,CAACA,CAACA,CAACA;oBAC1BA,IAAIA,SAASA,GAAGA,IAAIA,CAACA,UAAUA,CAACA,MAAMA,GAAGA,CAACA,CAACA;oBAC3CA,IAAIA,SAASA,GAAGA,IAAIA,CAACA,UAAUA,CAACA,SAASA,CAACA,CAACA;oBAC3CA,SAASA,EAAEA,CAACA;oBACZA,mBAAmBA,CAACA,SAASA,CAACA,CAACA;oBAC/BA,SAASA,CAACA,SAASA,CAACA,CAACA;oBACrBA,KAAKA,CAACA,MAAMA,CAACA,CAACA;oBACdA,QAAQA,CAACA,SAASA,CAACA,IAAIA,CAACA,CAACA;oBACzBA,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,WAAWA,GAAGA,SAASA,GAAGA,GAAGA,CAACA,CAACA;oBACrCA,OAAOA,CAACA,SAASA,CAACA,CAACA;oBACnBA,KAAKA,CAACA,GAAGA,CAACA,CAACA;oBACXA,SAASA,CAACA,SAASA,CAACA,CAACA;oBACrBA,KAAKA,CAACA,wBAAwBA,CAACA,CAACA;oBAChCA,OAAOA,CAACA,SAASA,CAACA,CAACA;oBACnBA,KAAKA,CAACA,GAAGA,CAACA,CAACA;oBACXA,SAASA,CAACA,SAASA,CAACA,CAACA;oBACrBA,KAAKA,CAACA,MAAMA,CAACA,CAACA;oBACdA,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,QAAQA,CAACA,SAASA,CAACA,IAAIA,CAACA,CAACA;oBACzBA,KAAKA,CAACA,QAAQA,GAAGA,SAASA,GAAGA,oBAAoBA,CAACA,CAACA;oBACnDA,OAAOA,CAACA,SAASA,CAACA,CAACA;oBACnBA,cAAcA,EAAEA,CAACA;oBACjBA,SAASA,EAAEA,CAACA;oBACZA,KAAKA,CAACA,GAAGA,CAACA,CAACA;gBACfA,CAACA;YACLA,CAACA;YAEDjF,SAASA,YAAYA,CAACA,IAAyBA;gBAC3CkF,mBAAmBA,CAACA,IAAIA,CAACA,CAACA;gBAC1BA,KAAKA,CAACA,IAAIA,CAACA,IAAIA,KAAKA,qBAAsBA,GAAGA,MAAMA,GAAGA,MAAMA,CAACA,CAACA;gBAC9DA,IAAIA,CAACA,IAAIA,CAACA,IAAIA,CAACA,CAACA;gBAChBA,oBAAoBA,CAACA,IAAIA,CAACA,CAACA;gBAC3BA,oBAAoBA,CAACA,IAAIA,CAACA,CAACA;YAC/BA,CAACA;YAEDlF,SAASA,uBAAuBA,CAACA,IAA6BA;gBAC1DmF,EAAEA,CAACA,CAACA,CAACA,IAAIA,CAACA,IAAIA,CAACA,CAACA,CAACA;oBACbA,MAAMA,CAACA,+BAA+BA,CAACA,IAAIA,CAACA,CAACA;gBACjDA,CAACA;gBAEDA,EAAEA,CAACA,CAACA,IAAIA,CAACA,IAAIA,KAAKA,gBAAiBA,CAACA,CAACA,CAACA;oBAElCA,mBAAmBA,CAACA,IAAIA,CAACA,CAACA;gBAC9BA,CAACA;gBACDA,KAAKA,CAACA,WAAWA,CAACA,CAACA;gBAC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CA;oBACFA,EAAEA,CAACA,CAACA,IAAIA,CAACA,IAAIA,CAACA,IAAIA,KAAKA,uBAAwBA,CAACA,CAACA,CAACA;wBAC9CA,mBAAmBA,CAASA,IAAIA,CAACA,IAAKA,CAACA,UAAUA,EAAEA,UAAUA,CAACA,CAACA;oBACnEA,CAACA;oBACDA,IAAIA,CAACA,CAACA;wBACFA,SAASA,EAAEA,CAACA;wBACZA,mBAAmBA,CAACA,IAAIA,CAACA,IAAIA,CAACA,CAACA;wBAC/BA,KAAKA,CAACA,SAASA,CAACA,CAACA;wBACjBA,IAAIA,CAACA,IAAIA,CAACA,IAAIA,CAACA,CAACA;wBAChBA,KAAKA,CAACA,GAAGA,CAACA,CAACA;wBACXA,oBAAoBA,CAACA,IAAIA,CAACA,IAAIA,CAACA,CAACA;oBACpCA,CAACA;oBACDA,SAASA,EAAEA,CAACA;oBACZA,EAAEA,CAACA,CAACA,IAAIA,CAACA,IAAIA,CAACA,IAAIA,KAAKA,uBAAwBA,CAACA,CAACA,CAACA;wBAC9CA,6BAA6BA,CAASA,IAAIA,CAACA,IAAKA,CAACA,UAAUA,CAACA,GAAGA,CAACA,CAACA;wBACjEA,cAAcA,EAAEA,CAACA;wBACjBA,SAASA,CAACA,wBAA0BA,EAAUA,IAAIA,CAACA,IAAKA,CAACA,UAAUA,CAACA,GAAGA,CAACA,CAACA;oBAC7EA,CAACA;oBACDA,IAAIA,CAACA,CAACA;wBACFA,cAAcA,EAAEA,CAACA;wBACjBA,SAASA,CAACA,IAAIA,CAACA,IAAIA,CAACA,CAACA;wBACrBA,KAAKA,CAACA,GAAGA,CAACA,CAACA;wBACXA,OAAOA,CAACA,IAAIA,CAACA,IAAIA,CAACA,CAACA;oBACvBA,CAACA;gBACLA,CAACA;gBACDA,YAAYA,EAAEA,CAACA;gBACfA,EAAEA,CAACA,CAACA,IAAIA,CAACA,KAAKA,GAAGA,cAAgBA,CAACA,CAACA,CAACA;oBAChCA,SAASA,EAAEA,CAACA;oBACZA,SAASA,CAACA,IAAIA,CAACA,CAACA;oBAChBA,oBAAoBA,CAACA,IAAIA,CAACA,CAACA;oBAC3BA,KAAKA,CAACA,KAAKA,CAACA,CAACA;oBACbA,IAAIA,CAACA,IAAIA,CAACA,IAAIA,CAACA,CAACA;oBAChBA,OAAOA,CAACA,IAAIA,CAACA,CAACA;oBACdA,KAAKA,CAACA,GAAGA,CAACA,CAACA;gBACfA,CAACA;YACLA,CAACA;YAEDtF,SAASA,oBAAoBA,CAACA,IAA4BA;gBACtDuF,EAAEA,CAACA,CAACA,IAAIA,CAACA,IAAIA,CAACA,CAACA,CAACA;oBACZA,IAAIA,SAASA,GAAWA,IAAIA,CAACA,IAAKA,CAACA,UAAUA,CAACA,CAACA,CAACA,CAACA;oBACjDA,EAAEA,CAACA,CAACA,SAASA,IAAIA,SAASA,CAACA,IAAIA,KAAKA,6BAA8BA,CAACA,CAACA,CAACA;wBACjEA,IAAIA,IAAIA,GAAyBA,SAAUA,CAACA,UAAUA,CAACA;wBACvDA,EAAEA,CAACA,CAACA,IAAIA,IAAIA,IAAIA,CAACA,IAAIA,KAAKA,wBAAyBA,CAACA,CAACA,CAACA;4BAClDA,IAAIA,IAAIA,GAAoBA,IAAKA,CAACA,IAAIA,CAACA;4BACvCA,EAAEA,CAACA,CAACA,IAAIA,IAAIA,IAAIA,CAACA,IAAIA,KAAKA,qBAAuBA,CAACA,CAACA,CAACA;gCAChDA,MAAMA,CAAsBA,SAASA,CAACA;4BAC1CA,CAACA;wBACLA,CAACA;oBACLA,CAACA;gBACLA,CAACA;YACLA,CAACA;YAEDvF,SAASA,gCAAgCA,CAACA,IAA4BA;gBAClEwF,UAAOA,CAACA,IAAIA,CAACA,UAAUA,EAAEA,UAAAA,KAAQA;oBAC7BA,EAAEA,CAACA,CAACA,KAAKA,CAACA,KAAKA,GAAGA,+BAA+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,QAAQA,CAACA,KAAKA,CAACA,IAAIA,CAACA,CAACA;wBACrBA,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;YAGDxF,SAASA,gBAAgBA,CAACA,UAA2BA;gBACjDyF,EAAEA,CAACA,CAACA,UAAUA,CAACA,IAAIA,KAAKA,qBAAwBA,IAAIA,UAAUA,CAACA,IAAIA,KAAKA,sBAAyBA,CAACA,CAACA,CAACA;oBAChGA,KAAKA,CAACA,GAAGA,CAACA,CAACA;oBACXA,QAAQA,CAACA,UAAUA,CAACA,CAACA;oBACrBA,KAAKA,CAACA,GAAGA,CAACA,CAACA;gBACfA,CAACA;gBACDA,IAAIA,CAACA,CAACA;oBACFA,KAAKA,CAACA,GAAGA,CAACA,CAACA;oBACXA,QAAQA,CAACA,UAAUA,CAACA,CAACA;gBACzBA,CAACA;YACLA,CAACA;YAEDzF,SAASA,qBAAqBA,CAACA,IAAsBA,EAAEA,UAAqBA;gBACxE0F,UAAOA,CAACA,IAAIA,CAACA,OAAOA,EAAEA,UAAAA,MAASA;oBAC3BA,EAAEA,CAACA,CAACA,MAAMA,CAACA,IAAIA,KAAKA,kBAAmBA,IAAIA,CAACA,MAAMA,CAACA,KAAKA,GAAGA,gBAAgBA,CAACA,KAAKA,UAAUA,IAA0BA,MAAOA,CAACA,WAAWA,CAACA,CAACA,CAACA;wBACvIA,SAASA,EAAEA,CAACA;wBACZA,mBAAmBA,CAACA,MAAMA,CAACA,CAACA;wBAC5BA,SAASA,CAACA,MAAMA,CAACA,CAACA;wBAClBA,SAASA,CAAuBA,MAAOA,CAACA,IAAIA,CAACA,CAACA;wBAC9CA,EAAEA,CAACA,CAACA,UAAUA,CAACA,CAACA,CAACA;4BACbA,QAAQA,CAACA,IAAIA,CAACA,IAAIA,CAACA,CAACA;wBACxBA,CAACA;wBACDA,IAAIA,CAACA,CAACA;4BACFA,KAAKA,CAACA,MAAMA,CAACA,CAACA;wBAClBA,CAACA;wBACDA,gBAAgBA,CAAuBA,MAAOA,CAACA,IAAIA,CAACA,CAACA;wBACrDA,OAAOA,CAAuBA,MAAOA,CAACA,IAAIA,CAACA,CAACA;wBAC5CA,KAAKA,CAACA,KAAKA,CAACA,CAACA;wBACbA,IAAIA,CAAuBA,MAAOA,CAACA,WAAWA,CAACA,CAACA;wBAChDA,KAAKA,CAACA,GAAGA,CAACA,CAACA;wBACXA,OAAOA,CAACA,MAAMA,CAACA,CAACA;wBAChBA,oBAAoBA,CAACA,MAAMA,CAACA,CAACA;oBACjCA,CAACA;gBACLA,CAACA,CAACA,CAACA;YACPA,CAACA;YAED1F,SAASA,mBAAmBA,CAACA,IAAsBA;gBAC/C2F,UAAOA,CAACA,IAAIA,CAACA,OAAOA,EAAEA,UAAAA,MAASA;oBAC3BA,EAAEA,CAACA,CAACA,MAAMA,CAACA,IAAIA,KAAKA,gBAAiBA,CAACA,CAACA,CAACA;wBACpCA,EAAEA,CAACA,CAACA,CAAqBA,MAAOA,CAACA,IAAIA,CAACA,CAACA,CAACA;4BACpCA,MAAMA,CAACA,+BAA+BA,CAACA,MAAMA,CAACA,CAACA;wBACnDA,CAACA;wBAEDA,SAASA,EAAEA,CAACA;wBACZA,mBAAmBA,CAACA,MAAMA,CAACA,CAACA;wBAC5BA,SAASA,CAACA,MAAMA,CAACA,CAACA;wBAClBA,SAASA,CAAqBA,MAAOA,CAACA,IAAIA,CAACA,CAACA;wBAC5CA,QAAQA,CAACA,IAAIA,CAACA,IAAIA,CAACA,CAACA;wBACpBA,EAAEA,CAACA,CAACA,CAACA,CAACA,MAAMA,CAACA,KAAKA,GAAGA,gBAAgBA,CAACA,CAACA,CAACA,CAACA;4BACrCA,KAAKA,CAACA,YAAYA,CAACA,CAACA;wBACxBA,CAACA;wBACDA,gBAAgBA,CAAqBA,MAAOA,CAACA,IAAIA,CAACA,CAACA;wBACnDA,OAAOA,CAAqBA,MAAOA,CAACA,IAAIA,CAACA,CAACA;wBAC1CA,KAAKA,CAACA,KAAKA,CAACA,CAACA;wBACbA,SAASA,CAACA,MAAMA,CAACA,CAACA;wBAClBA,uBAAuBA,CAAoBA,MAAMA,CAACA,CAACA;wBACnDA,OAAOA,CAACA,MAAMA,CAACA,CAACA;wBAChBA,OAAOA,CAACA,MAAMA,CAACA,CAACA;wBAChBA,KAAKA,CAACA,GAAGA,CAACA,CAACA;wBACXA,oBAAoBA,CAACA,MAAMA,CAACA,CAACA;oBACjCA,CAACA;oBACDA,IAAIA,CAACA,EAAEA,CAACA,CAACA,MAAMA,CAACA,IAAIA,KAAKA,qBAAsBA,IAAIA,MAAMA,CAACA,IAAIA,KAAKA,qBAAsBA,CAACA,CAACA,CAACA;wBACxFA,IAAIA,SAASA,GAAGA,0BAA0BA,CAACA,IAAIA,EAAuBA,MAAMA,CAACA,CAACA;wBAC9EA,EAAEA,CAACA,CAACA,MAAMA,KAAKA,SAASA,CAACA,aAAaA,CAACA,CAACA,CAACA;4BACrCA,SAASA,EAAEA,CAACA;4BACZA,SAASA,CAACA,MAAMA,CAACA,CAACA;4BAClBA,KAAKA,CAACA,wBAAwBA,CAACA,CAACA;4BAChCA,SAASA,CAAuBA,MAAOA,CAACA,IAAIA,CAACA,CAACA;4BAC9CA,QAAQA,CAACA,IAAIA,CAACA,IAAIA,CAACA,CAACA;4BACpBA,EAAEA,CAACA,CAACA,CAACA,CAACA,MAAMA,CAACA,KAAKA,GAAGA,gBAAgBA,CAACA,CAACA,CAACA,CAACA;gCACrCA,KAAKA,CAACA,YAAYA,CAACA,CAACA;4BACxBA,CAACA;4BACDA,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,CAACA,CAACA;gCAC5CA,KAAKA,CAACA,GAAGA,CAACA,CAACA;4BACfA,CAACA;4BACDA,SAASA,EAAEA,CAACA;4BACZA,KAAKA,CAACA,mBAAmBA,CAACA,CAACA;4BAC3BA,SAASA,EAAEA,CAACA;4BACZA,KAAKA,CAACA,oBAAoBA,CAACA,CAACA;4BAC5BA,cAAcA,EAAEA,CAACA;4BACjBA,SAASA,EAAEA,CAACA;4BACZA,KAAKA,CAACA,KAAKA,CAACA,CAACA;4BACbA,OAAOA,CAACA,MAAMA,CAACA,CAACA;wBACpBA,CAACA;oBACLA,CAACA;gBACLA,CAACA,CAACA,CAACA;YACPA,CAACA;YAED3F,SAASA,oBAAoBA,CAACA,IAAsBA;gBAChD4F,mBAAmBA,CAACA,IAAIA,CAACA,CAACA;gBAC1BA,KAAKA,CAACA,MAAMA,CAACA,CAACA;gBACdA,IAAIA,CAACA,IAAIA,CAACA,IAAIA,CAACA,CAACA;gBAChBA,KAAKA,CAACA,gBAAgBA,CAACA,CAACA;gBACxBA,EAAEA,CAACA,CAACA,IAAIA,CAACA,QAAQA,CAACA,CAACA,CAACA;oBAChBA,KAAKA,CAACA,QAAQA,CAACA,CAACA;gBACpBA,CAACA;gBACDA,KAAKA,CAACA,KAAKA,CAACA,CAACA;gBACbA,cAAcA,EAAEA,CAACA;gBACjBA,cAAcA,CAACA,IAAIA,CAACA,CAACA;gBACrBA,EAAEA,CAACA,CAACA,IAAIA,CAACA,QAAQA,CAACA,CAACA,CAACA;oBAChBA,SAASA,EAAEA,CAACA;oBACZA,SAASA,CAACA,IAAIA,CAACA,QAAQA,CAACA,CAACA;oBACzBA,KAAKA,CAACA,YAAYA,CAACA,CAACA;oBACpBA,IAAIA,CAACA,IAAIA,CAACA,IAAIA,CAACA,CAACA;oBAChBA,KAAKA,CAACA,YAAYA,CAACA,CAACA;oBACpBA,OAAOA,CAACA,IAAIA,CAACA,QAAQA,CAACA,CAACA;gBAC3BA,CAACA;gBACDA,SAASA,EAAEA,CAACA;gBACZA,sBAAsBA,EAAEA,CAACA;gBACzBA,mBAAmBA,CAACA,IAAIA,CAACA,CAACA;gBAC1BA,qBAAqBA,CAACA,IAAIA,EAAEA,gBAAgBA,CAACA,CAACA;gBAC9CA,SAASA,EAAEA,CAACA;gBACZA,SAASA,wBAAwBA;oBAC7BC,KAAKA,CAACA,SAASA,CAACA,CAACA;oBACjBA,QAAQA,CAACA,IAAIA,CAACA,IAAIA,CAACA,CAACA;gBACxBA,CAACA;gBACDD,SAASA,CAACA,wBAA0BA,EAAEA,IAAIA,CAACA,OAAOA,CAACA,GAAGA,EAAEA,wBAAwBA,CAACA,CAACA;gBAClFA,KAAKA,CAACA,GAAGA,CAACA,CAACA;gBACXA,cAAcA,EAAEA,CAACA;gBACjBA,SAASA,EAAEA,CAACA;gBACZA,SAASA,CAACA,wBAA0BA,EAAEA,IAAIA,CAACA,OAAOA,CAACA,GAAGA,CAACA,CAACA;gBACxDA,YAAYA,EAAEA,CAACA;gBACfA,SAASA,CAACA,IAAIA,CAACA,CAACA;gBAChBA,KAAKA,CAACA,IAAIA,CAACA,CAACA;gBACZA,EAAEA,CAACA,CAACA,IAAIA,CAACA,QAAQA,CAACA,CAACA,CAACA;oBAChBA,IAAIA,CAACA,IAAIA,CAACA,QAAQA,CAACA,QAAQA,CAACA,CAACA;gBACjCA,CAACA;gBACDA,KAAKA,CAACA,IAAIA,CAACA,CAACA;gBACZA,OAAOA,CAACA,IAAIA,CAACA,CAACA;gBACdA,EAAEA,CAACA,CAACA,IAAIA,CAACA,KAAKA,GAAGA,cAAgBA,CAACA,CAACA,CAACA;oBAChCA,SAASA,EAAEA,CAACA;oBACZA,SAASA,CAACA,IAAIA,CAACA,CAACA;oBAChBA,oBAAoBA,CAACA,IAAIA,CAACA,CAACA;oBAC3BA,KAAKA,CAACA,KAAKA,CAACA,CAACA;oBACbA,IAAIA,CAACA,IAAIA,CAACA,IAAIA,CAACA,CAACA;oBAChBA,OAAOA,CAACA,IAAIA,CAACA,CAACA;oBACdA,KAAKA,CAACA,GAAGA,CAACA,CAACA;gBACfA,CAACA;gBACDA,oBAAoBA,CAACA,IAAIA,CAACA,CAACA;gBAE3BA,SAASA,sBAAsBA;oBAE3BE,UAAOA,CAACA,IAAIA,CAACA,OAAOA,EAAEA,UAAAA,MAASA;wBAC3BA,EAAEA,CAACA,CAACA,MAAMA,CAACA,IAAIA,KAAKA,qBAAsBA,IAAIA,CAA0BA,MAAOA,CAACA,IAAIA,CAACA,CAACA,CAACA;4BACnFA,+BAA+BA,CAACA,MAAMA,CAACA,CAACA;wBAC5CA,CAACA;oBACLA,CAACA,CAACA,CAACA;oBAEHA,IAAIA,IAAIA,GAAGA,2BAA2BA,CAACA,IAAIA,CAACA,CAACA;oBAC7CA,EAAEA,CAACA,CAACA,IAAIA,CAACA,CAACA,CAACA;wBACPA,mBAAmBA,CAACA,IAAIA,CAACA,CAACA;oBAC9BA,CAACA;oBACDA,SAASA,CAAOA,IAAIA,IAAIA,IAAIA,CAACA,CAACA;oBAC9BA,KAAKA,CAACA,WAAWA,CAACA,CAACA;oBACnBA,IAAIA,CAACA,IAAIA,CAACA,IAAIA,CAACA,CAACA;oBAChBA,uBAAuBA,CAACA,IAAIA,CAACA,CAACA;oBAC9BA,KAAKA,CAACA,IAAIA,CAACA,CAACA;oBACZA,cAAcA,CAACA,IAAIA,EAAEA,aAAaA,CAACA,CAACA;oBACpCA,cAAcA,EAAEA,CAACA;oBACjBA,EAAEA,CAACA,CAACA,IAAIA,CAACA,CAACA,CAACA;wBACPA,oBAAoBA,CAASA,IAAIA,CAACA,IAAKA,CAACA,UAAUA,CAACA,CAACA;oBACxDA,CAACA;oBACDA,iCAAiCA,CAACA,IAAIA,CAACA,CAACA;oBACxCA,EAAEA,CAACA,CAACA,IAAIA,CAACA,CAACA,CAACA;wBACPA,2BAA2BA,CAACA,IAAIA,CAACA,CAACA;wBAClCA,iBAAiBA,CAACA,IAAIA,CAACA,CAACA;wBACxBA,EAAEA,CAACA,CAACA,IAAIA,CAACA,QAAQA,CAACA,CAACA,CAACA;4BAChBA,IAAIA,SAASA,GAAGA,oBAAoBA,CAACA,IAAIA,CAACA,CAACA;4BAC3CA,EAAEA,CAACA,CAACA,SAASA,CAACA,CAACA,CAACA;gCACZA,SAASA,EAAEA,CAACA;gCACZA,IAAIA,CAACA,SAASA,CAACA,CAACA;4BACpBA,CAACA;wBACLA,CAACA;wBACDA,gCAAgCA,CAACA,IAAIA,CAACA,CAACA;oBAC3CA,CAACA;oBACDA,IAAIA,CAACA,CAACA;wBACFA,EAAEA,CAACA,CAACA,IAAIA,CAACA,QAAQA,CAACA,CAACA,CAACA;4BAChBA,SAASA,EAAEA,CAACA;4BACZA,SAASA,CAACA,IAAIA,CAACA,QAAQA,CAACA,CAACA;4BACzBA,KAAKA,CAACA,gCAAgCA,CAACA,CAACA;4BACxCA,OAAOA,CAACA,IAAIA,CAACA,QAAQA,CAACA,CAACA;wBAC3BA,CAACA;oBACLA,CAACA;oBACDA,qBAAqBA,CAACA,IAAIA,EAAeA,CAACA,CAACA,CAACA;oBAC5CA,EAAEA,CAACA,CAACA,IAAIA,CAACA,CAACA,CAACA;wBACPA,IAAIA,UAAUA,GAAmBA,IAAIA,CAACA,IAAKA,CAACA,UAAUA,CAACA;wBACvDA,EAAEA,CAACA,CAACA,SAASA,CAACA;4BAACA,UAAUA,GAAGA,UAAUA,CAACA,KAAKA,CAACA,CAACA,CAACA,CAACA;wBAChDA,SAASA,CAACA,UAAUA,CAACA,CAACA;oBAC1BA,CAACA;oBACDA,SAASA,EAAEA,CAACA;oBACZA,EAAEA,CAACA,CAACA,IAAIA,CAACA,CAACA,CAACA;wBACPA,6BAA6BA,CAASA,IAAIA,CAACA,IAAKA,CAACA,UAAUA,CAACA,GAAGA,CAACA,CAACA;oBACrEA,CAACA;oBACDA,cAAcA,EAAEA,CAACA;oBACjBA,SAASA,CAACA,wBAA0BA,EAAEA,IAAIA,GAAWA,IAAIA,CAACA,IAAKA,CAACA,UAAUA,CAACA,GAAGA,GAAGA,IAAIA,CAACA,OAAOA,CAACA,GAAGA,CAACA,CAACA;oBACnGA,YAAYA,EAAEA,CAACA;oBACfA,OAAOA,CAAOA,IAAIA,IAAIA,IAAIA,CAACA,CAACA;oBAC5BA,EAAEA,CAACA,CAACA,IAAIA,CAACA,CAACA,CAACA;wBACPA,oBAAoBA,CAACA,IAAIA,CAACA,CAACA;oBAC/BA,CAACA;gBACLA,CAACA;YACLF,CAACA;YAED5F,SAASA,wBAAwBA,CAACA,IAA0BA;gBACxD+F,+BAA+BA,CAACA,IAAIA,CAACA,CAACA;YAC1CA,CAACA;YAED/F,SAASA,mBAAmBA,CAACA,IAAqBA;gBAE9CgG,IAAIA,WAAWA,GAAGA,UAAOA,CAACA,IAAIA,CAACA,CAACA;gBAChCA,EAAEA,CAACA,CAACA,WAAWA,IAAIA,CAACA,eAAeA,CAACA,kBAAkBA,CAACA,CAACA,CAACA;oBACrDA,MAAMA,CAACA;gBACXA,CAACA;gBACDA,mBAAmBA,CAACA,IAAIA,CAACA,CAACA;gBAC1BA,EAAEA,CAACA,CAACA,CAACA,CAACA,IAAIA,CAACA,KAAKA,GAAGA,cAAgBA,CAACA,CAACA,CAACA,CAACA;oBACnCA,SAASA,CAACA,IAAIA,CAACA,CAACA;oBAChBA,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,QAAQA,CAACA,uBAAuBA,CAACA,IAAIA,CAACA,CAACA,CAACA;gBAC9CA,OAAOA,CAACA,IAAIA,CAACA,IAAIA,CAACA,CAACA;gBACnBA,KAAKA,CAACA,KAAKA,CAACA,CAACA;gBACbA,cAAcA,EAAEA,CAACA;gBACjBA,cAAcA,CAACA,IAAIA,CAACA,CAACA;gBACrBA,0BAA0BA,CAACA,WAAWA,CAACA,CAACA;gBACxCA,cAAcA,EAAEA,CAACA;gBACjBA,SAASA,EAAEA,CAACA;gBACZA,SAASA,CAACA,wBAA0BA,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,IAAIA,CAACA,KAAKA,GAAGA,cAAgBA,CAACA,CAACA,CAACA;oBAChCA,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,oBAAoBA,CAACA,IAAIA,CAACA,CAACA;gBAE3BA,SAASA,0BAA0BA,CAACA,WAAoBA;oBACpDC,UAAOA,CAACA,IAAIA,CAACA,OAAOA,EAAEA,UAAAA,MAASA;wBAC3BA,SAASA,EAAEA,CAACA;wBACZA,mBAAmBA,CAACA,MAAMA,CAACA,CAACA;wBAC5BA,SAASA,CAACA,MAAMA,CAACA,CAACA;wBAClBA,KAAKA,CAACA,QAAQA,CAACA,uBAAuBA,CAACA,IAAIA,CAACA,CAACA,CAACA;wBAC9CA,KAAKA,CAACA,GAAGA,CAACA,CAACA;wBACXA,KAAKA,CAACA,QAAQA,CAACA,uBAAuBA,CAACA,IAAIA,CAACA,CAACA,CAACA;wBAC9CA,KAAKA,CAACA,GAAGA,CAACA,CAACA;wBACXA,6BAA6BA,CAACA,MAAMA,CAACA,IAAIA,CAACA,CAACA;wBAC3CA,KAAKA,CAACA,MAAMA,CAACA,CAACA;wBACdA,EAAEA,CAACA,CAACA,MAAMA,CAACA,WAAWA,IAAIA,CAACA,WAAWA,CAACA,CAACA,CAACA;4BACrCA,IAAIA,CAACA,MAAMA,CAACA,WAAWA,CAACA,CAACA;wBAC7BA,CAACA;wBACDA,IAAIA,CAACA,CAACA;4BACFA,KAAKA,CAACA,QAAQA,CAACA,kBAAkBA,CAACA,MAAMA,CAACA,CAACA,QAAQA,EAAEA,CAACA,CAACA;wBAC1DA,CAACA;wBACDA,KAAKA,CAACA,MAAMA,CAACA,CAACA;wBACdA,6BAA6BA,CAACA,MAAMA,CAACA,IAAIA,CAACA,CAACA;wBAC3CA,OAAOA,CAACA,MAAMA,CAACA,CAACA;wBAChBA,KAAKA,CAACA,GAAGA,CAACA,CAACA;wBACXA,oBAAoBA,CAACA,MAAMA,CAACA,CAACA;oBACjCA,CAACA,CAACA,CAACA;gBACPA,CAACA;YACLD,CAACA;YAEDhG,SAASA,6CAA6CA,CAACA,iBAAoCA;gBACvFkG,EAAEA,CAACA,CAACA,iBAAiBA,CAACA,IAAIA,CAACA,IAAIA,KAAKA,2BAA4BA,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;YAEDlG,SAASA,qBAAqBA,CAACA,IAAuBA;gBAClDmG,IAAIA,UAAUA,GAAGA,yBAAsBA,CAACA,IAAIA,CAACA,KAAKA,oBAAgCA,IAC9EA,CAACA,yBAAsBA,CAACA,IAAIA,CAACA,KAAKA,qBAAiCA,IAAIA,eAAeA,CAACA,kBAAkBA,CAACA,CAACA;gBAE/GA,EAAEA,CAACA,CAACA,CAACA,UAAUA,CAACA,CAACA,CAACA;oBACdA,MAAMA,CAACA,+BAA+BA,CAACA,IAAIA,CAACA,CAACA;gBACjDA,CAACA;gBACDA,mBAAmBA,CAACA,IAAIA,CAACA,CAACA;gBAC1BA,SAASA,CAACA,IAAIA,CAACA,CAACA;gBAChBA,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,QAAQA,CAACA,uBAAuBA,CAACA,IAAIA,CAACA,CAACA,CAACA;gBAC9CA,OAAOA,CAACA,IAAIA,CAACA,IAAIA,CAACA,CAACA;gBACnBA,KAAKA,CAACA,IAAIA,CAACA,CAACA;gBACZA,EAAEA,CAACA,CAACA,IAAIA,CAACA,IAAIA,CAACA,IAAIA,KAAKA,qBAAsBA,CAACA,CAACA,CAACA;oBAC5CA,IAAIA,CAACA,IAAIA,CAACA,IAAIA,CAACA,CAACA;gBACpBA,CAACA;gBACDA,IAAIA,CAACA,CAACA;oBACFA,KAAKA,CAACA,GAAGA,CAACA,CAACA;oBACXA,cAAcA,EAAEA,CAACA;oBACjBA,cAAcA,CAACA,IAAIA,CAACA,CAACA;oBACrBA,iCAAiCA,CAACA,IAAIA,CAACA,CAACA;oBACxCA,SAASA,EAAEA,CAACA;oBACZA,IAAIA,CAACA,IAAIA,CAACA,IAAIA,CAACA,CAACA;oBAChBA,cAAcA,EAAEA,CAACA;oBACjBA,SAASA,EAAEA,CAACA;oBACZA,IAAIA,WAAWA,GAAUA,6CAA6CA,CAACA,IAAIA,CAACA,CAACA,IAAIA,CAACA;oBAClFA,SAASA,CAACA,wBAA0BA,EAAEA,WAAWA,CAACA,UAAUA,CAACA,GAAGA,CAACA,CAACA;oBAClEA,YAAYA,EAAEA,CAACA;gBACnBA,CAACA;gBACDA,KAAKA,CAACA,IAAIA,CAACA,CAACA;gBACZA,EAAEA,CAACA,CAACA,IAAIA,CAACA,KAAKA,GAAGA,cAAgBA,CAACA,CAACA,CAACA;oBAChCA,IAAIA,CAACA,IAAIA,CAACA,IAAIA,CAACA,CAACA;oBAChBA,KAAKA,CAACA,KAAKA,CAACA,CAACA;gBACjBA,CAACA;gBACDA,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,oBAAoBA,CAACA,IAAIA,CAACA,CAACA;YAC/BA,CAACA;YAEDnG,SAASA,qBAAqBA,CAACA,IAAuBA;gBAClDoG,IAAIA,qBAAqBA,GAAGA,QAAQA,CAACA,6BAA6BA,CAACA,IAAIA,CAACA,CAACA;gBAEzEA,EAAEA,CAACA,CAACA,CAACA,qBAAqBA,CAACA,CAACA,CAACA;oBAIzBA,qBAAqBA,GAAGA,CAACA,mBAAgBA,CAACA,iBAAiBA,CAACA,IAAIA,QAAQA,CAACA,mCAAmCA,CAACA,IAAIA,CAACA,CAACA;gBACvHA,CAACA;gBAEDA,EAAEA,CAACA,CAACA,qBAAqBA,CAACA,CAACA,CAACA;oBACxBA,EAAEA,CAACA,CAACA,IAAIA,CAACA,kBAAkBA,IAAIA,IAAIA,CAACA,MAAMA,CAACA,IAAIA,KAAKA,oBAAqBA,IAAIA,eAAeA,CAACA,MAAMA,KAAKA,WAAcA,CAACA,CAACA,CAACA;wBACrHA,EAAEA,CAACA,CAACA,IAAIA,CAACA,KAAKA,GAAGA,cAAgBA,CAACA,CAACA,CAACA;4BAChCA,SAASA,EAAEA,CAACA;4BACZA,mBAAmBA,CAACA,IAAIA,CAACA,CAACA;4BAC1BA,SAASA,CAACA,IAAIA,CAACA,CAACA;4BAChBA,oBAAoBA,CAACA,IAAIA,CAACA,CAACA;4BAC3BA,KAAKA,CAACA,KAAKA,CAACA,CAACA;4BACbA,IAAIA,CAACA,IAAIA,CAACA,IAAIA,CAACA,CAACA;4BAChBA,KAAKA,CAACA,GAAGA,CAACA,CAACA;4BACXA,OAAOA,CAACA,IAAIA,CAACA,CAACA;4BACdA,oBAAoBA,CAACA,IAAIA,CAACA,CAACA;wBAC/BA,CAACA;oBACLA,CAACA;oBACDA,IAAIA,CAACA,CAACA;wBACFA,SAASA,EAAEA,CAACA;wBACZA,mBAAmBA,CAACA,IAAIA,CAACA,CAACA;wBAC1BA,SAASA,CAACA,IAAIA,CAACA,CAACA;wBAChBA,EAAEA,CAACA,CAACA,CAACA,CAACA,IAAIA,CAACA,KAAKA,GAAGA,cAAgBA,CAACA,CAACA;4BAACA,KAAKA,CAACA,MAAMA,CAACA,CAACA;wBACpDA,oBAAoBA,CAACA,IAAIA,CAACA,CAACA;wBAC3BA,KAAKA,CAACA,KAAKA,CAACA,CAACA;wBACbA,EAAEA,CAACA,CAACA,IAAIA,CAACA,UAAUA,CAACA,CAAC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A,UAAUA,CAACA,CAACA,CAACA;oBACbA,SAASA,EAAEA,CAACA;oBACZA,IAAIA,iBAAiBA,GAAGA,wBAAwBA,CAACA,IAAIA,CAACA,CAACA;oBACvDA,SAASA,CAACA,iBAAiBA,CAACA,CAACA;oBAC7BA,KAAKA,CAACA,SAASA,CAACA,CAACA;oBACjBA,SAASA,CAACA,iBAAiBA,CAACA,UAAUA,CAACA,CAACA;oBACxCA,KAAKA,CAACA,UAAUA,CAACA,CAACA;oBAClBA,OAAOA,CAACA,iBAAiBA,CAACA,UAAUA,CAACA,CAACA;oBACtCA,KAAKA,CAACA,GAAGA,CAACA,CAACA;oBACXA,OAAOA,CAACA,iBAAiBA,CAACA,CAACA;gBAC/BA,CAACA;gBACDA,cAAcA,EAAEA,CAACA;gBACjBA,SAASA,EAAEA,CAACA;gBACZA,KAAKA,CAACA,KAAKA,CAACA,CAACA;YACjBA,CAACA;YAEDvG,SAASA,kBAAkBA,CAACA,IAAgBA,EAAEA,UAAkBA;gBAC5DwG,iCAAiCA,CAACA,IAAIA,CAACA,CAACA;gBACxCA,mBAAmBA,CAACA,IAAIA,CAACA,UAAUA,EAAEA,UAAUA,CAACA,CAACA;gBACjDA,IAAIA,UAAUA,GAAGA,QAAQA,CAACA,uBAAuBA,CAACA,IAAIA,CAACA,CAACA;gBACxDA,EAAEA,CAACA,CAACA,UAAUA,CAACA,CAACA,CAACA;oBACbA,SAASA,EAAEA,CAACA;oBACZA,IAAIA,iBAAiBA,GAAGA,wBAAwBA,CAACA,IAAIA,CAACA,CAACA;oBACvDA,SAASA,CAACA,iBAAiBA,CAACA,CAACA;oBAC7BA,KAAKA,CAACA,mBAAmBA,CAACA,CAACA;oBAC3BA,SAASA,CAACA,iBAAiBA,CAACA,UAAUA,CAACA,CAACA;oBACxCA,KAAKA,CAACA,UAAUA,CAACA,CAACA;oBAClBA,OAAOA,CAACA,iBAAiBA,CAACA,UAAUA,CAACA,CAACA;oBACtCA,KAAKA,CAACA,GAAGA,CAACA,CAACA;oBACXA,OAAOA,CAACA,iBAAiBA,CAACA,CAACA;gBAC/BA,CAACA;YACLA,CAACA;YAEDxG,SAASA,sBAAsBA,CAACA,UAAuBA,EAAEA,gBAAyBA;gBAC9EyG,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,UAAUA,CAACA,MAAMA,EAAEA,EAAEA,CAACA,EAAEA,CAACA;oBACzCA,EAAEA,CAACA,CAACA,sBAAmBA,CAACA,UAAUA,CAACA,CAACA,CAACA,CAACA,CAACA,CAACA,CAACA;wBACrCA,EAAEA,CAACA,CAACA,gBAAgBA,IAAIA,CAACA,GAAGA,CAACA,CAACA,CAACA,CAACA;4BAC5BA,SAASA,EAAEA,CAACA;wBAChBA,CAACA;wBACDA,IAAIA,CAACA,UAAUA,CAACA,CAACA,CAACA,CAACA,CAACA;oBACxBA,CAACA;oBACDA,IAAIA,CAACA,CAACA;wBAEFA,MAAMA,CAACA,CAACA,CAACA;oBACbA,CAACA;gBACLA,CAACA;gBACDA,MAAMA,CAACA,UAAUA,CAACA,MAAMA,CAACA;YAC7BA,CAACA;YAEDzG,SAASA,cAAcA,CAACA,IAAgBA;gBACpC0G,iBAAiBA,GAAGA,IAAIA,CAACA;gBAEzBA,SAASA,EAAEA,CAACA;gBACZA,oBAAoBA,CAACA,IAAIA,CAACA,CAACA;gBAE3BA,IAAIA,UAAUA,GAAGA,sBAAsBA,CAACA,IAAIA,CAACA,UAAUA,EAAuBA,KAAKA,CAACA,CAACA;gBACrFA,EAAEA,CAACA,CAACA,CAACA,cAAcA,IAAIA,QAAQA,CAACA,iBAAiBA,CAACA,IAAIA,CAACA,GAAGA,mBAA0BA,CAACA,CAACA,CAACA;oBACnFA,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,mBAAgBA,CAACA,IAAIA,CAACA,CAACA,CAACA,CAACA;oBACzBA,EAAEA,CAACA,CAACA,eAAeA,CAACA,MAAMA,KAAKA,WAAcA,CAACA,CAACA,CAACA;wBAC5CA,aAAaA,CAACA,IAAIA,EAAEA,UAAUA,CAACA,CAACA;oBACpCA,CAACA;oBACDA,IAAIA,CAACA,CAACA;wBACFA,kBAAkBA,CAACA,IAAIA,EAAEA,UAAUA,CAACA,CAACA;oBACzCA,CAACA;gBACLA,CAACA;gBACDA,IAAIA,CAACA,CAACA;oBACFA,iCAAiCA,CAACA,IAAIA,CAACA,CAACA;oBACxCA,mBAAmBA,CAACA,IAAIA,CAACA,UAAUA,EAAEA,UAAUA,CAACA,CAACA;gBACrDA,CAACA;YACLA,CAACA;YAED1G,SAASA,QAAQA,CAACA,IAAUA;gBACxB2G,EAAEA,CAACA,CAACA,CAACA,IAAIA,CAACA,CAACA,CAACA;oBACRA,MAAMA,CAACA;gBACXA,CAACA;gBAEDA,EAAEA,CAACA,CAACA,IAAIA,CAACA,KAAKA,GAAGA,eAAiBA,CAACA,CAACA,CAACA;oBACjCA,MAAMA,CAACA,+BAA+BA,CAACA,IAAIA,CAACA,CAACA;gBACjDA,CAACA;gBAEDA,MAAMA,CAACA,CAACA,IAAIA,CAACA,IAAIA,CAACA,CAACA,CAACA;oBAChBA,KAAKA,mBAAqBA;wBACtBA,MAAMA,CAACA,cAAcA,CAAaA,IAAIA,CAACA,CAACA;oBAC5CA,KAAKA,mBAAoBA;wBACrBA,MAAMA,CAACA,aAAaA,CAAuBA,IAAIA,CAACA,CAACA;oBACrDA,KAAKA,qBAAsBA,CAACA;oBAC5BA,KAAKA,qBAAsBA;wBACvBA,MAAMA,CAACA,Y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/BA,IAAIA,CAACA,GAAGA,eAAeA,CAACA,CAACA,CAACA,CAACA;wBAC3BA,EAAEA,CAACA,CAACA,CAACA,CAACA,KAAKA,GAAGA,CAACA,iBAAoBA,GAAGA,iBAAkBA,CAACA,IAAIA,CAACA,yBAAyBA,CAACA,CAACA,CAACA,CAACA,MAAMA,CAACA,CAACA,CAACA;4BAChGA,IAAIA,UAAUA,GAAGA,mBAAmBA,CAACA,CAACA,EAAEA,YAAkBA,CAACA,CAACA;4BAC5DA,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,UAAUA,CAACA,MAAMA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;gCACzCA,kBAAkBA,CAACA,CAACA,EAAEA,MAAMA,CAACA,CAACA;gCAC9BA,EAAEA,CAACA,CAACA,kBAAkBA,CAACA,CAACA,CAACA,CAACA,CAACA,CAACA;oCACxBA,gBAAgBA,CAACA,MAAMA,EAAEA,sBAAwBA,CAACA,CAACA;gCACvDA,CAACA;gCACDA,qBAAqBA,CAACA,UAAUA,CAACA,CAACA,CAACA,EAAEA,MAAMA,EAAEA,oBAAoBA,EAAEA,iBAAiBA,EAAEA,SAASA,CAACA,CAACA;gCACjGA,gBAAgBA,CAACA,MAAMA,EAAEA,uBAAyBA,CAACA,CAACA;gCACpDA,MAAMA,CAACA,SAASA,EAAEA,CAACA;4BACvBA,CAACA;wBACLA,CAACA;wBACDA,IAAIA,CAACA,CAACA;4BACFA,kBAAkBA,CAACA,CAACA,EAAEA,MAAMA,CAACA,CAACA;4BAC9BA,EAAEA,CAACA,CAACA,kBAAkBA,CAACA,CAACA,CAACA,CAACA,CAACA,CAACA;gCACxBA,gBAAgBA,CAACA,MAAMA,EAAEA,sBAAwBA,CAACA,CAACA;4BACvDA,CAACA;4BACDA,gBAAgBA,CAACA,MAAMA,EAAEA,mBAAqBA,CAACA,CAACA;4BAChDA,UAAUA,CAACA,MAAMA,CAACA,CAACA;4BACnBA,SAASA,CAACA,CAACA,EAAEA,YAAoBA,CAACA,CAACA;4BACnCA,gBAAgBA,CAACA,MAAMA,E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AIA,CAACA,CAACA,CAACA;gBAC7EA,CAACA;YACLA,CAACA;YACDA,MAAMA,CAACA,MAAMA,CAACA;QAClBA,CAACA;QAEDjJ,SAASA,wBAAwBA,CAACA,SAAoBA;YAClDkJ,EAAEA,CAACA,CAACA,CAACA,SAASA,CAACA,kBAAkBA,CAACA,CAACA,CAACA;gBAChCA,SAASA,CAACA,kBAAkBA,GAAGA,aAAaA,CAACA;gBAC7CA,EAAEA,CAACA,CAACA,SAASA,CAACA,MAAMA,CAACA,CAACA,CAACA;oBACnBA,IAAIA,IAAIA,GAAGA,eAAeA,CAACA,wBAAwBA,CAACA,SAASA,CAACA,MAAMA,CAACA,EAAEA,SAASA,CAACA,MAAMA,CAACA,CAACA;gBAC7FA,CAACA;gBACDA,IAAIA,CAACA,EAAEA,CAACA,CAACA,SAASA,CAACA,eAAeA,CAACA,CAACA,CAACA;oBACjCA,IAAIA,IAAIA,GAAGA,YAAYA,CAACA,MAAGA,CAACA,SAASA,CAACA,eAAeA,EAAEA,wBAAwBA,CAACA,CAACA,CAACA;gBACtFA,CAACA;gBACDA,IAAIA,CAACA,CAACA;oBACFA,IAAIA,IAAIA,GAAGA,qBAAqBA,CAA0BA,SAASA,CAACA,WAAWA,CAACA,CAACA;gBACrFA,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;QAEDlJ,SAASA,sBAAsBA,CAACA,SAAoBA;YAChDmJ,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,oBAAmBA,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;QAEDnJ,SAASA,yBAAyBA,CAACA,SAAoBA,EAAEA,aAAqBA;YAC1EoJ,MAAMA,CAACA,oBAAoBA,CAACA,SAASA,EAAEA,gBAAgBA,CAACA,SAASA,CAACA,cAAcA,EAAEA,aAAaA,CAACA,EAAEA,IAAIA,CAACA,CAACA;QAC5GA,CAACA;QAEDpJ,SAASA,kBAAkBA,CAACA,SAAoBA;YAC5CqJ,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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AKA,CAACA,KAAKA,CAACA,CAACA;YAC5DA,CAACA;YACDA,IAAIA,CAACA,CAACA;gBACFA,IAAIA,CAACA,GAAGA,CAACA,CAACA;gBACVA,IAAIA,EAAEA,GAAGA,IAAIA,CAACA,EAAEA,CAACA;gBACjBA,OAAOA,CAACA,GAAGA,SAASA,CAACA,MAAMA,IAAIA,SAASA,CAACA,CAACA,CAACA,CAACA,EAAEA,GAAGA,EAAEA,EAAEA,CAACA;oBAClDA,CAACA,EAAEA,CAACA;gBACRA,CAACA;gBACDA,EAAEA,CAACA,CAACA,CAACA,KAAKA,SAASA,CAACA,MAAMA,IAAIA,SAASA,CAACA,CAACA,CAACA,CAACA,EAAEA,KAAKA,EAAEA,CAACA,CAACA,CAACA;oBACnDA,SAASA,CAACA,MAAMA,CAACA,CAACA,EAAEA,CAACA,EAAEA,IAAIA,CAACA,CAACA;gBACjCA,CAACA;YACLA,CAACA;QACLA,CAACA;QAED1K,SAASA,mBAAmBA,CAACA,WAAmBA,EAAEA,KAAaA;YAC3D2K,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,kBAAkBA,CAACA,WAAWA,EAAEA,KAAKA,CAACA,CAACA,CAACA,CAACA,CAACA;YAC9CA,CAACA;QACLA,CAACA;QAED3K,SAASA,cAAcA,CAACA,SAAeA,EAAEA,KAAaA;YAClD4K,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,SAASA,KAAKA,KAAKA,CAACA,CAACA,CAACA,IAAIA,eAAeA,CAACA,SAASA,EAAEA,KAAKA,CAACA,CAACA,CAACA,CAACA,CAACA,CAACA,CAACA;oBACjEA,MAAMA,CAACA,IAAIA,CAACA;gBAChBA,CAACA;YACLA,CAACA;YACDA,MAAMA,CAACA,KAAKA,CAACA;QACjBA,CAACA;QAED5K,SAASA,cAAcA,CAACA,KAAaA;YACjC6K,IAAIA,CAACA,GAAGA,KAAKA,CAACA,MAAMA,CAACA;YACrBA,OAAOA,CAACA,GAAGA,CAACA,EAAEA,CAACA;gBACXA,CAACA,EAAEA,CAACA;gBACJA,EAAEA,CAACA,CAACA,cAAcA,CAACA,KAAKA,CAACA,CAACA,CAACA,EAAEA,KAAKA,CAACA,CAACA,CAACA,CAACA;oBAClCA,KAAKA,CAACA,MAAMA,CAACA,CAACA,EAAEA,CAACA,CAACA,CAACA;gBACvBA,CAACA;YACLA,CAACA;QACLA,CAACA;QAED7K,SAASA,eAAeA,CAACA,KAAaA;YAClC8K,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,KAAKA,CAACA,MAAMA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;gBACpCA,EAAEA,CAACA,CAACA,KAAKA,CAACA,CAACA,CAACA,CAACA,KAAKA,GAAGA,WAAaA,CAACA,CAACA,CAACA;oBACjCA,MAAMA,CAACA,IAAIA,CAACA;gBAChBA,CAACA;YACLA,CAACA;YACDA,MAAMA,CAACA,KAAKA,CAACA;QACjBA,CAACA;QAED9K,SAASA,gBAAgBA,CAACA,KAAaA,EAAEA,YAAkBA;YACvD+K,IAAIA,CAACA,GAAGA,KAAKA,CAACA,MAAMA,CAACA;YACrBA,OAAOA,CAACA,GAAGA,CAACA,IAAIA,KAAKA,CAACA,MAAMA,GAAGA,CAACA,EAAEA,CAACA;gBAC/BA,CAACA,EAAEA,CAACA;gBACJA,EAAEA,CAACA,CAACA,KAAKA,CAACA,CAACA,CAACA,KAAKA,YAAYA,CAACA,CAACA,CAACA;oBAC5BA,KAAKA,CAACA,MAAMA,CAACA,CAACA,EAAEA,CAACA,CAACA,CAACA;gBACvBA,CAACA;YACLA,CAACA;QACLA,CAACA;QAED/K,SAASA,YAAYA,CAACA,KAAaA,EAAEA,kBAA4BA;YAC7DgL,EAAEA,CAACA,CAACA,K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CA,GAAGA,OAAOA,CAACA,MAAMA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;oBACtCA,EAAEA,CAACA,CAACA,CAACA,KAAKA,OAAOA,CAACA,CAACA,CAACA,CAACA;wBAACA,MAAMA,CAACA,OAAOA,CAACA;gBACzCA,CAACA;gBACDA,MAAMA,CAACA,CAACA,CAACA;YACbA,CAACA,CAACA;QACNA,CAACA;QAED5L,SAASA,qBAAqBA,CAACA,OAAyBA;YACpD6L,MAAMA,CAACA,UAAAA,CAAIA;gBACPA,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,OAAOA,CAACA,cAAcA,CAACA,MAAMA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;oBACrDA,EAAEA,CAACA,CAACA,CAACA,KAAKA,OAAOA,CAACA,cAAcA,CAACA,CAACA,CAACA,CAACA,CAACA,CAACA;wBAClCA,MAAMA,CAACA,eAAeA,CAACA,OAAOA,EAAEA,CAACA,CAACA,CAACA;oBACvCA,CAACA;gBACLA,CAACA;gBACDA,MAAMA,CAACA,CAACA,CAACA;YACbA,CAACA,CAAAA;QACLA,CAACA;QAED7L,SAASA,cAAcA,CAACA,IAAUA;YAC9B8L,MAAMA,CAACA,IAAIA,CAACA;QAChBA,CAACA;QAED9L,SAASA,kBAAkBA,CAACA,OAAmBA,EAAEA,OAAmBA;YAChE+L,MAAMA,CAACA,UAAAA,CAAIA,IAACA,OAAAA,OAAOA,CAACA,OAAOA,CAACA,CAACA,CAACA,CAACA,EAAnBA,CAAmBA,CAACA;QACpCA,CAACA;QAED/L,SAASA,wBAAwBA,CAACA,aAA4BA,EAAEA,MAAkBA;YAC9EgM,IAAIA,MAAMA,GAAkBA,UAAUA,CAACA,uBAAuBA,CAACA,CAACA;YAChEA,MAAMA,CAACA,MAAMA,GAAGA,aAAaA,CAACA,MAAMA,CAACA;YACrCA,EAAEA,CAACA,CAACA,aAAaA,CAACA,UAAUA,CAACA,CAACA,CAACA;gBAC3BA,MAAMA,CAACA,UAAUA,GAAGA,eAAeA,CAACA,aAAaA,CAACA,UAAUA,EA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AEA,YAAYA,CAACA,WAAWA,IAAIA,MAAMA,CAACA,EAAEA,YAAYA,CAACA,WAAWA,CAACA,CAACA,CAACA;oCACpGA,CAACA;oCACDA,MAAMA,CAACA,aAAaA,CAACA;gCACzBA,CAACA;4BACLA,CAACA;4BACDA,IAAIA,CAACA,EAAEA,CAACA,CAACA,WAAWA,GAAGA,kBAAmBA,CAACA,CAACA,CAACA;gCACzCA,EAAEA,CAACA,CAACA,YAAYA,CAACA,CAACA,CAACA;oCACfA,WAAWA,CAACA,cAAWA,CAACA,sDAAsDA,EAC1EA,cAAcA,CAACA,UAAUA,CAACA,EAAEA,YAAYA,CAACA,MAAMA,CAACA,EAAEA,YAAYA,CAACA,MAAMA,CAACA,CAACA,CAACA;gCAChFA,CAACA;gCACDA,MAAMA,CAACA,aAAaA,CAACA;4BACzBA,CAACA;4BACDA,IAAIA,OAAOA,GAAGA,WAAWA,CAACA,eAAeA,CAACA,UAAUA,CAACA,EAAEA,eAAeA,CAACA,UAAUA,CAACA,EAAEA,YAAYA,CAACA,CAACA;4BAClGA,EAAEA,CAACA,CAACA,CAACA,OAAOA,CAACA,CAACA,CAACA;gCACXA,EAAEA,CAACA,CAACA,YAAYA,CAACA,CAACA,CAACA;oCACfA,WAAWA,CAACA,cAAWA,CAACA,oCAAoCA,EAAEA,cAAcA,CAACA,UAAUA,CAACA,CAACA,CAACA;gCAC9FA,CAACA;gCACDA,MAAMA,CAACA,aAAaA,CAACA;4BACzBA,CAACA;4BACDA,MAAMA,IAAIA,OAAOA,CAACA;4BAClBA,EAAEA,CAACA,CAACA,kBAAkBA,CAACA,UAAUA,CAACA,IAAIA,CAACA,kBAAkBA,CAACA,UAAUA,CAACA,CAACA,CAACA,CAACA;gCAQpEA,EAAEA,CAACA,CAACA,YAAYA,CAACA,CAACA,CAACA;oCACfA,WAAWA,CAACA,cAAWA,CAACA,uDAAuDA,EAC3EA,cAAcA,CAACA,UAAUA,CAACA,EAAEA,YAAYA,CAACA,MAAMA,CAACA,EAAEA,YAAYA,CAACA,MAAMA,CAACA,CAACA,CAACA;gCAChFA,CAACA;gCACDA,MAAMA,CA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gCACpDA,EAAEA,CAACA,CAACA,OAAOA,CAACA,CAACA,CAACA;oCACVA,MAAMA,IAAIA,OAAOA,CAACA;oCAClBA,SAASA,GAAGA,aAAaA,CAACA;oCAC1BA,QAAQA,CAACA,KAAKA,CAACA;gCACnBA,CAACA;gCAEDA,WAAWA,GAAGA,KAAKA,CAACA;4BACxBA,CAACA;wBACLA,CAACA;wBACDA,MAAMA,CAACA,aAAaA,CAACA;oBACzBA,CAACA;gBACLA,CAACA;gBACDA,MAAMA,CAACA,MAAMA,CAACA;YAClBA,CAACA;YAEDX,SAASA,kBAAkBA,CAACA,MAAiBA,EAAEA,MAAiBA,EAAEA,YAAqBA;gBACnFY,EAAEA,CAACA,CAACA,MAAMA,KAAKA,MAAMA,CAACA,CAACA,CAACA;oBACpBA,MAAMA,CAACA,aAAYA,CAACA;gBACxBA,CAACA;gBACDA,EAAEA,CAACA,CAACA,CAACA,MAAMA,CAACA,gBAAgBA,IAAIA,MAAMA,CAACA,gBAAgBA,GAAGA,MAAMA,CAACA,UAAUA,CAACA,MAAMA,CAACA,CAACA,CAACA;oBACjFA,MAAMA,CAACA,aAAaA,CAACA;gBACzBA,CAACA;gBACDA,IAAIA,SAASA,GAAGA,MAAMA,CAACA,UAAUA,CAACA,MAAMA,CAACA;gBACzCA,IAAIA,SAASA,GAAGA,MAAMA,CAACA,UAAUA,CAACA,MAAMA,CAACA;gBACzCA,IAAIA,UAAkBA,CAACA;gBACvBA,EAAEA,CAACA,CAACA,MAAMA,CAACA,gBAAgBA,IAAIA,MAAMA,CAACA,gBAAgBA,CAACA,CAACA,CAACA;oBACrDA,UAAUA,GAAGA,SAASA,GAAGA,SAASA,GAAGA,SAASA,GAAGA,SAASA,CAACA;oBAC3DA,SAASA,EAAEA,CAACA;oBACZA,SAASA,EAAEA,CAACA;gBAChBA,CAACA;gBACDA,IAAIA,CAACA,EAAEA,CAACA,CAACA,MAAMA,CAACA,gBAAgBA,CAACA,CAACA,CAACA;oBAC/BA,SAASA,EAAEA,CAACA;oBACZA,UAAUA,GAAGA,SAASA,CAACA;gBAC3BA,CAACA;gBACDA,IAAIA,CAACA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,MAAMA,CAACA,sBAAsBA,CAACA,IAAIA,CAACA,CAACA;YACxCA,CAACA;YACDA,IAAIA,aAA0BA,CAACA;YAC/BA,IAAIA,KAAKA,GAAeA,IAAKA,CAACA,KAAKA,CAACA;YACpCA,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,KAAKA,CAACA,MAAMA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;gBAGpCA,EAAEA,CAACA,CAACA,aAAaA,IACbA,gCAAgCA,CAACA,KAAKA,CAACA,CAACA,CAACA,EAAEA,YAAkBA,CAACA,CAACA,MAAMA,GAAGA,CAACA,CAACA,CAACA,CAACA;oBAC5EA,MAAMA,CAACA,SAASA,CAACA;gBACrBA,CAACA;gBAEDA,IAAIA,SAASA,GAAGA,sBAAsBA,CAACA,KAAKA,CAACA,CAACA,CAACA,CAACA,CAACA;gBACjDA,EAAEA,CAACA,CAACA,SAASA,CAACA,CAACA,CAACA;oBACZA,EAAEA,CAACA,CAACA,CAACA,aAAaA,CAACA,CAACA,CAACA;wBAEjBA,aAAaA,GAAGA,CAACA,SAASA,CAACA,CAACA;oBAChCA,CAACA;oBACDA,IAAIA,CAACA,EAAEA,CAACA,CAACA,CAACA,iBAAiBA,CAACA,aAAaA,CAACA,CAACA,CAACA,EAAEA,SAASA,EAAyBA,KAAKA,EAAEA,YAAYA,CAACA,CAACA,CAACA,CAACA;wBAEnGA,MAAMA,CAACA,SAASA,CAACA;oBACrBA,CAACA;oBACDA,IAAIA,CAACA,CAACA;wBAEFA,aAAaA,CAACA,IAAIA,CAACA,SAASA,CAACA,CAACA;oBAClCA,CAACA;gBACLA,CAACA;YACLA,CAACA;YAGDA,IAAIA,MAAiBA,CAACA;YACtBA,EAAEA,CAACA,CAACA,aAAaA,CAACA,CAACA,CAACA;gBAChBA,MAAMA,GAAGA,cAAcA,CAACA,aAAaA,CAACA,CAACA,CAACA,CAACA,CAACA;gBAE1CA,MAAMA,CAACA,kBAAkBA,GAAGA,SAASA,CAACA;gBACtCA,MAAMA,CAACA,eAAeA,GAAGA,aAAaA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A,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,eAAeA,CAACA;4BAC9CA,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;gBACLA,CAACA;gBAEDA,MAAMA,CAACA,SAASA,CAACA;YACrBA,CAACA;YASDD,SAASA,iBAAiBA;gBACtBE,IAAIA,MAAMA,GAAGA,UAAUA,CAACA;gBACxBA,IAAIA,UAAgBA,CAACA;gBACrBA,IAAIA,UAAkBA,CAACA;gBACvBA,IAAIA,SAASA,GAAWA,CAACA,CAACA;gBAC1BA,IAAIA,GAAWA,CAACA;gBAChBA,QAAKA,CAACA,MAAMA,CAACA,CAACA,MAAMA,CAACA,MAAMA,CAACA,CAACA;gBAC7BA,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,UAAUA,CAACA,MAAMA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;oBACzCA,IAAIA,SAASA,GAAGA,UAAUA,CAACA,CAACA,CAACA,CAACA;oBAC9BA,IAAIA,MAAMA,GAAGA,SAASA,CAACA,WAAWA,IAAIA,eAAeA,CAACA,SAASA,CAACA,WAAWA,CAACA,CAACA;oBAC7EA,IAAIA,MAAMA,GAAGA,SAASA,CAACA,WAAWA,IAAIA,SAASA,CAACA,WAAWA,CAACA,MAAMA,CAACA;oBACnEA,EAAEA,CAACA,CAACA,CAACA,UAAUA,IAAIA,MAAMA,KAAKA,UAAUA,CAACA,CAACA,CAACA;wBACvCA,EAAEA,CAACA,CAACA,UAAUA,IAAIA,MAAMA,KAAKA,UAAUA,CAACA,CAACA,CAACA;4BACtCA,GAAGA,EAAEA,CAACA;wBACVA,CAACA;wBACDA,IAAIA,CAACA,CAACA;4BACFA,UAAUA,GAAGA,MAAMA,CAACA;4BACpBA,GAAGA,GAAGA,SAASA,CAACA;wBACpBA,CAACA;oBACLA,CAACA;oBACDA,IAAIA,CAACA,CAACA;wBAGFA,GAAGA,GAAGA,SAASA,GAAGA,MAAMA,CAACA,MAAMA,CAACA;wBAChCA,UAAUA,GAAGA,MAAMA,CAACA;oBACxBA,CAACA;oBACDA,UAAUA,GAAGA,MAAMA,CAACA;oBAEpBA,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,MAAMA,CAACA,MAAMA,EAAEA,CAACA,GAAGA,GAAGA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;wBACvCA,MAAMA,CAACA,CAACA,CAACA,GAAGA,MAAMA,CAACA,CAACA,GAAGA,CAACA,CAACA,CAACA;oBAC9BA,CAACA;oBACDA,MAAMA,CAACA,GAAGA,CAACA,GAAGA,SAASA,CAACA;gBAC5BA,CAACA;YACLA,CAACA;QACLF,CAACA;QAEDlT,SAASA,qBAAqBA,CAACA,IAAoBA,EAAEA,kBAA+BA;YAChFqT,EAAEA,CAACA,CAACA,IAAIA,CAACA,IAAIA,CAACA,IAAIA,KAAKA,qBAAuBA,CAACA,CAACA,CAACA;gBAC7CA,IAAIA,SAASA,GAAGA,oBAAoBA,CAACA,IAAIA,CAACA,IAAIA,CAACA,CAACA;gBAChDA,EAAEA,CAACA,CAACA,SAASA,KAAKA,WAAWA,CAACA,CAACA,CAACA;oBAC5BA,MAAMA,CAACA,WAAWA,CAACA,IAAIA,EAAEA,mBAAmBA,CAACA,SAASA,EAAEA,iBAAuBA,CAACA,EAAEA,kBAAkBA,CAACA,CAACA;gBAC1GA,CAACA;gBACDA,MAAMA,CAACA,kBAAkBA,CAACA,IAAIA,CAACA,CAACA;YACpCA,CAACA;YAEDA,IAAIA,QAAQA,GAAGA,eAAeA,CAACA,IAAIA,CAACA,IAAIA,CAACA,CAACA;YAC1CA,IAAIA,YAAYA,GAAGA,eAAeA,CAACA,QAAQA,CAACA,CAACA;YAE7CA,EAAEA,CAACA,CAACA,YAAYA,KAAKA,WAAWA,CAACA,CAACA,CAACA;gBAE/BA,MAAMA,CAACA,gBAAgBA,CAACA,IAAIA,CAACA,CAACA;YAClCA,CAACA;YAMDA,IAAIA,cAAcA,GAAGA,mBAAmBA,CAACA,YAAYA,EAAEA,YAAkBA,CAACA,CAACA;YAE3EA,IAAIA,mBAAmBA,GAAGA,mBAAmBA,CAACA,YAAYA,EAAEA,iBAAuBA,CAACA,CAACA;YAQrFA,EAAEA,CAACA,CAACA,QAAQA,KAAKA,OAAOA,IAAIA,CAACA,CAACA,cAAcA,CAACA,MAAMA,IAAIA,CAACA,mBAAmBA,CAACA,MAAMA,IAAIA,CAACA,CAACA,QAAQA,CAACA,KAAKA,GAAGA,iBAAeA,CAACA,IAAIA,kBAAkBA,CAACA,QAAQA,EAAEA,kBAAkBA,CAACA,CAACA,CAACA,CAACA,CAACA;gBAC7KA,EAAEA,CAACA,CAACA,IAAIA,CAACA,aAAaA,CAACA,CAACA,CAACA;oBACrBA,KAAKA,CAACA,IAAIA,EAAEA,cAAWA,CAACA,oDAAoDA,CAACA,CAACA;gBAClFA,CAACA;gBACDA,MAAMA,CAACA,kBAAkBA,CAACA,IAAIA,CAACA,CAACA;YACpCA,CAACA;YAIDA,EAAEA,CAACA,CAACA,CAACA,cAAcA,CAACA,MAAMA,CAACA,CAACA,CAACA;gBACzBA,EAAEA,CAACA,CAACA,mBAAmBA,CAACA,MAAMA,CAACA,CAACA,CAACA;oBAC7BA,KAAKA,CAACA,IAAIA,EAAEA,cAAWA,CAACA,2DAA2DA,EAAEA,YAAYA,CAACA,QAAQA,CAACA,CAACA,CAACA;gBACjHA,CAACA;gBACDA,IAAIA,CAACA,CAACA;oBACFA,KAAKA,CAACA,IAAIA,EAAEA,cAAWA,CAACA,6DAA6DA,CAACA,CAACA;gBAC3FA,CAACA;gBACDA,MAAMA,CAACA,gBAAgBA,CAACA,IAAIA,CAACA,CAACA;YAClCA,CAACA;YACDA,MAAMA,CAACA,WAAWA,CAACA,IAAIA,EAAEA,cAAcA,EAAEA,kBAAkBA,CAACA,CAACA;QACjEA,CAACA;QAEDrT,SAASA,oBAAoBA,CAACA,IAAmBA,EAAEA,kBAA+BA;YAC9EsT,IAAIA,cAAcA,GAAGA,eAAeA,CAACA,IAAIA,CAACA,IAAIA,CAACA,CAACA;YAIhDA,EAAEA,CAACA,CAACA,cAAcA,KAAKA,OAAOA,CAACA,CAACA,CAACA;gBAC7BA,EAAEA,CAACA,CAACA,IAAIA,CAACA,aAAaA,CAACA,CAACA,CAACA;oBACrBA,KAAKA,CAACA,IAAIA,EAAEA,cAAWA,CAACA,oDAAoDA,CAACA,CAACA;gBAClFA,CAACA;gBACDA,MAAMA,CAACA,kBAAkBA,CAACA,IAAIA,CAACA,CAACA;YACpCA,CAACA;YAODA,cAAcA,GAAGA,eAAeA,CAACA,cAAcA,CAACA,CAACA;YACjDA,EAAEA,CAACA,CAACA,cAAcA,KAAKA,WAAWA,CAACA,CAACA,CAACA;gBAEjCA,MAAMA,CAACA,gBAAgBA,CAACA,IAAIA,CAACA,CAACA;YAClCA,CAACA;YAMDA,IAAIA,mBAAmBA,GAAGA,mBAAmBA,CAACA,cAAcA,EAAEA,iBAAuBA,CAACA,CAACA;YACvFA,EAAEA,CAACA,CAACA,mBAAmBA,CAACA,MAAMA,CAACA,CAACA,CAACA;gBAC7BA,MAAMA,CAACA,WAAWA,CAACA,IAAIA,EAAEA,mBAAmBA,EAAEA,kBAAkBA,CAACA,CAACA;YACtEA,CAACA;YAMDA,IAAIA,cAAcA,GAAGA,mBAAmBA,CAACA,cAAcA,EAAEA,YAAkBA,CAACA,CAACA;YAC7EA,EAAEA,CAACA,CAACA,cAAcA,CAACA,MAAMA,CAACA,CAACA,CAACA;gBACxBA,IAAIA,SAASA,GAAGA,WAAWA,CAACA,IAAIA,EAAEA,cAAcA,EAAEA,kBAAkBA,CAACA,CAACA;gBACtEA,EAAEA,CAACA,CAACA,wBAAwBA,CAACA,SAASA,CAACA,KAAKA,QAAQA,CAACA,CAACA,CAACA;oBACnDA,KAAKA,CAACA,IAAIA,EAAEA,cAAWA,CAACA,uDAAuDA,CAACA,CAACA;gBACrFA,CAACA;gBACDA,MAAMA,CAACA,SAASA,CAACA;YACrBA,CAACA;YAEDA,KAAKA,CAACA,IAAIA,EAAEA,cAAWA,CAACA,gFAAgFA,CAACA,CAACA;YAC1GA,MAAMA,CAACA,gBAAgBA,CAACA,IAAIA,CAACA,CAACA;QAClCA,CAACA;QAEDtT,SAASA,+BAA+BA,CAACA,IAA8BA,EAAEA,kBAA+BA;YACpGuT,IAAIA,OAAOA,GAAGA,eAAeA,CAACA,IAAIA,CAACA,GAAGA,CAACA,CAACA;YACxCA,IAAIA,YAAYA,GAAGA,eAAeA,CAACA,OAAOA,CAACA,CAACA;YAE5CA,EAAEA,CAACA,CAACA,YAAYA,KAAKA,WAAWA,CAACA,CAACA,CAACA;gBAE/BA,MAAMA,CAACA,gBAAgBA,CAACA,IAAIA,CAACA,CAACA;YAClCA,CAACA;YAEDA,IAAIA,cAAcA,GAAGA,mBAAmBA,CAACA,YAAYA,EAAEA,YAAkBA,CAACA,CAACA;YAE3EA,EAAEA,CAACA,CAACA,OAAOA,KAAKA,OAAOA,IAAIA,CAACA,CAACA,cAAcA,CAACA,MAAMA,IAAIA,CAACA,CAACA,OAAOA,CAACA,KAAKA,GAAGA,iBAAeA,CAACA,IAAIA,kBAAkBA,CAACA,OAAOA,EAAEA,kBAAkBA,CAACA,CAACA,CAACA,CAACA,CAACA;gBAC3IA,MAAMA,CAACA,kBAAkBA,CAACA,IAAIA,CAACA,CAACA;YACpCA,CAACA;YAEDA,EAAEA,CAACA,CAACA,CAACA,cAAcA,CAACA,MAAMA,CAACA,CAACA,CAACA;gBACzBA,KAAKA,CAACA,IAAIA,EAAEA,cAAWA,CAACA,6DAA6DA,CAACA,CAACA;gBACvFA,MAAMA,CAACA,gBAAgBA,CAACA,IAAIA,CAACA,CAACA;YAClCA,CAACA;YAEDA,MAAMA,CAACA,WAAWA,CAACA,IAAIA,EAAEA,cAAcA,EAAEA,kBAAkBA,CAACA,CAACA;QACjEA,CAACA;QAIDvT,SAASA,oBAAoBA,CAACA,IAAwBA,EAAEA,kBAAgCA;YACpFwT,IAAIA,KAAKA,GAAGA,YAAYA,CAACA,IAAIA,CAACA,CAACA;YAK/BA,EAAEA,CAACA,CAACA,CAACA,KAAKA,CAACA,iBAAiBA,IAAIA,kBAAkBA,CAACA,CAACA,CAACA;gBACjDA,KAAKA,CAACA,iBAAiBA,GAAGA,YAAYA,CAACA;gBAEvCA,EAAEA,CAACA,CAACA,IAAIA,CAACA,IAAIA,KAAKA,wBAAyBA,CAACA,CAACA,CAACA;oBAC1CA,KAAKA,CAACA,iBAAiBA,GAAGA,qBAAqBA,CAAiBA,IAAIA,EAAEA,kBAAkBA,CAACA,CAACA;gBAC9FA,CAACA;gBACDA,IAAIA,CAACA,EAAEA,CAACA,CAACA,IAAIA,CAACA,IAAIA,KAAKA,uBAAwBA,CAACA,CAACA,CAACA;oBAC9CA,KAAKA,CAACA,iBAAiBA,GAAGA,oBAAoBA,CAAgBA,IAAIA,EAAEA,kBAAkBA,CAACA,CAACA;gBAC5FA,CAACA;gBACDA,IAAIA,CAACA,EAAEA,CAACA,CAACA,IAAIA,CAACA,IAAIA,KAAKA,kCAAmCA,CAACA,CAACA,CAACA;oBACzDA,KAAKA,CAACA,iBAAiBA,GAAGA,+BAA+BA,CAA2BA,IAAIA,EAAEA,kBAAkBA,CAACA,CAACA;gBAClHA,CAACA;gBACDA,IAAIA,CAACA,CAACA;oBACFA,QAAKA,CAACA,IAAIA,CAACA,yDAAyDA,CAACA,CAACA;gBAC1EA,CAACA;YACLA,CAACA;YACDA,MAAMA,CAACA,KAAKA,CAACA,iBAAiBA,CAACA;QACnCA,CAACA;QAEDxT,SAASA,mBAAmBA,CAACA,IAAoBA;YAC7CyT,IAAIA,SAASA,GAAGA,oBAAoBA,CAACA,IAAIA,CAACA,CAACA;YAC3CA,EAAEA,CAACA,CAACA,IAAIA,CAACA,IAAIA,CAACA,IAAIA,KAAKA,qBAAuBA,CAACA,CAACA,CAACA;gBAC7CA,MAAMA,CAACA,QAAQA,CAACA;YACpBA,CAACA;YACDA,EAAEA,CAACA,CAACA,IAAIA,CAACA,IAAIA,KAAKA,uBAAwBA,CAACA,CAACA,CAACA;gBACzCA,IAAIA,WAAWA,GAAGA,SAASA,CAACA,WAAWA,CAACA;gBACxCA,EAAEA,CAACA,CAACA,WAAWA,IACXA,WAAWA,CAACA,IAAIA,KAAKA,qBAAsBA,IAC3CA,WAAWA,CAACA,IAAIA,KAAKA,4BAA6BA,IAClDA,WAAWA,CAACA,IAAIA,KAAKA,yBAA0BA,CAACA,CAACA,CAACA;oBAGlDA,EAAEA,CAACA,CAACA,eAAeA,CAACA,aAAaA,CAACA,CAACA,CAACA;wBAChCA,KAAKA,CAACA,IAAIA,EAAEA,cAAWA,CAACA,kFAAkFA,CAACA,CAACA;oBAChHA,CAACA;oBACDA,MAAMA,CAACA,OAAOA,CAACA;gBACnBA,CAACA;YACLA,CAACA;YACDA,MAAMA,CAACA,wBAAwBA,CAACA,SAASA,CAACA,CAACA;QAC/CA,CAACA;QAEDzT,SAASA,6BAA6BA,CAACA,IAA8BA;YACjE0T,MAAMA,CAACA,wBAAwBA,CAACA,oBAAoBA,CAACA,IAAIA,CAACA,CAACA,CAACA;QAChEA,CAACA;QAED1T,SAASA,kBAAkBA,CAACA,IAAmBA;YAC3C2T,IAAIA,QAAQA,GAAGA,eAAeA,CAACA,IAAIA,CAACA,OAAOA,CAACA,CAACA;YAC7CA,IAAIA,UAAUA,GAAGA,mBAAmBA,CAACA,IAAIA,CAACA,IAAIA,CAACA,CAACA;YAChDA,EAAEA,CAACA,CAACA,aAAaA,IAAIA,UAAUA,KAAKA,WAAWA,CAACA,CAACA,CAACA;gBAC9CA,IAAIA,WAAWA,GAAGA,cAAcA,CAACA,QAAQA,EAAiCA,IAAIA,CAACA,CAACA;gBAChFA,EAAEA,CAACA,CAACA,CAACA,CAACA,kBAAkBA,CAACA,UAAUA,EAAEA,WAAWA,CAACA,CAACA,CAACA,CAACA,CAACA;oBACjDA,qBAAqBA,CAACA,QAAQA,EAAEA,UAAUA,EAAEA,IAAIA,EAAEA,cAAWA,CAACA,oDAAoDA,CAACA,CAACA;gBACxHA,CAACA;YACLA,CAACA;YACDA,MAAMA,CAACA,UAAUA,CAACA;QACtBA,CAACA;QAED3T,SAASA,iBAAiBA,CAACA,SAAoBA,EAAEA,GAAWA;YACxD4T,MAAMA,CAACA,SAASA,CAACA,gBAAgBA,GAC7BA,GAAGA,GAAGA,SAASA,CAACA,UAAUA,CAACA,MAAMA,GAAGA,CAACA,GAAGA,eAAeA,CAACA,SAASA,CAACA,UAAUA,CAACA,GAAGA,CAACA,CAACA,GAAGA,sBAAsBA,CAACA,SAASA,CAACA,GACtHA,GAAGA,GAAGA,SAASA,CAACA,UAAUA,CAACA,MAAMA,GAAGA,eAAeA,CAACA,SAASA,CAACA,UAAUA,CAACA,GAAGA,CAACA,CAACA,GAAGA,OAAOA,CAACA;QACjGA,CAACA;QAED5T,SAASA,8BAA8BA,CAACA,SAAoBA,EAAEA,OAAkBA,EAAEA,MAAkBA;YAChG6T,IAAIA,GAAGA,GAAGA,SAASA,CAACA,UAAUA,CAACA,MAAMA,GAAGA,CAACA,SAASA,CAACA,gBAAgBA,GAAGA,CAACA,GAAGA,CAACA,CAACA,CAACA;YAC7EA,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,GAAGA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;gBAC3BA,IAAIA,SAASA,GAAGA,SAASA,CAACA,UAAUA,CAACA,CAACA,CAACA,CAACA;gBACxCA,IAAIA,KAAKA,GAAGA,cAAcA,CAACA,SAASA,CAACA,CAACA;gBACtCA,KAAKA,CAACA,IAAIA,GAAGA,eAAeA,CAACA,iBAAiBA,CAACA,OAAOA,EAAEA,CAACA,CAACA,EAAEA,MAAMA,CAACA,CAACA;YACxEA,CAACA;YACDA,EAAEA,CAACA,CAACA,SAASA,CAACA,gBAAgBA,IAAIA,OAAOA,CAACA,gBAAgBA,IAAIA,SAASA,CAACA,UAAUA,CAACA,MAAMA,IAAIA,OAAOA,CAACA,UAAUA,CAACA,MAAMA,CAACA,CAACA,CAACA;gBACrHA,IAAIA,SAASA,GAAGA,SAASA,CAACA,UAAUA,CAACA,SAASA,CAACA,UAAUA,CAACA,MAAMA,GAAGA,CAACA,CAACA,CAACA;gBACtEA,IAAIA,KAAKA,GAAGA,cAAcA,CAACA,SAASA,CAACA,CAACA;gBACtCA,KAAKA,CAACA,IAAIA,GAAGA,eAAeA,CAACA,eAAeA,CAACA,OAAOA,CAACA,UAAUA,CAACA,OAAOA,CAACA,UAAUA,CAACA,MAAMA,GAAGA,CAACA,CAACA,CAACA,EAAEA,MAAMA,CAACA,CAACA;YAC7GA,CAACA;QACLA,CAACA;QAED7T,SAASA,qBAAqBA,CAACA,IAA6BA,EAAEA,gBAA6BA;YACvF8T,IAAIA,mBAAmBA,GAAGA,sBAAsBA,CAACA,IAAIA,CAACA,CAACA;YACvDA,EAAEA,CAACA,CAACA,IAAIA,CAACA,IAAIA,CAACA,IAAIA,KAAKA,uBAAwBA,CAACA,CAACA,CAACA;gBAC9CA,IAAIA,aAAaA,GAAGA,sBAAsBA,CAACA,IAAIA,CAACA,IAAIA,EAAEA,gBAAgBA,CAACA,CAACA;gBACxEA,IAAIA,WAAWA,GAAGA,cAAcA,CAACA,aAAaA,CAACA,CAACA;gBAEhDA,EAAEA,CAACA,CAACA,aAAaA,IAAIA,eAAeA,CAACA,aAAaA,IAAIA,CAACA,mBAAmBA,IAAIA,WAAWA,KAAKA,aAAaA,IAAIA,kCAAkCA,CAACA,WAAWA,CAACA,KAAKA,OAAOA,CAACA,CAACA,CAACA;oBACzKA,KAAKA,CAACA,IAAIA,EAAEA,cAAWA,CAACA,sFAAsFA,EAAEA,YAAYA,CAACA,WAAWA,CAACA,CAACA,CAACA;gBAC/IA,CAACA;gBAEDA,MAAMA,CAACA,WAAWA,CAACA;YACvBA,CAACA;YAGDA,IAAIA,KAAKA,GAAGA,sCAAsCA,CAAQA,IAAIA,CAACA,IAAIA,EAAEA,gBAAgBA,CAACA,CAACA;YAGvFA,EAAEA,CAACA,CAACA,KAAKA,CAACA,MAAMA,GAAGA,CAACA,CAACA,CAACA,CAACA;gBAGnBA,IAAIA,UAAUA,GAAGA,mBAAmBA,GAAGA,YAAYA,CAACA,KAAKA,CAACA,GAAGA,kBAAkBA,CAACA,KAAKA,CAACA,CAACA;gBACvFA,EAAEA,CAACA,CAACA,CAACA,UAAUA,CAACA,CAACA,CAACA;oBACdA,KAAKA,CAACA,IAAIA,EAAEA,cAAWA,CAACA,mDAAmDA,CAACA,CAACA;oBAE7EA,MAAMA,CAACA,WAAWA,CAACA;gBACvBA,CAACA;gBAEDA,IAAIA,WAAWA,GAAGA,cAAcA,CAACA,UAAUA,CAACA,CAACA;gBAG7CA,EAAEA,CAACA,CAACA,aAAaA,IAAIA,eAAeA,CAACA,aAAaA,IAAIA,CAACA,mBAAmBA,IAAIA,WAAWA,KAAKA,UAAUA,IAAIA,kCAAkCA,CAACA,WAAWA,CAACA,KAAKA,OAAOA,CAACA,CAACA,CAACA;oBACtKA,IAAIA,QAAQA,GAAGA,YAAYA,CAACA,WAAWA,CAACA,CAACA;oBAEzCA,EAAEA,CAACA,CAACA,IAAIA,CAACA,IAAIA,CAACA,CAACA,CAACA;wBACZA,KAAKA,CAACA,IAAIA,EAAEA,cAAWA,CAACA,qEAAqEA,EAAEA,0BAAuBA,CAACA,IAAIA,CAACA,IAAIA,CAACA,EAAEA,QAAQA,CAACA,CAACA;oBACjJA,CAACA;oBACDA,IAAIA,CAACA,CAACA;wBACFA,KAAKA,CAACA,IAAIA,EAAEA,cAAWA,CAACA,sFAAsFA,EAAEA,QAAQA,CAACA,CAACA;oBAC9HA,CAACA;gBACLA,CAACA;gBAEDA,MAAMA,CAACA,WAAWA,CAACA;YACvBA,CAACA;YAEDA,MAAMA,CAACA,QAAQA,CAACA;QACpBA,CAACA;QAGD9T,SAASA,sCAAsCA,CAACA,IAAWA,EAAEA,gBAA6BA;YACtF+T,IAAIA,eAAeA,GAAWA,EAAEA,CAACA;YAEjCA,yBAAsBA,CAACA,IAAIA,EAAEA,UAAAA,eAAkBA;gBAC3CA,IAAIA,IAAIA,GAAGA,eAAeA,CAACA,UAAUA,CAACA;gBACtCA,EAAEA,CAACA,CAACA,IAAIA,CAACA,CAACA,CAACA;oBACPA,IAAIA,IAAIA,GAAGA,sBAAsBA,CAACA,IAAIA,EAAEA,gBAAgBA,CAACA,CAACA;oBAC1DA,EAAEA,CAACA,CAACA,CAACA,WAAQA,CAACA,eAAeA,EAAEA,IAAIA,CAACA,CAACA,CAACA,CAACA;wBACnCA,eAAeA,CAACA,IAAIA,CAACA,IAAIA,CAACA,CAACA;oBAC/BA,CAACA;gBACLA,CAACA;YACLA,CAACA,CAACA,CAACA;YAEHA,MAAMA,CAACA,eAAeA,CAACA;QAC3BA,CAACA;QAED/T,SAASA,4BAA4BA,CAACA,QAAeA;YACjDgU,MAAMA,CAACA,yBAAsBA,CAACA,QAAQA,EAAEA,UAAAA,eAAkBA;gBACtDA,MAAMA,CAACA,IAAIA,CAACA;YAChBA,CAACA,CAACA,CAACA;QACPA,CAACA;QAEDhU,SAASA,gCAAgCA,CAACA,IAAWA;YACjDiU,MAAMA,CAACA,CAACA,IAAIA,CAACA,UAAUA,CAACA,MAAMA,KAAKA,CAACA,CAACA,IAAIA,CAACA,IAAIA,CAACA,UAAUA,CAACA,CAACA,CAACA,CAACA,IAAIA,KAAKA,wBAAyBA,CAACA,CAACA;QACrGA,CAACA;QAMDjU,SAASA,+DAA+DA,CAACA,IAA6BA,EAAEA,UAAgBA;YACpHkU,EAAEA,CAACA,CAACA,CAACA,aAAaA,CAACA,CAACA,CAACA;gBACjBA,MAAMA,CAACA;YACXA,CAACA;YAGDA,EAAEA,CAACA,CAACA,UAAUA,KAAKA,QAAQA,IAAIA,UAAUA,KAAKA,OAAOA,CAACA,CAACA,CAACA;gBACpDA,MAAMA,CAACA;YACXA,CAACA;YAGDA,EAAEA,CAACA,CAACA,CAACA,IAAIA,CAACA,IAAIA,IAAIA,IAAIA,CAACA,IAAIA,CAACA,IAAIA,KAAKA,uBAAwBA,CAACA,CAACA,CAACA;gBAC5DA,MAAMA,CAACA;YACXA,CAACA;YAEDA,IAAIA,SAASA,GAAUA,IAAIA,CAACA,IAAIA,CAACA;YAGjCA,EAAEA,CAACA,CAACA,4BAA4BA,CAACA,SAASA,CAACA,CAACA,CAACA,CAACA;gBAC1CA,MAAMA,CAACA;YACXA,CAACA;YAKDA,EAAEA,CAACA,CAACA,gCAAgCA,CAACA,SAASA,CAACA,CAACA,CAACA,CAACA;gBAC9CA,MAAMA,CAACA;YACXA,CAACA;YAGDA,KAAKA,CAACA,IAAIA,CAACA,IAAIA,EAAEA,cAAWA,CAACA,iHAAiHA,CAACA,CAACA;QACpJA,CAACA;QAEDlU,SAASA,uBAAuBA,CAACA,IAAwBA,EAAEA,gBAA6BA;YAEpFmU,EAAEA,CAACA,CAACA,gBAAgBA,KAAKA,cAAcA,CAACA,CAACA,CAACA;gBACtCA,MAAMA,CAACA,eAAeA,CAACA;YAC3BA,CAACA;YACDA,IAAIA,KAAKA,GAAGA,YAAYA,CAACA,IAAIA,CAACA,CAACA;YAC/BA,IAAIA,IAAIA,GAAGA,eAAeA,CAACA,IAAIA,CAACA,MAAMA,CAACA,CAACA;YAExCA,EAAEA,CAACA,CAACA,CAACA,CAACA,KAAKA,CAACA,KAAKA,GAAGA,uBAA6BA,CAACA,CAACA,CAACA,CAACA;gBACjDA,IAAIA,mBAAmBA,GAAGA,sBAAsBA,CAACA,IAAIA,CAACA,CAACA;gBAIvDA,EAAEA,CAACA,CAACA,CAACA,CAACA,KAAKA,CAACA,KAAKA,GAAGA,uBAA6BA,CAACA,CAACA,CAACA,CAACA;oBACjDA,KAAKA,CAACA,KAAKA,IAAIA,uBAA6BA,CAACA;oBAC7CA,EAAEA,CAACA,CAACA,mBAAmBA,CAACA,CAACA,CAACA;wBACtBA,IAAIA,SAASA,GAAGA,mBAAmBA,CAACA,IAAIA,EAAEA,YAAkBA,CAACA,CAACA,CAACA,CAACA,CAACA;wBACjEA,EAAEA,CAACA,CAACA,4BAA4BA,CAACA,IAAIA,CAACA,CAACA,CAACA,CAACA;4BACrCA,8BAA8BA,CAACA,SAASA,EAAEA,mBAAmBA,EAAEA,gBAAgBA,IAAIA,cAAcA,CAACA,CAACA;wBACvGA,CAACA;wBACDA,EAAEA,CAACA,CAACA,CAACA,IAAIA,CAACA,IAAIA,CAACA,CAACA,CAACA;4BACbA,SAASA,CAACA,kBAAkBA,GAAGA,aAAaA,CAACA;4BAC7CA,IAAIA,UAAUA,GAAGA,qBAAqBA,CAACA,IAAIA,EAAEA,gBAAgBA,CAACA,CAACA;4BAC/DA,EAAEA,CAACA,CAACA,SAASA,CAACA,kBAAkBA,KAAKA,aAAaA,CAACA,CAACA,CAACA;gCACjDA,SAASA,CAACA,kBAAkBA,GAAGA,UAAUA,CAACA;4BAC9CA,CAACA;wBACLA,CAACA;oBACLA,CAACA;oBACDA,yBAAyBA,CAACA,IAAIA,CAACA,CAACA;gBACpCA,CAACA;YACLA,CAACA;YACDA,MAAMA,CAACA,IAAIA,CAACA;QAChBA,CAACA;QAEDnU,SAASA,2BAA2BA,CAACA,IAAwBA;YACzDoU,EAAEA,CAACA,CAACA,IAAIA,CAACA,IAAIA,CAACA,CAACA,CAACA;gBACZA,+DAA+DA,CAACA,IAAIA,EAAEA,mBAAmBA,CAACA,IAAIA,CAACA,IAAIA,CAACA,CAACA,CAACA;YAC1GA,CAACA;YACDA,EAAEA,CAACA,CAACA,IAAIA,CAACA,IAAIA,CAACA,IAAIA,KAAKA,uBAAwBA,CAACA,CAACA,CAACA;gBAC9CA,kBAAkBA,CAACA,IAAIA,CAACA,IAAIA,CAACA,CAACA;YAClCA,CAACA;YACDA,IAAIA,CAACA,CAACA;gBACFA,IAAIA,QAAQA,GAAGA,eAAeA,CAACA,IAAIA,CAACA,IAAIA,CAACA,CAACA;gBAC1CA,EAAEA,CAACA,CAACA,IAAIA,CAACA,IAAIA,CAACA,CAACA,CAACA;oBACZA,qBAAqBA,CAACA,QAAQA,EAAEA,mBAAmBA,CAACA,IAAIA,CAACA,IAAIA,CA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BACnCA,4BAA4BA,CAACA,oBAAoBA,CAACA,WAAWA,CAACA,CAACA;YACnEA,CAACA;QACLA,CAACA;QAED5V,SAASA,yBAAyBA,CAACA,IAA0BA;YACzD8V,mBAAmBA,CAACA,IAAIA,CAACA,cAAcA,CAACA,CAACA;YACzCA,UAAOA,CAACA,IAAIA,CAACA,UAAUA,EAAEA,cAAcA,CAACA,CAACA;YACzCA,EAAEA,CAACA,CAACA,IAAIA,CAACA,IAAIA,CAACA,CAACA,CAACA;gBACZA,kBAAkBA,CAACA,IAAIA,CAACA,IAAIA,CAACA,CAACA;YAClCA,CAACA;YACDA,EAAEA,CAACA,CAACA,aAAaA,CAACA,CAACA,CAACA;gBAChBA,uCAAuCA,CAACA,IAAIA,EAAEA,IAAIA,CAACA,IAAIA,CAACA,CAACA;gBACzDA,sCAAsCA,CAACA,IAAIA,EAAEA,IAAIA,CAACA,IAAIA,CAACA,CAACA;gBACxDA,+CAA+CA,CAACA,IAAIA,EAAEA,IAAIA,CAACA,IAAIA,CAACA,CAACA;gBACjEA,0CAA0CA,CAACA,IAAIA,CAACA,CAACA;gBACjDA,EAAEA,CAACA,CAACA,eAAeA,CAACA,aAAaA,IAAIA,CAACA,IAAIA,CAACA,IAAIA,CAACA,CAACA,CAACA;oBAC9CA,MAAMA,CAACA,CAACA,IAAIA,CAACA,IAAIA,CAACA,CAACA,CAACA;wBAChBA,KAAKA,4BAA6BA;4BAC9BA,KAAKA,CAACA,IAAIA,EAAEA,cAAWA,CAACA,wFAAwFA,CAACA,CAACA;4BAClHA,KAAKA,CAACA;wBACVA,KAAKA,uBAAwBA;4BACzBA,KAAKA,CAACA,IAAIA,EAAEA,cAAWA,CAACA,mFAAmFA,CAACA,CAACA;4BAC7GA,KAAKA,CAACA;oBACdA,CAACA;gBACLA,CAACA;YACLA,CAACA;YAEDA,oCAAoCA,CAACA,IAAIA,CAACA,CAACA;QAC/CA,CAACA;QAED9V,SAASA,oCAAoCA,CAACA,IAAUA;YACpD+V,EAAEA,CAACA,CAACA,IAAIA,CAACA,IAAIA,KAAKA,8BAA+BA,CAACA,CAACA,CAACA;gBAChDA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ACA,EAAEA,YAAYA,CAACA,IAAIA,CAACA,CAACA,CAACA;oBAC1OA,CAACA;gBACLA,CAACA;YACLA,CAACA;QACLA,CAACA;QAEDhY,SAASA,sBAAsBA,CAACA,IAAuBA;YACnDiY,UAAOA,CAACA,IAAIA,CAACA,YAAYA,EAAEA,wBAAwBA,CAACA,CAACA;QACzDA,CAACA;QAEDjY,SAASA,wBAAwBA,CAACA,IAAyBA;YACvDkY,eAAeA,CAACA,IAAIA,CAACA,UAAUA,CAACA,CAACA;QACrCA,CAACA;QAEDlY,SAASA,gBAAgBA,CAACA,IAAiBA;YACvCmY,eAAeA,CAACA,IAAIA,CAACA,UAAUA,CAACA,CAACA;YACjCA,kBAAkBA,CAACA,IAAIA,CAACA,aAAaA,CAACA,CAACA;YACvCA,kBAAkBA,CAACA,IAAIA,CAACA,aAAaA,CAACA,CAACA;QAC3CA,CAACA;QAEDnY,SAASA,gBAAgBA,CAACA,IAAiBA;YACvCoY,kBAAkBA,CAACA,IAAIA,CAACA,SAASA,CAACA,CAACA;YACnCA,eAAeA,CAACA,IAAIA,CAACA,UAAUA,CAACA,CAACA;QACrCA,CAACA;QAEDpY,SAASA,mBAAmBA,CAACA,IAAoBA;YAC7CqY,eAAeA,CAACA,IAAIA,CAACA,UAAUA,CAACA,CAACA;YACjCA,kBAAkBA,CAACA,IAAIA,CAACA,SAASA,CAACA,CAACA;QACvCA,CAACA;QAEDrY,SAASA,iBAAiBA,CAACA,IAAkBA;YACzCsY,EAAEA,CAACA,CAACA,IAAIA,CAACA,YAAYA,CAACA;gBAACA,UAAOA,CAACA,IAAIA,CAACA,YAAYA,EAAEA,wBAAwBA,CAACA,CAACA;YAC5EA,EAAEA,CAACA,CAACA,IAAIA,CAACA,WAAWA,CAACA;gBAACA,eAAeA,CAACA,IAAIA,CAACA,WAAWA,CAACA,CAACA;YACxDA,EAAEA,CAACA,CAACA,IAAIA,CAACA,SAASA,CAACA;gBAACA,eAAeA,CAACA,IAAIA,CAACA,SAASA,CAACA,CAACA;YACpDA,EAAEA,CAACA,CAACA,IAAIA,CAACA,QAAQA,CAACA;gBAACA,e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CA;4BAC1BA,EAAEA,CAACA,CAACA,WAAWA,CAACA,CAACA,CAACA;gCACdA,KAAKA,CAACA,WAAWA,EAAEA,cAAWA,CAACA,yEAAyEA,CAACA,CAACA;4BAC9GA,CAACA;4BACDA,IAAIA,CAACA,EAAEA,CAACA,CAACA,CAACA,OAAOA,CAACA,CAACA,CAACA;gCAKpBA,qBAAqBA,CAACA,eAAeA,CAACA,WAAWA,CAACA,EAAEA,QAAQA,EAAEA,WAAWA,EAAkBA,SAASA,CAACA,CAACA;4BACtGA,CAACA;wBACLA,CAACA;wBACDA,IAAIA,CAACA,EAAEA,CAACA,CAACA,WAAWA,CAACA,CAACA,CAACA;4BACnBA,EAAEA,CAACA,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,4BAAiCA,CAACA;YACzDA,CAACA;YAEDA,SAASA,wCAAwCA,CAACA,WAAuBA,EAAEA,WAAoBA;gBAC3FC,MAAMA,CAACA,YAAYA,CAACA,WAAWA,CAACA,CAACA;gBAEjCA,SAASA,YAAYA,CAACA,CAAOA;oBACzB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CAACA,CAACA;gBAClCA,EAAEA,CAACA,CAACA,CAACA,WAAWA,CAACA,IAAIA,KAAKA,0BAA2BA,IAAIA,CAACA,WAAWA,CAACA,IAAIA,KAAKA,6BAA8BA,IAA8BA,WAAYA,CAACA,IAAIA,CAACA,CAACA,IAAIA,CAACA,qBAAkBA,CAACA,WAAWA,CAACA,CAACA,CAACA,CAACA;oBACjMA,MAAMA,CAACA,WAAWA,CAACA;gBACvBA,CAACA;YACLA,CAACA;YACDA,MAAMA,CAACA,SAASA,CAACA;QACrBA,CAACA;QAED/Z,SAASA,sBAAsBA,CAACA,IAAuBA;YACnDga,EAAEA,CAACA,CAACA,aAAaA,CAACA,CAACA,CAACA;gBAChBA,sCAAsCA,CAACA,IAAIA,EAAEA,IAAIA,CAACA,IAAIA,CAACA,CAACA;gBACxDA,+CAA+CA,CAACA,IAAIA,EAAEA,IAAIA,CAACA,IAAIA,CAACA,CAACA;gBACjEA,gCAAgCA,CAACA,IAAIA,CAACA,CAACA;gBACvCA,IAAIA,MAAMA,GAAGA,eAAeA,CAACA,IAAIA,CAACA,CAACA;gBACnCA,EAAEA,CAACA,CAACA,MAAMA,CAACA,KAAKA,GAAGA,qBAAuBA,IAAIA,MAAMA,CAACA,YAAYA,CAACA,MAAMA,GAAGA,CAACA,IAAIA,CAACA,qBAAkBA,CAACA,IAAIA,CAACA,CAACA,CAACA,CAACA;oBACxGA,IAAIA,WAAWA,GAAGA,4CAA4CA,CAACA,MAAMA,CAACA,CAACA;oBACvEA,EAAEA,CAACA,CAACA,WAAWA,CAACA,CAACA,CAACA;wBACdA,EAAEA,CAACA,CAACA,sBAAmBA,CAACA,IAAIA,CAACA,KAAKA,sBAAmBA,CAACA,WAAWA,CAACA,CAACA,CAACA,CAACA;4BACjEA,KAAKA,CAACA,IAAIA,CAACA,IAAIA,EAAEA,cAAWA,CAACA,mGAAmGA,CAACA,CAACA;wBACtIA,CAACA;wBACDA,IAAIA,CAACA,EAAEA,CAACA,CAACA,IAAIA,CAACA,GAAGA,GAAGA,WAAWA,CAACA,GAAGA,CAACA,CAACA,CAACA;4BAClCA,KAAKA,CAACA,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AACA,EAAEA,CAACA,EAAEA,CAACA,EAAEA,CAACA,EAAEA,CAACA,EAAEA,CAACA,EAAEA,CAACA,EAAEA,CAACA,EAAEA,CAACA,EAAEA,EAAEA,EAAEA,CAACA,EAAEA,CAACA,EAAEA,CAACA,EAAEA,CAACA,EAAEA,CAACA,EAAEA,CAACA,EAAEA,CAACA,EAAEA,CAACA,EAAEA,CAACA,EAAEA,CAACA,EAAEA,CAACA,EAAEA,CAACA,EAAEA,CAACA,EAAEA,CAACA,EAAEA,CAACA,EAAEA,CAACA,EAAEA,CAACA,EAAEA,CAACA,EAAEA,CAACA,EAAEA,CAACA,EAAEA,EAAEA,EAAEA,CAACA,EAAEA,CAACA,EAAEA,CAACA,EAAEA,CAACA,EAAEA,CAACA,EAAEA,CAACA,EAAEA,CAACA,EAAEA,CAACA,EAAEA,CAACA,EAAEA,CAACA,EAAEA,CAACA,EAAEA,CAACA,EAAEA,EAAEA,EAAEA,CAACA,EAAEA,CAACA,EAAEA,CAACA,EAAEA,CAACA,EAAEA,CAACA,EAAEA,CAACA,EAAEA,CAACA,EAAEA,CAACA,EAAEA,CAACA,EAAEA,CAACA,EAAEA,CAACA,EAAEA,CAACA,EAAEA,CAACA,EAAEA,CAACA,EAAEA,CAACA,EAAEA,CAACA,EAAEA,CAACA,EAAEA,CAACA,EAAEA,CAACA,EAAEA,CAACA,EAAEA,CAACA,EAAEA,CAACA,EAAEA,CAACA,EAAEA,CAACA,EAAEA,CAACA,EAAEA,CAACA,EAAEA,CAACA,EAAEA,CAACA,EAAEA,CAACA,EAAEA,CAACA,EAAEA,CAACA,EAAEA,CAACA,EAAEA,CAACA,EAAEA,CAACA,EAAEA,CAACA,EAAEA,CAACA,EAAEA,CAACA,EAAEA,CAACA,EAAEA,CAACA,EAAEA,CAACA,EAAEA,CAACA,EAAEA,CAACA,EAAEA,CAACA,EAAEA,CAACA,EAAEA,CAACA,EAAEA,CAACA,EAAEA,CAACA,EAAEA,CAACA,EAAEA,CAACA,EAAEA,CAACA,EAAEA,CAACA,EAAEA,CAACA,EAAEA,CAACA,EAAEA,CAACA,EAAEA,CAACA,EAAEA,CAACA,EAAEA,C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AACA,EAAEA,CAACA,CAACA,GAAGA,KAAKA,iBAAuBA,CAACA,CAACA,CAACA;oBACvCA,KAAKA,EAAEA,CAACA;oBACRA,EAAEA,CAACA,CAACA,GAAGA,CAACA,UAAUA,CAACA,KAAKA,CAACA,KAAKA,eAAqBA,CAACA,CAACA,CAACA;wBAClDA,KAAKA,EAAEA,CAACA;wBACRA,MAAMA,CAACA,qCAAsCA,CAACA;oBAClDA,CAACA;oBACDA,IAAIA,CAACA,CAACA;wBACFA,MAAMA,CAACA,8BAAgCA,CAACA;oBAC5CA,CAACA;gBACLA,CAACA;gBACDA,IAAIA,CAACA,CAACA;oBACFA,MAAMA,CAACA,sBAAwBA,CAACA;gBACpCA,CAACA;YACLA,CAACA;YAED7B,SAASA,oBAAoBA,CAACA,oBAA6BA;gBACvD8B,EAAEA,CAACA,CAACA,oBAAoBA,CAACA,CAACA,CAACA;oBACvBA,IAAIA,GAAGA,GAAGA,GAAGA,CAACA,UAAUA,CAACA,KAAKA,CAACA,CAACA;oBAChCA,EAAEA,CAACA,CAACA,GAAGA,KAAKA,oBAA0BA,CAACA,CAACA,CAACA;wBAErCA,KAAKA,EAAEA,CAACA;wBACRA,IAAIA,GAAGA,GAAGA,GAAGA,CAACA,UAAUA,CAACA,KAAKA,CAACA,CAACA;wBAChCA,EAAEA,CAACA,CAACA,GAAGA,KAAKA,oBAA0BA,CAACA,CAACA,CAACA;4BAErCA,KAAKA,EAAEA,CAACA;4BACRA,IAAIA,GAAGA,GAAGA,GAAGA,CAACA,UAAUA,CAACA,KAAKA,CAACA,CAACA;4BAChCA,EAAEA,CAACA,CAACA,GAAGA,KAAKA,eAAqBA,CAACA,CAACA,CAACA;gCAEhCA,KAAKA,EAAEA,CAACA;gCACRA,MAAMA,CAACA,sDAAuDA,CAACA;4BACnEA,CAACA;4BACDA,IAAIA,CAACA,CAACA;gCACFA,MAAMA,CAACA,gDAAiDA,CAACA;4BAC7DA,CAACA;wBACLA,CAACA;wBACDA,IAAIA,CAACA,EAAEA,CAACA,CAACA,GAAGA,KAAKA,eAAqBA,CAACA,CAACA,CAACA;4BAErCA,KAAKA,EAAEA,CAACA;4BACRA,MAAMA,CAACA,2CAA4CA,CAACA;wBACxDA,CAACA;wBACDA,IAAIA,CAACA,CAACA;4BACFA,MAAMA,CAACA,qCAAsCA,CAACA;wBAClDA,CAACA;oBACLA,CAACA;oBACDA,IAAIA,CAACA,EAAEA,CAACA,CAACA,GAAGA,KAAKA,eAAqBA,CAACA,CAACA,CAACA;wBAErCA,KAAKA,EAAEA,CAACA;wBACRA,MAAMA,CAACA,+BAAiCA,CAACA;oBAC7CA,CAACA;gBACLA,CAACA;gBAEDA,MAAMA,CAACA,yBAA2BA,CAACA;YACvCA,CAACA;YAED9B,SAASA,YAAYA;gBACjB+B,IAAIA,EAAEA,GAAGA,GAAGA,CAACA,UAAUA,CAACA,KAAKA,CAACA,CAACA;gBAC/BA,EAAEA,CAACA,CAACA,EAAEA,KAAKA,eAAqBA,CAACA,CAACA,CAACA;oBAC/BA,KAAKA,EAAEA,CAACA;oBACRA,MAAMA,CAACA,wBAAyBA,CAACA;gBACrCA,CAACA;gBACDA,IAAIA,CAACA,EAAEA,CAACA,CAACA,EAAEA,KAAKA,aAAkBA,CAACA,CAACA,CAACA;oBACjCA,KAAKA,EAAEA,CAACA;oBACRA,MAAMA,CAACA,qBAAsBA,CAACA;gBAClCA,CAACA;gBACDA,IAAIA,CAACA,CAACA;oBACFA,MAAMA,CAACA,kBAAmBA,CAACA;gBAC/BA,CAACA;YACLA,CAACA;YAED/B,SAASA,cAAcA;gBACnBgC,EAAEA,CAACA,CAACA,GAAGA,CAACA,UAAUA,CAACA,KAAKA,CAACA,KAAKA,eAAqBA,CAACA,CAACA,CAACA;oBAClDA,KAAKA,EAAEA,CAACA;oBACRA,MAAMA,CAACA,0BAA2BA,CAACA;gBACvCA,CAACA;gBACDA,IAAIA,CAACA,CAACA;oBACFA,MAAMA,CAACA,oBAAqBA,CAACA;gBACjCA,CAACA;YACLA,CAACA;YAEDhC,SAASA,mBAAmBA,CAACA,oBAA6BA,EAAEA,SAAiBA;gBACzEiC,MAAMA,CAACA,oBAAoBA,GAAGA,iBAAiBA,CAACA,SAASA,CAACA,GAAGA,wBAA0BA,CAACA;YAC5FA,CAACA;YAEDjC,SAASA,iBAAiBA,CAACA,SAAiBA;gBACxCkC,IAAIA,mBAAmBA,GAAGA,SAASA,KAAKA,iBAAuBA,CAACA;gBAEhEA,OAAOA,IAAIA,EAAEA,CAACA;oBACVA,EAAEA,CAACA,CAACA,KAAKA,KAAKA,GAAGA,CAACA,CAACA,CAACA;wBAEhBA,gBAAgBA,CAACA,GAAGA,EAAEA,CAACA,EAAEA,yBAAcA,CAACA,6BAA6BA,CAACA,CAACA;wBACvEA,KAAKA,CAACA;oBACVA,CAACA;oBAEDA,IAAIA,EAAEA,GAAGA,GAAGA,CAACA,UAAUA,CAACA,KAAKA,CAACA,CAACA;oBAC/BA,KAAKA,EAAEA,CAACA;oBAERA,EAAEA,CAACA,CAACA,EAAEA,KAAKA,iBAAuBA,CAACA,CAACA,CAACA;wBACjCA,KAAKA,CAACA;oBACVA,CAACA;oBAEDA,EAAEA,CAACA,CAACA,EAAEA,KAAKA,UAAgBA,IACvBA,KAAKA,GAAGA,GAAGA,IACXA,GAAGA,CAACA,UAAUA,CAACA,KAAKA,CAACA,KAAKA,mBAAwBA,CAACA,CAACA,CAACA;wBAErDA,KAAKA,EAAEA,CAACA;wBACRA,MAAMA,CAACA,mBAAmBA,GAAGA,2BAA6BA,GAAGA,4BAA8BA,CAACA;oBAChGA,CAACA;gBACLA,CAACA;gBAEDA,MAAMA,CAACA,mBAAmBA,GAAGA,oCAAsCA,GAAGA,yBAA2BA,CAACA;YACtGA,CAACA;YAEDlC,SAASA,kBAAkBA;gBACvBmC,IAAIA,SAASA,GAAGA,GAAGA,CAACA,UAAUA,CAACA,KAAKA,CAACA,CAACA;gBACtCA,EAAEA,CAACA,CAACA,SAASA,KAAKA,eAAqBA,CAACA,CAACA,CAACA;oBACtCA,KAAKA,EAAEA,CAACA;oBACRA,MAAMA,CAACA,8BAA+BA,CAACA;gBAC3CA,CAACA;gBACDA,IAAIA,CAACA,EAAEA,CAACA,CAACA,SAASA,KAAKA,kBAAwBA,CAACA,CAACA,CAACA;oBAC9CA,KAAKA,EAAEA,CAACA;oBACRA,MAAMA,CAACA,iCAAkCA,CAACA;gBAC9CA,CAACA;gBACDA,IAAIA,CAACA,CAACA;oBACFA,MAAMA,CAACA,wBAAyBA,CAACA;gBACrCA,CAACA;YACLA,CAACA;YAEDnC,SAASA,gBAAgBA;gBACrBoC,EAAEA,CAACA,CAACA,GAAGA,CAACA,UAAUA,CAACA,KAAKA,CAACA,KAAKA,eAAqBA,CAACA,CAACA,CAACA;oBAClDA,KAAKA,EAAEA,CAACA;oBACRA,MAAMA,CAACA,4BAA6BA,CAACA;gBACzCA,CAACA;gBACDA,IAAIA,CAACA,CAACA;oBACFA,MAAMA,CAACA,qBAAuBA,CAACA;gBACnCA,CAACA;YACLA,CAACA;YAEDpC,SAASA,cAAcA;gBACnBqC,IAAIA,SAASA,GAAGA,GAAGA,CAACA,UAAUA,CAACA,KAAKA,CAACA,CAACA;gBAEtCA,EAAEA,CAACA,CAACA,SAASA,KAAKA,eAAqBA,CAACA,CAACA,CAACA;oBACtCA,KAAKA,EAAEA,CAACA;oBACRA,MAAMA,CAACA,0BAA2BA,CAACA;gBACvCA,CAACA;gBACDA,IAAIA,CAACA,EAAEA,CAACA,CAACA,SAASA,KAAKA,cAAoBA,CAACA,CAACA,CAACA;oBAC1CA,KAAKA,EAAEA,CAACA;oBACRA,MAAMA,CAACA,wBAA0BA,CAACA;gBACtCA,CAACA;gBACDA,IAAIA,CAACA,CAACA;oBACFA,MAAMA,CAACA,mBAAqBA,CAACA;gBACjCA,CAACA;YACLA,CAACA;YAEDrC,SAASA,aAAaA;gBAClBsC,IAAIA,SAASA,GAAGA,GAAGA,CAACA,UAAUA,CAACA,KAAKA,CAACA,CAACA;gBACtCA,EAAEA,CAACA,CAACA,SAASA,KAAKA,eAAqBA,CAACA,CAACA,CAACA;oBACtCA,KAAKA,EAAEA,CAACA;oBACRA,MAAMA,CAACA,yBAA0BA,CAACA;gBACtCA,CAACA;gBACDA,IAAIA,CAACA,EAAEA,CAACA,CAACA,SAASA,KAAKA,aAAmBA,CAACA,CAACA,CAACA;oBACzCA,KAAKA,EAAEA,CAACA;oBACRA,MAAMA,CAACA,sBAAwBA,CAACA;gBACpCA,CAACA;gBACDA,IAAIA,CAACA,CAACA;oBACFA,MAAMA,CAACA,kBAAoBA,CAACA;gBAChCA,CAACA;YACLA,CAACA;YAEDtC,SAASA,iBAAiBA;gBACtBuC,EAAEA,CAACA,CAACA,GAAGA,CAACA,UAAUA,CAACA,KAAKA,CAACA,KAAKA,eAAqBA,CAACA,CAACA,CAACA;oBAClDA,KAAKA,EAAEA,CAACA;oBACRA,MAAMA,CAACA,6BAA8BA,CAACA;gBAC1CA,CAACA;gBACDA,IAAIA,CAACA,CAACA;oBACFA,MAAMA,CAACA,sBAAwBA,CAACA;gBACpCA,CAACA;YACLA,CAACA;YAEDvC,SAASA,eAAeA;gBACpBwC,IAAIA,SAASA,GAAGA,GAAGA,CAACA,UAAUA,CAACA,KAAKA,CAACA,CAACA;gBACtCA,EAAEA,CAACA,CAACA,SAASA,KAAKA,eAAqBA,CAACA,CAACA,CAACA;oBACtCA,KAAKA,EAAEA,CAACA;oBAERA,EAAEA,CAACA,CAACA,GAAGA,CAACA,UAAUA,CAACA,KAAKA,CAACA,KAAKA,eAAqBA,CAACA,CAACA,CAACA;wBAClDA,KAAKA,EAAEA,CAACA;wBAERA,MAAMA,CAACA,gCAAkCA,CAACA;oBAC9CA,CAACA;oBACDA,IAAIA,CAACA,CAACA;wBACFA,MAAMA,CAACA,0BAA4BA,CAACA;oBACxCA,CAACA;gBACLA,CAACA;gBACDA,IAAIA,CAACA,EAAEA,CAACA,CAACA,SAASA,KAAKA,oBAA0BA,CAACA,CAACA,CAACA;oBAChDA,KAAKA,EAAEA,CAACA;oBACRA,MAAMA,CAACA,+BAAiCA,CAACA;gBAC7CA,CAACA;gBACDA,IAAIA,CAACA,CAACA;oBACFA,MAAMA,CAACA,qBAAsBA,CAACA;gBAClCA,CAACA;YACLA,CAACA;YAEDxC,SAASA,YAAYA;gBACjByC,IAAIA,QAAQA,GAAGA,GAAGA,CAACA,UAAUA,CAACA,KAAKA,CAACA,CAACA;gBACrCA,EAAEA,CAACA,CAACA,wBAAaA,CAACA,cAAcA,CAACA,QAAQA,CAACA,CAACA,CAACA,CAACA;oBACzCA,iCAAiCA,EAAEA,CAACA;o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,SAASA,EAAEA,CAACA;QAC9BA,EAAEA,CAACA,CAACA,KAAKA,KAAKA,CAACA,CAACA,CAACA,CAACA;YACdA,MAAMA,CAACA,SAASA,CAACA;QACrBA,CAACA;QAEDA,MAAMA,CAACA,SAASA,CAACA,UAAUA,CAACA,KAAKA,CAACA,CAACA,UAAUA,EAAEA,EAAEA,KAAKA,GAAGA,CAACA,CAACA,CAACA;IAChEA,CAACA;IAPex8C,wBAAaA,GAAbA,aAOfA,CAAAA;IAeDA,SAAgBA,SAASA,CAACA,UAA4BA,EAAEA,QAAgBA;QACpEy8C,EAAEA,CAACA,CAACA,QAAQA,GAAGA,CAACA,CAACA,CAACA,CAACA;YACfA,MAAMA,iBAAMA,CAACA,kBAAkBA,CAACA,UAAUA,CAACA,CAACA;QAChDA,CAACA;QAEDA,IAAIA,KAAKA,GAAGA,sBAAsBA,CAACA,UAAUA,EAAEA,CAACA,EAAEA,QAAQA,CAACA,CAACA;QAC5DA,EAAEA,CAACA,CAACA,KAAKA,CAACA,CAACA,CAACA;YACRA,gBAAKA,CAACA,MAAMA,CAACA,KAAKA,CAACA,SAASA,EAAEA,GAAGA,CAACA,CAACA,CAACA;YACpCA,MAAMA,CAACA,KAAKA,CAACA;QACjBA,CAACA;QAEDA,EAAEA,CAACA,CAACA,QAAQA,KAAKA,SAASA,CAACA,UAAUA,CAACA,CAACA,CAACA,CAACA;YACrCA,MAAMA,CAACA,UAAUA,CAACA,cAAcA,CAACA;QACrCA,CAACA;QAEDA,EAAEA,CAACA,CAACA,QAAQA,GAAGA,SAASA,CAACA,UAAUA,CAACA,CAACA,CAACA,CAACA;YACnCA,MAAMA,iBAAMA,CAACA,kBAAkBA,CAACA,UAAUA,CAACA,CAACA;QAChDA,CAACA;QAEDA,MAAMA,iBAAMA,CAACA,gBAAgBA,EAAEA,CAACA;IACpCA,CAACA;IApBez8C,oBAASA,GAATA,SAoBfA,CAAAA;IAEDA,SAASA,eAAeA,CAACA,OAAuBA,EAAEA,eAAuBA,EAAEA,QAAgBA;QACvF08C,EAAEA,CAACA,CAACA,MAAMA,CAACA,OAAOA,CAACA,CAACA,CAA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,CAACA,cAAcA,CAACA,CAACA;YACrCA,IAAIA,CAACA,SAASA,CAACA,IAAIA,CAACA,aAAaA,CAACA,CAACA;YACnCA,IAAIA,CAACA,UAAUA,CAACA,IAAIA,CAACA,eAAeA,CAACA,CAACA;QAC1CA,CAACA;QAEMnB,2CAAoBA,GAA3BA,UAA4BA,IAA2BA;YACnDoB,IAAIA,CAACA,SAASA,CAACA,IAAIA,CAACA,SAASA,CAACA,CAACA;YAC/BA,IAAIA,CAACA,UAAUA,CAACA,IAAIA,CAACA,WAAWA,CAACA,CAACA;YAClCA,IAAIA,CAACA,UAAUA,CAACA,IAAIA,CAACA,UAAUA,CAACA,CAACA;YACjCA,IAAIA,CAACA,UAAUA,CAACA,IAAIA,CAACA,cAAcA,CAACA,CAACA;YACrCA,IAAIA,CAACA,SAASA,CAACA,IAAIA,CAACA,YAAYA,CAACA,CAACA;YAClCA,IAAIA,CAACA,UAAUA,CAACA,IAAIA,CAACA,eAAeA,CAACA,CAACA;QAC1CA,CAACA;QAEMpB,6CAAsBA,GAA7BA,UAA8BA,IAA6BA;YACvDqB,IAAIA,CAACA,SAASA,CAACA,IAAIA,CAACA,SAASA,CAACA,CAACA;YAC/BA,IAAIA,CAACA,UAAUA,CAACA,IAAIA,CAACA,aAAaA,CAACA,CAACA;YACpCA,IAAIA,CAACA,UAAUA,CAACA,IAAIA,CAACA,UAAUA,CAACA,CAACA;YACjCA,IAAIA,CAACA,UAAUA,CAACA,IAAIA,CAACA,WAAWA,CAACA,CAACA;YAClCA,2BAAgBA,CAACA,IAAIA,EAAEA,IAAIA,CAACA,eAAeA,CAACA,CAACA;YAC7CA,IAAIA,CAACA,kBAAkBA,CAACA,IAAIA,CAACA,cAAcA,CAACA,CAACA;QACjDA,CAACA;QAEMrB,4CAAqBA,GAA5BA,UAA6BA,IAA4BA;YACrDsB,IAAIA,CAACA,SAASA,CAACA,IAAIA,CAACA,SAASA,CAACA,CAACA;YAC/BA,IAAIA,CAACA,UAAUA,CAACA,IAAIA,CAACA,aAAaA,CAACA,CAACA;YACpCA,IAAIA,CAACA,UAAUA,CAACA,IAAIA,CAACA,WA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,CAACA,eAAwBA;gBAClDmF,IAAIA,IAAIA,GAAGA,WAAWA,EAAEA,CAACA;gBACzBA,EAAEA,CAACA,CAACA,0BAAeA,CAACA,cAAcA,CAACA,IAAIA,CAACA,CAACA,CAACA,CAACA;oBACvCA,WAAWA,CAACA,IAAIA,CAACA,CAACA;oBAClBA,MAAMA,CAAsBA,IAAIA,CAACA;gBACrCA,CAACA;gBAIDA,IAAIA,SAASA,GAAGA,cAAcA,EAAEA,CAACA;gBACjCA,EAAEA,CAACA,CAACA,wBAAwBA,EAAEA,CAACA,CAACA,CAACA;oBAC7BA,MAAMA,CAACA,2BAA2BA,CAACA,SAASA,CAACA,CAACA;gBAClDA,CAACA;gBACDA,IAAIA,CAACA,EAAEA,CAACA,CAACA,wBAAwBA,EAAEA,CAACA,CAACA,CAACA;oBAClCA,MAAMA,CAACA,2BAA2BA,CAACA,SAASA,CAACA,CAACA;gBAClDA,CAACA;gBACDA,IAAIA,CAACA,EAAEA,CAACA,CAACA,UAAUA,CAACA,eAAeA,CAACA,CAACA,CAACA,CAACA;oBACnCA,MAAMA,CAACA,aAAaA,CAACA,SAASA,CAACA,CAACA;gBACpCA,CAACA;gBACDA,IAAIA,CAACA,EAAEA,CAACA,CAACA,SAASA,CAACA,MAAMA,GAAGA,CAACA,IAAIA,qCAAqCA,CAACA,eAAeA,CAACA,CAACA,CAACA,CAACA;oBACtFA,IAAIA,YAAYA,GAAGA,WAAWA,CAACA,sBAAwBA,CAACA,CAACA;oBACzDA,IAAIA,YAAYA,GAAGA,iBAAiBA,EAAEA,CAACA;oBAMvCA,EAAEA,CAACA,CAACA,YAAYA,IAAIA,eAAeA,CAAgBA,CAACA,CAACA,CAACA,CAACA,CAACA;wBACpDA,MAAMA,CAACA,8BAA8BA,CAACA,SAASA,EAAEA,YAAYA,EAAEA,YAAYA,CAACA,CAACA;oBACjFA,CAACA;oBACDA,IAAIA,CAACA,CAACA;wBACFA,MAAMA,CAACA,8BAA8BA,CAACA,SAASA,EAAEA,YAAYA,CAACA,CAACA;oBACnEA,CAACA;gBACLA,CAACA;gBACDA,IAAIA,CAACA,CAAC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AACA,gBAAgBA,CAACA,aAAaA,CAACA,CAACA;oBAClEA,KAAKA,mBAAqBA,EAAEA,MAAMA,CAACA,iBAAiBA,CAACA,aAAaA,CAACA,CAACA;oBACpEA,KAAKA,wBAA0BA,EAAEA,MAAMA,CAACA,sBAAsBA,CAACA,aAAaA,CAACA,CAACA;gBAClFA,CAACA;gBAMDA,EAAEA,CAACA,CAACA,wCAAwCA,CAACA,aAAaA,EAAEA,aAAaA,CAACA,CAACA,CAACA,CAACA;oBACzEA,MAAMA,CAACA,SAASA,CAACA;gBACrBA,CAACA;gBACDA,IAAIA,CAACA,EAAEA,CAACA,CAACA,mBAAmBA,CAACA,aAAaA,CAACA,CAACA,CAACA,CAACA;oBAC1CA,MAAMA,CAACA,sBAAsBA,EAAEA,CAACA;gBACpCA,CAACA;gBACDA,IAAIA,CAACA,EAAEA,CAACA,CAACA,kBAAkBA,CAACA,aAAaA,CAACA,CAACA,CAACA,CAACA;oBACzCA,MAAMA,CAACA,qBAAqBA,CAACA,aAAaA,CAACA,CAACA;gBAChDA,CAACA;gBACDA,IAAIA,CAACA,EAAEA,CAACA,CAACA,qBAAqBA,CAACA,aAAaA,CAACA,CAACA,CAACA,CAACA;oBAC5CA,MAAMA,CAACA,wBAAwBA,EAAEA,CAACA;gBACtCA,CAACA;gBACDA,IAAIA,CAACA,EAAEA,CAACA,CAACA,gBAAgBA,CAACA,aAAaA,EAAEA,eAAeA,CAACA,CAACA,CAACA,CAACA;oBACxDA,MAAMA,CAACA,mBAAmBA,CAACA,aAAaA,CAACA,CAACA;gBAC9CA,CAACA;gBACDA,IAAIA,CAACA,EAAEA,CAACA,CAACA,qBAAqBA,CAACA,aAAaA,CAACA,CAACA,CAACA,CAACA;oBAC5CA,MAAMA,CAACA,wBAAwBA,EAAEA,CAACA;gBACtCA,CAACA;gBACDA,IAAIA,CAACA,CAACA;oBACFA,MAAMA,CAACA,SAASA,CAACA;gBACrBA,CAACA;YACLA,CAACA;YAEDtH,SAASA,sBAAsBA,CAACA,eAA6BA;gBACzDuH,MAAMA,CAACA,IAAIA,kCAAuBA,CAACA,YAAYA,EAAE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AAiBA,CAACA,CAACA,CAACA;wBACzDA,MAAMA,CAACA,IAAIA,CAACA,cAAcA,CAACA,SAASA,EAAEA,yBAAcA,CAACA,mDAAmDA,CAACA,CAACA;oBAC9GA,CAACA;gBACLA,CAACA;gBACDA,IAAIA,CAACA,CAACA;oBACFA,EAAEA,CAACA,CAACA,qBAAqBA,CAACA,CAACA,CAACA;wBACxBA,MAAMA,CAACA,IAAIA,CAACA,cAAcA,CAACA,SAASA,EAAEA,yBAAcA,CAACA,wDAAwDA,CAACA,CAACA;oBACnHA,CAACA;gBACLA,CAACA;YACLA,CAACA;YAEDA,MAAMA,CAACA,KAAKA,CAACA;QACjBA,CAACA;QAEON,mEAAoCA,GAA5CA,UAA6CA,SAA0BA;YACnEO,EAAEA,CAACA,CAACA,SAASA,CAACA,SAASA,CAACA,MAAMA,GAAGA,CAACA,CAACA,CAACA,CAACA;gBACjCA,IAAIA,SAASA,GAAGA,SAASA,CAACA,SAASA,CAACA;gBAEpCA,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,SAASA,CAACA,MAAMA,EAAEA,CAACA,GAAGA,CAACA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;oBAC/CA,IAAIA,QAAQA,GAAGA,SAASA,CAACA,CAACA,CAACA,CAACA;oBAE5BA,EAAEA,CAACA,CAACA,IAAIA,CAACA,mCAAmCA,CAACA,QAAQA,EAAEA,CAACA,CAACA,CAACA,CAACA,CAACA;wBACxDA,MAAMA,CAACA,IAAIA,CAACA;oBAChBA,CAACA;gBACLA,CAACA;YACLA,CAACA;YAEDA,MAAMA,CAACA,KAAKA,CAACA;QACjBA,CAACA;QAEOP,kEAAmCA,GAA3CA,UAA4CA,QAAsBA,EAAEA,aAAqBA;YACrFQ,EAAEA,CAACA,CAACA,CAACA,sBAAWA,CAACA,uBAAuBA,CAACA,QAAQA,CAACA,IAAIA,CAACA,CAACA,CAACA,CAACA;gBACtDA,MAAMA,CAACA,IAAIA,CAACA,cAAcA,CAACA,QAAQA,EAAEA,yBAAcA,CAACA,wCAAwCA,EAAEA,CA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ACA,UAAUA,EAAEA,CAACA,CAACA,CAACA;YAEnDA,EAAEA,CAACA,CAACA,SAASA,CAACA,cAAcA,CAACA,CAACA,CAACA;gBAC3BA,MAAMA,CAACA,IAAIA,CAACA,cAAcA,CAACA,SAASA,EAAEA,yBAAcA,CAACA,4CAA4CA,CAACA,CAACA;YACvGA,CAACA;YACDA,IAAIA,CAACA,EAAEA,CAACA,CAACA,SAASA,CAACA,SAASA,CAACA,MAAMA,GAAGA,CAACA,CAACA,CAACA,CAACA;gBACtCA,MAAMA,CAACA,IAAIA,CAACA,cAAcA,CAACA,SAASA,EAAEA,yBAAcA,CAACA,+CAA+CA,CAACA,CAACA;YAC1GA,CAACA;YACDA,IAAIA,CAACA,EAAEA,CAACA,CAACA,SAASA,CAACA,aAAaA,CAACA,CAACA,CAACA;gBAC/BA,MAAMA,CAACA,IAAIA,CAACA,cAAcA,CAACA,SAASA,EAAEA,yBAAcA,CAACA,qDAAqDA,CAACA,CAACA;YAChHA,CAACA;YACDA,IAAIA,CAACA,EAAEA,CAACA,CAACA,SAASA,CAACA,iBAAiBA,CAACA,CAACA,CAACA;gBACnCA,MAAMA,CAACA,IAAIA,CAACA,cAAcA,CAACA,SAASA,EAAEA,yBAAcA,CAACA,oDAAoDA,CAACA,CAACA;YAC/GA,CAACA;YACDA,IAAIA,CAACA,EAAEA,CAACA,CAACA,CAACA,SAASA,CAACA,cAAcA,CAACA,CAACA,CAACA;gBACjCA,MAAMA,CAACA,IAAIA,CAACA,cAAcA,CAACA,SAASA,EAAEA,yBAAcA,CAACA,qDAAqDA,CAACA,CAACA;YAChHA,CAACA;YACDA,IAAIA,CAACA,EAAEA,CAACA,CAACA,SAASA,CAACA,cAAcA,CAACA,IAAIA,CAACA,IAAIA,KAAKA,sBAAwBA,IAC/DA,SAASA,CAACA,cAAcA,CAACA,IAAIA,CAACA,IAAIA,KAAKA,sBAAwBA,CAACA,CAACA,CAACA;gBACvEA,MAAMA,CAACA,IAAIA,CAACA,cAAcA,CAACA,SAASA,EAAEA,yBAAcA,CAACA,uDAAuDA,CAACA,CAACA;YAClHA,CAACA;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,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAIA,CAACA;QACtkGA,gCAAwBA,GAAIA,CAACA,GAAGA,EAACA,GAAGA,EAAGA,GAAGA,EAACA,GAAGA,EAAGA,GAAGA,EAACA,GAAGA,EAAGA,GAAGA,EAACA,GAAGA,EAAGA,GAAGA,EAACA,GAAGA,EAAGA,GAAGA,EAACA,GAAGA,EAAGA,GAAGA,EAACA,GAAGA,EAAGA,GAAGA,EAACA,GAAGA,EAAGA,GAAGA,EAACA,GAAGA,EAAGA,GAAGA,EAACA,GAAGA,EAAGA,GAAGA,EAACA,GAAGA,EAAGA,GAAGA,EAACA,GAAGA,EAAGA,GAAGA,EAACA,GAAGA,EAAGA,GAAGA,EAACA,GAAGA,EAAGA,GAAGA,EAACA,GAAGA,EAAGA,GAAGA,EAACA,GAAGA,EAAGA,GAAGA,EAACA,GAAGA,EAAGA,GAAGA,EAACA,GAAGA,EAAGA,GAAGA,EAACA,GAAGA,EAAGA,GAAGA,EAACA,GAAGA,EAAGA,GAAGA,EAACA,GAAGA,EAAGA,GAAGA,EAACA,GAAGA,EAAGA,GAAGA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAIA,CAACA;QAwBllIA,iCAAyBA,GAAGA,CAACA,GAAGA,EAACA,GAAGA,EAAGA,GAAGA,EAACA,GAAGA,EAAGA,GAAGA,EAACA,GAAGA,EAAGA,GAAGA,EAACA,GAAGA,EAAGA,GAAGA,EAACA,GAAGA,EAAGA,GAAGA,EAACA,GAAGA,EAAGA,GAAGA,EAACA,GAAGA,EAAGA,GAAGA,EAACA,GAAGA,EAAGA,GAAGA,EAACA,GAAGA,EAAGA,GAAGA,EAACA,GAAGA,EAAGA,GAAGA,EAACA,GAAGA,EAAGA,GAAGA,EAACA,GAAGA,EAAGA,GAAGA,EAACA,GAAGA,EAAGA,GAAGA,EAACA,GAAGA,EAAGA,GAAGA,EAACA,GAAGA,EAAGA,GAAGA,EAACA,GAAGA,EAAGA,GAAGA,EAACA,GAAGA,EAAGA,GAAGA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAIA,CAACA;QAC5iJA,gCAAwBA,GAAIA,CAACA,GAAGA,EAACA,GAAGA,EAAGA,GAAGA,EAACA,GAAGA,EAAGA,GAAGA,EAACA,GAAGA,EAAGA,GAAGA,EAACA,GAAGA,EAAGA,GAAGA,EAACA,GAAGA,EAAGA,GAAGA,EAACA,GAAGA,EAAGA,GAAGA,EAACA,GAAGA,EAAGA,GAAGA,EAACA,GAAGA,EAAGA,GAAGA,EAACA,GAAGA,EAAGA,GAAGA,EAACA,GAAGA,EAAGA,GAAGA,EAACA,GAAGA,EAAGA,GAAGA,EAACA,GAAGA,EAAGA,GAAGA,EAACA,GAAGA,EAAGA,GAAGA,EAACA,GAAGA,EAAGA,GAAGA,EAACA,GAAGA,EAAGA,GAAGA,EAACA,GAAGA,EAAGA,GAAGA,EAACA,GAAGA,EAAGA,GAAGA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAIA,CAACA;QAuDjvKA,cAACA;IAADA,CAACA,AAtGDnqE,IAsGCA;IAtGYA,kBAAOA,GAAPA,OAsGZA,CAAAA;AACLA,CAACA,EAxGM,UAAU,KAAV,UAAU,QAwGhB;AExGD,IAAO,UAAU,CA8hChB;AA9hCD,WAAO,UAAU;IAACA,IAAAA,aAAaA,CA8hC9BA;IA9hCiBA,WAAAA,aAAaA,EAACA,CAACA;QAC7BwqE,SAAgBA,WAAWA,CAACA,IAAiBA,EAAEA,gBAAiCA;YAAjCC,gCAAiCA,GAAjCA,yBAAiCA;YAC5EA,IAAIA,IAAIA,GAAGA,IAAIA,iBAAiBA,CAACA,gBAAgBA,CAACA,CAACA;YACnDA,2BAAgBA,CAACA,IAAIA,EAAEA,IAAIA,CAACA,CAACA;YAC7BA,MAAMA,CAACA,IAAIA,CAACA,MAAMA,CAACA,IAAIA,CAACA,EAAEA,CAACA,CAACA;QAChCA,CAACA;QAJeD,yBAAWA,GAAXA,WAIfA,CAAAA;QAEDA,IAAMA,iBAAiBA;YAKnBE,SALEA,iBAAiBA,CAKCA,gBAAwBA;gBAAxBC,qBAAgBA,GAAhBA,gBAAgBA,CAAQA;gBAJrCA,WAAMA,GAAaA,EAAEA,CAACA;gBACrBA,iBAAYA,GAAaA,EAAEA,CAACA;gBAC5BA,gBAAWA,GAAWA,CAACA,CAACA;YAGhCA,CAACA;YAEOD,6DAAiCA,GAAzCA,UAA0CA,QAA8BA,EAAEA,QAA8BA;gBACpGE,EAAEA,CAACA,CAACA,CAACA,QAAQA,IAAIA,CAACA,QAAQA,CAACA,CAACA,CAACA;oBACzBA,MAAMA,CAACA,CAACA,CAACA;gBACbA,CAACA;gBAEDA,EAAEA,CAACA,CAACA,oBAASA,CAACA,QAAQA,CAACA,CAACA,IAAIA,KAAKA,wBAA0BA,CAACA,CAACA,CAACA;oBAC1DA,MAAMA,CAACA,CAACA,CAACA;gBACbA,CAACA;gBAEDA,MAAMA,CAACA,CAACA,CAACA;YACbA,CAACA;YAEOF,4DAAgCA,GAAxCA,UAAyCA,QAA6BA,EAAEA,QAA6BA;gBACjGG,EAAEA,CAACA,CAACA,CAACA,QAAQA,IAAIA,CAACA,QAAQA,CAACA,CAACA,CAACA;oBACzBA,MAAMA,CAACA,CAACA,CAACA;gBACbA,CAACA;gBAEDA,MAAMA,CAACA,CAACA,CAACA;YACbA,CAACA;YAEOH,yDAA6BA,GAArCA,UAAsCA,QAA0BA,EAAEA,QAA0BA;gBACxFI,EAAEA,CAACA,CAACA,CAACA,QAAQA,IAAIA,CAACA,QAAQA,CAACA,CAACA,CAACA;oBACzBA,MAAMA,CAACA,CAACA,CAACA;gBACbA,CAACA;gBAEDA,EAAEA,CAACA,CAACA,oBAASA,CAACA,QAAQA,CAACA,CAACA,IAAIA,KAAKA,wBAA0BA,CAACA,CAACA,CAACA;oBAC1DA,MAAMA,CAACA,CAACA,CAACA;gBACbA,CAACA;gBAEDA,MAAMA,CAACA,CAACA,CAACA;YACbA,CAACA;YAEOJ,4DAAgCA,GAAxCA,UAAyCA,QAA6BA,EAAEA,QAA6BA;gBACjGK,EAAEA,CAACA,CAACA,CAACA,QAAQA,IAAIA,CAACA,QAAQA,CAACA,CAACA,CAACA;oBACzBA,MAAMA,CAACA,CAACA,CAACA;gBACbA,CAACA;gBAEDA,EAAEA,CAACA,CAACA,qBAAUA,CAACA,QAAQA,CAACA,UAAUA,CAACA,KAAKA,CAACA,CAACA,CAACA,CAACA;oBACxCA,MAAMA,CAACA,CAACA,CAACA;gBACbA,CAACA;gBAEDA,MAAMA,CAACA,CAACA,CAACA;YACbA,CAACA;YAEOL,uCAAWA,GAAnBA;gBACIM,EAAEA,CAACA,CAACA,IAAIA,CAACA,MAAMA,CAACA,MAAMA,GAAGA,CAACA,CAACA,CAACA,CAACA;oBACzBA,IAAIA,IAAIA,GAAGA,yBAAcA,CAACA,IAAIA,CAACA,IAAIA,CAACA,MAAMA,CAA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B,oBAAoB,EAAE,IAAI;IAC1B,mBAAmB,EAAE,IAAI;IACzB,oBAAoB,EAAE,IAAI;IAC1B,oBAAoB,EAAE,IAAI;IAC1B,oBAAoB,EAAE,IAAI;IAC1B,oBAAoB,EAAE,IAAI;IAC1B,oBAAoB,EAAE,IAAI;IAC1B,oBAAoB,EAAE,IAAI;IAC1B,oBAAoB,EAAE,IAAI;IAC1B,oBAAoB,EAAE,IAAI;IAC1B,oBAAoB,EAAE,IAAI;IAC1B,oBAAoB,EAAE,IAAI;IAC1B,mBAAmB,EAAE,IAAI;IACzB,oBAAoB,EAAE,IAAI;IAC1B,oBAAoB,EAAE,IAAI;IAC1B,oBAAoB,EAAE,IAAI;IAC1B,oBAAoB,EAAE,IAAI;IAC1B,oBAAoB,EAAE,IAAI;IAC1B,oBAAoB,EAAE,IAAI;IAC1B,oBAAoB,EAAE,IAAI;IAC1B,oBAAoB,EAAE,IAAI;IAC1B,oBAAoB,EAAE,IAAI;IAC1B,oBAAoB,EAAE,IAAI;IAC1B,mBAAmB,EAAE,IAAI;IACzB,oBAAoB,EAAE,IAAI;IAC1B,oBAAoB,EAAE,IAAI;IAC1B,oBAAoB,EAAE,IAAI;IAC1B,oBAAoB,EAAE,IAAI;IAC1B,oBAAoB,EAAE,IAAI;IAC1B,oBAAoB,EAAE,IAAI;IAC1B,oBAAoB,EAAE,IAAI;IAC1B,oBAAoB,EAAE,IAAI;IAC1B,oBAAoB,EAAE,IAAI;IAC1B,oBAAoB,EAAE,IAAI;IAC1B,mBAAmB,EAAE,IAAI;IACzB,oBAAoB,EAAE,IAAI;IAC1B,oBAAoB,EAAE,IAAI;IAC1B,oBAAoB,EAAE,IAAI;IAC1B,oBAAoB,EAAE,IAAI;IAC1B,oBAAoB,EAAE,IAAI;IAC1B,oBAAoB,EAAE,IAAI;IAC1B,oBAAoB,EAAE,IAAI;IAC1B,oBAAoB,EAAE,IAAI;IAC1B,oBAAoB,EAAE,IAAI;IAC1B,oBAAoB,EAAE,IAAI;IAC1B,mBAAmB,EAAE,IAAI;IACzB,oBAAoB,EAAE,IAAI;IAC1B,oBAAoB,EAAE,IAAI;IAC1B,oBAAoB,EAAE,IAAI;IAC1B,oBAAoB,EAAE,IAAI;IAC1B,oBAAoB,EAAE,IAAI;IAC1B,mBAAmB,EAAE,IAAI;IACzB,mB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CA,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,UAAUA,CAACA,UAAUA,CAACA,IAAIA,CAACA,EAAEA,CAACA,GAAGA,CAACA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;QAC1DA,IAAIA,KAAKA,GAAGA,UAAUA,CAACA,OAAOA,CAACA,IAAIA,EAAEA,CAACA,CAACA,CAACA;QAExCA,EAAEA,CAACA,CAACA,KAAKA,CAACA,CAACA,CAACA;YACRA,GAAGA,CAACA,CAACA,GAAGA,CAACA,IAAIA,IAAIA,IAAIA,CAACA,CAACA,CAACA;gBACpBA,EAAEA,CAACA,CAACA,SAASA,CAACA,IAAIA,CAACA,KAAKA,SAASA,IAAIA,KAAKA,KAAKA,eAAeA,CAACA,IAAIA,CAACA,CAACA,CAACA,CAACA;oBACnEA,MAAMA,CAACA,IAAIA,CAACA,GAAGA,aAAaA,CAACA,KAAKA,EAAEA,IAAIA,CAACA,CAACA;oBAC1CA,SAASA,CAACA,IAAIA,CAACA,GAAGA,IAAIA,CAACA;oBACvBA,KAAKA,CAACA;gBACVA,CAACA;YACLA,CAACA;QACLA,CAACA;IACLA,CAACA;IAEDA,MAAMA,CAACA,MAAMA,CAACA;AAClBA,CAACA;AAED,SAAS,aAAa,CAAC,OAAkC,EAAE,IAA4B;IACnFC,EAAEA,CAACA,CAACA,OAAOA,KAAKA,SAASA,CAACA,CAACA,CAACA;QACxBA,EAAEA,CAACA,CAACA,UAAUA,CAACA,OAAOA,CAACA,OAAOA,CAACA,CAACA,CAACA,CAACA;YAC9BA,MAAMA,CAACA,WAAWA,CAA0BA,OAAOA,EAAEA,IAAIA,EAAiBA,IAAIA,CAACA,CAACA;QACpFA,CAACA;QACDA,IAAIA,CAACA,EAAEA,CAACA,CAACA,UAAUA,CAACA,MAAMA,CAACA,OAAOA,CAACA,CAACA,CAACA,CAACA;YAClCA,EAAEA,CAACA,CAACA,UAAUA,CAACA,UAAUA,CAACA,OAAOA,CAACA,GAAGA,CAACA,CAACA,CAACA,CAACA;gBACrCA,IAAIA,MAAMA,GAAUA,EAAEA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,OAAQA,CAACA,OAAOA,CAACA,QAAQA,CAACA,GAAGA,CAACA,CAACA,CAACA,CAACA;YAC5CA,UAAUA,CAACA,WAAWA,CAACA,WAAWA,CAACA,SAASA,CAACA,aAAaA,GAAGA,QAAQA,GAAGA,IAAIA,GAAGA,CAACA,CAACA,OAAOA,CAACA,CAACA;QAC9FA,CAACA;QACDA,IAAIA,CAACA,CAACA;YACFA,UAAUA,CAACA,WAAWA,CAACA,WAAWA,CAACA,SAASA,CAACA,CAACA,CAACA,OAAOA,CAACA,CAACA;QAC5DA,CAACA;IACLA,CAACA;IAEOP,0BAAQA,GAAhBA,UACIA,IAAYA,EACZA,MAAkCA;QAFtCQ,iBA4BCA;QAxBGA,IAAIA,SAASA,GAAGA,UAAUA,CAACA,WAAWA,CAACA,SAASA,CAACA,IAAIA,EAAEA,SAASA,EAAEA,EAAEA,SAASA,EAAEA,IAAIA,EAAEA,CAACA,CAACA;QACvFA,IAAIA,QAAQA,GAAGA,CAACA,CAACA;QAEjBA,SAASA,CAACA,OAAOA,CAACA,UAAAA,QAAWA;YACzBA,EAAEA,CAACA,CAACA,YAAYA,KAAKA,SAASA,IAAIA,QAAQA,CAACA,OAAOA,CAACA,YAAYA,CAACA,GAAGA,CAACA,CAACA,CAACA,CAACA;gBACnEA,MAAMA,CAACA;YACXA,CAACA;YAEDA,EAAEA,CAACA,CAACA,QAAQA,GAAGA,GAAGA,KAAKA,CAACA,CAACA,CAACA,CAACA;gBACvBA,UAAUA,CAACA,WAAWA,CAACA,WAAWA,CAACA,KAAKA,CAACA,GAAGA,CAACA,CAACA;YAClDA,CAACA;YAGDA,IAAAA,CAACA;gBACGA,MAAMA,CAACA,QAAQA,CAACA,CAACA;YACrBA,CACAA;YAAAA,KAAKA,CAACA,CAACA,CAACA,CAACA,CAATA,CAACA;gBACGA,KAAIA,CAACA,eAAeA,CAACA,QAAQA,EAAEA,CAACA,CAACA,CAACA;YACtCA,CAACA;YAEDA,QAAQA,EAAEA,CAACA;QACfA,CAACA,CAACA,CAACA;QAEHA,UAAUA,CAACA,WAAWA,CAACA,WAAWA,CAACA,SAASA,CAACA,EAAEA,CAACA,CAACA;IACrDA,CAACA;IAEOR,6BAAWA,GAAnBA,UAAoBA,QAAgBA,EAAEA,MAAWA,EAAEA,OAAwBA,EAAEA,MAAeA,EAAEA,gBAAyBA,EAAEA,QAAiBA;QACtIS,IAAIA,YAAoBA,CAACA;QAEzBA,IAAIA,YAAYA,GAAGA,QAAQA,GAAGA,WAAWA,CAACA;QAC1CA,IAAIA,UAAUA,GAAGA,QAAQA,GAAGA,SAASA,CAACA;QAEtCA,EAAEA,CAACA,CAACA,gBAAgBA,CAACA,CAACA,CAACA;YACnBA,YAAYA,GAAGA,QAAQA,GAAGA,MAAMA,GAAGA,IAAIA,CAACA,SAASA,CAACA,OAAOA,CAACA,MAAMA,CAACA,EAAEA,SAASA,EAAEA,CAACA,CAACA,CAACA;YACjFA,YAAYA,GAAGA,QAAQA,GAAGA,WAAWA,CAACA;YAGtCA,UAAUA,CAACA,WAAWA,CAACA,SAASA,CAACA,YAAYA,EAAEA,YAAYA,EAA0BA,KAAKA,CAACA,CAACA;YAE5FA,EAAEA,CAACA,CAACA,UAAUA,CAACA,WAAWA,CAACA,UAAUA,CAACA,UAAUA,CAACA,CAACA,CAACA,CAACA;gBAChDA,UAAUA,CAACA,WAAWA,CAACA,UAAUA,CAACA,UAAUA,CAACA,CAACA;YAClDA,CAACA;QACLA,CAACA;QACDA,IAAIA,CAACA,EAAEA,CAACA,CAACA,MAAMA,CAACA,CAACA,CAACA;YACdA,YAAYA,GAAGA,QAAQA,GAAGA,MAAMA,GAAGA,IAAIA,CAACA,SAASA,CAACA,OAAOA,CAACA,MAAMA,CAACA,EAAEA,SAASA,EAAEA,CAACA,CAACA,CAACA;YAEjFA,IAAIA,cAAcA,GAAWA,SAASA,CAACA;YACvCA,EAAEA,CAACA,CAACA,CAACA,UAAUA,CAACA,WAAWA,CAACA,UAAUA,CAACA,YAAYA,CAACA,CAACA,CAACA,CAACA;gBACnDA,UAAUA,CAACA,WAAWA,CAACA,SAASA,CAACA,YAAYA,EAAEA,EAAEA,EAAEA,KAAKA,CAACA,CAACA;YAC9DA,CAACA;YACDA,IAAIA,CAACA,CAACA;gBACFA,cAAcA,GAAGA,UAAUA,CAACA,WAAWA,CAACA,QAAQA,CAACA,YAAYA,EAAeA,SAASA,CAACA,CAACA,QAAQA,CAACA;YACpGA,CAACA;YAEDA,EAAEA,CAACA,CAACA,cAAcA,KAAKA,YAAYA,CAACA,CAACA,CAACA;gBAClCA,UAAUA,CAACA,WAAWA,CAACA,WAAWA,CAACA,SAASA,CAACA,WAAWA,GAAGA,UAAUA,CAACA,CAACA;gBACvEA,UAAUA,CAACA,WAAWA,CAACA,SAASA,CAACA,UAAUA,EAAEA,YAAYA,EAA0BA,KAAKA,CAACA,CAACA;YAC9FA,CAACA;YACDA,IAAIA,CAACA,CAACA;gBACFA,EAAEA,CAACA,CAACA,UAAUA,CAACA,WAAWA,CAACA,UAAUA,CAACA,UAAUA,CAACA,CAACA,CAACA,CAACA;oBAChDA,UAAUA,CAACA,WAAWA,CAACA,UAAUA,CAACA,UAAUA,CAACA,CAACA;gBAClDA,CAACA;YACLA,CAACA;QACLA,CAACA;IACLA,CAACA;IAEDT,4BAAUA,GAAVA,UAAWA,QAAgBA,EACvBA,eAAgCA,EACzBA,MAAeA,EACfA,gBAAyBA,EACzBA,QAAiBA;QACxBU,EAAEA,CAACA,CAACA,IAAIA,CAACA,CAACA,CAACA;YACPA,MAAMA,CAACA;QACXA,CAACA;QAEDA,EAAEA,CAACA,CAACA,CAACA,UAAUA,CAACA,eAAeA,CAACA,QAAQA,CAACA,QAAQA,EAAEA,KAAKA,CAACA,IAAIA,CAACA,UAAUA,CAACA,eAAeA,CAACA,QAAQA,CAACA,QAAQA,EAAEA,KAAKA,CAACA,CAACA,CAACA,CAACA;YACjHA,MAAMA,CAACA;QACXA,CAACA;QAEDA,EAAEA,CAACA,CAACA,QAAQA,CAACA,OAAOA,CAACA,YAAYA,CAACA,IAAIA,CAACA,CAACA,CAACA,CAACA;YACtCA,MAAMA,CAACA;QACXA,CAACA;QAEDA,IAAIA,QAAQA,GAAGA,UAAUA,CAACA,WAAWA,CAACA,QAAQA,CAACA,QAAQA,EAAeA,SAASA,CAACA,CAACA,QAAQA,CAACA;QAG1FA,SAASA,IAAIA,QAAQA,CAACA,MAAMA,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"} \ No newline at end of file From 70cabf07e3767a9ebf4d93d4a12618fa5f23a1da Mon Sep 17 00:00:00 2001 From: Cyrus Najmabadi Date: Fri, 28 Nov 2014 14:35:18 -0800 Subject: [PATCH 101/195] Remove fidelity tests. --- tests/Fidelity/Program.ts | 936 - tests/Fidelity/program.js | 32340 -------------------------------- tests/Fidelity/program.js.map | 1 - 3 files changed, 33277 deletions(-) delete mode 100644 tests/Fidelity/Program.ts delete mode 100644 tests/Fidelity/program.js delete mode 100644 tests/Fidelity/program.js.map diff --git a/tests/Fidelity/Program.ts b/tests/Fidelity/Program.ts deleted file mode 100644 index abdb010413f..00000000000 --- a/tests/Fidelity/Program.ts +++ /dev/null @@ -1,936 +0,0 @@ -/// -/// -/// - -/// -/// -/// -/// -/// -/// -// /// -/// -/// -/// - -var specificFile: string = - // "S7.9_A4.js"; - undefined; - -var generate = false; - -function isDTSFile(s: string) { - return ts.fileExtensionIs(s, ".d.ts"); -} - -class PositionValidatingWalker extends TypeScript.SyntaxWalker { - private position = 0; - - public visitToken(token: TypeScript.ISyntaxToken): void { - TypeScript.Debug.assert(this.position === token.fullStart()); - this.position += token.fullWidth(); - } -} - -function tokenToJSON(token: TypeScript.ISyntaxToken, text: TypeScript.ISimpleText, mergeTrivia: boolean): any { - if (!token) { - return undefined; - } - - var isSkippedToken = token.parent && token.parent.kind === TypeScript.SyntaxKind.SkippedTokenTrivia; - var isMissingToken = token.fullWidth() === 0 && token.kind !== TypeScript.SyntaxKind.EndOfFileToken; - - var result: any = {}; - - for (var name in getSyntaxKindEnum()) { - if (getSyntaxKindEnum()[name] === token.kind) { - result.kind = name; - break; - } - } - - var fullStart = TypeScript.fullStart(token); - var fullEnd = TypeScript.fullEnd(token); - - result.fullStart = fullStart; - - result.start = TypeScript.start(token, text); - - result.fullWidth = fullEnd - fullStart; - result.width = TypeScript.width(token, text); - - result.text = token.text(); - - var value = TypeScript.tokenValue(token); - if (value !== undefined) { - result.value = value; - result.valueText = TypeScript.tokenValueText(token); - } - - if (token.isKeywordConvertedToIdentifier()) { - result.isKeywordConvertedToIdentifier = true; - } - - if (token.isIncrementallyUnusable()) { - result.isIncrementallyUnusable = true; - } - - if (isSkippedToken || isMissingToken) { - TypeScript.Debug.assert(!token.hasLeadingTrivia()); - } - else { - var leadingTriviaList = token.hasLeadingTrivia() ? token.leadingTrivia(text) : undefined; - - if (leadingTriviaList) { - var leadingTrivia = leadingTriviaList.toArray(); - result.hasLeadingTrivia = true; - - if (TypeScript.ArrayUtilities.any(leadingTrivia, t => t.isComment())) { - result.hasLeadingComment = true; - } - if (TypeScript.ArrayUtilities.any(leadingTrivia, t => t.isNewLine())) { - result.hasLeadingNewLine = true; - } - if (TypeScript.ArrayUtilities.any(leadingTrivia, t => t.isSkippedToken())) { - result.hasLeadingSkippedToken = true; - } - result.leadingTrivia = triviaListToJSON(leadingTrivia, text); - } - } - - return result; -} - -function triviaListToJSON(trivia: TypeScript.ISyntaxTrivia[], text: TypeScript.ISimpleText): any { - var result: any[] = []; - - for (var i = 0, n = trivia.length; i < n; i++) { - result.push(triviaToJSON(trivia[i], text)); - } - - return result; -} - -function triviaToJSON(trivia: TypeScript.ISyntaxTrivia, text: TypeScript.ISimpleText): any { - var result: any = {}; - - for (var name in getSyntaxKindEnum()) { - if (getSyntaxKindEnum()[name] === trivia.kind) { - result.kind = name; - break; - } - } - - if (trivia.isSkippedToken()) { - result.skippedToken = tokenToJSON(trivia.skippedToken(), text, /*megeTrivia:*/ false); - } - else { - result.fullStart = trivia.fullStart(); - result.fullEnd = trivia.fullStart() + trivia.fullWidth(); - result.text = trivia.fullText(); - } - - return result; -} - -function getSyntaxKindEnum() { - var name = "SyntaxKind"; - return (TypeScript)[name]; -} - -function nodeToJSON(node: TypeScript.ISyntaxNode, text: TypeScript.ISimpleText): any { - var result: any = {} - - for (var name in getSyntaxKindEnum()) { - if (getSyntaxKindEnum()[name] === node.kind) { - result.kind = name; - break; - } - } - - result.start = TypeScript.start(node); - result.end = TypeScript.fullEnd(node); - result.width = TypeScript.width(node); - - if (TypeScript.isIncrementallyUnusable(node)) { - result.isIncrementallyUnusable = true; - } - - if (TypeScript.parsedInStrictModeContext(node)) { - result.parsedInStrictModeContext = true; - } - - if (TypeScript.parsedInDisallowInContext(node)) { - result.parsedInDisallowInContext = true; - } - - if (TypeScript.parsedInYieldContext(node)) { - result.parsedInYieldContext = true; - } - - if (TypeScript.parsedInGeneratorParameterContext(node)) { - result.parsedInGeneratorParameterContext = true; - } - - if (TypeScript.parsedInAsyncContext(node)) { - result.parsedInAsyncContext = true; - } - - var usedNames: any = {}; - var thisAsIndexable: ts.Map = node; - for (var i = 0, n = TypeScript.childCount(node); i < n; i++) { - var value = TypeScript.childAt(node, i); - - if (value) { - for (var name in node) { - if (usedNames[name] === undefined && value === thisAsIndexable[name]) { - result[name] = elementToJSON(value, text); - usedNames[name] = true; - break; - } - } - } - } - - return result; -} - -function elementToJSON(element: TypeScript.ISyntaxElement, text: TypeScript.ISimpleText): any { - if (element !== undefined) { - if (TypeScript.isToken(element)) { - return tokenToJSON(element, text,/*megeTrivia:*/ true); - } - else if (TypeScript.isList(element)) { - if (TypeScript.childCount(element) > 0) { - var result: any[] = []; - - for (var i = 0, n = TypeScript.childCount(element); i < n; i++) { - result.push(elementToJSON(TypeScript.childAt(element, i), text)); - } - - return result; - } - } - else { - return nodeToJSON(element, text); - } - } -} - -function syntaxTreeToJSON(tree: TypeScript.SyntaxTree): any { - var result: any = {}; - - result.isDeclaration = tree.isDeclaration(); - switch (tree.languageVersion()) { - case ts.ScriptTarget.ES3: - result.languageVersion = "EcmaScript3"; - break; - case ts.ScriptTarget.ES5: - result.languageVersion = "EcmaScript5"; - break; - case ts.ScriptTarget.ES6: - result.languageVersion = "EcmaScript6"; - break; - default: - throw new Error(); - } - - if (tree.diagnostics().length > 0) { - result.diagnostics = tree.diagnostics(); - } - - result.sourceUnit = elementToJSON(tree.sourceUnit(), tree.text); - result.lineMap = tree.lineMap(); - - return result; -} - -function emptySourceUnit(): TypeScript.SourceUnitSyntax { - return TypeScript.Parser.parse("", TypeScript.SimpleText.fromString(""), ts.ScriptTarget.ES5, false).sourceUnit(); -} - -class Program { - runAllTests(verify: boolean): void { - TypeScript.Environment.standardOut.WriteLine(""); - - //var libdts = TypeScript.Environment.readFile("built\\local\\lib.d.ts", undefined); - - //TypeScript.Environment.standardOut.WriteLine("size: " + libdts.contents.length); - //var libsource = ts.createSourceFile("lib.d.ts", libdts.contents); - //ts.parseSourceFile(libsource); - - //var reps = 10; - //timer.start(); - //for (var i = 0; i < reps; i++) { - // var libsource = ts.createSourceFile("lib.d.ts", libdts.contents); - // ts.parseSourceFile(libsource); - //} - //timer.end(); - //TypeScript.Environment.standardOut.WriteLine("Anders Parse: " + (timer.time / reps)); - - //var txt = TypeScript.SimpleText.fromString(libdts.contents); - //timer.start(); - //for (var i = 0; i < reps; i++) { - // TypeScript.Parser.parse("lib.d.ts.", txt, true, new TypeScript.ParseOptions(ts.ScriptTarget.ES5, true)); - //} - //timer.end(); - //TypeScript.Environment.standardOut.WriteLine("Cyrus Parse: " + (timer.time / reps)); - - if (generate) { - TypeScript.Environment.standardOut.WriteLine("!!!!!!!!!! WARNING - GENERATING !!!!!!!!!"); - TypeScript.Environment.standardOut.WriteLine(""); - } - - if (specificFile === undefined) { - TypeScript.Environment.standardOut.WriteLine("Testing Incremental 2."); - TypeScript.IncrementalParserTests.runAllTests(); - } - - TypeScript.Environment.standardOut.Write("Testing Incremental 1:"); - this.runTests(TypeScript.Environment.currentDirectory() + "\\tests\\Fidelity\\parser\\ecmascript5", - fileName => this.runIncremental(fileName, ts.ScriptTarget.ES5)); - - if (specificFile === undefined) { - this.testIncrementalSpeed(TypeScript.Environment.currentDirectory() + "\\src\\services\\syntax\\syntaxNodes.concrete.generated.ts"); - } - - TypeScript.Environment.standardOut.Write("Testing scanner ES3:"); - this.runTests(TypeScript.Environment.currentDirectory() + "\\tests\\Fidelity\\scanner\\ecmascript3", - fileName => this.runScanner(fileName, ts.ScriptTarget.ES3, verify, /*generateBaselines:*/ generate)); - - TypeScript.Environment.standardOut.Write("Testing scanner ES5:"); - this.runTests(TypeScript.Environment.currentDirectory() + "\\tests\\Fidelity\\scanner\\ecmascript5", - fileName => this.runScanner(fileName, ts.ScriptTarget.ES5, verify, /*generateBaselines:*/ generate)); - - TypeScript.Environment.standardOut.Write("Testing findToken:"); - this.runTests(TypeScript.Environment.currentDirectory() + "\\tests\\Fidelity\\findToken\\ecmascript5", - fileName => this.runFindToken(fileName, ts.ScriptTarget.ES5, verify, /*generateBaselines:*/ generate)); - - TypeScript.Environment.standardOut.Write("Testing trivia:"); - this.runTests(TypeScript.Environment.currentDirectory() + "\\tests\\Fidelity\\trivia\\ecmascript5", - fileName => this.runTrivia(fileName, ts.ScriptTarget.ES5, verify, /*generateBaselines:*/ generate)); - - TypeScript.Environment.standardOut.Write("Testing parser ES6:"); - this.runTests(TypeScript.Environment.currentDirectory() + "\\tests\\Fidelity\\parser\\ecmascript6", - fileName => this.runParser(fileName, ts.ScriptTarget.ES6, verify, /*generateBaselines:*/ generate)); - - TypeScript.Environment.standardOut.Write("Testing parser ES5:"); - this.runTests(TypeScript.Environment.currentDirectory() + "\\tests\\Fidelity\\parser\\ecmascript5", - fileName => this.runParser(fileName, ts.ScriptTarget.ES5, verify, /*generateBaselines:*/ generate)); - - TypeScript.Environment.standardOut.Write("Testing parser ES3:"); - this.runTests(TypeScript.Environment.currentDirectory() + "\\tests\\Fidelity\\parser\\ecmascript3", - fileName => this.runParser(fileName, ts.ScriptTarget.ES3, verify, /*generateBaselines:*/ generate)); - - TypeScript.Environment.standardOut.Write("Testing emitter 2:"); - this.runTests(TypeScript.Environment.currentDirectory() + "\\tests\\Fidelity\\emitter2\\ecmascript5", - fileName => this.runEmitter(fileName, ts.ScriptTarget.ES5, verify, /*generateBaselines:*/ generate, /*justText:*/ true)); - - //TypeScript.Environment.standardOut.WriteLine("Testing Monoco."); - //this.runTests(TypeScript.Environment.currentDirectory() + "c:\\temp\\monoco", - // fileName => this.runParser(fileName, ts.ScriptTarget.ES5, false, /*generateBaselines:*/ generate, /*allowErrors:*/ false)); - - TypeScript.Environment.standardOut.Write("Testing emitter 1:"); - this.runTests(TypeScript.Environment.currentDirectory() + "\\tests\\Fidelity\\emitter\\ecmascript5", - fileName => this.runEmitter(fileName, ts.ScriptTarget.ES5, verify, /*generateBaselines:*/ generate, /*justText:*/ false)); - - TypeScript.Environment.standardOut.Write("Testing pretty printer:"); - this.runTests(TypeScript.Environment.currentDirectory() + "\\tests\\Fidelity\\prettyPrinter\\ecmascript5", - fileName => this.runPrettyPrinter(fileName, ts.ScriptTarget.ES5, verify, /*generateBaselines:*/ generate)); - - TypeScript.Environment.standardOut.Write("Testing against 262:"); - this.runTests(TypeScript.Environment.currentDirectory() + "\\tests\\Fidelity\\test262", - fileName => this.runParser(fileName, ts.ScriptTarget.ES5, verify, /*generateBaselines:*/ generate)); - } - - private static reusedElements(oldNode: TypeScript.SourceUnitSyntax, newNode: TypeScript.SourceUnitSyntax, key: any): { originalElements: number; reusedElements: number; } { - var allOldElements = TypeScript.SyntaxElementsCollector.collectElements(oldNode); - var allNewElements = TypeScript.SyntaxElementsCollector.collectElements(newNode); - - for (var i = 0; i < allOldElements.length; i++) { - var oldElement: ts.Map = allOldElements[i]; - oldElement[key] = key; - } - - var reused = 0; - for (var j = 0; j < allNewElements.length; j++) { - var newElement: ts.Map = allNewElements[j]; - if (newElement[key] === key) { - reused++; - } - } - - return { originalElements: allOldElements.length, reusedElements: reused }; - } - - private testIncrementalSpeed(fileName: string): void { - var repeat = 500; - TypeScript.Environment.standardOut.WriteLine("Incremental Perf - Changed Text."); - this.testIncrementalSpeedChange(fileName, repeat); - - TypeScript.Environment.standardOut.WriteLine(""); - TypeScript.Environment.standardOut.WriteLine("Incremental Perf - No Changed Text."); - this.testIncrementalSpeedNoChange(fileName, repeat); - } - - private testIncrementalSpeedNoChange(fileName: string, repeat: number): void { - if (specificFile !== undefined) { - return; - } - - var contents = TypeScript.Environment.readFile(fileName, /*codepage*/ undefined).contents; - // TypeScript.Environment.standardOut.WriteLine(fileName); - - var text = TypeScript.SimpleText.fromString(contents); - var tree = TypeScript.Parser.parse(fileName, text, ts.ScriptTarget.ES5, isDTSFile(fileName)); - var originalTree = tree; - - var totalIncrementalTime = 0; - - for (var i = 0; i < repeat; i++) { - var changeLength = i * 2; - - var start = new Date().getTime(); - var tree2 = TypeScript.IncrementalParser.parse(tree, new TypeScript.TextChangeRange( new TypeScript.TextSpan(((text.length() / 2) >> 0) - i, changeLength), changeLength), text); - totalIncrementalTime += (new Date().getTime() - start); - - // we can't check parents here because we are explicitly destroying the original tree - // to make the new tree. Thus, the parents in the first tree won't actually match. - TypeScript.Debug.assert(TypeScript.treeStructuralEquals(tree, tree2, /*checkParents:*/ false)); - - tree = tree2; - } - - var rateBytesPerMillisecond = (contents.length * repeat) / totalIncrementalTime; - var rateBytesPerSecond = rateBytesPerMillisecond * 1000; - var rateMBPerSecond = rateBytesPerSecond / (1024 * 1024); - - // TypeScript.Environment.standardOut.WriteLine("Incremental time: " + totalIncrementalTime); - TypeScript.Environment.standardOut.WriteLine("Incremental rate: " + rateMBPerSecond + " MB/s"); - - var allOldElements = TypeScript.SyntaxElementsCollector.collectElements(originalTree.sourceUnit()); - var allNewElements = TypeScript.SyntaxElementsCollector.collectElements(tree.sourceUnit()); - - var reuse = TypeScript.ArrayUtilities.where(allNewElements, - v => TypeScript.ArrayUtilities.contains(allOldElements, v)).length; - - TypeScript.Environment.standardOut.WriteLine("Reuse: " + reuse / allNewElements.length); - } - - private testIncrementalSpeedChange(fileName: string, repeat: number): void { - if (specificFile !== undefined) { - return; - } - - var contents = TypeScript.Environment.readFile(fileName, /*codepage*/ undefined).contents; - // TypeScript.Environment.standardOut.WriteLine(fileName); - - var text = TypeScript.SimpleText.fromString(contents); - var tree = TypeScript.Parser.parse(fileName, text, ts.ScriptTarget.ES5, isDTSFile(fileName)); - var originalTree = tree; - - var allElements = TypeScript.SyntaxElementsCollector.collectElements(tree.sourceUnit()); - var nonSharedElements = TypeScript.ArrayUtilities.where(allElements, e => !(TypeScript.isList(e) && (e).length === 0)); - TypeScript.Environment.standardOut.WriteLine("All elements : " + allElements.length); - TypeScript.Environment.standardOut.WriteLine("Non empty lists: " + nonSharedElements.length); - - var totalIncrementalTime = 0; - var totalIncrementalASTTime = 0; - - for (var i = 0; i < repeat; i++) { - var changeLength = i * 2; - var changeSpan = new TypeScript.TextSpan(((text.length() / 2) >> 0) - i, changeLength); - - contents = text.substr(0, text.length()); - var contentsToReplace = contents.substr(changeSpan.start(), changeSpan.length()); - - var first = true; - var updatedText = contentsToReplace.replace(/[^a-zA-Z0-9][a-z]+[^a-zA-Z0-9]/, (sub) => { - if (first && TypeScript.SyntaxFacts.getTokenKind(sub.substr(1, sub.length - 2)) === TypeScript.SyntaxKind.None) { - first = false; - return sub.substr(0, sub.length - 1) + "a" + sub.substr(sub.length - 1); - } - - return sub; - }); - - text = TypeScript.SimpleText.fromString( - contents.substr(0, changeSpan.start()) + - updatedText + - contents.substr(changeSpan.end())); - var changeRange = new TypeScript.TextChangeRange(changeSpan, updatedText.length); - - var start = new Date().getTime(); - var tree2 = TypeScript.IncrementalParser.parse(tree, changeRange, text); - totalIncrementalTime += (new Date().getTime() - start); - - tree = tree2; - } - - var rateBytesPerMillisecond = (contents.length * repeat) / totalIncrementalTime; - var rateBytesPerSecond = rateBytesPerMillisecond * 1000; - var rateMBPerSecond = rateBytesPerSecond / (1024 * 1024); - - TypeScript.Environment.standardOut.WriteLine("Incremental rate: " + rateMBPerSecond + " MB/s"); - - rateBytesPerMillisecond = (contents.length * repeat) / totalIncrementalASTTime; - rateBytesPerSecond = rateBytesPerMillisecond * 1000; - rateMBPerSecond = rateBytesPerSecond / (1024 * 1024); - - var allOldElements = TypeScript.SyntaxElementsCollector.collectElements(originalTree.sourceUnit()); - var allNewElements = TypeScript.SyntaxElementsCollector.collectElements(tree.sourceUnit()); - - var reuse = TypeScript.ArrayUtilities.where(allNewElements, - v => TypeScript.ArrayUtilities.contains(allOldElements, v)).length; - - TypeScript.Environment.standardOut.WriteLine("Reuse: " + reuse / allNewElements.length); - } - - private handleException(fileName: string, e: Error): void { - TypeScript.Environment.standardOut.WriteLine(""); - if ((e.message).indexOf(fileName) < 0) { - TypeScript.Environment.standardOut.WriteLine("Exception: " + fileName + ": " + e.message); - } - else { - TypeScript.Environment.standardOut.WriteLine(e.message); - } - } - - private runTests( - path: string, - action: (fileName: string) => void) { - - var testFiles = TypeScript.Environment.listFiles(path, undefined, { recursive: true }); - var indexNum = 0; - - testFiles.forEach(fileName => { - if (specificFile !== undefined && fileName.indexOf(specificFile) < 0) { - return; - } - - if (indexNum % 100 === 0) { - TypeScript.Environment.standardOut.Write("."); - } - - // TypeScript.Environment.standardOut.WriteLine(fileName); - try { - action(fileName); - } - catch (e) { - this.handleException(fileName, e); - } - - indexNum++; - }); - - TypeScript.Environment.standardOut.WriteLine(""); - } - - private checkResult(fileName: string, result: any, convert: (a: any) => any, verify: boolean, generateBaseline: boolean, justText: boolean): void { - var actualResult: string; - - var expectedFile = fileName + ".expected"; - var actualFile = fileName + ".actual"; - - if (generateBaseline) { - actualResult = justText ? result : JSON.stringify(convert(result), undefined, 4); - expectedFile = fileName + ".expected"; - - // TypeScript.Environment.standardOut.WriteLine("Generating baseline for: " + fileName); - TypeScript.Environment.writeFile(expectedFile, actualResult, /*writeByteOrderMark:*/ false); - - if (TypeScript.Environment.fileExists(actualFile)) { - TypeScript.Environment.deleteFile(actualFile); - } - } - else if (verify) { - actualResult = justText ? result : JSON.stringify(convert(result), undefined, 4); - - var expectedResult: string = undefined; - if (!TypeScript.Environment.fileExists(expectedFile)) { - TypeScript.Environment.writeFile(expectedFile, "", false); - } - else { - expectedResult = TypeScript.Environment.readFile(expectedFile, /*codepage*/ undefined).contents; - } - - if (expectedResult !== actualResult) { - TypeScript.Environment.standardOut.WriteLine(" ! Fail: " + actualFile); - TypeScript.Environment.writeFile(actualFile, actualResult, /*writeByteOrderMark:*/ false); - } - else { - if (TypeScript.Environment.fileExists(actualFile)) { - TypeScript.Environment.deleteFile(actualFile); - } - } - } - } - - runEmitter(fileName: string, - languageVersion: ts.ScriptTarget, - verify: boolean, - generateBaseline: boolean, - justText: boolean): void { - if (true) { - return; - } - - if (!TypeScript.StringUtilities.endsWith(fileName, ".ts") && !TypeScript.StringUtilities.endsWith(fileName, ".js")) { - return; - } - - if (fileName.indexOf("RealSource") >= 0) { - return; - } - - var contents = TypeScript.Environment.readFile(fileName, /*codepage*/ undefined).contents; - // TypeScript.Environment.standardOut.WriteLine(fileName); - - totalSize += contents.length; - - var text = TypeScript.SimpleText.fromString(contents); - - var tree = TypeScript.Parser.parse(fileName, text, languageVersion, isDTSFile(fileName)); - //var emitted = TypeScript.Emitter1.emit(tree.sourceUnit()); - - //var result = justText - // ? emitted.fullText() - // : { fullText: emitted.fullText().split("\r\n"), sourceUnit: emitted }; - //this.checkResult(fileName, result, verify, generateBaseline, justText); - } - - runPrettyPrinter(fileName: string, - languageVersion: ts.ScriptTarget, - verify: boolean, - generateBaseline: boolean): void { - if (!TypeScript.StringUtilities.endsWith(fileName, ".ts") && !TypeScript.StringUtilities.endsWith(fileName, ".js")) { - return; - } - - if (fileName.indexOf("RealSource") >= 0) { - return; - } - - var contents = TypeScript.Environment.readFile(fileName, /*codepage*/ undefined).contents; - // TypeScript.Environment.standardOut.WriteLine(fileName); - - totalSize += contents.length; - - var text = TypeScript.SimpleText.fromString(contents); - - var tree = TypeScript.Parser.parse(fileName, text, languageVersion, isDTSFile(fileName)); - var result = TypeScript.PrettyPrinter.prettyPrint(tree.sourceUnit()); - - this.checkResult(fileName, result, undefined, verify, generateBaseline, true); - } - - runParser(fileName: string, - languageVersion: ts.ScriptTarget, - verify: boolean, - generateBaseline: boolean, - allowErrors = true): void { - if (!TypeScript.StringUtilities.endsWith(fileName, ".ts") && !TypeScript.StringUtilities.endsWith(fileName, ".js")) { - return; - } - - if (fileName.indexOf("RealSource") >= 0) { - return; - } - - var contents = TypeScript.Environment.readFile(fileName, /*codepage*/ undefined).contents; - // TypeScript.Environment.standardOut.WriteLine(fileName); - - totalSize += contents.length; - - var text = TypeScript.SimpleText.fromString(contents); - - var andersStart = new Date().getTime(); - var andersText = ts.createSourceFile(fileName, contents, ts.ScriptTarget.ES6, "0"); - andersTime += (new Date().getTime() - andersStart); - - var start = new Date().getTime(); - var tree = TypeScript.Parser.parse(fileName, text, languageVersion, isDTSFile(fileName)); - - var delta = new Date().getTime() - start; - cyrusTime += delta; - - if (!allowErrors) { - var diagnostics = tree.diagnostics(); - if (diagnostics.length > 0) { - TypeScript.Environment.standardOut.WriteLine(fileName); - TypeScript.Environment.standardOut.WriteLine("\t" + diagnostics[0].message()); - } - } - - if (verify) { - TypeScript.Debug.assert(TypeScript.fullWidth(tree.sourceUnit()) === contents.length); - TypeScript.visitNodeOrToken(new PositionValidatingWalker(), tree.sourceUnit()); - - this.checkResult(fileName, tree, syntaxTreeToJSON, verify, generateBaseline, /*justText:*/ false); - } - totalTime += delta; - } - - runIncremental(fileName: string, languageVersion: ts.ScriptTarget): void { - if (!TypeScript.StringUtilities.endsWith(fileName, ".ts") && !TypeScript.StringUtilities.endsWith(fileName, ".js")) { - return; - } - - if (fileName.indexOf("RealSource") >= 0) { - return; - } - - var contents = TypeScript.Environment.readFile(fileName, /*codepage*/ undefined).contents; - // TypeScript.Environment.standardOut.WriteLine(fileName); - - var text = TypeScript.SimpleText.fromString(contents); - - var tree1 = TypeScript.Parser.parse(fileName, text, languageVersion, isDTSFile(fileName)); - var tree2 = TypeScript.IncrementalParser.parse( - new TypeScript.SyntaxTree(emptySourceUnit(), isDTSFile(fileName), [], fileName, text, tree1.languageVersion()), - new TypeScript.TextChangeRange(new TypeScript.TextSpan(0, 0), text.length()), - text); - - TypeScript.Debug.assert(TypeScript.treeStructuralEquals(tree1, tree2, /*checkParents:*/ true)); - } - - runFindToken(fileName: string, languageVersion: ts.ScriptTarget, verify: boolean, generateBaseline: boolean): void { - if (!TypeScript.StringUtilities.endsWith(fileName, ".ts") && !TypeScript.StringUtilities.endsWith(fileName, ".js")) { - return; - } - - if (fileName.indexOf("RealSource") >= 0) { - return; - } - - var contents = TypeScript.Environment.readFile(fileName, /*codepage*/ undefined).contents; - // TypeScript.Environment.standardOut.WriteLine(fileName); - - var text = TypeScript.SimpleText.fromString(contents); - var tree = TypeScript.Parser.parse(fileName, text, languageVersion, isDTSFile(fileName)); - var sourceUnit = tree.sourceUnit(); - - TypeScript.Debug.assert(TypeScript.fullWidth(tree.sourceUnit()) === contents.length); - - var tokens: ts.Map= {}; - var tokensOnLeft: ts.Map = {}; - var leftToRight: TypeScript.ISyntaxToken[] = []; - var rightToLeft: TypeScript.ISyntaxToken[] = []; - - for (var i = 0; i <= contents.length; i++) { - var token = TypeScript.findToken(sourceUnit, i); - - var left = TypeScript.Syntax.findTokenOnLeft(sourceUnit, i); - var tokenOnLeft = left || null; - - TypeScript.Debug.assert(TypeScript.isToken(token)); - if (i === contents.length) { - TypeScript.Debug.assert(token.kind === TypeScript.SyntaxKind.EndOfFileToken); - } - else { - TypeScript.Debug.assert(TypeScript.width(token) > 0 || token.kind === TypeScript.SyntaxKind.EndOfFileToken); - TypeScript.Debug.assert(token.fullWidth() > 0); - } - - tokens[i] = tokenToJSON(token, text, /*megeTrivia:*/ false); - tokensOnLeft[i] = tokenToJSON(tokenOnLeft, text, /*megeTrivia:*/ false) || null; - } - - var positionedToken = TypeScript.findToken(sourceUnit, 0); - while (positionedToken) { - leftToRight.push(tokenToJSON(positionedToken, text, /*megeTrivia:*/ false)); - positionedToken = TypeScript.nextToken(positionedToken); - } - - positionedToken = TypeScript.findToken(sourceUnit, contents.length); - while (positionedToken) { - rightToLeft.push(tokenToJSON(positionedToken, text, /*megeTrivia:*/ false)); - positionedToken = TypeScript.previousToken(positionedToken); - } - - var result = { - tokens: tokens, - tokensOnLeft: tokensOnLeft, - leftToRight: leftToRight, - rightToLeft: rightToLeft, - }; - - this.checkResult(fileName, result, a => a, verify, generateBaseline, /*justText:*/ false); - } - - runTrivia(fileName: string, languageVersion: ts.ScriptTarget, verify: boolean, generateBaseline: boolean): void { - if (!TypeScript.StringUtilities.endsWith(fileName, ".ts")) { - return; - } - - var contents = TypeScript.Environment.readFile(fileName, /*codepage*/ undefined).contents; - var text = TypeScript.SimpleText.fromString(contents); - var scanner = TypeScript.Scanner.createScanner(languageVersion, text, () => { }); - - var tokens: TypeScript.ISyntaxToken[] = []; - var textArray: string[] = []; - var diagnostics: TypeScript.Diagnostic[] = []; - - while (true) { - var token = scanner.scan(/*allowRegularExpression:*/ false); - tokens.push(tokenToJSON(token, text, /*megeTrivia:*/ false)); - - if (token.kind === TypeScript.SyntaxKind.EndOfFileToken) { - break; - } - } - - this.checkResult(fileName, tokens, a => a, verify, generateBaseline, false); - } - - runScanner(fileName: string, languageVersion: ts.ScriptTarget, verify: boolean, generateBaseline: boolean): void { - if (!TypeScript.StringUtilities.endsWith(fileName, ".ts")) { - return; - } - - var contents = TypeScript.Environment.readFile(fileName, /*codepage*/ undefined).contents; - - var diagnostics: TypeScript.Diagnostic[] = []; - var reportDiagnostic = (position: number, fullWidth: number, diagnosticKey: string, args: any[]) => { - diagnostics.push(new TypeScript.Diagnostic(fileName, text.lineMap(), position, fullWidth, diagnosticKey, args)); - }; - - var text = TypeScript.SimpleText.fromString(contents); - var scanner = TypeScript.Scanner.createScanner(languageVersion, text, reportDiagnostic); - - var tokens: TypeScript.ISyntaxToken[] = []; - var jsonTokens: any[] = []; - var textArray: string[] = []; - var position = 0; - - while (true) { - var token = scanner.scan(/*allowRegularExpression:*/ false); - jsonTokens.push(tokenToJSON(token, text, /*megeTrivia:*/ false)); - tokens.push(token); - - TypeScript.Debug.assert(position === token.fullStart()); - position += token.fullWidth(); - - if (token.kind === TypeScript.SyntaxKind.EndOfFileToken) { - break; - } - } - - if (verify) { - var tokenText = TypeScript.ArrayUtilities.select(tokens, t => t.fullText(text)).join(""); - - if (tokenText !== contents) { - throw new Error("Token invariant broken!"); - } - } - - var result = diagnostics.length === 0 ? jsonTokens : { diagnostics: diagnostics, tokens: jsonTokens }; - this.checkResult(fileName, result, a => a, verify, generateBaseline, false); - } - - parseArguments(): void { - TypeScript.Environment.standardOut.WriteLine("Testing input files."); - for (var index in TypeScript.Environment.arguments) { - var fileName: string = TypeScript.Environment.arguments[index]; - if (specificFile !== undefined && fileName.indexOf(specificFile) < 0) { - continue; - } - - this.runParser(fileName, ts.ScriptTarget.ES5, /*verify:*/ false, /*generate:*/ false, /*allowErrors:*/ false); - } - } - - run262(): void { - var path = "C:\\temp\\test262\\suite"; - var testFiles = TypeScript.Environment.listFiles(path, undefined, { recursive: true }); - - var testCount = 0; - var failCount = 0; - var skippedTests:string[] = []; - - for (var index in testFiles) { - var fileName: string = testFiles[index]; - - if (specificFile !== undefined && fileName.indexOf(specificFile) < 0) { - continue; - } - - // All 262 files are utf8. But they dont' have a BOM. Force them to be read in - // as UTF8. - var contents = TypeScript.Environment.readFile(fileName, /*codepage*/ undefined).contents; - - var isNegative = contents.indexOf("@negative") >= 0 - - testCount++; - - try { - var stringText = TypeScript.SimpleText.fromString(contents); - var tree = TypeScript.Parser.parse(fileName, stringText, ts.ScriptTarget.ES5, isDTSFile(fileName)); - - if (isNegative) { - var nameOnly = fileName.substr(fileName.lastIndexOf("\\") + 1); - var canParseSuccessfully = negative262ExpectedResults[nameOnly]; - - if (canParseSuccessfully) { - // We expected to parse this successfully. Report an error if we didn't. - if (tree.diagnostics() && tree.diagnostics().length > 0) { - TypeScript.Environment.standardOut.WriteLine("Negative test. Unexpected failure: " + fileName); - failCount++; - } - } - else { - // We expected to fail on this. Report an error if we don't. - if (!tree.diagnostics() || tree.diagnostics().length === 0) { - TypeScript.Environment.standardOut.WriteLine("Negative test. Unexpected success: " + fileName); - failCount++; - } - } - } - else { - // Not a negative test. We can't have any errors or skipped tokens. - if (tree.diagnostics() && tree.diagnostics().length > 0) { - TypeScript.Environment.standardOut.WriteLine("Unexpected failure: " + fileName); - failCount++; - } - } - } - catch (e) { - failCount++; - this.handleException(fileName, e); - } - } - - TypeScript.Environment.standardOut.WriteLine(""); - TypeScript.Environment.standardOut.WriteLine("Test 262 results:"); - TypeScript.Environment.standardOut.WriteLine("Test Count: " + testCount); - TypeScript.Environment.standardOut.WriteLine("Skip Count: " + skippedTests.length); - TypeScript.Environment.standardOut.WriteLine("Fail Count: " + failCount); - - for (var i = 0; i < skippedTests.length; i++) { - TypeScript.Environment.standardOut.WriteLine(skippedTests[i]); - } - } -} - -var andersTime = 0; -var cyrusTime = 0; - -var totalTime = 0; -var totalSize = 0; -var program = new Program(); - -// New parser. -totalTime = 0; -totalSize = 0; -program.runAllTests(true); - -var count = 1; - -//for (var i = 0; i < count; i++) { -// program.parseArguments(); -//} - -TypeScript.Environment.standardOut.WriteLine("Total time: " + (totalTime / count)); -TypeScript.Environment.standardOut.WriteLine("Total size: " + (totalSize / count)); -TypeScript.Environment.standardOut.WriteLine("Anders time: " + andersTime); -TypeScript.Environment.standardOut.WriteLine("Cyrus time : " + cyrusTime); diff --git a/tests/Fidelity/program.js b/tests/Fidelity/program.js deleted file mode 100644 index 51efd587cde..00000000000 --- a/tests/Fidelity/program.js +++ /dev/null @@ -1,32340 +0,0 @@ -if (!String.prototype.trim) { - String.prototype.trim = function () { - return this.replace(/^\s+|\s+$/g, ''); - }; -} -if (!Array.prototype.indexOf) { - Array.prototype.indexOf = function (searchElement, fromIndex) { - "use strict"; - if (this == null) { - throw new TypeError(); - } - var t = Object(this); - var len = t.length >>> 0; - if (len === 0) { - return -1; - } - var n = 0; - if (arguments.length > 0) { - n = Number(arguments[1]); - if (n != n) { - n = 0; - } - else if (n != 0 && n != Infinity && n != -Infinity) { - n = (n > 0 || -1) * Math.floor(Math.abs(n)); - } - } - if (n >= len) { - return -1; - } - var k = n >= 0 ? n : Math.max(len - Math.abs(n), 0); - for (; k < len; k++) { - if (k in t && t[k] === searchElement) { - return k; - } - } - return -1; - }; -} -if (!Array.prototype.filter) { - Array.prototype.filter = function (fun, thisp) { - "use strict"; - if (this == null) - throw new TypeError(); - var t = Object(this); - var len = t.length >>> 0; - if (typeof fun != "function") - throw new TypeError(); - var res = []; - for (var i = 0; i < len; i++) { - if (i in t) { - var val = t[i]; - if (fun.call(thisp, val, i, t)) - res.push(val); - } - } - return res; - }; -} -if (!Array.prototype.map) { - Array.prototype.map = function (callback, thisArg) { - var T = undefined, A, k; - if (this == null) { - throw new TypeError(" this is null or not defined"); - } - var O = Object(this); - var len = O.length >>> 0; - if ({}.toString.call(callback) != "[object Function]") { - throw new TypeError(callback + " is not a function"); - } - if (thisArg) { - T = thisArg; - } - A = new Array(len); - k = 0; - while (k < len) { - var kValue, mappedValue; - if (k in O) { - kValue = O[k]; - mappedValue = callback.call(T, kValue, k, O); - A[k] = mappedValue; - } - k++; - } - return A; - }; -} -if (!Array.prototype.reduce) { - Array.prototype.reduce = function reduce(accumulator) { - if (this === null || this === undefined) - throw new TypeError("Object is null or undefined"); - var i = 0, l = this.length >> 0, curr; - if (typeof accumulator !== "function") - throw new TypeError("First argument is not callable"); - if (arguments.length < 2) { - if (l === 0) - throw new TypeError("Array length is 0 and no second argument"); - curr = this[0]; - i = 1; - } - else - curr = arguments[1]; - while (i < l) { - if (i in this) - curr = accumulator.call(undefined, curr, this[i], i, this); - ++i; - } - return curr; - }; -} -if (!Array.prototype.forEach) { - Array.prototype.forEach = function (callback, thisArg) { - var T, k; - if (this == null) { - throw new TypeError(" this is null or not defined"); - } - var O = Object(this); - var len = O.length >>> 0; - if ({}.toString.call(callback) != "[object Function]") { - throw new TypeError(callback + " is not a function"); - } - if (thisArg) { - T = thisArg; - } - else { - T = undefined; - } - k = 0; - while (k < len) { - var kValue; - if (k in O) { - kValue = O[k]; - callback.call(T, kValue, k, O); - } - k++; - } - }; -} -if (!Date.now) { - Date.now = function () { - return (new Date()).getTime(); - }; -} -if (!Array.prototype.some) { - Array.prototype.some = function (fun) { - "use strict"; - if (this == null) - throw new TypeError(); - var t = Object(this); - var len = t.length >>> 0; - if (typeof fun != "function") - throw new TypeError(); - var thisp = arguments[1]; - for (var i = 0; i < len; i++) { - var idx = i.toString(); - if (idx in t && fun.call(thisp, t[i], i, t)) - return true; - } - return false; - }; -} -if (typeof JSON !== 'object') { - JSON = {}; -} -(function () { - 'use strict'; - function f(n) { - return n < 10 ? '0' + n : n; - } - if (typeof Date.prototype.toJSON !== 'function') { - Date.prototype.toJSON = function () { - return isFinite(this.valueOf()) ? this.getUTCFullYear() + '-' + f(this.getUTCMonth() + 1) + '-' + f(this.getUTCDate()) + 'T' + f(this.getUTCHours()) + ':' + f(this.getUTCMinutes()) + ':' + f(this.getUTCSeconds()) + 'Z' : null; - }; - String.prototype.toJSON = Number.prototype.toJSON = Boolean.prototype.toJSON = function () { - return this.valueOf(); - }; - } - var cx = /[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g, escapable = /[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g, gap, indent, meta = { - '\b': '\\b', - '\t': '\\t', - '\n': '\\n', - '\f': '\\f', - '\r': '\\r', - '"': '\\"', - '\\': '\\\\' - }, rep; - function quote(string) { - escapable.lastIndex = 0; - return escapable.test(string) ? '"' + string.replace(escapable, function (a) { - var c = meta[a]; - return typeof c === 'string' ? c : '\\u' + ('0000' + a.charCodeAt(0).toString(16)).slice(-4); - }) + '"' : '"' + string + '"'; - } - function str(key, holder) { - var i, k, v, length, mind = gap, partial, value = holder[key]; - if (value && typeof value === 'object' && typeof value.toJSON === 'function') { - value = value.toJSON(key); - } - if (typeof rep === 'function') { - value = rep.call(holder, key, value); - } - switch (typeof value) { - case 'string': - return quote(value); - case 'number': - return isFinite(value) ? String(value) : 'null'; - case 'boolean': - case 'null': - return String(value); - case 'object': - if (!value) { - return 'null'; - } - gap += indent; - partial = []; - if (Object.prototype.toString.apply(value) === '[object Array]') { - length = value.length; - for (i = 0; i < length; i += 1) { - partial[i] = str(i, value) || 'null'; - } - v = partial.length === 0 ? '[]' : gap ? '[\n' + gap + partial.join(',\n' + gap) + '\n' + mind + ']' : '[' + partial.join(',') + ']'; - gap = mind; - return v; - } - if (rep && typeof rep === 'object') { - length = rep.length; - for (i = 0; i < length; i += 1) { - if (typeof rep[i] === 'string') { - k = rep[i]; - v = str(k, value); - if (v) { - partial.push(quote(k) + (gap ? ': ' : ':') + v); - } - } - } - } - else { - for (k in value) { - if (Object.prototype.hasOwnProperty.call(value, k)) { - v = str(k, value); - if (v) { - partial.push(quote(k) + (gap ? ': ' : ':') + v); - } - } - } - } - v = partial.length === 0 ? '{}' : gap ? '{\n' + gap + partial.join(',\n' + gap) + '\n' + mind + '}' : '{' + partial.join(',') + '}'; - gap = mind; - return v; - } - } - if (typeof JSON.stringify !== 'function') { - JSON.stringify = function (value, replacer, space) { - var i; - gap = ''; - indent = ''; - if (typeof space === 'number') { - for (i = 0; i < space; i += 1) { - indent += ' '; - } - } - else if (typeof space === 'string') { - indent = space; - } - rep = replacer; - if (replacer && typeof replacer !== 'function' && (typeof replacer !== 'object' || typeof replacer.length !== 'number')) { - throw new Error('JSON.stringify'); - } - return str('', { '': value }); - }; - } - if (typeof JSON.parse !== 'function') { - JSON.parse = function (text, reviver) { - var j; - function walk(holder, key) { - var k, v, value = holder[key]; - if (value && typeof value === 'object') { - for (k in value) { - if (Object.prototype.hasOwnProperty.call(value, k)) { - v = walk(value, k); - if (v !== undefined) { - value[k] = v; - } - else { - delete value[k]; - } - } - } - } - return reviver.call(holder, key, value); - } - text = String(text); - cx.lastIndex = 0; - if (cx.test(text)) { - text = text.replace(cx, function (a) { - return '\\u' + ('0000' + a.charCodeAt(0).toString(16)).slice(-4); - }); - } - if (/^[\],:{}\s]*$/.test(text.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g, '@').replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g, ']').replace(/(?:^|:|,)(?:\s*\[)+/g, ''))) { - j = eval('(' + text + ')'); - return typeof reviver === 'function' ? walk({ '': j }, '') : j; - } - throw new SyntaxError('JSON.parse'); - }; - } -}()); -var TypeScript; -(function (TypeScript) { - TypeScript.nodeMakeDirectoryTime = 0; - TypeScript.nodeCreateBufferTime = 0; - TypeScript.nodeWriteFileSyncTime = 0; - (function (ByteOrderMark) { - ByteOrderMark[ByteOrderMark["None"] = 0] = "None"; - ByteOrderMark[ByteOrderMark["Utf8"] = 1] = "Utf8"; - ByteOrderMark[ByteOrderMark["Utf16BigEndian"] = 2] = "Utf16BigEndian"; - ByteOrderMark[ByteOrderMark["Utf16LittleEndian"] = 3] = "Utf16LittleEndian"; - })(TypeScript.ByteOrderMark || (TypeScript.ByteOrderMark = {})); - var ByteOrderMark = TypeScript.ByteOrderMark; - var FileInformation = (function () { - function FileInformation(contents, byteOrderMark) { - this.contents = contents; - this.byteOrderMark = byteOrderMark; - } - return FileInformation; - })(); - TypeScript.FileInformation = FileInformation; - function throwIOError(message, error) { - var errorMessage = message; - if (error && error.message) { - errorMessage += (" " + error.message); - } - throw new Error(errorMessage); - } - TypeScript.Environment = (function () { - function getWindowsScriptHostEnvironment() { - try { - var fso = new ActiveXObject("Scripting.FileSystemObject"); - } - catch (e) { - return undefined; - } - var streamObjectPool = []; - function getStreamObject() { - if (streamObjectPool.length > 0) { - return streamObjectPool.pop(); - } - else { - return new ActiveXObject("ADODB.Stream"); - } - } - function releaseStreamObject(obj) { - streamObjectPool.push(obj); - } - var args = []; - for (var i = 0; i < WScript.Arguments.length; i++) { - args[i] = WScript.Arguments.Item(i); - } - return { - newLine: "\r\n", - currentDirectory: function () { return WScript.CreateObject("WScript.Shell").CurrentDirectory; }, - supportsCodePage: function () { return WScript.ReadFile; }, - absolutePath: function (path) { return fso.GetAbsolutePathName(path); }, - readFile: function (path, codepage) { - try { - if (codepage && this.supportsCodePage()) { - try { - var contents = WScript.ReadFile(path, codepage); - return new FileInformation(contents, 0 /* None */); - } - catch (e) { - } - } - var streamObj = getStreamObject(); - streamObj.Open(); - streamObj.Type = 2; - streamObj.Charset = 'x-ansi'; - streamObj.LoadFromFile(path); - var bomChar = streamObj.ReadText(2); - streamObj.Position = 0; - var byteOrderMark = 0 /* None */; - if (bomChar.charCodeAt(0) === 0xFE && bomChar.charCodeAt(1) === 0xFF) { - streamObj.Charset = 'unicode'; - byteOrderMark = 2 /* Utf16BigEndian */; - } - else if (bomChar.charCodeAt(0) === 0xFF && bomChar.charCodeAt(1) === 0xFE) { - streamObj.Charset = 'unicode'; - byteOrderMark = 3 /* Utf16LittleEndian */; - } - else if (bomChar.charCodeAt(0) === 0xEF && bomChar.charCodeAt(1) === 0xBB) { - streamObj.Charset = 'utf-8'; - byteOrderMark = 1 /* Utf8 */; - } - else { - streamObj.Charset = 'utf-8'; - } - var contents = streamObj.ReadText(-1); - streamObj.Close(); - releaseStreamObject(streamObj); - return new FileInformation(contents, byteOrderMark); - } - catch (err) { - var message; - if (err.number === -2147024809) { - message = TypeScript.getDiagnosticMessage(TypeScript.DiagnosticCode.Unsupported_file_encoding, undefined); - } - else { - message = TypeScript.getDiagnosticMessage(TypeScript.DiagnosticCode.Cannot_read_file_0_1, [path, err.message]); - } - throw new Error(message); - } - }, - writeFile: function (path, contents, writeByteOrderMark) { - var textStream = getStreamObject(); - textStream.Charset = 'utf-8'; - textStream.Open(); - textStream.WriteText(contents, 0); - if (!writeByteOrderMark) { - textStream.Position = 3; - } - else { - textStream.Position = 0; - } - var fileStream = getStreamObject(); - fileStream.Type = 1; - fileStream.Open(); - textStream.CopyTo(fileStream); - fileStream.Flush(); - fileStream.SaveToFile(path, 2); - fileStream.Close(); - textStream.Flush(); - textStream.Close(); - }, - fileExists: function (path) { return fso.FileExists(path); }, - deleteFile: function (path) { - if (fso.FileExists(path)) { - fso.DeleteFile(path, true); - } - }, - directoryExists: function (path) { return fso.FolderExists(path); }, - directoryName: function (path) { return fso.GetParentFolderName(path); }, - createDirectory: function (path) { - try { - if (!this.directoryExists(path)) { - fso.CreateFolder(path); - } - } - catch (e) { - throwIOError(TypeScript.getDiagnosticMessage(TypeScript.DiagnosticCode.Could_not_create_directory_0, [path]), e); - } - }, - listFiles: function (path, spec, options) { - options = options || {}; - function filesInFolder(folder, root) { - var paths = []; - var fc; - if (options.recursive) { - fc = new Enumerator(folder.subfolders); - for (; !fc.atEnd(); fc.moveNext()) { - paths = paths.concat(filesInFolder(fc.item(), root + "\\" + fc.item().Name)); - } - } - fc = new Enumerator(folder.files); - for (; !fc.atEnd(); fc.moveNext()) { - if (!spec || fc.item().Name.match(spec)) { - paths.push(root + "\\" + fc.item().Name); - } - } - return paths; - } - var folder = fso.GetFolder(path); - var paths = []; - return filesInFolder(folder, path); - }, - arguments: args, - standardOut: WScript.StdOut, - standardError: WScript.StdErr, - executingFilePath: function () { return WScript.ScriptFullName; }, - quit: function (exitCode) { - if (exitCode === void 0) { exitCode = 0; } - try { - WScript.Quit(exitCode); - } - catch (e) { - } - }, - watchFile: undefined - }; - } - ; - function getNodeEnvironment() { - var _fs = require('fs'); - var _path = require('path'); - var _module = require('module'); - var _os = require('os'); - return { - newLine: _os.EOL, - currentDirectory: function () { return process.cwd(); }, - supportsCodePage: function () { return false; }, - absolutePath: function (path) { return _path.resolve(path); }, - readFile: function (file, codepage) { - if (codepage) { - throw new Error(TypeScript.getDiagnosticMessage(TypeScript.DiagnosticCode.codepage_option_not_supported_on_current_platform, undefined)); - } - var buffer = _fs.readFileSync(file); - switch (buffer[0]) { - case 0xFE: - if (buffer[1] === 0xFF) { - var i = 0; - while ((i + 1) < buffer.length) { - var temp = buffer[i]; - buffer[i] = buffer[i + 1]; - buffer[i + 1] = temp; - i += 2; - } - return new FileInformation(buffer.toString("ucs2", 2), 2 /* Utf16BigEndian */); - } - break; - case 0xFF: - if (buffer[1] === 0xFE) { - return new FileInformation(buffer.toString("ucs2", 2), 3 /* Utf16LittleEndian */); - } - break; - case 0xEF: - if (buffer[1] === 0xBB) { - return new FileInformation(buffer.toString("utf8", 3), 1 /* Utf8 */); - } - } - return new FileInformation(buffer.toString("utf8", 0), 0 /* None */); - }, - writeFile: function (path, contents, writeByteOrderMark) { - function mkdirRecursiveSync(path) { - var stats = _fs.statSync(path); - if (stats.isFile()) { - throw "\"" + path + "\" exists but isn't a directory."; - } - else if (stats.isDirectory()) { - return; - } - else { - mkdirRecursiveSync(_path.dirname(path)); - _fs.mkdirSync(path, 509); - } - } - var start = new Date().getTime(); - mkdirRecursiveSync(_path.dirname(path)); - TypeScript.nodeMakeDirectoryTime += new Date().getTime() - start; - if (writeByteOrderMark) { - contents = '\uFEFF' + contents; - } - var start = new Date().getTime(); - var chunkLength = 4 * 1024; - var fileDescriptor = _fs.openSync(path, "w"); - try { - for (var index = 0; index < contents.length; index += chunkLength) { - var bufferStart = new Date().getTime(); - var buffer = new Buffer(contents.substr(index, chunkLength), "utf8"); - TypeScript.nodeCreateBufferTime += new Date().getTime() - bufferStart; - _fs.writeSync(fileDescriptor, buffer, 0, buffer.length, null); - } - } - finally { - _fs.closeSync(fileDescriptor); - } - TypeScript.nodeWriteFileSyncTime += new Date().getTime() - start; - }, - fileExists: function (path) { return _fs.existsSync(path); }, - deleteFile: function (path) { - try { - _fs.unlinkSync(path); - } - catch (e) { - } - }, - directoryExists: function (path) { return _fs.existsSync(path) && _fs.statSync(path).isDirectory(); }, - directoryName: function (path) { - var dirPath = _path.dirname(path); - if (dirPath === path) { - dirPath = undefined; - } - return dirPath; - }, - createDirectory: function (path) { - try { - if (!this.directoryExists(path)) { - _fs.mkdirSync(path); - } - } - catch (e) { - throwIOError(TypeScript.getDiagnosticMessage(TypeScript.DiagnosticCode.Could_not_create_directory_0, [path]), e); - } - }, - listFiles: function (path, spec, options) { - options = options || {}; - function filesInFolder(folder) { - var paths = []; - var files = _fs.readdirSync(folder); - for (var i = 0; i < files.length; i++) { - var pathToFile = _path.join(folder, files[i]); - var stat = _fs.statSync(pathToFile); - if (options.recursive && stat.isDirectory()) { - paths = paths.concat(filesInFolder(pathToFile)); - } - else if (stat.isFile() && (!spec || files[i].match(spec))) { - paths.push(pathToFile); - } - } - return paths; - } - return filesInFolder(path); - }, - arguments: process.argv.slice(2), - standardOut: { - Write: function (str) { return process.stdout.write(str); }, - WriteLine: function (str) { return process.stdout.write(str + '\n'); }, - Close: function () { - } - }, - standardError: { - Write: function (str) { return process.stderr.write(str); }, - WriteLine: function (str) { return process.stderr.write(str + '\n'); }, - Close: function () { - } - }, - executingFilePath: function () { return process.mainModule.filename; }, - quit: function (code) { - var stderrFlushed = process.stderr.write(''); - var stdoutFlushed = process.stdout.write(''); - process.stderr.on('drain', function () { - stderrFlushed = true; - if (stdoutFlushed) { - process.exit(code); - } - }); - process.stdout.on('drain', function () { - stdoutFlushed = true; - if (stderrFlushed) { - process.exit(code); - } - }); - setTimeout(function () { - process.exit(code); - }, 5); - }, - watchFile: function (fileName, callback) { - var firstRun = true; - var processingChange = false; - var fileChanged = function (curr, prev) { - if (!firstRun) { - if (curr.mtime < prev.mtime) { - return; - } - _fs.unwatchFile(fileName, fileChanged); - if (!processingChange) { - processingChange = true; - callback(fileName); - setTimeout(function () { - processingChange = false; - }, 100); - } - } - firstRun = false; - _fs.watchFile(fileName, { persistent: true, interval: 500 }, fileChanged); - }; - fileChanged(); - return { - fileName: fileName, - close: function () { - _fs.unwatchFile(fileName, fileChanged); - } - }; - } - }; - } - ; - if (typeof WScript !== "undefined" && typeof ActiveXObject === "function") { - return getWindowsScriptHostEnvironment(); - } - else if (typeof module !== 'undefined' && module.exports) { - return getNodeEnvironment(); - } - else { - return undefined; - } - })(); -})(TypeScript || (TypeScript = {})); -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) { - var result; - if (array) { - for (var i = 0, len = array.length; i < len; i++) { - if (result = callback(array[i])) { - break; - } - } - } - return result; - } - ts.forEach = forEach; - function contains(array, value) { - if (array) { - for (var i = 0, len = array.length; i < len; i++) { - if (array[i] === 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, len = array.length; i < len; i++) { - if (predicate(array[i])) { - count++; - } - } - } - return count; - } - ts.countWhere = countWhere; - function filter(array, f) { - if (array) { - var result = []; - for (var i = 0, len = array.length; i < len; i++) { - var item = array[i]; - if (f(item)) { - result.push(item); - } - } - } - return result; - } - ts.filter = filter; - function map(array, f) { - if (array) { - var result = []; - for (var i = 0, len = array.length; i < len; i++) { - result.push(f(array[i])); - } - } - 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) { - if (array) { - var result = []; - for (var i = 0, len = array.length; i < len; i++) { - var item = array[i]; - if (!contains(result, item)) - result.push(item); - } - } - return result; - } - ts.deduplicate = deduplicate; - function sum(array, prop) { - var result = 0; - for (var i = 0; i < array.length; i++) { - result += array[i][prop]; - } - return result; - } - ts.sum = sum; - 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; - 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 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 mapToArray(map) { - var result = []; - for (var id in map) { - result.push(map[id]); - } - return result; - } - ts.mapToArray = mapToArray; - 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) { - Debug.assert(start >= 0, "start must be non-negative, is " + start); - Debug.assert(length >= 0, "length must be non-negative, is " + 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, - isEarly: message.isEarly - }; - } - 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, - isEarly: message.isEarly - }; - } - 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 flattenDiagnosticChain(file, start, length, diagnosticChain, newLine) { - Debug.assert(start >= 0, "start must be non-negative, is " + start); - Debug.assert(length >= 0, "length must be non-negative, is " + length); - var code = diagnosticChain.code; - var category = diagnosticChain.category; - var messageText = ""; - var indent = 0; - while (diagnosticChain) { - if (indent) { - messageText += newLine; - for (var i = 0; i < indent; i++) { - messageText += " "; - } - } - messageText += diagnosticChain.messageText; - indent++; - diagnosticChain = diagnosticChain.next; - } - return { - file: file, - start: start, - length: length, - code: code, - category: category, - messageText: messageText - }; - } - ts.flattenDiagnosticChain = flattenDiagnosticChain; - function compareValues(a, b) { - if (a === b) - return 0 /* EqualTo */; - if (a === undefined) - return -1 /* LessThan */; - if (b === undefined) - return 1 /* GreaterThan */; - return a < b ? -1 /* LessThan */ : 1 /* GreaterThan */; - } - 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) || compareValues(d1.messageText, d2.messageText) || 0; - } - ts.compareDiagnostics = compareDiagnostics; - 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 /* EqualTo */; - 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 /* slash */) { - if (path.charCodeAt(1) !== 47 /* slash */) - 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 /* colon */) { - if (path.charCodeAt(2) === 47 /* slash */) - 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 { - normalized.push(part); - } - } - } - return normalized; - } - function normalizePath(path) { - var 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) { - var 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) { - var urlLength = url.length; - var rootLength = url.indexOf("://") + "://".length; - while (rootLength < urlLength) { - if (url.charCodeAt(rootLength) === 47 /* slash */) { - 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 (path2.charAt(0) === ts.directorySeparator) - 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 escapedCharsRegExp = /[\t\v\f\b\0\r\n\"\\\u2028\u2029\u0085]/g; - var escapedCharsMap = { - "\t": "\\t", - "\v": "\\v", - "\f": "\\f", - "\b": "\\b", - "\0": "\\0", - "\r": "\\r", - "\n": "\\n", - "\"": "\\\"", - "\u2028": "\\u2028", - "\u2029": "\\u2029", - "\u0085": "\\u0085" - }; - function escapeString(s) { - return escapedCharsRegExp.test(s) ? s.replace(escapedCharsRegExp, function (c) { - return escapedCharsMap[c] || c; - }) : s; - } - ts.escapeString = escapeString; - 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 /* None */; - 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) { - (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["NumericLiteral"] = 6] = "NumericLiteral"; - SyntaxKind[SyntaxKind["StringLiteral"] = 7] = "StringLiteral"; - SyntaxKind[SyntaxKind["RegularExpressionLiteral"] = 8] = "RegularExpressionLiteral"; - SyntaxKind[SyntaxKind["NoSubstitutionTemplateLiteral"] = 9] = "NoSubstitutionTemplateLiteral"; - SyntaxKind[SyntaxKind["TemplateHead"] = 10] = "TemplateHead"; - SyntaxKind[SyntaxKind["TemplateMiddle"] = 11] = "TemplateMiddle"; - SyntaxKind[SyntaxKind["TemplateTail"] = 12] = "TemplateTail"; - SyntaxKind[SyntaxKind["OpenBraceToken"] = 13] = "OpenBraceToken"; - SyntaxKind[SyntaxKind["CloseBraceToken"] = 14] = "CloseBraceToken"; - SyntaxKind[SyntaxKind["OpenParenToken"] = 15] = "OpenParenToken"; - SyntaxKind[SyntaxKind["CloseParenToken"] = 16] = "CloseParenToken"; - SyntaxKind[SyntaxKind["OpenBracketToken"] = 17] = "OpenBracketToken"; - SyntaxKind[SyntaxKind["CloseBracketToken"] = 18] = "CloseBracketToken"; - SyntaxKind[SyntaxKind["DotToken"] = 19] = "DotToken"; - SyntaxKind[SyntaxKind["DotDotDotToken"] = 20] = "DotDotDotToken"; - SyntaxKind[SyntaxKind["SemicolonToken"] = 21] = "SemicolonToken"; - SyntaxKind[SyntaxKind["CommaToken"] = 22] = "CommaToken"; - SyntaxKind[SyntaxKind["LessThanToken"] = 23] = "LessThanToken"; - SyntaxKind[SyntaxKind["GreaterThanToken"] = 24] = "GreaterThanToken"; - SyntaxKind[SyntaxKind["LessThanEqualsToken"] = 25] = "LessThanEqualsToken"; - SyntaxKind[SyntaxKind["GreaterThanEqualsToken"] = 26] = "GreaterThanEqualsToken"; - SyntaxKind[SyntaxKind["EqualsEqualsToken"] = 27] = "EqualsEqualsToken"; - SyntaxKind[SyntaxKind["ExclamationEqualsToken"] = 28] = "ExclamationEqualsToken"; - SyntaxKind[SyntaxKind["EqualsEqualsEqualsToken"] = 29] = "EqualsEqualsEqualsToken"; - SyntaxKind[SyntaxKind["ExclamationEqualsEqualsToken"] = 30] = "ExclamationEqualsEqualsToken"; - SyntaxKind[SyntaxKind["EqualsGreaterThanToken"] = 31] = "EqualsGreaterThanToken"; - SyntaxKind[SyntaxKind["PlusToken"] = 32] = "PlusToken"; - SyntaxKind[SyntaxKind["MinusToken"] = 33] = "MinusToken"; - SyntaxKind[SyntaxKind["AsteriskToken"] = 34] = "AsteriskToken"; - SyntaxKind[SyntaxKind["SlashToken"] = 35] = "SlashToken"; - SyntaxKind[SyntaxKind["PercentToken"] = 36] = "PercentToken"; - SyntaxKind[SyntaxKind["PlusPlusToken"] = 37] = "PlusPlusToken"; - SyntaxKind[SyntaxKind["MinusMinusToken"] = 38] = "MinusMinusToken"; - SyntaxKind[SyntaxKind["LessThanLessThanToken"] = 39] = "LessThanLessThanToken"; - SyntaxKind[SyntaxKind["GreaterThanGreaterThanToken"] = 40] = "GreaterThanGreaterThanToken"; - SyntaxKind[SyntaxKind["GreaterThanGreaterThanGreaterThanToken"] = 41] = "GreaterThanGreaterThanGreaterThanToken"; - SyntaxKind[SyntaxKind["AmpersandToken"] = 42] = "AmpersandToken"; - SyntaxKind[SyntaxKind["BarToken"] = 43] = "BarToken"; - SyntaxKind[SyntaxKind["CaretToken"] = 44] = "CaretToken"; - SyntaxKind[SyntaxKind["ExclamationToken"] = 45] = "ExclamationToken"; - SyntaxKind[SyntaxKind["TildeToken"] = 46] = "TildeToken"; - SyntaxKind[SyntaxKind["AmpersandAmpersandToken"] = 47] = "AmpersandAmpersandToken"; - SyntaxKind[SyntaxKind["BarBarToken"] = 48] = "BarBarToken"; - SyntaxKind[SyntaxKind["QuestionToken"] = 49] = "QuestionToken"; - SyntaxKind[SyntaxKind["ColonToken"] = 50] = "ColonToken"; - SyntaxKind[SyntaxKind["EqualsToken"] = 51] = "EqualsToken"; - SyntaxKind[SyntaxKind["PlusEqualsToken"] = 52] = "PlusEqualsToken"; - SyntaxKind[SyntaxKind["MinusEqualsToken"] = 53] = "MinusEqualsToken"; - SyntaxKind[SyntaxKind["AsteriskEqualsToken"] = 54] = "AsteriskEqualsToken"; - SyntaxKind[SyntaxKind["SlashEqualsToken"] = 55] = "SlashEqualsToken"; - SyntaxKind[SyntaxKind["PercentEqualsToken"] = 56] = "PercentEqualsToken"; - SyntaxKind[SyntaxKind["LessThanLessThanEqualsToken"] = 57] = "LessThanLessThanEqualsToken"; - SyntaxKind[SyntaxKind["GreaterThanGreaterThanEqualsToken"] = 58] = "GreaterThanGreaterThanEqualsToken"; - SyntaxKind[SyntaxKind["GreaterThanGreaterThanGreaterThanEqualsToken"] = 59] = "GreaterThanGreaterThanGreaterThanEqualsToken"; - SyntaxKind[SyntaxKind["AmpersandEqualsToken"] = 60] = "AmpersandEqualsToken"; - SyntaxKind[SyntaxKind["BarEqualsToken"] = 61] = "BarEqualsToken"; - SyntaxKind[SyntaxKind["CaretEqualsToken"] = 62] = "CaretEqualsToken"; - SyntaxKind[SyntaxKind["Identifier"] = 63] = "Identifier"; - SyntaxKind[SyntaxKind["BreakKeyword"] = 64] = "BreakKeyword"; - SyntaxKind[SyntaxKind["CaseKeyword"] = 65] = "CaseKeyword"; - SyntaxKind[SyntaxKind["CatchKeyword"] = 66] = "CatchKeyword"; - SyntaxKind[SyntaxKind["ClassKeyword"] = 67] = "ClassKeyword"; - SyntaxKind[SyntaxKind["ConstKeyword"] = 68] = "ConstKeyword"; - SyntaxKind[SyntaxKind["ContinueKeyword"] = 69] = "ContinueKeyword"; - SyntaxKind[SyntaxKind["DebuggerKeyword"] = 70] = "DebuggerKeyword"; - SyntaxKind[SyntaxKind["DefaultKeyword"] = 71] = "DefaultKeyword"; - SyntaxKind[SyntaxKind["DeleteKeyword"] = 72] = "DeleteKeyword"; - SyntaxKind[SyntaxKind["DoKeyword"] = 73] = "DoKeyword"; - SyntaxKind[SyntaxKind["ElseKeyword"] = 74] = "ElseKeyword"; - SyntaxKind[SyntaxKind["EnumKeyword"] = 75] = "EnumKeyword"; - SyntaxKind[SyntaxKind["ExportKeyword"] = 76] = "ExportKeyword"; - SyntaxKind[SyntaxKind["ExtendsKeyword"] = 77] = "ExtendsKeyword"; - SyntaxKind[SyntaxKind["FalseKeyword"] = 78] = "FalseKeyword"; - SyntaxKind[SyntaxKind["FinallyKeyword"] = 79] = "FinallyKeyword"; - SyntaxKind[SyntaxKind["ForKeyword"] = 80] = "ForKeyword"; - SyntaxKind[SyntaxKind["FunctionKeyword"] = 81] = "FunctionKeyword"; - SyntaxKind[SyntaxKind["IfKeyword"] = 82] = "IfKeyword"; - SyntaxKind[SyntaxKind["ImportKeyword"] = 83] = "ImportKeyword"; - SyntaxKind[SyntaxKind["InKeyword"] = 84] = "InKeyword"; - SyntaxKind[SyntaxKind["InstanceOfKeyword"] = 85] = "InstanceOfKeyword"; - SyntaxKind[SyntaxKind["NewKeyword"] = 86] = "NewKeyword"; - SyntaxKind[SyntaxKind["NullKeyword"] = 87] = "NullKeyword"; - SyntaxKind[SyntaxKind["ReturnKeyword"] = 88] = "ReturnKeyword"; - SyntaxKind[SyntaxKind["SuperKeyword"] = 89] = "SuperKeyword"; - SyntaxKind[SyntaxKind["SwitchKeyword"] = 90] = "SwitchKeyword"; - SyntaxKind[SyntaxKind["ThisKeyword"] = 91] = "ThisKeyword"; - SyntaxKind[SyntaxKind["ThrowKeyword"] = 92] = "ThrowKeyword"; - SyntaxKind[SyntaxKind["TrueKeyword"] = 93] = "TrueKeyword"; - SyntaxKind[SyntaxKind["TryKeyword"] = 94] = "TryKeyword"; - SyntaxKind[SyntaxKind["TypeOfKeyword"] = 95] = "TypeOfKeyword"; - SyntaxKind[SyntaxKind["VarKeyword"] = 96] = "VarKeyword"; - SyntaxKind[SyntaxKind["VoidKeyword"] = 97] = "VoidKeyword"; - SyntaxKind[SyntaxKind["WhileKeyword"] = 98] = "WhileKeyword"; - SyntaxKind[SyntaxKind["WithKeyword"] = 99] = "WithKeyword"; - SyntaxKind[SyntaxKind["ImplementsKeyword"] = 100] = "ImplementsKeyword"; - SyntaxKind[SyntaxKind["InterfaceKeyword"] = 101] = "InterfaceKeyword"; - SyntaxKind[SyntaxKind["LetKeyword"] = 102] = "LetKeyword"; - SyntaxKind[SyntaxKind["PackageKeyword"] = 103] = "PackageKeyword"; - SyntaxKind[SyntaxKind["PrivateKeyword"] = 104] = "PrivateKeyword"; - SyntaxKind[SyntaxKind["ProtectedKeyword"] = 105] = "ProtectedKeyword"; - SyntaxKind[SyntaxKind["PublicKeyword"] = 106] = "PublicKeyword"; - SyntaxKind[SyntaxKind["StaticKeyword"] = 107] = "StaticKeyword"; - SyntaxKind[SyntaxKind["YieldKeyword"] = 108] = "YieldKeyword"; - SyntaxKind[SyntaxKind["AnyKeyword"] = 109] = "AnyKeyword"; - SyntaxKind[SyntaxKind["BooleanKeyword"] = 110] = "BooleanKeyword"; - SyntaxKind[SyntaxKind["ConstructorKeyword"] = 111] = "ConstructorKeyword"; - SyntaxKind[SyntaxKind["DeclareKeyword"] = 112] = "DeclareKeyword"; - SyntaxKind[SyntaxKind["GetKeyword"] = 113] = "GetKeyword"; - SyntaxKind[SyntaxKind["ModuleKeyword"] = 114] = "ModuleKeyword"; - SyntaxKind[SyntaxKind["RequireKeyword"] = 115] = "RequireKeyword"; - SyntaxKind[SyntaxKind["NumberKeyword"] = 116] = "NumberKeyword"; - SyntaxKind[SyntaxKind["SetKeyword"] = 117] = "SetKeyword"; - SyntaxKind[SyntaxKind["StringKeyword"] = 118] = "StringKeyword"; - SyntaxKind[SyntaxKind["TypeKeyword"] = 119] = "TypeKeyword"; - SyntaxKind[SyntaxKind["Missing"] = 120] = "Missing"; - SyntaxKind[SyntaxKind["QualifiedName"] = 121] = "QualifiedName"; - SyntaxKind[SyntaxKind["TypeParameter"] = 122] = "TypeParameter"; - SyntaxKind[SyntaxKind["Parameter"] = 123] = "Parameter"; - SyntaxKind[SyntaxKind["Property"] = 124] = "Property"; - SyntaxKind[SyntaxKind["Method"] = 125] = "Method"; - SyntaxKind[SyntaxKind["Constructor"] = 126] = "Constructor"; - SyntaxKind[SyntaxKind["GetAccessor"] = 127] = "GetAccessor"; - SyntaxKind[SyntaxKind["SetAccessor"] = 128] = "SetAccessor"; - SyntaxKind[SyntaxKind["CallSignature"] = 129] = "CallSignature"; - SyntaxKind[SyntaxKind["ConstructSignature"] = 130] = "ConstructSignature"; - SyntaxKind[SyntaxKind["IndexSignature"] = 131] = "IndexSignature"; - SyntaxKind[SyntaxKind["TypeReference"] = 132] = "TypeReference"; - SyntaxKind[SyntaxKind["FunctionType"] = 133] = "FunctionType"; - SyntaxKind[SyntaxKind["ConstructorType"] = 134] = "ConstructorType"; - SyntaxKind[SyntaxKind["TypeQuery"] = 135] = "TypeQuery"; - SyntaxKind[SyntaxKind["TypeLiteral"] = 136] = "TypeLiteral"; - SyntaxKind[SyntaxKind["ArrayType"] = 137] = "ArrayType"; - SyntaxKind[SyntaxKind["TupleType"] = 138] = "TupleType"; - SyntaxKind[SyntaxKind["UnionType"] = 139] = "UnionType"; - SyntaxKind[SyntaxKind["ParenType"] = 140] = "ParenType"; - SyntaxKind[SyntaxKind["ArrayLiteral"] = 141] = "ArrayLiteral"; - SyntaxKind[SyntaxKind["ObjectLiteral"] = 142] = "ObjectLiteral"; - SyntaxKind[SyntaxKind["PropertyAssignment"] = 143] = "PropertyAssignment"; - SyntaxKind[SyntaxKind["ShorthandPropertyAssignment"] = 144] = "ShorthandPropertyAssignment"; - SyntaxKind[SyntaxKind["PropertyAccess"] = 145] = "PropertyAccess"; - SyntaxKind[SyntaxKind["IndexedAccess"] = 146] = "IndexedAccess"; - SyntaxKind[SyntaxKind["CallExpression"] = 147] = "CallExpression"; - SyntaxKind[SyntaxKind["NewExpression"] = 148] = "NewExpression"; - SyntaxKind[SyntaxKind["TaggedTemplateExpression"] = 149] = "TaggedTemplateExpression"; - SyntaxKind[SyntaxKind["TypeAssertion"] = 150] = "TypeAssertion"; - SyntaxKind[SyntaxKind["ParenExpression"] = 151] = "ParenExpression"; - SyntaxKind[SyntaxKind["FunctionExpression"] = 152] = "FunctionExpression"; - SyntaxKind[SyntaxKind["ArrowFunction"] = 153] = "ArrowFunction"; - SyntaxKind[SyntaxKind["PrefixOperator"] = 154] = "PrefixOperator"; - SyntaxKind[SyntaxKind["PostfixOperator"] = 155] = "PostfixOperator"; - SyntaxKind[SyntaxKind["BinaryExpression"] = 156] = "BinaryExpression"; - SyntaxKind[SyntaxKind["ConditionalExpression"] = 157] = "ConditionalExpression"; - SyntaxKind[SyntaxKind["TemplateExpression"] = 158] = "TemplateExpression"; - SyntaxKind[SyntaxKind["TemplateSpan"] = 159] = "TemplateSpan"; - SyntaxKind[SyntaxKind["YieldExpression"] = 160] = "YieldExpression"; - SyntaxKind[SyntaxKind["OmittedExpression"] = 161] = "OmittedExpression"; - SyntaxKind[SyntaxKind["Block"] = 162] = "Block"; - SyntaxKind[SyntaxKind["VariableStatement"] = 163] = "VariableStatement"; - SyntaxKind[SyntaxKind["EmptyStatement"] = 164] = "EmptyStatement"; - SyntaxKind[SyntaxKind["ExpressionStatement"] = 165] = "ExpressionStatement"; - SyntaxKind[SyntaxKind["IfStatement"] = 166] = "IfStatement"; - SyntaxKind[SyntaxKind["DoStatement"] = 167] = "DoStatement"; - SyntaxKind[SyntaxKind["WhileStatement"] = 168] = "WhileStatement"; - SyntaxKind[SyntaxKind["ForStatement"] = 169] = "ForStatement"; - SyntaxKind[SyntaxKind["ForInStatement"] = 170] = "ForInStatement"; - SyntaxKind[SyntaxKind["ContinueStatement"] = 171] = "ContinueStatement"; - SyntaxKind[SyntaxKind["BreakStatement"] = 172] = "BreakStatement"; - SyntaxKind[SyntaxKind["ReturnStatement"] = 173] = "ReturnStatement"; - SyntaxKind[SyntaxKind["WithStatement"] = 174] = "WithStatement"; - SyntaxKind[SyntaxKind["SwitchStatement"] = 175] = "SwitchStatement"; - SyntaxKind[SyntaxKind["CaseClause"] = 176] = "CaseClause"; - SyntaxKind[SyntaxKind["DefaultClause"] = 177] = "DefaultClause"; - SyntaxKind[SyntaxKind["LabeledStatement"] = 178] = "LabeledStatement"; - SyntaxKind[SyntaxKind["ThrowStatement"] = 179] = "ThrowStatement"; - SyntaxKind[SyntaxKind["TryStatement"] = 180] = "TryStatement"; - SyntaxKind[SyntaxKind["TryBlock"] = 181] = "TryBlock"; - SyntaxKind[SyntaxKind["CatchBlock"] = 182] = "CatchBlock"; - SyntaxKind[SyntaxKind["FinallyBlock"] = 183] = "FinallyBlock"; - SyntaxKind[SyntaxKind["DebuggerStatement"] = 184] = "DebuggerStatement"; - SyntaxKind[SyntaxKind["VariableDeclaration"] = 185] = "VariableDeclaration"; - SyntaxKind[SyntaxKind["FunctionDeclaration"] = 186] = "FunctionDeclaration"; - SyntaxKind[SyntaxKind["FunctionBlock"] = 187] = "FunctionBlock"; - SyntaxKind[SyntaxKind["ClassDeclaration"] = 188] = "ClassDeclaration"; - SyntaxKind[SyntaxKind["InterfaceDeclaration"] = 189] = "InterfaceDeclaration"; - SyntaxKind[SyntaxKind["TypeAliasDeclaration"] = 190] = "TypeAliasDeclaration"; - SyntaxKind[SyntaxKind["EnumDeclaration"] = 191] = "EnumDeclaration"; - SyntaxKind[SyntaxKind["ModuleDeclaration"] = 192] = "ModuleDeclaration"; - SyntaxKind[SyntaxKind["ModuleBlock"] = 193] = "ModuleBlock"; - SyntaxKind[SyntaxKind["ImportDeclaration"] = 194] = "ImportDeclaration"; - SyntaxKind[SyntaxKind["ExportAssignment"] = 195] = "ExportAssignment"; - SyntaxKind[SyntaxKind["EnumMember"] = 196] = "EnumMember"; - SyntaxKind[SyntaxKind["SourceFile"] = 197] = "SourceFile"; - SyntaxKind[SyntaxKind["Program"] = 198] = "Program"; - SyntaxKind[SyntaxKind["SyntaxList"] = 199] = "SyntaxList"; - SyntaxKind[SyntaxKind["Count"] = 200] = "Count"; - SyntaxKind[SyntaxKind["FirstAssignment"] = 51] = "FirstAssignment"; - SyntaxKind[SyntaxKind["LastAssignment"] = 62] = "LastAssignment"; - SyntaxKind[SyntaxKind["FirstReservedWord"] = 64] = "FirstReservedWord"; - SyntaxKind[SyntaxKind["LastReservedWord"] = 99] = "LastReservedWord"; - SyntaxKind[SyntaxKind["FirstKeyword"] = 64] = "FirstKeyword"; - SyntaxKind[SyntaxKind["LastKeyword"] = 119] = "LastKeyword"; - SyntaxKind[SyntaxKind["FirstFutureReservedWord"] = 100] = "FirstFutureReservedWord"; - SyntaxKind[SyntaxKind["LastFutureReservedWord"] = 108] = "LastFutureReservedWord"; - SyntaxKind[SyntaxKind["FirstTypeNode"] = 132] = "FirstTypeNode"; - SyntaxKind[SyntaxKind["LastTypeNode"] = 140] = "LastTypeNode"; - SyntaxKind[SyntaxKind["FirstPunctuation"] = 13] = "FirstPunctuation"; - SyntaxKind[SyntaxKind["LastPunctuation"] = 62] = "LastPunctuation"; - SyntaxKind[SyntaxKind["FirstToken"] = 1] = "FirstToken"; - SyntaxKind[SyntaxKind["LastToken"] = 119] = "LastToken"; - SyntaxKind[SyntaxKind["FirstTriviaToken"] = 2] = "FirstTriviaToken"; - SyntaxKind[SyntaxKind["LastTriviaToken"] = 5] = "LastTriviaToken"; - SyntaxKind[SyntaxKind["FirstLiteralToken"] = 6] = "FirstLiteralToken"; - SyntaxKind[SyntaxKind["LastLiteralToken"] = 9] = "LastLiteralToken"; - SyntaxKind[SyntaxKind["FirstTemplateToken"] = 9] = "FirstTemplateToken"; - SyntaxKind[SyntaxKind["LastTemplateToken"] = 12] = "LastTemplateToken"; - SyntaxKind[SyntaxKind["FirstOperator"] = 21] = "FirstOperator"; - SyntaxKind[SyntaxKind["LastOperator"] = 62] = "LastOperator"; - SyntaxKind[SyntaxKind["FirstBinaryOperator"] = 23] = "FirstBinaryOperator"; - SyntaxKind[SyntaxKind["LastBinaryOperator"] = 62] = "LastBinaryOperator"; - })(ts.SyntaxKind || (ts.SyntaxKind = {})); - var SyntaxKind = ts.SyntaxKind; - (function (NodeFlags) { - NodeFlags[NodeFlags["Export"] = 1] = "Export"; - NodeFlags[NodeFlags["Ambient"] = 2] = "Ambient"; - NodeFlags[NodeFlags["QuestionMark"] = 4] = "QuestionMark"; - NodeFlags[NodeFlags["Rest"] = 8] = "Rest"; - NodeFlags[NodeFlags["Public"] = 16] = "Public"; - NodeFlags[NodeFlags["Private"] = 32] = "Private"; - NodeFlags[NodeFlags["Protected"] = 64] = "Protected"; - NodeFlags[NodeFlags["Static"] = 128] = "Static"; - NodeFlags[NodeFlags["MultiLine"] = 256] = "MultiLine"; - NodeFlags[NodeFlags["Synthetic"] = 512] = "Synthetic"; - NodeFlags[NodeFlags["DeclarationFile"] = 1024] = "DeclarationFile"; - NodeFlags[NodeFlags["Let"] = 2048] = "Let"; - NodeFlags[NodeFlags["Const"] = 4096] = "Const"; - NodeFlags[NodeFlags["OctalLiteral"] = 8192] = "OctalLiteral"; - NodeFlags[NodeFlags["Generator"] = 16384] = "Generator"; - NodeFlags[NodeFlags["YieldStar"] = 32768] = "YieldStar"; - NodeFlags[NodeFlags["Modifier"] = 243] = "Modifier"; - NodeFlags[NodeFlags["AccessibilityModifier"] = 112] = "AccessibilityModifier"; - NodeFlags[NodeFlags["BlockScoped"] = 6144] = "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"; - })(ts.ParserContextFlags || (ts.ParserContextFlags = {})); - var ParserContextFlags = ts.ParserContextFlags; - (function (EmitReturnStatus) { - EmitReturnStatus[EmitReturnStatus["Succeeded"] = 0] = "Succeeded"; - EmitReturnStatus[EmitReturnStatus["AllOutputGenerationSkipped"] = 1] = "AllOutputGenerationSkipped"; - EmitReturnStatus[EmitReturnStatus["JSGeneratedWithSemanticErrors"] = 2] = "JSGeneratedWithSemanticErrors"; - EmitReturnStatus[EmitReturnStatus["DeclarationGenerationSkipped"] = 3] = "DeclarationGenerationSkipped"; - EmitReturnStatus[EmitReturnStatus["EmitErrorsEncountered"] = 4] = "EmitErrorsEncountered"; - EmitReturnStatus[EmitReturnStatus["CompilerOptionsErrors"] = 5] = "CompilerOptionsErrors"; - })(ts.EmitReturnStatus || (ts.EmitReturnStatus = {})); - var EmitReturnStatus = ts.EmitReturnStatus; - (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"; - })(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["CallSignature"] = 131072] = "CallSignature"; - SymbolFlags[SymbolFlags["ConstructSignature"] = 262144] = "ConstructSignature"; - SymbolFlags[SymbolFlags["IndexSignature"] = 524288] = "IndexSignature"; - SymbolFlags[SymbolFlags["TypeParameter"] = 1048576] = "TypeParameter"; - SymbolFlags[SymbolFlags["TypeAlias"] = 2097152] = "TypeAlias"; - SymbolFlags[SymbolFlags["ExportValue"] = 4194304] = "ExportValue"; - SymbolFlags[SymbolFlags["ExportType"] = 8388608] = "ExportType"; - SymbolFlags[SymbolFlags["ExportNamespace"] = 16777216] = "ExportNamespace"; - SymbolFlags[SymbolFlags["Import"] = 33554432] = "Import"; - SymbolFlags[SymbolFlags["Instantiated"] = 67108864] = "Instantiated"; - SymbolFlags[SymbolFlags["Merged"] = 134217728] = "Merged"; - SymbolFlags[SymbolFlags["Transient"] = 268435456] = "Transient"; - SymbolFlags[SymbolFlags["Prototype"] = 536870912] = "Prototype"; - SymbolFlags[SymbolFlags["UnionProperty"] = 1073741824] = "UnionProperty"; - SymbolFlags[SymbolFlags["Enum"] = 384] = "Enum"; - SymbolFlags[SymbolFlags["Variable"] = 3] = "Variable"; - SymbolFlags[SymbolFlags["Value"] = 107455] = "Value"; - SymbolFlags[SymbolFlags["Type"] = 3152352] = "Type"; - SymbolFlags[SymbolFlags["Namespace"] = 1536] = "Namespace"; - SymbolFlags[SymbolFlags["Module"] = 1536] = "Module"; - SymbolFlags[SymbolFlags["Accessor"] = 98304] = "Accessor"; - SymbolFlags[SymbolFlags["Signature"] = 917504] = "Signature"; - 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"] = 3258879] = "ClassExcludes"; - SymbolFlags[SymbolFlags["InterfaceExcludes"] = 3152288] = "InterfaceExcludes"; - SymbolFlags[SymbolFlags["RegularEnumExcludes"] = 3258623] = "RegularEnumExcludes"; - SymbolFlags[SymbolFlags["ConstEnumExcludes"] = 3259263] = "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"] = 2103776] = "TypeParameterExcludes"; - SymbolFlags[SymbolFlags["TypeAliasExcludes"] = 3152352] = "TypeAliasExcludes"; - SymbolFlags[SymbolFlags["ImportExcludes"] = 33554432] = "ImportExcludes"; - SymbolFlags[SymbolFlags["ModuleMember"] = 35653619] = "ModuleMember"; - SymbolFlags[SymbolFlags["ExportHasLocal"] = 944] = "ExportHasLocal"; - SymbolFlags[SymbolFlags["HasLocals"] = 1041936] = "HasLocals"; - SymbolFlags[SymbolFlags["HasExports"] = 1952] = "HasExports"; - SymbolFlags[SymbolFlags["HasMembers"] = 6240] = "HasMembers"; - SymbolFlags[SymbolFlags["IsContainer"] = 1048560] = "IsContainer"; - SymbolFlags[SymbolFlags["PropertyOrAccessor"] = 98308] = "PropertyOrAccessor"; - SymbolFlags[SymbolFlags["Export"] = 29360128] = "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"; - })(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["Intrinsic"] = 127] = "Intrinsic"; - TypeFlags[TypeFlags["StringLike"] = 258] = "StringLike"; - TypeFlags[TypeFlags["NumberLike"] = 132] = "NumberLike"; - TypeFlags[TypeFlags["ObjectType"] = 48128] = "ObjectType"; - TypeFlags[TypeFlags["Structured"] = 65025] = "Structured"; - })(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["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) { - ts.Diagnostics = { - Unterminated_string_literal: { code: 1002, category: 1 /* Error */, key: "Unterminated string literal." }, - Identifier_expected: { code: 1003, category: 1 /* Error */, key: "Identifier expected." }, - _0_expected: { code: 1005, category: 1 /* Error */, key: "'{0}' expected." }, - A_file_cannot_have_a_reference_to_itself: { code: 1006, category: 1 /* Error */, key: "A file cannot have a reference to itself." }, - Trailing_comma_not_allowed: { code: 1009, category: 1 /* Error */, key: "Trailing comma not allowed." }, - Asterisk_Slash_expected: { code: 1010, category: 1 /* Error */, key: "'*/' expected." }, - Unexpected_token: { code: 1012, category: 1 /* Error */, key: "Unexpected token." }, - Catch_clause_parameter_cannot_have_a_type_annotation: { code: 1013, category: 1 /* Error */, key: "Catch clause parameter cannot have a type annotation." }, - A_rest_parameter_must_be_last_in_a_parameter_list: { code: 1014, category: 1 /* Error */, key: "A rest parameter must be last in a parameter list." }, - Parameter_cannot_have_question_mark_and_initializer: { code: 1015, category: 1 /* Error */, key: "Parameter cannot have question mark and initializer." }, - A_required_parameter_cannot_follow_an_optional_parameter: { code: 1016, category: 1 /* Error */, key: "A required parameter cannot follow an optional parameter." }, - An_index_signature_cannot_have_a_rest_parameter: { code: 1017, category: 1 /* Error */, key: "An index signature cannot have a rest parameter." }, - An_index_signature_parameter_cannot_have_an_accessibility_modifier: { code: 1018, category: 1 /* Error */, key: "An index signature parameter cannot have an accessibility modifier." }, - An_index_signature_parameter_cannot_have_a_question_mark: { code: 1019, category: 1 /* Error */, key: "An index signature parameter cannot have a question mark." }, - An_index_signature_parameter_cannot_have_an_initializer: { code: 1020, category: 1 /* Error */, key: "An index signature parameter cannot have an initializer." }, - An_index_signature_must_have_a_type_annotation: { code: 1021, category: 1 /* Error */, key: "An index signature must have a type annotation." }, - An_index_signature_parameter_must_have_a_type_annotation: { code: 1022, category: 1 /* Error */, key: "An index signature parameter must have a type annotation." }, - An_index_signature_parameter_type_must_be_string_or_number: { code: 1023, category: 1 /* 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: 1 /* Error */, key: "A class or interface declaration can only have one 'extends' clause." }, - An_extends_clause_must_precede_an_implements_clause: { code: 1025, category: 1 /* Error */, key: "An 'extends' clause must precede an 'implements' clause." }, - A_class_can_only_extend_a_single_class: { code: 1026, category: 1 /* Error */, key: "A class can only extend a single class." }, - A_class_declaration_can_only_have_one_implements_clause: { code: 1027, category: 1 /* Error */, key: "A class declaration can only have one 'implements' clause." }, - Accessibility_modifier_already_seen: { code: 1028, category: 1 /* Error */, key: "Accessibility modifier already seen." }, - _0_modifier_must_precede_1_modifier: { code: 1029, category: 1 /* Error */, key: "'{0}' modifier must precede '{1}' modifier." }, - _0_modifier_already_seen: { code: 1030, category: 1 /* Error */, key: "'{0}' modifier already seen." }, - _0_modifier_cannot_appear_on_a_class_element: { code: 1031, category: 1 /* Error */, key: "'{0}' modifier cannot appear on a class element." }, - An_interface_declaration_cannot_have_an_implements_clause: { code: 1032, category: 1 /* Error */, key: "An interface declaration cannot have an 'implements' clause." }, - super_must_be_followed_by_an_argument_list_or_member_access: { code: 1034, category: 1 /* Error */, key: "'super' must be followed by an argument list or member access." }, - Only_ambient_modules_can_use_quoted_names: { code: 1035, category: 1 /* Error */, key: "Only ambient modules can use quoted names." }, - Statements_are_not_allowed_in_ambient_contexts: { code: 1036, category: 1 /* Error */, key: "Statements are not allowed in ambient contexts." }, - A_function_implementation_cannot_be_declared_in_an_ambient_context: { code: 1037, category: 1 /* Error */, key: "A function implementation cannot be declared in an ambient context." }, - A_declare_modifier_cannot_be_used_in_an_already_ambient_context: { code: 1038, category: 1 /* Error */, key: "A 'declare' modifier cannot be used in an already ambient context." }, - Initializers_are_not_allowed_in_ambient_contexts: { code: 1039, category: 1 /* Error */, key: "Initializers are not allowed in ambient contexts." }, - _0_modifier_cannot_appear_on_a_module_element: { code: 1044, category: 1 /* Error */, key: "'{0}' modifier cannot appear on a module element." }, - A_declare_modifier_cannot_be_used_with_an_interface_declaration: { code: 1045, category: 1 /* 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: 1 /* 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: 1 /* Error */, key: "A rest parameter cannot be optional." }, - A_rest_parameter_cannot_have_an_initializer: { code: 1048, category: 1 /* Error */, key: "A rest parameter cannot have an initializer." }, - A_set_accessor_must_have_exactly_one_parameter: { code: 1049, category: 1 /* Error */, key: "A 'set' accessor must have exactly one parameter." }, - A_set_accessor_cannot_have_an_optional_parameter: { code: 1051, category: 1 /* Error */, key: "A 'set' accessor cannot have an optional parameter." }, - A_set_accessor_parameter_cannot_have_an_initializer: { code: 1052, category: 1 /* Error */, key: "A 'set' accessor parameter cannot have an initializer." }, - A_set_accessor_cannot_have_rest_parameter: { code: 1053, category: 1 /* Error */, key: "A 'set' accessor cannot have rest parameter." }, - A_get_accessor_cannot_have_parameters: { code: 1054, category: 1 /* Error */, key: "A 'get' accessor cannot have parameters." }, - Accessors_are_only_available_when_targeting_ECMAScript_5_and_higher: { code: 1056, category: 1 /* Error */, key: "Accessors are only available when targeting ECMAScript 5 and higher." }, - Enum_member_must_have_initializer: { code: 1061, category: 1 /* Error */, key: "Enum member must have initializer." }, - An_export_assignment_cannot_be_used_in_an_internal_module: { code: 1063, category: 1 /* Error */, key: "An export assignment cannot be used in an internal module." }, - Ambient_enum_elements_can_only_have_integer_literal_initializers: { code: 1066, category: 1 /* Error */, key: "Ambient enum elements can only have integer literal initializers." }, - Unexpected_token_A_constructor_method_accessor_or_property_was_expected: { code: 1068, category: 1 /* 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: 1 /* Error */, key: "A 'declare' modifier cannot be used with an import declaration." }, - Invalid_reference_directive_syntax: { code: 1084, category: 1 /* Error */, key: "Invalid 'reference' directive syntax." }, - Octal_literals_are_not_available_when_targeting_ECMAScript_5_and_higher: { code: 1085, category: 1 /* 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: 1 /* Error */, key: "An accessor cannot be declared in an ambient context." }, - _0_modifier_cannot_appear_on_a_constructor_declaration: { code: 1089, category: 1 /* Error */, key: "'{0}' modifier cannot appear on a constructor declaration." }, - _0_modifier_cannot_appear_on_a_parameter: { code: 1090, category: 1 /* Error */, key: "'{0}' modifier cannot appear on a parameter." }, - Only_a_single_variable_declaration_is_allowed_in_a_for_in_statement: { code: 1091, category: 1 /* 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: 1 /* Error */, key: "Type parameters cannot appear on a constructor declaration." }, - Type_annotation_cannot_appear_on_a_constructor_declaration: { code: 1093, category: 1 /* Error */, key: "Type annotation cannot appear on a constructor declaration." }, - An_accessor_cannot_have_type_parameters: { code: 1094, category: 1 /* Error */, key: "An accessor cannot have type parameters." }, - A_set_accessor_cannot_have_a_return_type_annotation: { code: 1095, category: 1 /* Error */, key: "A 'set' accessor cannot have a return type annotation." }, - An_index_signature_must_have_exactly_one_parameter: { code: 1096, category: 1 /* Error */, key: "An index signature must have exactly one parameter." }, - _0_list_cannot_be_empty: { code: 1097, category: 1 /* Error */, key: "'{0}' list cannot be empty." }, - Type_parameter_list_cannot_be_empty: { code: 1098, category: 1 /* Error */, key: "Type parameter list cannot be empty." }, - Type_argument_list_cannot_be_empty: { code: 1099, category: 1 /* Error */, key: "Type argument list cannot be empty." }, - Invalid_use_of_0_in_strict_mode: { code: 1100, category: 1 /* Error */, key: "Invalid use of '{0}' in strict mode." }, - with_statements_are_not_allowed_in_strict_mode: { code: 1101, category: 1 /* Error */, key: "'with' statements are not allowed in strict mode." }, - delete_cannot_be_called_on_an_identifier_in_strict_mode: { code: 1102, category: 1 /* 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: 1 /* 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: 1 /* 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: 1 /* Error */, key: "Jump target cannot cross function boundary." }, - A_return_statement_can_only_be_used_within_a_function_body: { code: 1108, category: 1 /* Error */, key: "A 'return' statement can only be used within a function body." }, - Expression_expected: { code: 1109, category: 1 /* Error */, key: "Expression expected." }, - Type_expected: { code: 1110, category: 1 /* Error */, key: "Type expected." }, - A_constructor_implementation_cannot_be_declared_in_an_ambient_context: { code: 1111, category: 1 /* Error */, key: "A constructor implementation cannot be declared in an ambient context." }, - A_class_member_cannot_be_declared_optional: { code: 1112, category: 1 /* Error */, key: "A class member cannot be declared optional." }, - A_default_clause_cannot_appear_more_than_once_in_a_switch_statement: { code: 1113, category: 1 /* Error */, key: "A 'default' clause cannot appear more than once in a 'switch' statement." }, - Duplicate_label_0: { code: 1114, category: 1 /* Error */, key: "Duplicate label '{0}'" }, - A_continue_statement_can_only_jump_to_a_label_of_an_enclosing_iteration_statement: { code: 1115, category: 1 /* 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: 1 /* 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: 1 /* 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: 1 /* 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: 1 /* Error */, key: "An object literal cannot have property and accessor with the same name." }, - An_export_assignment_cannot_have_modifiers: { code: 1120, category: 1 /* Error */, key: "An export assignment cannot have modifiers." }, - Octal_literals_are_not_allowed_in_strict_mode: { code: 1121, category: 1 /* Error */, key: "Octal literals are not allowed in strict mode." }, - A_tuple_type_element_list_cannot_be_empty: { code: 1122, category: 1 /* Error */, key: "A tuple type element list cannot be empty." }, - Variable_declaration_list_cannot_be_empty: { code: 1123, category: 1 /* Error */, key: "Variable declaration list cannot be empty." }, - Digit_expected: { code: 1124, category: 1 /* Error */, key: "Digit expected." }, - Hexadecimal_digit_expected: { code: 1125, category: 1 /* Error */, key: "Hexadecimal digit expected." }, - Unexpected_end_of_text: { code: 1126, category: 1 /* Error */, key: "Unexpected end of text." }, - Invalid_character: { code: 1127, category: 1 /* Error */, key: "Invalid character." }, - Declaration_or_statement_expected: { code: 1128, category: 1 /* Error */, key: "Declaration or statement expected." }, - Statement_expected: { code: 1129, category: 1 /* Error */, key: "Statement expected." }, - case_or_default_expected: { code: 1130, category: 1 /* Error */, key: "'case' or 'default' expected." }, - Property_or_signature_expected: { code: 1131, category: 1 /* Error */, key: "Property or signature expected." }, - Enum_member_expected: { code: 1132, category: 1 /* Error */, key: "Enum member expected." }, - Type_reference_expected: { code: 1133, category: 1 /* Error */, key: "Type reference expected." }, - Variable_declaration_expected: { code: 1134, category: 1 /* Error */, key: "Variable declaration expected." }, - Argument_expression_expected: { code: 1135, category: 1 /* Error */, key: "Argument expression expected." }, - Property_assignment_expected: { code: 1136, category: 1 /* Error */, key: "Property assignment expected." }, - Expression_or_comma_expected: { code: 1137, category: 1 /* Error */, key: "Expression or comma expected." }, - Parameter_declaration_expected: { code: 1138, category: 1 /* Error */, key: "Parameter declaration expected." }, - Type_parameter_declaration_expected: { code: 1139, category: 1 /* Error */, key: "Type parameter declaration expected." }, - Type_argument_expected: { code: 1140, category: 1 /* Error */, key: "Type argument expected." }, - String_literal_expected: { code: 1141, category: 1 /* Error */, key: "String literal expected." }, - Line_break_not_permitted_here: { code: 1142, category: 1 /* Error */, key: "Line break not permitted here." }, - catch_or_finally_expected: { code: 1143, category: 1 /* Error */, key: "'catch' or 'finally' expected." }, - Block_or_expected: { code: 1144, category: 1 /* Error */, key: "Block or ';' expected." }, - Modifiers_not_permitted_on_index_signature_members: { code: 1145, category: 1 /* Error */, key: "Modifiers not permitted on index signature members." }, - Declaration_expected: { code: 1146, category: 1 /* Error */, key: "Declaration expected." }, - Import_declarations_in_an_internal_module_cannot_reference_an_external_module: { code: 1147, category: 1 /* 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: 1 /* Error */, key: "Cannot compile external modules unless the '--module' flag is provided." }, - Filename_0_differs_from_already_included_filename_1_only_in_casing: { code: 1149, category: 1 /* Error */, key: "Filename '{0}' differs from already included filename '{1}' only in casing" }, - new_T_cannot_be_used_to_create_an_array_Use_new_Array_T_instead: { code: 1150, category: 1 /* Error */, key: "'new T[]' cannot be used to create an array. Use 'new Array()' instead." }, - var_let_or_const_expected: { code: 1152, category: 1 /* Error */, key: "'var', 'let' or 'const' expected." }, - let_declarations_are_only_available_when_targeting_ECMAScript_6_and_higher: { code: 1153, category: 1 /* 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: 1 /* Error */, key: "'const' declarations are only available when targeting ECMAScript 6 and higher." }, - const_declarations_must_be_initialized: { code: 1155, category: 1 /* Error */, key: "'const' declarations must be initialized" }, - const_declarations_can_only_be_declared_inside_a_block: { code: 1156, category: 1 /* Error */, key: "'const' declarations can only be declared inside a block." }, - let_declarations_can_only_be_declared_inside_a_block: { code: 1157, category: 1 /* Error */, key: "'let' declarations can only be declared inside a block." }, - Invalid_template_literal_expected: { code: 1158, category: 1 /* Error */, key: "Invalid template literal; expected '}'" }, - Tagged_templates_are_only_available_when_targeting_ECMAScript_6_and_higher: { code: 1159, category: 1 /* Error */, key: "Tagged templates are only available when targeting ECMAScript 6 and higher." }, - Unterminated_template_literal: { code: 1160, category: 1 /* Error */, key: "Unterminated template literal." }, - Unterminated_regular_expression_literal: { code: 1161, category: 1 /* Error */, key: "Unterminated regular expression literal." }, - An_object_member_cannot_be_declared_optional: { code: 1162, category: 1 /* Error */, key: "An object member cannot be declared optional." }, - yield_expression_must_be_contained_within_a_generator_declaration: { code: 1163, category: 1 /* Error */, key: "'yield' expression must be contained_within a generator declaration." }, - Duplicate_identifier_0: { code: 2300, category: 1 /* Error */, key: "Duplicate identifier '{0}'." }, - Initializer_of_instance_member_variable_0_cannot_reference_identifier_1_declared_in_the_constructor: { code: 2301, category: 1 /* 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: 1 /* Error */, key: "Static members cannot reference class type parameters." }, - Circular_definition_of_import_alias_0: { code: 2303, category: 1 /* Error */, key: "Circular definition of import alias '{0}'." }, - Cannot_find_name_0: { code: 2304, category: 1 /* Error */, key: "Cannot find name '{0}'." }, - Module_0_has_no_exported_member_1: { code: 2305, category: 1 /* Error */, key: "Module '{0}' has no exported member '{1}'." }, - File_0_is_not_an_external_module: { code: 2306, category: 1 /* Error */, key: "File '{0}' is not an external module." }, - Cannot_find_external_module_0: { code: 2307, category: 1 /* Error */, key: "Cannot find external module '{0}'." }, - A_module_cannot_have_more_than_one_export_assignment: { code: 2308, category: 1 /* 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: 1 /* 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: 1 /* Error */, key: "Type '{0}' recursively references itself as a base type." }, - A_class_may_only_extend_another_class: { code: 2311, category: 1 /* Error */, key: "A class may only extend another class." }, - An_interface_may_only_extend_a_class_or_another_interface: { code: 2312, category: 1 /* 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: 1 /* 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: 1 /* Error */, key: "Generic type '{0}' requires {1} type argument(s)." }, - Type_0_is_not_generic: { code: 2315, category: 1 /* Error */, key: "Type '{0}' is not generic." }, - Global_type_0_must_be_a_class_or_interface_type: { code: 2316, category: 1 /* Error */, key: "Global type '{0}' must be a class or interface type." }, - Global_type_0_must_have_1_type_parameter_s: { code: 2317, category: 1 /* Error */, key: "Global type '{0}' must have {1} type parameter(s)." }, - Cannot_find_global_type_0: { code: 2318, category: 1 /* Error */, key: "Cannot find global type '{0}'." }, - Named_properties_0_of_types_1_and_2_are_not_identical: { code: 2319, category: 1 /* Error */, key: "Named properties '{0}' of types '{1}' and '{2}' are not identical." }, - Interface_0_cannot_simultaneously_extend_types_1_and_2: { code: 2320, category: 1 /* Error */, key: "Interface '{0}' cannot simultaneously extend types '{1}' and '{2}'." }, - Excessive_stack_depth_comparing_types_0_and_1: { code: 2321, category: 1 /* Error */, key: "Excessive stack depth comparing types '{0}' and '{1}'." }, - Type_0_is_not_assignable_to_type_1: { code: 2322, category: 1 /* Error */, key: "Type '{0}' is not assignable to type '{1}'." }, - Property_0_is_missing_in_type_1: { code: 2324, category: 1 /* Error */, key: "Property '{0}' is missing in type '{1}'." }, - Property_0_is_private_in_type_1_but_not_in_type_2: { code: 2325, category: 1 /* Error */, key: "Property '{0}' is private in type '{1}' but not in type '{2}'." }, - Types_of_property_0_are_incompatible: { code: 2326, category: 1 /* Error */, key: "Types of property '{0}' are incompatible." }, - Property_0_is_optional_in_type_1_but_required_in_type_2: { code: 2327, category: 1 /* 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: 1 /* Error */, key: "Types of parameters '{0}' and '{1}' are incompatible." }, - Index_signature_is_missing_in_type_0: { code: 2329, category: 1 /* Error */, key: "Index signature is missing in type '{0}'." }, - Index_signatures_are_incompatible: { code: 2330, category: 1 /* Error */, key: "Index signatures are incompatible." }, - this_cannot_be_referenced_in_a_module_body: { code: 2331, category: 1 /* Error */, key: "'this' cannot be referenced in a module body." }, - this_cannot_be_referenced_in_current_location: { code: 2332, category: 1 /* Error */, key: "'this' cannot be referenced in current location." }, - this_cannot_be_referenced_in_constructor_arguments: { code: 2333, category: 1 /* Error */, key: "'this' cannot be referenced in constructor arguments." }, - this_cannot_be_referenced_in_a_static_property_initializer: { code: 2334, category: 1 /* Error */, key: "'this' cannot be referenced in a static property initializer." }, - super_can_only_be_referenced_in_a_derived_class: { code: 2335, category: 1 /* Error */, key: "'super' can only be referenced in a derived class." }, - super_cannot_be_referenced_in_constructor_arguments: { code: 2336, category: 1 /* 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: 1 /* 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: 1 /* 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: 1 /* 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: 1 /* 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: 1 /* Error */, key: "Property '{0}' is private and only accessible within class '{1}'." }, - An_index_expression_argument_must_be_of_type_string_number_or_any: { code: 2342, category: 1 /* Error */, key: "An index expression argument must be of type 'string', 'number', or 'any'." }, - Type_0_does_not_satisfy_the_constraint_1: { code: 2344, category: 1 /* 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: 1 /* 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: 1 /* Error */, key: "Supplied parameters do not match any signature of call target." }, - Untyped_function_calls_may_not_accept_type_arguments: { code: 2347, category: 1 /* 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: 1 /* 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: 1 /* 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: 1 /* 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: 1 /* 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: 1 /* Error */, key: "Neither type '{0}' nor type '{1}' is assignable to the other." }, - No_best_common_type_exists_among_return_expressions: { code: 2354, category: 1 /* 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: 1 /* 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: 1 /* 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: 1 /* 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: 1 /* 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: 1 /* 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_types_any_string_or_number: { code: 2360, category: 1 /* Error */, key: "The left-hand side of an 'in' expression must be of types 'any', 'string' or 'number'." }, - The_right_hand_side_of_an_in_expression_must_be_of_type_any_an_object_type_or_a_type_parameter: { code: 2361, category: 1 /* 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: 1 /* 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: 1 /* 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: 1 /* Error */, key: "Invalid left-hand side of assignment expression." }, - Operator_0_cannot_be_applied_to_types_1_and_2: { code: 2365, category: 1 /* Error */, key: "Operator '{0}' cannot be applied to types '{1}' and '{2}'." }, - Type_parameter_name_cannot_be_0: { code: 2368, category: 1 /* Error */, key: "Type parameter name cannot be '{0}'" }, - A_parameter_property_is_only_allowed_in_a_constructor_implementation: { code: 2369, category: 1 /* Error */, key: "A parameter property is only allowed in a constructor implementation." }, - A_rest_parameter_must_be_of_an_array_type: { code: 2370, category: 1 /* 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: 1 /* 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: 1 /* Error */, key: "Parameter '{0}' cannot be referenced in its initializer." }, - Initializer_of_parameter_0_cannot_reference_identifier_1_declared_after_it: { code: 2373, category: 1 /* Error */, key: "Initializer of parameter '{0}' cannot reference identifier '{1}' declared after it." }, - Duplicate_string_index_signature: { code: 2374, category: 1 /* Error */, key: "Duplicate string index signature." }, - Duplicate_number_index_signature: { code: 2375, category: 1 /* 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: 1 /* 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: 1 /* 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: 1 /* 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: 1 /* Error */, key: "Getter and setter accessors do not agree in visibility." }, - get_and_set_accessor_must_have_the_same_type: { code: 2380, category: 1 /* 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: 1 /* 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: 1 /* 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: 1 /* Error */, key: "Overload signatures must all be exported or not exported." }, - Overload_signatures_must_all_be_ambient_or_non_ambient: { code: 2384, category: 1 /* Error */, key: "Overload signatures must all be ambient or non-ambient." }, - Overload_signatures_must_all_be_public_private_or_protected: { code: 2385, category: 1 /* Error */, key: "Overload signatures must all be public, private or protected." }, - Overload_signatures_must_all_be_optional_or_required: { code: 2386, category: 1 /* Error */, key: "Overload signatures must all be optional or required." }, - Function_overload_must_be_static: { code: 2387, category: 1 /* Error */, key: "Function overload must be static." }, - Function_overload_must_not_be_static: { code: 2388, category: 1 /* Error */, key: "Function overload must not be static." }, - Function_implementation_name_must_be_0: { code: 2389, category: 1 /* Error */, key: "Function implementation name must be '{0}'." }, - Constructor_implementation_is_missing: { code: 2390, category: 1 /* Error */, key: "Constructor implementation is missing." }, - Function_implementation_is_missing_or_not_immediately_following_the_declaration: { code: 2391, category: 1 /* Error */, key: "Function implementation is missing or not immediately following the declaration." }, - Multiple_constructor_implementations_are_not_allowed: { code: 2392, category: 1 /* Error */, key: "Multiple constructor implementations are not allowed." }, - Duplicate_function_implementation: { code: 2393, category: 1 /* Error */, key: "Duplicate function implementation." }, - Overload_signature_is_not_compatible_with_function_implementation: { code: 2394, category: 1 /* 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: 1 /* 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: 1 /* Error */, key: "Duplicate identifier 'arguments'. Compiler uses 'arguments' to initialize rest parameters." }, - Duplicate_identifier_i_Compiler_uses_i_to_initialize_rest_parameter: { code: 2397, category: 1 /* Error */, key: "Duplicate identifier '_i'. Compiler uses '_i' to initialize rest parameter." }, - Expression_resolves_to_variable_declaration_i_that_compiler_uses_to_initialize_rest_parameter: { code: 2398, category: 1 /* Error */, key: "Expression resolves to variable declaration '_i' that compiler uses to initialize rest parameter." }, - Duplicate_identifier_this_Compiler_uses_variable_declaration_this_to_capture_this_reference: { code: 2399, category: 1 /* 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: 1 /* 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: 1 /* 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: 1 /* 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: 1 /* 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: 1 /* 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: 1 /* 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: 1 /* 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: 1 /* 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: 1 /* 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: 1 /* 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: 1 /* 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: 1 /* 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: 1 /* 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: 1 /* Error */, key: "Numeric index type '{0}' is not assignable to string index type '{1}'." }, - Class_name_cannot_be_0: { code: 2414, category: 1 /* Error */, key: "Class name cannot be '{0}'" }, - Class_0_incorrectly_extends_base_class_1: { code: 2415, category: 1 /* Error */, key: "Class '{0}' incorrectly extends base class '{1}'." }, - Class_static_side_0_incorrectly_extends_base_class_static_side_1: { code: 2417, category: 1 /* 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: 1 /* Error */, key: "Type name '{0}' in extends clause does not reference constructor function for '{0}'." }, - Class_0_incorrectly_implements_interface_1: { code: 2420, category: 1 /* Error */, key: "Class '{0}' incorrectly implements interface '{1}'." }, - A_class_may_only_implement_another_class_or_interface: { code: 2422, category: 1 /* 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: 1 /* 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: 1 /* 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: 1 /* 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: 1 /* 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: 1 /* Error */, key: "Interface name cannot be '{0}'" }, - All_declarations_of_an_interface_must_have_identical_type_parameters: { code: 2428, category: 1 /* Error */, key: "All declarations of an interface must have identical type parameters." }, - Interface_0_incorrectly_extends_interface_1: { code: 2430, category: 1 /* Error */, key: "Interface '{0}' incorrectly extends interface '{1}'." }, - Enum_name_cannot_be_0: { code: 2431, category: 1 /* 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: 1 /* 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: 1 /* 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: 1 /* 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: 1 /* Error */, key: "Ambient external modules cannot be nested in other modules." }, - Ambient_external_module_declaration_cannot_specify_relative_module_name: { code: 2436, category: 1 /* 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: 1 /* Error */, key: "Module '{0}' is hidden by a local declaration with the same name" }, - Import_name_cannot_be_0: { code: 2438, category: 1 /* Error */, key: "Import name cannot be '{0}'" }, - Import_declaration_in_an_ambient_external_module_declaration_cannot_reference_external_module_through_relative_external_module_name: { code: 2439, category: 1 /* Error */, key: "Import 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: 1 /* 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: 1 /* 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: 1 /* 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: 1 /* 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: 1 /* 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: 1 /* 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: 1 /* 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: 1 /* 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: 1 /* Error */, key: "Block-scoped variable '{0}' used before its declaration.", isEarly: true }, - The_operand_of_an_increment_or_decrement_operator_cannot_be_a_constant: { code: 2449, category: 1 /* Error */, key: "The operand of an increment or decrement operator cannot be a constant.", isEarly: true }, - Left_hand_side_of_assignment_expression_cannot_be_a_constant: { code: 2450, category: 1 /* Error */, key: "Left-hand side of assignment expression cannot be a constant.", isEarly: true }, - Cannot_redeclare_block_scoped_variable_0: { code: 2451, category: 1 /* Error */, key: "Cannot redeclare block-scoped variable '{0}'.", isEarly: true }, - An_enum_member_cannot_have_a_numeric_name: { code: 2452, category: 1 /* 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: 1 /* 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: 1 /* 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: 1 /* Error */, key: "Type alias '{0}' circularly references itself." }, - Type_alias_name_cannot_be_0: { code: 2457, category: 1 /* Error */, key: "Type alias name cannot be '{0}'" }, - An_AMD_module_cannot_have_multiple_name_assignments: { code: 2458, category: 1 /* Error */, key: "An AMD module cannot have multiple name assignments." }, - Import_declaration_0_is_using_private_name_1: { code: 4000, category: 1 /* 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: 1 /* 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: 1 /* 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: 1 /* 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: 1 /* 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: 1 /* 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: 1 /* 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: 1 /* 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: 1 /* 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: 1 /* 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: 1 /* 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: 1 /* 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: 1 /* 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: 1 /* 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: 1 /* 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: 1 /* 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: 1 /* 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: 1 /* 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: 1 /* 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: 1 /* 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: 1 /* 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: 1 /* 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: 1 /* 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: 1 /* 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: 1 /* 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: 1 /* 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: 1 /* 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: 1 /* 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: 1 /* 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: 1 /* 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: 1 /* 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: 1 /* 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: 1 /* 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: 1 /* 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: 1 /* 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: 1 /* 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: 1 /* 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: 1 /* 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: 1 /* 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: 1 /* 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: 1 /* 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: 1 /* 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: 1 /* 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: 1 /* 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: 1 /* 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: 1 /* 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: 1 /* 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: 1 /* 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: 1 /* 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: 1 /* 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: 1 /* 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: 1 /* 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: 1 /* 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: 1 /* 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: 1 /* 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: 1 /* 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: 1 /* 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: 1 /* 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: 1 /* 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: 1 /* 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: 1 /* 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: 1 /* 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: 1 /* 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: 1 /* 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: 1 /* 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: 1 /* 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: 1 /* 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: 1 /* 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: 1 /* Error */, key: "Exported type alias '{0}' has or is using private name '{1}'." }, - Enum_declarations_must_all_be_const_or_non_const: { code: 4082, category: 1 /* Error */, key: "Enum declarations must all be const or non-const." }, - In_const_enum_declarations_member_initializer_must_be_constant_expression: { code: 4083, category: 1 /* Error */, key: "In 'const' enum declarations member initializer must be constant expression.", isEarly: true }, - 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: 4084, category: 1 /* 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." }, - Index_expression_arguments_in_const_enums_must_be_of_type_string: { code: 4085, category: 1 /* Error */, key: "Index expression arguments in 'const' enums must be of type 'string'." }, - const_enum_member_initializer_was_evaluated_to_a_non_finite_value: { code: 4086, category: 1 /* Error */, key: "'const' enum member initializer was evaluated to a non-finite value." }, - const_enum_member_initializer_was_evaluated_to_disallowed_value_NaN: { code: 4087, category: 1 /* Error */, key: "'const' enum member initializer was evaluated to disallowed value 'NaN'." }, - The_current_host_does_not_support_the_0_option: { code: 5001, category: 1 /* Error */, key: "The current host does not support the '{0}' option." }, - Cannot_find_the_common_subdirectory_path_for_the_input_files: { code: 5009, category: 1 /* Error */, key: "Cannot find the common subdirectory path for the input files." }, - Cannot_read_file_0_Colon_1: { code: 5012, category: 1 /* Error */, key: "Cannot read file '{0}': {1}" }, - Unsupported_file_encoding: { code: 5013, category: 1 /* Error */, key: "Unsupported file encoding." }, - Unknown_compiler_option_0: { code: 5023, category: 1 /* Error */, key: "Unknown compiler option '{0}'." }, - Could_not_write_file_0_Colon_1: { code: 5033, category: 1 /* Error */, key: "Could not write file '{0}': {1}" }, - Option_mapRoot_cannot_be_specified_without_specifying_sourcemap_option: { code: 5038, category: 1 /* Error */, key: "Option mapRoot cannot be specified without specifying sourcemap option." }, - Option_sourceRoot_cannot_be_specified_without_specifying_sourcemap_option: { code: 5039, category: 1 /* Error */, key: "Option sourceRoot cannot be specified without specifying sourcemap option." }, - Concatenate_and_emit_output_to_single_file: { code: 6001, category: 2 /* Message */, key: "Concatenate and emit output to single file." }, - Generates_corresponding_d_ts_file: { code: 6002, category: 2 /* Message */, key: "Generates corresponding '.d.ts' file." }, - Specifies_the_location_where_debugger_should_locate_map_files_instead_of_generated_locations: { code: 6003, category: 2 /* 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: 2 /* Message */, key: "Specifies the location where debugger should locate TypeScript files instead of source locations." }, - Watch_input_files: { code: 6005, category: 2 /* Message */, key: "Watch input files." }, - Redirect_output_structure_to_the_directory: { code: 6006, category: 2 /* Message */, key: "Redirect output structure to the directory." }, - Do_not_erase_const_enum_declarations_in_generated_code: { code: 6007, category: 2 /* 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: 2 /* Message */, key: "Do not emit outputs if any type checking errors were reported." }, - Do_not_emit_comments_to_output: { code: 6009, category: 2 /* Message */, key: "Do not emit comments to output." }, - Specify_ECMAScript_target_version_Colon_ES3_default_ES5_or_ES6_experimental: { code: 6015, category: 2 /* Message */, key: "Specify ECMAScript target version: 'ES3' (default), 'ES5', or 'ES6' (experimental)" }, - Specify_module_code_generation_Colon_commonjs_or_amd: { code: 6016, category: 2 /* Message */, key: "Specify module code generation: 'commonjs' or 'amd'" }, - Print_this_message: { code: 6017, category: 2 /* Message */, key: "Print this message." }, - Print_the_compiler_s_version: { code: 6019, category: 2 /* Message */, key: "Print the compiler's version." }, - Syntax_Colon_0: { code: 6023, category: 2 /* Message */, key: "Syntax: {0}" }, - options: { code: 6024, category: 2 /* Message */, key: "options" }, - file: { code: 6025, category: 2 /* Message */, key: "file" }, - Examples_Colon_0: { code: 6026, category: 2 /* Message */, key: "Examples: {0}" }, - Options_Colon: { code: 6027, category: 2 /* Message */, key: "Options:" }, - Version_0: { code: 6029, category: 2 /* Message */, key: "Version {0}" }, - Insert_command_line_options_and_files_from_a_file: { code: 6030, category: 2 /* Message */, key: "Insert command line options and files from a file." }, - File_change_detected_Compiling: { code: 6032, category: 2 /* Message */, key: "File change detected. Compiling..." }, - KIND: { code: 6034, category: 2 /* Message */, key: "KIND" }, - FILE: { code: 6035, category: 2 /* Message */, key: "FILE" }, - VERSION: { code: 6036, category: 2 /* Message */, key: "VERSION" }, - LOCATION: { code: 6037, category: 2 /* Message */, key: "LOCATION" }, - DIRECTORY: { code: 6038, category: 2 /* Message */, key: "DIRECTORY" }, - Compilation_complete_Watching_for_file_changes: { code: 6042, category: 2 /* Message */, key: "Compilation complete. Watching for file changes." }, - Generates_corresponding_map_file: { code: 6043, category: 2 /* Message */, key: "Generates corresponding '.map' file." }, - Compiler_option_0_expects_an_argument: { code: 6044, category: 1 /* Error */, key: "Compiler option '{0}' expects an argument." }, - Unterminated_quoted_string_in_response_file_0: { code: 6045, category: 1 /* Error */, key: "Unterminated quoted string in response file '{0}'." }, - Argument_for_module_option_must_be_commonjs_or_amd: { code: 6046, category: 1 /* Error */, key: "Argument for '--module' option must be 'commonjs' or 'amd'." }, - Argument_for_target_option_must_be_es3_es5_or_es6: { code: 6047, category: 1 /* 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: 1 /* Error */, key: "Locale must be of the form or -. For example '{0}' or '{1}'." }, - Unsupported_locale_0: { code: 6049, category: 1 /* Error */, key: "Unsupported locale '{0}'." }, - Unable_to_open_file_0: { code: 6050, category: 1 /* Error */, key: "Unable to open file '{0}'." }, - Corrupted_locale_file_0: { code: 6051, category: 1 /* Error */, key: "Corrupted locale file {0}." }, - Warn_on_expressions_and_declarations_with_an_implied_any_type: { code: 6052, category: 2 /* Message */, key: "Warn on expressions and declarations with an implied 'any' type." }, - File_0_not_found: { code: 6053, category: 1 /* Error */, key: "File '{0}' not found." }, - File_0_must_have_extension_ts_or_d_ts: { code: 6054, category: 1 /* Error */, key: "File '{0}' must have extension '.ts' or '.d.ts'." }, - Variable_0_implicitly_has_an_1_type: { code: 7005, category: 1 /* Error */, key: "Variable '{0}' implicitly has an '{1}' type." }, - Parameter_0_implicitly_has_an_1_type: { code: 7006, category: 1 /* Error */, key: "Parameter '{0}' implicitly has an '{1}' type." }, - Member_0_implicitly_has_an_1_type: { code: 7008, category: 1 /* 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: 1 /* 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: 1 /* 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: 1 /* 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: 1 /* 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: 1 /* 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: 1 /* 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: 1 /* Error */, key: "Object literal's property '{0}' implicitly has an '{1}' type." }, - Rest_parameter_0_implicitly_has_an_any_type: { code: 7019, category: 1 /* 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: 1 /* 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: 1 /* 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: 1 /* 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: 1 /* 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: 1 /* 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: 1 /* Error */, key: "You cannot rename this element." } - }; -})(ts || (ts = {})); -var ts; -(function (ts) { - var textToToken = { - "any": 109 /* AnyKeyword */, - "boolean": 110 /* BooleanKeyword */, - "break": 64 /* BreakKeyword */, - "case": 65 /* CaseKeyword */, - "catch": 66 /* CatchKeyword */, - "class": 67 /* ClassKeyword */, - "continue": 69 /* ContinueKeyword */, - "const": 68 /* ConstKeyword */, - "constructor": 111 /* ConstructorKeyword */, - "debugger": 70 /* DebuggerKeyword */, - "declare": 112 /* DeclareKeyword */, - "default": 71 /* DefaultKeyword */, - "delete": 72 /* DeleteKeyword */, - "do": 73 /* DoKeyword */, - "else": 74 /* ElseKeyword */, - "enum": 75 /* EnumKeyword */, - "export": 76 /* ExportKeyword */, - "extends": 77 /* ExtendsKeyword */, - "false": 78 /* FalseKeyword */, - "finally": 79 /* FinallyKeyword */, - "for": 80 /* ForKeyword */, - "function": 81 /* FunctionKeyword */, - "get": 113 /* GetKeyword */, - "if": 82 /* IfKeyword */, - "implements": 100 /* ImplementsKeyword */, - "import": 83 /* ImportKeyword */, - "in": 84 /* InKeyword */, - "instanceof": 85 /* InstanceOfKeyword */, - "interface": 101 /* InterfaceKeyword */, - "let": 102 /* LetKeyword */, - "module": 114 /* ModuleKeyword */, - "new": 86 /* NewKeyword */, - "null": 87 /* NullKeyword */, - "number": 116 /* NumberKeyword */, - "package": 103 /* PackageKeyword */, - "private": 104 /* PrivateKeyword */, - "protected": 105 /* ProtectedKeyword */, - "public": 106 /* PublicKeyword */, - "require": 115 /* RequireKeyword */, - "return": 88 /* ReturnKeyword */, - "set": 117 /* SetKeyword */, - "static": 107 /* StaticKeyword */, - "string": 118 /* StringKeyword */, - "super": 89 /* SuperKeyword */, - "switch": 90 /* SwitchKeyword */, - "this": 91 /* ThisKeyword */, - "throw": 92 /* ThrowKeyword */, - "true": 93 /* TrueKeyword */, - "try": 94 /* TryKeyword */, - "type": 119 /* TypeKeyword */, - "typeof": 95 /* TypeOfKeyword */, - "var": 96 /* VarKeyword */, - "void": 97 /* VoidKeyword */, - "while": 98 /* WhileKeyword */, - "with": 99 /* WithKeyword */, - "yield": 108 /* YieldKeyword */, - "{": 13 /* OpenBraceToken */, - "}": 14 /* CloseBraceToken */, - "(": 15 /* OpenParenToken */, - ")": 16 /* CloseParenToken */, - "[": 17 /* OpenBracketToken */, - "]": 18 /* CloseBracketToken */, - ".": 19 /* DotToken */, - "...": 20 /* DotDotDotToken */, - ";": 21 /* SemicolonToken */, - ",": 22 /* CommaToken */, - "<": 23 /* LessThanToken */, - ">": 24 /* GreaterThanToken */, - "<=": 25 /* LessThanEqualsToken */, - ">=": 26 /* GreaterThanEqualsToken */, - "==": 27 /* EqualsEqualsToken */, - "!=": 28 /* ExclamationEqualsToken */, - "===": 29 /* EqualsEqualsEqualsToken */, - "!==": 30 /* ExclamationEqualsEqualsToken */, - "=>": 31 /* EqualsGreaterThanToken */, - "+": 32 /* PlusToken */, - "-": 33 /* MinusToken */, - "*": 34 /* AsteriskToken */, - "/": 35 /* SlashToken */, - "%": 36 /* PercentToken */, - "++": 37 /* PlusPlusToken */, - "--": 38 /* MinusMinusToken */, - "<<": 39 /* LessThanLessThanToken */, - ">>": 40 /* GreaterThanGreaterThanToken */, - ">>>": 41 /* GreaterThanGreaterThanGreaterThanToken */, - "&": 42 /* AmpersandToken */, - "|": 43 /* BarToken */, - "^": 44 /* CaretToken */, - "!": 45 /* ExclamationToken */, - "~": 46 /* TildeToken */, - "&&": 47 /* AmpersandAmpersandToken */, - "||": 48 /* BarBarToken */, - "?": 49 /* QuestionToken */, - ":": 50 /* ColonToken */, - "=": 51 /* EqualsToken */, - "+=": 52 /* PlusEqualsToken */, - "-=": 53 /* MinusEqualsToken */, - "*=": 54 /* AsteriskEqualsToken */, - "/=": 55 /* SlashEqualsToken */, - "%=": 56 /* PercentEqualsToken */, - "<<=": 57 /* LessThanLessThanEqualsToken */, - ">>=": 58 /* GreaterThanGreaterThanEqualsToken */, - ">>>=": 59 /* GreaterThanGreaterThanGreaterThanEqualsToken */, - "&=": 60 /* AmpersandEqualsToken */, - "|=": 61 /* BarEqualsToken */, - "^=": 62 /* CaretEqualsToken */ - }; - 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 === 0 /* ES3 */ ? lookupInUnicodeMap(code, unicodeES3IdentifierStart) : lookupInUnicodeMap(code, unicodeES5IdentifierStart); - } - function isUnicodeIdentifierPart(code, languageVersion) { - return languageVersion === 0 /* ES3 */ ? lookupInUnicodeMap(code, unicodeES3IdentifierPart) : lookupInUnicodeMap(code, unicodeES5IdentifierPart); - } - function makeReverseMap(source) { - var result = []; - for (var name in source) { - if (source.hasOwnProperty(name)) { - result[source[name]] = name; - } - } - return result; - } - var tokenStrings = makeReverseMap(textToToken); - function tokenToString(t) { - return tokenStrings[t]; - } - ts.tokenToString = tokenToString; - 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 /* carriageReturn */: - if (text.charCodeAt(pos) === 10 /* lineFeed */) { - pos++; - } - case 10 /* lineFeed */: - result.push(lineStart); - lineStart = pos; - break; - default: - if (ch > 127 /* maxAsciiCharacter */ && isLineBreak(ch)) { - result.push(lineStart); - lineStart = pos; - } - break; - } - } - result.push(lineStart); - return result; - } - ts.computeLineStarts = computeLineStarts; - function getPositionFromLineAndCharacter(lineStarts, line, character) { - ts.Debug.assert(line > 0); - return lineStarts[line - 1] + character - 1; - } - ts.getPositionFromLineAndCharacter = getPositionFromLineAndCharacter; - function getLineAndCharacterOfPosition(lineStarts, position) { - var lineNumber = ts.binarySearch(lineStarts, position); - if (lineNumber < 0) { - lineNumber = (~lineNumber) - 1; - } - return { - line: lineNumber + 1, - character: position - lineStarts[lineNumber] + 1 - }; - } - ts.getLineAndCharacterOfPosition = getLineAndCharacterOfPosition; - function positionToLineAndCharacter(text, pos) { - var lineStarts = computeLineStarts(text); - return getLineAndCharacterOfPosition(lineStarts, pos); - } - ts.positionToLineAndCharacter = positionToLineAndCharacter; - var hasOwnProperty = Object.prototype.hasOwnProperty; - function isWhiteSpace(ch) { - return ch === 32 /* space */ || ch === 9 /* tab */ || ch === 11 /* verticalTab */ || ch === 12 /* formFeed */ || ch === 160 /* nonBreakingSpace */ || ch === 5760 /* ogham */ || ch >= 8192 /* enQuad */ && ch <= 8203 /* zeroWidthSpace */ || ch === 8239 /* narrowNoBreakSpace */ || ch === 8287 /* mathematicalSpace */ || ch === 12288 /* ideographicSpace */ || ch === 65279 /* byteOrderMark */; - } - ts.isWhiteSpace = isWhiteSpace; - function isLineBreak(ch) { - return ch === 10 /* lineFeed */ || ch === 13 /* carriageReturn */ || ch === 8232 /* lineSeparator */ || ch === 8233 /* paragraphSeparator */ || ch === 133 /* nextLine */; - } - ts.isLineBreak = isLineBreak; - function isDigit(ch) { - return ch >= 48 /* _0 */ && ch <= 57 /* _9 */; - } - function isOctalDigit(ch) { - return ch >= 48 /* _0 */ && ch <= 55 /* _7 */; - } - ts.isOctalDigit = isOctalDigit; - function skipTrivia(text, pos, stopAfterLineBreak) { - while (true) { - var ch = text.charCodeAt(pos); - switch (ch) { - case 13 /* carriageReturn */: - if (text.charCodeAt(pos + 1) === 10 /* lineFeed */) - pos++; - case 10 /* lineFeed */: - pos++; - if (stopAfterLineBreak) - return pos; - continue; - case 9 /* tab */: - case 11 /* verticalTab */: - case 12 /* formFeed */: - case 32 /* space */: - pos++; - continue; - case 47 /* slash */: - if (text.charCodeAt(pos + 1) === 47 /* slash */) { - pos += 2; - while (pos < text.length) { - if (isLineBreak(text.charCodeAt(pos))) { - break; - } - pos++; - } - continue; - } - if (text.charCodeAt(pos + 1) === 42 /* asterisk */) { - pos += 2; - while (pos < text.length) { - if (text.charCodeAt(pos) === 42 /* asterisk */ && text.charCodeAt(pos + 1) === 47 /* slash */) { - pos += 2; - break; - } - pos++; - } - continue; - } - break; - default: - if (ch > 127 /* maxAsciiCharacter */ && (isWhiteSpace(ch) || isLineBreak(ch))) { - pos++; - continue; - } - break; - } - return pos; - } - } - ts.skipTrivia = skipTrivia; - function getCommentRanges(text, pos, trailing) { - var result; - var collecting = trailing || pos === 0; - while (true) { - var ch = text.charCodeAt(pos); - switch (ch) { - case 13 /* carriageReturn */: - if (text.charCodeAt(pos + 1) === 10 /* lineFeed */) - pos++; - case 10 /* lineFeed */: - pos++; - if (trailing) { - return result; - } - collecting = true; - if (result && result.length) { - result[result.length - 1].hasTrailingNewLine = true; - } - continue; - case 9 /* tab */: - case 11 /* verticalTab */: - case 12 /* formFeed */: - case 32 /* space */: - pos++; - continue; - case 47 /* slash */: - var nextChar = text.charCodeAt(pos + 1); - var hasTrailingNewLine = false; - if (nextChar === 47 /* slash */ || nextChar === 42 /* asterisk */) { - var startPos = pos; - pos += 2; - if (nextChar === 47 /* slash */) { - while (pos < text.length) { - if (isLineBreak(text.charCodeAt(pos))) { - hasTrailingNewLine = true; - break; - } - pos++; - } - } - else { - while (pos < text.length) { - if (text.charCodeAt(pos) === 42 /* asterisk */ && text.charCodeAt(pos + 1) === 47 /* slash */) { - pos += 2; - break; - } - pos++; - } - } - if (collecting) { - if (!result) - result = []; - result.push({ pos: startPos, end: pos, hasTrailingNewLine: hasTrailingNewLine }); - } - continue; - } - break; - default: - if (ch > 127 /* maxAsciiCharacter */ && (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 /* A */ && ch <= 90 /* Z */ || ch >= 97 /* a */ && ch <= 122 /* z */ || ch === 36 /* $ */ || ch === 95 /* _ */ || ch > 127 /* maxAsciiCharacter */ && isUnicodeIdentifierStart(ch, languageVersion); - } - ts.isIdentifierStart = isIdentifierStart; - function isIdentifierPart(ch, languageVersion) { - return ch >= 65 /* A */ && ch <= 90 /* Z */ || ch >= 97 /* a */ && ch <= 122 /* z */ || ch >= 48 /* _0 */ && ch <= 57 /* _9 */ || ch === 36 /* $ */ || ch === 95 /* _ */ || ch > 127 /* maxAsciiCharacter */ && isUnicodeIdentifierPart(ch, languageVersion); - } - ts.isIdentifierPart = isIdentifierPart; - function createScanner(languageVersion, skipTrivia, text, onError, onComment) { - var pos; - var len; - var startPos; - var tokenPos; - var token; - var tokenValue; - var precedingLineBreak; - function error(message) { - if (onError) { - onError(message); - } - } - function isIdentifierStart(ch) { - return ch >= 65 /* A */ && ch <= 90 /* Z */ || ch >= 97 /* a */ && ch <= 122 /* z */ || ch === 36 /* $ */ || ch === 95 /* _ */ || ch > 127 /* maxAsciiCharacter */ && isUnicodeIdentifierStart(ch, languageVersion); - } - function isIdentifierPart(ch) { - return ch >= 65 /* A */ && ch <= 90 /* Z */ || ch >= 97 /* a */ && ch <= 122 /* z */ || ch >= 48 /* _0 */ && ch <= 57 /* _9 */ || ch === 36 /* $ */ || ch === 95 /* _ */ || ch > 127 /* maxAsciiCharacter */ && isUnicodeIdentifierPart(ch, languageVersion); - } - function scanNumber() { - var start = pos; - while (isDigit(text.charCodeAt(pos))) - pos++; - if (text.charCodeAt(pos) === 46 /* dot */) { - pos++; - while (isDigit(text.charCodeAt(pos))) - pos++; - } - var end = pos; - if (text.charCodeAt(pos) === 69 /* E */ || text.charCodeAt(pos) === 101 /* e */) { - pos++; - if (text.charCodeAt(pos) === 43 /* plus */ || text.charCodeAt(pos) === 45 /* minus */) - 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 scanHexDigits(count, mustMatchCount) { - var digits = 0; - var value = 0; - while (digits < count || !mustMatchCount) { - var ch = text.charCodeAt(pos); - if (ch >= 48 /* _0 */ && ch <= 57 /* _9 */) { - value = value * 16 + ch - 48 /* _0 */; - } - else if (ch >= 65 /* A */ && ch <= 70 /* F */) { - value = value * 16 + ch - 65 /* A */ + 10; - } - else if (ch >= 97 /* a */ && ch <= 102 /* f */) { - value = value * 16 + ch - 97 /* a */ + 10; - } - else { - break; - } - pos++; - digits++; - } - if (digits < count) { - 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); - 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 /* backslash */) { - result += text.substring(start, pos); - result += scanEscapeSequence(); - start = pos; - continue; - } - if (isLineBreak(ch)) { - result += text.substring(start, pos); - error(ts.Diagnostics.Unterminated_string_literal); - break; - } - pos++; - } - return result; - } - function scanTemplateAndSetTokenValue() { - var startedWithBacktick = text.charCodeAt(pos) === 96 /* backtick */; - pos++; - var start = pos; - var contents = ""; - var resultingToken; - while (true) { - if (pos >= len) { - contents += text.substring(start, pos); - error(ts.Diagnostics.Unterminated_template_literal); - resultingToken = startedWithBacktick ? 9 /* NoSubstitutionTemplateLiteral */ : 12 /* TemplateTail */; - break; - } - var currChar = text.charCodeAt(pos); - if (currChar === 96 /* backtick */) { - contents += text.substring(start, pos); - pos++; - resultingToken = startedWithBacktick ? 9 /* NoSubstitutionTemplateLiteral */ : 12 /* TemplateTail */; - break; - } - if (currChar === 36 /* $ */ && pos + 1 < len && text.charCodeAt(pos + 1) === 123 /* openBrace */) { - contents += text.substring(start, pos); - pos += 2; - resultingToken = startedWithBacktick ? 10 /* TemplateHead */ : 11 /* TemplateMiddle */; - break; - } - if (currChar === 92 /* backslash */) { - contents += text.substring(start, pos); - contents += scanEscapeSequence(); - start = pos; - continue; - } - if (currChar === 13 /* carriageReturn */) { - contents += text.substring(start, pos); - if (pos + 1 < len && text.charCodeAt(pos + 1) === 10 /* lineFeed */) { - pos++; - } - 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 /* _0 */: - return "\0"; - case 98 /* b */: - return "\b"; - case 116 /* t */: - return "\t"; - case 110 /* n */: - return "\n"; - case 118 /* v */: - return "\v"; - case 102 /* f */: - return "\f"; - case 114 /* r */: - return "\r"; - case 39 /* singleQuote */: - return "\'"; - case 34 /* doubleQuote */: - return "\""; - case 120 /* x */: - case 117 /* u */: - var ch = scanHexDigits(ch === 120 /* x */ ? 2 : 4, true); - if (ch >= 0) { - return String.fromCharCode(ch); - } - else { - error(ts.Diagnostics.Hexadecimal_digit_expected); - return ""; - } - case 13 /* carriageReturn */: - if (pos < len && text.charCodeAt(pos) === 10 /* lineFeed */) { - pos++; - } - case 10 /* lineFeed */: - case 8232 /* lineSeparator */: - case 8233 /* paragraphSeparator */: - return ""; - default: - return String.fromCharCode(ch); - } - } - function peekUnicodeEscape() { - if (pos + 5 < len && text.charCodeAt(pos + 1) === 117 /* u */) { - var start = pos; - pos += 2; - var value = scanHexDigits(4, true); - 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 /* backslash */) { - 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 /* a */ && ch <= 122 /* z */ && hasOwnProperty.call(textToToken, tokenValue)) { - return token = textToToken[tokenValue]; - } - } - return token = 63 /* Identifier */; - } - function scan() { - startPos = pos; - precedingLineBreak = false; - while (true) { - tokenPos = pos; - if (pos >= len) { - return token = 1 /* EndOfFileToken */; - } - var ch = text.charCodeAt(pos); - switch (ch) { - case 10 /* lineFeed */: - case 13 /* carriageReturn */: - precedingLineBreak = true; - if (skipTrivia) { - pos++; - continue; - } - else { - if (ch === 13 /* carriageReturn */ && pos + 1 < len && text.charCodeAt(pos + 1) === 10 /* lineFeed */) { - pos += 2; - } - else { - pos++; - } - return token = 4 /* NewLineTrivia */; - } - case 9 /* tab */: - case 11 /* verticalTab */: - case 12 /* formFeed */: - case 32 /* space */: - if (skipTrivia) { - pos++; - continue; - } - else { - while (pos < len && isWhiteSpace(text.charCodeAt(pos))) { - pos++; - } - return token = 5 /* WhitespaceTrivia */; - } - case 33 /* exclamation */: - if (text.charCodeAt(pos + 1) === 61 /* equals */) { - if (text.charCodeAt(pos + 2) === 61 /* equals */) { - return pos += 3, token = 30 /* ExclamationEqualsEqualsToken */; - } - return pos += 2, token = 28 /* ExclamationEqualsToken */; - } - return pos++, token = 45 /* ExclamationToken */; - case 34 /* doubleQuote */: - case 39 /* singleQuote */: - tokenValue = scanString(); - return token = 7 /* StringLiteral */; - case 96 /* backtick */: - return token = scanTemplateAndSetTokenValue(); - case 37 /* percent */: - if (text.charCodeAt(pos + 1) === 61 /* equals */) { - return pos += 2, token = 56 /* PercentEqualsToken */; - } - return pos++, token = 36 /* PercentToken */; - case 38 /* ampersand */: - if (text.charCodeAt(pos + 1) === 38 /* ampersand */) { - return pos += 2, token = 47 /* AmpersandAmpersandToken */; - } - if (text.charCodeAt(pos + 1) === 61 /* equals */) { - return pos += 2, token = 60 /* AmpersandEqualsToken */; - } - return pos++, token = 42 /* AmpersandToken */; - case 40 /* openParen */: - return pos++, token = 15 /* OpenParenToken */; - case 41 /* closeParen */: - return pos++, token = 16 /* CloseParenToken */; - case 42 /* asterisk */: - if (text.charCodeAt(pos + 1) === 61 /* equals */) { - return pos += 2, token = 54 /* AsteriskEqualsToken */; - } - return pos++, token = 34 /* AsteriskToken */; - case 43 /* plus */: - if (text.charCodeAt(pos + 1) === 43 /* plus */) { - return pos += 2, token = 37 /* PlusPlusToken */; - } - if (text.charCodeAt(pos + 1) === 61 /* equals */) { - return pos += 2, token = 52 /* PlusEqualsToken */; - } - return pos++, token = 32 /* PlusToken */; - case 44 /* comma */: - return pos++, token = 22 /* CommaToken */; - case 45 /* minus */: - if (text.charCodeAt(pos + 1) === 45 /* minus */) { - return pos += 2, token = 38 /* MinusMinusToken */; - } - if (text.charCodeAt(pos + 1) === 61 /* equals */) { - return pos += 2, token = 53 /* MinusEqualsToken */; - } - return pos++, token = 33 /* MinusToken */; - case 46 /* dot */: - if (isDigit(text.charCodeAt(pos + 1))) { - tokenValue = "" + scanNumber(); - return token = 6 /* NumericLiteral */; - } - if (text.charCodeAt(pos + 1) === 46 /* dot */ && text.charCodeAt(pos + 2) === 46 /* dot */) { - return pos += 3, token = 20 /* DotDotDotToken */; - } - return pos++, token = 19 /* DotToken */; - case 47 /* slash */: - if (text.charCodeAt(pos + 1) === 47 /* slash */) { - pos += 2; - while (pos < len) { - if (isLineBreak(text.charCodeAt(pos))) { - break; - } - pos++; - } - if (onComment) { - onComment(tokenPos, pos); - } - if (skipTrivia) { - continue; - } - else { - return token = 2 /* SingleLineCommentTrivia */; - } - } - if (text.charCodeAt(pos + 1) === 42 /* asterisk */) { - pos += 2; - var commentClosed = false; - while (pos < len) { - var ch = text.charCodeAt(pos); - if (ch === 42 /* asterisk */ && text.charCodeAt(pos + 1) === 47 /* slash */) { - pos += 2; - commentClosed = true; - break; - } - if (isLineBreak(ch)) { - precedingLineBreak = true; - } - pos++; - } - if (!commentClosed) { - error(ts.Diagnostics.Asterisk_Slash_expected); - } - if (onComment) { - onComment(tokenPos, pos); - } - if (skipTrivia) { - continue; - } - else { - return token = 3 /* MultiLineCommentTrivia */; - } - } - if (text.charCodeAt(pos + 1) === 61 /* equals */) { - return pos += 2, token = 55 /* SlashEqualsToken */; - } - return pos++, token = 35 /* SlashToken */; - case 48 /* _0 */: - if (pos + 2 < len && (text.charCodeAt(pos + 1) === 88 /* X */ || text.charCodeAt(pos + 1) === 120 /* x */)) { - pos += 2; - var value = scanHexDigits(1, false); - if (value < 0) { - error(ts.Diagnostics.Hexadecimal_digit_expected); - value = 0; - } - tokenValue = "" + value; - return token = 6 /* NumericLiteral */; - } - if (pos + 1 < len && isOctalDigit(text.charCodeAt(pos + 1))) { - tokenValue = "" + scanOctalDigits(); - return token = 6 /* NumericLiteral */; - } - case 49 /* _1 */: - case 50 /* _2 */: - case 51 /* _3 */: - case 52 /* _4 */: - case 53 /* _5 */: - case 54 /* _6 */: - case 55 /* _7 */: - case 56 /* _8 */: - case 57 /* _9 */: - tokenValue = "" + scanNumber(); - return token = 6 /* NumericLiteral */; - case 58 /* colon */: - return pos++, token = 50 /* ColonToken */; - case 59 /* semicolon */: - return pos++, token = 21 /* SemicolonToken */; - case 60 /* lessThan */: - if (text.charCodeAt(pos + 1) === 60 /* lessThan */) { - if (text.charCodeAt(pos + 2) === 61 /* equals */) { - return pos += 3, token = 57 /* LessThanLessThanEqualsToken */; - } - return pos += 2, token = 39 /* LessThanLessThanToken */; - } - if (text.charCodeAt(pos + 1) === 61 /* equals */) { - return pos += 2, token = 25 /* LessThanEqualsToken */; - } - return pos++, token = 23 /* LessThanToken */; - case 61 /* equals */: - if (text.charCodeAt(pos + 1) === 61 /* equals */) { - if (text.charCodeAt(pos + 2) === 61 /* equals */) { - return pos += 3, token = 29 /* EqualsEqualsEqualsToken */; - } - return pos += 2, token = 27 /* EqualsEqualsToken */; - } - if (text.charCodeAt(pos + 1) === 62 /* greaterThan */) { - return pos += 2, token = 31 /* EqualsGreaterThanToken */; - } - return pos++, token = 51 /* EqualsToken */; - case 62 /* greaterThan */: - return pos++, token = 24 /* GreaterThanToken */; - case 63 /* question */: - return pos++, token = 49 /* QuestionToken */; - case 91 /* openBracket */: - return pos++, token = 17 /* OpenBracketToken */; - case 93 /* closeBracket */: - return pos++, token = 18 /* CloseBracketToken */; - case 94 /* caret */: - if (text.charCodeAt(pos + 1) === 61 /* equals */) { - return pos += 2, token = 62 /* CaretEqualsToken */; - } - return pos++, token = 44 /* CaretToken */; - case 123 /* openBrace */: - return pos++, token = 13 /* OpenBraceToken */; - case 124 /* bar */: - if (text.charCodeAt(pos + 1) === 124 /* bar */) { - return pos += 2, token = 48 /* BarBarToken */; - } - if (text.charCodeAt(pos + 1) === 61 /* equals */) { - return pos += 2, token = 61 /* BarEqualsToken */; - } - return pos++, token = 43 /* BarToken */; - case 125 /* closeBrace */: - return pos++, token = 14 /* CloseBraceToken */; - case 126 /* tilde */: - return pos++, token = 46 /* TildeToken */; - case 92 /* backslash */: - var ch = peekUnicodeEscape(); - if (ch >= 0 && isIdentifierStart(ch)) { - pos += 6; - tokenValue = String.fromCharCode(ch) + scanIdentifierParts(); - return token = getIdentifierToken(); - } - error(ts.Diagnostics.Invalid_character); - return pos++, token = 0 /* Unknown */; - default: - if (isIdentifierStart(ch)) { - pos++; - while (pos < len && isIdentifierPart(ch = text.charCodeAt(pos))) - pos++; - tokenValue = text.substring(tokenPos, pos); - if (ch === 92 /* backslash */) { - 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 /* Unknown */; - } - } - } - function reScanGreaterToken() { - if (token === 24 /* GreaterThanToken */) { - if (text.charCodeAt(pos) === 62 /* greaterThan */) { - if (text.charCodeAt(pos + 1) === 62 /* greaterThan */) { - if (text.charCodeAt(pos + 2) === 61 /* equals */) { - return pos += 3, token = 59 /* GreaterThanGreaterThanGreaterThanEqualsToken */; - } - return pos += 2, token = 41 /* GreaterThanGreaterThanGreaterThanToken */; - } - if (text.charCodeAt(pos + 1) === 61 /* equals */) { - return pos += 2, token = 58 /* GreaterThanGreaterThanEqualsToken */; - } - return pos++, token = 40 /* GreaterThanGreaterThanToken */; - } - if (text.charCodeAt(pos) === 61 /* equals */) { - return pos++, token = 26 /* GreaterThanEqualsToken */; - } - } - return token; - } - function reScanSlashToken() { - if (token === 35 /* SlashToken */ || token === 55 /* SlashEqualsToken */) { - var p = tokenPos + 1; - var inEscape = false; - var inCharacterClass = false; - while (true) { - if (p >= len) { - error(ts.Diagnostics.Unterminated_regular_expression_literal); - break; - } - var ch = text.charCodeAt(p); - if (isLineBreak(ch)) { - error(ts.Diagnostics.Unterminated_regular_expression_literal); - break; - } - if (inEscape) { - inEscape = false; - } - else if (ch === 47 /* slash */ && !inCharacterClass) { - p++; - break; - } - else if (ch === 91 /* openBracket */) { - inCharacterClass = true; - } - else if (ch === 92 /* backslash */) { - inEscape = true; - } - else if (ch === 93 /* closeBracket */) { - inCharacterClass = false; - } - p++; - } - while (p < len && isIdentifierPart(text.charCodeAt(p))) { - p++; - } - pos = p; - tokenValue = text.substring(tokenPos, pos); - token = 8 /* RegularExpressionLiteral */; - } - return token; - } - function reScanTemplateToken() { - ts.Debug.assert(token === 14 /* CloseBraceToken */, "'reScanTemplateToken' should only be called on a '}'"); - pos = tokenPos; - return token = scanTemplateAndSetTokenValue(); - } - function tryScan(callback) { - var savePos = pos; - var saveStartPos = startPos; - var saveTokenPos = tokenPos; - var saveToken = token; - var saveTokenValue = tokenValue; - var savePrecedingLineBreak = precedingLineBreak; - var result = callback(); - if (!result) { - pos = savePos; - startPos = saveStartPos; - tokenPos = saveTokenPos; - token = saveToken; - tokenValue = saveTokenValue; - precedingLineBreak = savePrecedingLineBreak; - } - return result; - } - function setText(newText) { - text = newText || ""; - len = text.length; - setTextPos(0); - } - function setTextPos(textPos) { - pos = textPos; - startPos = textPos; - tokenPos = textPos; - token = 0 /* Unknown */; - 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; }, - hasPrecedingLineBreak: function () { return precedingLineBreak; }, - isIdentifier: function () { return token === 63 /* Identifier */ || token > 99 /* LastReservedWord */; }, - isReservedWord: function () { return token >= 64 /* FirstReservedWord */ && token <= 99 /* LastReservedWord */; }, - reScanGreaterToken: reScanGreaterToken, - reScanSlashToken: reScanSlashToken, - reScanTemplateToken: reScanTemplateToken, - scan: scan, - setText: setText, - setTextPos: setTextPos, - tryScan: tryScan - }; - } - ts.createScanner = createScanner; -})(ts || (ts = {})); -var ts; -(function (ts) { - var nodeConstructors = new Array(200 /* Count */); - function getNodeConstructor(kind) { - return nodeConstructors[kind] || (nodeConstructors[kind] = ts.objectAllocator.getNodeConstructor(kind)); - } - ts.getNodeConstructor = getNodeConstructor; - function createRootNode(kind, pos, end, flags) { - var node = new (getNodeConstructor(kind))(); - node.pos = pos; - node.end = end; - node.flags = flags; - return node; - } - function getSourceFileOfNode(node) { - while (node && node.kind !== 197 /* SourceFile */) - node = node.parent; - return node; - } - ts.getSourceFileOfNode = getSourceFileOfNode; - function nodePosToString(node) { - var file = getSourceFileOfNode(node); - var loc = file.getLineAndCharacterFromPosition(node.pos); - return file.filename + "(" + loc.line + "," + loc.character + ")"; - } - ts.nodePosToString = nodePosToString; - function getStartPosOfNode(node) { - return node.pos; - } - ts.getStartPosOfNode = getStartPosOfNode; - function getTokenPosOfNode(node, sourceFile) { - if (node.pos === node.end) { - return node.pos; - } - return ts.skipTrivia((sourceFile || getSourceFileOfNode(node)).text, node.pos); - } - ts.getTokenPosOfNode = getTokenPosOfNode; - function getSourceTextOfNodeFromSourceFile(sourceFile, node) { - var text = sourceFile.text; - return text.substring(ts.skipTrivia(text, node.pos), node.end); - } - ts.getSourceTextOfNodeFromSourceFile = getSourceTextOfNodeFromSourceFile; - function getTextOfNodeFromSourceText(sourceText, node) { - 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 declarationNameToString(name) { - return name.kind === 120 /* Missing */ ? "(Missing)" : getTextOfNode(name); - } - ts.declarationNameToString = declarationNameToString; - function createDiagnosticForNode(node, message, arg0, arg1, arg2) { - node = getErrorSpanForNode(node); - var file = getSourceFileOfNode(node); - var start = node.kind === 120 /* Missing */ ? node.pos : ts.skipTrivia(file.text, node.pos); - var length = node.end - start; - return ts.createFileDiagnostic(file, start, length, message, arg0, arg1, arg2); - } - ts.createDiagnosticForNode = createDiagnosticForNode; - function createDiagnosticForNodeFromMessageChain(node, messageChain, newLine) { - node = getErrorSpanForNode(node); - var file = getSourceFileOfNode(node); - var start = ts.skipTrivia(file.text, node.pos); - var length = node.end - start; - return ts.flattenDiagnosticChain(file, start, length, messageChain, newLine); - } - ts.createDiagnosticForNodeFromMessageChain = createDiagnosticForNodeFromMessageChain; - function getErrorSpanForNode(node) { - var errorSpan; - switch (node.kind) { - case 185 /* VariableDeclaration */: - case 188 /* ClassDeclaration */: - case 189 /* InterfaceDeclaration */: - case 192 /* ModuleDeclaration */: - case 191 /* EnumDeclaration */: - case 196 /* EnumMember */: - errorSpan = node.name; - break; - } - return errorSpan && errorSpan.pos < errorSpan.end ? errorSpan : node; - } - ts.getErrorSpanForNode = getErrorSpanForNode; - function isExternalModule(file) { - return file.externalModuleIndicator !== undefined; - } - ts.isExternalModule = isExternalModule; - function isDeclarationFile(file) { - return (file.flags & 1024 /* DeclarationFile */) !== 0; - } - ts.isDeclarationFile = isDeclarationFile; - function isConstEnumDeclaration(node) { - return node.kind === 191 /* EnumDeclaration */ && isConst(node); - } - ts.isConstEnumDeclaration = isConstEnumDeclaration; - function isConst(node) { - return !!(node.flags & 4096 /* Const */); - } - ts.isConst = isConst; - function isLet(node) { - return !!(node.flags & 2048 /* Let */); - } - ts.isLet = isLet; - function isPrologueDirective(node) { - return node.kind === 165 /* ExpressionStatement */ && node.expression.kind === 7 /* StringLiteral */; - } - ts.isPrologueDirective = isPrologueDirective; - function isEvalOrArgumentsIdentifier(node) { - return node.kind === 63 /* Identifier */ && node.text && (node.text === "eval" || node.text === "arguments"); - } - function isUseStrictPrologueDirective(node) { - ts.Debug.assert(isPrologueDirective(node)); - return node.expression.text === "use strict"; - } - function getLeadingCommentRangesOfNode(node, sourceFileOfNode) { - sourceFileOfNode = sourceFileOfNode || getSourceFileOfNode(node); - if (node.kind === 123 /* Parameter */ || node.kind === 122 /* TypeParameter */) { - 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), function (comment) { return isJsDocComment(comment); }); - function isJsDocComment(comment) { - return sourceFileOfNode.text.charCodeAt(comment.pos + 1) === 42 /* asterisk */ && sourceFileOfNode.text.charCodeAt(comment.pos + 2) === 42 /* asterisk */ && sourceFileOfNode.text.charCodeAt(comment.pos + 3) !== 47 /* slash */; - } - } - ts.getJsDocComments = getJsDocComments; - ts.fullTripleSlashReferencePathRegEx = /^(\/\/\/\s*/; - function forEachChild(node, cbNode, cbNodes) { - function child(node) { - if (node) - return cbNode(node); - } - function children(nodes) { - if (nodes) { - if (cbNodes) - return cbNodes(nodes); - var result; - for (var i = 0, len = nodes.length; i < len; i++) { - if (result = cbNode(nodes[i])) - break; - } - return result; - } - } - if (!node) - return; - switch (node.kind) { - case 121 /* QualifiedName */: - return child(node.left) || child(node.right); - case 122 /* TypeParameter */: - return child(node.name) || child(node.constraint); - case 123 /* Parameter */: - return child(node.name) || child(node.type) || child(node.initializer); - case 124 /* Property */: - case 143 /* PropertyAssignment */: - case 144 /* ShorthandPropertyAssignment */: - return child(node.name) || child(node.type) || child(node.initializer); - case 133 /* FunctionType */: - case 134 /* ConstructorType */: - case 129 /* CallSignature */: - case 130 /* ConstructSignature */: - case 131 /* IndexSignature */: - return children(node.typeParameters) || children(node.parameters) || child(node.type); - case 125 /* Method */: - case 126 /* Constructor */: - case 127 /* GetAccessor */: - case 128 /* SetAccessor */: - case 152 /* FunctionExpression */: - case 186 /* FunctionDeclaration */: - case 153 /* ArrowFunction */: - return child(node.name) || children(node.typeParameters) || children(node.parameters) || child(node.type) || child(node.body); - case 132 /* TypeReference */: - return child(node.typeName) || children(node.typeArguments); - case 135 /* TypeQuery */: - return child(node.exprName); - case 136 /* TypeLiteral */: - return children(node.members); - case 137 /* ArrayType */: - return child(node.elementType); - case 138 /* TupleType */: - return children(node.elementTypes); - case 139 /* UnionType */: - return children(node.types); - case 140 /* ParenType */: - return child(node.type); - case 141 /* ArrayLiteral */: - return children(node.elements); - case 142 /* ObjectLiteral */: - return children(node.properties); - case 145 /* PropertyAccess */: - return child(node.left) || child(node.right); - case 146 /* IndexedAccess */: - return child(node.object) || child(node.index); - case 147 /* CallExpression */: - case 148 /* NewExpression */: - return child(node.func) || children(node.typeArguments) || children(node.arguments); - case 149 /* TaggedTemplateExpression */: - return child(node.tag) || child(node.template); - case 150 /* TypeAssertion */: - return child(node.type) || child(node.operand); - case 151 /* ParenExpression */: - return child(node.expression); - case 154 /* PrefixOperator */: - case 155 /* PostfixOperator */: - return child(node.operand); - case 156 /* BinaryExpression */: - return child(node.left) || child(node.right); - case 157 /* ConditionalExpression */: - return child(node.condition) || child(node.whenTrue) || child(node.whenFalse); - case 162 /* Block */: - case 181 /* TryBlock */: - case 183 /* FinallyBlock */: - case 187 /* FunctionBlock */: - case 193 /* ModuleBlock */: - case 197 /* SourceFile */: - return children(node.statements); - case 163 /* VariableStatement */: - return children(node.declarations); - case 165 /* ExpressionStatement */: - return child(node.expression); - case 166 /* IfStatement */: - return child(node.expression) || child(node.thenStatement) || child(node.elseStatement); - case 167 /* DoStatement */: - return child(node.statement) || child(node.expression); - case 168 /* WhileStatement */: - return child(node.expression) || child(node.statement); - case 169 /* ForStatement */: - return children(node.declarations) || child(node.initializer) || child(node.condition) || child(node.iterator) || child(node.statement); - case 170 /* ForInStatement */: - return children(node.declarations) || child(node.variable) || child(node.expression) || child(node.statement); - case 171 /* ContinueStatement */: - case 172 /* BreakStatement */: - return child(node.label); - case 173 /* ReturnStatement */: - return child(node.expression); - case 174 /* WithStatement */: - return child(node.expression) || child(node.statement); - case 175 /* SwitchStatement */: - return child(node.expression) || children(node.clauses); - case 176 /* CaseClause */: - case 177 /* DefaultClause */: - return child(node.expression) || children(node.statements); - case 178 /* LabeledStatement */: - return child(node.label) || child(node.statement); - case 179 /* ThrowStatement */: - return child(node.expression); - case 180 /* TryStatement */: - return child(node.tryBlock) || child(node.catchBlock) || child(node.finallyBlock); - case 182 /* CatchBlock */: - return child(node.variable) || children(node.statements); - case 185 /* VariableDeclaration */: - return child(node.name) || child(node.type) || child(node.initializer); - case 188 /* ClassDeclaration */: - return child(node.name) || children(node.typeParameters) || child(node.baseType) || children(node.implementedTypes) || children(node.members); - case 189 /* InterfaceDeclaration */: - return child(node.name) || children(node.typeParameters) || children(node.baseTypes) || children(node.members); - case 190 /* TypeAliasDeclaration */: - return child(node.name) || child(node.type); - case 191 /* EnumDeclaration */: - return child(node.name) || children(node.members); - case 196 /* EnumMember */: - return child(node.name) || child(node.initializer); - case 192 /* ModuleDeclaration */: - return child(node.name) || child(node.body); - case 194 /* ImportDeclaration */: - return child(node.name) || child(node.entityName) || child(node.externalModuleName); - case 195 /* ExportAssignment */: - return child(node.exportName); - case 158 /* TemplateExpression */: - return child(node.head) || children(node.templateSpans); - case 159 /* TemplateSpan */: - return child(node.expression) || child(node.literal); - } - } - ts.forEachChild = forEachChild; - function forEachReturnStatement(body, visitor) { - return traverse(body); - function traverse(node) { - switch (node.kind) { - case 173 /* ReturnStatement */: - return visitor(node); - case 162 /* Block */: - case 187 /* FunctionBlock */: - case 166 /* IfStatement */: - case 167 /* DoStatement */: - case 168 /* WhileStatement */: - case 169 /* ForStatement */: - case 170 /* ForInStatement */: - case 174 /* WithStatement */: - case 175 /* SwitchStatement */: - case 176 /* CaseClause */: - case 177 /* DefaultClause */: - case 178 /* LabeledStatement */: - case 180 /* TryStatement */: - case 181 /* TryBlock */: - case 182 /* CatchBlock */: - case 183 /* FinallyBlock */: - return forEachChild(node, traverse); - } - } - } - ts.forEachReturnStatement = forEachReturnStatement; - function isAnyFunction(node) { - if (node) { - switch (node.kind) { - case 152 /* FunctionExpression */: - case 186 /* FunctionDeclaration */: - case 153 /* ArrowFunction */: - case 125 /* Method */: - case 127 /* GetAccessor */: - case 128 /* SetAccessor */: - case 126 /* Constructor */: - return true; - } - } - return false; - } - ts.isAnyFunction = isAnyFunction; - function getContainingFunction(node) { - while (true) { - node = node.parent; - if (!node || isAnyFunction(node)) { - return node; - } - } - } - ts.getContainingFunction = getContainingFunction; - function getThisContainer(node, includeArrowFunctions) { - while (true) { - node = node.parent; - if (!node) { - return undefined; - } - switch (node.kind) { - case 153 /* ArrowFunction */: - if (!includeArrowFunctions) { - continue; - } - case 186 /* FunctionDeclaration */: - case 152 /* FunctionExpression */: - case 192 /* ModuleDeclaration */: - case 124 /* Property */: - case 125 /* Method */: - case 126 /* Constructor */: - case 127 /* GetAccessor */: - case 128 /* SetAccessor */: - case 191 /* EnumDeclaration */: - case 197 /* SourceFile */: - return node; - } - } - } - ts.getThisContainer = getThisContainer; - function getSuperContainer(node) { - while (true) { - node = node.parent; - if (!node) { - return undefined; - } - switch (node.kind) { - case 124 /* Property */: - case 125 /* Method */: - case 126 /* Constructor */: - case 127 /* GetAccessor */: - case 128 /* SetAccessor */: - return node; - } - } - } - ts.getSuperContainer = getSuperContainer; - function getInvokedExpression(node) { - if (node.kind === 149 /* TaggedTemplateExpression */) { - return node.tag; - } - return node.func; - } - ts.getInvokedExpression = getInvokedExpression; - function isExpression(node) { - switch (node.kind) { - case 91 /* ThisKeyword */: - case 89 /* SuperKeyword */: - case 87 /* NullKeyword */: - case 93 /* TrueKeyword */: - case 78 /* FalseKeyword */: - case 8 /* RegularExpressionLiteral */: - case 141 /* ArrayLiteral */: - case 142 /* ObjectLiteral */: - case 145 /* PropertyAccess */: - case 146 /* IndexedAccess */: - case 147 /* CallExpression */: - case 148 /* NewExpression */: - case 149 /* TaggedTemplateExpression */: - case 150 /* TypeAssertion */: - case 151 /* ParenExpression */: - case 152 /* FunctionExpression */: - case 153 /* ArrowFunction */: - case 154 /* PrefixOperator */: - case 155 /* PostfixOperator */: - case 156 /* BinaryExpression */: - case 157 /* ConditionalExpression */: - case 158 /* TemplateExpression */: - case 9 /* NoSubstitutionTemplateLiteral */: - case 161 /* OmittedExpression */: - return true; - case 121 /* QualifiedName */: - while (node.parent.kind === 121 /* QualifiedName */) - node = node.parent; - return node.parent.kind === 135 /* TypeQuery */; - case 63 /* Identifier */: - if (node.parent.kind === 135 /* TypeQuery */) { - return true; - } - case 6 /* NumericLiteral */: - case 7 /* StringLiteral */: - var parent = node.parent; - switch (parent.kind) { - case 185 /* VariableDeclaration */: - case 123 /* Parameter */: - case 124 /* Property */: - case 196 /* EnumMember */: - case 143 /* PropertyAssignment */: - return parent.initializer === node; - case 165 /* ExpressionStatement */: - case 166 /* IfStatement */: - case 167 /* DoStatement */: - case 168 /* WhileStatement */: - case 173 /* ReturnStatement */: - case 174 /* WithStatement */: - case 175 /* SwitchStatement */: - case 176 /* CaseClause */: - case 179 /* ThrowStatement */: - case 175 /* SwitchStatement */: - return parent.expression === node; - case 169 /* ForStatement */: - return parent.initializer === node || parent.condition === node || parent.iterator === node; - case 170 /* ForInStatement */: - return parent.variable === node || parent.expression === node; - case 150 /* TypeAssertion */: - return node === parent.operand; - case 159 /* TemplateSpan */: - return node === parent.expression; - default: - if (isExpression(parent)) { - return true; - } - } - } - return false; - } - ts.isExpression = isExpression; - function hasRestParameters(s) { - return s.parameters.length > 0 && (s.parameters[s.parameters.length - 1].flags & 8 /* Rest */) !== 0; - } - ts.hasRestParameters = hasRestParameters; - function isLiteralKind(kind) { - return 6 /* FirstLiteralToken */ <= kind && kind <= 9 /* LastLiteralToken */; - } - ts.isLiteralKind = isLiteralKind; - function isTextualLiteralKind(kind) { - return kind === 7 /* StringLiteral */ || kind === 9 /* NoSubstitutionTemplateLiteral */; - } - ts.isTextualLiteralKind = isTextualLiteralKind; - function isTemplateLiteralKind(kind) { - return 9 /* FirstTemplateToken */ <= kind && kind <= 12 /* LastTemplateToken */; - } - ts.isTemplateLiteralKind = isTemplateLiteralKind; - function isInAmbientContext(node) { - while (node) { - if (node.flags & (2 /* Ambient */ | 1024 /* DeclarationFile */)) - return true; - node = node.parent; - } - return false; - } - ts.isInAmbientContext = isInAmbientContext; - function isDeclaration(node) { - switch (node.kind) { - case 122 /* TypeParameter */: - case 123 /* Parameter */: - case 185 /* VariableDeclaration */: - case 124 /* Property */: - case 143 /* PropertyAssignment */: - case 144 /* ShorthandPropertyAssignment */: - case 196 /* EnumMember */: - case 125 /* Method */: - case 186 /* FunctionDeclaration */: - case 127 /* GetAccessor */: - case 128 /* SetAccessor */: - case 188 /* ClassDeclaration */: - case 189 /* InterfaceDeclaration */: - case 190 /* TypeAliasDeclaration */: - case 191 /* EnumDeclaration */: - case 192 /* ModuleDeclaration */: - case 194 /* ImportDeclaration */: - return true; - } - return false; - } - ts.isDeclaration = isDeclaration; - function isStatement(n) { - switch (n.kind) { - case 172 /* BreakStatement */: - case 171 /* ContinueStatement */: - case 184 /* DebuggerStatement */: - case 167 /* DoStatement */: - case 165 /* ExpressionStatement */: - case 164 /* EmptyStatement */: - case 170 /* ForInStatement */: - case 169 /* ForStatement */: - case 166 /* IfStatement */: - case 178 /* LabeledStatement */: - case 173 /* ReturnStatement */: - case 175 /* SwitchStatement */: - case 92 /* ThrowKeyword */: - case 180 /* TryStatement */: - case 163 /* VariableStatement */: - case 168 /* WhileStatement */: - case 174 /* WithStatement */: - case 195 /* ExportAssignment */: - return true; - default: - return false; - } - } - ts.isStatement = isStatement; - function isDeclarationOrFunctionExpressionOrCatchVariableName(name) { - if (name.kind !== 63 /* Identifier */ && name.kind !== 7 /* StringLiteral */ && name.kind !== 6 /* NumericLiteral */) { - return false; - } - var parent = name.parent; - if (isDeclaration(parent) || parent.kind === 152 /* FunctionExpression */) { - return parent.name === name; - } - if (parent.kind === 182 /* CatchBlock */) { - return parent.variable === name; - } - return false; - } - ts.isDeclarationOrFunctionExpressionOrCatchVariableName = isDeclarationOrFunctionExpressionOrCatchVariableName; - function tryResolveScriptReference(program, sourceFile, reference) { - if (!program.getCompilerOptions().noResolve) { - var referenceFileName = ts.isRootedDiskPath(reference.filename) ? reference.filename : ts.combinePaths(ts.getDirectoryPath(sourceFile.filename), reference.filename); - referenceFileName = ts.getNormalizedAbsolutePath(referenceFileName, program.getCompilerHost().getCurrentDirectory()); - return program.getSourceFile(referenceFileName); - } - } - ts.tryResolveScriptReference = tryResolveScriptReference; - function getAncestor(node, kind) { - switch (kind) { - case 188 /* ClassDeclaration */: - while (node) { - switch (node.kind) { - case 188 /* ClassDeclaration */: - return node; - case 191 /* EnumDeclaration */: - case 189 /* InterfaceDeclaration */: - case 190 /* TypeAliasDeclaration */: - case 192 /* ModuleDeclaration */: - case 194 /* ImportDeclaration */: - return undefined; - default: - node = node.parent; - continue; - } - } - break; - default: - while (node) { - if (node.kind === kind) { - return node; - } - node = node.parent; - } - break; - } - return undefined; - } - ts.getAncestor = getAncestor; - 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["BaseTypeReferences"] = 8] = "BaseTypeReferences"; - ParsingContext[ParsingContext["VariableDeclarations"] = 9] = "VariableDeclarations"; - ParsingContext[ParsingContext["ArgumentExpressions"] = 10] = "ArgumentExpressions"; - ParsingContext[ParsingContext["ObjectLiteralMembers"] = 11] = "ObjectLiteralMembers"; - ParsingContext[ParsingContext["ArrayLiteralMembers"] = 12] = "ArrayLiteralMembers"; - ParsingContext[ParsingContext["Parameters"] = 13] = "Parameters"; - ParsingContext[ParsingContext["TypeParameters"] = 14] = "TypeParameters"; - ParsingContext[ParsingContext["TypeArguments"] = 15] = "TypeArguments"; - ParsingContext[ParsingContext["TupleElementTypes"] = 16] = "TupleElementTypes"; - ParsingContext[ParsingContext["Count"] = 17] = "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 /* SourceElements */: return ts.Diagnostics.Declaration_or_statement_expected; - case 1 /* ModuleElements */: return ts.Diagnostics.Declaration_or_statement_expected; - case 2 /* BlockStatements */: return ts.Diagnostics.Statement_expected; - case 3 /* SwitchClauses */: return ts.Diagnostics.case_or_default_expected; - case 4 /* SwitchClauseStatements */: return ts.Diagnostics.Statement_expected; - case 5 /* TypeMembers */: return ts.Diagnostics.Property_or_signature_expected; - case 6 /* ClassMembers */: return ts.Diagnostics.Unexpected_token_A_constructor_method_accessor_or_property_was_expected; - case 7 /* EnumMembers */: return ts.Diagnostics.Enum_member_expected; - case 8 /* BaseTypeReferences */: return ts.Diagnostics.Type_reference_expected; - case 9 /* VariableDeclarations */: return ts.Diagnostics.Variable_declaration_expected; - case 10 /* ArgumentExpressions */: return ts.Diagnostics.Argument_expression_expected; - case 11 /* ObjectLiteralMembers */: return ts.Diagnostics.Property_assignment_expected; - case 12 /* ArrayLiteralMembers */: return ts.Diagnostics.Expression_or_comma_expected; - case 13 /* Parameters */: return ts.Diagnostics.Parameter_declaration_expected; - case 14 /* TypeParameters */: return ts.Diagnostics.Type_parameter_declaration_expected; - case 15 /* TypeArguments */: return ts.Diagnostics.Type_argument_expected; - case 16 /* TupleElementTypes */: return ts.Diagnostics.Type_expected; - } - } - ; - var LookAheadMode; - (function (LookAheadMode) { - LookAheadMode[LookAheadMode["NotLookingAhead"] = 0] = "NotLookingAhead"; - LookAheadMode[LookAheadMode["NoErrorYet"] = 1] = "NoErrorYet"; - LookAheadMode[LookAheadMode["Error"] = 2] = "Error"; - })(LookAheadMode || (LookAheadMode = {})); - 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 { - diagnostic: ts.Diagnostics.Invalid_reference_directive_syntax, - isNoDefaultLib: false - }; - } - } - } - return undefined; - } - ts.getFileReferenceFromReferencePath = getFileReferenceFromReferencePath; - function isKeyword(token) { - return 64 /* FirstKeyword */ <= token && token <= 119 /* LastKeyword */; - } - ts.isKeyword = isKeyword; - function isTrivia(token) { - return 2 /* FirstTriviaToken */ <= token && token <= 5 /* LastTriviaToken */; - } - ts.isTrivia = isTrivia; - function isUnterminatedTemplateEnd(node) { - ts.Debug.assert(isTemplateLiteralKind(node.kind)); - var sourceText = getSourceFileOfNode(node).text; - if (node.end !== sourceText.length) { - return false; - } - if (node.kind !== 12 /* TemplateTail */ && node.kind !== 9 /* NoSubstitutionTemplateLiteral */) { - return false; - } - return sourceText.charCodeAt(node.end - 1) !== 96 /* backtick */ || node.text.length === 0; - } - ts.isUnterminatedTemplateEnd = isUnterminatedTemplateEnd; - function isModifier(token) { - switch (token) { - case 106 /* PublicKeyword */: - case 104 /* PrivateKeyword */: - case 105 /* ProtectedKeyword */: - case 107 /* StaticKeyword */: - case 76 /* ExportKeyword */: - case 112 /* DeclareKeyword */: - return true; - } - return false; - } - ts.isModifier = isModifier; - function modifierToFlag(token) { - switch (token) { - case 107 /* StaticKeyword */: return 128 /* Static */; - case 106 /* PublicKeyword */: return 16 /* Public */; - case 105 /* ProtectedKeyword */: return 64 /* Protected */; - case 104 /* PrivateKeyword */: return 32 /* Private */; - case 76 /* ExportKeyword */: return 1 /* Export */; - case 112 /* DeclareKeyword */: return 2 /* Ambient */; - } - return 0; - } - function createSourceFile(filename, sourceText, languageVersion, version, isOpen) { - if (isOpen === void 0) { isOpen = false; } - var file; - var scanner; - var token; - var parsingContext; - var commentRanges; - var identifiers = {}; - var identifierCount = 0; - var nodeCount = 0; - var lineStarts; - var lookAheadMode = 0 /* NotLookingAhead */; - var contextFlags = 0; - function setContextFlag(val, flag) { - if (val) { - contextFlags |= flag; - } - else { - contextFlags &= ~flag; - } - } - function setStrictModeContext(val) { - setContextFlag(val, 1 /* StrictMode */); - } - function setDisallowInContext(val) { - setContextFlag(val, 2 /* DisallowIn */); - } - function setYieldContext(val) { - setContextFlag(val, 4 /* Yield */); - } - function setGeneratorParameterContext(val) { - setContextFlag(val, 8 /* GeneratorParameter */); - } - function allowInAnd(func) { - if (contextFlags & 2 /* DisallowIn */) { - setDisallowInContext(false); - var result = func(); - setDisallowInContext(true); - return result; - } - return func(); - } - function disallowInAnd(func) { - if (contextFlags & 2 /* DisallowIn */) { - return func(); - } - setDisallowInContext(true); - var result = func(); - setDisallowInContext(false); - return result; - } - function doInYieldContext(func) { - if (contextFlags & 4 /* Yield */) { - return func(); - } - setYieldContext(true); - var result = func(); - setYieldContext(false); - return result; - } - function doOutsideOfYieldContext(func) { - if (contextFlags & 4 /* Yield */) { - setYieldContext(false); - var result = func(); - setYieldContext(true); - return result; - } - return func(); - } - function inYieldContext() { - return (contextFlags & 4 /* Yield */) !== 0; - } - function inStrictModeContext() { - return (contextFlags & 1 /* StrictMode */) !== 0; - } - function inGeneratorParameterContext() { - return (contextFlags & 8 /* GeneratorParameter */) !== 0; - } - function inDisallowInContext() { - return (contextFlags & 2 /* DisallowIn */) !== 0; - } - function getLineStarts() { - return lineStarts || (lineStarts = ts.computeLineStarts(sourceText)); - } - function getLineAndCharacterFromSourcePosition(position) { - return ts.getLineAndCharacterOfPosition(getLineStarts(), position); - } - function getPositionFromSourceLineAndCharacter(line, character) { - return ts.getPositionFromLineAndCharacter(getLineStarts(), line, character); - } - function error(message, arg0, arg1, arg2) { - var start = scanner.getTokenPos(); - var length = scanner.getTextPos() - start; - errorAtPos(start, length, message, arg0, arg1, arg2); - } - function errorAtPos(start, length, message, arg0, arg1, arg2) { - var lastErrorPos = file.parseDiagnostics.length ? file.parseDiagnostics[file.parseDiagnostics.length - 1].start : -1; - if (start !== lastErrorPos) { - var diagnostic = ts.createFileDiagnostic(file, start, length, message, arg0, arg1, arg2); - diagnostic.isParseError = true; - file.parseDiagnostics.push(diagnostic); - } - if (lookAheadMode === 1 /* NoErrorYet */) { - lookAheadMode = 2 /* Error */; - } - } - function scanError(message) { - var pos = scanner.getTextPos(); - errorAtPos(pos, 0, message); - } - function onComment(pos, end) { - if (commentRanges) - commentRanges.push({ pos: pos, end: end }); - } - 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 lookAheadHelper(callback, alwaysResetState) { - var saveToken = token; - var saveSyntacticErrorsLength = file.parseDiagnostics.length; - var saveLookAheadMode = lookAheadMode; - lookAheadMode = 1 /* NoErrorYet */; - var result = callback(); - ts.Debug.assert(lookAheadMode === 2 /* Error */ || lookAheadMode === 1 /* NoErrorYet */); - if (lookAheadMode === 2 /* Error */) { - result = undefined; - } - lookAheadMode = saveLookAheadMode; - if (!result || alwaysResetState) { - token = saveToken; - file.parseDiagnostics.length = saveSyntacticErrorsLength; - } - return result; - } - function lookAhead(callback) { - var result; - scanner.tryScan(function () { - result = lookAheadHelper(callback, true); - return false; - }); - return result; - } - function tryParse(callback) { - return scanner.tryScan(function () { return lookAheadHelper(callback, false); }); - } - function isIdentifier() { - if (token === 63 /* Identifier */) { - return true; - } - if (token === 108 /* YieldKeyword */ && inYieldContext()) { - return false; - } - return inStrictModeContext() ? token > 108 /* LastFutureReservedWord */ : token > 99 /* LastReservedWord */; - } - function parseExpected(t) { - if (token === t) { - nextToken(); - return true; - } - error(ts.Diagnostics._0_expected, ts.tokenToString(t)); - return false; - } - function parseOptional(t) { - if (token === t) { - nextToken(); - return true; - } - return false; - } - function canParseSemicolon() { - if (token === 21 /* SemicolonToken */) { - return true; - } - return token === 14 /* CloseBraceToken */ || token === 1 /* EndOfFileToken */ || scanner.hasPrecedingLineBreak(); - } - function parseSemicolon() { - if (canParseSemicolon()) { - if (token === 21 /* SemicolonToken */) { - nextToken(); - } - } - else { - error(ts.Diagnostics._0_expected, ";"); - } - } - 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; - } - return node; - } - function createMissingNode(pos) { - return createNode(120 /* Missing */, pos); - } - function internIdentifier(text) { - text = escapeIdentifier(text); - return ts.hasProperty(identifiers, text) ? identifiers[text] : (identifiers[text] = text); - } - function createIdentifier(isIdentifier) { - identifierCount++; - if (isIdentifier) { - var node = createNode(63 /* Identifier */); - node.text = internIdentifier(scanner.getTokenValue()); - nextToken(); - return finishNode(node); - } - error(ts.Diagnostics.Identifier_expected); - var node = createMissingNode(); - node.text = ""; - return node; - } - function parseIdentifier() { - return createIdentifier(isIdentifier()); - } - function parseIdentifierName() { - return createIdentifier(token >= 63 /* Identifier */); - } - function isPropertyName() { - return token >= 63 /* Identifier */ || token === 7 /* StringLiteral */ || token === 6 /* NumericLiteral */; - } - function parsePropertyName() { - if (token === 7 /* StringLiteral */ || token === 6 /* NumericLiteral */) { - return parseLiteralNode(true); - } - return parseIdentifierName(); - } - function parseContextualModifier(t) { - return token === t && tryParse(function () { - nextToken(); - return token === 17 /* OpenBracketToken */ || isPropertyName(); - }); - } - function parseAnyContextualModifier() { - return isModifier(token) && tryParse(function () { - nextToken(); - return token === 17 /* OpenBracketToken */ || token === 34 /* AsteriskToken */ || isPropertyName(); - }); - } - function isListElement(kind, inErrorRecovery) { - switch (kind) { - case 0 /* SourceElements */: - case 1 /* ModuleElements */: - return isSourceElement(inErrorRecovery); - case 2 /* BlockStatements */: - case 4 /* SwitchClauseStatements */: - return isStatement(inErrorRecovery); - case 3 /* SwitchClauses */: - return token === 65 /* CaseKeyword */ || token === 71 /* DefaultKeyword */; - case 5 /* TypeMembers */: - return isStartOfTypeMember(); - case 6 /* ClassMembers */: - return lookAhead(isClassMemberStart); - case 7 /* EnumMembers */: - return isPropertyName(); - case 11 /* ObjectLiteralMembers */: - return token === 34 /* AsteriskToken */ || isPropertyName(); - case 8 /* BaseTypeReferences */: - return isIdentifier() && ((token !== 77 /* ExtendsKeyword */ && token !== 100 /* ImplementsKeyword */) || !lookAhead(function () { return (nextToken(), isIdentifier()); })); - case 9 /* VariableDeclarations */: - case 14 /* TypeParameters */: - return isIdentifier(); - case 10 /* ArgumentExpressions */: - return token === 22 /* CommaToken */ || isStartOfExpression(); - case 12 /* ArrayLiteralMembers */: - return token === 22 /* CommaToken */ || isStartOfExpression(); - case 13 /* Parameters */: - return isStartOfParameter(); - case 15 /* TypeArguments */: - case 16 /* TupleElementTypes */: - return token === 22 /* CommaToken */ || isStartOfType(); - } - ts.Debug.fail("Non-exhaustive case in 'isListElement'."); - } - function isListTerminator(kind) { - if (token === 1 /* EndOfFileToken */) { - return true; - } - switch (kind) { - case 1 /* ModuleElements */: - case 2 /* BlockStatements */: - case 3 /* SwitchClauses */: - case 5 /* TypeMembers */: - case 6 /* ClassMembers */: - case 7 /* EnumMembers */: - case 11 /* ObjectLiteralMembers */: - return token === 14 /* CloseBraceToken */; - case 4 /* SwitchClauseStatements */: - return token === 14 /* CloseBraceToken */ || token === 65 /* CaseKeyword */ || token === 71 /* DefaultKeyword */; - case 8 /* BaseTypeReferences */: - return token === 13 /* OpenBraceToken */ || token === 77 /* ExtendsKeyword */ || token === 100 /* ImplementsKeyword */; - case 9 /* VariableDeclarations */: - return isVariableDeclaratorListTerminator(); - case 14 /* TypeParameters */: - return token === 24 /* GreaterThanToken */ || token === 15 /* OpenParenToken */ || token === 13 /* OpenBraceToken */ || token === 77 /* ExtendsKeyword */ || token === 100 /* ImplementsKeyword */; - case 10 /* ArgumentExpressions */: - return token === 16 /* CloseParenToken */ || token === 21 /* SemicolonToken */; - case 12 /* ArrayLiteralMembers */: - case 16 /* TupleElementTypes */: - return token === 18 /* CloseBracketToken */; - case 13 /* Parameters */: - return token === 16 /* CloseParenToken */ || token === 18 /* CloseBracketToken */ || token === 13 /* OpenBraceToken */; - case 15 /* TypeArguments */: - return token === 24 /* GreaterThanToken */ || token === 15 /* OpenParenToken */; - } - } - function isVariableDeclaratorListTerminator() { - if (canParseSemicolon()) { - return true; - } - if (token === 84 /* InKeyword */) { - return true; - } - if (token === 31 /* EqualsGreaterThanToken */) { - return true; - } - return false; - } - function isInSomeParsingContext() { - for (var kind = 0; kind < 17 /* Count */; 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 = parseElement(); - result.push(element); - if (!inStrictModeContext() && checkForStrictMode) { - if (isPrologueDirective(element)) { - if (isUseStrictPrologueDirective(element)) { - setStrictModeContext(true); - checkForStrictMode = false; - } - } - else { - checkForStrictMode = false; - } - } - } - else { - error(parsingContextErrors(kind)); - if (isInSomeParsingContext()) { - break; - } - nextToken(); - } - } - setStrictModeContext(savedStrictModeContext); - result.end = getNodeEnd(); - parsingContext = saveParsingContext; - return result; - } - function parseDelimitedList(kind, parseElement) { - var saveParsingContext = parsingContext; - parsingContext |= 1 << kind; - var result = []; - result.pos = getNodePos(); - var commaStart = -1; - while (true) { - if (isListElement(kind, false)) { - result.push(parseElement()); - commaStart = scanner.getTokenPos(); - if (parseOptional(22 /* CommaToken */)) { - continue; - } - commaStart = -1; - if (isListTerminator(kind)) { - break; - } - error(ts.Diagnostics._0_expected, ","); - } - else if (isListTerminator(kind)) { - break; - } - else { - error(parsingContextErrors(kind)); - if (isInSomeParsingContext()) { - break; - } - nextToken(); - } - } - 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) { - var entity = parseIdentifier(); - while (parseOptional(19 /* DotToken */)) { - var node = createNode(121 /* QualifiedName */, entity.pos); - node.left = entity; - node.right = allowReservedWords ? parseIdentifierName() : parseIdentifier(); - entity = finishNode(node); - } - return entity; - } - function parseTokenNode() { - var node = createNode(token); - nextToken(); - return finishNode(node); - } - function parseTemplateExpression() { - var template = createNode(158 /* TemplateExpression */); - template.head = parseLiteralNode(); - ts.Debug.assert(template.head.kind === 10 /* TemplateHead */, "Template head has wrong token kind"); - var templateSpans = []; - templateSpans.pos = getNodePos(); - do { - templateSpans.push(parseTemplateSpan()); - } while (templateSpans[templateSpans.length - 1].literal.kind === 11 /* TemplateMiddle */); - templateSpans.end = getNodeEnd(); - template.templateSpans = templateSpans; - return finishNode(template); - } - function parseTemplateSpan() { - var span = createNode(159 /* TemplateSpan */); - span.expression = allowInAnd(parseExpression); - var literal; - if (token === 14 /* CloseBraceToken */) { - reScanTemplateToken(); - literal = parseLiteralNode(); - } - else { - error(ts.Diagnostics.Invalid_template_literal_expected); - literal = createMissingNode(); - literal.text = ""; - } - span.literal = literal; - return finishNode(span); - } - function parseLiteralNode(internName) { - var node = createNode(token); - var text = scanner.getTokenValue(); - node.text = internName ? internIdentifier(text) : text; - var tokenPos = scanner.getTokenPos(); - nextToken(); - finishNode(node); - if (node.kind === 6 /* NumericLiteral */ && sourceText.charCodeAt(tokenPos) === 48 /* _0 */ && ts.isOctalDigit(sourceText.charCodeAt(tokenPos + 1))) { - node.flags |= 8192 /* OctalLiteral */; - } - return node; - } - function parseStringLiteral() { - if (token === 7 /* StringLiteral */) { - return parseLiteralNode(true); - } - error(ts.Diagnostics.String_literal_expected); - return createMissingNode(); - } - function parseTypeReference() { - var node = createNode(132 /* TypeReference */); - node.typeName = parseEntityName(false); - if (!scanner.hasPrecedingLineBreak() && token === 23 /* LessThanToken */) { - node.typeArguments = parseTypeArguments(); - } - return finishNode(node); - } - function parseTypeQuery() { - var node = createNode(135 /* TypeQuery */); - parseExpected(95 /* TypeOfKeyword */); - node.exprName = parseEntityName(true); - return finishNode(node); - } - function parseTypeParameter() { - var node = createNode(122 /* TypeParameter */); - node.name = parseIdentifier(); - if (parseOptional(77 /* ExtendsKeyword */)) { - if (isStartOfType() || !isStartOfExpression()) { - node.constraint = parseType(); - } - else { - node.expression = parseUnaryExpression(); - } - } - return finishNode(node); - } - function parseTypeParameters() { - if (token === 23 /* LessThanToken */) { - return parseBracketedList(14 /* TypeParameters */, parseTypeParameter, 23 /* LessThanToken */, 24 /* GreaterThanToken */); - } - } - function parseParameterType() { - return parseOptional(50 /* ColonToken */) ? token === 7 /* StringLiteral */ ? parseStringLiteral() : parseType() : undefined; - } - function isStartOfParameter() { - return token === 20 /* DotDotDotToken */ || isIdentifier() || isModifier(token); - } - function setModifiers(node, modifiers) { - if (modifiers) { - node.flags |= modifiers.flags; - node.modifiers = modifiers; - } - } - function parseParameter() { - var node = createNode(123 /* Parameter */); - var modifiers = parseModifiers(); - setModifiers(node, modifiers); - if (parseOptional(20 /* DotDotDotToken */)) { - node.flags |= 8 /* Rest */; - } - node.name = inGeneratorParameterContext() ? doInYieldContext(parseIdentifier) : parseIdentifier(); - if (node.name.kind === 120 /* Missing */ && node.flags === 0 && isModifier(token)) { - nextToken(); - } - if (parseOptional(49 /* QuestionToken */)) { - node.flags |= 4 /* QuestionMark */; - } - node.type = parseParameterType(); - node.initializer = inGeneratorParameterContext() ? doOutsideOfYieldContext(parseParameterInitializer) : parseParameterInitializer(); - return finishNode(node); - } - function parseParameterInitializer() { - return parseInitializer(true); - } - function parseSignature(kind, returnToken, returnTokenRequired, yieldAndGeneratorParameterContext) { - var signature = {}; - fillSignature(kind, returnToken, returnTokenRequired, yieldAndGeneratorParameterContext, signature); - return signature; - } - function fillSignature(kind, returnToken, returnTokenRequired, yieldAndGeneratorParameterContext, signature) { - if (kind === 130 /* ConstructSignature */) { - parseExpected(86 /* NewKeyword */); - } - signature.typeParameters = parseTypeParameters(); - signature.parameters = parseParameterList(yieldAndGeneratorParameterContext); - if (returnTokenRequired) { - parseExpected(returnToken); - signature.type = parseType(); - } - else if (parseOptional(returnToken)) { - signature.type = parseType(); - } - } - function parseParameterList(yieldAndGeneratorParameterContext) { - if (parseExpected(15 /* OpenParenToken */)) { - var savedYieldContext = inYieldContext(); - var savedGeneratorParameterContext = inGeneratorParameterContext(); - setYieldContext(yieldAndGeneratorParameterContext); - setGeneratorParameterContext(yieldAndGeneratorParameterContext); - var result = parseDelimitedList(13 /* Parameters */, parseParameter); - parseExpected(16 /* CloseParenToken */); - setYieldContext(savedYieldContext); - setGeneratorParameterContext(savedGeneratorParameterContext); - return result; - } - return createMissingList(); - } - function parseSignatureMember(kind, returnToken) { - var node = createNode(kind); - fillSignature(kind, returnToken, false, false, node); - parseSemicolon(); - return finishNode(node); - } - function parseIndexSignatureMember(fullStart, modifiers) { - var node = createNode(131 /* IndexSignature */, fullStart); - setModifiers(node, modifiers); - node.parameters = parseBracketedList(13 /* Parameters */, parseParameter, 17 /* OpenBracketToken */, 18 /* CloseBracketToken */); - node.type = parseTypeAnnotation(); - parseSemicolon(); - return finishNode(node); - } - function parsePropertyOrMethod() { - var fullStart = scanner.getStartPos(); - var name = parsePropertyName(); - var flags = 0; - if (parseOptional(49 /* QuestionToken */)) { - flags = 4 /* QuestionMark */; - } - if (token === 15 /* OpenParenToken */ || token === 23 /* LessThanToken */) { - var method = createNode(125 /* Method */, fullStart); - method.name = name; - method.flags = flags; - fillSignature(129 /* CallSignature */, 50 /* ColonToken */, false, false, method); - parseSemicolon(); - return finishNode(method); - } - else { - var property = createNode(124 /* Property */, fullStart); - property.name = name; - property.flags = flags; - property.type = parseTypeAnnotation(); - parseSemicolon(); - return finishNode(property); - } - } - function isStartOfTypeMember() { - switch (token) { - case 15 /* OpenParenToken */: - case 23 /* LessThanToken */: - case 17 /* OpenBracketToken */: - return true; - default: - return isPropertyName() && lookAhead(function () { return nextToken() === 15 /* OpenParenToken */ || token === 23 /* LessThanToken */ || token === 49 /* QuestionToken */ || token === 50 /* ColonToken */ || canParseSemicolon(); }); - } - } - function parseTypeMember() { - switch (token) { - case 15 /* OpenParenToken */: - case 23 /* LessThanToken */: - return parseSignatureMember(129 /* CallSignature */, 50 /* ColonToken */); - case 17 /* OpenBracketToken */: - return parseIndexSignatureMember(scanner.getStartPos(), undefined); - case 86 /* NewKeyword */: - if (lookAhead(function () { return nextToken() === 15 /* OpenParenToken */ || token === 23 /* LessThanToken */; })) { - return parseSignatureMember(130 /* ConstructSignature */, 50 /* ColonToken */); - } - case 7 /* StringLiteral */: - case 6 /* NumericLiteral */: - return parsePropertyOrMethod(); - default: - if (token >= 63 /* Identifier */) { - return parsePropertyOrMethod(); - } - } - } - function parseTypeLiteral() { - var node = createNode(136 /* TypeLiteral */); - node.members = parseObjectType(); - return finishNode(node); - } - function parseObjectType() { - var members; - if (parseExpected(13 /* OpenBraceToken */)) { - members = parseList(5 /* TypeMembers */, false, parseTypeMember); - parseExpected(14 /* CloseBraceToken */); - } - else { - members = createMissingList(); - } - return members; - } - function parseTupleType() { - var node = createNode(138 /* TupleType */); - node.elementTypes = parseBracketedList(16 /* TupleElementTypes */, parseType, 17 /* OpenBracketToken */, 18 /* CloseBracketToken */); - return finishNode(node); - } - function parseParenType() { - var node = createNode(140 /* ParenType */); - parseExpected(15 /* OpenParenToken */); - node.type = parseType(); - parseExpected(16 /* CloseParenToken */); - return finishNode(node); - } - function parseFunctionType(typeKind) { - var node = createNode(typeKind); - fillSignature(typeKind === 133 /* FunctionType */ ? 129 /* CallSignature */ : 130 /* ConstructSignature */, 31 /* EqualsGreaterThanToken */, true, false, node); - return finishNode(node); - } - function parseKeywordAndNoDot() { - var node = parseTokenNode(); - return token === 19 /* DotToken */ ? undefined : node; - } - function parseNonArrayType() { - switch (token) { - case 109 /* AnyKeyword */: - case 118 /* StringKeyword */: - case 116 /* NumberKeyword */: - case 110 /* BooleanKeyword */: - case 97 /* VoidKeyword */: - var node = tryParse(parseKeywordAndNoDot); - return node || parseTypeReference(); - case 95 /* TypeOfKeyword */: - return parseTypeQuery(); - case 13 /* OpenBraceToken */: - return parseTypeLiteral(); - case 17 /* OpenBracketToken */: - return parseTupleType(); - case 15 /* OpenParenToken */: - return parseParenType(); - default: - if (isIdentifier()) { - return parseTypeReference(); - } - } - error(ts.Diagnostics.Type_expected); - return createMissingNode(); - } - function isStartOfType() { - switch (token) { - case 109 /* AnyKeyword */: - case 118 /* StringKeyword */: - case 116 /* NumberKeyword */: - case 110 /* BooleanKeyword */: - case 97 /* VoidKeyword */: - case 95 /* TypeOfKeyword */: - case 13 /* OpenBraceToken */: - case 17 /* OpenBracketToken */: - case 23 /* LessThanToken */: - case 86 /* NewKeyword */: - return true; - case 15 /* OpenParenToken */: - return lookAhead(function () { - nextToken(); - return token === 16 /* CloseParenToken */ || isStartOfParameter() || isStartOfType(); - }); - default: - return isIdentifier(); - } - } - function parsePrimaryType() { - var type = parseNonArrayType(); - while (!scanner.hasPrecedingLineBreak() && parseOptional(17 /* OpenBracketToken */)) { - parseExpected(18 /* CloseBracketToken */); - var node = createNode(137 /* ArrayType */, type.pos); - node.elementType = type; - type = finishNode(node); - } - return type; - } - function parseUnionType() { - var type = parsePrimaryType(); - if (token === 43 /* BarToken */) { - var types = [type]; - types.pos = type.pos; - while (parseOptional(43 /* BarToken */)) { - types.push(parsePrimaryType()); - } - types.end = getNodeEnd(); - var node = createNode(139 /* UnionType */, type.pos); - node.types = types; - type = finishNode(node); - } - return type; - } - function isStartOfFunctionType() { - return token === 23 /* LessThanToken */ || token === 15 /* OpenParenToken */ && lookAhead(function () { - nextToken(); - if (token === 16 /* CloseParenToken */ || token === 20 /* DotDotDotToken */) { - return true; - } - if (isIdentifier() || isModifier(token)) { - nextToken(); - if (token === 50 /* ColonToken */ || token === 22 /* CommaToken */ || token === 49 /* QuestionToken */ || token === 51 /* EqualsToken */ || isIdentifier() || isModifier(token)) { - return true; - } - if (token === 16 /* CloseParenToken */) { - nextToken(); - if (token === 31 /* EqualsGreaterThanToken */) { - 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 parseFunctionType(133 /* FunctionType */); - } - if (token === 86 /* NewKeyword */) { - return parseFunctionType(134 /* ConstructorType */); - } - return parseUnionType(); - } - function parseTypeAnnotation() { - return parseOptional(50 /* ColonToken */) ? parseType() : undefined; - } - function isStartOfExpression() { - switch (token) { - case 91 /* ThisKeyword */: - case 89 /* SuperKeyword */: - case 87 /* NullKeyword */: - case 93 /* TrueKeyword */: - case 78 /* FalseKeyword */: - case 6 /* NumericLiteral */: - case 7 /* StringLiteral */: - case 9 /* NoSubstitutionTemplateLiteral */: - case 10 /* TemplateHead */: - case 15 /* OpenParenToken */: - case 17 /* OpenBracketToken */: - case 13 /* OpenBraceToken */: - case 81 /* FunctionKeyword */: - case 86 /* NewKeyword */: - case 35 /* SlashToken */: - case 55 /* SlashEqualsToken */: - case 32 /* PlusToken */: - case 33 /* MinusToken */: - case 46 /* TildeToken */: - case 45 /* ExclamationToken */: - case 72 /* DeleteKeyword */: - case 95 /* TypeOfKeyword */: - case 97 /* VoidKeyword */: - case 37 /* PlusPlusToken */: - case 38 /* MinusMinusToken */: - case 23 /* LessThanToken */: - case 63 /* Identifier */: - case 108 /* YieldKeyword */: - return true; - default: - return isIdentifier(); - } - } - function isStartOfExpressionStatement() { - return token !== 13 /* OpenBraceToken */ && token !== 81 /* FunctionKeyword */ && isStartOfExpression(); - } - function parseExpression() { - var expr = parseAssignmentExpression(); - while (parseOptional(22 /* CommaToken */)) { - expr = makeBinaryExpression(expr, 22 /* CommaToken */, parseAssignmentExpression()); - } - return expr; - } - function parseInitializer(inParameter) { - if (token !== 51 /* EqualsToken */) { - if (scanner.hasPrecedingLineBreak() || (inParameter && token === 13 /* OpenBraceToken */) || !isStartOfExpression()) { - return undefined; - } - } - parseExpected(51 /* EqualsToken */); - return parseAssignmentExpression(); - } - function parseAssignmentExpression() { - if (isYieldExpression()) { - return parseYieldExpression(); - } - var arrowExpression = tryParseParenthesizedArrowFunctionExpression(); - if (arrowExpression) { - return arrowExpression; - } - var expr = parseConditionalExpression(); - if (expr.kind === 63 /* Identifier */ && token === 31 /* EqualsGreaterThanToken */) { - return parseSimpleArrowFunctionExpression(expr); - } - if (isLeftHandSideExpression(expr) && isAssignmentOperator(token)) { - var operator = token; - nextToken(); - return makeBinaryExpression(expr, operator, parseAssignmentExpression()); - } - return expr; - } - function isYieldExpression() { - if (token === 108 /* YieldKeyword */) { - if (inYieldContext()) { - return true; - } - if (inStrictModeContext()) { - return true; - } - return lookAhead(function () { - nextToken(); - return !scanner.hasPrecedingLineBreak() && isIdentifier(); - }); - } - return false; - } - function parseYieldExpression() { - var node = createNode(160 /* YieldExpression */); - nextToken(); - if (!scanner.hasPrecedingLineBreak() && (token === 34 /* AsteriskToken */ || isStartOfExpression())) { - if (parseOptional(34 /* AsteriskToken */)) { - node.flags = 32768 /* YieldStar */; - } - node.expression = parseAssignmentExpression(); - return finishNode(node); - } - else { - return finishNode(node); - } - } - function parseSimpleArrowFunctionExpression(identifier) { - ts.Debug.assert(token === 31 /* EqualsGreaterThanToken */, "parseSimpleArrowFunctionExpression should only have been called if we had a =>"); - parseExpected(31 /* EqualsGreaterThanToken */); - var parameter = createNode(123 /* Parameter */, identifier.pos); - parameter.name = identifier; - finishNode(parameter); - var parameters = []; - parameters.push(parameter); - parameters.pos = parameter.pos; - parameters.end = parameter.end; - var signature = { parameters: parameters }; - return parseArrowExpressionTail(identifier.pos, signature); - } - function tryParseParenthesizedArrowFunctionExpression() { - var triState = isParenthesizedArrowFunctionExpression(); - if (triState === 0 /* False */) { - return undefined; - } - var pos = getNodePos(); - if (triState === 1 /* True */) { - var sig = parseSignature(129 /* CallSignature */, 50 /* ColonToken */, false, false); - if (parseExpected(31 /* EqualsGreaterThanToken */) || token === 13 /* OpenBraceToken */) { - return parseArrowExpressionTail(pos, sig); - } - else { - return makeFunctionExpression(153 /* ArrowFunction */, pos, undefined, sig, createMissingNode()); - } - } - var sig = tryParseSignatureIfArrowOrBraceFollows(); - if (sig) { - parseExpected(31 /* EqualsGreaterThanToken */); - return parseArrowExpressionTail(pos, sig); - } - else { - return undefined; - } - } - function isParenthesizedArrowFunctionExpression() { - if (token === 15 /* OpenParenToken */ || token === 23 /* LessThanToken */) { - return lookAhead(function () { - var first = token; - var second = nextToken(); - if (first === 15 /* OpenParenToken */) { - if (second === 16 /* CloseParenToken */) { - var third = nextToken(); - switch (third) { - case 31 /* EqualsGreaterThanToken */: - case 50 /* ColonToken */: - case 13 /* OpenBraceToken */: - return 1 /* True */; - default: - return 0 /* False */; - } - } - if (second === 20 /* DotDotDotToken */) { - return 1 /* True */; - } - if (!isIdentifier()) { - return 0 /* False */; - } - if (nextToken() === 50 /* ColonToken */) { - return 1 /* True */; - } - return 2 /* Unknown */; - } - else { - ts.Debug.assert(first === 23 /* LessThanToken */); - if (!isIdentifier()) { - return 0 /* False */; - } - return 2 /* Unknown */; - } - }); - } - if (token === 31 /* EqualsGreaterThanToken */) { - return 1 /* True */; - } - return 0 /* False */; - } - function tryParseSignatureIfArrowOrBraceFollows() { - return tryParse(function () { - var sig = parseSignature(129 /* CallSignature */, 50 /* ColonToken */, false, false); - if (token === 31 /* EqualsGreaterThanToken */ || token === 13 /* OpenBraceToken */) { - return sig; - } - return undefined; - }); - } - function parseArrowExpressionTail(pos, sig) { - var body; - if (token === 13 /* OpenBraceToken */) { - body = parseFunctionBlock(false, false); - } - else if (isStatement(true) && !isStartOfExpressionStatement() && token !== 81 /* FunctionKeyword */) { - body = parseFunctionBlock(false, true); - } - else { - body = parseAssignmentExpression(); - } - return makeFunctionExpression(153 /* ArrowFunction */, pos, undefined, sig, body); - } - function parseConditionalExpression() { - var expr = parseBinaryOperators(parseUnaryExpression(), 0); - while (parseOptional(49 /* QuestionToken */)) { - var node = createNode(157 /* ConditionalExpression */, expr.pos); - node.condition = expr; - node.whenTrue = allowInAnd(parseAssignmentExpression); - parseExpected(50 /* ColonToken */); - node.whenFalse = parseAssignmentExpression(); - expr = finishNode(node); - } - return expr; - } - function parseBinaryOperators(expr, minPrecedence) { - while (true) { - reScanGreaterToken(); - var precedence = getOperatorPrecedence(); - if (precedence && precedence > minPrecedence && (!inDisallowInContext() || token !== 84 /* InKeyword */)) { - var operator = token; - nextToken(); - expr = makeBinaryExpression(expr, operator, parseBinaryOperators(parseUnaryExpression(), precedence)); - continue; - } - return expr; - } - } - function getOperatorPrecedence() { - switch (token) { - case 48 /* BarBarToken */: - return 1; - case 47 /* AmpersandAmpersandToken */: - return 2; - case 43 /* BarToken */: - return 3; - case 44 /* CaretToken */: - return 4; - case 42 /* AmpersandToken */: - return 5; - case 27 /* EqualsEqualsToken */: - case 28 /* ExclamationEqualsToken */: - case 29 /* EqualsEqualsEqualsToken */: - case 30 /* ExclamationEqualsEqualsToken */: - return 6; - case 23 /* LessThanToken */: - case 24 /* GreaterThanToken */: - case 25 /* LessThanEqualsToken */: - case 26 /* GreaterThanEqualsToken */: - case 85 /* InstanceOfKeyword */: - case 84 /* InKeyword */: - return 7; - case 39 /* LessThanLessThanToken */: - case 40 /* GreaterThanGreaterThanToken */: - case 41 /* GreaterThanGreaterThanGreaterThanToken */: - return 8; - case 32 /* PlusToken */: - case 33 /* MinusToken */: - return 9; - case 34 /* AsteriskToken */: - case 35 /* SlashToken */: - case 36 /* PercentToken */: - return 10; - } - return undefined; - } - function makeBinaryExpression(left, operator, right) { - var node = createNode(156 /* BinaryExpression */, left.pos); - node.left = left; - node.operator = operator; - node.right = right; - return finishNode(node); - } - function parseUnaryExpression() { - var pos = getNodePos(); - switch (token) { - case 32 /* PlusToken */: - case 33 /* MinusToken */: - case 46 /* TildeToken */: - case 45 /* ExclamationToken */: - case 72 /* DeleteKeyword */: - case 95 /* TypeOfKeyword */: - case 97 /* VoidKeyword */: - case 37 /* PlusPlusToken */: - case 38 /* MinusMinusToken */: - var operator = token; - nextToken(); - return makeUnaryExpression(154 /* PrefixOperator */, pos, operator, parseUnaryExpression()); - case 23 /* LessThanToken */: - return parseTypeAssertion(); - } - var primaryExpression = parsePrimaryExpression(); - var illegalUsageOfSuperKeyword = primaryExpression.kind === 89 /* SuperKeyword */ && token !== 15 /* OpenParenToken */ && token !== 19 /* DotToken */; - if (illegalUsageOfSuperKeyword) { - error(ts.Diagnostics.super_must_be_followed_by_an_argument_list_or_member_access); - } - var expr = parseCallAndAccess(primaryExpression, false); - ts.Debug.assert(isLeftHandSideExpression(expr)); - if ((token === 37 /* PlusPlusToken */ || token === 38 /* MinusMinusToken */) && !scanner.hasPrecedingLineBreak()) { - var operator = token; - nextToken(); - expr = makeUnaryExpression(155 /* PostfixOperator */, expr.pos, operator, expr); - } - return expr; - } - function parseTypeAssertion() { - var node = createNode(150 /* TypeAssertion */); - parseExpected(23 /* LessThanToken */); - node.type = parseType(); - parseExpected(24 /* GreaterThanToken */); - node.operand = parseUnaryExpression(); - return finishNode(node); - } - function makeUnaryExpression(kind, pos, operator, operand) { - var node = createNode(kind, pos); - node.operator = operator; - node.operand = operand; - return finishNode(node); - } - function parseCallAndAccess(expr, inNewExpression) { - while (true) { - var dotOrBracketStart = scanner.getTokenPos(); - if (parseOptional(19 /* DotToken */)) { - var propertyAccess = createNode(145 /* PropertyAccess */, expr.pos); - var id; - if (scanner.hasPrecedingLineBreak() && scanner.isReservedWord()) { - var matchesPattern = lookAhead(function () { - nextToken(); - return !scanner.hasPrecedingLineBreak() && (scanner.isIdentifier() || scanner.isReservedWord); - }); - if (matchesPattern) { - errorAtPos(dotOrBracketStart + 1, 0, ts.Diagnostics.Identifier_expected); - id = createMissingNode(); - } - } - propertyAccess.left = expr; - propertyAccess.right = id || parseIdentifierName(); - expr = finishNode(propertyAccess); - continue; - } - if (parseOptional(17 /* OpenBracketToken */)) { - var indexedAccess = createNode(146 /* IndexedAccess */, expr.pos); - indexedAccess.object = expr; - if (inNewExpression && parseOptional(18 /* CloseBracketToken */)) { - indexedAccess.index = createMissingNode(); - } - else { - indexedAccess.index = allowInAnd(parseExpression); - if (indexedAccess.index.kind === 7 /* StringLiteral */ || indexedAccess.index.kind === 6 /* NumericLiteral */) { - var literal = indexedAccess.index; - literal.text = internIdentifier(literal.text); - } - parseExpected(18 /* CloseBracketToken */); - } - expr = finishNode(indexedAccess); - continue; - } - if ((token === 15 /* OpenParenToken */ || token === 23 /* LessThanToken */) && !inNewExpression) { - var callExpr = createNode(147 /* CallExpression */, expr.pos); - callExpr.func = expr; - if (token === 23 /* LessThanToken */) { - if (!(callExpr.typeArguments = tryParse(parseTypeArgumentsAndOpenParen))) - return expr; - } - else { - parseExpected(15 /* OpenParenToken */); - } - callExpr.arguments = parseDelimitedList(10 /* ArgumentExpressions */, parseArgumentExpression); - parseExpected(16 /* CloseParenToken */); - expr = finishNode(callExpr); - continue; - } - if (token === 9 /* NoSubstitutionTemplateLiteral */ || token === 10 /* TemplateHead */) { - var tagExpression = createNode(149 /* TaggedTemplateExpression */, expr.pos); - tagExpression.tag = expr; - tagExpression.template = token === 9 /* NoSubstitutionTemplateLiteral */ ? parseLiteralNode() : parseTemplateExpression(); - expr = finishNode(tagExpression); - continue; - } - return expr; - } - } - function parseTypeArgumentsAndOpenParen() { - var result = parseTypeArguments(); - parseExpected(15 /* OpenParenToken */); - return result; - } - function parseTypeArguments() { - return parseBracketedList(15 /* TypeArguments */, parseSingleTypeArgument, 23 /* LessThanToken */, 24 /* GreaterThanToken */); - } - function parseSingleTypeArgument() { - if (token === 22 /* CommaToken */) { - return createNode(120 /* Missing */); - } - return parseType(); - } - function parsePrimaryExpression() { - switch (token) { - case 91 /* ThisKeyword */: - case 89 /* SuperKeyword */: - case 87 /* NullKeyword */: - case 93 /* TrueKeyword */: - case 78 /* FalseKeyword */: - return parseTokenNode(); - case 6 /* NumericLiteral */: - case 7 /* StringLiteral */: - case 9 /* NoSubstitutionTemplateLiteral */: - return parseLiteralNode(); - case 15 /* OpenParenToken */: - return parseParenExpression(); - case 17 /* OpenBracketToken */: - return parseArrayLiteral(); - case 13 /* OpenBraceToken */: - return parseObjectLiteral(); - case 81 /* FunctionKeyword */: - return parseFunctionExpression(); - case 86 /* NewKeyword */: - return parseNewExpression(); - case 35 /* SlashToken */: - case 55 /* SlashEqualsToken */: - if (reScanSlashToken() === 8 /* RegularExpressionLiteral */) { - return parseLiteralNode(); - } - break; - case 10 /* TemplateHead */: - return parseTemplateExpression(); - default: - if (isIdentifier()) { - return parseIdentifier(); - } - } - error(ts.Diagnostics.Expression_expected); - return createMissingNode(); - } - function parseParenExpression() { - var node = createNode(151 /* ParenExpression */); - parseExpected(15 /* OpenParenToken */); - node.expression = allowInAnd(parseExpression); - parseExpected(16 /* CloseParenToken */); - return finishNode(node); - } - function parseAssignmentExpressionOrOmittedExpression() { - return token === 22 /* CommaToken */ ? createNode(161 /* OmittedExpression */) : parseAssignmentExpression(); - } - function parseArrayLiteralElement() { - return parseAssignmentExpressionOrOmittedExpression(); - } - function parseArgumentExpression() { - return allowInAnd(parseAssignmentExpressionOrOmittedExpression); - } - function parseArrayLiteral() { - var node = createNode(141 /* ArrayLiteral */); - parseExpected(17 /* OpenBracketToken */); - if (scanner.hasPrecedingLineBreak()) - node.flags |= 256 /* MultiLine */; - node.elements = parseDelimitedList(12 /* ArrayLiteralMembers */, parseArrayLiteralElement); - parseExpected(18 /* CloseBracketToken */); - return finishNode(node); - } - function parsePropertyAssignment() { - var nodePos = scanner.getStartPos(); - var isGenerator = parseOptional(34 /* AsteriskToken */); - var tokenIsIdentifier = isIdentifier(); - var nameToken = token; - var propertyName = parsePropertyName(); - var node; - if (isGenerator || token === 15 /* OpenParenToken */ || token === 23 /* LessThanToken */) { - node = createNode(143 /* PropertyAssignment */, nodePos); - node.name = propertyName; - if (isGenerator) { - node.flags |= 16384 /* Generator */; - } - var sig = parseSignature(129 /* CallSignature */, 50 /* ColonToken */, false, isGenerator); - var body = parseFunctionBlock(isGenerator, false); - node.initializer = makeFunctionExpression(152 /* FunctionExpression */, node.pos, undefined, sig, body); - return finishNode(node); - } - var flags = 0; - if (token === 49 /* QuestionToken */) { - flags |= 4 /* QuestionMark */; - nextToken(); - } - if ((token === 22 /* CommaToken */ || token === 14 /* CloseBraceToken */) && tokenIsIdentifier) { - node = createNode(144 /* ShorthandPropertyAssignment */, nodePos); - node.name = propertyName; - } - else { - node = createNode(143 /* PropertyAssignment */, nodePos); - node.name = propertyName; - parseExpected(50 /* ColonToken */); - node.initializer = allowInAnd(parseAssignmentExpression); - } - node.flags = flags; - return finishNode(node); - } - function parseObjectLiteralMember() { - var initialPos = getNodePos(); - var initialToken = token; - if (parseContextualModifier(113 /* GetKeyword */) || parseContextualModifier(117 /* SetKeyword */)) { - var kind = initialToken === 113 /* GetKeyword */ ? 127 /* GetAccessor */ : 128 /* SetAccessor */; - return parseMemberAccessorDeclaration(kind, initialPos, undefined); - } - return parsePropertyAssignment(); - } - function parseObjectLiteral() { - var node = createNode(142 /* ObjectLiteral */); - parseExpected(13 /* OpenBraceToken */); - if (scanner.hasPrecedingLineBreak()) { - node.flags |= 256 /* MultiLine */; - } - node.properties = parseDelimitedList(11 /* ObjectLiteralMembers */, parseObjectLiteralMember); - parseExpected(14 /* CloseBraceToken */); - return finishNode(node); - } - function parseFunctionExpression() { - var pos = getNodePos(); - parseExpected(81 /* FunctionKeyword */); - var isGenerator = parseOptional(34 /* AsteriskToken */); - var name = isGenerator ? doInYieldContext(parseOptionalIdentifier) : parseOptionalIdentifier(); - var sig = parseSignature(129 /* CallSignature */, 50 /* ColonToken */, false, isGenerator); - var body = parseFunctionBlock(isGenerator, false); - return makeFunctionExpression(152 /* FunctionExpression */, pos, name, sig, body, isGenerator ? 16384 /* Generator */ : undefined); - } - function parseOptionalIdentifier() { - return isIdentifier() ? parseIdentifier() : undefined; - } - function makeFunctionExpression(kind, pos, name, sig, body, flags) { - var node = createNode(kind, pos); - if (flags) { - node.flags = flags; - } - node.name = name; - node.typeParameters = sig.typeParameters; - node.parameters = sig.parameters; - node.type = sig.type; - node.body = body; - return finishNode(node); - } - function parseNewExpression() { - var node = createNode(148 /* NewExpression */); - parseExpected(86 /* NewKeyword */); - node.func = parseCallAndAccess(parsePrimaryExpression(), true); - if (parseOptional(15 /* OpenParenToken */) || token === 23 /* LessThanToken */ && (node.typeArguments = tryParse(parseTypeArgumentsAndOpenParen))) { - node.arguments = parseDelimitedList(10 /* ArgumentExpressions */, parseArgumentExpression); - parseExpected(16 /* CloseParenToken */); - } - return finishNode(node); - } - function parseBlock(ignoreMissingOpenBrace, checkForStrictMode) { - var node = createNode(162 /* Block */); - if (parseExpected(13 /* OpenBraceToken */) || ignoreMissingOpenBrace) { - node.statements = parseList(2 /* BlockStatements */, checkForStrictMode, parseStatement); - parseExpected(14 /* CloseBraceToken */); - } - else { - node.statements = createMissingList(); - } - return finishNode(node); - } - function parseFunctionBlock(allowYield, ignoreMissingOpenBrace) { - var savedYieldContext = inYieldContext(); - setYieldContext(allowYield); - var block = parseBlock(ignoreMissingOpenBrace, true); - block.kind = 187 /* FunctionBlock */; - setYieldContext(savedYieldContext); - return block; - } - function parseEmptyStatement() { - var node = createNode(164 /* EmptyStatement */); - parseExpected(21 /* SemicolonToken */); - return finishNode(node); - } - function parseIfStatement() { - var node = createNode(166 /* IfStatement */); - parseExpected(82 /* IfKeyword */); - parseExpected(15 /* OpenParenToken */); - node.expression = allowInAnd(parseExpression); - parseExpected(16 /* CloseParenToken */); - node.thenStatement = parseStatement(); - node.elseStatement = parseOptional(74 /* ElseKeyword */) ? parseStatement() : undefined; - return finishNode(node); - } - function parseDoStatement() { - var node = createNode(167 /* DoStatement */); - parseExpected(73 /* DoKeyword */); - node.statement = parseStatement(); - parseExpected(98 /* WhileKeyword */); - parseExpected(15 /* OpenParenToken */); - node.expression = allowInAnd(parseExpression); - parseExpected(16 /* CloseParenToken */); - parseOptional(21 /* SemicolonToken */); - return finishNode(node); - } - function parseWhileStatement() { - var node = createNode(168 /* WhileStatement */); - parseExpected(98 /* WhileKeyword */); - parseExpected(15 /* OpenParenToken */); - node.expression = allowInAnd(parseExpression); - parseExpected(16 /* CloseParenToken */); - node.statement = parseStatement(); - return finishNode(node); - } - function parseForOrForInStatement() { - var pos = getNodePos(); - parseExpected(80 /* ForKeyword */); - parseExpected(15 /* OpenParenToken */); - if (token !== 21 /* SemicolonToken */) { - if (parseOptional(96 /* VarKeyword */)) { - var declarations = disallowInAnd(parseVariableDeclarationList); - } - else if (parseOptional(102 /* LetKeyword */)) { - var declarations = setFlag(disallowInAnd(parseVariableDeclarationList), 2048 /* Let */); - } - else if (parseOptional(68 /* ConstKeyword */)) { - var declarations = setFlag(disallowInAnd(parseVariableDeclarationList), 4096 /* Const */); - } - else { - var varOrInit = disallowInAnd(parseExpression); - } - } - var forOrForInStatement; - if (parseOptional(84 /* InKeyword */)) { - var forInStatement = createNode(170 /* ForInStatement */, pos); - if (declarations) { - forInStatement.declarations = declarations; - } - else { - forInStatement.variable = varOrInit; - } - forInStatement.expression = allowInAnd(parseExpression); - parseExpected(16 /* CloseParenToken */); - forOrForInStatement = forInStatement; - } - else { - var forStatement = createNode(169 /* ForStatement */, pos); - if (declarations) { - forStatement.declarations = declarations; - } - if (varOrInit) { - forStatement.initializer = varOrInit; - } - parseExpected(21 /* SemicolonToken */); - if (token !== 21 /* SemicolonToken */ && token !== 16 /* CloseParenToken */) { - forStatement.condition = allowInAnd(parseExpression); - } - parseExpected(21 /* SemicolonToken */); - if (token !== 16 /* CloseParenToken */) { - forStatement.iterator = allowInAnd(parseExpression); - } - parseExpected(16 /* CloseParenToken */); - forOrForInStatement = forStatement; - } - forOrForInStatement.statement = parseStatement(); - return finishNode(forOrForInStatement); - } - function parseBreakOrContinueStatement(kind) { - var node = createNode(kind); - parseExpected(kind === 172 /* BreakStatement */ ? 64 /* BreakKeyword */ : 69 /* ContinueKeyword */); - if (!canParseSemicolon()) { - node.label = parseIdentifier(); - } - parseSemicolon(); - return finishNode(node); - } - function parseReturnStatement() { - var node = createNode(173 /* ReturnStatement */); - parseExpected(88 /* ReturnKeyword */); - if (!canParseSemicolon()) { - node.expression = allowInAnd(parseExpression); - } - parseSemicolon(); - return finishNode(node); - } - function parseWithStatement() { - var node = createNode(174 /* WithStatement */); - parseExpected(99 /* WithKeyword */); - parseExpected(15 /* OpenParenToken */); - node.expression = allowInAnd(parseExpression); - parseExpected(16 /* CloseParenToken */); - node.statement = parseStatement(); - return finishNode(node); - } - function parseCaseClause() { - var node = createNode(176 /* CaseClause */); - parseExpected(65 /* CaseKeyword */); - node.expression = allowInAnd(parseExpression); - parseExpected(50 /* ColonToken */); - node.statements = parseList(4 /* SwitchClauseStatements */, false, parseStatement); - return finishNode(node); - } - function parseDefaultClause() { - var node = createNode(177 /* DefaultClause */); - parseExpected(71 /* DefaultKeyword */); - parseExpected(50 /* ColonToken */); - node.statements = parseList(4 /* SwitchClauseStatements */, false, parseStatement); - return finishNode(node); - } - function parseCaseOrDefaultClause() { - return token === 65 /* CaseKeyword */ ? parseCaseClause() : parseDefaultClause(); - } - function parseSwitchStatement() { - var node = createNode(175 /* SwitchStatement */); - parseExpected(90 /* SwitchKeyword */); - parseExpected(15 /* OpenParenToken */); - node.expression = allowInAnd(parseExpression); - parseExpected(16 /* CloseParenToken */); - parseExpected(13 /* OpenBraceToken */); - node.clauses = parseList(3 /* SwitchClauses */, false, parseCaseOrDefaultClause); - parseExpected(14 /* CloseBraceToken */); - return finishNode(node); - } - function parseThrowStatement() { - var node = createNode(179 /* ThrowStatement */); - parseExpected(92 /* ThrowKeyword */); - if (scanner.hasPrecedingLineBreak()) { - error(ts.Diagnostics.Line_break_not_permitted_here); - } - node.expression = allowInAnd(parseExpression); - parseSemicolon(); - return finishNode(node); - } - function parseTryStatement() { - var node = createNode(180 /* TryStatement */); - node.tryBlock = parseTokenAndBlock(94 /* TryKeyword */, 181 /* TryBlock */); - if (token === 66 /* CatchKeyword */) { - node.catchBlock = parseCatchBlock(); - } - if (token === 79 /* FinallyKeyword */) { - node.finallyBlock = parseTokenAndBlock(79 /* FinallyKeyword */, 183 /* FinallyBlock */); - } - if (!(node.catchBlock || node.finallyBlock)) { - error(ts.Diagnostics.catch_or_finally_expected); - } - return finishNode(node); - } - function parseTokenAndBlock(token, kind) { - var pos = getNodePos(); - parseExpected(token); - var result = parseBlock(false, false); - result.kind = kind; - result.pos = pos; - return result; - } - function parseCatchBlock() { - var pos = getNodePos(); - parseExpected(66 /* CatchKeyword */); - parseExpected(15 /* OpenParenToken */); - var variable = parseIdentifier(); - var typeAnnotation = parseTypeAnnotation(); - parseExpected(16 /* CloseParenToken */); - var result = parseBlock(false, false); - result.kind = 182 /* CatchBlock */; - result.pos = pos; - result.variable = variable; - result.type = typeAnnotation; - return result; - } - function parseDebuggerStatement() { - var node = createNode(184 /* DebuggerStatement */); - parseExpected(70 /* DebuggerKeyword */); - parseSemicolon(); - return finishNode(node); - } - function isLabel() { - return isIdentifier() && lookAhead(function () { return nextToken() === 50 /* ColonToken */; }); - } - function parseLabeledStatement() { - var node = createNode(178 /* LabeledStatement */); - node.label = parseIdentifier(); - parseExpected(50 /* ColonToken */); - node.statement = parseStatement(); - return finishNode(node); - } - function parseExpressionStatement() { - var node = createNode(165 /* ExpressionStatement */); - node.expression = allowInAnd(parseExpression); - parseSemicolon(); - return finishNode(node); - } - function isStatement(inErrorRecovery) { - switch (token) { - case 21 /* SemicolonToken */: - return !inErrorRecovery; - case 13 /* OpenBraceToken */: - case 96 /* VarKeyword */: - case 102 /* LetKeyword */: - case 81 /* FunctionKeyword */: - case 82 /* IfKeyword */: - case 73 /* DoKeyword */: - case 98 /* WhileKeyword */: - case 80 /* ForKeyword */: - case 69 /* ContinueKeyword */: - case 64 /* BreakKeyword */: - case 88 /* ReturnKeyword */: - case 99 /* WithKeyword */: - case 90 /* SwitchKeyword */: - case 92 /* ThrowKeyword */: - case 94 /* TryKeyword */: - case 70 /* DebuggerKeyword */: - case 66 /* CatchKeyword */: - case 79 /* FinallyKeyword */: - return true; - case 68 /* ConstKeyword */: - var isConstEnum = lookAhead(function () { return nextToken() === 75 /* EnumKeyword */; }); - return !isConstEnum; - case 101 /* InterfaceKeyword */: - case 67 /* ClassKeyword */: - case 114 /* ModuleKeyword */: - case 75 /* EnumKeyword */: - case 119 /* TypeKeyword */: - if (isDeclarationStart()) { - return false; - } - case 106 /* PublicKeyword */: - case 104 /* PrivateKeyword */: - case 105 /* ProtectedKeyword */: - case 107 /* StaticKeyword */: - if (lookAhead(function () { return nextToken() >= 63 /* Identifier */; })) { - return false; - } - default: - return isStartOfExpression(); - } - } - function parseStatement() { - switch (token) { - case 13 /* OpenBraceToken */: - return parseBlock(false, false); - case 96 /* VarKeyword */: - case 102 /* LetKeyword */: - case 68 /* ConstKeyword */: - return parseVariableStatement(scanner.getStartPos(), undefined); - case 81 /* FunctionKeyword */: - return parseFunctionDeclaration(scanner.getStartPos(), undefined); - case 21 /* SemicolonToken */: - return parseEmptyStatement(); - case 82 /* IfKeyword */: - return parseIfStatement(); - case 73 /* DoKeyword */: - return parseDoStatement(); - case 98 /* WhileKeyword */: - return parseWhileStatement(); - case 80 /* ForKeyword */: - return parseForOrForInStatement(); - case 69 /* ContinueKeyword */: - return parseBreakOrContinueStatement(171 /* ContinueStatement */); - case 64 /* BreakKeyword */: - return parseBreakOrContinueStatement(172 /* BreakStatement */); - case 88 /* ReturnKeyword */: - return parseReturnStatement(); - case 99 /* WithKeyword */: - return parseWithStatement(); - case 90 /* SwitchKeyword */: - return parseSwitchStatement(); - case 92 /* ThrowKeyword */: - return parseThrowStatement(); - case 94 /* TryKeyword */: - case 66 /* CatchKeyword */: - case 79 /* FinallyKeyword */: - return parseTryStatement(); - case 70 /* DebuggerKeyword */: - return parseDebuggerStatement(); - default: - return isLabel() ? parseLabeledStatement() : parseExpressionStatement(); - } - } - function parseFunctionBlockOrSemicolon(isGenerator) { - if (token === 13 /* OpenBraceToken */) { - return parseFunctionBlock(isGenerator, false); - } - if (canParseSemicolon()) { - parseSemicolon(); - return undefined; - } - error(ts.Diagnostics.Block_or_expected); - } - function parseVariableDeclaration() { - var node = createNode(185 /* VariableDeclaration */); - node.name = parseIdentifier(); - node.type = parseTypeAnnotation(); - node.initializer = parseInitializer(false); - return finishNode(node); - } - function setFlag(array, flag) { - for (var i = 0, n = array.length; i < n; i++) { - array[i].flags |= flag; - } - return array; - } - function parseVariableDeclarationList() { - return parseDelimitedList(9 /* VariableDeclarations */, parseVariableDeclaration); - } - function parseVariableStatement(fullStart, modifiers) { - var node = createNode(163 /* VariableStatement */, fullStart); - setModifiers(node, modifiers); - if (token === 102 /* LetKeyword */) { - node.flags |= 2048 /* Let */; - } - else if (token === 68 /* ConstKeyword */) { - node.flags |= 4096 /* Const */; - } - else { - ts.Debug.assert(token === 96 /* VarKeyword */); - } - nextToken(); - node.declarations = allowInAnd(parseVariableDeclarationList); - setFlag(node.declarations, node.flags); - parseSemicolon(); - return finishNode(node); - } - function parseFunctionDeclaration(fullStart, modifiers) { - var node = createNode(186 /* FunctionDeclaration */, fullStart); - setModifiers(node, modifiers); - parseExpected(81 /* FunctionKeyword */); - var isGenerator = parseOptional(34 /* AsteriskToken */); - if (isGenerator) { - node.flags |= 16384 /* Generator */; - } - node.name = parseIdentifier(); - fillSignature(129 /* CallSignature */, 50 /* ColonToken */, false, isGenerator, node); - node.body = parseFunctionBlockOrSemicolon(isGenerator); - return finishNode(node); - } - function parseConstructorDeclaration(pos, modifiers) { - var node = createNode(126 /* Constructor */, pos); - setModifiers(node, modifiers); - parseExpected(111 /* ConstructorKeyword */); - fillSignature(129 /* CallSignature */, 50 /* ColonToken */, false, false, node); - node.body = parseFunctionBlockOrSemicolon(false); - return finishNode(node); - } - function parsePropertyMemberDeclaration(fullStart, modifiers) { - var flags = modifiers ? modifiers.flags : 0; - var isGenerator = parseOptional(34 /* AsteriskToken */); - if (isGenerator) { - flags |= 16384 /* Generator */; - } - var name = parsePropertyName(); - if (parseOptional(49 /* QuestionToken */)) { - flags |= 4 /* QuestionMark */; - } - if (isGenerator || token === 15 /* OpenParenToken */ || token === 23 /* LessThanToken */) { - var method = createNode(125 /* Method */, fullStart); - setModifiers(method, modifiers); - if (flags) { - method.flags = flags; - } - method.name = name; - fillSignature(129 /* CallSignature */, 50 /* ColonToken */, false, isGenerator, method); - method.body = parseFunctionBlockOrSemicolon(isGenerator); - return finishNode(method); - } - else { - var property = createNode(124 /* Property */, fullStart); - setModifiers(property, modifiers); - if (flags) { - property.flags = flags; - } - property.name = name; - property.type = parseTypeAnnotation(); - property.initializer = allowInAnd(function () { return parseInitializer(false); }); - parseSemicolon(); - return finishNode(property); - } - } - function parseMemberAccessorDeclaration(kind, fullStart, modifiers) { - var node = createNode(kind, fullStart); - setModifiers(node, modifiers); - node.name = parsePropertyName(); - fillSignature(129 /* CallSignature */, 50 /* ColonToken */, false, false, node); - node.body = parseFunctionBlockOrSemicolon(false); - return finishNode(node); - } - function isClassMemberStart() { - var idToken; - while (isModifier(token)) { - idToken = token; - nextToken(); - } - if (token === 34 /* AsteriskToken */) { - return true; - } - if (isPropertyName()) { - idToken = token; - nextToken(); - } - if (token === 17 /* OpenBracketToken */) { - return true; - } - if (idToken !== undefined) { - if (!isKeyword(idToken) || idToken === 117 /* SetKeyword */ || idToken === 113 /* GetKeyword */) { - return true; - } - switch (token) { - case 15 /* OpenParenToken */: - case 23 /* LessThanToken */: - case 50 /* ColonToken */: - case 51 /* EqualsToken */: - case 49 /* QuestionToken */: - return true; - default: - return canParseSemicolon(); - } - } - return false; - } - function parseModifiers() { - var flags = 0; - var modifiers; - while (true) { - var modifierStart = scanner.getTokenPos(); - var modifierKind = token; - if (!parseAnyContextualModifier()) { - break; - } - if (!modifiers) { - modifiers = []; - } - flags |= modifierToFlag(modifierKind); - modifiers.push(finishNode(createNode(modifierKind, modifierStart))); - } - if (modifiers) { - modifiers.flags = flags; - } - return modifiers; - } - function parseClassMemberDeclaration() { - var fullStart = getNodePos(); - var modifiers = parseModifiers(); - if (parseContextualModifier(113 /* GetKeyword */)) { - return parseMemberAccessorDeclaration(127 /* GetAccessor */, fullStart, modifiers); - } - if (parseContextualModifier(117 /* SetKeyword */)) { - return parseMemberAccessorDeclaration(128 /* SetAccessor */, fullStart, modifiers); - } - if (token === 111 /* ConstructorKeyword */) { - return parseConstructorDeclaration(fullStart, modifiers); - } - if (token >= 63 /* Identifier */ || token === 7 /* StringLiteral */ || token === 6 /* NumericLiteral */ || token === 34 /* AsteriskToken */) { - return parsePropertyMemberDeclaration(fullStart, modifiers); - } - if (token === 17 /* OpenBracketToken */) { - return parseIndexSignatureMember(fullStart, modifiers); - } - ts.Debug.fail("Should not have attempted to parse class member declaration."); - } - function parseClassDeclaration(fullStart, modifiers) { - var node = createNode(188 /* ClassDeclaration */, fullStart); - setModifiers(node, modifiers); - parseExpected(67 /* ClassKeyword */); - node.name = parseIdentifier(); - node.typeParameters = parseTypeParameters(); - node.baseType = inGeneratorParameterContext() ? doOutsideOfYieldContext(parseClassBaseType) : parseClassBaseType(); - if (parseOptional(100 /* ImplementsKeyword */)) { - node.implementedTypes = parseDelimitedList(8 /* BaseTypeReferences */, parseTypeReference); - } - if (parseExpected(13 /* OpenBraceToken */)) { - node.members = inGeneratorParameterContext() ? doOutsideOfYieldContext(parseClassMembers) : parseClassMembers(); - parseExpected(14 /* CloseBraceToken */); - } - else { - node.members = createMissingList(); - } - return finishNode(node); - } - function parseClassMembers() { - return parseList(6 /* ClassMembers */, false, parseClassMemberDeclaration); - } - function parseClassBaseType() { - return parseOptional(77 /* ExtendsKeyword */) ? parseTypeReference() : undefined; - } - function parseInterfaceDeclaration(fullStart, modifiers) { - var node = createNode(189 /* InterfaceDeclaration */, fullStart); - setModifiers(node, modifiers); - parseExpected(101 /* InterfaceKeyword */); - node.name = parseIdentifier(); - node.typeParameters = parseTypeParameters(); - if (parseOptional(77 /* ExtendsKeyword */)) { - node.baseTypes = parseDelimitedList(8 /* BaseTypeReferences */, parseTypeReference); - } - node.members = parseObjectType(); - return finishNode(node); - } - function parseTypeAliasDeclaration(fullStart, modifiers) { - var node = createNode(190 /* TypeAliasDeclaration */, fullStart); - setModifiers(node, modifiers); - parseExpected(119 /* TypeKeyword */); - node.name = parseIdentifier(); - parseExpected(51 /* EqualsToken */); - node.type = parseType(); - parseSemicolon(); - return finishNode(node); - } - function parseEnumMember() { - var node = createNode(196 /* EnumMember */, scanner.getStartPos()); - node.name = parsePropertyName(); - node.initializer = allowInAnd(function () { return parseInitializer(false); }); - return finishNode(node); - } - function parseAndCheckEnumDeclaration(fullStart, flags) { - var node = createNode(191 /* EnumDeclaration */, fullStart); - node.flags = flags; - if (flags & 4096 /* Const */) { - parseExpected(68 /* ConstKeyword */); - } - parseExpected(75 /* EnumKeyword */); - node.name = parseIdentifier(); - if (parseExpected(13 /* OpenBraceToken */)) { - node.members = parseDelimitedList(7 /* EnumMembers */, parseEnumMember); - parseExpected(14 /* CloseBraceToken */); - } - else { - node.members = createMissingList(); - } - return finishNode(node); - } - function parseModuleBody() { - var node = createNode(193 /* ModuleBlock */, scanner.getStartPos()); - if (parseExpected(13 /* OpenBraceToken */)) { - node.statements = parseList(1 /* ModuleElements */, false, parseModuleElement); - parseExpected(14 /* CloseBraceToken */); - } - else { - node.statements = createMissingList(); - } - return finishNode(node); - } - function parseInternalModuleTail(fullStart, flags) { - var node = createNode(192 /* ModuleDeclaration */, fullStart); - node.flags = flags; - node.name = parseIdentifier(); - node.body = parseOptional(19 /* DotToken */) ? parseInternalModuleTail(getNodePos(), 1 /* Export */) : parseModuleBody(); - return finishNode(node); - } - function parseAmbientExternalModuleDeclaration(fullStart, flags) { - var node = createNode(192 /* ModuleDeclaration */, fullStart); - node.flags = flags; - node.name = parseStringLiteral(); - node.body = parseModuleBody(); - return finishNode(node); - } - function parseModuleDeclaration(fullStart, flags) { - parseExpected(114 /* ModuleKeyword */); - return token === 7 /* StringLiteral */ ? parseAmbientExternalModuleDeclaration(fullStart, flags) : parseInternalModuleTail(fullStart, flags); - } - function parseImportDeclaration(fullStart, modifiers) { - var node = createNode(194 /* ImportDeclaration */, fullStart); - setModifiers(node, modifiers); - parseExpected(83 /* ImportKeyword */); - node.name = parseIdentifier(); - parseExpected(51 /* EqualsToken */); - var entityName = parseEntityName(false); - if (entityName.kind === 63 /* Identifier */ && entityName.text === "require" && parseOptional(15 /* OpenParenToken */)) { - node.externalModuleName = parseStringLiteral(); - parseExpected(16 /* CloseParenToken */); - } - else { - node.entityName = entityName; - } - parseSemicolon(); - return finishNode(node); - } - function parseExportAssignmentTail(fullStart, modifiers) { - var node = createNode(195 /* ExportAssignment */, fullStart); - setModifiers(node, modifiers); - node.exportName = parseIdentifier(); - parseSemicolon(); - return finishNode(node); - } - function isDeclarationStart() { - switch (token) { - case 96 /* VarKeyword */: - case 102 /* LetKeyword */: - case 68 /* ConstKeyword */: - case 81 /* FunctionKeyword */: - return true; - case 67 /* ClassKeyword */: - case 101 /* InterfaceKeyword */: - case 75 /* EnumKeyword */: - case 83 /* ImportKeyword */: - case 119 /* TypeKeyword */: - return lookAhead(function () { return nextToken() >= 63 /* Identifier */; }); - case 114 /* ModuleKeyword */: - return lookAhead(function () { return nextToken() >= 63 /* Identifier */ || token === 7 /* StringLiteral */; }); - case 76 /* ExportKeyword */: - return lookAhead(function () { return nextToken() === 51 /* EqualsToken */ || isDeclarationStart(); }); - case 112 /* DeclareKeyword */: - case 106 /* PublicKeyword */: - case 104 /* PrivateKeyword */: - case 105 /* ProtectedKeyword */: - case 107 /* StaticKeyword */: - return lookAhead(function () { - nextToken(); - return isDeclarationStart(); - }); - } - } - function parseDeclaration() { - var fullStart = getNodePos(); - var modifiers = parseModifiers(); - if (token === 76 /* ExportKeyword */) { - nextToken(); - if (parseOptional(51 /* EqualsToken */)) { - return parseExportAssignmentTail(fullStart, modifiers); - } - } - var flags = modifiers ? modifiers.flags : 0; - var result; - switch (token) { - case 96 /* VarKeyword */: - case 102 /* LetKeyword */: - result = parseVariableStatement(fullStart, modifiers); - break; - case 68 /* ConstKeyword */: - var isConstEnum = lookAhead(function () { return nextToken() === 75 /* EnumKeyword */; }); - if (isConstEnum) { - result = parseAndCheckEnumDeclaration(fullStart, flags | 4096 /* Const */); - } - else { - result = parseVariableStatement(fullStart, modifiers); - } - break; - case 81 /* FunctionKeyword */: - result = parseFunctionDeclaration(fullStart, modifiers); - break; - case 67 /* ClassKeyword */: - result = parseClassDeclaration(fullStart, modifiers); - break; - case 101 /* InterfaceKeyword */: - result = parseInterfaceDeclaration(fullStart, modifiers); - break; - case 119 /* TypeKeyword */: - result = parseTypeAliasDeclaration(fullStart, modifiers); - break; - case 75 /* EnumKeyword */: - result = parseAndCheckEnumDeclaration(fullStart, flags); - break; - case 114 /* ModuleKeyword */: - result = parseModuleDeclaration(fullStart, flags); - break; - case 83 /* ImportKeyword */: - result = parseImportDeclaration(fullStart, modifiers); - break; - default: - error(ts.Diagnostics.Declaration_expected); - } - if (modifiers) { - result.modifiers = modifiers; - } - return result; - } - function isSourceElement(inErrorRecovery) { - return isDeclarationStart() || isStatement(inErrorRecovery); - } - function parseSourceElement() { - return parseSourceElementOrModuleElement(); - } - function parseModuleElement() { - return parseSourceElementOrModuleElement(); - } - function parseSourceElementOrModuleElement() { - return isDeclarationStart() ? parseDeclaration() : parseStatement(); - } - function processReferenceComments() { - var referencedFiles = []; - var amdDependencies = []; - var amdModuleName; - commentRanges = []; - token = scanner.scan(); - for (var i = 0; i < commentRanges.length; i++) { - var range = commentRanges[i]; - var comment = sourceText.substring(range.pos, range.end); - var referencePathMatchResult = getFileReferenceFromReferencePath(comment, range); - if (referencePathMatchResult) { - var fileReference = referencePathMatchResult.fileReference; - file.hasNoDefaultLib = referencePathMatchResult.isNoDefaultLib; - var diagnostic = referencePathMatchResult.diagnostic; - if (fileReference) { - referencedFiles.push(fileReference); - } - if (diagnostic) { - errorAtPos(range.pos, range.end - range.pos, diagnostic); - } - } - else { - var amdModuleNameRegEx = /^\/\/\/\s* 0) { - syntacticDiagnostics = file.parseDiagnostics; - } - else { - syntacticDiagnostics = file.grammarDiagnostics; - checkGrammar(sourceText, languageVersion, file); - } - } - ts.Debug.assert(syntacticDiagnostics !== undefined); - return syntacticDiagnostics; - } - scanner = ts.createScanner(languageVersion, true, sourceText, scanError, onComment); - var rootNodeFlags = 0; - if (ts.fileExtensionIs(filename, ".d.ts")) { - rootNodeFlags = 1024 /* DeclarationFile */; - } - file = createRootNode(197 /* SourceFile */, 0, sourceText.length, rootNodeFlags); - file.filename = ts.normalizePath(filename); - file.text = sourceText; - file.getLineAndCharacterFromPosition = getLineAndCharacterFromSourcePosition; - file.getPositionFromLineAndCharacter = getPositionFromSourceLineAndCharacter; - file.getLineStarts = getLineStarts; - file.getSyntacticDiagnostics = getSyntacticDiagnostics; - file.parseDiagnostics = []; - file.grammarDiagnostics = []; - file.semanticDiagnostics = []; - var referenceComments = processReferenceComments(); - file.referencedFiles = referenceComments.referencedFiles; - file.amdDependencies = referenceComments.amdDependencies; - file.amdModuleName = referenceComments.amdModuleName; - file.statements = parseList(0 /* SourceElements */, true, parseSourceElement); - file.externalModuleIndicator = getExternalModuleIndicator(); - file.nodeCount = nodeCount; - file.identifierCount = identifierCount; - file.version = version; - file.isOpen = isOpen; - file.languageVersion = languageVersion; - file.identifiers = identifiers; - return file; - } - ts.createSourceFile = createSourceFile; - function isLeftHandSideExpression(expr) { - if (expr) { - switch (expr.kind) { - case 145 /* PropertyAccess */: - case 146 /* IndexedAccess */: - case 148 /* NewExpression */: - case 147 /* CallExpression */: - case 149 /* TaggedTemplateExpression */: - case 141 /* ArrayLiteral */: - case 151 /* ParenExpression */: - case 142 /* ObjectLiteral */: - case 152 /* FunctionExpression */: - case 63 /* Identifier */: - case 120 /* Missing */: - case 8 /* RegularExpressionLiteral */: - case 6 /* NumericLiteral */: - case 7 /* StringLiteral */: - case 9 /* NoSubstitutionTemplateLiteral */: - case 158 /* TemplateExpression */: - case 78 /* FalseKeyword */: - case 87 /* NullKeyword */: - case 91 /* ThisKeyword */: - case 93 /* TrueKeyword */: - case 89 /* SuperKeyword */: - return true; - } - } - return false; - } - function isAssignmentOperator(token) { - return token >= 51 /* FirstAssignment */ && token <= 62 /* LastAssignment */; - } - function checkGrammar(sourceText, languageVersion, file) { - var grammarDiagnostics = file.grammarDiagnostics; - var scanner = ts.createScanner(languageVersion, true, sourceText); - var inAmbientContext = ts.fileExtensionIs(file.filename, ".d.ts"); - var inFunctionBlock = false; - var parent; - visitNode(file); - function visitNode(node) { - var savedParent = parent; - node.parent = parent; - parent = node; - if (!checkModifiers(node)) { - var savedInFunctionBlock = inFunctionBlock; - if (node.kind === 187 /* FunctionBlock */) { - inFunctionBlock = true; - } - var savedInAmbientContext = inAmbientContext; - if (node.flags & 2 /* Ambient */) { - inAmbientContext = true; - } - checkNodeAndChildren(node); - inAmbientContext = savedInAmbientContext; - inFunctionBlock = savedInFunctionBlock; - } - parent = savedParent; - } - function checkNodeAndChildren(node) { - var nodeKind = node.kind; - if (inAmbientContext && checkForStatementInAmbientContext(node, nodeKind)) { - return; - } - if (checkNode(node, nodeKind)) { - return; - } - forEachChild(node, visitNode); - } - function checkNode(node, nodeKind) { - switch (nodeKind) { - case 153 /* ArrowFunction */: - case 129 /* CallSignature */: - case 134 /* ConstructorType */: - case 130 /* ConstructSignature */: - case 133 /* FunctionType */: - return checkAnyParsedSignature(node); - case 172 /* BreakStatement */: - case 171 /* ContinueStatement */: - return checkBreakOrContinueStatement(node); - case 147 /* CallExpression */: - case 148 /* NewExpression */: - return checkCallOrNewExpression(node); - case 191 /* EnumDeclaration */: return checkEnumDeclaration(node); - case 156 /* BinaryExpression */: return checkBinaryExpression(node); - case 182 /* CatchBlock */: return checkCatchBlock(node); - case 188 /* ClassDeclaration */: return checkClassDeclaration(node); - case 126 /* Constructor */: return checkConstructor(node); - case 195 /* ExportAssignment */: return checkExportAssignment(node); - case 170 /* ForInStatement */: return checkForInStatement(node); - case 169 /* ForStatement */: return checkForStatement(node); - case 186 /* FunctionDeclaration */: return checkFunctionDeclaration(node); - case 152 /* FunctionExpression */: return checkFunctionExpression(node); - case 127 /* GetAccessor */: return checkGetAccessor(node); - case 146 /* IndexedAccess */: return checkIndexedAccess(node); - case 131 /* IndexSignature */: return checkIndexSignature(node); - case 189 /* InterfaceDeclaration */: return checkInterfaceDeclaration(node); - case 178 /* LabeledStatement */: return checkLabeledStatement(node); - case 125 /* Method */: return checkMethod(node); - case 192 /* ModuleDeclaration */: return checkModuleDeclaration(node); - case 142 /* ObjectLiteral */: return checkObjectLiteral(node); - case 6 /* NumericLiteral */: return checkNumericLiteral(node); - case 123 /* Parameter */: return checkParameter(node); - case 155 /* PostfixOperator */: return checkPostfixOperator(node); - case 154 /* PrefixOperator */: return checkPrefixOperator(node); - case 124 /* Property */: return checkProperty(node); - case 143 /* PropertyAssignment */: return checkPropertyAssignment(node); - case 173 /* ReturnStatement */: return checkReturnStatement(node); - case 128 /* SetAccessor */: return checkSetAccessor(node); - case 197 /* SourceFile */: return checkSourceFile(node); - case 144 /* ShorthandPropertyAssignment */: return checkShorthandPropertyAssignment(node); - case 175 /* SwitchStatement */: return checkSwitchStatement(node); - case 149 /* TaggedTemplateExpression */: return checkTaggedTemplateExpression(node); - case 138 /* TupleType */: return checkTupleType(node); - case 122 /* TypeParameter */: return checkTypeParameter(node); - case 132 /* TypeReference */: return checkTypeReference(node); - case 185 /* VariableDeclaration */: return checkVariableDeclaration(node); - case 163 /* VariableStatement */: return checkVariableStatement(node); - case 174 /* WithStatement */: return checkWithStatement(node); - case 160 /* YieldExpression */: return checkYieldExpression(node); - } - } - function grammarErrorOnFirstToken(node, message, arg0, arg1, arg2) { - var start = ts.skipTrivia(sourceText, node.pos); - scanner.setTextPos(start); - scanner.scan(); - var end = scanner.getTextPos(); - grammarDiagnostics.push(ts.createFileDiagnostic(file, start, end - start, message, arg0, arg1, arg2)); - return true; - } - function grammarErrorOnNode(node, message, arg0, arg1, arg2) { - var span = getErrorSpanForNode(node); - var start = span.end > span.pos ? ts.skipTrivia(file.text, span.pos) : span.pos; - var length = span.end - start; - grammarDiagnostics.push(ts.createFileDiagnostic(file, start, length, message, arg0, arg1, arg2)); - return true; - } - function grammarErrorAtPos(start, length, message, arg0, arg1, arg2) { - grammarDiagnostics.push(ts.createFileDiagnostic(file, start, length, message, arg0, arg1, arg2)); - return true; - } - function reportInvalidUseInStrictMode(node) { - var name = sourceText.substring(ts.skipTrivia(sourceText, node.pos), node.end); - return grammarErrorOnNode(node, ts.Diagnostics.Invalid_use_of_0_in_strict_mode, name); - } - function checkForStatementInAmbientContext(node, kind) { - switch (kind) { - case 162 /* Block */: - case 164 /* EmptyStatement */: - case 166 /* IfStatement */: - case 167 /* DoStatement */: - case 168 /* WhileStatement */: - case 169 /* ForStatement */: - case 170 /* ForInStatement */: - case 171 /* ContinueStatement */: - case 172 /* BreakStatement */: - case 173 /* ReturnStatement */: - case 174 /* WithStatement */: - case 175 /* SwitchStatement */: - case 179 /* ThrowStatement */: - case 180 /* TryStatement */: - case 184 /* DebuggerStatement */: - case 178 /* LabeledStatement */: - case 165 /* ExpressionStatement */: - return grammarErrorOnFirstToken(node, ts.Diagnostics.Statements_are_not_allowed_in_ambient_contexts); - } - } - function checkAnyParsedSignature(node) { - return checkTypeParameterList(node.typeParameters) || checkParameterList(node.parameters); - } - function checkBinaryExpression(node) { - if (node.parserContextFlags & 1 /* StrictMode */) { - if (isLeftHandSideExpression(node.left) && isAssignmentOperator(node.operator)) { - if (isEvalOrArgumentsIdentifier(node.left)) { - return reportInvalidUseInStrictMode(node.left); - } - } - } - } - function isIterationStatement(node, lookInLabeledStatements) { - switch (node.kind) { - case 169 /* ForStatement */: - case 170 /* ForInStatement */: - case 167 /* DoStatement */: - case 168 /* WhileStatement */: - return true; - case 178 /* LabeledStatement */: - return lookInLabeledStatements && isIterationStatement(node.statement, lookInLabeledStatements); - } - return false; - } - function checkLabeledStatement(node) { - var current = node.parent; - while (current) { - if (isAnyFunction(current)) { - break; - } - if (current.kind === 178 /* LabeledStatement */ && current.label.text === node.label.text) { - return grammarErrorOnNode(node.label, ts.Diagnostics.Duplicate_label_0, getTextOfNodeFromSourceText(sourceText, node.label)); - } - current = current.parent; - } - } - function checkBreakOrContinueStatement(node) { - var current = node; - while (current) { - if (isAnyFunction(current)) { - return grammarErrorOnNode(node, ts.Diagnostics.Jump_target_cannot_cross_function_boundary); - } - switch (current.kind) { - case 178 /* LabeledStatement */: - if (node.label && current.label.text === node.label.text) { - var isMisplacedContinueLabel = node.kind === 171 /* ContinueStatement */ && !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 175 /* SwitchStatement */: - if (node.kind === 172 /* BreakStatement */ && !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 === 172 /* BreakStatement */ ? 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 === 172 /* BreakStatement */ ? 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 checkCallOrNewExpression(node) { - return checkTypeArguments(node.typeArguments) || checkArguments(node.arguments); - } - function checkArguments(arguments) { - return checkForDisallowedTrailingComma(arguments) || checkForOmittedArgument(arguments); - } - function checkTypeArguments(typeArguments) { - return checkForDisallowedTrailingComma(typeArguments) || checkForAtLeastOneTypeArgument(typeArguments) || checkForMissingTypeArgument(typeArguments); - } - function checkForOmittedArgument(arguments) { - if (arguments) { - for (var i = 0, n = arguments.length; i < n; i++) { - var arg = arguments[i]; - if (arg.kind === 161 /* OmittedExpression */) { - return grammarErrorAtPos(arg.pos, 0, ts.Diagnostics.Argument_expression_expected); - } - } - } - } - function checkForMissingTypeArgument(typeArguments) { - if (typeArguments) { - for (var i = 0, n = typeArguments.length; i < n; i++) { - var arg = typeArguments[i]; - if (arg.kind === 120 /* Missing */) { - return grammarErrorAtPos(arg.pos, 0, ts.Diagnostics.Type_expected); - } - } - } - } - function checkForAtLeastOneTypeArgument(typeArguments) { - if (typeArguments && typeArguments.length === 0) { - var start = typeArguments.pos - "<".length; - var end = ts.skipTrivia(sourceText, typeArguments.end) + ">".length; - return grammarErrorAtPos(start, end - start, ts.Diagnostics.Type_argument_list_cannot_be_empty); - } - } - function checkForDisallowedTrailingComma(list) { - if (list && list.hasTrailingComma) { - var start = list.end - ",".length; - var end = list.end; - return grammarErrorAtPos(start, end - start, ts.Diagnostics.Trailing_comma_not_allowed); - } - } - function checkCatchBlock(node) { - if (node.type) { - var colonStart = ts.skipTrivia(sourceText, node.variable.end); - return grammarErrorAtPos(colonStart, ":".length, ts.Diagnostics.Catch_clause_parameter_cannot_have_a_type_annotation); - } - if (node.parserContextFlags & 1 /* StrictMode */ && isEvalOrArgumentsIdentifier(node.variable)) { - return reportInvalidUseInStrictMode(node.variable); - } - } - function checkClassDeclaration(node) { - return checkForDisallowedTrailingComma(node.implementedTypes) || checkForAtLeastOneHeritageClause(node.implementedTypes, "implements"); - } - function checkForAtLeastOneHeritageClause(types, listType) { - if (types && types.length === 0) { - return grammarErrorAtPos(types.pos, 0, ts.Diagnostics._0_list_cannot_be_empty, listType); - } - } - function checkConstructor(node) { - return checkAnyParsedSignature(node) || checkConstructorTypeParameters(node) || checkConstructorTypeAnnotation(node) || checkForBodyInAmbientContext(node.body, true); - } - function checkConstructorTypeParameters(node) { - if (node.typeParameters) { - return grammarErrorAtPos(node.typeParameters.pos, node.typeParameters.end - node.typeParameters.pos, ts.Diagnostics.Type_parameters_cannot_appear_on_a_constructor_declaration); - } - } - function checkConstructorTypeAnnotation(node) { - if (node.type) { - return grammarErrorOnNode(node.type, ts.Diagnostics.Type_annotation_cannot_appear_on_a_constructor_declaration); - } - } - function checkEnumDeclaration(enumDecl) { - var enumIsConst = (enumDecl.flags & 4096 /* Const */) !== 0; - var hasError = false; - if (!enumIsConst) { - var inConstantEnumMemberSection = true; - for (var i = 0, n = enumDecl.members.length; i < n; i++) { - var node = enumDecl.members[i]; - 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 isIntegerLiteral(expression) { - function isInteger(literalExpression) { - return /^[0-9]+([eE]\+?[0-9]+)?$/.test(literalExpression.text); - } - if (expression.kind === 154 /* PrefixOperator */) { - var unaryExpression = expression; - if (unaryExpression.operator === 32 /* PlusToken */ || unaryExpression.operator === 33 /* MinusToken */) { - expression = unaryExpression.operand; - } - } - if (expression.kind === 6 /* NumericLiteral */) { - return isInteger(expression); - } - return false; - } - function checkExportAssignment(node) { - if (node.flags & 243 /* Modifier */) { - return grammarErrorOnFirstToken(node, ts.Diagnostics.An_export_assignment_cannot_have_modifiers); - } - } - function checkForInStatement(node) { - return checkVariableDeclarations(node.declarations) || checkForMoreThanOneDeclaration(node.declarations); - } - function checkForStatement(node) { - return checkVariableDeclarations(node.declarations); - } - function checkForMoreThanOneDeclaration(declarations) { - if (declarations && declarations.length > 1) { - return grammarErrorOnFirstToken(declarations[1], ts.Diagnostics.Only_a_single_variable_declaration_is_allowed_in_a_for_in_statement); - } - } - function checkFunctionDeclaration(node) { - return checkAnyParsedSignature(node) || checkFunctionName(node.name) || checkForBodyInAmbientContext(node.body, false); - } - function checkFunctionExpression(node) { - return checkAnyParsedSignature(node) || checkFunctionName(node.name); - } - function checkFunctionName(name) { - if (name && name.parserContextFlags & 1 /* StrictMode */ && isEvalOrArgumentsIdentifier(name)) { - return reportInvalidUseInStrictMode(name); - } - } - function checkGetAccessor(node) { - return checkAnyParsedSignature(node) || checkAccessor(node); - } - function checkIndexedAccess(node) { - if (node.index.kind === 120 /* Missing */ && node.parent.kind === 148 /* NewExpression */ && node.parent.func === node) { - var start = ts.skipTrivia(sourceText, node.parent.pos); - var end = node.end; - return grammarErrorAtPos(start, end - start, ts.Diagnostics.new_T_cannot_be_used_to_create_an_array_Use_new_Array_T_instead); - } - } - function checkIndexSignature(node) { - return checkIndexSignatureParameters(node) || checkForIndexSignatureModifiers(node); - } - function checkForIndexSignatureModifiers(node) { - if (node.flags & 243 /* Modifier */) { - return grammarErrorOnFirstToken(node, ts.Diagnostics.Modifiers_not_permitted_on_index_signature_members); - } - } - function checkIndexSignatureParameters(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); - } - } - else if (parameter.flags & 8 /* Rest */) { - return grammarErrorOnNode(parameter.name, ts.Diagnostics.An_index_signature_cannot_have_a_rest_parameter); - } - else if (parameter.flags & 243 /* Modifier */) { - return grammarErrorOnNode(parameter.name, ts.Diagnostics.An_index_signature_parameter_cannot_have_an_accessibility_modifier); - } - else if (parameter.flags & 4 /* QuestionMark */) { - return grammarErrorOnNode(parameter.name, ts.Diagnostics.An_index_signature_parameter_cannot_have_a_question_mark); - } - else if (parameter.initializer) { - return grammarErrorOnNode(parameter.name, ts.Diagnostics.An_index_signature_parameter_cannot_have_an_initializer); - } - else if (!parameter.type) { - return grammarErrorOnNode(parameter.name, ts.Diagnostics.An_index_signature_parameter_must_have_a_type_annotation); - } - else if (parameter.type.kind !== 118 /* StringKeyword */ && parameter.type.kind !== 116 /* NumberKeyword */) { - return grammarErrorOnNode(parameter.name, ts.Diagnostics.An_index_signature_parameter_type_must_be_string_or_number); - } - else if (!node.type) { - return grammarErrorOnNode(node, ts.Diagnostics.An_index_signature_must_have_a_type_annotation); - } - } - function checkInterfaceDeclaration(node) { - return checkForDisallowedTrailingComma(node.baseTypes) || checkForAtLeastOneHeritageClause(node.baseTypes, "extends"); - } - function checkMethod(node) { - return checkAnyParsedSignature(node) || checkForBodyInAmbientContext(node.body, false) || (node.parent.kind === 188 /* ClassDeclaration */ && checkForInvalidQuestionMark(node, ts.Diagnostics.A_class_member_cannot_be_declared_optional)); - } - function checkForBodyInAmbientContext(body, isConstructor) { - if (inAmbientContext && body && body.kind === 187 /* FunctionBlock */) { - var diagnostic = isConstructor ? ts.Diagnostics.A_constructor_implementation_cannot_be_declared_in_an_ambient_context : ts.Diagnostics.A_function_implementation_cannot_be_declared_in_an_ambient_context; - return grammarErrorOnFirstToken(body, diagnostic); - } - } - function checkModuleDeclaration(node) { - return checkModuleDeclarationName(node) || checkModuleDeclarationStatements(node); - } - function checkModuleDeclarationName(node) { - if (!inAmbientContext && node.name.kind === 7 /* StringLiteral */) { - return grammarErrorOnNode(node.name, ts.Diagnostics.Only_ambient_modules_can_use_quoted_names); - } - } - function checkModuleDeclarationStatements(node) { - if (node.name.kind === 63 /* Identifier */ && node.body.kind === 193 /* ModuleBlock */) { - var statements = node.body.statements; - for (var i = 0, n = statements.length; i < n; i++) { - var statement = statements[i]; - if (statement.kind === 195 /* ExportAssignment */) { - return grammarErrorOnNode(statement, ts.Diagnostics.An_export_assignment_cannot_be_used_in_an_internal_module); - } - else if (statement.kind === 194 /* ImportDeclaration */ && statement.externalModuleName) { - return grammarErrorOnNode(statement.externalModuleName, ts.Diagnostics.Import_declarations_in_an_internal_module_cannot_reference_an_external_module); - } - } - } - } - function checkObjectLiteral(node) { - var seen = {}; - var Property = 1; - var GetAccessor = 2; - var SetAccesor = 4; - var GetOrSetAccessor = GetAccessor | SetAccesor; - var inStrictMode = (node.parserContextFlags & 1 /* StrictMode */) !== 0; - for (var i = 0, n = node.properties.length; i < n; i++) { - var prop = node.properties[i]; - if (prop.kind === 161 /* OmittedExpression */) { - continue; - } - var p = prop; - var name = p.name; - var currentKind; - if (p.kind === 143 /* PropertyAssignment */) { - currentKind = Property; - } - else if (p.kind === 144 /* ShorthandPropertyAssignment */) { - currentKind = Property; - } - else if (p.kind === 127 /* GetAccessor */) { - currentKind = GetAccessor; - } - else if (p.kind === 128 /* SetAccessor */) { - currentKind = SetAccesor; - } - else { - ts.Debug.fail("Unexpected syntax kind:" + p.kind); - } - if (!ts.hasProperty(seen, name.text)) { - seen[name.text] = currentKind; - } - else { - var existingKind = seen[name.text]; - if (currentKind === Property && existingKind === Property) { - if (inStrictMode) { - grammarErrorOnNode(name, 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.text] = currentKind | existingKind; - } - else { - return grammarErrorOnNode(name, ts.Diagnostics.An_object_literal_cannot_have_multiple_get_Slashset_accessors_with_the_same_name); - } - } - else { - return grammarErrorOnNode(name, ts.Diagnostics.An_object_literal_cannot_have_property_and_accessor_with_the_same_name); - } - } - } - } - function checkNumericLiteral(node) { - if (node.flags & 8192 /* OctalLiteral */) { - if (node.parserContextFlags & 1 /* StrictMode */) { - return grammarErrorOnNode(node, ts.Diagnostics.Octal_literals_are_not_allowed_in_strict_mode); - } - else if (languageVersion >= 1 /* ES5 */) { - return grammarErrorOnNode(node, ts.Diagnostics.Octal_literals_are_not_available_when_targeting_ECMAScript_5_and_higher); - } - } - } - function checkModifiers(node) { - switch (node.kind) { - case 127 /* GetAccessor */: - case 128 /* SetAccessor */: - case 126 /* Constructor */: - case 124 /* Property */: - case 125 /* Method */: - case 131 /* IndexSignature */: - case 188 /* ClassDeclaration */: - case 189 /* InterfaceDeclaration */: - case 192 /* ModuleDeclaration */: - case 191 /* EnumDeclaration */: - case 195 /* ExportAssignment */: - case 163 /* VariableStatement */: - case 186 /* FunctionDeclaration */: - case 190 /* TypeAliasDeclaration */: - case 194 /* ImportDeclaration */: - case 123 /* Parameter */: - break; - default: - return false; - } - if (!node.modifiers) { - return; - } - var lastStatic, lastPrivate, lastProtected, lastDeclare; - var flags = 0; - for (var i = 0, n = node.modifiers.length; i < n; i++) { - var modifier = node.modifiers[i]; - switch (modifier.kind) { - case 106 /* PublicKeyword */: - case 105 /* ProtectedKeyword */: - case 104 /* PrivateKeyword */: - var text; - if (modifier.kind === 106 /* PublicKeyword */) { - text = "public"; - } - else if (modifier.kind === 105 /* ProtectedKeyword */) { - text = "protected"; - lastProtected = modifier; - } - else { - text = "private"; - lastPrivate = modifier; - } - if (flags & 112 /* AccessibilityModifier */) { - return grammarErrorOnNode(modifier, ts.Diagnostics.Accessibility_modifier_already_seen); - } - else if (flags & 128 /* Static */) { - return grammarErrorOnNode(modifier, ts.Diagnostics._0_modifier_must_precede_1_modifier, text, "static"); - } - else if (node.parent.kind === 193 /* ModuleBlock */ || node.parent.kind === 197 /* SourceFile */) { - return grammarErrorOnNode(modifier, ts.Diagnostics._0_modifier_cannot_appear_on_a_module_element, text); - } - flags |= modifierToFlag(modifier.kind); - break; - case 107 /* StaticKeyword */: - if (flags & 128 /* Static */) { - return grammarErrorOnNode(modifier, ts.Diagnostics._0_modifier_already_seen, "static"); - } - else if (node.parent.kind === 193 /* ModuleBlock */ || node.parent.kind === 197 /* SourceFile */) { - return grammarErrorOnNode(modifier, ts.Diagnostics._0_modifier_cannot_appear_on_a_module_element, "static"); - } - else if (node.kind === 123 /* Parameter */) { - return grammarErrorOnNode(modifier, ts.Diagnostics._0_modifier_cannot_appear_on_a_parameter, "static"); - } - flags |= 128 /* Static */; - lastStatic = modifier; - break; - case 76 /* ExportKeyword */: - if (flags & 1 /* Export */) { - return grammarErrorOnNode(modifier, ts.Diagnostics._0_modifier_already_seen, "export"); - } - else if (flags & 2 /* Ambient */) { - return grammarErrorOnNode(modifier, ts.Diagnostics._0_modifier_must_precede_1_modifier, "export", "declare"); - } - else if (node.parent.kind === 188 /* ClassDeclaration */) { - return grammarErrorOnNode(modifier, ts.Diagnostics._0_modifier_cannot_appear_on_a_class_element, "export"); - } - else if (node.kind === 123 /* Parameter */) { - return grammarErrorOnNode(modifier, ts.Diagnostics._0_modifier_cannot_appear_on_a_parameter, "export"); - } - flags |= 1 /* Export */; - break; - case 112 /* DeclareKeyword */: - if (flags & 2 /* Ambient */) { - return grammarErrorOnNode(modifier, ts.Diagnostics._0_modifier_already_seen, "declare"); - } - else if (node.parent.kind === 188 /* ClassDeclaration */) { - return grammarErrorOnNode(modifier, ts.Diagnostics._0_modifier_cannot_appear_on_a_class_element, "declare"); - } - else if (node.kind === 123 /* Parameter */) { - return grammarErrorOnNode(modifier, ts.Diagnostics._0_modifier_cannot_appear_on_a_parameter, "declare"); - } - else if (inAmbientContext && node.parent.kind === 193 /* ModuleBlock */) { - return grammarErrorOnNode(modifier, ts.Diagnostics.A_declare_modifier_cannot_be_used_in_an_already_ambient_context); - } - flags |= 2 /* Ambient */; - lastDeclare = modifier; - break; - } - } - if (node.kind === 126 /* Constructor */) { - if (flags & 128 /* Static */) { - return grammarErrorOnNode(lastStatic, ts.Diagnostics._0_modifier_cannot_appear_on_a_constructor_declaration, "static"); - } - else if (flags & 64 /* Protected */) { - return grammarErrorOnNode(lastProtected, ts.Diagnostics._0_modifier_cannot_appear_on_a_constructor_declaration, "protected"); - } - else if (flags & 32 /* Private */) { - return grammarErrorOnNode(lastPrivate, ts.Diagnostics._0_modifier_cannot_appear_on_a_constructor_declaration, "private"); - } - } - else if (node.kind === 194 /* ImportDeclaration */ && flags & 2 /* Ambient */) { - return grammarErrorOnNode(lastDeclare, ts.Diagnostics.A_declare_modifier_cannot_be_used_with_an_import_declaration, "declare"); - } - else if (node.kind === 189 /* InterfaceDeclaration */ && flags & 2 /* Ambient */) { - return grammarErrorOnNode(lastDeclare, ts.Diagnostics.A_declare_modifier_cannot_be_used_with_an_interface_declaration, "declare"); - } - } - function checkParameter(node) { - if (node.parserContextFlags & 1 /* StrictMode */ && isEvalOrArgumentsIdentifier(node.name)) { - return reportInvalidUseInStrictMode(node.name); - } - } - function checkTypeParameterList(typeParameters) { - if (checkForDisallowedTrailingComma(typeParameters)) { - return true; - } - if (typeParameters && typeParameters.length === 0) { - var start = typeParameters.pos - "<".length; - var end = ts.skipTrivia(sourceText, typeParameters.end) + ">".length; - return grammarErrorAtPos(start, end - start, ts.Diagnostics.Type_parameter_list_cannot_be_empty); - } - } - function checkParameterList(parameters) { - if (checkForDisallowedTrailingComma(parameters)) { - return true; - } - var seenOptionalParameter = false; - var parameterCount = parameters.length; - for (var i = 0; i < parameterCount; i++) { - var parameter = parameters[i]; - if (parameter.flags & 8 /* Rest */) { - if (i !== (parameterCount - 1)) { - return grammarErrorOnNode(parameter.name, ts.Diagnostics.A_rest_parameter_must_be_last_in_a_parameter_list); - } - if (parameter.flags & 4 /* QuestionMark */) { - return grammarErrorOnNode(parameter.name, 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.flags & 4 /* QuestionMark */ || parameter.initializer) { - seenOptionalParameter = true; - if (parameter.flags & 4 /* QuestionMark */ && 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 checkPostfixOperator(node) { - if (node.parserContextFlags & 1 /* StrictMode */ && isEvalOrArgumentsIdentifier(node.operand)) { - return reportInvalidUseInStrictMode(node.operand); - } - } - function checkPrefixOperator(node) { - if (node.parserContextFlags & 1 /* StrictMode */) { - if ((node.operator === 37 /* PlusPlusToken */ || node.operator === 38 /* MinusMinusToken */) && isEvalOrArgumentsIdentifier(node.operand)) { - return reportInvalidUseInStrictMode(node.operand); - } - else if (node.operator === 72 /* DeleteKeyword */ && node.operand.kind === 63 /* Identifier */) { - return grammarErrorOnNode(node.operand, ts.Diagnostics.delete_cannot_be_called_on_an_identifier_in_strict_mode); - } - } - } - function checkProperty(node) { - return (node.parent.kind === 188 /* ClassDeclaration */ && checkForInvalidQuestionMark(node, ts.Diagnostics.A_class_member_cannot_be_declared_optional)) || checkForInitializerInAmbientContext(node); - } - function checkForInitializerInAmbientContext(node) { - if (inAmbientContext && node.initializer) { - return grammarErrorOnFirstToken(node.initializer, ts.Diagnostics.Initializers_are_not_allowed_in_ambient_contexts); - } - } - function checkPropertyAssignment(node) { - return checkForInvalidQuestionMark(node, ts.Diagnostics.An_object_member_cannot_be_declared_optional); - } - function checkForInvalidQuestionMark(node, message) { - if (node.flags & 4 /* QuestionMark */) { - var pos = ts.skipTrivia(sourceText, node.name.end); - return grammarErrorAtPos(pos, "?".length, message); - } - } - function checkReturnStatement(node) { - if (!inFunctionBlock) { - return grammarErrorOnFirstToken(node, ts.Diagnostics.A_return_statement_can_only_be_used_within_a_function_body); - } - } - function checkSetAccessor(node) { - return checkAnyParsedSignature(node) || checkAccessor(node); - } - function checkAccessor(accessor) { - var kind = accessor.kind; - if (languageVersion < 1 /* ES5 */) { - return grammarErrorOnNode(accessor.name, ts.Diagnostics.Accessors_are_only_available_when_targeting_ECMAScript_5_and_higher); - } - else if (inAmbientContext) { - return grammarErrorOnNode(accessor.name, ts.Diagnostics.An_accessor_cannot_be_declared_in_an_ambient_context); - } - else if (accessor.body === undefined) { - return grammarErrorAtPos(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 === 127 /* GetAccessor */ && accessor.parameters.length) { - return grammarErrorOnNode(accessor.name, ts.Diagnostics.A_get_accessor_cannot_have_parameters); - } - else if (kind === 128 /* SetAccessor */) { - 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.flags & 8 /* Rest */) { - return grammarErrorOnNode(accessor.name, ts.Diagnostics.A_set_accessor_cannot_have_rest_parameter); - } - else if (parameter.flags & 243 /* Modifier */) { - return grammarErrorOnNode(accessor.name, ts.Diagnostics.A_parameter_property_is_only_allowed_in_a_constructor_implementation); - } - else if (parameter.flags & 4 /* QuestionMark */) { - return grammarErrorOnNode(accessor.name, 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 checkSourceFile(node) { - return inAmbientContext && checkTopLevelElementsForRequiredDeclareModifier(file); - } - function checkTopLevelElementsForRequiredDeclareModifier(file) { - for (var i = 0, n = file.statements.length; i < n; i++) { - var decl = file.statements[i]; - if (isDeclaration(decl) || decl.kind === 163 /* VariableStatement */) { - if (checkTopLevelElementForRequiredDeclareModifier(decl)) { - return true; - } - } - } - } - function checkTopLevelElementForRequiredDeclareModifier(node) { - if (node.kind === 189 /* InterfaceDeclaration */ || node.kind === 194 /* ImportDeclaration */ || node.kind === 195 /* ExportAssignment */ || (node.flags & 2 /* Ambient */)) { - return false; - } - return grammarErrorOnFirstToken(node, ts.Diagnostics.A_declare_modifier_is_required_for_a_top_level_declaration_in_a_d_ts_file); - } - function checkShorthandPropertyAssignment(node) { - return checkForInvalidQuestionMark(node, ts.Diagnostics.An_object_member_cannot_be_declared_optional); - } - function checkSwitchStatement(node) { - var firstDefaultClause; - for (var i = 0, n = node.clauses.length; i < n; i++) { - var clause = node.clauses[i]; - if (clause.kind === 177 /* DefaultClause */) { - if (firstDefaultClause === undefined) { - firstDefaultClause = clause; - } - else { - var start = ts.skipTrivia(file.text, clause.pos); - var end = clause.statements.length > 0 ? clause.statements[0].pos : clause.end; - return grammarErrorAtPos(start, end - start, ts.Diagnostics.A_default_clause_cannot_appear_more_than_once_in_a_switch_statement); - } - } - } - } - function checkTaggedTemplateExpression(node) { - if (languageVersion < 2 /* ES6 */) { - return grammarErrorOnFirstToken(node.template, ts.Diagnostics.Tagged_templates_are_only_available_when_targeting_ECMAScript_6_and_higher); - } - } - function checkTupleType(node) { - return checkForDisallowedTrailingComma(node.elementTypes) || checkForAtLeastOneType(node); - } - function checkForAtLeastOneType(node) { - if (node.elementTypes.length === 0) { - return grammarErrorOnNode(node, ts.Diagnostics.A_tuple_type_element_list_cannot_be_empty); - } - } - function checkTypeParameter(node) { - if (node.expression) { - return grammarErrorOnFirstToken(node.expression, ts.Diagnostics.Type_expected); - } - } - function checkTypeReference(node) { - return checkTypeArguments(node.typeArguments); - } - function checkVariableDeclaration(node) { - if (inAmbientContext && node.initializer) { - var equalsPos = node.type ? ts.skipTrivia(sourceText, node.type.end) : ts.skipTrivia(sourceText, node.name.end); - return grammarErrorAtPos(equalsPos, "=".length, ts.Diagnostics.Initializers_are_not_allowed_in_ambient_contexts); - } - if (!inAmbientContext && !node.initializer && isConst(node)) { - return grammarErrorOnNode(node, ts.Diagnostics.const_declarations_must_be_initialized); - } - if (node.parserContextFlags & 1 /* StrictMode */ && isEvalOrArgumentsIdentifier(node.name)) { - return reportInvalidUseInStrictMode(node.name); - } - } - function checkVariableDeclarations(declarations) { - if (declarations) { - if (checkForDisallowedTrailingComma(declarations)) { - return true; - } - if (!declarations.length) { - return grammarErrorAtPos(declarations.pos, declarations.end - declarations.pos, ts.Diagnostics.Variable_declaration_list_cannot_be_empty); - } - var decl = declarations[0]; - if (languageVersion < 2 /* ES6 */) { - if (isLet(decl)) { - return grammarErrorOnFirstToken(decl, ts.Diagnostics.let_declarations_are_only_available_when_targeting_ECMAScript_6_and_higher); - } - else if (isConst(decl)) { - return grammarErrorOnFirstToken(decl, ts.Diagnostics.const_declarations_are_only_available_when_targeting_ECMAScript_6_and_higher); - } - } - } - } - function checkVariableStatement(node) { - return checkVariableDeclarations(node.declarations) || checkForDisallowedLetOrConstStatement(node); - } - function checkForDisallowedLetOrConstStatement(node) { - if (!allowLetAndConstDeclarations(node.parent)) { - if (isLet(node)) { - return grammarErrorOnNode(node, ts.Diagnostics.let_declarations_can_only_be_declared_inside_a_block); - } - else if (isConst(node)) { - return grammarErrorOnNode(node, ts.Diagnostics.const_declarations_can_only_be_declared_inside_a_block); - } - } - } - function allowLetAndConstDeclarations(parent) { - switch (parent.kind) { - case 166 /* IfStatement */: - case 167 /* DoStatement */: - case 168 /* WhileStatement */: - case 174 /* WithStatement */: - case 169 /* ForStatement */: - case 170 /* ForInStatement */: - return false; - case 178 /* LabeledStatement */: - return allowLetAndConstDeclarations(parent.parent); - } - return true; - } - function checkWithStatement(node) { - if (node.parserContextFlags & 1 /* StrictMode */) { - return grammarErrorOnFirstToken(node, ts.Diagnostics.with_statements_are_not_allowed_in_strict_mode); - } - } - function checkYieldExpression(node) { - if (!(node.parserContextFlags & 4 /* Yield */)) { - return grammarErrorOnFirstToken(node, ts.Diagnostics.yield_expression_must_be_contained_within_a_generator_declaration); - } - } - } - function createProgram(rootNames, options, host) { - var program; - var files = []; - var filesByName = {}; - var errors = []; - var seenNoDefaultLib = options.noLib; - var commonSourceDirectory; - ts.forEach(rootNames, function (name) { return processRootFile(name, false); }); - if (!seenNoDefaultLib) { - processRootFile(host.getDefaultLibFilename(), true); - } - verifyCompilerOptions(); - errors.sort(ts.compareDiagnostics); - program = { - getSourceFile: getSourceFile, - getSourceFiles: function () { return files; }, - getCompilerOptions: function () { return options; }, - getCompilerHost: function () { return host; }, - getDiagnostics: getDiagnostics, - getGlobalDiagnostics: getGlobalDiagnostics, - getTypeChecker: function (fullTypeCheckMode) { return ts.createTypeChecker(program, fullTypeCheckMode); }, - getCommonSourceDirectory: function () { return commonSourceDirectory; } - }; - return program; - function getSourceFile(filename) { - filename = host.getCanonicalFileName(filename); - return ts.hasProperty(filesByName, filename) ? filesByName[filename] : undefined; - } - function getDiagnostics(sourceFile) { - return sourceFile ? ts.filter(errors, function (e) { return e.file === sourceFile; }) : errors; - } - function getGlobalDiagnostics() { - return ts.filter(errors, function (e) { return !e.file; }); - } - 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) { - if (refEnd !== undefined && refPos !== undefined) { - var start = refPos; - var length = refEnd - refPos; - } - var diagnostic; - if (hasExtension(filename)) { - if (!ts.fileExtensionIs(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 (!(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) { - errors.push(ts.createFileDiagnostic(refFile, start, length, diagnostic, filename)); - } - else { - errors.push(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) { - errors.push(ts.createFileDiagnostic(refFile, refStart, refLength, 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); - } - ts.forEach(file.getSyntacticDiagnostics(), function (e) { - errors.push(e); - }); - } - } - 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) { - errors.push(ts.createFileDiagnostic(refFile, refStart, refLength, ts.Diagnostics.Filename_0_differs_from_already_included_filename_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 === 194 /* ImportDeclaration */ && node.externalModuleName) { - var nameLiteral = node.externalModuleName; - var moduleName = nameLiteral.text; - if (moduleName) { - var searchPath = basePath; - while (true) { - var searchName = ts.normalizePath(ts.combinePaths(searchPath, moduleName)); - if (findModuleSourceFile(searchName + ".ts", nameLiteral) || findModuleSourceFile(searchName + ".d.ts", nameLiteral)) { - break; - } - var parentPath = ts.getDirectoryPath(searchPath); - if (parentPath === searchPath) { - break; - } - searchPath = parentPath; - } - } - } - else if (node.kind === 192 /* ModuleDeclaration */ && node.name.kind === 7 /* StringLiteral */ && (node.flags & 2 /* Ambient */ || isDeclarationFile(file))) { - forEachChild(node.body, function (node) { - if (node.kind === 194 /* ImportDeclaration */ && node.externalModuleName) { - var nameLiteral = node.externalModuleName; - 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) { - errors.push(ts.createCompilerDiagnostic(ts.Diagnostics.Option_mapRoot_cannot_be_specified_without_specifying_sourcemap_option)); - } - if (options.sourceRoot) { - errors.push(ts.createCompilerDiagnostic(ts.Diagnostics.Option_sourceRoot_cannot_be_specified_without_specifying_sourcemap_option)); - } - return; - } - var firstExternalModule = ts.forEach(files, function (f) { return isExternalModule(f) ? f : undefined; }); - if (firstExternalModule && options.module === 0 /* None */) { - var externalModuleErrorSpan = getErrorSpanForNode(firstExternalModule.externalModuleIndicator); - var errorStart = ts.skipTrivia(firstExternalModule.text, externalModuleErrorSpan.pos); - var errorLength = externalModuleErrorSpan.end - errorStart; - errors.push(ts.createFileDiagnostic(firstExternalModule, errorStart, errorLength, ts.Diagnostics.Cannot_compile_external_modules_unless_the_module_flag_is_provided)); - } - if (options.outDir || options.sourceRoot || (options.mapRoot && (!options.out || firstExternalModule !== undefined))) { - var commonPathComponents; - ts.forEach(files, function (sourceFile) { - if (!(sourceFile.flags & 1024 /* DeclarationFile */) && !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) { - errors.push(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; - } - } - } - } - ts.createProgram = createProgram; -})(ts || (ts = {})); -var ts; -(function (ts) { - (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 === 189 /* InterfaceDeclaration */) { - return 0 /* NonInstantiated */; - } - else if (ts.isConstEnumDeclaration(node)) { - return 2 /* ConstEnumOnly */; - } - else if (node.kind === 194 /* ImportDeclaration */ && !(node.flags & 1 /* Export */)) { - return 0 /* NonInstantiated */; - } - else if (node.kind === 193 /* ModuleBlock */) { - var state = 0 /* NonInstantiated */; - ts.forEachChild(node, function (n) { - switch (getModuleInstanceState(n)) { - case 0 /* NonInstantiated */: - return false; - case 2 /* ConstEnumOnly */: - state = 2 /* ConstEnumOnly */; - return false; - case 1 /* Instantiated */: - state = 1 /* Instantiated */; - return true; - } - }); - return state; - } - else if (node.kind === 192 /* ModuleDeclaration */) { - return getModuleInstanceState(node.body); - } - else { - return 1 /* Instantiated */; - } - } - ts.getModuleInstanceState = getModuleInstanceState; - function bindSourceFile(file) { - var parent; - var container; - var blockScopeContainer; - var lastContainer; - var symbolCount = 0; - var Symbol = ts.objectAllocator.getSymbolConstructor(); - if (!file.locals) { - file.locals = {}; - container = blockScopeContainer = file; - bind(file); - file.symbolCount = symbolCount; - } - function createSymbol(flags, name) { - symbolCount++; - return new Symbol(flags, name); - } - function addDeclarationToSymbol(symbol, node, symbolKind) { - symbol.flags |= symbolKind; - if (!symbol.declarations) - symbol.declarations = []; - symbol.declarations.push(node); - if (symbolKind & 1952 /* HasExports */ && !symbol.exports) - symbol.exports = {}; - if (symbolKind & 6240 /* HasMembers */ && !symbol.members) - symbol.members = {}; - node.symbol = symbol; - if (symbolKind & 107455 /* Value */ && !symbol.valueDeclaration) - symbol.valueDeclaration = node; - } - function getDeclarationName(node) { - if (node.name) { - if (node.kind === 192 /* ModuleDeclaration */ && node.name.kind === 7 /* StringLiteral */) { - return '"' + node.name.text + '"'; - } - return node.name.text; - } - switch (node.kind) { - case 134 /* ConstructorType */: - case 126 /* Constructor */: - return "__constructor"; - case 133 /* FunctionType */: - case 129 /* CallSignature */: - return "__call"; - case 130 /* ConstructSignature */: - return "__new"; - case 131 /* IndexSignature */: - return "__index"; - } - } - function getDisplayName(node) { - return node.name ? ts.declarationNameToString(node.name) : getDeclarationName(node); - } - function declareSymbol(symbols, parent, node, includes, excludes) { - var name = getDeclarationName(node); - if (name !== undefined) { - var 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 /* BlockScopedVariable */ ? ts.Diagnostics.Cannot_redeclare_block_scoped_variable_0 : ts.Diagnostics.Duplicate_identifier_0; - ts.forEach(symbol.declarations, function (declaration) { - file.semanticDiagnostics.push(ts.createDiagnosticForNode(declaration.name, message, getDisplayName(declaration))); - }); - file.semanticDiagnostics.push(ts.createDiagnosticForNode(node.name, message, getDisplayName(node))); - symbol = createSymbol(0, name); - } - } - else { - symbol = createSymbol(0, "__missing"); - } - addDeclarationToSymbol(symbol, node, includes); - symbol.parent = parent; - if (node.kind === 188 /* ClassDeclaration */ && symbol.exports) { - var prototypeSymbol = createSymbol(4 /* Property */ | 536870912 /* Prototype */, "prototype"); - if (ts.hasProperty(symbol.exports, prototypeSymbol.name)) { - if (node.name) { - node.name.parent = node; - } - file.semanticDiagnostics.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 isAmbientContext(node) { - while (node) { - if (node.flags & 2 /* Ambient */) - return true; - node = node.parent; - } - return false; - } - function declareModuleMember(node, symbolKind, symbolExcludes) { - var exportKind = 0; - if (symbolKind & 107455 /* Value */) { - exportKind |= 4194304 /* ExportValue */; - } - if (symbolKind & 3152352 /* Type */) { - exportKind |= 8388608 /* ExportType */; - } - if (symbolKind & 1536 /* Namespace */) { - exportKind |= 16777216 /* ExportNamespace */; - } - if (node.flags & 1 /* Export */ || (node.kind !== 194 /* ImportDeclaration */ && isAmbientContext(container))) { - if (exportKind) { - 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.symbol.exports, container.symbol, node, symbolKind, symbolExcludes); - } - } - else { - declareSymbol(container.locals, undefined, node, symbolKind, symbolExcludes); - } - } - function bindChildren(node, symbolKind, isBlockScopeContainer) { - if (symbolKind & 1041936 /* HasLocals */) { - node.locals = {}; - } - var saveParent = parent; - var saveContainer = container; - var savedBlockScopeContainer = blockScopeContainer; - parent = node; - if (symbolKind & 1048560 /* IsContainer */) { - container = node; - if (lastContainer !== container && !container.nextContainer) { - if (lastContainer) { - lastContainer.nextContainer = container; - } - lastContainer = container; - } - } - if (isBlockScopeContainer) { - blockScopeContainer = node; - } - ts.forEachChild(node, bind); - container = saveContainer; - parent = saveParent; - blockScopeContainer = savedBlockScopeContainer; - } - function bindDeclaration(node, symbolKind, symbolExcludes, isBlockScopeContainer) { - switch (container.kind) { - case 192 /* ModuleDeclaration */: - declareModuleMember(node, symbolKind, symbolExcludes); - break; - case 197 /* SourceFile */: - if (ts.isExternalModule(container)) { - declareModuleMember(node, symbolKind, symbolExcludes); - break; - } - case 133 /* FunctionType */: - case 134 /* ConstructorType */: - case 129 /* CallSignature */: - case 130 /* ConstructSignature */: - case 131 /* IndexSignature */: - case 125 /* Method */: - case 126 /* Constructor */: - case 127 /* GetAccessor */: - case 128 /* SetAccessor */: - case 186 /* FunctionDeclaration */: - case 152 /* FunctionExpression */: - case 153 /* ArrowFunction */: - declareSymbol(container.locals, undefined, node, symbolKind, symbolExcludes); - break; - case 188 /* ClassDeclaration */: - if (node.flags & 128 /* Static */) { - declareSymbol(container.symbol.exports, container.symbol, node, symbolKind, symbolExcludes); - break; - } - case 136 /* TypeLiteral */: - case 142 /* ObjectLiteral */: - case 189 /* InterfaceDeclaration */: - declareSymbol(container.symbol.members, container.symbol, node, symbolKind, symbolExcludes); - break; - case 191 /* EnumDeclaration */: - declareSymbol(container.symbol.exports, container.symbol, node, symbolKind, symbolExcludes); - break; - } - bindChildren(node, symbolKind, isBlockScopeContainer); - } - function bindConstructorDeclaration(node) { - bindDeclaration(node, 16384 /* Constructor */, 0, true); - ts.forEach(node.parameters, function (p) { - if (p.flags & (16 /* Public */ | 32 /* Private */ | 64 /* Protected */)) { - bindDeclaration(p, 4 /* Property */, 107455 /* PropertyExcludes */, false); - } - }); - } - function bindModuleDeclaration(node) { - if (node.name.kind === 7 /* StringLiteral */) { - bindDeclaration(node, 512 /* ValueModule */, 106639 /* ValueModuleExcludes */, true); - } - else { - var state = getModuleInstanceState(node); - if (state === 0 /* NonInstantiated */) { - bindDeclaration(node, 1024 /* NamespaceModule */, 0 /* NamespaceModuleExcludes */, true); - } - else { - bindDeclaration(node, 512 /* ValueModule */, 106639 /* ValueModuleExcludes */, true); - if (state === 2 /* ConstEnumOnly */) { - node.symbol.constEnumOnlyModule = true; - } - else if (node.symbol.constEnumOnlyModule) { - node.symbol.constEnumOnlyModule = false; - } - } - } - } - function bindFunctionOrConstructorType(node) { - var symbolKind = node.kind === 133 /* FunctionType */ ? 131072 /* CallSignature */ : 262144 /* ConstructSignature */; - var symbol = createSymbol(symbolKind, getDeclarationName(node)); - addDeclarationToSymbol(symbol, node, symbolKind); - bindChildren(node, symbolKind, false); - var typeLiteralSymbol = createSymbol(2048 /* TypeLiteral */, "__type"); - addDeclarationToSymbol(typeLiteralSymbol, node, 2048 /* TypeLiteral */); - typeLiteralSymbol.members = {}; - typeLiteralSymbol.members[node.kind === 133 /* FunctionType */ ? "__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) { - var symbol = createSymbol(1 /* FunctionScopedVariable */, node.variable.text || "__missing"); - addDeclarationToSymbol(symbol, node, 1 /* FunctionScopedVariable */); - var saveParent = parent; - var savedBlockScopeContainer = blockScopeContainer; - parent = blockScopeContainer = node; - ts.forEachChild(node, bind); - parent = saveParent; - blockScopeContainer = savedBlockScopeContainer; - } - function bindBlockScopedVariableDeclaration(node) { - switch (blockScopeContainer.kind) { - case 192 /* ModuleDeclaration */: - declareModuleMember(node, 2 /* BlockScopedVariable */, 107455 /* BlockScopedVariableExcludes */); - break; - case 197 /* SourceFile */: - if (ts.isExternalModule(container)) { - declareModuleMember(node, 2 /* BlockScopedVariable */, 107455 /* BlockScopedVariableExcludes */); - break; - } - default: - if (!blockScopeContainer.locals) { - blockScopeContainer.locals = {}; - } - declareSymbol(blockScopeContainer.locals, undefined, node, 2 /* BlockScopedVariable */, 107455 /* BlockScopedVariableExcludes */); - } - bindChildren(node, 2 /* BlockScopedVariable */, false); - } - function bind(node) { - node.parent = parent; - switch (node.kind) { - case 122 /* TypeParameter */: - bindDeclaration(node, 1048576 /* TypeParameter */, 2103776 /* TypeParameterExcludes */, false); - break; - case 123 /* Parameter */: - bindDeclaration(node, 1 /* FunctionScopedVariable */, 107455 /* ParameterExcludes */, false); - break; - case 185 /* VariableDeclaration */: - if (node.flags & 6144 /* BlockScoped */) { - bindBlockScopedVariableDeclaration(node); - } - else { - bindDeclaration(node, 1 /* FunctionScopedVariable */, 107454 /* FunctionScopedVariableExcludes */, false); - } - break; - case 124 /* Property */: - case 143 /* PropertyAssignment */: - case 144 /* ShorthandPropertyAssignment */: - bindDeclaration(node, 4 /* Property */, 107455 /* PropertyExcludes */, false); - break; - case 196 /* EnumMember */: - bindDeclaration(node, 8 /* EnumMember */, 107455 /* EnumMemberExcludes */, false); - break; - case 129 /* CallSignature */: - bindDeclaration(node, 131072 /* CallSignature */, 0, false); - break; - case 130 /* ConstructSignature */: - bindDeclaration(node, 262144 /* ConstructSignature */, 0, true); - break; - case 125 /* Method */: - bindDeclaration(node, 8192 /* Method */, 99263 /* MethodExcludes */, true); - break; - case 131 /* IndexSignature */: - bindDeclaration(node, 524288 /* IndexSignature */, 0, false); - break; - case 186 /* FunctionDeclaration */: - bindDeclaration(node, 16 /* Function */, 106927 /* FunctionExcludes */, true); - break; - case 126 /* Constructor */: - bindConstructorDeclaration(node); - break; - case 127 /* GetAccessor */: - bindDeclaration(node, 32768 /* GetAccessor */, 41919 /* GetAccessorExcludes */, true); - break; - case 128 /* SetAccessor */: - bindDeclaration(node, 65536 /* SetAccessor */, 74687 /* SetAccessorExcludes */, true); - break; - case 133 /* FunctionType */: - case 134 /* ConstructorType */: - bindFunctionOrConstructorType(node); - break; - case 136 /* TypeLiteral */: - bindAnonymousDeclaration(node, 2048 /* TypeLiteral */, "__type", false); - break; - case 142 /* ObjectLiteral */: - bindAnonymousDeclaration(node, 4096 /* ObjectLiteral */, "__object", false); - break; - case 152 /* FunctionExpression */: - case 153 /* ArrowFunction */: - bindAnonymousDeclaration(node, 16 /* Function */, "__function", true); - break; - case 182 /* CatchBlock */: - bindCatchVariableDeclaration(node); - break; - case 188 /* ClassDeclaration */: - bindDeclaration(node, 32 /* Class */, 3258879 /* ClassExcludes */, false); - break; - case 189 /* InterfaceDeclaration */: - bindDeclaration(node, 64 /* Interface */, 3152288 /* InterfaceExcludes */, false); - break; - case 190 /* TypeAliasDeclaration */: - bindDeclaration(node, 2097152 /* TypeAlias */, 3152352 /* TypeAliasExcludes */, false); - break; - case 191 /* EnumDeclaration */: - if (ts.isConst(node)) { - bindDeclaration(node, 128 /* ConstEnum */, 3259263 /* ConstEnumExcludes */, false); - } - else { - bindDeclaration(node, 256 /* RegularEnum */, 3258623 /* RegularEnumExcludes */, false); - } - break; - case 192 /* ModuleDeclaration */: - bindModuleDeclaration(node); - break; - case 194 /* ImportDeclaration */: - bindDeclaration(node, 33554432 /* Import */, 33554432 /* ImportExcludes */, false); - break; - case 197 /* SourceFile */: - if (ts.isExternalModule(node)) { - bindAnonymousDeclaration(node, 512 /* ValueModule */, '"' + ts.removeFileExtension(node.filename) + '"', true); - break; - } - case 162 /* Block */: - case 181 /* TryBlock */: - case 182 /* CatchBlock */: - case 183 /* FinallyBlock */: - case 169 /* ForStatement */: - case 170 /* ForInStatement */: - case 175 /* SwitchStatement */: - bindChildren(node, 0, true); - break; - default: - var saveParent = parent; - parent = node; - ts.forEachChild(node, bind); - parent = saveParent; - } - } - } - ts.bindSourceFile = bindSourceFile; -})(ts || (ts = {})); -var ts; -(function (ts) { - 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; - } - function shouldEmitToOwnFile(sourceFile, compilerOptions) { - if (!ts.isDeclarationFile(sourceFile)) { - if ((ts.isExternalModule(sourceFile) || !compilerOptions.out) && !ts.fileExtensionIs(sourceFile.filename, ".js")) { - return true; - } - return false; - } - return false; - } - ts.shouldEmitToOwnFile = shouldEmitToOwnFile; - function isExternalModuleOrDeclarationFile(sourceFile) { - return ts.isExternalModule(sourceFile) || ts.isDeclarationFile(sourceFile); - } - ts.isExternalModuleOrDeclarationFile = isExternalModuleOrDeclarationFile; - 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(ts.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; } - }; - } - function getLineOfLocalPosition(currentSourceFile, pos) { - return currentSourceFile.getLineAndCharacterFromPosition(pos).line; - } - 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(); - } - } - 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; - } - }); - } - function writeCommentRange(currentSourceFile, writer, comment, newLine) { - if (currentSourceFile.text.charCodeAt(comment.pos + 1) === 42 /* asterisk */) { - var firstCommentLineAndCharacter = currentSourceFile.getLineAndCharacterFromPosition(comment.pos); - var firstCommentLineIndent; - for (var pos = comment.pos, currentLine = firstCommentLineAndCharacter.line; pos < comment.end; currentLine++) { - var nextLineStart = currentSourceFile.getPositionFromLineAndCharacter(currentLine + 1, 1); - if (pos !== comment.pos) { - if (firstCommentLineIndent === undefined) { - firstCommentLineIndent = calculateIndent(currentSourceFile.getPositionFromLineAndCharacter(firstCommentLineAndCharacter.line, 1), 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 /* tab */) { - currentLineIndent += getIndentSize() - (currentLineIndent % getIndentSize()); - } - else { - currentLineIndent++; - } - } - return currentLineIndent; - } - } - function getFirstConstructorWithBody(node) { - return ts.forEach(node.members, function (member) { - if (member.kind === 126 /* Constructor */ && member.body) { - return member; - } - }); - } - function getAllAccessorDeclarations(node, accessor) { - var firstAccessor; - var getAccessor; - var setAccessor; - ts.forEach(node.members, function (member) { - if ((member.kind === 127 /* GetAccessor */ || member.kind === 128 /* SetAccessor */) && member.name.text === accessor.name.text && (member.flags & 128 /* Static */) === (accessor.flags & 128 /* Static */)) { - if (!firstAccessor) { - firstAccessor = member; - } - if (member.kind === 127 /* GetAccessor */ && !getAccessor) { - getAccessor = member; - } - if (member.kind === 128 /* SetAccessor */ && !setAccessor) { - setAccessor = member; - } - } - }); - return { - firstAccessor: firstAccessor, - getAccessor: getAccessor, - setAccessor: setAccessor - }; - } - function getSourceFilePathInNewDir(sourceFile, program, newDirPath) { - var compilerHost = program.getCompilerHost(); - var sourceFilePath = ts.getNormalizedAbsolutePath(sourceFile.filename, compilerHost.getCurrentDirectory()); - sourceFilePath = sourceFilePath.replace(program.getCommonSourceDirectory(), ""); - return ts.combinePaths(newDirPath, sourceFilePath); - } - function getOwnEmitOutputFilePath(sourceFile, program, extension) { - var compilerOptions = program.getCompilerOptions(); - if (compilerOptions.outDir) { - var emitOutputFilePathWithoutExtension = ts.removeFileExtension(getSourceFilePathInNewDir(sourceFile, program, compilerOptions.outDir)); - } - else { - var emitOutputFilePathWithoutExtension = ts.removeFileExtension(sourceFile.filename); - } - return emitOutputFilePathWithoutExtension + extension; - } - function writeFile(compilerHost, diagnostics, filename, data, writeByteOrderMark) { - compilerHost.writeFile(filename, data, writeByteOrderMark, function (hostErrorMessage) { - diagnostics.push(ts.createCompilerDiagnostic(ts.Diagnostics.Could_not_write_file_0_Colon_1, filename, hostErrorMessage)); - }); - } - function emitDeclarations(program, resolver, diagnostics, jsFilePath, root) { - var newLine = program.getCompilerHost().getNewLine(); - var compilerOptions = program.getCompilerOptions(); - var compilerHost = program.getCompilerHost(); - 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 aliasDeclarationEmitInfo = []; - function createAndSetNewTextWriterWithSymbolWriter() { - var writer = 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 writeAsychronousImportDeclarations(importDeclarations) { - var oldWriter = writer; - ts.forEach(importDeclarations, function (aliasToWrite) { - var aliasEmitInfo = ts.forEach(aliasDeclarationEmitInfo, function (declEmitInfo) { return declEmitInfo.declaration === aliasToWrite ? declEmitInfo : undefined; }); - if (aliasEmitInfo) { - createAndSetNewTextWriterWithSymbolWriter(); - for (var declarationIndent = aliasEmitInfo.indent; declarationIndent; declarationIndent--) { - increaseIndent(); - } - writeImportDeclaration(aliasToWrite); - aliasEmitInfo.asynchronousOutput = writer.getText(); - } - }); - setWriter(oldWriter); - } - function handleSymbolAccessibilityError(symbolAccesibilityResult) { - if (symbolAccesibilityResult.accessibility === 0 /* Accessible */) { - if (symbolAccesibilityResult && symbolAccesibilityResult.aliasesToMakeVisible) { - writeAsychronousImportDeclarations(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 writeTypeAtLocation(location, type, getSymbolAccessibilityDiagnostic) { - writer.getSymbolAccessibilityDiagnostic = getSymbolAccessibilityDiagnostic; - write(": "); - if (type) { - emitType(type); - } - else { - resolver.writeTypeAtLocation(location, enclosingDeclaration, 2 /* UseTypeOfFunction */, writer); - } - } - function writeReturnTypeAtSignature(signature, getSymbolAccessibilityDiagnostic) { - writer.getSymbolAccessibilityDiagnostic = getSymbolAccessibilityDiagnostic; - write(": "); - if (signature.type) { - emitType(signature.type); - } - else { - resolver.writeReturnTypeOfSignatureDeclaration(signature, enclosingDeclaration, 2 /* UseTypeOfFunction */, writer); - } - } - function emitLines(nodes) { - for (var i = 0, n = nodes.length; i < n; i++) { - emitNode(nodes[i]); - } - } - function emitSeparatedList(nodes, separator, eachNodeEmitFn) { - var currentWriterPos = writer.getTextPos(); - for (var i = 0, n = nodes.length; i < n; i++) { - if (currentWriterPos !== writer.getTextPos()) { - write(separator); - } - currentWriterPos = writer.getTextPos(); - eachNodeEmitFn(nodes[i]); - } - } - function emitCommaList(nodes, eachNodeEmitFn) { - emitSeparatedList(nodes, ", ", eachNodeEmitFn); - } - function writeJsDocComments(declaration) { - if (declaration) { - var jsDocComments = ts.getJsDocComments(declaration, currentSourceFile); - emitNewLineBeforeLeadingComments(currentSourceFile, writer, declaration, jsDocComments); - emitComments(currentSourceFile, writer, jsDocComments, true, newLine, writeCommentRange); - } - } - function emitTypeWithNewGetSymbolAccessibilityDiangostic(type, getSymbolAccessibilityDiagnostic) { - writer.getSymbolAccessibilityDiagnostic = getSymbolAccessibilityDiagnostic; - emitType(type); - } - function emitType(type) { - switch (type.kind) { - case 109 /* AnyKeyword */: - case 118 /* StringKeyword */: - case 116 /* NumberKeyword */: - case 110 /* BooleanKeyword */: - case 97 /* VoidKeyword */: - case 7 /* StringLiteral */: - return writeTextOfNode(currentSourceFile, type); - case 132 /* TypeReference */: - return emitTypeReference(type); - case 135 /* TypeQuery */: - return emitTypeQuery(type); - case 137 /* ArrayType */: - return emitArrayType(type); - case 138 /* TupleType */: - return emitTupleType(type); - case 139 /* UnionType */: - return emitUnionType(type); - case 140 /* ParenType */: - return emitParenType(type); - case 133 /* FunctionType */: - case 134 /* ConstructorType */: - return emitSignatureDeclarationWithJsDocComments(type); - case 136 /* TypeLiteral */: - return emitTypeLiteral(type); - case 63 /* Identifier */: - return emitEntityName(type); - case 121 /* QualifiedName */: - return emitEntityName(type); - default: - ts.Debug.fail("Unknown type annotation: " + type.kind); - } - function emitEntityName(entityName) { - var visibilityResult = resolver.isEntityNameVisible(entityName, entityName.parent.kind === 194 /* ImportDeclaration */ ? entityName.parent : enclosingDeclaration); - handleSymbolAccessibilityError(visibilityResult); - writeEntityName(entityName); - function writeEntityName(entityName) { - if (entityName.kind === 63 /* Identifier */) { - 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("export = "); - writeTextOfNode(currentSourceFile, node.exportName); - write(";"); - writeLine(); - } - function emitModuleElementDeclarationFlags(node) { - if (node.parent === currentSourceFile) { - if (node.flags & 1 /* Export */) { - write("export "); - } - if (node.kind !== 189 /* InterfaceDeclaration */) { - write("declare "); - } - } - } - function emitClassMemberDeclarationFlags(node) { - if (node.flags & 32 /* Private */) { - write("private "); - } - else if (node.flags & 64 /* Protected */) { - write("protected "); - } - if (node.flags & 128 /* Static */) { - write("static "); - } - } - function emitImportDeclaration(node) { - var nodeEmitInfo = { - declaration: node, - outputPos: writer.getTextPos(), - indent: writer.getIndent(), - hasWritten: resolver.isDeclarationVisible(node) - }; - aliasDeclarationEmitInfo.push(nodeEmitInfo); - if (nodeEmitInfo.hasWritten) { - writeImportDeclaration(node); - } - } - function writeImportDeclaration(node) { - emitJsDocComments(node); - if (node.flags & 1 /* Export */) { - write("export "); - } - write("import "); - writeTextOfNode(currentSourceFile, node.name); - write(" = "); - if (node.entityName) { - emitTypeWithNewGetSymbolAccessibilityDiangostic(node.entityName, getImportEntityNameVisibilityError); - write(";"); - } - else { - write("require("); - writeTextOfNode(currentSourceFile, node.externalModuleName); - write(");"); - } - writer.writeLine(); - function getImportEntityNameVisibilityError(symbolAccesibilityResult) { - return { - diagnosticMessage: ts.Diagnostics.Import_declaration_0_is_using_private_name_1, - errorNode: node, - typeName: node.name - }; - } - } - function emitModuleDeclaration(node) { - if (resolver.isDeclarationVisible(node)) { - emitJsDocComments(node); - emitModuleElementDeclarationFlags(node); - write("module "); - writeTextOfNode(currentSourceFile, node.name); - while (node.body.kind !== 193 /* ModuleBlock */) { - 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 emitTypeAliasDeclaration(node) { - if (resolver.isDeclarationVisible(node)) { - emitJsDocComments(node); - emitModuleElementDeclarationFlags(node); - write("type "); - writeTextOfNode(currentSourceFile, node.name); - write(" = "); - emitTypeWithNewGetSymbolAccessibilityDiangostic(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 emitEnumDeclaration(node) { - if (resolver.isDeclarationVisible(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.getEnumMemberValue(node); - if (enumMemberValue !== undefined) { - write(" = "); - write(enumMemberValue.toString()); - } - write(","); - writeLine(); - } - function emitTypeParameters(typeParameters) { - function emitTypeParameter(node) { - increaseIndent(); - emitJsDocComments(node); - decreaseIndent(); - writeTextOfNode(currentSourceFile, node.name); - if (node.constraint && (node.parent.kind !== 125 /* Method */ || !(node.parent.flags & 32 /* Private */))) { - write(" extends "); - if (node.parent.kind === 133 /* FunctionType */ || node.parent.kind === 134 /* ConstructorType */ || (node.parent.parent && node.parent.parent.kind === 136 /* TypeLiteral */)) { - ts.Debug.assert(node.parent.kind === 125 /* Method */ || node.parent.kind === 133 /* FunctionType */ || node.parent.kind === 134 /* ConstructorType */ || node.parent.kind === 129 /* CallSignature */ || node.parent.kind === 130 /* ConstructSignature */); - emitType(node.constraint); - } - else { - emitTypeWithNewGetSymbolAccessibilityDiangostic(node.constraint, getTypeParameterConstraintVisibilityError); - } - } - function getTypeParameterConstraintVisibilityError(symbolAccesibilityResult) { - var diagnosticMessage; - switch (node.parent.kind) { - case 188 /* ClassDeclaration */: - diagnosticMessage = ts.Diagnostics.Type_parameter_0_of_exported_class_has_or_is_using_private_name_1; - break; - case 189 /* InterfaceDeclaration */: - diagnosticMessage = ts.Diagnostics.Type_parameter_0_of_exported_interface_has_or_is_using_private_name_1; - break; - case 130 /* ConstructSignature */: - diagnosticMessage = ts.Diagnostics.Type_parameter_0_of_constructor_signature_from_exported_interface_has_or_is_using_private_name_1; - break; - case 129 /* CallSignature */: - diagnosticMessage = ts.Diagnostics.Type_parameter_0_of_call_signature_from_exported_interface_has_or_is_using_private_name_1; - break; - case 125 /* Method */: - if (node.parent.flags & 128 /* Static */) { - 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 === 188 /* ClassDeclaration */) { - 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 186 /* FunctionDeclaration */: - 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) { - emitTypeWithNewGetSymbolAccessibilityDiangostic(node, getHeritageClauseVisibilityError); - function getHeritageClauseVisibilityError(symbolAccesibilityResult) { - var diagnosticMessage; - if (node.parent.kind === 188 /* ClassDeclaration */) { - 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.name - }; - } - } - } - function emitClassDeclaration(node) { - function emitParameterProperties(constructorDeclaration) { - if (constructorDeclaration) { - ts.forEach(constructorDeclaration.parameters, function (param) { - if (param.flags & 112 /* AccessibilityModifier */) { - emitPropertyDeclaration(param); - } - }); - } - } - if (resolver.isDeclarationVisible(node)) { - emitJsDocComments(node); - emitModuleElementDeclarationFlags(node); - write("class "); - writeTextOfNode(currentSourceFile, node.name); - var prevEnclosingDeclaration = enclosingDeclaration; - enclosingDeclaration = node; - emitTypeParameters(node.typeParameters); - if (node.baseType) { - emitHeritageClause([node.baseType], false); - } - emitHeritageClause(node.implementedTypes, true); - write(" {"); - writeLine(); - increaseIndent(); - emitParameterProperties(getFirstConstructorWithBody(node)); - emitLines(node.members); - decreaseIndent(); - write("}"); - writeLine(); - enclosingDeclaration = prevEnclosingDeclaration; - } - } - function emitInterfaceDeclaration(node) { - if (resolver.isDeclarationVisible(node)) { - emitJsDocComments(node); - emitModuleElementDeclarationFlags(node); - write("interface "); - writeTextOfNode(currentSourceFile, node.name); - var prevEnclosingDeclaration = enclosingDeclaration; - enclosingDeclaration = node; - emitTypeParameters(node.typeParameters); - emitHeritageClause(node.baseTypes, false); - write(" {"); - writeLine(); - increaseIndent(); - emitLines(node.members); - decreaseIndent(); - write("}"); - writeLine(); - enclosingDeclaration = prevEnclosingDeclaration; - } - } - function emitPropertyDeclaration(node) { - emitJsDocComments(node); - emitClassMemberDeclarationFlags(node); - emitVariableDeclaration(node); - write(";"); - writeLine(); - } - function emitVariableDeclaration(node) { - if (node.kind !== 185 /* VariableDeclaration */ || resolver.isDeclarationVisible(node)) { - writeTextOfNode(currentSourceFile, node.name); - if (node.kind === 124 /* Property */ && (node.flags & 4 /* QuestionMark */)) { - write("?"); - } - if (node.kind === 124 /* Property */ && node.parent.kind === 136 /* TypeLiteral */) { - emitTypeOfVariableDeclarationFromTypeLiteral(node); - } - else if (!(node.flags & 32 /* Private */)) { - writeTypeAtLocation(node, node.type, getVariableDeclarationTypeVisibilityError); - } - } - function getVariableDeclarationTypeVisibilityError(symbolAccesibilityResult) { - var diagnosticMessage; - if (node.kind === 185 /* VariableDeclaration */) { - diagnosticMessage = symbolAccesibilityResult.errorModuleName ? symbolAccesibilityResult.accessibility === 2 /* CannotBeNamed */ ? 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 === 124 /* Property */) { - if (node.flags & 128 /* Static */) { - diagnosticMessage = symbolAccesibilityResult.errorModuleName ? symbolAccesibilityResult.accessibility === 2 /* CannotBeNamed */ ? 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 === 188 /* ClassDeclaration */) { - diagnosticMessage = symbolAccesibilityResult.errorModuleName ? symbolAccesibilityResult.accessibility === 2 /* CannotBeNamed */ ? 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 { - diagnosticMessage = 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; - } - } - return diagnosticMessage !== undefined ? { - diagnosticMessage: diagnosticMessage, - errorNode: node, - typeName: node.name - } : undefined; - } - } - function emitTypeOfVariableDeclarationFromTypeLiteral(node) { - if (node.type) { - write(": "); - emitType(node.type); - } - } - function emitVariableStatement(node) { - var hasDeclarationWithEmit = ts.forEach(node.declarations, function (varDeclaration) { return resolver.isDeclarationVisible(varDeclaration); }); - if (hasDeclarationWithEmit) { - emitJsDocComments(node); - emitModuleElementDeclarationFlags(node); - if (ts.isLet(node)) { - write("let "); - } - else if (ts.isConst(node)) { - write("const "); - } - else { - write("var "); - } - emitCommaList(node.declarations, emitVariableDeclaration); - write(";"); - writeLine(); - } - } - function emitAccessorDeclaration(node) { - var accessors = getAllAccessorDeclarations(node.parent, node); - if (node === accessors.firstAccessor) { - emitJsDocComments(accessors.getAccessor); - emitJsDocComments(accessors.setAccessor); - emitClassMemberDeclarationFlags(node); - writeTextOfNode(currentSourceFile, node.name); - if (!(node.flags & 32 /* Private */)) { - var accessorWithTypeAnnotation = node; - var type = getTypeAnnotationFromAccessor(node); - if (!type) { - var anotherAccessor = node.kind === 127 /* GetAccessor */ ? accessors.setAccessor : accessors.getAccessor; - type = getTypeAnnotationFromAccessor(anotherAccessor); - if (type) { - accessorWithTypeAnnotation = anotherAccessor; - } - } - writeTypeAtLocation(node, type, getAccessorDeclarationTypeVisibilityError); - } - write(";"); - writeLine(); - } - function getTypeAnnotationFromAccessor(accessor) { - if (accessor) { - return accessor.kind === 127 /* GetAccessor */ ? accessor.type : accessor.parameters[0].type; - } - } - function getAccessorDeclarationTypeVisibilityError(symbolAccesibilityResult) { - var diagnosticMessage; - if (accessorWithTypeAnnotation.kind === 128 /* SetAccessor */) { - if (accessorWithTypeAnnotation.parent.flags & 128 /* Static */) { - 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 /* Static */) { - diagnosticMessage = symbolAccesibilityResult.errorModuleName ? symbolAccesibilityResult.accessibility === 2 /* CannotBeNamed */ ? 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 /* CannotBeNamed */ ? 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 emitFunctionDeclaration(node) { - if ((node.kind !== 186 /* FunctionDeclaration */ || resolver.isDeclarationVisible(node)) && !resolver.isImplementationOfOverload(node)) { - emitJsDocComments(node); - if (node.kind === 186 /* FunctionDeclaration */) { - emitModuleElementDeclarationFlags(node); - } - else if (node.kind === 125 /* Method */) { - emitClassMemberDeclarationFlags(node); - } - if (node.kind === 186 /* FunctionDeclaration */) { - write("function "); - writeTextOfNode(currentSourceFile, node.name); - } - else if (node.kind === 126 /* Constructor */) { - write("constructor"); - } - else { - writeTextOfNode(currentSourceFile, node.name); - if (node.flags & 4 /* QuestionMark */) { - write("?"); - } - } - emitSignatureDeclaration(node); - } - } - function emitSignatureDeclarationWithJsDocComments(node) { - emitJsDocComments(node); - emitSignatureDeclaration(node); - } - function emitSignatureDeclaration(node) { - if (node.kind === 130 /* ConstructSignature */ || node.kind === 134 /* ConstructorType */) { - write("new "); - } - emitTypeParameters(node.typeParameters); - if (node.kind === 131 /* IndexSignature */) { - write("["); - } - else { - write("("); - } - var prevEnclosingDeclaration = enclosingDeclaration; - enclosingDeclaration = node; - emitCommaList(node.parameters, emitParameterDeclaration); - if (node.kind === 131 /* IndexSignature */) { - write("]"); - } - else { - write(")"); - } - var isFunctionTypeOrConstructorType = node.kind === 133 /* FunctionType */ || node.kind === 134 /* ConstructorType */; - if (isFunctionTypeOrConstructorType || node.parent.kind === 136 /* TypeLiteral */) { - if (node.type) { - write(isFunctionTypeOrConstructorType ? " => " : ": "); - emitType(node.type); - } - } - else if (node.kind !== 126 /* Constructor */ && !(node.flags & 32 /* Private */)) { - writeReturnTypeAtSignature(node, getReturnTypeVisibilityError); - } - enclosingDeclaration = prevEnclosingDeclaration; - if (!isFunctionTypeOrConstructorType) { - write(";"); - writeLine(); - } - function getReturnTypeVisibilityError(symbolAccesibilityResult) { - var diagnosticMessage; - switch (node.kind) { - case 130 /* ConstructSignature */: - 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 129 /* CallSignature */: - 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 131 /* IndexSignature */: - 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 125 /* Method */: - if (node.flags & 128 /* Static */) { - diagnosticMessage = symbolAccesibilityResult.errorModuleName ? symbolAccesibilityResult.accessibility === 2 /* CannotBeNamed */ ? 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 === 188 /* ClassDeclaration */) { - diagnosticMessage = symbolAccesibilityResult.errorModuleName ? symbolAccesibilityResult.accessibility === 2 /* CannotBeNamed */ ? 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 186 /* FunctionDeclaration */: - diagnosticMessage = symbolAccesibilityResult.errorModuleName ? symbolAccesibilityResult.accessibility === 2 /* CannotBeNamed */ ? 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.flags & 8 /* Rest */) { - write("..."); - } - writeTextOfNode(currentSourceFile, node.name); - if (node.initializer || (node.flags & 4 /* QuestionMark */)) { - write("?"); - } - decreaseIndent(); - if (node.parent.kind === 133 /* FunctionType */ || node.parent.kind === 134 /* ConstructorType */ || node.parent.parent.kind === 136 /* TypeLiteral */) { - emitTypeOfVariableDeclarationFromTypeLiteral(node); - } - else if (!(node.parent.flags & 32 /* Private */)) { - writeTypeAtLocation(node, node.type, getParameterDeclarationTypeVisibilityError); - } - function getParameterDeclarationTypeVisibilityError(symbolAccesibilityResult) { - var diagnosticMessage; - switch (node.parent.kind) { - case 126 /* Constructor */: - diagnosticMessage = symbolAccesibilityResult.errorModuleName ? symbolAccesibilityResult.accessibility === 2 /* CannotBeNamed */ ? 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 130 /* ConstructSignature */: - 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 129 /* CallSignature */: - 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 125 /* Method */: - if (node.parent.flags & 128 /* Static */) { - diagnosticMessage = symbolAccesibilityResult.errorModuleName ? symbolAccesibilityResult.accessibility === 2 /* CannotBeNamed */ ? 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 === 188 /* ClassDeclaration */) { - diagnosticMessage = symbolAccesibilityResult.errorModuleName ? symbolAccesibilityResult.accessibility === 2 /* CannotBeNamed */ ? 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 186 /* FunctionDeclaration */: - diagnosticMessage = symbolAccesibilityResult.errorModuleName ? symbolAccesibilityResult.accessibility === 2 /* CannotBeNamed */ ? 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 126 /* Constructor */: - case 186 /* FunctionDeclaration */: - case 125 /* Method */: - return emitFunctionDeclaration(node); - case 130 /* ConstructSignature */: - case 129 /* CallSignature */: - case 131 /* IndexSignature */: - return emitSignatureDeclarationWithJsDocComments(node); - case 127 /* GetAccessor */: - case 128 /* SetAccessor */: - return emitAccessorDeclaration(node); - case 163 /* VariableStatement */: - return emitVariableStatement(node); - case 124 /* Property */: - return emitPropertyDeclaration(node); - case 189 /* InterfaceDeclaration */: - return emitInterfaceDeclaration(node); - case 188 /* ClassDeclaration */: - return emitClassDeclaration(node); - case 190 /* TypeAliasDeclaration */: - return emitTypeAliasDeclaration(node); - case 196 /* EnumMember */: - return emitEnumMemberDeclaration(node); - case 191 /* EnumDeclaration */: - return emitEnumDeclaration(node); - case 192 /* ModuleDeclaration */: - return emitModuleDeclaration(node); - case 194 /* ImportDeclaration */: - return emitImportDeclaration(node); - case 195 /* ExportAssignment */: - return emitExportAssignment(node); - case 197 /* SourceFile */: - return emitSourceFile(node); - } - } - var referencePathsOutput = ""; - function writeReferencePath(referencedFile) { - var declFileName = referencedFile.flags & 1024 /* DeclarationFile */ ? referencedFile.filename : shouldEmitToOwnFile(referencedFile, compilerOptions) ? getOwnEmitOutputFilePath(referencedFile, program, ".d.ts") : ts.removeFileExtension(compilerOptions.out) + ".d.ts"; - declFileName = ts.getRelativePathToDirectoryOrUrl(ts.getDirectoryPath(ts.normalizeSlashes(jsFilePath)), declFileName, compilerHost.getCurrentDirectory(), compilerHost.getCanonicalFileName, false); - referencePathsOutput += "/// " + newLine; - } - if (root) { - if (!compilerOptions.noResolve) { - var addedGlobalFileReference = false; - ts.forEach(root.referencedFiles, function (fileReference) { - var referencedFile = ts.tryResolveScriptReference(program, root, fileReference); - if (referencedFile && ((referencedFile.flags & 1024 /* DeclarationFile */) || shouldEmitToOwnFile(referencedFile, compilerOptions) || !addedGlobalFileReference)) { - writeReferencePath(referencedFile); - if (!isExternalModuleOrDeclarationFile(referencedFile)) { - addedGlobalFileReference = true; - } - } - }); - } - emitNode(root); - } - else { - var emittedReferencedFiles = []; - ts.forEach(program.getSourceFiles(), function (sourceFile) { - if (!isExternalModuleOrDeclarationFile(sourceFile)) { - if (!compilerOptions.noResolve) { - ts.forEach(sourceFile.referencedFiles, function (fileReference) { - var referencedFile = ts.tryResolveScriptReference(program, sourceFile, fileReference); - if (referencedFile && (isExternalModuleOrDeclarationFile(referencedFile) && !ts.contains(emittedReferencedFiles, referencedFile))) { - writeReferencePath(referencedFile); - emittedReferencedFiles.push(referencedFile); - } - }); - } - emitNode(sourceFile); - } - }); - } - return { - reportedDeclarationError: reportedDeclarationError, - aliasDeclarationEmitInfo: aliasDeclarationEmitInfo, - synchronousDeclarationOutput: writer.getText(), - referencePathsOutput: referencePathsOutput - }; - } - function getDeclarationDiagnostics(program, resolver, targetSourceFile) { - var diagnostics = []; - var jsFilePath = getOwnEmitOutputFilePath(targetSourceFile, program, ".js"); - emitDeclarations(program, resolver, diagnostics, jsFilePath, targetSourceFile); - return diagnostics; - } - ts.getDeclarationDiagnostics = getDeclarationDiagnostics; - function emitFiles(resolver, targetSourceFile) { - var program = resolver.getProgram(); - var compilerHost = program.getCompilerHost(); - var compilerOptions = program.getCompilerOptions(); - var sourceMapDataList = compilerOptions.sourceMap ? [] : undefined; - var diagnostics = []; - var newLine = program.getCompilerHost().getNewLine(); - function emitJavaScript(jsFilePath, root) { - var writer = 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 extendsEmitted = false; - var writeEmittedFiles = writeJavaScriptFile; - var emitLeadingComments = compilerOptions.removeComments ? function (node) { - } : emitLeadingDeclarationComments; - var emitTrailingComments = compilerOptions.removeComments ? function (node) { - } : emitTrailingDeclarationComments; - var emitLeadingCommentsOfPosition = compilerOptions.removeComments ? function (pos) { - } : emitLeadingCommentsOfLocalPosition; - var detachedCommentsInfo; - var emitDetachedComments = compilerOptions.removeComments ? function (node) { - } : emitDetachedCommentsAtPosition; - var emitPinnedOrTripleSlashComments = compilerOptions.removeComments ? function (node) { - } : emitPinnedOrTripleSlashCommentsOfNode; - var writeComment = writeCommentRange; - var emit = emitNode; - var emitStart = function (node) { - }; - var emitEnd = function (node) { - }; - var emitToken = emitTokenText; - var scopeEmitStart = function (scopeDeclaration, scopeName) { - }; - var scopeEmitEnd = function () { - }; - var sourceMapData; - 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 = currentSourceFile.getLineAndCharacterFromPosition(pos); - 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 ? program.getCommonSourceDirectory() : sourceMapDir; - sourceMapData.sourceMapSources.push(ts.getRelativePathToDirectoryOrUrl(sourcesDirectoryPath, node.filename, compilerHost.getCurrentDirectory(), compilerHost.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) { - 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 === 186 /* FunctionDeclaration */ || node.kind === 152 /* FunctionExpression */ || node.kind === 125 /* Method */ || node.kind === 127 /* GetAccessor */ || node.kind === 128 /* SetAccessor */ || node.kind === 192 /* ModuleDeclaration */ || node.kind === 188 /* ClassDeclaration */ || node.kind === 191 /* EnumDeclaration */) { - if (node.name) { - scopeName = node.name.text; - } - recordScopeNameStart(scopeName); - } - else { - recordScopeNameIndex(getSourceMapNameIndex()); - } - } - function recordScopeNameEnd() { - sourceMapNameIndices.pop(); - } - ; - function writeCommentRangeWithMap(curentSourceFile, writer, comment, newLine) { - recordSourceMapSpan(comment.pos); - 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(); - writeFile(compilerHost, 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 /* slash */) { - sourceMapData.sourceMapSourceRoot += ts.directorySeparator; - } - if (compilerOptions.mapRoot) { - sourceMapDir = ts.normalizeSlashes(compilerOptions.mapRoot); - if (root) { - sourceMapDir = ts.getDirectoryPath(getSourceFilePathInNewDir(root, program, sourceMapDir)); - } - if (!ts.isRootedDiskPath(sourceMapDir) && !ts.isUrl(sourceMapDir)) { - sourceMapDir = ts.combinePaths(program.getCommonSourceDirectory(), sourceMapDir); - sourceMapData.jsSourceMappingURL = ts.getRelativePathToDirectoryOrUrl(ts.getDirectoryPath(ts.normalizePath(jsFilePath)), ts.combinePaths(sourceMapDir, sourceMapData.jsSourceMappingURL), compilerHost.getCurrentDirectory(), compilerHost.getCanonicalFileName, true); - } - else { - sourceMapData.jsSourceMappingURL = ts.combinePaths(sourceMapDir, sourceMapData.jsSourceMappingURL); - } - } - else { - sourceMapDir = ts.getDirectoryPath(ts.normalizePath(jsFilePath)); - } - function emitNodeWithMap(node) { - if (node) { - if (node.kind != 197 /* SourceFile */) { - recordEmitNodeStartSpan(node); - emitNode(node); - recordEmitNodeEndSpan(node); - } - else { - recordNewSourceFileStart(node); - emitNode(node); - } - } - } - writeEmittedFiles = writeJavaScriptAndSourceMapFile; - emit = emitNodeWithMap; - emitStart = recordEmitNodeStartSpan; - emitEnd = recordEmitNodeEndSpan; - emitToken = writeTextWithSpanRecord; - scopeEmitStart = recordScopeNameOfNode; - scopeEmitEnd = recordScopeNameEnd; - writeComment = writeCommentRangeWithMap; - } - function writeJavaScriptFile(emitOutput, writeByteOrderMark) { - writeFile(compilerHost, diagnostics, jsFilePath, emitOutput, writeByteOrderMark); - } - 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 emitTrailingCommaIfPresent(nodeList, isMultiline) { - if (nodeList.hasTrailingComma) { - write(","); - if (isMultiline) { - writeLine(); - } - } - } - function emitCommaList(nodes, includeTrailingComma, count) { - if (!(count >= 0)) { - count = nodes.length; - } - if (nodes) { - for (var i = 0; i < count; i++) { - if (i) { - write(", "); - } - emit(nodes[i]); - } - if (includeTrailingComma) { - emitTrailingCommaIfPresent(nodes, false); - } - } - } - function emitMultiLineList(nodes, includeTrailingComma) { - if (nodes) { - for (var i = 0; i < nodes.length; i++) { - if (i) { - write(","); - } - writeLine(); - emit(nodes[i]); - } - if (includeTrailingComma) { - emitTrailingCommaIfPresent(nodes, true); - } - } - } - function emitLines(nodes) { - emitLinesStartingAt(nodes, 0); - } - function emitLinesStartingAt(nodes, startIndex) { - for (var i = startIndex; i < nodes.length; i++) { - writeLine(); - emit(nodes[i]); - } - } - function emitLiteral(node) { - var text = getLiteralText(); - if (compilerOptions.sourceMap && (node.kind === 7 /* StringLiteral */ || ts.isTemplateLiteralKind(node.kind))) { - writer.writeLiteral(text); - } - else { - write(text); - } - function getLiteralText() { - if (compilerOptions.target < 2 /* ES6 */ && ts.isTemplateLiteralKind(node.kind)) { - return getTemplateLiteralAsStringLiteral(node); - } - return ts.getSourceTextOfNodeFromSourceFile(currentSourceFile, node); - } - } - function getTemplateLiteralAsStringLiteral(node) { - return '"' + ts.escapeString(node.text) + '"'; - } - function emitTemplateExpression(node) { - if (compilerOptions.target >= 2 /* ES6 */) { - ts.forEachChild(node, emit); - return; - } - ts.Debug.assert(node.parent.kind !== 149 /* TaggedTemplateExpression */); - var emitOuterParens = ts.isExpression(node.parent) && templateNeedsParens(node, node.parent); - if (emitOuterParens) { - write("("); - } - emitLiteral(node.head); - ts.forEach(node.templateSpans, function (templateSpan) { - var needsParens = templateSpan.expression.kind !== 151 /* ParenExpression */ && comparePrecedenceToBinaryPlus(templateSpan.expression) !== 1 /* GreaterThan */; - write(" + "); - if (needsParens) { - write("("); - } - emit(templateSpan.expression); - if (needsParens) { - write(")"); - } - if (templateSpan.literal.text.length !== 0) { - write(" + "); - emitLiteral(templateSpan.literal); - } - }); - if (emitOuterParens) { - write(")"); - } - function templateNeedsParens(template, parent) { - switch (parent.kind) { - case 147 /* CallExpression */: - case 148 /* NewExpression */: - return parent.func === template; - case 151 /* ParenExpression */: - return false; - case 149 /* TaggedTemplateExpression */: - ts.Debug.fail("Path should be unreachable; tagged templates not supported pre-ES6."); - default: - return comparePrecedenceToBinaryPlus(parent) !== -1 /* LessThan */; - } - } - function comparePrecedenceToBinaryPlus(expression) { - ts.Debug.assert(compilerOptions.target <= 1 /* ES5 */); - switch (expression.kind) { - case 156 /* BinaryExpression */: - switch (expression.operator) { - case 34 /* AsteriskToken */: - case 35 /* SlashToken */: - case 36 /* PercentToken */: - return 1 /* GreaterThan */; - case 32 /* PlusToken */: - return 0 /* EqualTo */; - default: - return -1 /* LessThan */; - } - case 157 /* ConditionalExpression */: - return -1 /* LessThan */; - default: - return 1 /* GreaterThan */; - } - } - } - function emitTemplateSpan(span) { - emit(span.expression); - emit(span.literal); - } - function emitExpressionForPropertyName(node) { - if (node.kind === 7 /* StringLiteral */) { - emitLiteral(node); - } - else { - write("\""); - if (node.kind === 6 /* NumericLiteral */) { - write(node.text); - } - else { - writeTextOfNode(currentSourceFile, node); - } - write("\""); - } - } - function isNotExpressionIdentifier(node) { - var parent = node.parent; - switch (parent.kind) { - case 123 /* Parameter */: - case 185 /* VariableDeclaration */: - case 124 /* Property */: - case 143 /* PropertyAssignment */: - case 144 /* ShorthandPropertyAssignment */: - case 196 /* EnumMember */: - case 125 /* Method */: - case 186 /* FunctionDeclaration */: - case 127 /* GetAccessor */: - case 128 /* SetAccessor */: - case 152 /* FunctionExpression */: - case 188 /* ClassDeclaration */: - case 189 /* InterfaceDeclaration */: - case 191 /* EnumDeclaration */: - case 192 /* ModuleDeclaration */: - case 194 /* ImportDeclaration */: - return parent.name === node; - case 172 /* BreakStatement */: - case 171 /* ContinueStatement */: - case 195 /* ExportAssignment */: - return false; - case 178 /* LabeledStatement */: - return node.parent.label === node; - case 182 /* CatchBlock */: - return node.parent.variable === node; - } - } - function emitExpressionIdentifier(node) { - var prefix = resolver.getExpressionNamePrefix(node); - if (prefix) { - write(prefix); - write("."); - } - writeTextOfNode(currentSourceFile, node); - } - function emitIdentifier(node) { - if (!isNotExpressionIdentifier(node)) { - emitExpressionIdentifier(node); - } - else { - writeTextOfNode(currentSourceFile, node); - } - } - function emitThis(node) { - if (resolver.getNodeCheckFlags(node) & 2 /* LexicalThis */) { - write("_this"); - } - else { - write("this"); - } - } - function emitSuper(node) { - var flags = resolver.getNodeCheckFlags(node); - if (flags & 16 /* SuperInstance */) { - write("_super.prototype"); - } - else if (flags & 32 /* SuperStatic */) { - write("_super"); - } - else { - write("super"); - } - } - function emitArrayLiteral(node) { - if (node.flags & 256 /* MultiLine */) { - write("["); - increaseIndent(); - emitMultiLineList(node.elements, true); - decreaseIndent(); - writeLine(); - write("]"); - } - else { - write("["); - emitCommaList(node.elements, true); - write("]"); - } - } - function emitObjectLiteral(node) { - if (!node.properties.length) { - write("{}"); - } - else if (node.flags & 256 /* MultiLine */) { - write("{"); - increaseIndent(); - emitMultiLineList(node.properties, compilerOptions.target >= 1 /* ES5 */); - decreaseIndent(); - writeLine(); - write("}"); - } - else { - write("{ "); - emitCommaList(node.properties, compilerOptions.target >= 1 /* ES5 */); - write(" }"); - } - } - function emitPropertyAssignment(node) { - emitLeadingComments(node); - emit(node.name); - write(": "); - emit(node.initializer); - emitTrailingComments(node); - } - function emitShortHandPropertyAssignment(node) { - function emitAsNormalPropertyAssignment() { - emitLeadingComments(node); - emit(node.name); - write(": "); - emitExpressionIdentifier(node.name); - emitTrailingComments(node); - } - if (compilerOptions.target < 2 /* ES6 */) { - emitAsNormalPropertyAssignment(); - } - else if (compilerOptions.target >= 2 /* ES6 */) { - var prefix = resolver.getExpressionNamePrefix(node.name); - if (prefix) { - emitAsNormalPropertyAssignment(); - } - else { - emitLeadingComments(node); - emit(node.name); - emitTrailingComments(node); - } - } - } - function tryEmitConstantValue(node) { - var constantValue = resolver.getConstantValue(node); - if (constantValue !== undefined) { - var propertyName = node.kind === 145 /* PropertyAccess */ ? ts.declarationNameToString(node.right) : ts.getTextOfNode(node.index); - write(constantValue.toString() + " /* " + propertyName + " */"); - return true; - } - return false; - } - function emitPropertyAccess(node) { - if (tryEmitConstantValue(node)) { - return; - } - emit(node.left); - write("."); - emit(node.right); - } - function emitIndexedAccess(node) { - if (tryEmitConstantValue(node)) { - return; - } - emit(node.object); - write("["); - emit(node.index); - write("]"); - } - function emitCallExpression(node) { - var superCall = false; - if (node.func.kind === 89 /* SuperKeyword */) { - write("_super"); - superCall = true; - } - else { - emit(node.func); - superCall = node.func.kind === 145 /* PropertyAccess */ && node.func.left.kind === 89 /* SuperKeyword */; - } - if (superCall) { - write(".call("); - emitThis(node.func); - if (node.arguments.length) { - write(", "); - emitCommaList(node.arguments, false); - } - write(")"); - } - else { - write("("); - emitCommaList(node.arguments, false); - write(")"); - } - } - function emitNewExpression(node) { - write("new "); - emit(node.func); - if (node.arguments) { - write("("); - emitCommaList(node.arguments, false); - write(")"); - } - } - function emitTaggedTemplateExpression(node) { - ts.Debug.assert(compilerOptions.target >= 2 /* ES6 */, "Trying to emit a tagged template in pre-ES6 mode."); - emit(node.tag); - write(" "); - emit(node.template); - } - function emitParenExpression(node) { - if (node.expression.kind === 150 /* TypeAssertion */) { - var operand = node.expression.operand; - while (operand.kind == 150 /* TypeAssertion */) { - operand = operand.operand; - } - if (operand.kind !== 154 /* PrefixOperator */ && operand.kind !== 155 /* PostfixOperator */ && operand.kind !== 148 /* NewExpression */ && !(operand.kind === 147 /* CallExpression */ && node.parent.kind === 148 /* NewExpression */) && !(operand.kind === 152 /* FunctionExpression */ && node.parent.kind === 147 /* CallExpression */)) { - emit(operand); - return; - } - } - write("("); - emit(node.expression); - write(")"); - } - function emitUnaryExpression(node) { - if (node.kind === 154 /* PrefixOperator */) { - write(ts.tokenToString(node.operator)); - } - if (node.operator >= 63 /* Identifier */) { - write(" "); - } - else if (node.kind === 154 /* PrefixOperator */ && node.operand.kind === 154 /* PrefixOperator */) { - var operand = node.operand; - if (node.operator === 32 /* PlusToken */ && (operand.operator === 32 /* PlusToken */ || operand.operator === 37 /* PlusPlusToken */)) { - write(" "); - } - else if (node.operator === 33 /* MinusToken */ && (operand.operator === 33 /* MinusToken */ || operand.operator === 38 /* MinusMinusToken */)) { - write(" "); - } - } - emit(node.operand); - if (node.kind === 155 /* PostfixOperator */) { - write(ts.tokenToString(node.operator)); - } - } - function emitBinaryExpression(node) { - emit(node.left); - if (node.operator !== 22 /* CommaToken */) - write(" "); - write(ts.tokenToString(node.operator)); - write(" "); - emit(node.right); - } - function emitConditionalExpression(node) { - emit(node.condition); - write(" ? "); - emit(node.whenTrue); - write(" : "); - emit(node.whenFalse); - } - function emitBlock(node) { - emitToken(13 /* OpenBraceToken */, node.pos); - increaseIndent(); - scopeEmitStart(node.parent); - if (node.kind === 193 /* ModuleBlock */) { - ts.Debug.assert(node.parent.kind === 192 /* ModuleDeclaration */); - emitCaptureThisForNodeIfNecessary(node.parent); - } - emitLines(node.statements); - decreaseIndent(); - writeLine(); - emitToken(14 /* CloseBraceToken */, node.statements.end); - scopeEmitEnd(); - } - function emitEmbeddedStatement(node) { - if (node.kind === 162 /* Block */) { - write(" "); - emit(node); - } - else { - increaseIndent(); - writeLine(); - emit(node); - decreaseIndent(); - } - } - function emitExpressionStatement(node) { - var isArrowExpression = node.expression.kind === 153 /* ArrowFunction */; - emitLeadingComments(node); - if (isArrowExpression) - write("("); - emit(node.expression); - if (isArrowExpression) - write(")"); - write(";"); - emitTrailingComments(node); - } - function emitIfStatement(node) { - emitLeadingComments(node); - var endPos = emitToken(82 /* IfKeyword */, node.pos); - write(" "); - endPos = emitToken(15 /* OpenParenToken */, endPos); - emit(node.expression); - emitToken(16 /* CloseParenToken */, node.expression.end); - emitEmbeddedStatement(node.thenStatement); - if (node.elseStatement) { - writeLine(); - emitToken(74 /* ElseKeyword */, node.thenStatement.end); - if (node.elseStatement.kind === 166 /* IfStatement */) { - write(" "); - emit(node.elseStatement); - } - else { - emitEmbeddedStatement(node.elseStatement); - } - } - emitTrailingComments(node); - } - function emitDoStatement(node) { - write("do"); - emitEmbeddedStatement(node.statement); - if (node.statement.kind === 162 /* Block */) { - write(" "); - } - else { - writeLine(); - } - write("while ("); - emit(node.expression); - write(");"); - } - function emitWhileStatement(node) { - write("while ("); - emit(node.expression); - write(")"); - emitEmbeddedStatement(node.statement); - } - function emitForStatement(node) { - var endPos = emitToken(80 /* ForKeyword */, node.pos); - write(" "); - endPos = emitToken(15 /* OpenParenToken */, endPos); - if (node.declarations) { - if (node.declarations[0] && ts.isLet(node.declarations[0])) { - emitToken(102 /* LetKeyword */, endPos); - } - else if (node.declarations[0] && ts.isConst(node.declarations[0])) { - emitToken(68 /* ConstKeyword */, endPos); - } - else { - emitToken(96 /* VarKeyword */, endPos); - } - write(" "); - emitCommaList(node.declarations, false); - } - if (node.initializer) { - emit(node.initializer); - } - write(";"); - emitOptional(" ", node.condition); - write(";"); - emitOptional(" ", node.iterator); - write(")"); - emitEmbeddedStatement(node.statement); - } - function emitForInStatement(node) { - var endPos = emitToken(80 /* ForKeyword */, node.pos); - write(" "); - endPos = emitToken(15 /* OpenParenToken */, endPos); - if (node.declarations) { - if (node.declarations.length >= 1) { - var decl = node.declarations[0]; - if (ts.isLet(decl)) { - emitToken(102 /* LetKeyword */, endPos); - } - else { - emitToken(96 /* VarKeyword */, endPos); - } - write(" "); - emit(decl); - } - } - else { - emit(node.variable); - } - write(" in "); - emit(node.expression); - emitToken(16 /* CloseParenToken */, node.expression.end); - emitEmbeddedStatement(node.statement); - } - function emitBreakOrContinueStatement(node) { - emitToken(node.kind === 172 /* BreakStatement */ ? 64 /* BreakKeyword */ : 69 /* ContinueKeyword */, node.pos); - emitOptional(" ", node.label); - write(";"); - } - function emitReturnStatement(node) { - emitLeadingComments(node); - emitToken(88 /* ReturnKeyword */, node.pos); - emitOptional(" ", node.expression); - write(";"); - emitTrailingComments(node); - } - function emitWithStatement(node) { - write("with ("); - emit(node.expression); - write(")"); - emitEmbeddedStatement(node.statement); - } - function emitSwitchStatement(node) { - var endPos = emitToken(90 /* SwitchKeyword */, node.pos); - write(" "); - emitToken(15 /* OpenParenToken */, endPos); - emit(node.expression); - endPos = emitToken(16 /* CloseParenToken */, node.expression.end); - write(" "); - emitToken(13 /* OpenBraceToken */, endPos); - increaseIndent(); - emitLines(node.clauses); - decreaseIndent(); - writeLine(); - emitToken(14 /* CloseBraceToken */, node.clauses.end); - } - function isOnSameLine(node1, node2) { - return getLineOfLocalPosition(currentSourceFile, ts.skipTrivia(currentSourceFile.text, node1.pos)) === getLineOfLocalPosition(currentSourceFile, ts.skipTrivia(currentSourceFile.text, node2.pos)); - } - function emitCaseOrDefaultClause(node) { - if (node.kind === 176 /* CaseClause */) { - write("case "); - emit(node.expression); - write(":"); - } - else { - write("default:"); - } - if (node.statements.length === 1 && isOnSameLine(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.catchBlock); - if (node.finallyBlock) { - writeLine(); - write("finally "); - emit(node.finallyBlock); - } - } - function emitCatchBlock(node) { - writeLine(); - var endPos = emitToken(66 /* CatchKeyword */, node.pos); - write(" "); - emitToken(15 /* OpenParenToken */, endPos); - emit(node.variable); - emitToken(16 /* CloseParenToken */, node.variable.end); - write(" "); - emitBlock(node); - } - function emitDebuggerStatement(node) { - emitToken(70 /* DebuggerKeyword */, node.pos); - write(";"); - } - function emitLabelledStatement(node) { - emit(node.label); - write(": "); - emit(node.statement); - } - function getContainingModule(node) { - do { - node = node.parent; - } while (node && node.kind !== 192 /* ModuleDeclaration */); - return node; - } - function emitModuleMemberName(node) { - emitStart(node.name); - if (node.flags & 1 /* Export */) { - var container = getContainingModule(node); - write(container ? resolver.getLocalNameOfContainer(container) : "exports"); - write("."); - } - emitNode(node.name); - emitEnd(node.name); - } - function emitVariableDeclaration(node) { - emitLeadingComments(node); - emitModuleMemberName(node); - emitOptional(" = ", node.initializer); - emitTrailingComments(node); - } - function emitVariableStatement(node) { - emitLeadingComments(node); - if (!(node.flags & 1 /* Export */)) { - if (ts.isLet(node)) { - write("let "); - } - else if (ts.isConst(node)) { - write("const "); - } - else { - write("var "); - } - } - emitCommaList(node.declarations, false); - write(";"); - emitTrailingComments(node); - } - function emitParameter(node) { - emitLeadingComments(node); - emit(node.name); - emitTrailingComments(node); - } - function emitDefaultValueAssignments(node) { - ts.forEach(node.parameters, function (param) { - if (param.initializer) { - writeLine(); - emitStart(param); - write("if ("); - emitNode(param.name); - write(" === void 0)"); - emitEnd(param); - write(" { "); - emitStart(param); - emitNode(param.name); - write(" = "); - emitNode(param.initializer); - emitEnd(param); - write("; }"); - } - }); - } - function emitRestParameter(node) { - if (ts.hasRestParameters(node)) { - var restIndex = node.parameters.length - 1; - var restParam = node.parameters[restIndex]; - writeLine(); - emitLeadingComments(restParam); - emitStart(restParam); - write("var "); - emitNode(restParam.name); - write(" = [];"); - emitEnd(restParam); - emitTrailingComments(restParam); - writeLine(); - write("for ("); - emitStart(restParam); - write("var _i = " + restIndex + ";"); - emitEnd(restParam); - write(" "); - emitStart(restParam); - write("_i < arguments.length;"); - emitEnd(restParam); - write(" "); - emitStart(restParam); - write("_i++"); - emitEnd(restParam); - write(") {"); - increaseIndent(); - writeLine(); - emitStart(restParam); - emitNode(restParam.name); - write("[_i - " + restIndex + "] = arguments[_i];"); - emitEnd(restParam); - decreaseIndent(); - writeLine(); - write("}"); - } - } - function emitAccessor(node) { - emitLeadingComments(node); - write(node.kind === 127 /* GetAccessor */ ? "get " : "set "); - emit(node.name); - emitSignatureAndBody(node); - emitTrailingComments(node); - } - function emitFunctionDeclaration(node) { - if (!node.body) { - return emitPinnedOrTripleSlashComments(node); - } - if (node.kind !== 125 /* Method */) { - emitLeadingComments(node); - } - write("function "); - if (node.kind === 186 /* FunctionDeclaration */ || (node.kind === 152 /* FunctionExpression */ && node.name)) { - emit(node.name); - } - emitSignatureAndBody(node); - if (node.kind !== 125 /* Method */) { - emitTrailingComments(node); - } - } - function emitCaptureThisForNodeIfNecessary(node) { - if (resolver.getNodeCheckFlags(node) & 4 /* CaptureThis */) { - writeLine(); - emitStart(node); - write("var _this = this;"); - emitEnd(node); - } - } - function emitSignatureParameters(node) { - increaseIndent(); - write("("); - if (node) { - emitCommaList(node.parameters, false, node.parameters.length - (ts.hasRestParameters(node) ? 1 : 0)); - } - write(")"); - decreaseIndent(); - } - function emitSignatureAndBody(node) { - emitSignatureParameters(node); - write(" {"); - scopeEmitStart(node); - increaseIndent(); - emitDetachedComments(node.body.kind === 187 /* FunctionBlock */ ? node.body.statements : node.body); - var startIndex = 0; - if (node.body.kind === 187 /* FunctionBlock */) { - startIndex = emitDirectivePrologues(node.body.statements, true); - } - var outPos = writer.getTextPos(); - emitCaptureThisForNodeIfNecessary(node); - emitDefaultValueAssignments(node); - emitRestParameter(node); - if (node.body.kind !== 187 /* FunctionBlock */ && outPos === writer.getTextPos()) { - decreaseIndent(); - write(" "); - emitStart(node.body); - write("return "); - emitNode(node.body); - emitEnd(node.body); - write("; "); - emitStart(node.body); - write("}"); - emitEnd(node.body); - } - else { - if (node.body.kind === 187 /* FunctionBlock */) { - emitLinesStartingAt(node.body.statements, startIndex); - } - else { - writeLine(); - emitLeadingComments(node.body); - write("return "); - emit(node.body); - write(";"); - emitTrailingComments(node.body); - } - writeLine(); - if (node.body.kind === 187 /* FunctionBlock */) { - emitLeadingCommentsOfPosition(node.body.statements.end); - decreaseIndent(); - emitToken(14 /* CloseBraceToken */, node.body.statements.end); - } - else { - decreaseIndent(); - emitStart(node.body); - write("}"); - emitEnd(node.body); - } - } - scopeEmitEnd(); - if (node.flags & 1 /* Export */) { - writeLine(); - emitStart(node); - emitModuleMemberName(node); - write(" = "); - emit(node.name); - emitEnd(node); - write(";"); - } - } - function findInitialSuperCall(ctor) { - if (ctor.body) { - var statement = ctor.body.statements[0]; - if (statement && statement.kind === 165 /* ExpressionStatement */) { - var expr = statement.expression; - if (expr && expr.kind === 147 /* CallExpression */) { - var func = expr.func; - if (func && func.kind === 89 /* SuperKeyword */) { - return statement; - } - } - } - } - } - function emitParameterPropertyAssignments(node) { - ts.forEach(node.parameters, function (param) { - if (param.flags & 112 /* AccessibilityModifier */) { - writeLine(); - emitStart(param); - emitStart(param.name); - write("this."); - emitNode(param.name); - emitEnd(param.name); - write(" = "); - emit(param.name); - write(";"); - emitEnd(param); - } - }); - } - function emitMemberAccess(memberName) { - if (memberName.kind === 7 /* StringLiteral */ || memberName.kind === 6 /* NumericLiteral */) { - write("["); - emitNode(memberName); - write("]"); - } - else { - write("."); - emitNode(memberName); - } - } - function emitMemberAssignments(node, staticFlag) { - ts.forEach(node.members, function (member) { - if (member.kind === 124 /* Property */ && (member.flags & 128 /* Static */) === staticFlag && member.initializer) { - writeLine(); - emitLeadingComments(member); - emitStart(member); - emitStart(member.name); - if (staticFlag) { - emitNode(node.name); - } - else { - write("this"); - } - emitMemberAccess(member.name); - emitEnd(member.name); - write(" = "); - emit(member.initializer); - write(";"); - emitEnd(member); - emitTrailingComments(member); - } - }); - } - function emitMemberFunctions(node) { - ts.forEach(node.members, function (member) { - if (member.kind === 125 /* Method */) { - if (!member.body) { - return emitPinnedOrTripleSlashComments(member); - } - writeLine(); - emitLeadingComments(member); - emitStart(member); - emitStart(member.name); - emitNode(node.name); - if (!(member.flags & 128 /* Static */)) { - write(".prototype"); - } - emitMemberAccess(member.name); - emitEnd(member.name); - write(" = "); - emitStart(member); - emitFunctionDeclaration(member); - emitEnd(member); - emitEnd(member); - write(";"); - emitTrailingComments(member); - } - else if (member.kind === 127 /* GetAccessor */ || member.kind === 128 /* SetAccessor */) { - var accessors = getAllAccessorDeclarations(node, member); - if (member === accessors.firstAccessor) { - writeLine(); - emitStart(member); - write("Object.defineProperty("); - emitStart(member.name); - emitNode(node.name); - if (!(member.flags & 128 /* Static */)) { - write(".prototype"); - } - 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 emitClassDeclaration(node) { - emitLeadingComments(node); - write("var "); - emit(node.name); - write(" = (function ("); - if (node.baseType) { - write("_super"); - } - write(") {"); - increaseIndent(); - scopeEmitStart(node); - if (node.baseType) { - writeLine(); - emitStart(node.baseType); - write("__extends("); - emit(node.name); - write(", _super);"); - emitEnd(node.baseType); - } - writeLine(); - emitConstructorOfClass(); - emitMemberFunctions(node); - emitMemberAssignments(node, 128 /* Static */); - writeLine(); - function emitClassReturnStatement() { - write("return "); - emitNode(node.name); - } - emitToken(14 /* CloseBraceToken */, node.members.end, emitClassReturnStatement); - write(";"); - decreaseIndent(); - writeLine(); - emitToken(14 /* CloseBraceToken */, node.members.end); - scopeEmitEnd(); - emitStart(node); - write(")("); - if (node.baseType) { - emit(node.baseType.typeName); - } - write(");"); - emitEnd(node); - if (node.flags & 1 /* Export */) { - writeLine(); - emitStart(node); - emitModuleMemberName(node); - write(" = "); - emit(node.name); - emitEnd(node); - write(";"); - } - emitTrailingComments(node); - function emitConstructorOfClass() { - ts.forEach(node.members, function (member) { - if (member.kind === 126 /* Constructor */ && !member.body) { - emitPinnedOrTripleSlashComments(member); - } - }); - var ctor = getFirstConstructorWithBody(node); - if (ctor) { - emitLeadingComments(ctor); - } - emitStart(ctor || node); - write("function "); - emit(node.name); - emitSignatureParameters(ctor); - write(" {"); - scopeEmitStart(node, "constructor"); - increaseIndent(); - if (ctor) { - emitDetachedComments(ctor.body.statements); - } - emitCaptureThisForNodeIfNecessary(node); - if (ctor) { - emitDefaultValueAssignments(ctor); - emitRestParameter(ctor); - if (node.baseType) { - var superCall = findInitialSuperCall(ctor); - if (superCall) { - writeLine(); - emit(superCall); - } - } - emitParameterPropertyAssignments(ctor); - } - else { - if (node.baseType) { - writeLine(); - emitStart(node.baseType); - write("_super.apply(this, arguments);"); - emitEnd(node.baseType); - } - } - emitMemberAssignments(node, 0); - if (ctor) { - var statements = ctor.body.statements; - if (superCall) - statements = statements.slice(1); - emitLines(statements); - } - writeLine(); - if (ctor) { - emitLeadingCommentsOfPosition(ctor.body.statements.end); - } - decreaseIndent(); - emitToken(14 /* CloseBraceToken */, ctor ? ctor.body.statements.end : node.members.end); - scopeEmitEnd(); - emitEnd(ctor || node); - if (ctor) { - emitTrailingComments(ctor); - } - } - } - function emitInterfaceDeclaration(node) { - emitPinnedOrTripleSlashComments(node); - } - function emitEnumDeclaration(node) { - var isConstEnum = ts.isConst(node); - if (isConstEnum && !compilerOptions.preserveConstEnums) { - return; - } - emitLeadingComments(node); - if (!(node.flags & 1 /* Export */)) { - emitStart(node); - write("var "); - emit(node.name); - emitEnd(node); - write(";"); - } - writeLine(); - emitStart(node); - write("(function ("); - emitStart(node.name); - write(resolver.getLocalNameOfContainer(node)); - emitEnd(node.name); - write(") {"); - increaseIndent(); - scopeEmitStart(node); - emitEnumMemberDeclarations(isConstEnum); - decreaseIndent(); - writeLine(); - emitToken(14 /* CloseBraceToken */, node.members.end); - scopeEmitEnd(); - write(")("); - emitModuleMemberName(node); - write(" || ("); - emitModuleMemberName(node); - write(" = {}));"); - emitEnd(node); - if (node.flags & 1 /* Export */) { - writeLine(); - emitStart(node); - write("var "); - emit(node.name); - write(" = "); - emitModuleMemberName(node); - emitEnd(node); - write(";"); - } - emitTrailingComments(node); - function emitEnumMemberDeclarations(isConstEnum) { - ts.forEach(node.members, function (member) { - writeLine(); - emitLeadingComments(member); - emitStart(member); - write(resolver.getLocalNameOfContainer(node)); - write("["); - write(resolver.getLocalNameOfContainer(node)); - write("["); - emitExpressionForPropertyName(member.name); - write("] = "); - if (member.initializer && !isConstEnum) { - emit(member.initializer); - } - else { - write(resolver.getEnumMemberValue(member).toString()); - } - write("] = "); - emitExpressionForPropertyName(member.name); - emitEnd(member); - write(";"); - emitTrailingComments(member); - }); - } - } - function getInnerMostModuleDeclarationFromDottedModule(moduleDeclaration) { - if (moduleDeclaration.body.kind === 192 /* ModuleDeclaration */) { - var recursiveInnerModule = getInnerMostModuleDeclarationFromDottedModule(moduleDeclaration.body); - return recursiveInnerModule || moduleDeclaration.body; - } - } - function emitModuleDeclaration(node) { - var shouldEmit = ts.getModuleInstanceState(node) === 1 /* Instantiated */ || (ts.getModuleInstanceState(node) === 2 /* ConstEnumOnly */ && compilerOptions.preserveConstEnums); - if (!shouldEmit) { - return emitPinnedOrTripleSlashComments(node); - } - emitLeadingComments(node); - emitStart(node); - write("var "); - emit(node.name); - write(";"); - emitEnd(node); - writeLine(); - emitStart(node); - write("(function ("); - emitStart(node.name); - write(resolver.getLocalNameOfContainer(node)); - emitEnd(node.name); - write(") "); - if (node.body.kind === 193 /* ModuleBlock */) { - emit(node.body); - } - else { - write("{"); - increaseIndent(); - scopeEmitStart(node); - emitCaptureThisForNodeIfNecessary(node); - writeLine(); - emit(node.body); - decreaseIndent(); - writeLine(); - var moduleBlock = getInnerMostModuleDeclarationFromDottedModule(node).body; - emitToken(14 /* CloseBraceToken */, moduleBlock.statements.end); - scopeEmitEnd(); - } - write(")("); - if (node.flags & 1 /* Export */) { - emit(node.name); - write(" = "); - } - emitModuleMemberName(node); - write(" || ("); - emitModuleMemberName(node); - write(" = {}));"); - emitEnd(node); - emitTrailingComments(node); - } - function emitImportDeclaration(node) { - var emitImportDeclaration = resolver.isReferencedImportDeclaration(node); - if (!emitImportDeclaration) { - emitImportDeclaration = !ts.isExternalModule(currentSourceFile) && resolver.isTopLevelValueImportWithEntityName(node); - } - if (emitImportDeclaration) { - if (node.externalModuleName && node.parent.kind === 197 /* SourceFile */ && compilerOptions.module === 2 /* AMD */) { - if (node.flags & 1 /* Export */) { - writeLine(); - emitLeadingComments(node); - emitStart(node); - emitModuleMemberName(node); - write(" = "); - emit(node.name); - write(";"); - emitEnd(node); - emitTrailingComments(node); - } - } - else { - writeLine(); - emitLeadingComments(node); - emitStart(node); - if (!(node.flags & 1 /* Export */)) - write("var "); - emitModuleMemberName(node); - write(" = "); - if (node.entityName) { - emit(node.entityName); - } - else { - write("require("); - emitStart(node.externalModuleName); - emitLiteral(node.externalModuleName); - emitEnd(node.externalModuleName); - emitToken(16 /* CloseParenToken */, node.externalModuleName.end); - } - write(";"); - emitEnd(node); - emitTrailingComments(node); - } - } - } - function getExternalImportDeclarations(node) { - var result = []; - ts.forEach(node.statements, function (stat) { - if (stat.kind === 194 /* ImportDeclaration */ && stat.externalModuleName && resolver.isReferencedImportDeclaration(stat)) { - result.push(stat); - } - }); - return result; - } - function getFirstExportAssignment(sourceFile) { - return ts.forEach(sourceFile.statements, function (node) { - if (node.kind === 195 /* ExportAssignment */) { - return node; - } - }); - } - function emitAMDModule(node, startIndex) { - var imports = getExternalImportDeclarations(node); - writeLine(); - write("define("); - if (node.amdModuleName) { - write("\"" + node.amdModuleName + "\", "); - } - write("[\"require\", \"exports\""); - ts.forEach(imports, function (imp) { - write(", "); - emitLiteral(imp.externalModuleName); - }); - ts.forEach(node.amdDependencies, function (amdDependency) { - var text = "\"" + amdDependency + "\""; - write(", "); - write(text); - }); - write("], function (require, exports"); - ts.forEach(imports, function (imp) { - write(", "); - emit(imp.name); - }); - write(") {"); - increaseIndent(); - emitCaptureThisForNodeIfNecessary(node); - emitLinesStartingAt(node.statements, startIndex); - var exportName = resolver.getExportAssignmentName(node); - if (exportName) { - writeLine(); - var exportAssignement = getFirstExportAssignment(node); - emitStart(exportAssignement); - write("return "); - emitStart(exportAssignement.exportName); - write(exportName); - emitEnd(exportAssignement.exportName); - write(";"); - emitEnd(exportAssignement); - } - decreaseIndent(); - writeLine(); - write("});"); - } - function emitCommonJSModule(node, startIndex) { - emitCaptureThisForNodeIfNecessary(node); - emitLinesStartingAt(node.statements, startIndex); - var exportName = resolver.getExportAssignmentName(node); - if (exportName) { - writeLine(); - var exportAssignement = getFirstExportAssignment(node); - emitStart(exportAssignement); - write("module.exports = "); - emitStart(exportAssignement.exportName); - write(exportName); - emitEnd(exportAssignement.exportName); - write(";"); - emitEnd(exportAssignement); - } - } - 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 emitSourceFile(node) { - currentSourceFile = node; - writeLine(); - emitDetachedComments(node); - var startIndex = emitDirectivePrologues(node.statements, false); - if (!extendsEmitted && resolver.getNodeCheckFlags(node) & 8 /* EmitExtends */) { - 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 (ts.isExternalModule(node)) { - if (compilerOptions.module === 2 /* AMD */) { - emitAMDModule(node, startIndex); - } - else { - emitCommonJSModule(node, startIndex); - } - } - else { - emitCaptureThisForNodeIfNecessary(node); - emitLinesStartingAt(node.statements, startIndex); - } - } - function emitNode(node) { - if (!node) { - return; - } - if (node.flags & 2 /* Ambient */) { - return emitPinnedOrTripleSlashComments(node); - } - switch (node.kind) { - case 63 /* Identifier */: - return emitIdentifier(node); - case 123 /* Parameter */: - return emitParameter(node); - case 127 /* GetAccessor */: - case 128 /* SetAccessor */: - return emitAccessor(node); - case 91 /* ThisKeyword */: - return emitThis(node); - case 89 /* SuperKeyword */: - return emitSuper(node); - case 87 /* NullKeyword */: - return write("null"); - case 93 /* TrueKeyword */: - return write("true"); - case 78 /* FalseKeyword */: - return write("false"); - case 6 /* NumericLiteral */: - case 7 /* StringLiteral */: - case 8 /* RegularExpressionLiteral */: - case 9 /* NoSubstitutionTemplateLiteral */: - case 10 /* TemplateHead */: - case 11 /* TemplateMiddle */: - case 12 /* TemplateTail */: - return emitLiteral(node); - case 158 /* TemplateExpression */: - return emitTemplateExpression(node); - case 159 /* TemplateSpan */: - return emitTemplateSpan(node); - case 121 /* QualifiedName */: - return emitPropertyAccess(node); - case 141 /* ArrayLiteral */: - return emitArrayLiteral(node); - case 142 /* ObjectLiteral */: - return emitObjectLiteral(node); - case 143 /* PropertyAssignment */: - return emitPropertyAssignment(node); - case 144 /* ShorthandPropertyAssignment */: - return emitShortHandPropertyAssignment(node); - case 145 /* PropertyAccess */: - return emitPropertyAccess(node); - case 146 /* IndexedAccess */: - return emitIndexedAccess(node); - case 147 /* CallExpression */: - return emitCallExpression(node); - case 148 /* NewExpression */: - return emitNewExpression(node); - case 149 /* TaggedTemplateExpression */: - return emitTaggedTemplateExpression(node); - case 150 /* TypeAssertion */: - return emit(node.operand); - case 151 /* ParenExpression */: - return emitParenExpression(node); - case 186 /* FunctionDeclaration */: - case 152 /* FunctionExpression */: - case 153 /* ArrowFunction */: - return emitFunctionDeclaration(node); - case 154 /* PrefixOperator */: - case 155 /* PostfixOperator */: - return emitUnaryExpression(node); - case 156 /* BinaryExpression */: - return emitBinaryExpression(node); - case 157 /* ConditionalExpression */: - return emitConditionalExpression(node); - case 161 /* OmittedExpression */: - return; - case 162 /* Block */: - case 181 /* TryBlock */: - case 183 /* FinallyBlock */: - case 187 /* FunctionBlock */: - case 193 /* ModuleBlock */: - return emitBlock(node); - case 163 /* VariableStatement */: - return emitVariableStatement(node); - case 164 /* EmptyStatement */: - return write(";"); - case 165 /* ExpressionStatement */: - return emitExpressionStatement(node); - case 166 /* IfStatement */: - return emitIfStatement(node); - case 167 /* DoStatement */: - return emitDoStatement(node); - case 168 /* WhileStatement */: - return emitWhileStatement(node); - case 169 /* ForStatement */: - return emitForStatement(node); - case 170 /* ForInStatement */: - return emitForInStatement(node); - case 171 /* ContinueStatement */: - case 172 /* BreakStatement */: - return emitBreakOrContinueStatement(node); - case 173 /* ReturnStatement */: - return emitReturnStatement(node); - case 174 /* WithStatement */: - return emitWithStatement(node); - case 175 /* SwitchStatement */: - return emitSwitchStatement(node); - case 176 /* CaseClause */: - case 177 /* DefaultClause */: - return emitCaseOrDefaultClause(node); - case 178 /* LabeledStatement */: - return emitLabelledStatement(node); - case 179 /* ThrowStatement */: - return emitThrowStatement(node); - case 180 /* TryStatement */: - return emitTryStatement(node); - case 182 /* CatchBlock */: - return emitCatchBlock(node); - case 184 /* DebuggerStatement */: - return emitDebuggerStatement(node); - case 185 /* VariableDeclaration */: - return emitVariableDeclaration(node); - case 188 /* ClassDeclaration */: - return emitClassDeclaration(node); - case 189 /* InterfaceDeclaration */: - return emitInterfaceDeclaration(node); - case 191 /* EnumDeclaration */: - return emitEnumDeclaration(node); - case 192 /* ModuleDeclaration */: - return emitModuleDeclaration(node); - case 194 /* ImportDeclaration */: - return emitImportDeclaration(node); - case 197 /* SourceFile */: - return emitSourceFile(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 getLeadingCommentsToEmit(node) { - if (node.parent.kind === 197 /* SourceFile */ || node.pos !== node.parent.pos) { - var leadingComments; - if (hasDetachedComments(node.pos)) { - leadingComments = getLeadingCommentsWithoutDetachedComments(); - } - else { - leadingComments = ts.getLeadingCommentRangesOfNode(node, currentSourceFile); - } - return leadingComments; - } - } - function emitLeadingDeclarationComments(node) { - var leadingComments = getLeadingCommentsToEmit(node); - emitNewLineBeforeLeadingComments(currentSourceFile, writer, node, leadingComments); - emitComments(currentSourceFile, writer, leadingComments, true, newLine, writeComment); - } - function emitTrailingDeclarationComments(node) { - if (node.parent.kind === 197 /* SourceFile */ || node.end !== node.parent.end) { - var trailingComments = ts.getTrailingCommentRanges(currentSourceFile.text, node.end); - emitComments(currentSourceFile, writer, trailingComments, false, newLine, writeComment); - } - } - function emitLeadingCommentsOfLocalPosition(pos) { - var leadingComments; - if (hasDetachedComments(pos)) { - leadingComments = getLeadingCommentsWithoutDetachedComments(); - } - else { - leadingComments = ts.getLeadingCommentRanges(currentSourceFile.text, pos); - } - emitNewLineBeforeLeadingComments(currentSourceFile, writer, { pos: pos, end: pos }, leadingComments); - emitComments(currentSourceFile, writer, leadingComments, true, newLine, writeComment); - } - function emitDetachedCommentsAtPosition(node) { - var leadingComments = ts.getLeadingCommentRanges(currentSourceFile.text, node.pos); - if (leadingComments) { - var detachedComments = []; - var lastComment; - ts.forEach(leadingComments, function (comment) { - if (lastComment) { - var lastCommentLine = getLineOfLocalPosition(currentSourceFile, lastComment.end); - var commentLine = getLineOfLocalPosition(currentSourceFile, comment.pos); - if (commentLine >= lastCommentLine + 2) { - return detachedComments; - } - } - detachedComments.push(comment); - lastComment = comment; - }); - if (detachedComments.length) { - var lastCommentLine = getLineOfLocalPosition(currentSourceFile, detachedComments[detachedComments.length - 1].end); - var astLine = getLineOfLocalPosition(currentSourceFile, ts.skipTrivia(currentSourceFile.text, node.pos)); - if (astLine >= lastCommentLine + 2) { - emitNewLineBeforeLeadingComments(currentSourceFile, writer, node, leadingComments); - 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 emitPinnedOrTripleSlashCommentsOfNode(node) { - var pinnedComments = ts.filter(getLeadingCommentsToEmit(node), isPinnedOrTripleSlashComment); - function isPinnedOrTripleSlashComment(comment) { - if (currentSourceFile.text.charCodeAt(comment.pos + 1) === 42 /* asterisk */) { - return currentSourceFile.text.charCodeAt(comment.pos + 2) === 33 /* exclamation */; - } - else if (currentSourceFile.text.charCodeAt(comment.pos + 1) === 47 /* slash */ && comment.pos + 2 < comment.end && currentSourceFile.text.charCodeAt(comment.pos + 2) === 47 /* slash */ && currentSourceFile.text.substring(comment.pos, comment.end).match(ts.fullTripleSlashReferencePathRegEx)) { - return true; - } - } - emitNewLineBeforeLeadingComments(currentSourceFile, writer, node, pinnedComments); - emitComments(currentSourceFile, writer, pinnedComments, true, newLine, writeComment); - } - if (compilerOptions.sourceMap) { - initializeEmitterWithSourceMaps(); - } - if (root) { - emit(root); - } - else { - ts.forEach(program.getSourceFiles(), function (sourceFile) { - if (!isExternalModuleOrDeclarationFile(sourceFile)) { - emit(sourceFile); - } - }); - } - writeLine(); - writeEmittedFiles(writer.getText(), compilerOptions.emitBOM); - } - function writeDeclarationFile(jsFilePath, sourceFile) { - var emitDeclarationResult = emitDeclarations(program, resolver, diagnostics, jsFilePath, sourceFile); - if (!emitDeclarationResult.reportedDeclarationError) { - var declarationOutput = emitDeclarationResult.referencePathsOutput; - var appliedSyncOutputPos = 0; - ts.forEach(emitDeclarationResult.aliasDeclarationEmitInfo, function (aliasEmitInfo) { - if (aliasEmitInfo.asynchronousOutput) { - declarationOutput += emitDeclarationResult.synchronousDeclarationOutput.substring(appliedSyncOutputPos, aliasEmitInfo.outputPos); - declarationOutput += aliasEmitInfo.asynchronousOutput; - appliedSyncOutputPos = aliasEmitInfo.outputPos; - } - }); - declarationOutput += emitDeclarationResult.synchronousDeclarationOutput.substring(appliedSyncOutputPos); - writeFile(compilerHost, diagnostics, ts.removeFileExtension(jsFilePath) + ".d.ts", declarationOutput, compilerOptions.emitBOM); - } - } - var hasSemanticErrors = resolver.hasSemanticErrors(); - var isEmitBlocked = resolver.isEmitBlocked(targetSourceFile); - function emitFile(jsFilePath, sourceFile) { - if (!isEmitBlocked) { - emitJavaScript(jsFilePath, sourceFile); - if (!hasSemanticErrors && compilerOptions.declaration) { - writeDeclarationFile(jsFilePath, sourceFile); - } - } - } - if (targetSourceFile === undefined) { - ts.forEach(program.getSourceFiles(), function (sourceFile) { - if (shouldEmitToOwnFile(sourceFile, compilerOptions)) { - var jsFilePath = getOwnEmitOutputFilePath(sourceFile, program, ".js"); - emitFile(jsFilePath, sourceFile); - } - }); - if (compilerOptions.out) { - emitFile(compilerOptions.out); - } - } - else { - if (shouldEmitToOwnFile(targetSourceFile, compilerOptions)) { - var jsFilePath = getOwnEmitOutputFilePath(targetSourceFile, program, ".js"); - emitFile(jsFilePath, targetSourceFile); - } - else if (!ts.isDeclarationFile(targetSourceFile) && compilerOptions.out) { - emitFile(compilerOptions.out); - } - } - diagnostics.sort(ts.compareDiagnostics); - diagnostics = ts.deduplicateSortedDiagnostics(diagnostics); - var hasEmitterError = ts.forEach(diagnostics, function (diagnostic) { return diagnostic.category === 1 /* Error */; }); - var emitResultStatus; - if (isEmitBlocked) { - emitResultStatus = 1 /* AllOutputGenerationSkipped */; - } - else if (hasEmitterError) { - emitResultStatus = 4 /* EmitErrorsEncountered */; - } - else if (hasSemanticErrors && compilerOptions.declaration) { - emitResultStatus = 3 /* DeclarationGenerationSkipped */; - } - else if (hasSemanticErrors && !compilerOptions.declaration) { - emitResultStatus = 2 /* JSGeneratedWithSemanticErrors */; - } - else { - emitResultStatus = 0 /* Succeeded */; - } - return { - emitResultStatus: emitResultStatus, - diagnostics: diagnostics, - sourceMaps: sourceMapDataList - }; - } - ts.emitFiles = emitFiles; -})(ts || (ts = {})); -var ts; -(function (ts) { - var nextSymbolId = 1; - var nextNodeId = 1; - var nextMergeId = 1; - 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 createTypeChecker(program, fullTypeCheck) { - var Symbol = ts.objectAllocator.getSymbolConstructor(); - var Type = ts.objectAllocator.getTypeConstructor(); - var Signature = ts.objectAllocator.getSignatureConstructor(); - var typeCount = 0; - var emptyArray = []; - var emptySymbols = {}; - var compilerOptions = program.getCompilerOptions(); - var checker = { - getProgram: function () { return program; }, - getNodeCount: function () { return ts.sum(program.getSourceFiles(), "nodeCount"); }, - getIdentifierCount: function () { return ts.sum(program.getSourceFiles(), "identifierCount"); }, - getSymbolCount: function () { return ts.sum(program.getSourceFiles(), "symbolCount"); }, - getTypeCount: function () { return typeCount; }, - isUndefinedSymbol: function (symbol) { return symbol === undefinedSymbol; }, - isArgumentsSymbol: function (symbol) { return symbol === argumentsSymbol; }, - getDiagnostics: getDiagnostics, - getDeclarationDiagnostics: getDeclarationDiagnostics, - getGlobalDiagnostics: getGlobalDiagnostics, - checkProgram: checkProgram, - invokeEmitter: invokeEmitter, - getParentOfSymbol: getParentOfSymbol, - getNarrowedTypeOfSymbol: getNarrowedTypeOfSymbol, - getDeclaredTypeOfSymbol: getDeclaredTypeOfSymbol, - getPropertiesOfType: getPropertiesOfType, - getPropertyOfType: getPropertyOfType, - getSignaturesOfType: getSignaturesOfType, - getIndexTypeOfType: getIndexTypeOfType, - getReturnTypeOfSignature: getReturnTypeOfSignature, - getSymbolsInScope: getSymbolsInScope, - getSymbolInfo: getSymbolInfo, - getShorthandAssignmentValueSymbol: getShorthandAssignmentValueSymbol, - getTypeOfNode: getTypeOfNode, - typeToString: typeToString, - getSymbolDisplayBuilder: getSymbolDisplayBuilder, - symbolToString: symbolToString, - getAugmentedPropertiesOfType: getAugmentedPropertiesOfType, - getRootSymbols: getRootSymbols, - getContextualType: getContextualType, - getFullyQualifiedName: getFullyQualifiedName, - getResolvedSignature: getResolvedSignature, - getEnumMemberValue: getEnumMemberValue, - isValidPropertyAccess: isValidPropertyAccess, - getSignatureFromDeclaration: getSignatureFromDeclaration, - isImplementationOfOverload: isImplementationOfOverload, - getAliasedSymbol: resolveImport, - hasEarlyErrors: hasEarlyErrors, - isEmitBlocked: isEmitBlocked - }; - var undefinedSymbol = createSymbol(4 /* Property */ | 268435456 /* Transient */, "undefined"); - var argumentsSymbol = createSymbol(4 /* Property */ | 268435456 /* Transient */, "arguments"); - var unknownSymbol = createSymbol(4 /* Property */ | 268435456 /* Transient */, "unknown"); - var resolvingSymbol = createSymbol(268435456 /* Transient */, "__resolving__"); - var anyType = createIntrinsicType(1 /* Any */, "any"); - var stringType = createIntrinsicType(2 /* String */, "string"); - var numberType = createIntrinsicType(4 /* Number */, "number"); - var booleanType = createIntrinsicType(8 /* Boolean */, "boolean"); - var voidType = createIntrinsicType(16 /* Void */, "void"); - var undefinedType = createIntrinsicType(32 /* Undefined */, "undefined"); - var nullType = createIntrinsicType(64 /* Null */, "null"); - var unknownType = createIntrinsicType(1 /* Any */, "unknown"); - var resolvingType = createIntrinsicType(1 /* Any */, "__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 inferenceFailureType = 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 globalObjectType; - var globalFunctionType; - var globalArrayType; - var globalStringType; - var globalNumberType; - var globalBooleanType; - var globalRegExpType; - var globalTemplateStringsArrayType; - var tupleTypes = {}; - var unionTypes = {}; - var stringLiteralTypes = {}; - var emitExtends = false; - var mergedSymbols = []; - var symbolLinks = []; - var nodeLinks = []; - var potentialThisCollisions = []; - var diagnostics = []; - var diagnosticsModified = false; - function addDiagnostic(diagnostic) { - diagnostics.push(diagnostic); - diagnosticsModified = true; - } - function error(location, message, arg0, arg1, arg2) { - var diagnostic = location ? ts.createDiagnosticForNode(location, message, arg0, arg1, arg2) : ts.createCompilerDiagnostic(message, arg0, arg1, arg2); - addDiagnostic(diagnostic); - } - function createSymbol(flags, name) { - return new Symbol(flags, name); - } - function getExcludedSymbolFlags(flags) { - var result = 0; - if (flags & 2 /* BlockScopedVariable */) - result |= 107455 /* BlockScopedVariableExcludes */; - if (flags & 1 /* FunctionScopedVariable */) - result |= 107454 /* FunctionScopedVariableExcludes */; - if (flags & 4 /* Property */) - result |= 107455 /* PropertyExcludes */; - if (flags & 8 /* EnumMember */) - result |= 107455 /* EnumMemberExcludes */; - if (flags & 16 /* Function */) - result |= 106927 /* FunctionExcludes */; - if (flags & 32 /* Class */) - result |= 3258879 /* ClassExcludes */; - if (flags & 64 /* Interface */) - result |= 3152288 /* InterfaceExcludes */; - if (flags & 256 /* RegularEnum */) - result |= 3258623 /* RegularEnumExcludes */; - if (flags & 128 /* ConstEnum */) - result |= 3259263 /* ConstEnumExcludes */; - if (flags & 512 /* ValueModule */) - result |= 106639 /* ValueModuleExcludes */; - if (flags & 8192 /* Method */) - result |= 99263 /* MethodExcludes */; - if (flags & 32768 /* GetAccessor */) - result |= 41919 /* GetAccessorExcludes */; - if (flags & 65536 /* SetAccessor */) - result |= 74687 /* SetAccessorExcludes */; - if (flags & 1048576 /* TypeParameter */) - result |= 2103776 /* TypeParameterExcludes */; - if (flags & 2097152 /* TypeAlias */) - result |= 3152352 /* TypeAliasExcludes */; - if (flags & 33554432 /* Import */) - result |= 33554432 /* ImportExcludes */; - return result; - } - function recordMergedSymbol(target, source) { - if (!source.mergeId) - source.mergeId = nextMergeId++; - mergedSymbols[source.mergeId] = target; - } - function cloneSymbol(symbol) { - var result = createSymbol(symbol.flags | 134217728 /* Merged */, 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 extendSymbol(target, source) { - if (!(target.flags & getExcludedSymbolFlags(source.flags))) { - if (source.flags & 512 /* ValueModule */ && target.flags & 512 /* ValueModule */ && 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 = {}; - extendSymbolTable(target.members, source.members); - } - if (source.exports) { - if (!target.exports) - target.exports = {}; - extendSymbolTable(target.exports, source.exports); - } - recordMergedSymbol(target, source); - } - else { - var message = target.flags & 2 /* BlockScopedVariable */ || source.flags & 2 /* BlockScopedVariable */ ? 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 extendSymbolTable(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 & 134217728 /* Merged */)) { - target[id] = symbol = cloneSymbol(symbol); - } - extendSymbol(symbol, source[id]); - } - } - } - } - function getSymbolLinks(symbol) { - if (symbol.flags & 268435456 /* Transient */) - return symbol; - if (!symbol.id) - symbol.id = nextSymbolId++; - return symbolLinks[symbol.id] || (symbolLinks[symbol.id] = {}); - } - function getNodeLinks(node) { - if (!node.id) - node.id = nextNodeId++; - return nodeLinks[node.id] || (nodeLinks[node.id] = {}); - } - function getSourceFile(node) { - return ts.getAncestor(node, 197 /* SourceFile */); - } - function isGlobalSourceFile(node) { - return node.kind === 197 /* SourceFile */ && !ts.isExternalModule(node); - } - function getSymbol(symbols, name, meaning) { - if (meaning && ts.hasProperty(symbols, name)) { - var symbol = symbols[name]; - ts.Debug.assert((symbol.flags & 67108864 /* Instantiated */) === 0, "Should never get an instantiated symbol here."); - if (symbol.flags & meaning) { - return symbol; - } - if (symbol.flags & 33554432 /* Import */) { - var target = resolveImport(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 = program.getSourceFiles(); - return sourceFiles.indexOf(file1) <= sourceFiles.indexOf(file2); - } - function resolveName(location, name, meaning, nameNotFoundMessage, nameArg) { - var result; - var lastLocation; - var propertyWithInvalidInitializer; - var errorLocation = location; - loop: while (location) { - if (location.locals && !isGlobalSourceFile(location)) { - if (result = getSymbol(location.locals, name, meaning)) { - break loop; - } - } - switch (location.kind) { - case 197 /* SourceFile */: - if (!ts.isExternalModule(location)) - break; - case 192 /* ModuleDeclaration */: - if (result = getSymbol(getSymbolOfNode(location).exports, name, meaning & 35653619 /* ModuleMember */)) { - break loop; - } - break; - case 191 /* EnumDeclaration */: - if (result = getSymbol(getSymbolOfNode(location).exports, name, meaning & 8 /* EnumMember */)) { - break loop; - } - break; - case 124 /* Property */: - if (location.parent.kind === 188 /* ClassDeclaration */ && !(location.flags & 128 /* Static */)) { - var ctor = findConstructorDeclaration(location.parent); - if (ctor && ctor.locals) { - if (getSymbol(ctor.locals, name, meaning & 107455 /* Value */)) { - propertyWithInvalidInitializer = location; - } - } - } - break; - case 188 /* ClassDeclaration */: - case 189 /* InterfaceDeclaration */: - if (result = getSymbol(getSymbolOfNode(location).members, name, meaning & 3152352 /* Type */)) { - if (lastLocation && lastLocation.flags & 128 /* Static */) { - error(errorLocation, ts.Diagnostics.Static_members_cannot_reference_class_type_parameters); - return undefined; - } - break loop; - } - break; - case 125 /* Method */: - case 126 /* Constructor */: - case 127 /* GetAccessor */: - case 128 /* SetAccessor */: - case 186 /* FunctionDeclaration */: - case 153 /* ArrowFunction */: - if (name === "arguments") { - result = argumentsSymbol; - break loop; - } - break; - case 152 /* FunctionExpression */: - if (name === "arguments") { - result = argumentsSymbol; - break loop; - } - var id = location.name; - if (id && name === id.text) { - result = location.symbol; - break loop; - } - break; - case 182 /* CatchBlock */: - var id = location.variable; - if (name === id.text) { - result = location.symbol; - break loop; - } - 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 /* BlockScopedVariable */) { - var declaration = ts.forEach(result.declarations, function (d) { return d.flags & 6144 /* BlockScoped */ ? d : undefined; }); - ts.Debug.assert(declaration !== undefined, "Block-scoped variable declaration is undefined"); - if (!isDefinedBefore(declaration, errorLocation)) { - error(errorLocation, ts.Diagnostics.Block_scoped_variable_0_used_before_its_declaration, ts.declarationNameToString(declaration.name)); - } - } - } - return result; - } - function resolveImport(symbol) { - ts.Debug.assert((symbol.flags & 33554432 /* Import */) !== 0, "Should only get Imports here."); - var links = getSymbolLinks(symbol); - if (!links.target) { - links.target = resolvingSymbol; - var node = getDeclarationOfKind(symbol, 194 /* ImportDeclaration */); - var target = node.externalModuleName ? resolveExternalModuleName(node, node.externalModuleName) : getSymbolOfPartOfRightHandSideOfImport(node.entityName, 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 getSymbolOfPartOfRightHandSideOfImport(entityName, importDeclaration) { - if (!importDeclaration) { - importDeclaration = ts.getAncestor(entityName, 194 /* ImportDeclaration */); - ts.Debug.assert(importDeclaration !== undefined); - } - if (entityName.kind === 63 /* Identifier */ && isRightSideOfQualifiedNameOrPropertyAccess(entityName)) { - entityName = entityName.parent; - } - if (entityName.kind === 63 /* Identifier */ || entityName.parent.kind === 121 /* QualifiedName */) { - return resolveEntityName(importDeclaration, entityName, 1536 /* Namespace */); - } - else { - ts.Debug.assert(entityName.parent.kind === 194 /* ImportDeclaration */); - return resolveEntityName(importDeclaration, entityName, 107455 /* Value */ | 3152352 /* Type */ | 1536 /* Namespace */); - } - } - function getFullyQualifiedName(symbol) { - return symbol.parent ? getFullyQualifiedName(symbol.parent) + "." + symbolToString(symbol) : symbolToString(symbol); - } - function resolveEntityName(location, name, meaning) { - if (name.kind === 63 /* Identifier */) { - var symbol = resolveName(location, name.text, meaning, ts.Diagnostics.Cannot_find_name_0, name); - if (!symbol) { - return; - } - } - else if (name.kind === 121 /* QualifiedName */) { - var namespace = resolveEntityName(location, name.left, 1536 /* Namespace */); - if (!namespace || namespace === unknownSymbol || name.right.kind === 120 /* Missing */) - return; - var symbol = getSymbol(namespace.exports, name.right.text, meaning); - if (!symbol) { - error(location, ts.Diagnostics.Module_0_has_no_exported_member_1, getFullyQualifiedName(namespace), ts.declarationNameToString(name.right)); - return; - } - } - else { - return; - } - ts.Debug.assert((symbol.flags & 67108864 /* Instantiated */) === 0, "Should never get an instantiated symbol here."); - return symbol.flags & meaning ? symbol : resolveImport(symbol); - } - function isExternalModuleNameRelative(moduleName) { - return moduleName.substr(0, 2) === "./" || moduleName.substr(0, 3) === "../" || moduleName.substr(0, 2) === ".\\" || moduleName.substr(0, 3) === "..\\"; - } - function resolveExternalModuleName(location, moduleLiteral) { - var searchPath = ts.getDirectoryPath(getSourceFile(location).filename); - var moduleName = moduleLiteral.text; - if (!moduleName) - return; - var isRelative = isExternalModuleNameRelative(moduleName); - if (!isRelative) { - var symbol = getSymbol(globals, '"' + moduleName + '"', 512 /* ValueModule */); - if (symbol) { - return getResolvedExportSymbol(symbol); - } - } - while (true) { - var filename = ts.normalizePath(ts.combinePaths(searchPath, moduleName)); - var sourceFile = program.getSourceFile(filename + ".ts") || program.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 getResolvedExportSymbol(sourceFile.symbol); - } - error(moduleLiteral, ts.Diagnostics.File_0_is_not_an_external_module, sourceFile.filename); - return; - } - error(moduleLiteral, ts.Diagnostics.Cannot_find_external_module_0, moduleName); - } - function getResolvedExportSymbol(moduleSymbol) { - var symbol = getExportAssignmentSymbol(moduleSymbol); - if (symbol) { - if (symbol.flags & (107455 /* Value */ | 3152352 /* Type */ | 1536 /* Namespace */)) { - return symbol; - } - if (symbol.flags & 33554432 /* Import */) { - return resolveImport(symbol); - } - } - return moduleSymbol; - } - function getExportAssignmentSymbol(symbol) { - checkTypeOfExportAssignmentSymbol(symbol); - var symbolLinks = getSymbolLinks(symbol); - return symbolLinks.exportAssignSymbol === unknownSymbol ? undefined : symbolLinks.exportAssignSymbol; - } - function checkTypeOfExportAssignmentSymbol(containerSymbol) { - var symbolLinks = getSymbolLinks(containerSymbol); - if (!symbolLinks.exportAssignSymbol) { - var exportInformation = collectExportInformationForSourceFileOrModule(containerSymbol); - if (exportInformation.exportAssignments.length) { - if (exportInformation.exportAssignments.length > 1) { - ts.forEach(exportInformation.exportAssignments, function (node) { return error(node, ts.Diagnostics.A_module_cannot_have_more_than_one_export_assignment); }); - } - var node = exportInformation.exportAssignments[0]; - if (exportInformation.hasExportedMember) { - error(node, ts.Diagnostics.An_export_assignment_cannot_be_used_in_a_module_with_other_exported_elements); - } - if (node.exportName.text) { - var meaning = 107455 /* Value */ | 3152352 /* Type */ | 1536 /* Namespace */; - var exportSymbol = resolveName(node, node.exportName.text, meaning, ts.Diagnostics.Cannot_find_name_0, node.exportName); - } - } - symbolLinks.exportAssignSymbol = exportSymbol || unknownSymbol; - } - } - function collectExportInformationForSourceFileOrModule(symbol) { - var seenExportedMember = false; - var result = []; - ts.forEach(symbol.declarations, function (declaration) { - var block = (declaration.kind === 197 /* SourceFile */ ? declaration : declaration.body); - ts.forEach(block.statements, function (node) { - if (node.kind === 195 /* ExportAssignment */) { - result.push(node); - } - else { - seenExportedMember = seenExportedMember || (node.flags & 1 /* Export */) !== 0; - } - }); - }); - return { - hasExportedMember: seenExportedMember, - exportAssignments: result - }; - } - 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 & 4194304 /* ExportValue */) !== 0 ? getMergedSymbol(symbol.exportSymbol) : symbol; - } - function symbolIsValue(symbol) { - if (symbol.flags & 67108864 /* Instantiated */) { - return symbolIsValue(getSymbolLinks(symbol).target); - } - if (symbol.flags & 107455 /* Value */) { - return true; - } - if (symbol.flags & 33554432 /* Import */) { - return (resolveImport(symbol).flags & 107455 /* Value */) !== 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 === 126 /* Constructor */ && 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 /* _ */; - } - 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 /* Anonymous */, symbol), members, callSignatures, constructSignatures, stringIndexType, numberIndexType); - } - function isOptionalProperty(propertySymbol) { - return propertySymbol.valueDeclaration && propertySymbol.valueDeclaration.flags & 4 /* QuestionMark */ && propertySymbol.valueDeclaration.kind !== 123 /* Parameter */; - } - function forEachSymbolTableInScope(enclosingDeclaration, callback) { - var result; - for (var location = enclosingDeclaration; location; location = location.parent) { - if (location.locals && !isGlobalSourceFile(location)) { - if (result = callback(location.locals)) { - return result; - } - } - switch (location.kind) { - case 197 /* SourceFile */: - if (!ts.isExternalModule(location)) { - break; - } - case 192 /* ModuleDeclaration */: - if (result = callback(getSymbolOfNode(location).exports)) { - return result; - } - break; - case 188 /* ClassDeclaration */: - case 189 /* InterfaceDeclaration */: - if (result = callback(getSymbolOfNode(location).members)) { - return result; - } - break; - } - } - return callback(globals); - } - function getQualifiedLeftMeaning(rightMeaning) { - return rightMeaning === 107455 /* Value */ ? 107455 /* Value */ : 1536 /* Namespace */; - } - 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, function (declaration) { return hasExternalModuleSymbol(declaration); }) && canQualifySymbol(symbolFromSymbolTable, meaning); - } - } - if (isAccessible(ts.lookUp(symbols, symbol.name))) { - return [symbol]; - } - return ts.forEachValue(symbols, function (symbolFromSymbolTable) { - if (symbolFromSymbolTable.flags & 33554432 /* Import */) { - if (!useOnlyExternalAliasing || ts.forEach(symbolFromSymbolTable.declarations, function (declaration) { return declaration.kind === 194 /* ImportDeclaration */ && declaration.externalModuleName; })) { - var resolvedImportedSymbol = resolveImport(symbolFromSymbolTable); - if (isAccessible(symbolFromSymbolTable, resolveImport(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 & 33554432 /* Import */) ? resolveImport(symbolFromSymbolTable) : symbolFromSymbolTable; - if (symbolFromSymbolTable.flags & meaning) { - qualify = true; - return true; - } - return false; - }); - return qualify; - } - function isSymbolAccessible(symbol, enclosingDeclaration, meaning) { - if (symbol && enclosingDeclaration && !(symbol.flags & 1048576 /* TypeParameter */)) { - 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 /* NotAccessible */, - errorSymbolName: symbolToString(initialSymbol, enclosingDeclaration, meaning), - errorModuleName: symbol !== initialSymbol ? symbolToString(symbol, enclosingDeclaration, 1536 /* Namespace */) : undefined - }; - } - return hasAccessibleDeclarations; - } - meaningToLook = getQualifiedLeftMeaning(meaning); - symbol = getParentOfSymbol(symbol); - } - var symbolExternalModule = ts.forEach(initialSymbol.declarations, function (declaration) { return getExternalModuleContainer(declaration); }); - if (symbolExternalModule) { - var enclosingExternalModule = getExternalModuleContainer(enclosingDeclaration); - if (symbolExternalModule !== enclosingExternalModule) { - return { - accessibility: 2 /* CannotBeNamed */, - errorSymbolName: symbolToString(initialSymbol, enclosingDeclaration, meaning), - errorModuleName: symbolToString(symbolExternalModule) - }; - } - } - return { - accessibility: 1 /* NotAccessible */, - errorSymbolName: symbolToString(initialSymbol, enclosingDeclaration, meaning) - }; - } - return { accessibility: 0 /* Accessible */ }; - function getExternalModuleContainer(declaration) { - for (; declaration; declaration = declaration.parent) { - if (hasExternalModuleSymbol(declaration)) { - return getSymbolOfNode(declaration); - } - } - } - } - function hasExternalModuleSymbol(declaration) { - return (declaration.kind === 192 /* ModuleDeclaration */ && declaration.name.kind === 7 /* StringLiteral */) || (declaration.kind === 197 /* SourceFile */ && ts.isExternalModule(declaration)); - } - function hasVisibleDeclarations(symbol) { - var aliasesToMakeVisible; - if (ts.forEach(symbol.declarations, function (declaration) { return !getIsDeclarationVisible(declaration); })) { - return undefined; - } - return { accessibility: 0 /* Accessible */, aliasesToMakeVisible: aliasesToMakeVisible }; - function getIsDeclarationVisible(declaration) { - if (!isDeclarationVisible(declaration)) { - if (declaration.kind === 194 /* ImportDeclaration */ && !(declaration.flags & 1 /* Export */) && isDeclarationVisible(declaration.parent)) { - getNodeLinks(declaration).isVisible = true; - if (aliasesToMakeVisible) { - if (!ts.contains(aliasesToMakeVisible, declaration)) { - aliasesToMakeVisible.push(declaration); - } - } - else { - aliasesToMakeVisible = [declaration]; - } - return true; - } - return false; - } - return true; - } - } - function isEntityNameVisible(entityName, enclosingDeclaration) { - var meaning; - if (entityName.parent.kind === 135 /* TypeQuery */) { - meaning = 107455 /* Value */ | 4194304 /* ExportValue */; - } - else if (entityName.kind === 121 /* QualifiedName */ || entityName.parent.kind === 194 /* ImportDeclaration */) { - meaning = 1536 /* Namespace */; - } - else { - meaning = 3152352 /* Type */; - } - var firstIdentifier = getFirstIdentifier(entityName); - var symbol = resolveName(enclosingDeclaration, firstIdentifier.text, meaning, undefined, undefined); - return hasVisibleDeclarations(symbol) || { - accessibility: 1 /* NotAccessible */, - errorSymbolName: ts.getTextOfNode(firstIdentifier), - errorNode: firstIdentifier - }; - } - function releaseStringWriter(writer) { - writer.clear(); - stringWriters.push(writer); - } - function writeKeyword(writer, kind) { - writer.writeKeyword(ts.tokenToString(kind)); - } - function writePunctuation(writer, kind) { - writer.writePunctuation(ts.tokenToString(kind)); - } - function writeOperator(writer, kind) { - writer.writeOperator(ts.tokenToString(kind)); - } - function writeSpace(writer) { - writer.writeSpace(" "); - } - function symbolToString(symbol, enclosingDeclaration, meaning) { - var writer = getSingleLineStringWriter(); - getSymbolDisplayBuilder().buildSymbolDisplay(symbol, writer, enclosingDeclaration, meaning); - var result = writer.string(); - releaseStringWriter(writer); - return result; - } - function typeToString(type, enclosingDeclaration, flags) { - var writer = getSingleLineStringWriter(); - getSymbolDisplayBuilder().buildTypeDisplay(type, writer, enclosingDeclaration, flags); - var result = writer.string(); - releaseStringWriter(writer); - var maxLength = compilerOptions.noErrorTruncation || flags & 4 /* NoTruncation */ ? 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 /* TypeLiteral */) { - var node = type.symbol.declarations[0].parent; - while (node.kind === 140 /* ParenType */) { - node = node.parent; - } - if (node.kind === 190 /* TypeAliasDeclaration */) { - 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) { - var parentSymbol; - function appendParentTypeArgumentsAndSymbolName(symbol) { - if (parentSymbol) { - if (flags & 1 /* WriteTypeParametersOrArguments */) { - if (symbol.flags & 67108864 /* Instantiated */) { - buildDisplayForTypeArgumentsAndDelimiters(getTypeParametersOfClassOrInterface(parentSymbol), symbol.mapper, writer, enclosingDeclaration); - } - else { - buildTypeParameterDisplayFromSymbol(parentSymbol, writer, enclosingDeclaration); - } - } - writePunctuation(writer, 19 /* DotToken */); - } - parentSymbol = symbol; - appendSymbolNameOnly(symbol, writer); - } - writer.trackSymbol(symbol, enclosingDeclaration, meaning); - function walkSymbol(symbol, meaning) { - if (symbol) { - var accessibleSymbolChain = getAccessibleSymbolChain(symbol, enclosingDeclaration, meaning, !!(flags & 2 /* UseOnlyExternalAliasing */)); - 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++) { - appendParentTypeArgumentsAndSymbolName(accessibleSymbolChain[i]); - } - } - else { - if (!parentSymbol && ts.forEach(symbol.declarations, function (declaration) { return hasExternalModuleSymbol(declaration); })) { - return; - } - if (symbol.flags & 2048 /* TypeLiteral */ || symbol.flags & 4096 /* ObjectLiteral */) { - return; - } - appendParentTypeArgumentsAndSymbolName(symbol); - } - } - } - if (enclosingDeclaration && !(symbol.flags & 1048576 /* TypeParameter */)) { - walkSymbol(symbol, meaning); - return; - } - return appendParentTypeArgumentsAndSymbolName(symbol); - } - function buildTypeDisplay(type, writer, enclosingDeclaration, globalFlags, typeStack) { - var globalFlagsToPass = globalFlags & 16 /* WriteOwnNameForAnyLike */; - return writeType(type, globalFlags); - function writeType(type, flags) { - if (type.flags & 127 /* Intrinsic */) { - writer.writeKeyword(!(globalFlags & 16 /* WriteOwnNameForAnyLike */) && (type.flags & 1 /* Any */) ? "any" : type.intrinsicName); - } - else if (type.flags & 4096 /* Reference */) { - writeTypeReference(type, flags); - } - else if (type.flags & (1024 /* Class */ | 2048 /* Interface */ | 128 /* Enum */ | 512 /* TypeParameter */)) { - buildSymbolDisplay(type.symbol, writer, enclosingDeclaration, 3152352 /* Type */); - } - else if (type.flags & 8192 /* Tuple */) { - writeTupleType(type); - } - else if (type.flags & 16384 /* Union */) { - writeUnionType(type, flags); - } - else if (type.flags & 32768 /* Anonymous */) { - writeAnonymousType(type, flags); - } - else if (type.flags & 256 /* StringLiteral */) { - writer.writeStringLiteral(type.text); - } - else { - writePunctuation(writer, 13 /* OpenBraceToken */); - writeSpace(writer); - writePunctuation(writer, 20 /* DotDotDotToken */); - writeSpace(writer); - writePunctuation(writer, 14 /* CloseBraceToken */); - } - } - function writeTypeList(types, union) { - for (var i = 0; i < types.length; i++) { - if (i > 0) { - if (union) { - writeSpace(writer); - } - writePunctuation(writer, union ? 43 /* BarToken */ : 22 /* CommaToken */); - writeSpace(writer); - } - writeType(types[i], union ? 64 /* InElementType */ : 0 /* None */); - } - } - function writeTypeReference(type, flags) { - if (type.target === globalArrayType && !(flags & 1 /* WriteArrayAsGenericType */)) { - writeType(type.typeArguments[0], 64 /* InElementType */); - writePunctuation(writer, 17 /* OpenBracketToken */); - writePunctuation(writer, 18 /* CloseBracketToken */); - } - else { - buildSymbolDisplay(type.target.symbol, writer, enclosingDeclaration, 3152352 /* Type */); - writePunctuation(writer, 23 /* LessThanToken */); - writeTypeList(type.typeArguments, false); - writePunctuation(writer, 24 /* GreaterThanToken */); - } - } - function writeTupleType(type) { - writePunctuation(writer, 17 /* OpenBracketToken */); - writeTypeList(type.elementTypes, false); - writePunctuation(writer, 18 /* CloseBracketToken */); - } - function writeUnionType(type, flags) { - if (flags & 64 /* InElementType */) { - writePunctuation(writer, 15 /* OpenParenToken */); - } - writeTypeList(type.types, true); - if (flags & 64 /* InElementType */) { - writePunctuation(writer, 16 /* CloseParenToken */); - } - } - function writeAnonymousType(type, flags) { - if (type.symbol && type.symbol.flags & (32 /* Class */ | 384 /* Enum */ | 512 /* ValueModule */)) { - writeTypeofSymbol(type); - } - else if (shouldWriteTypeOfFunctionSymbol()) { - writeTypeofSymbol(type); - } - else if (typeStack && ts.contains(typeStack, type)) { - var typeAlias = getTypeAliasForTypeLiteral(type); - if (typeAlias) { - buildSymbolDisplay(typeAlias, writer, enclosingDeclaration, 3152352 /* Type */); - } - else { - writeKeyword(writer, 109 /* AnyKeyword */); - } - } - else { - if (!typeStack) { - typeStack = []; - } - typeStack.push(type); - writeLiteralType(type, flags); - typeStack.pop(); - } - function shouldWriteTypeOfFunctionSymbol() { - if (type.symbol) { - var isStaticMethodSymbol = !!(type.symbol.flags & 8192 /* Method */ && ts.forEach(type.symbol.declarations, function (declaration) { return declaration.flags & 128 /* Static */; })); - var isNonLocalFunctionSymbol = !!(type.symbol.flags & 16 /* Function */) && (type.symbol.parent || ts.forEach(type.symbol.declarations, function (declaration) { return declaration.parent.kind === 197 /* SourceFile */ || declaration.parent.kind === 193 /* ModuleBlock */; })); - if (isStaticMethodSymbol || isNonLocalFunctionSymbol) { - return !!(flags & 2 /* UseTypeOfFunction */) || (typeStack && ts.contains(typeStack, type)); - } - } - } - } - function writeTypeofSymbol(type) { - writeKeyword(writer, 95 /* TypeOfKeyword */); - writeSpace(writer); - buildSymbolDisplay(type.symbol, writer, enclosingDeclaration, 107455 /* Value */); - } - 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, 13 /* OpenBraceToken */); - writePunctuation(writer, 14 /* CloseBraceToken */); - return; - } - if (resolved.callSignatures.length === 1 && !resolved.constructSignatures.length) { - if (flags & 64 /* InElementType */) { - writePunctuation(writer, 15 /* OpenParenToken */); - } - buildSignatureDisplay(resolved.callSignatures[0], writer, enclosingDeclaration, globalFlagsToPass | 8 /* WriteArrowStyleSignature */, typeStack); - if (flags & 64 /* InElementType */) { - writePunctuation(writer, 16 /* CloseParenToken */); - } - return; - } - if (resolved.constructSignatures.length === 1 && !resolved.callSignatures.length) { - if (flags & 64 /* InElementType */) { - writePunctuation(writer, 15 /* OpenParenToken */); - } - writeKeyword(writer, 86 /* NewKeyword */); - writeSpace(writer); - buildSignatureDisplay(resolved.constructSignatures[0], writer, enclosingDeclaration, globalFlagsToPass | 8 /* WriteArrowStyleSignature */, typeStack); - if (flags & 64 /* InElementType */) { - writePunctuation(writer, 16 /* CloseParenToken */); - } - return; - } - } - writePunctuation(writer, 13 /* OpenBraceToken */); - writer.writeLine(); - writer.increaseIndent(); - for (var i = 0; i < resolved.callSignatures.length; i++) { - buildSignatureDisplay(resolved.callSignatures[i], writer, enclosingDeclaration, globalFlagsToPass, typeStack); - writePunctuation(writer, 21 /* SemicolonToken */); - writer.writeLine(); - } - for (var i = 0; i < resolved.constructSignatures.length; i++) { - writeKeyword(writer, 86 /* NewKeyword */); - writeSpace(writer); - buildSignatureDisplay(resolved.constructSignatures[i], writer, enclosingDeclaration, globalFlagsToPass, typeStack); - writePunctuation(writer, 21 /* SemicolonToken */); - writer.writeLine(); - } - if (resolved.stringIndexType) { - writePunctuation(writer, 17 /* OpenBracketToken */); - writer.writeParameter("x"); - writePunctuation(writer, 50 /* ColonToken */); - writeSpace(writer); - writeKeyword(writer, 118 /* StringKeyword */); - writePunctuation(writer, 18 /* CloseBracketToken */); - writePunctuation(writer, 50 /* ColonToken */); - writeSpace(writer); - writeType(resolved.stringIndexType, 0 /* None */); - writePunctuation(writer, 21 /* SemicolonToken */); - writer.writeLine(); - } - if (resolved.numberIndexType) { - writePunctuation(writer, 17 /* OpenBracketToken */); - writer.writeParameter("x"); - writePunctuation(writer, 50 /* ColonToken */); - writeSpace(writer); - writeKeyword(writer, 116 /* NumberKeyword */); - writePunctuation(writer, 18 /* CloseBracketToken */); - writePunctuation(writer, 50 /* ColonToken */); - writeSpace(writer); - writeType(resolved.numberIndexType, 0 /* None */); - writePunctuation(writer, 21 /* SemicolonToken */); - writer.writeLine(); - } - for (var i = 0; i < resolved.properties.length; i++) { - var p = resolved.properties[i]; - var t = getTypeOfSymbol(p); - if (p.flags & (16 /* Function */ | 8192 /* Method */) && !getPropertiesOfObjectType(t).length) { - var signatures = getSignaturesOfType(t, 0 /* Call */); - for (var j = 0; j < signatures.length; j++) { - buildSymbolDisplay(p, writer); - if (isOptionalProperty(p)) { - writePunctuation(writer, 49 /* QuestionToken */); - } - buildSignatureDisplay(signatures[j], writer, enclosingDeclaration, globalFlagsToPass, typeStack); - writePunctuation(writer, 21 /* SemicolonToken */); - writer.writeLine(); - } - } - else { - buildSymbolDisplay(p, writer); - if (isOptionalProperty(p)) { - writePunctuation(writer, 49 /* QuestionToken */); - } - writePunctuation(writer, 50 /* ColonToken */); - writeSpace(writer); - writeType(t, 0 /* None */); - writePunctuation(writer, 21 /* SemicolonToken */); - writer.writeLine(); - } - } - writer.decreaseIndent(); - writePunctuation(writer, 14 /* CloseBraceToken */); - } - } - function buildTypeParameterDisplayFromSymbol(symbol, writer, enclosingDeclaraiton, flags) { - var targetSymbol = getTargetSymbol(symbol); - if (targetSymbol.flags & 32 /* Class */ || targetSymbol.flags & 64 /* Interface */) { - 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, 77 /* ExtendsKeyword */); - writeSpace(writer); - buildTypeDisplay(constraint, writer, enclosingDeclaration, flags, typeStack); - } - } - function buildParameterDisplay(p, writer, enclosingDeclaration, flags, typeStack) { - if (getDeclarationFlagsFromSymbol(p) & 8 /* Rest */) { - writePunctuation(writer, 20 /* DotDotDotToken */); - } - appendSymbolNameOnly(p, writer); - if (p.valueDeclaration.flags & 4 /* QuestionMark */ || p.valueDeclaration.initializer) { - writePunctuation(writer, 49 /* QuestionToken */); - } - writePunctuation(writer, 50 /* ColonToken */); - writeSpace(writer); - buildTypeDisplay(getTypeOfSymbol(p), writer, enclosingDeclaration, flags, typeStack); - } - function buildDisplayForTypeParametersAndDelimiters(typeParameters, writer, enclosingDeclaration, flags, typeStack) { - if (typeParameters && typeParameters.length) { - writePunctuation(writer, 23 /* LessThanToken */); - for (var i = 0; i < typeParameters.length; i++) { - if (i > 0) { - writePunctuation(writer, 22 /* CommaToken */); - writeSpace(writer); - } - buildTypeParameterDisplay(typeParameters[i], writer, enclosingDeclaration, flags, typeStack); - } - writePunctuation(writer, 24 /* GreaterThanToken */); - } - } - function buildDisplayForTypeArgumentsAndDelimiters(typeParameters, mapper, writer, enclosingDeclaration, flags, typeStack) { - if (typeParameters && typeParameters.length) { - writePunctuation(writer, 23 /* LessThanToken */); - for (var i = 0; i < typeParameters.length; i++) { - if (i > 0) { - writePunctuation(writer, 22 /* CommaToken */); - writeSpace(writer); - } - buildTypeDisplay(mapper(typeParameters[i]), writer, enclosingDeclaration, 0 /* None */); - } - writePunctuation(writer, 24 /* GreaterThanToken */); - } - } - function buildDisplayForParametersAndDelimiters(parameters, writer, enclosingDeclaration, flags, typeStack) { - writePunctuation(writer, 15 /* OpenParenToken */); - for (var i = 0; i < parameters.length; i++) { - if (i > 0) { - writePunctuation(writer, 22 /* CommaToken */); - writeSpace(writer); - } - buildParameterDisplay(parameters[i], writer, enclosingDeclaration, flags, typeStack); - } - writePunctuation(writer, 16 /* CloseParenToken */); - } - function buildReturnTypeDisplay(signature, writer, enclosingDeclaration, flags, typeStack) { - if (flags & 8 /* WriteArrowStyleSignature */) { - writeSpace(writer); - writePunctuation(writer, 31 /* EqualsGreaterThanToken */); - } - else { - writePunctuation(writer, 50 /* ColonToken */); - } - writeSpace(writer); - buildTypeDisplay(getReturnTypeOfSignature(signature), writer, enclosingDeclaration, flags, typeStack); - } - function buildSignatureDisplay(signature, writer, enclosingDeclaration, flags, typeStack) { - if (signature.target && (flags & 32 /* WriteTypeArgumentsOfSignature */)) { - 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 === 192 /* ModuleDeclaration */) { - if (node.name.kind === 7 /* StringLiteral */) { - return node; - } - } - else if (node.kind === 197 /* SourceFile */) { - return ts.isExternalModule(node) ? node : undefined; - } - } - ts.Debug.fail("getContainingModule cant reach here"); - } - function isUsedInExportAssignment(node) { - var externalModule = getContainingExternalModule(node); - if (externalModule) { - var externalModuleSymbol = getSymbolOfNode(externalModule); - var exportAssignmentSymbol = getExportAssignmentSymbol(externalModuleSymbol); - var resolvedExportSymbol; - var symbolOfNode = getSymbolOfNode(node); - if (isSymbolUsedInExportAssignment(symbolOfNode)) { - return true; - } - if (symbolOfNode.flags & 33554432 /* Import */) { - return isSymbolUsedInExportAssignment(resolveImport(symbolOfNode)); - } - } - function isSymbolUsedInExportAssignment(symbol) { - if (exportAssignmentSymbol === symbol) { - return true; - } - if (exportAssignmentSymbol && !!(exportAssignmentSymbol.flags & 33554432 /* Import */)) { - resolvedExportSymbol = resolvedExportSymbol || resolveImport(exportAssignmentSymbol); - if (resolvedExportSymbol === symbol) { - return true; - } - return ts.forEach(resolvedExportSymbol.declarations, function (declaration) { - while (declaration) { - if (declaration === node) { - return true; - } - declaration = declaration.parent; - } - }); - } - } - } - function determineIfDeclarationIsVisible() { - switch (node.kind) { - case 185 /* VariableDeclaration */: - case 192 /* ModuleDeclaration */: - case 188 /* ClassDeclaration */: - case 189 /* InterfaceDeclaration */: - case 190 /* TypeAliasDeclaration */: - case 186 /* FunctionDeclaration */: - case 191 /* EnumDeclaration */: - case 194 /* ImportDeclaration */: - var parent = node.kind === 185 /* VariableDeclaration */ ? node.parent.parent : node.parent; - if (!(node.flags & 1 /* Export */) && !(node.kind !== 194 /* ImportDeclaration */ && parent.kind !== 197 /* SourceFile */ && ts.isInAmbientContext(parent))) { - return isGlobalSourceFile(parent) || isUsedInExportAssignment(node); - } - return isDeclarationVisible(parent); - case 124 /* Property */: - case 125 /* Method */: - if (node.flags & (32 /* Private */ | 64 /* Protected */)) { - return false; - } - case 126 /* Constructor */: - case 130 /* ConstructSignature */: - case 129 /* CallSignature */: - case 131 /* IndexSignature */: - case 123 /* Parameter */: - case 193 /* ModuleBlock */: - case 122 /* TypeParameter */: - return isDeclarationVisible(node.parent); - case 197 /* SourceFile */: - 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 getTypeOfPrototypeProperty(prototype) { - var classType = getDeclaredTypeOfSymbol(prototype.parent); - return classType.typeParameters ? createTypeReference(classType, ts.map(classType.typeParameters, function (_) { return anyType; })) : classType; - } - function getTypeOfVariableOrPropertyDeclaration(declaration) { - if (declaration.parent.kind === 170 /* ForInStatement */) { - return anyType; - } - if (declaration.type) { - return getTypeFromTypeNode(declaration.type); - } - if (declaration.kind === 123 /* Parameter */) { - var func = declaration.parent; - if (func.kind === 128 /* SetAccessor */) { - var getter = getDeclarationOfKind(declaration.parent.symbol, 127 /* GetAccessor */); - if (getter) { - return getReturnTypeOfSignature(getSignatureFromDeclaration(getter)); - } - } - var type = getContextuallyTypedParameterType(declaration); - if (type) { - return type; - } - } - if (declaration.initializer) { - var type = checkAndMarkExpression(declaration.initializer); - if (declaration.kind !== 143 /* PropertyAssignment */) { - var unwidenedType = type; - type = getWidenedType(type); - if (type !== unwidenedType) { - checkImplicitAny(type); - } - } - return type; - } - if (declaration.kind === 144 /* ShorthandPropertyAssignment */) { - var type = checkIdentifier(declaration.name); - return type; - } - var type = declaration.flags & 8 /* Rest */ ? createArrayType(anyType) : anyType; - checkImplicitAny(type); - return type; - function checkImplicitAny(type) { - if (!fullTypeCheck || !compilerOptions.noImplicitAny) { - return; - } - if (getInnermostTypeOfNestedArrayTypes(type) !== anyType) { - return; - } - if (isPrivateWithinAmbient(declaration) || (declaration.kind === 123 /* Parameter */ && isPrivateWithinAmbient(declaration.parent))) { - return; - } - switch (declaration.kind) { - case 124 /* Property */: - var diagnostic = ts.Diagnostics.Member_0_implicitly_has_an_1_type; - break; - case 123 /* Parameter */: - var diagnostic = declaration.flags & 8 /* Rest */ ? ts.Diagnostics.Rest_parameter_0_implicitly_has_an_any_type : ts.Diagnostics.Parameter_0_implicitly_has_an_1_type; - break; - default: - var diagnostic = ts.Diagnostics.Variable_0_implicitly_has_an_1_type; - } - error(declaration, diagnostic, ts.declarationNameToString(declaration.name), typeToString(type)); - } - } - function getTypeOfVariableOrParameterOrProperty(symbol) { - var links = getSymbolLinks(symbol); - if (!links.type) { - if (symbol.flags & 536870912 /* Prototype */) { - return links.type = getTypeOfPrototypeProperty(symbol); - } - var declaration = symbol.valueDeclaration; - if (declaration.kind === 182 /* CatchBlock */) { - return links.type = anyType; - } - links.type = resolvingType; - var type = getTypeOfVariableOrPropertyDeclaration(declaration); - 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 === 127 /* GetAccessor */) { - 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 = getDeclarationOfKind(symbol, 127 /* GetAccessor */); - var setter = getDeclarationOfKind(symbol, 128 /* SetAccessor */); - 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 = getDeclarationOfKind(symbol, 127 /* GetAccessor */); - 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 /* Anonymous */, symbol); - } - return links.type; - } - function getTypeOfEnumMember(symbol) { - var links = getSymbolLinks(symbol); - if (!links.type) { - links.type = getDeclaredTypeOfEnum(getParentOfSymbol(symbol)); - } - return links.type; - } - function getTypeOfImport(symbol) { - var links = getSymbolLinks(symbol); - if (!links.type) { - links.type = getTypeOfSymbol(resolveImport(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 & 67108864 /* Instantiated */) { - return getTypeOfInstantiatedSymbol(symbol); - } - if (symbol.flags & (3 /* Variable */ | 4 /* Property */)) { - return getTypeOfVariableOrParameterOrProperty(symbol); - } - if (symbol.flags & (16 /* Function */ | 8192 /* Method */ | 32 /* Class */ | 384 /* Enum */ | 512 /* ValueModule */)) { - return getTypeOfFuncClassEnumModule(symbol); - } - if (symbol.flags & 8 /* EnumMember */) { - return getTypeOfEnumMember(symbol); - } - if (symbol.flags & 98304 /* Accessor */) { - return getTypeOfAccessors(symbol); - } - if (symbol.flags & 33554432 /* Import */) { - return getTypeOfImport(symbol); - } - return unknownType; - } - function getTargetType(type) { - return type.flags & 4096 /* Reference */ ? 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 === 189 /* InterfaceDeclaration */ || node.kind === 188 /* ClassDeclaration */) { - 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 /* Class */, symbol); - var typeParameters = getTypeParametersOfClassOrInterface(symbol); - if (typeParameters) { - type.flags |= 4096 /* Reference */; - type.typeParameters = typeParameters; - type.instantiations = {}; - type.instantiations[getTypeListId(type.typeParameters)] = type; - type.target = type; - type.typeArguments = type.typeParameters; - } - type.baseTypes = []; - var declaration = getDeclarationOfKind(symbol, 188 /* ClassDeclaration */); - if (declaration.baseType) { - var baseType = getTypeFromTypeReferenceNode(declaration.baseType); - if (baseType !== unknownType) { - if (getTargetType(baseType).flags & 1024 /* Class */) { - 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 /* WriteArrayAsGenericType */)); - } - } - else { - error(declaration.baseType, 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 /* String */); - type.declaredNumberIndexType = getIndexTypeOfSymbol(symbol, 1 /* Number */); - } - return links.declaredType; - } - function getDeclaredTypeOfInterface(symbol) { - var links = getSymbolLinks(symbol); - if (!links.declaredType) { - var type = links.declaredType = createObjectType(2048 /* Interface */, symbol); - var typeParameters = getTypeParametersOfClassOrInterface(symbol); - if (typeParameters) { - type.flags |= 4096 /* Reference */; - 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 === 189 /* InterfaceDeclaration */ && declaration.baseTypes) { - ts.forEach(declaration.baseTypes, function (node) { - var baseType = getTypeFromTypeReferenceNode(node); - if (baseType !== unknownType) { - if (getTargetType(baseType).flags & (1024 /* Class */ | 2048 /* Interface */)) { - 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 /* WriteArrayAsGenericType */)); - } - } - 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 /* String */); - type.declaredNumberIndexType = getIndexTypeOfSymbol(symbol, 1 /* Number */); - } - return links.declaredType; - } - function getDeclaredTypeOfTypeAlias(symbol) { - var links = getSymbolLinks(symbol); - if (!links.declaredType) { - links.declaredType = resolvingType; - var declaration = getDeclarationOfKind(symbol, 190 /* TypeAliasDeclaration */); - var type = getTypeFromTypeNode(declaration.type); - if (links.declaredType === resolvingType) { - links.declaredType = type; - } - } - else if (links.declaredType === resolvingType) { - links.declaredType = unknownType; - var declaration = getDeclarationOfKind(symbol, 190 /* TypeAliasDeclaration */); - 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 /* Enum */); - type.symbol = symbol; - links.declaredType = type; - } - return links.declaredType; - } - function getDeclaredTypeOfTypeParameter(symbol) { - var links = getSymbolLinks(symbol); - if (!links.declaredType) { - var type = createType(512 /* TypeParameter */); - type.symbol = symbol; - if (!getDeclarationOfKind(symbol, 122 /* TypeParameter */).constraint) { - type.constraint = noConstraintType; - } - links.declaredType = type; - } - return links.declaredType; - } - function getDeclaredTypeOfImport(symbol) { - var links = getSymbolLinks(symbol); - if (!links.declaredType) { - links.declaredType = getDeclaredTypeOfSymbol(resolveImport(symbol)); - } - return links.declaredType; - } - function getDeclaredTypeOfSymbol(symbol) { - ts.Debug.assert((symbol.flags & 67108864 /* Instantiated */) === 0); - if (symbol.flags & 32 /* Class */) { - return getDeclaredTypeOfClass(symbol); - } - if (symbol.flags & 64 /* Interface */) { - return getDeclaredTypeOfInterface(symbol); - } - if (symbol.flags & 2097152 /* TypeAlias */) { - return getDeclaredTypeOfTypeAlias(symbol); - } - if (symbol.flags & 384 /* Enum */) { - return getDeclaredTypeOfEnum(symbol); - } - if (symbol.flags & 1048576 /* TypeParameter */) { - return getDeclaredTypeOfTypeParameter(symbol); - } - if (symbol.flags & 33554432 /* Import */) { - return getDeclaredTypeOfImport(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++) { - signatures.push(baseSignatures[i]); - } - } - } - 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 /* Call */)); - constructSignatures = ts.concatenate(constructSignatures, getSignaturesOfType(baseType, 1 /* Construct */)); - stringIndexType = stringIndexType || getIndexTypeOfType(baseType, 0 /* String */); - numberIndexType = numberIndexType || getIndexTypeOfType(baseType, 1 /* Number */); - }); - } - 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 /* Call */)); - constructSignatures = ts.concatenate(constructSignatures, getSignaturesOfType(instantiatedBaseType, 1 /* Construct */)); - stringIndexType = stringIndexType || getIndexTypeOfType(instantiatedBaseType, 0 /* String */); - numberIndexType = numberIndexType || getIndexTypeOfType(instantiatedBaseType, 1 /* Number */); - }); - 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 /* Construct */); - return ts.map(baseSignatures, function (baseSignature) { - var signature = baseType.flags & 4096 /* Reference */ ? 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 /* Property */ | 268435456 /* Transient */, "" + 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++) { - if (signatures[i].typeParameters) { - return emptyArray; - } - } - for (var i = 1; i < signatureLists.length; i++) { - if (!signatureListsIdentical(signatures, signatureLists[i])) { - 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 indexType = getIndexTypeOfType(types[i], kind); - if (!indexType) { - return undefined; - } - indexTypes.push(indexType); - } - return getUnionType(indexTypes); - } - function resolveUnionTypeMembers(type) { - var callSignatures = getUnionSignatures(type.types, 0 /* Call */); - var constructSignatures = getUnionSignatures(type.types, 1 /* Construct */); - var stringIndexType = getUnionIndexType(type.types, 0 /* String */); - var numberIndexType = getUnionIndexType(type.types, 1 /* Number */); - setObjectTypeMembers(type, emptySymbols, callSignatures, constructSignatures, stringIndexType, numberIndexType); - } - function resolveAnonymousTypeMembers(type) { - var symbol = type.symbol; - if (symbol.flags & 2048 /* TypeLiteral */) { - var members = symbol.members; - var callSignatures = getSignaturesOfSymbol(members["__call"]); - var constructSignatures = getSignaturesOfSymbol(members["__new"]); - var stringIndexType = getIndexTypeOfSymbol(symbol, 0 /* String */); - var numberIndexType = getIndexTypeOfSymbol(symbol, 1 /* Number */); - } - else { - var members = emptySymbols; - var callSignatures = emptyArray; - var constructSignatures = emptyArray; - if (symbol.flags & 1952 /* HasExports */) { - members = symbol.exports; - } - if (symbol.flags & (16 /* Function */ | 8192 /* Method */)) { - callSignatures = getSignaturesOfSymbol(symbol); - } - if (symbol.flags & 32 /* Class */) { - 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))); - } - } - var stringIndexType = undefined; - var numberIndexType = (symbol.flags & 384 /* Enum */) ? stringType : undefined; - } - setObjectTypeMembers(type, members, callSignatures, constructSignatures, stringIndexType, numberIndexType); - } - function resolveObjectOrUnionTypeMembers(type) { - if (!type.members) { - if (type.flags & (1024 /* Class */ | 2048 /* Interface */)) { - resolveClassOrInterfaceMembers(type); - } - else if (type.flags & 32768 /* Anonymous */) { - resolveAnonymousTypeMembers(type); - } - else if (type.flags & 8192 /* Tuple */) { - resolveTupleTypeMembers(type); - } - else if (type.flags & 16384 /* Union */) { - resolveUnionTypeMembers(type); - } - else { - resolveTypeReferenceMembers(type); - } - } - return type; - } - function getPropertiesOfObjectType(type) { - if (type.flags & 48128 /* ObjectType */) { - return resolveObjectOrUnionTypeMembers(type).properties; - } - return emptyArray; - } - function getPropertyOfObjectType(type, name) { - if (type.flags & 48128 /* ObjectType */) { - 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 /* Union */) { - return getPropertiesOfUnionType(type); - } - return getPropertiesOfObjectType(getApparentType(type)); - } - function getApparentType(type) { - if (type.flags & 512 /* TypeParameter */) { - do { - type = getConstraintOfTypeParameter(type); - } while (type && type.flags & 512 /* TypeParameter */); - if (!type) { - type = emptyObjectType; - } - } - if (type.flags & 258 /* StringLike */) { - type = globalStringType; - } - else if (type.flags & 132 /* NumberLike */) { - type = globalNumberType; - } - else if (type.flags & 8 /* Boolean */) { - type = globalBooleanType; - } - return type; - } - function createUnionProperty(unionType, name) { - var types = unionType.types; - var props; - for (var i = 0; i < types.length; i++) { - var type = getApparentType(types[i]); - 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 i = 0; i < props.length; i++) { - var prop = props[i]; - if (prop.declarations) { - declarations.push.apply(declarations, prop.declarations); - } - propTypes.push(getTypeOfSymbol(prop)); - } - var result = createSymbol(4 /* Property */ | 268435456 /* Transient */ | 1073741824 /* UnionProperty */, 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 /* Union */) { - return getPropertyOfUnionType(type, name); - } - if (!(type.flags & 48128 /* ObjectType */)) { - type = getApparentType(type); - if (!(type.flags & 48128 /* ObjectType */)) { - 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 /* ObjectType */ | 16384 /* Union */)) { - var resolved = resolveObjectOrUnionTypeMembers(type); - return kind === 0 /* Call */ ? resolved.callSignatures : resolved.constructSignatures; - } - return emptyArray; - } - function getSignaturesOfType(type, kind) { - return getSignaturesOfObjectOrUnionType(getApparentType(type), kind); - } - function getIndexTypeOfObjectOrUnionType(type, kind) { - if (type.flags & (48128 /* ObjectType */ | 16384 /* Union */)) { - var resolved = resolveObjectOrUnionTypeMembers(type); - return kind === 0 /* String */ ? 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 getSignatureFromDeclaration(declaration) { - var links = getNodeLinks(declaration); - if (!links.resolvedSignature) { - var classType = declaration.kind === 126 /* Constructor */ ? 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 === 7 /* StringLiteral */) { - hasStringLiterals = true; - } - if (minArgumentCount < 0) { - if (param.initializer || param.flags & (4 /* QuestionMark */ | 8 /* Rest */)) { - 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 === 127 /* GetAccessor */) { - var setter = getDeclarationOfKind(declaration.symbol, 128 /* SetAccessor */); - returnType = getAnnotatedAccessorType(setter); - } - if (!returnType && !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 133 /* FunctionType */: - case 134 /* ConstructorType */: - case 186 /* FunctionDeclaration */: - case 125 /* Method */: - case 126 /* Constructor */: - case 129 /* CallSignature */: - case 130 /* ConstructSignature */: - case 131 /* IndexSignature */: - case 127 /* GetAccessor */: - case 128 /* SetAccessor */: - case 152 /* FunctionExpression */: - case 153 /* ArrowFunction */: - 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; - if (signature.target) { - var type = instantiateType(getReturnTypeOfSignature(signature.target), signature.mapper); - } - else if (signature.unionSignatures) { - var type = getUnionType(ts.map(signature.unionSignatures, getReturnTypeOfSignature)); - } - else { - var 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 /* Reference */ && 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 === 126 /* Constructor */ || signature.declaration.kind === 130 /* ConstructSignature */; - var type = createObjectType(32768 /* Anonymous */ | 65536 /* FromSignature */); - 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 /* Number */ ? 116 /* NumberKeyword */ : 118 /* StringKeyword */; - var indexSymbol = getIndexSymbol(symbol); - if (indexSymbol) { - var len = indexSymbol.declarations.length; - for (var i = 0; i < len; i++) { - var node = indexSymbol.declarations[i]; - 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(getDeclarationOfKind(type.symbol, 122 /* TypeParameter */).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 createTypeReference(target, typeArguments) { - var id = getTypeListId(typeArguments); - var type = target.instantiations[id]; - if (!type) { - type = target.instantiations[id] = createObjectType(4096 /* Reference */, 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 === 122 /* TypeParameter */; - return links.isIllegalTypeReferenceInConstraint; - } - function checkTypeParameterHasIllegalReferencesInConstraint(typeParameter) { - var typeParameterSymbol; - function check(n) { - if (n.kind === 132 /* TypeReference */ && n.typeName.kind === 63 /* Identifier */) { - var links = getNodeLinks(n); - if (links.isIllegalTypeReferenceInConstraint === undefined) { - var symbol = resolveName(typeParameter, n.typeName.text, 3152352 /* Type */, undefined, undefined); - if (symbol && (symbol.flags & 1048576 /* TypeParameter */)) { - 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, node.typeName, 3152352 /* Type */); - if (symbol) { - var type; - if ((symbol.flags & 1048576 /* TypeParameter */) && isTypeParameterReferenceIllegalInConstraint(node, symbol)) { - type = unknownType; - } - else { - type = getDeclaredTypeOfSymbol(symbol); - if (type.flags & (1024 /* Class */ | 2048 /* Interface */) && type.flags & 4096 /* Reference */) { - 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 /* WriteArrayAsGenericType */), 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(checkExpression(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 188 /* ClassDeclaration */: - case 189 /* InterfaceDeclaration */: - case 191 /* EnumDeclaration */: - return declaration; - } - } - } - if (!symbol) { - return emptyObjectType; - } - var type = getDeclaredTypeOfSymbol(symbol); - if (!(type.flags & 48128 /* ObjectType */)) { - 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 getGlobalSymbol(name) { - return resolveName(undefined, name, 3152352 /* Type */, ts.Diagnostics.Cannot_find_global_type_0, name); - } - function getGlobalType(name) { - return getTypeOfGlobalSymbol(getGlobalSymbol(name), 0); - } - 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 /* Tuple */); - 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 /* Union */) { - 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, len = types.length; i < len; i++) { - addTypeToSortedSet(sortedTypes, types[i]); - } - } - function isSubtypeOfAny(candidate, types) { - for (var i = 0, len = types.length; i < len; i++) { - if (candidate !== types[i] && isTypeSubtypeOf(candidate, types[i])) { - 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++) { - if (types[i].flags & 1 /* Any */) { - 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 /* Union */); - 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 /* Anonymous */, 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 /* StringLiteral */); - 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 109 /* AnyKeyword */: - return anyType; - case 118 /* StringKeyword */: - return stringType; - case 116 /* NumberKeyword */: - return numberType; - case 110 /* BooleanKeyword */: - return booleanType; - case 97 /* VoidKeyword */: - return voidType; - case 7 /* StringLiteral */: - return getTypeFromStringLiteral(node); - case 132 /* TypeReference */: - return getTypeFromTypeReferenceNode(node); - case 135 /* TypeQuery */: - return getTypeFromTypeQueryNode(node); - case 137 /* ArrayType */: - return getTypeFromArrayTypeNode(node); - case 138 /* TupleType */: - return getTypeFromTupleTypeNode(node); - case 139 /* UnionType */: - return getTypeFromUnionTypeNode(node); - case 140 /* ParenType */: - return getTypeFromTypeNode(node.type); - case 133 /* FunctionType */: - case 134 /* ConstructorType */: - case 136 /* TypeLiteral */: - return getTypeFromTypeLiteralOrFunctionOrConstructorTypeNode(node); - case 63 /* Identifier */: - case 121 /* QualifiedName */: - 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++) { - result.push(instantiator(items[i], 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++) { - if (t === sources[i]) - return anyType; - } - return t; - }; - } - function createInferenceMapper(context) { - return function (t) { - for (var i = 0; i < context.typeParameters.length; i++) { - if (t === context.typeParameters[i]) { - 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 /* TypeParameter */); - 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) { - if (signature.typeParameters && !eraseTypeParameters) { - var 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 & 67108864 /* Instantiated */) { - var links = getSymbolLinks(symbol); - symbol = links.target; - mapper = combineTypeMappers(links.mapper, mapper); - } - var result = createSymbol(67108864 /* Instantiated */ | 268435456 /* Transient */ | 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 /* Anonymous */, type.symbol); - result.properties = instantiateList(getPropertiesOfObjectType(type), mapper, instantiateSymbol); - result.members = createSymbolTable(result.properties); - result.callSignatures = instantiateList(getSignaturesOfType(type, 0 /* Call */), mapper, instantiateSignature); - result.constructSignatures = instantiateList(getSignaturesOfType(type, 1 /* Construct */), mapper, instantiateSignature); - var stringIndexType = getIndexTypeOfType(type, 0 /* String */); - var numberIndexType = getIndexTypeOfType(type, 1 /* Number */); - 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 /* TypeParameter */) { - return mapper(type); - } - if (type.flags & 32768 /* Anonymous */) { - return type.symbol && type.symbol.flags & (16 /* Function */ | 8192 /* Method */ | 2048 /* TypeLiteral */ | 4096 /* ObjectLiteral */) ? instantiateAnonymousType(type, mapper) : type; - } - if (type.flags & 4096 /* Reference */) { - return createTypeReference(type.target, instantiateList(type.typeArguments, mapper, instantiateType)); - } - if (type.flags & 8192 /* Tuple */) { - return createTupleType(instantiateList(type.elementTypes, mapper, instantiateType)); - } - if (type.flags & 16384 /* Union */) { - return getUnionType(instantiateList(type.types, mapper, instantiateType), true); - } - } - return type; - } - function isContextSensitiveExpression(node) { - switch (node.kind) { - case 152 /* FunctionExpression */: - case 153 /* ArrowFunction */: - return !node.typeParameters && !ts.forEach(node.parameters, function (p) { return p.type; }); - case 142 /* ObjectLiteral */: - return ts.forEach(node.properties, function (p) { return p.kind === 143 /* PropertyAssignment */ && isContextSensitiveExpression(p.initializer); }); - case 141 /* ArrayLiteral */: - return ts.forEach(node.elements, function (e) { return isContextSensitiveExpression(e); }); - case 157 /* ConditionalExpression */: - return isContextSensitiveExpression(node.whenTrue) || isContextSensitiveExpression(node.whenFalse); - case 156 /* BinaryExpression */: - return node.operator === 48 /* BarBarToken */ && (isContextSensitiveExpression(node.left) || isContextSensitiveExpression(node.right)); - } - return false; - } - function getTypeWithoutConstructors(type) { - if (type.flags & 48128 /* ObjectType */) { - var resolved = resolveObjectOrUnionTypeMembers(type); - if (resolved.constructSignatures.length) { - var result = createObjectType(32768 /* Anonymous */, 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 /* True */ : 0 /* False */; - } - 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; - 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 (containingMessageChain) { - errorInfo = ts.concatenateDiagnosticMessageChains(containingMessageChain, errorInfo); - } - addDiagnostic(ts.createDiagnosticForNodeFromMessageChain(errorNode, errorInfo, program.getCompilerHost().getNewLine())); - } - return result !== 0 /* False */; - function reportError(message, arg0, arg1, arg2) { - errorInfo = ts.chainDiagnosticMessages(errorInfo, message, arg0, arg1, arg2); - } - function isRelatedTo(source, target, reportErrors, headMessage) { - var result; - if (relation === identityRelation) { - if (source === target) - return -1 /* True */; - } - else { - if (source === target) - return -1 /* True */; - if (target.flags & 1 /* Any */) - return -1 /* True */; - if (source === undefinedType) - return -1 /* True */; - if (source === nullType && target !== undefinedType) - return -1 /* True */; - if (source.flags & 128 /* Enum */ && target === numberType) - return -1 /* True */; - if (source.flags & 256 /* StringLiteral */ && target === stringType) - return -1 /* True */; - if (relation === assignableRelation) { - if (source.flags & 1 /* Any */) - return -1 /* True */; - if (source === numberType && target.flags & 128 /* Enum */) - return -1 /* True */; - } - } - if (source.flags & 16384 /* Union */) { - if (result = unionTypeRelatedToType(source, target, reportErrors)) { - return result; - } - } - else if (target.flags & 16384 /* Union */) { - if (result = typeRelatedToUnionType(source, target, reportErrors)) { - return result; - } - } - else if (source.flags & 512 /* TypeParameter */ && target.flags & 512 /* TypeParameter */) { - if (result = typeParameterRelatedTo(source, target, reportErrors)) { - return result; - } - } - else { - var saveErrorInfo = errorInfo; - if (source.flags & 4096 /* Reference */ && target.flags & 4096 /* Reference */ && 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 /* ObjectType */ && target.flags & 48128 /* ObjectType */ && (result = objectTypeRelatedTo(sourceOrApparentType, target, reportStructuralErrors))) { - errorInfo = saveErrorInfo; - return result; - } - } - if (reportErrors) { - headMessage = headMessage || ts.Diagnostics.Type_0_is_not_assignable_to_type_1; - reportError(headMessage, typeToString(source), typeToString(target)); - } - return 0 /* False */; - } - 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 /* False */; - } - function unionTypeRelatedToType(source, target, reportErrors) { - var result = -1 /* True */; - var sourceTypes = source.types; - for (var i = 0, len = sourceTypes.length; i < len; i++) { - var related = isRelatedTo(sourceTypes[i], target, reportErrors); - if (!related) { - return 0 /* False */; - } - result &= related; - } - return result; - } - function typesRelatedTo(sources, targets, reportErrors) { - var result = -1 /* True */; - for (var i = 0, len = sources.length; i < len; i++) { - var related = isRelatedTo(sources[i], targets[i], reportErrors); - if (!related) { - return 0 /* False */; - } - result &= related; - } - return result; - } - function typeParameterRelatedTo(source, target, reportErrors) { - if (relation === identityRelation) { - if (source.symbol.name !== target.symbol.name) { - return 0 /* False */; - } - if (source.constraint === target.constraint) { - return -1 /* True */; - } - if (source.constraint === noConstraintType || target.constraint === noConstraintType) { - return 0 /* False */; - } - return isRelatedTo(source.constraint, target.constraint, reportErrors); - } - else { - while (true) { - var constraint = getConstraintOfTypeParameter(source); - if (constraint === target) - return -1 /* True */; - if (!(constraint && constraint.flags & 512 /* TypeParameter */)) - break; - source = constraint; - } - return 0 /* False */; - } - } - function objectTypeRelatedTo(source, target, reportErrors) { - if (overflow) { - return 0 /* False */; - } - var id = source.id + "," + target.id; - var related = relation[id]; - if (related !== undefined) { - return related ? -1 /* True */ : 0 /* False */; - } - if (depth > 0) { - for (var i = 0; i < depth; i++) { - if (maybeStack[i][id]) { - return 1 /* Maybe */; - } - } - if (depth === 100) { - overflow = true; - return 0 /* False */; - } - } - else { - sourceStack = []; - targetStack = []; - maybeStack = []; - expandingFlags = 0; - } - sourceStack[depth] = source; - targetStack[depth] = target; - maybeStack[depth] = {}; - maybeStack[depth][id] = true; - depth++; - var saveExpandingFlags = expandingFlags; - if (!(expandingFlags & 1) && isDeeplyNestedGeneric(source, sourceStack)) - expandingFlags |= 1; - if (!(expandingFlags & 2) && isDeeplyNestedGeneric(target, targetStack)) - expandingFlags |= 2; - if (expandingFlags === 3) { - var result = 1 /* Maybe */; - } - else { - var result = propertiesRelatedTo(source, target, reportErrors); - if (result) { - result &= signaturesRelatedTo(source, target, 0 /* Call */, reportErrors); - if (result) { - result &= signaturesRelatedTo(source, target, 1 /* Construct */, 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 /* True */ || depth === 0 ? relation : maybeStack[depth - 1]; - for (var p in maybeCache) { - destinationCache[p] = maybeCache[p]; - } - } - else { - relation[id] = false; - } - return result; - } - function isDeeplyNestedGeneric(type, stack) { - if (type.flags & 4096 /* Reference */ && depth >= 10) { - var target = type.target; - var count = 0; - for (var i = 0; i < depth; i++) { - var t = stack[i]; - if (t.flags & 4096 /* Reference */ && t.target === target) { - count++; - if (count >= 10) - return true; - } - } - } - return false; - } - function propertiesRelatedTo(source, target, reportErrors) { - if (relation === identityRelation) { - return propertiesIdenticalTo(source, target); - } - var result = -1 /* True */; - var properties = getPropertiesOfObjectType(target); - for (var i = 0; i < properties.length; i++) { - var targetProp = properties[i]; - var sourceProp = getPropertyOfType(source, targetProp.name); - if (sourceProp !== targetProp) { - if (!sourceProp) { - if (relation === subtypeRelation || !isOptionalProperty(targetProp)) { - if (reportErrors) { - reportError(ts.Diagnostics.Property_0_is_missing_in_type_1, symbolToString(targetProp), typeToString(source)); - } - return 0 /* False */; - } - } - else if (!(targetProp.flags & 536870912 /* Prototype */)) { - var sourceFlags = getDeclarationFlagsFromSymbol(sourceProp); - var targetFlags = getDeclarationFlagsFromSymbol(targetProp); - if (sourceFlags & 32 /* Private */ || targetFlags & 32 /* Private */) { - if (sourceProp.valueDeclaration !== targetProp.valueDeclaration) { - if (reportErrors) { - if (sourceFlags & 32 /* Private */ && targetFlags & 32 /* Private */) { - 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 /* Private */ ? source : target), typeToString(sourceFlags & 32 /* Private */ ? target : source)); - } - } - return 0 /* False */; - } - } - else if (targetFlags & 64 /* Protected */) { - var sourceDeclaredInClass = sourceProp.parent && sourceProp.parent.flags & 32 /* Class */; - 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 /* False */; - } - } - else if (sourceFlags & 64 /* Protected */) { - 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 /* False */; - } - 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 /* False */; - } - result &= related; - if (isOptionalProperty(sourceProp) && !isOptionalProperty(targetProp)) { - 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 /* False */; - } - } - } - } - return result; - } - function propertiesIdenticalTo(source, target) { - var sourceProperties = getPropertiesOfObjectType(source); - var targetProperties = getPropertiesOfObjectType(target); - if (sourceProperties.length !== targetProperties.length) { - return 0 /* False */; - } - var result = -1 /* True */; - for (var i = 0, len = sourceProperties.length; i < len; ++i) { - var sourceProp = sourceProperties[i]; - var targetProp = getPropertyOfObjectType(target, sourceProp.name); - if (!targetProp) { - return 0 /* False */; - } - var related = compareProperties(sourceProp, targetProp, isRelatedTo); - if (!related) { - return 0 /* False */; - } - 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 /* True */; - } - var sourceSignatures = getSignaturesOfType(source, kind); - var targetSignatures = getSignaturesOfType(target, kind); - var result = -1 /* True */; - var saveErrorInfo = errorInfo; - outer: for (var i = 0; i < targetSignatures.length; i++) { - var t = targetSignatures[i]; - if (!t.hasStringLiterals || target.flags & 65536 /* FromSignature */) { - var localErrors = reportErrors; - for (var j = 0; j < sourceSignatures.length; j++) { - var s = sourceSignatures[j]; - if (!s.hasStringLiterals || source.flags & 65536 /* FromSignature */) { - var related = signatureRelatedTo(s, t, localErrors); - if (related) { - result &= related; - errorInfo = saveErrorInfo; - continue outer; - } - localErrors = false; - } - } - return 0 /* False */; - } - } - return result; - } - function signatureRelatedTo(source, target, reportErrors) { - if (source === target) { - return -1 /* True */; - } - if (!target.hasRestParameter && source.minArgumentCount > target.parameters.length) { - return 0 /* False */; - } - 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 /* True */; - for (var i = 0; i < checkCount; i++) { - var s = i < sourceMax ? getTypeOfSymbol(source.parameters[i]) : getRestTypeOfSignature(source); - var t = i < targetMax ? getTypeOfSymbol(target.parameters[i]) : getRestTypeOfSignature(target); - var saveErrorInfo = errorInfo; - var related = isRelatedTo(s, t, reportErrors); - if (!related) { - related = isRelatedTo(t, s, 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 /* False */; - } - 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 /* False */; - } - var result = -1 /* True */; - for (var i = 0, len = sourceSignatures.length; i < len; ++i) { - var related = compareSignatures(sourceSignatures[i], targetSignatures[i], true, isRelatedTo); - if (!related) { - return 0 /* False */; - } - result &= related; - } - return result; - } - function stringIndexTypesRelatedTo(source, target, reportErrors) { - if (relation === identityRelation) { - return indexTypesIdenticalTo(0 /* String */, source, target); - } - var targetType = getIndexTypeOfType(target, 0 /* String */); - if (targetType) { - var sourceType = getIndexTypeOfType(source, 0 /* String */); - if (!sourceType) { - if (reportErrors) { - reportError(ts.Diagnostics.Index_signature_is_missing_in_type_0, typeToString(source)); - } - return 0 /* False */; - } - var related = isRelatedTo(sourceType, targetType, reportErrors); - if (!related) { - if (reportErrors) { - reportError(ts.Diagnostics.Index_signatures_are_incompatible); - } - return 0 /* False */; - } - return related; - } - return -1 /* True */; - } - function numberIndexTypesRelatedTo(source, target, reportErrors) { - if (relation === identityRelation) { - return indexTypesIdenticalTo(1 /* Number */, source, target); - } - var targetType = getIndexTypeOfType(target, 1 /* Number */); - if (targetType) { - var sourceStringType = getIndexTypeOfType(source, 0 /* String */); - var sourceNumberType = getIndexTypeOfType(source, 1 /* Number */); - if (!(sourceStringType || sourceNumberType)) { - if (reportErrors) { - reportError(ts.Diagnostics.Index_signature_is_missing_in_type_0, typeToString(source)); - } - return 0 /* False */; - } - if (sourceStringType && sourceNumberType) { - var related = isRelatedTo(sourceStringType, targetType, false) || isRelatedTo(sourceNumberType, targetType, reportErrors); - } - else { - var related = isRelatedTo(sourceStringType || sourceNumberType, targetType, reportErrors); - } - if (!related) { - if (reportErrors) { - reportError(ts.Diagnostics.Index_signatures_are_incompatible); - } - return 0 /* False */; - } - return related; - } - return -1 /* True */; - } - function indexTypesIdenticalTo(indexKind, source, target) { - var targetType = getIndexTypeOfType(target, indexKind); - var sourceType = getIndexTypeOfType(source, indexKind); - if (!sourceType && !targetType) { - return -1 /* True */; - } - if (sourceType && targetType) { - return isRelatedTo(sourceType, targetType); - } - return 0 /* False */; - } - } - function isPropertyIdenticalTo(sourceProp, targetProp) { - return compareProperties(sourceProp, targetProp, compareTypes) !== 0 /* False */; - } - function compareProperties(sourceProp, targetProp, compareTypes) { - if (sourceProp === targetProp) { - return -1 /* True */; - } - var sourcePropAccessibility = getDeclarationFlagsFromSymbol(sourceProp) & (32 /* Private */ | 64 /* Protected */); - var targetPropAccessibility = getDeclarationFlagsFromSymbol(targetProp) & (32 /* Private */ | 64 /* Protected */); - if (sourcePropAccessibility !== targetPropAccessibility) { - return 0 /* False */; - } - if (sourcePropAccessibility) { - if (getTargetSymbol(sourceProp) !== getTargetSymbol(targetProp)) { - return 0 /* False */; - } - } - else { - if (isOptionalProperty(sourceProp) !== isOptionalProperty(targetProp)) { - return 0 /* False */; - } - } - return compareTypes(getTypeOfSymbol(sourceProp), getTypeOfSymbol(targetProp)); - } - function compareSignatures(source, target, compareReturnTypes, compareTypes) { - if (source === target) { - return -1 /* True */; - } - if (source.parameters.length !== target.parameters.length || source.minArgumentCount !== target.minArgumentCount || source.hasRestParameter !== target.hasRestParameter) { - return 0 /* False */; - } - var result = -1 /* True */; - if (source.typeParameters && target.typeParameters) { - if (source.typeParameters.length !== target.typeParameters.length) { - return 0 /* False */; - } - for (var i = 0, len = source.typeParameters.length; i < len; ++i) { - var related = compareTypes(source.typeParameters[i], target.typeParameters[i]); - if (!related) { - return 0 /* False */; - } - result &= related; - } - } - else if (source.typeParameters || source.typeParameters) { - return 0 /* False */; - } - 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 /* False */; - } - result &= related; - } - if (compareReturnTypes) { - result &= compareTypes(getReturnTypeOfSignature(source), getReturnTypeOfSignature(target)); - } - return result; - } - function isSupertypeOfEach(candidate, types) { - for (var i = 0, len = types.length; i < len; i++) { - if (candidate !== types[i] && !isTypeSubtypeOf(types[i], 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]; - } - } - 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 isTypeOfObjectLiteral(type) { - return (type.flags & 32768 /* Anonymous */) && type.symbol && (type.symbol.flags & 4096 /* ObjectLiteral */) ? true : false; - } - function isArrayType(type) { - return type.flags & 4096 /* Reference */ && type.target === globalArrayType; - } - function getInnermostTypeOfNestedArrayTypes(type) { - while (isArrayType(type)) { - type = type.typeArguments[0]; - } - return type; - } - function getWidenedType(type, suppressNoImplicitAnyErrors) { - if (type.flags & (32 /* Undefined */ | 64 /* Null */)) { - return anyType; - } - if (type.flags & 16384 /* Union */) { - return getWidenedTypeOfUnion(type); - } - if (isTypeOfObjectLiteral(type)) { - return getWidenedTypeOfObjectLiteral(type); - } - if (isArrayType(type)) { - return getWidenedTypeOfArrayLiteral(type); - } - return type; - function getWidenedTypeOfUnion(type) { - return getUnionType(ts.map(type.types, function (t) { return getWidenedType(t, suppressNoImplicitAnyErrors); })); - } - function getWidenedTypeOfObjectLiteral(type) { - var properties = getPropertiesOfObjectType(type); - if (properties.length) { - var widenedTypes = []; - var propTypeWasWidened = false; - ts.forEach(properties, function (p) { - var propType = getTypeOfSymbol(p); - var widenedType = getWidenedType(propType); - if (propType !== widenedType) { - propTypeWasWidened = true; - if (!suppressNoImplicitAnyErrors && compilerOptions.noImplicitAny && getInnermostTypeOfNestedArrayTypes(widenedType) === anyType) { - error(p.valueDeclaration, ts.Diagnostics.Object_literal_s_property_0_implicitly_has_an_1_type, p.name, typeToString(widenedType)); - } - } - widenedTypes.push(widenedType); - }); - if (propTypeWasWidened) { - var members = {}; - var index = 0; - ts.forEach(properties, function (p) { - var symbol = createSymbol(4 /* Property */ | 268435456 /* Transient */ | p.flags, p.name); - symbol.declarations = p.declarations; - symbol.parent = p.parent; - symbol.type = widenedTypes[index++]; - symbol.target = p; - if (p.valueDeclaration) - symbol.valueDeclaration = p.valueDeclaration; - members[symbol.name] = symbol; - }); - var stringIndexType = getIndexTypeOfType(type, 0 /* String */); - var numberIndexType = getIndexTypeOfType(type, 1 /* Number */); - if (stringIndexType) - stringIndexType = getWidenedType(stringIndexType); - if (numberIndexType) - numberIndexType = getWidenedType(numberIndexType); - type = createAnonymousType(type.symbol, members, emptyArray, emptyArray, stringIndexType, numberIndexType); - } - } - return type; - } - function getWidenedTypeOfArrayLiteral(type) { - var elementType = type.typeArguments[0]; - var widenedType = getWidenedType(elementType, suppressNoImplicitAnyErrors); - type = elementType !== widenedType ? createArrayType(widenedType) : type; - return 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++) { - inferences.push({ primary: undefined, secondary: undefined }); - } - return { - typeParameters: typeParameters, - inferUnionTypes: inferUnionTypes, - inferenceCount: 0, - 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 = type.target; - var count = 0; - for (var i = 0; i < depth; i++) { - var t = stack[i]; - if (t.flags & 4096 /* Reference */ && t.target === target) - count++; - } - return count < 5; - } - return true; - } - function inferFromTypes(source, target) { - if (target.flags & 512 /* TypeParameter */) { - var typeParameters = context.typeParameters; - for (var i = 0; i < typeParameters.length; i++) { - if (target === typeParameters[i]) { - var inferences = context.inferences[i]; - var candidates = inferiority ? inferences.secondary || (inferences.secondary = []) : inferences.primary || (inferences.primary = []); - if (!ts.contains(candidates, source)) - candidates.push(source); - break; - } - } - } - else if (source.flags & 4096 /* Reference */ && target.flags & 4096 /* Reference */ && 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 /* Union */) { - 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 /* TypeParameter */ && 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 /* Union */) { - var sourceTypes = source.types; - for (var i = 0; i < sourceTypes.length; i++) { - inferFromTypes(sourceTypes[i], target); - } - } - else if (source.flags & 48128 /* ObjectType */ && (target.flags & (4096 /* Reference */ | 8192 /* Tuple */) || (target.flags & 32768 /* Anonymous */) && target.symbol && target.symbol.flags & (8192 /* Method */ | 2048 /* TypeLiteral */))) { - 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 /* Call */); - inferFromSignatures(source, target, 1 /* Construct */); - inferFromIndexTypes(source, target, 0 /* String */, 0 /* String */); - inferFromIndexTypes(source, target, 1 /* Number */, 1 /* Number */); - inferFromIndexTypes(source, target, 0 /* String */, 1 /* Number */); - 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]; - if (!inferredType) { - var inferences = getInferenceCandidates(context, index); - if (inferences.length) { - var unionOrSuperType = context.inferUnionTypes ? getUnionType(inferences) : getCommonSupertype(inferences); - inferredType = unionOrSuperType ? getWidenedType(unionOrSuperType) : inferenceFailureType; - } - else { - inferredType = emptyObjectType; - } - if (inferredType !== inferenceFailureType) { - var constraint = getConstraintOfTypeParameter(context.typeParameters[index]); - inferredType = constraint && !isTypeAssignableTo(inferredType, constraint) ? constraint : inferredType; - } - 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 = resolveName(node, node.text, 107455 /* Value */ | 4194304 /* ExportValue */, ts.Diagnostics.Cannot_find_name_0, node) || unknownSymbol; - } - return links.resolvedSymbol; - } - function isInTypeQuery(node) { - while (node) { - switch (node.kind) { - case 135 /* TypeQuery */: - return true; - case 63 /* Identifier */: - case 121 /* QualifiedName */: - node = node.parent; - continue; - default: - return false; - } - } - ts.Debug.fail("should not get here"); - } - function subtractPrimitiveTypes(type, subtractMask) { - if (type.flags & 16384 /* Union */) { - var types = type.types; - if (ts.forEach(types, function (t) { return t.flags & subtractMask; })) { - return getUnionType(ts.filter(types, function (t) { return !(t.flags & subtractMask); })); - } - } - return type; - } - 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.operator >= 51 /* FirstAssignment */ && node.operator <= 62 /* LastAssignment */) { - var n = node.left; - while (n.kind === 151 /* ParenExpression */) { - n = n.expression; - } - if (n.kind === 63 /* Identifier */ && getResolvedSymbol(n) === symbol) { - return true; - } - } - return ts.forEachChild(node, isAssignedIn); - } - function isAssignedInVariableDeclaration(node) { - if (getSymbolOfNode(node) === symbol && node.initializer) { - return true; - } - return ts.forEachChild(node, isAssignedIn); - } - function isAssignedIn(node) { - switch (node.kind) { - case 156 /* BinaryExpression */: - return isAssignedInBinaryExpression(node); - case 185 /* VariableDeclaration */: - return isAssignedInVariableDeclaration(node); - case 141 /* ArrayLiteral */: - case 142 /* ObjectLiteral */: - case 145 /* PropertyAccess */: - case 146 /* IndexedAccess */: - case 147 /* CallExpression */: - case 148 /* NewExpression */: - case 150 /* TypeAssertion */: - case 151 /* ParenExpression */: - case 154 /* PrefixOperator */: - case 155 /* PostfixOperator */: - case 157 /* ConditionalExpression */: - case 162 /* Block */: - case 163 /* VariableStatement */: - case 165 /* ExpressionStatement */: - case 166 /* IfStatement */: - case 167 /* DoStatement */: - case 168 /* WhileStatement */: - case 169 /* ForStatement */: - case 170 /* ForInStatement */: - case 173 /* ReturnStatement */: - case 174 /* WithStatement */: - case 175 /* SwitchStatement */: - case 176 /* CaseClause */: - case 177 /* DefaultClause */: - case 178 /* LabeledStatement */: - case 179 /* ThrowStatement */: - case 180 /* TryStatement */: - case 181 /* TryBlock */: - case 182 /* CatchBlock */: - case 183 /* FinallyBlock */: - return ts.forEachChild(node, isAssignedIn); - } - return false; - } - } - function getNarrowedTypeOfSymbol(symbol, node) { - var type = getTypeOfSymbol(symbol); - if (node && (symbol.flags & 3 /* Variable */ && type.flags & 65025 /* Structured */)) { - loop: while (true) { - var child = node; - node = node.parent; - var narrowedType = type; - switch (node.kind) { - case 166 /* IfStatement */: - if (child !== node.expression) { - narrowedType = narrowType(type, node.expression, child === node.thenStatement); - } - break; - case 157 /* ConditionalExpression */: - if (child !== node.condition) { - narrowedType = narrowType(type, node.condition, child === node.whenTrue); - } - break; - case 156 /* BinaryExpression */: - if (child === node.right) { - if (node.operator === 47 /* AmpersandAmpersandToken */) { - narrowedType = narrowType(type, node.left, true); - } - else if (node.operator === 48 /* BarBarToken */) { - narrowedType = narrowType(type, node.left, false); - } - } - break; - case 197 /* SourceFile */: - case 192 /* ModuleDeclaration */: - case 186 /* FunctionDeclaration */: - case 125 /* Method */: - case 127 /* GetAccessor */: - case 128 /* SetAccessor */: - case 126 /* Constructor */: - break loop; - } - if (narrowedType !== type && isTypeSubtypeOf(narrowedType, type)) { - if (isVariableAssignedWithin(symbol, node)) { - break; - } - type = narrowedType; - } - } - } - return type; - function narrowTypeByEquality(type, expr, assumeTrue) { - var left = expr.left; - var right = expr.right; - if (left.kind !== 154 /* PrefixOperator */ || left.operator !== 95 /* TypeOfKeyword */ || left.operand.kind !== 63 /* Identifier */ || right.kind !== 7 /* StringLiteral */ || getResolvedSymbol(left.operand) !== symbol) { - return type; - } - var t = right.text; - var checkType = t === "string" ? stringType : t === "number" ? numberType : t === "boolean" ? booleanType : emptyObjectType; - if (expr.operator === 30 /* ExclamationEqualsEqualsToken */) { - assumeTrue = !assumeTrue; - } - if (assumeTrue) { - return checkType === emptyObjectType ? subtractPrimitiveTypes(type, 2 /* String */ | 4 /* Number */ | 8 /* Boolean */) : checkType; - } - else { - return checkType === emptyObjectType ? type : subtractPrimitiveTypes(type, checkType.flags); - } - } - 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 (!assumeTrue || expr.left.kind !== 63 /* Identifier */ || 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 prototypeType = getTypeOfSymbol(prototypeProperty); - return isTypeSubtypeOf(prototypeType, type) ? prototypeType : type; - } - function narrowType(type, expr, assumeTrue) { - switch (expr.kind) { - case 151 /* ParenExpression */: - return narrowType(type, expr.expression, assumeTrue); - case 156 /* BinaryExpression */: - var operator = expr.operator; - if (operator === 29 /* EqualsEqualsEqualsToken */ || operator === 30 /* ExclamationEqualsEqualsToken */) { - return narrowTypeByEquality(type, expr, assumeTrue); - } - else if (operator === 47 /* AmpersandAmpersandToken */) { - return narrowTypeByAnd(type, expr, assumeTrue); - } - else if (operator === 48 /* BarBarToken */) { - return narrowTypeByOr(type, expr, assumeTrue); - } - else if (operator === 85 /* InstanceOfKeyword */) { - return narrowTypeByInstanceof(type, expr, assumeTrue); - } - break; - case 154 /* PrefixOperator */: - if (expr.operator === 45 /* ExclamationToken */) { - return narrowType(type, expr.operand, !assumeTrue); - } - break; - } - return type; - } - } - function checkIdentifier(node) { - var symbol = getResolvedSymbol(node); - if (symbol.flags & 33554432 /* Import */) { - getSymbolLinks(symbol).referenced = getSymbolLinks(symbol).referenced || (!isInTypeQuery(node) && !isConstEnumOrConstEnumOnlyModule(resolveImport(symbol))); - } - checkCollisionWithCapturedSuperVariable(node, node); - checkCollisionWithCapturedThisVariable(node, node); - checkCollisionWithIndexVariableInGeneratedCode(node, node); - return getNarrowedTypeOfSymbol(getExportSymbolOfValueSymbolIfExported(symbol), node); - } - function captureLexicalThis(node, container) { - var classNode = container.parent && container.parent.kind === 188 /* ClassDeclaration */ ? container.parent : undefined; - getNodeLinks(node).flags |= 2 /* LexicalThis */; - if (container.kind === 124 /* Property */ || container.kind === 126 /* Constructor */) { - getNodeLinks(classNode).flags |= 4 /* CaptureThis */; - } - else { - getNodeLinks(container).flags |= 4 /* CaptureThis */; - } - } - function checkThisExpression(node) { - var container = ts.getThisContainer(node, true); - var needToCaptureLexicalThis = false; - if (container.kind === 153 /* ArrowFunction */) { - container = ts.getThisContainer(container, false); - needToCaptureLexicalThis = true; - } - switch (container.kind) { - case 192 /* ModuleDeclaration */: - error(node, ts.Diagnostics.this_cannot_be_referenced_in_a_module_body); - break; - case 191 /* EnumDeclaration */: - error(node, ts.Diagnostics.this_cannot_be_referenced_in_current_location); - break; - case 126 /* Constructor */: - if (isInConstructorArgumentInitializer(node, container)) { - error(node, ts.Diagnostics.this_cannot_be_referenced_in_constructor_arguments); - } - break; - case 124 /* Property */: - if (container.flags & 128 /* Static */) { - error(node, ts.Diagnostics.this_cannot_be_referenced_in_a_static_property_initializer); - } - break; - } - if (needToCaptureLexicalThis) { - captureLexicalThis(node, container); - } - var classNode = container.parent && container.parent.kind === 188 /* ClassDeclaration */ ? container.parent : undefined; - if (classNode) { - var symbol = getSymbolOfNode(classNode); - return container.flags & 128 /* Static */ ? getTypeOfSymbol(symbol) : getDeclaredTypeOfSymbol(symbol); - } - return anyType; - } - function getSuperContainer(node) { - while (true) { - node = node.parent; - if (!node) - return node; - switch (node.kind) { - case 186 /* FunctionDeclaration */: - case 152 /* FunctionExpression */: - case 153 /* ArrowFunction */: - case 124 /* Property */: - case 125 /* Method */: - case 126 /* Constructor */: - case 127 /* GetAccessor */: - case 128 /* SetAccessor */: - return node; - } - } - } - function isInConstructorArgumentInitializer(node, constructorDecl) { - for (var n = node; n && n !== constructorDecl; n = n.parent) { - if (n.kind === 123 /* Parameter */) { - return true; - } - } - return false; - } - function checkSuperExpression(node) { - var isCallExpression = node.parent.kind === 147 /* CallExpression */ && node.parent.func === node; - var enclosingClass = ts.getAncestor(node, 188 /* ClassDeclaration */); - var baseClass; - if (enclosingClass && enclosingClass.baseType) { - 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 = getSuperContainer(node); - if (container) { - var canUseSuperExpression = false; - if (isCallExpression) { - canUseSuperExpression = container.kind === 126 /* Constructor */; - } - else { - var needToCaptureLexicalThis = false; - while (container && container.kind === 153 /* ArrowFunction */) { - container = getSuperContainer(container); - needToCaptureLexicalThis = true; - } - if (container && container.parent && container.parent.kind === 188 /* ClassDeclaration */) { - if (container.flags & 128 /* Static */) { - canUseSuperExpression = container.kind === 125 /* Method */ || container.kind === 127 /* GetAccessor */ || container.kind === 128 /* SetAccessor */; - } - else { - canUseSuperExpression = container.kind === 125 /* Method */ || container.kind === 127 /* GetAccessor */ || container.kind === 128 /* SetAccessor */ || container.kind === 124 /* Property */ || container.kind === 126 /* Constructor */; - } - } - } - if (canUseSuperExpression) { - var returnType; - if ((container.flags & 128 /* Static */) || isCallExpression) { - getNodeLinks(node).flags |= 32 /* SuperStatic */; - returnType = getTypeOfSymbol(baseClass.symbol); - } - else { - getNodeLinks(node).flags |= 16 /* SuperInstance */; - returnType = baseClass; - } - if (container.kind === 126 /* Constructor */ && 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 (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) { - var func = parameter.parent; - if (func.kind === 152 /* FunctionExpression */ || func.kind === 153 /* ArrowFunction */) { - if (isContextSensitiveExpression(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 === 123 /* Parameter */) { - return getContextuallyTypedParameterType(declaration); - } - } - return undefined; - } - function getContextualTypeForReturnExpression(node) { - var func = ts.getContainingFunction(node); - if (func) { - if (func.type || func.kind === 126 /* Constructor */ || func.kind === 127 /* GetAccessor */ && getSetAccessorTypeAnnotationNode(getDeclarationOfKind(func.symbol, 128 /* SetAccessor */))) { - return getReturnTypeOfSignature(getSignatureFromDeclaration(func)); - } - var signature = getContextualSignature(func); - if (signature) { - return getReturnTypeOfSignature(signature); - } - } - return undefined; - } - function getContextualTypeForArgument(node) { - var callExpression = node.parent; - var argIndex = ts.indexOf(callExpression.arguments, node); - if (argIndex >= 0) { - var signature = getResolvedSignature(callExpression); - return getTypeAtPosition(signature, argIndex); - } - return undefined; - } - function getContextualTypeForBinaryOperand(node) { - var binaryExpression = node.parent; - var operator = binaryExpression.operator; - if (operator >= 51 /* FirstAssignment */ && operator <= 62 /* LastAssignment */) { - if (node === binaryExpression.right) { - return checkExpression(binaryExpression.left); - } - } - else if (operator === 48 /* BarBarToken */) { - 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 /* Union */)) { - return mapper(type); - } - var types = type.types; - var mappedType; - var mappedTypes; - for (var i = 0; i < types.length; i++) { - var t = mapper(types[i]); - 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 contextualTypeIsTupleType(type) { - return !!(type.flags & 16384 /* Union */ ? ts.forEach(type.types, function (t) { return getPropertyOfObjectType(t, "0"); }) : getPropertyOfObjectType(type, "0")); - } - function contextualTypeHasIndexSignature(type, kind) { - return !!(type.flags & 16384 /* Union */ ? ts.forEach(type.types, function (t) { return getIndexTypeOfObjectOrUnionType(t, kind); }) : getIndexTypeOfObjectOrUnionType(type, kind)); - } - function getContextualTypeForPropertyExpression(node) { - var declaration = node.parent; - var objectLiteral = declaration.parent; - var type = getContextualType(objectLiteral); - var name = declaration.name.text; - if (type && name) { - return getTypeOfPropertyOfContextualType(type, name) || isNumericName(name) && getIndexTypeOfContextualType(type, 1 /* Number */) || getIndexTypeOfContextualType(type, 0 /* String */); - } - 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 /* Number */); - } - 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 185 /* VariableDeclaration */: - case 123 /* Parameter */: - case 124 /* Property */: - return getContextualTypeForInitializerExpression(node); - case 153 /* ArrowFunction */: - case 173 /* ReturnStatement */: - return getContextualTypeForReturnExpression(node); - case 147 /* CallExpression */: - case 148 /* NewExpression */: - return getContextualTypeForArgument(node); - case 150 /* TypeAssertion */: - return getTypeFromTypeNode(parent.type); - case 156 /* BinaryExpression */: - return getContextualTypeForBinaryOperand(node); - case 143 /* PropertyAssignment */: - return getContextualTypeForPropertyExpression(node); - case 141 /* ArrayLiteral */: - return getContextualTypeForElementExpression(node); - case 157 /* ConditionalExpression */: - return getContextualTypeForConditionalOperand(node); - } - return undefined; - } - function getNonGenericSignature(type) { - var signatures = getSignaturesOfObjectOrUnionType(type, 0 /* Call */); - if (signatures.length === 1) { - var signature = signatures[0]; - if (!signature.typeParameters) { - return signature; - } - } - } - function getContextualSignature(node) { - var type = getContextualType(node); - if (!type) { - return undefined; - } - if (!(type.flags & 16384 /* Union */)) { - return getNonGenericSignature(type); - } - var signatureList; - var types = type.types; - for (var i = 0; i < types.length; i++) { - if (signatureList && getSignaturesOfObjectOrUnionType(types[i], 0 /* Call */).length > 1) { - return undefined; - } - var signature = getNonGenericSignature(types[i]); - 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 checkArrayLiteral(node, contextualMapper) { - var elements = node.elements; - if (!elements.length) { - return createArrayType(undefinedType); - } - var elementTypes = ts.map(elements, function (e) { return checkExpression(e, contextualMapper); }); - var contextualType = getContextualType(node); - if (contextualType && contextualTypeIsTupleType(contextualType)) { - return createTupleType(elementTypes); - } - return createArrayType(getUnionType(elementTypes)); - } - function isNumericName(name) { - return (+name).toString() === name; - } - function checkObjectLiteral(node, contextualMapper) { - var members = node.symbol.members; - var properties = {}; - var contextualType = getContextualType(node); - for (var id in members) { - if (ts.hasProperty(members, id)) { - var member = members[id]; - if (member.flags & 4 /* Property */) { - var memberDecl = member.declarations[0]; - var type; - if (memberDecl.kind === 143 /* PropertyAssignment */) { - type = checkExpression(memberDecl.initializer, contextualMapper); - } - else { - ts.Debug.assert(memberDecl.kind === 144 /* ShorthandPropertyAssignment */); - type = checkExpression(memberDecl.name, contextualMapper); - } - var prop = createSymbol(4 /* Property */ | 268435456 /* Transient */ | 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 { - var getAccessor = getDeclarationOfKind(member, 127 /* GetAccessor */); - if (getAccessor) { - checkAccessorDeclaration(getAccessor); - } - var setAccessor = getDeclarationOfKind(member, 128 /* SetAccessor */); - if (setAccessor) { - checkAccessorDeclaration(setAccessor); - } - } - properties[member.name] = member; - } - } - var stringIndexType = getIndexType(0 /* String */); - var numberIndexType = getIndexType(1 /* Number */); - return createAnonymousType(node.symbol, properties, emptyArray, emptyArray, stringIndexType, numberIndexType); - function getIndexType(kind) { - if (contextualType && contextualTypeHasIndexSignature(contextualType, kind)) { - var propTypes = []; - for (var id in properties) { - if (ts.hasProperty(properties, id)) { - if (kind === 0 /* String */ || isNumericName(id)) { - var type = getTypeOfSymbol(properties[id]); - if (!ts.contains(propTypes, type)) { - propTypes.push(type); - } - } - } - } - return propTypes.length ? getUnionType(propTypes) : undefinedType; - } - return undefined; - } - } - function getDeclarationKindFromSymbol(s) { - return s.valueDeclaration ? s.valueDeclaration.kind : 124 /* Property */; - } - function getDeclarationFlagsFromSymbol(s) { - return s.valueDeclaration ? s.valueDeclaration.flags : s.flags & 536870912 /* Prototype */ ? 16 /* Public */ | 128 /* Static */ : 0; - } - function checkClassPropertyAccess(node, type, prop) { - var flags = getDeclarationFlagsFromSymbol(prop); - if (!(flags & (32 /* Private */ | 64 /* Protected */))) { - return; - } - var enclosingClassDeclaration = ts.getAncestor(node, 188 /* ClassDeclaration */); - var enclosingClass = enclosingClassDeclaration ? getDeclaredTypeOfSymbol(getSymbolOfNode(enclosingClassDeclaration)) : undefined; - var declaringClass = getDeclaredTypeOfSymbol(prop.parent); - if (flags & 32 /* Private */) { - if (declaringClass !== enclosingClass) { - error(node, ts.Diagnostics.Property_0_is_private_and_only_accessible_within_class_1, symbolToString(prop), typeToString(declaringClass)); - } - return; - } - if (node.left.kind === 89 /* SuperKeyword */) { - 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 /* Static */) { - return; - } - if (!(getTargetType(type).flags & (1024 /* Class */ | 2048 /* Interface */) && 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 checkPropertyAccess(node) { - var type = checkExpression(node.left); - if (type === unknownType) - return type; - if (type !== anyType) { - var apparentType = getApparentType(getWidenedType(type)); - if (apparentType === unknownType) { - return unknownType; - } - var prop = getPropertyOfType(apparentType, node.right.text); - if (!prop) { - if (node.right.text) { - error(node.right, ts.Diagnostics.Property_0_does_not_exist_on_type_1, ts.declarationNameToString(node.right), typeToString(type)); - } - return unknownType; - } - getNodeLinks(node).resolvedSymbol = prop; - if (prop.parent && prop.parent.flags & 32 /* Class */) { - if (node.left.kind === 89 /* SuperKeyword */ && getDeclarationKindFromSymbol(prop) !== 125 /* Method */) { - error(node.right, ts.Diagnostics.Only_public_and_protected_methods_of_the_base_class_are_accessible_via_the_super_keyword); - } - else { - checkClassPropertyAccess(node, type, prop); - } - } - return getTypeOfSymbol(prop); - } - return anyType; - } - function isValidPropertyAccess(node, propertyName) { - var type = checkExpression(node.left); - if (type !== unknownType && type !== anyType) { - var prop = getPropertyOfType(getWidenedType(type), propertyName); - if (prop && prop.parent && prop.parent.flags & 32 /* Class */) { - if (node.left.kind === 89 /* SuperKeyword */ && getDeclarationKindFromSymbol(prop) !== 125 /* Method */) { - return false; - } - else { - var diagnosticsCount = diagnostics.length; - checkClassPropertyAccess(node, type, prop); - return diagnostics.length === diagnosticsCount; - } - } - } - return true; - } - function checkIndexedAccess(node) { - var objectType = getApparentType(checkExpression(node.object)); - var indexType = checkExpression(node.index); - if (objectType === unknownType) - return unknownType; - if (isConstEnumObjectType(objectType) && node.index.kind !== 7 /* StringLiteral */) { - error(node.index, ts.Diagnostics.Index_expression_arguments_in_const_enums_must_be_of_type_string); - } - if (node.index.kind === 7 /* StringLiteral */ || node.index.kind === 6 /* NumericLiteral */) { - var name = node.index.text; - var prop = getPropertyOfType(objectType, name); - if (prop) { - getNodeLinks(node).resolvedSymbol = prop; - return getTypeOfSymbol(prop); - } - } - if (indexType.flags & (1 /* Any */ | 258 /* StringLike */ | 132 /* NumberLike */)) { - if (indexType.flags & (1 /* Any */ | 132 /* NumberLike */)) { - var numberIndexType = getIndexTypeOfType(objectType, 1 /* Number */); - if (numberIndexType) { - return numberIndexType; - } - } - var stringIndexType = getIndexTypeOfType(objectType, 0 /* String */); - if (stringIndexType) { - return stringIndexType; - } - if (compilerOptions.noImplicitAny && 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_or_any); - return unknownType; - } - function resolveUntypedCall(node) { - if (node.kind === 149 /* TaggedTemplateExpression */) { - checkExpression(node.template); - } - else { - ts.forEach(node.arguments, function (argument) { - checkExpression(argument); - }); - } - return anySignature; - } - function resolveErrorCall(node) { - resolveUntypedCall(node); - return unknownSignature; - } - function hasCorrectArity(node, args, signature) { - var adjustedArgCount; - var typeArguments; - var callIsIncomplete; - if (node.kind === 149 /* TaggedTemplateExpression */) { - var tagExpression = node; - adjustedArgCount = args.length; - typeArguments = undefined; - if (tagExpression.template.kind === 158 /* TemplateExpression */) { - var templateExpression = tagExpression.template; - var lastSpan = ts.lastOrUndefined(templateExpression.templateSpans); - ts.Debug.assert(lastSpan !== undefined); - callIsIncomplete = lastSpan.literal.kind === 120 /* Missing */ || ts.isUnterminatedTemplateEnd(lastSpan.literal); - } - else { - var templateLiteral = tagExpression.template; - ts.Debug.assert(templateLiteral.kind === 9 /* NoSubstitutionTemplateLiteral */); - callIsIncomplete = ts.isUnterminatedTemplateEnd(templateLiteral); - } - } - else { - var callExpression = node; - if (!callExpression.arguments) { - ts.Debug.assert(callExpression.kind === 148 /* NewExpression */); - return signature.minArgumentCount === 0; - } - adjustedArgCount = callExpression.arguments.hasTrailingComma ? args.length + 1 : args.length; - callIsIncomplete = callExpression.arguments.end === callExpression.end; - typeArguments = callExpression.typeArguments; - } - ts.Debug.assert(adjustedArgCount !== undefined, "'adjustedArgCount' undefined"); - ts.Debug.assert(callIsIncomplete !== undefined, "'callIsIncomplete' undefined"); - return checkArity(adjustedArgCount, typeArguments, callIsIncomplete, signature); - function checkArity(adjustedArgCount, typeArguments, callIsIncomplete, signature) { - if (!signature.hasRestParameter && adjustedArgCount > signature.parameters.length) { - return false; - } - var hasRightNumberOfTypeArgs = !typeArguments || (signature.typeParameters && typeArguments.length === signature.typeParameters.length); - if (!hasRightNumberOfTypeArgs) { - return false; - } - var hasEnoughArguments = adjustedArgCount >= signature.minArgumentCount; - return callIsIncomplete || hasEnoughArguments; - } - } - function getSingleCallSignature(type) { - if (type.flags & 48128 /* ObjectType */) { - 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) { - var typeParameters = signature.typeParameters; - var context = createInferenceContext(typeParameters, false); - var mapper = createInferenceMapper(context); - for (var i = 0; i < args.length; i++) { - if (args[i].kind === 161 /* OmittedExpression */) { - continue; - } - if (!excludeArgument || excludeArgument[i] === undefined) { - var parameterType = getTypeAtPosition(signature, i); - if (i === 0 && args[i].parent.kind === 149 /* TaggedTemplateExpression */) { - inferTypes(context, globalTemplateStringsArrayType, parameterType); - continue; - } - inferTypes(context, checkExpressionWithContextualType(args[i], parameterType, mapper), parameterType); - } - } - if (excludeArgument) { - for (var i = 0; i < args.length; i++) { - if (args[i].kind === 161 /* OmittedExpression */) { - continue; - } - if (excludeArgument[i] === false) { - var parameterType = getTypeAtPosition(signature, i); - inferTypes(context, checkExpressionWithContextualType(args[i], parameterType, mapper), parameterType); - } - } - } - var inferredTypes = getInferredTypes(context); - context.failedTypeParameterIndex = ts.indexOf(inferredTypes, inferenceFailureType); - for (var i = 0; i < inferredTypes.length; i++) { - if (inferredTypes[i] === inferenceFailureType) { - inferredTypes[i] = unknownType; - } - } - return 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]; - var argType; - if (arg.kind === 161 /* OmittedExpression */) { - continue; - } - var paramType = getTypeAtPosition(signature, i); - if (i === 0 && node.kind === 149 /* TaggedTemplateExpression */) { - argType = globalTemplateStringsArrayType; - } - else { - argType = arg.kind === 7 /* StringLiteral */ && !reportErrors ? getStringLiteralType(arg) : checkExpressionWithContextualType(arg, paramType, excludeArgument && excludeArgument[i] ? identityMapper : undefined); - } - var isValidArgument = checkTypeRelatedTo(argType, paramType, relation, reportErrors ? arg : undefined, ts.Diagnostics.Argument_of_type_0_is_not_assignable_to_parameter_of_type_1); - if (!isValidArgument) { - return false; - } - } - return true; - } - function getEffectiveCallArguments(node) { - var args; - if (node.kind === 149 /* TaggedTemplateExpression */) { - var template = node.template; - args = [template]; - if (template.kind === 158 /* TemplateExpression */) { - ts.forEach(template.templateSpans, function (span) { - args.push(span.expression); - }); - } - } - else { - args = node.arguments || emptyArray; - } - return args; - } - function resolveCall(node, signatures, candidatesOutArray) { - var isTaggedTemplate = node.kind === 149 /* TaggedTemplateExpression */; - var typeArguments = isTaggedTemplate ? undefined : node.typeArguments; - ts.forEach(typeArguments, checkSourceElement); - var candidates = candidatesOutArray || []; - collectCandidates(); - 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 (isContextSensitiveExpression(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.func || node.tag, diagnosticChainHead); - } - } - else { - error(node, ts.Diagnostics.Supplied_parameters_do_not_match_any_signature_of_call_target); - } - if (!fullTypeCheck) { - for (var i = 0, n = candidates.length; i < n; i++) { - if (hasCorrectArity(node, args, candidates[i])) { - return candidates[i]; - } - } - } - return resolveErrorCall(node); - function chooseOverload(candidates, relation) { - for (var i = 0; i < candidates.length; i++) { - if (!hasCorrectArity(node, args, candidates[i])) { - continue; - } - var originalCandidate = candidates[i]; - var inferenceResult; - while (true) { - var candidate = originalCandidate; - if (candidate.typeParameters) { - var typeArgumentTypes; - var typeArgumentsAreValid; - if (typeArguments) { - typeArgumentTypes = new Array(candidate.typeParameters.length); - typeArgumentsAreValid = checkTypeArguments(candidate, typeArguments, typeArgumentTypes, false); - } - else { - inferenceResult = inferTypeArguments(candidate, args, excludeArgument); - typeArgumentsAreValid = inferenceResult.failedTypeParameterIndex < 0; - typeArgumentTypes = inferenceResult.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 = inferenceResult; - } - } - } - else { - ts.Debug.assert(originalCandidate === candidate); - candidateForArgumentError = originalCandidate; - } - } - return undefined; - } - function collectCandidates() { - var result = candidates; - var lastParent; - var lastSymbol; - var cutoffPos = 0; - var pos; - 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 = signature.declaration && signature.declaration.parent; - if (!lastSymbol || symbol === lastSymbol) { - if (lastParent && parent === lastParent) { - pos++; - } - else { - lastParent = parent; - pos = cutoffPos; - } - } - else { - pos = cutoffPos = result.length; - lastParent = parent; - } - lastSymbol = symbol; - for (var j = result.length; j > pos; j--) { - result[j] = result[j - 1]; - } - result[pos] = signature; - } - } - } - function resolveCallExpression(node, candidatesOutArray) { - if (node.func.kind === 89 /* SuperKeyword */) { - var superType = checkSuperExpression(node.func); - if (superType !== unknownType) { - return resolveCall(node, getSignaturesOfType(superType, 1 /* Construct */), candidatesOutArray); - } - return resolveUntypedCall(node); - } - var funcType = checkExpression(node.func); - var apparentType = getApparentType(funcType); - if (apparentType === unknownType) { - return resolveErrorCall(node); - } - var callSignatures = getSignaturesOfType(apparentType, 0 /* Call */); - var constructSignatures = getSignaturesOfType(apparentType, 1 /* Construct */); - if (funcType === anyType || (!callSignatures.length && !constructSignatures.length && !(funcType.flags & 16384 /* Union */) && 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) { - var expressionType = checkExpression(node.func); - 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 /* Construct */); - if (constructSignatures.length) { - return resolveCall(node, constructSignatures, candidatesOutArray); - } - var callSignatures = getSignaturesOfType(expressionType, 0 /* Call */); - 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 /* Call */); - if (tagType === anyType || (!callSignatures.length && !(tagType.flags & 16384 /* Union */) && 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 === 147 /* CallExpression */) { - links.resolvedSignature = resolveCallExpression(node, candidatesOutArray); - } - else if (node.kind === 148 /* NewExpression */) { - links.resolvedSignature = resolveNewExpression(node, candidatesOutArray); - } - else if (node.kind === 149 /* TaggedTemplateExpression */) { - links.resolvedSignature = resolveTaggedTemplateExpression(node, candidatesOutArray); - } - else { - ts.Debug.fail("Branch in 'getResolvedSignature' should be unreachable."); - } - } - return links.resolvedSignature; - } - function checkCallExpression(node) { - var signature = getResolvedSignature(node); - if (node.func.kind === 89 /* SuperKeyword */) { - return voidType; - } - if (node.kind === 148 /* NewExpression */) { - var declaration = signature.declaration; - if (declaration && declaration.kind !== 126 /* Constructor */ && declaration.kind !== 130 /* ConstructSignature */ && declaration.kind !== 134 /* ConstructorType */) { - 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.operand); - var targetType = getTypeFromTypeNode(node.type); - if (fullTypeCheck && targetType !== unknownType) { - var widenedType = getWidenedType(exprType, true); - 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) { - return signature.hasRestParameter ? pos < signature.parameters.length - 1 ? getTypeOfSymbol(signature.parameters[pos]) : getRestTypeOfSignature(signature) : pos < signature.parameters.length ? getTypeOfSymbol(signature.parameters[pos]) : anyType; - } - 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 = getContextualSignature(func); - if (func.body.kind !== 187 /* FunctionBlock */) { - var unwidenedType = checkAndMarkExpression(func.body, contextualMapper); - var widenedType = getWidenedType(unwidenedType); - if (fullTypeCheck && compilerOptions.noImplicitAny && !contextualSignature && widenedType !== unwidenedType && getInnermostTypeOfNestedArrayTypes(widenedType) === anyType) { - error(func, ts.Diagnostics.Function_expression_which_lacks_return_type_annotation_implicitly_has_an_0_return_type, typeToString(widenedType)); - } - return widenedType; - } - var types = checkAndAggregateReturnExpressionTypes(func.body, contextualMapper); - if (types.length > 0) { - var commonType = contextualSignature ? getUnionType(types) : getCommonSupertype(types); - if (!commonType) { - error(func, ts.Diagnostics.No_best_common_type_exists_among_return_expressions); - return unknownType; - } - var widenedType = getWidenedType(commonType); - if (fullTypeCheck && compilerOptions.noImplicitAny && !contextualSignature && widenedType !== commonType && getInnermostTypeOfNestedArrayTypes(widenedType) === anyType) { - var typeName = typeToString(widenedType); - if (func.name) { - error(func, ts.Diagnostics._0_which_lacks_return_type_annotation_implicitly_has_an_1_return_type, ts.declarationNameToString(func.name), typeName); - } - else { - error(func, ts.Diagnostics.Function_expression_which_lacks_return_type_annotation_implicitly_has_an_0_return_type, typeName); - } - } - return widenedType; - } - return voidType; - } - function checkAndAggregateReturnExpressionTypes(body, contextualMapper) { - var aggregatedTypes = []; - ts.forEachReturnStatement(body, function (returnStatement) { - var expr = returnStatement.expression; - if (expr) { - var type = checkAndMarkExpression(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 === 179 /* ThrowStatement */); - } - function checkIfNonVoidFunctionHasReturnExpressionsOrSingleThrowStatment(func, returnType) { - if (!fullTypeCheck) { - return; - } - if (returnType === voidType || returnType === anyType) { - return; - } - if (!func.body || func.body.kind !== 187 /* FunctionBlock */) { - 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 checkFunctionExpression(node, contextualMapper) { - if (contextualMapper === identityMapper) { - return anyFunctionType; - } - var links = getNodeLinks(node); - var type = getTypeOfSymbol(node.symbol); - if (!(links.flags & 64 /* ContextChecked */)) { - var contextualSignature = getContextualSignature(node); - if (!(links.flags & 64 /* ContextChecked */)) { - links.flags |= 64 /* ContextChecked */; - if (contextualSignature) { - var signature = getSignaturesOfType(type, 0 /* Call */)[0]; - if (isContextSensitiveExpression(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); - } - } - return type; - } - function checkFunctionExpressionBody(node) { - if (node.type) { - checkIfNonVoidFunctionHasReturnExpressionsOrSingleThrowStatment(node, getTypeFromTypeNode(node.type)); - } - if (node.body.kind === 187 /* FunctionBlock */) { - 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 (!(type.flags & (1 /* Any */ | 132 /* NumberLike */))) { - error(operand, diagnostic); - return false; - } - return true; - } - function checkReferenceExpression(n, invalidReferenceMessage, constantVarianleMessage) { - function findSymbol(n) { - var symbol = getNodeLinks(n).resolvedSymbol; - return symbol && getExportSymbolOfValueSymbolIfExported(symbol); - } - function isReferenceOrErrorExpression(n) { - switch (n.kind) { - case 63 /* Identifier */: - var symbol = findSymbol(n); - return !symbol || symbol === unknownSymbol || symbol === argumentsSymbol || (symbol.flags & 3 /* Variable */) !== 0; - case 145 /* PropertyAccess */: - var symbol = findSymbol(n); - return !symbol || symbol === unknownSymbol || (symbol.flags & ~8 /* EnumMember */) !== 0; - case 146 /* IndexedAccess */: - return true; - case 151 /* ParenExpression */: - return isReferenceOrErrorExpression(n.expression); - default: - return false; - } - } - function isConstVariableReference(n) { - switch (n.kind) { - case 63 /* Identifier */: - case 145 /* PropertyAccess */: - var symbol = findSymbol(n); - return symbol && (symbol.flags & 3 /* Variable */) !== 0 && (getDeclarationFlagsFromSymbol(symbol) & 4096 /* Const */) !== 0; - case 146 /* IndexedAccess */: - var index = n.index; - var symbol = findSymbol(n.object); - if (symbol && index.kind === 7 /* StringLiteral */) { - var name = index.text; - var prop = getPropertyOfType(getTypeOfSymbol(symbol), name); - return prop && (prop.flags & 3 /* Variable */) !== 0 && (getDeclarationFlagsFromSymbol(prop) & 4096 /* Const */) !== 0; - } - return false; - case 151 /* ParenExpression */: - return isConstVariableReference(n.expression); - default: - return false; - } - } - if (!isReferenceOrErrorExpression(n)) { - error(n, invalidReferenceMessage); - return false; - } - if (isConstVariableReference(n)) { - error(n, constantVarianleMessage); - return false; - } - return true; - } - function checkPrefixExpression(node) { - var operandType = checkExpression(node.operand); - switch (node.operator) { - case 32 /* PlusToken */: - case 33 /* MinusToken */: - case 46 /* TildeToken */: - return numberType; - case 45 /* ExclamationToken */: - case 72 /* DeleteKeyword */: - return booleanType; - case 95 /* TypeOfKeyword */: - return stringType; - case 97 /* VoidKeyword */: - return undefinedType; - case 37 /* PlusPlusToken */: - case 38 /* MinusMinusToken */: - 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 checkPostfixExpression(node) { - 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 isStructuredType(type) { - if (type.flags & 16384 /* Union */) { - return !ts.forEach(type.types, function (t) { return !isStructuredType(t); }); - } - return (type.flags & 65025 /* Structured */) !== 0; - } - function isConstEnumObjectType(type) { - return type.flags & (48128 /* ObjectType */ | 32768 /* Anonymous */) && type.symbol && isConstEnumSymbol(type.symbol); - } - function isConstEnumSymbol(symbol) { - return (symbol.flags & 128 /* ConstEnum */) !== 0; - } - function checkInstanceOfExpression(node, leftType, rightType) { - if (leftType !== unknownType && !isStructuredType(leftType)) { - 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 !== unknownType && rightType !== anyType && !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 (leftType !== anyType && leftType !== stringType && leftType !== numberType) { - error(node.left, ts.Diagnostics.The_left_hand_side_of_an_in_expression_must_be_of_types_any_string_or_number); - } - if (!isStructuredType(rightType)) { - 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 checkBinaryExpression(node, contextualMapper) { - var operator = node.operator; - var leftType = checkExpression(node.left, contextualMapper); - var rightType = checkExpression(node.right, contextualMapper); - switch (operator) { - case 34 /* AsteriskToken */: - case 54 /* AsteriskEqualsToken */: - case 35 /* SlashToken */: - case 55 /* SlashEqualsToken */: - case 36 /* PercentToken */: - case 56 /* PercentEqualsToken */: - case 33 /* MinusToken */: - case 53 /* MinusEqualsToken */: - case 39 /* LessThanLessThanToken */: - case 57 /* LessThanLessThanEqualsToken */: - case 40 /* GreaterThanGreaterThanToken */: - case 58 /* GreaterThanGreaterThanEqualsToken */: - case 41 /* GreaterThanGreaterThanGreaterThanToken */: - case 59 /* GreaterThanGreaterThanGreaterThanEqualsToken */: - case 43 /* BarToken */: - case 61 /* BarEqualsToken */: - case 44 /* CaretToken */: - case 62 /* CaretEqualsToken */: - case 42 /* AmpersandToken */: - case 60 /* AmpersandEqualsToken */: - if (leftType.flags & (32 /* Undefined */ | 64 /* Null */)) - leftType = rightType; - if (rightType.flags & (32 /* Undefined */ | 64 /* Null */)) - rightType = leftType; - var suggestedOperator; - if ((leftType.flags & 8 /* Boolean */) && (rightType.flags & 8 /* Boolean */) && (suggestedOperator = getSuggestedBooleanOperator(node.operator)) !== undefined) { - error(node, ts.Diagnostics.The_0_operator_is_not_allowed_for_boolean_types_Consider_using_1_instead, ts.tokenToString(node.operator), 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 32 /* PlusToken */: - case 52 /* PlusEqualsToken */: - if (leftType.flags & (32 /* Undefined */ | 64 /* Null */)) - leftType = rightType; - if (rightType.flags & (32 /* Undefined */ | 64 /* Null */)) - rightType = leftType; - var resultType; - if (leftType.flags & 132 /* NumberLike */ && rightType.flags & 132 /* NumberLike */) { - resultType = numberType; - } - else if (leftType.flags & 258 /* StringLike */ || rightType.flags & 258 /* StringLike */) { - resultType = stringType; - } - else if (leftType.flags & 1 /* Any */ || leftType === unknownType || rightType.flags & 1 /* Any */ || rightType === unknownType) { - resultType = anyType; - } - if (!resultType) { - reportOperatorError(); - return anyType; - } - if (operator === 52 /* PlusEqualsToken */) { - checkAssignmentOperator(resultType); - } - return resultType; - case 27 /* EqualsEqualsToken */: - case 28 /* ExclamationEqualsToken */: - case 29 /* EqualsEqualsEqualsToken */: - case 30 /* ExclamationEqualsEqualsToken */: - case 23 /* LessThanToken */: - case 24 /* GreaterThanToken */: - case 25 /* LessThanEqualsToken */: - case 26 /* GreaterThanEqualsToken */: - if (!isTypeAssignableTo(leftType, rightType) && !isTypeAssignableTo(rightType, leftType)) { - reportOperatorError(); - } - return booleanType; - case 85 /* InstanceOfKeyword */: - return checkInstanceOfExpression(node, leftType, rightType); - case 84 /* InKeyword */: - return checkInExpression(node, leftType, rightType); - case 47 /* AmpersandAmpersandToken */: - return rightType; - case 48 /* BarBarToken */: - return getUnionType([leftType, rightType]); - case 51 /* EqualsToken */: - checkAssignmentOperator(rightType); - return rightType; - case 22 /* CommaToken */: - return rightType; - } - function getSuggestedBooleanOperator(operator) { - switch (operator) { - case 43 /* BarToken */: - case 61 /* BarEqualsToken */: - return 48 /* BarBarToken */; - case 44 /* CaretToken */: - case 62 /* CaretEqualsToken */: - return 30 /* ExclamationEqualsEqualsToken */; - case 42 /* AmpersandToken */: - case 60 /* AmpersandEqualsToken */: - return 47 /* AmpersandAmpersandToken */; - default: - return undefined; - } - } - function checkAssignmentOperator(valueType) { - if (fullTypeCheck && operator >= 51 /* FirstAssignment */ && operator <= 62 /* LastAssignment */) { - 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.operator), typeToString(leftType), typeToString(rightType)); - } - } - 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 checkAndMarkExpression(node, contextualMapper) { - var result = checkExpression(node, contextualMapper); - getNodeLinks(node).flags |= 1 /* TypeChecked */; - return result; - } - function checkExpression(node, contextualMapper) { - var type = checkExpressionNode(node, 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) { - type = getOrCreateTypeFromSignature(instantiateSignatureInContextOf(signature, contextualSignature, contextualMapper)); - } - } - } - } - if (isConstEnumObjectType(type)) { - var ok = (node.parent.kind === 145 /* PropertyAccess */ && node.parent.left === node) || (node.parent.kind === 146 /* IndexedAccess */ && node.parent.object === node) || ((node.kind === 63 /* Identifier */ || node.kind === 121 /* QualifiedName */) && 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 checkExpressionNode(node, contextualMapper) { - switch (node.kind) { - case 63 /* Identifier */: - return checkIdentifier(node); - case 91 /* ThisKeyword */: - return checkThisExpression(node); - case 89 /* SuperKeyword */: - return checkSuperExpression(node); - case 87 /* NullKeyword */: - return nullType; - case 93 /* TrueKeyword */: - case 78 /* FalseKeyword */: - return booleanType; - case 6 /* NumericLiteral */: - return numberType; - case 158 /* TemplateExpression */: - return checkTemplateExpression(node); - case 7 /* StringLiteral */: - case 9 /* NoSubstitutionTemplateLiteral */: - return stringType; - case 8 /* RegularExpressionLiteral */: - return globalRegExpType; - case 121 /* QualifiedName */: - return checkPropertyAccess(node); - case 141 /* ArrayLiteral */: - return checkArrayLiteral(node, contextualMapper); - case 142 /* ObjectLiteral */: - return checkObjectLiteral(node, contextualMapper); - case 145 /* PropertyAccess */: - return checkPropertyAccess(node); - case 146 /* IndexedAccess */: - return checkIndexedAccess(node); - case 147 /* CallExpression */: - case 148 /* NewExpression */: - return checkCallExpression(node); - case 149 /* TaggedTemplateExpression */: - return checkTaggedTemplateExpression(node); - case 150 /* TypeAssertion */: - return checkTypeAssertion(node); - case 151 /* ParenExpression */: - return checkExpression(node.expression); - case 152 /* FunctionExpression */: - case 153 /* ArrowFunction */: - return checkFunctionExpression(node, contextualMapper); - case 154 /* PrefixOperator */: - return checkPrefixExpression(node); - case 155 /* PostfixOperator */: - return checkPostfixExpression(node); - case 156 /* BinaryExpression */: - return checkBinaryExpression(node, contextualMapper); - case 157 /* ConditionalExpression */: - return checkConditionalExpression(node, contextualMapper); - case 161 /* OmittedExpression */: - return undefinedType; - } - return unknownType; - } - function checkTypeParameter(node) { - checkSourceElement(node.constraint); - if (fullTypeCheck) { - checkTypeParameterHasIllegalReferencesInConstraint(node); - checkTypeNameIsReserved(node.name, ts.Diagnostics.Type_parameter_name_cannot_be_0); - } - } - function checkParameter(parameterDeclaration) { - checkVariableDeclaration(parameterDeclaration); - if (fullTypeCheck) { - checkCollisionWithIndexVariableInGeneratedCode(parameterDeclaration, parameterDeclaration.name); - if (parameterDeclaration.flags & (16 /* Public */ | 32 /* Private */ | 64 /* Protected */) && !(parameterDeclaration.parent.kind === 126 /* Constructor */ && parameterDeclaration.parent.body)) { - error(parameterDeclaration, ts.Diagnostics.A_parameter_property_is_only_allowed_in_a_constructor_implementation); - } - if (parameterDeclaration.flags & 8 /* Rest */) { - if (!isArrayType(getTypeOfSymbol(parameterDeclaration.symbol))) { - error(parameterDeclaration, ts.Diagnostics.A_rest_parameter_must_be_of_an_array_type); - } - } - else { - if (parameterDeclaration.initializer && !parameterDeclaration.parent.body) { - error(parameterDeclaration, ts.Diagnostics.A_parameter_initializer_is_only_allowed_in_a_function_or_constructor_implementation); - } - } - } - function checkReferencesInInitializer(n) { - if (n.kind === 63 /* Identifier */) { - var referencedSymbol = getNodeLinks(n).resolvedSymbol; - if (referencedSymbol && referencedSymbol !== unknownSymbol && getSymbol(parameterDeclaration.parent.locals, referencedSymbol.name, 107455 /* Value */) === referencedSymbol) { - if (referencedSymbol.valueDeclaration.kind === 123 /* Parameter */) { - if (referencedSymbol.valueDeclaration === parameterDeclaration) { - error(n, ts.Diagnostics.Parameter_0_cannot_be_referenced_in_its_initializer, ts.declarationNameToString(parameterDeclaration.name)); - return; - } - var enclosingOrReferencedParameter = ts.forEach(parameterDeclaration.parent.parameters, function (p) { return p === parameterDeclaration || p === referencedSymbol.valueDeclaration ? p : undefined; }); - if (enclosingOrReferencedParameter === referencedSymbol.valueDeclaration) { - return; - } - } - error(n, ts.Diagnostics.Initializer_of_parameter_0_cannot_reference_identifier_1_declared_after_it, ts.declarationNameToString(parameterDeclaration.name), ts.declarationNameToString(n)); - } - } - else { - ts.forEachChild(n, checkReferencesInInitializer); - } - } - if (parameterDeclaration.initializer) { - checkReferencesInInitializer(parameterDeclaration.initializer); - } - } - function checkSignatureDeclaration(node) { - checkTypeParameters(node.typeParameters); - ts.forEach(node.parameters, checkParameter); - if (node.type) { - checkSourceElement(node.type); - } - if (fullTypeCheck) { - checkCollisionWithCapturedSuperVariable(node, node.name); - checkCollisionWithCapturedThisVariable(node, node.name); - checkCollisionWithRequireExportsInGeneratedCode(node, node.name); - checkCollisionWithArgumentsInGeneratedCode(node); - if (compilerOptions.noImplicitAny && !node.type) { - switch (node.kind) { - case 130 /* ConstructSignature */: - error(node, ts.Diagnostics.Construct_signature_which_lacks_return_type_annotation_implicitly_has_an_any_return_type); - break; - case 129 /* CallSignature */: - 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 === 189 /* InterfaceDeclaration */) { - 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, len = indexSymbol.declarations.length; i < len; ++i) { - var declaration = indexSymbol.declarations[i]; - if (declaration.parameters.length == 1 && declaration.parameters[0].type) { - switch (declaration.parameters[0].type.kind) { - case 118 /* StringKeyword */: - if (!seenStringIndexer) { - seenStringIndexer = true; - } - else { - error(declaration, ts.Diagnostics.Duplicate_string_index_signature); - } - break; - case 116 /* NumberKeyword */: - if (!seenNumericIndexer) { - seenNumericIndexer = true; - } - else { - error(declaration, ts.Diagnostics.Duplicate_number_index_signature); - } - break; - } - } - } - } - } - function checkPropertyDeclaration(node) { - checkVariableDeclaration(node); - } - function checkMethodDeclaration(node) { - checkFunctionDeclaration(node); - } - function checkConstructorDeclaration(node) { - checkSignatureDeclaration(node); - checkSourceElement(node.body); - var symbol = getSymbolOfNode(node); - var firstDeclaration = getDeclarationOfKind(symbol, node.kind); - if (node === firstDeclaration) { - checkFunctionOrConstructorSymbol(symbol); - } - if (!node.body) { - return; - } - if (!fullTypeCheck) { - return; - } - function isSuperCallExpression(n) { - return n.kind === 147 /* CallExpression */ && n.func.kind === 89 /* SuperKeyword */; - } - function containsSuperCall(n) { - if (isSuperCallExpression(n)) { - return true; - } - switch (n.kind) { - case 152 /* FunctionExpression */: - case 186 /* FunctionDeclaration */: - case 153 /* ArrowFunction */: - case 142 /* ObjectLiteral */: return false; - default: return ts.forEachChild(n, containsSuperCall); - } - } - function markThisReferencesAsErrors(n) { - if (n.kind === 91 /* ThisKeyword */) { - error(n, ts.Diagnostics.this_cannot_be_referenced_in_current_location); - } - else if (n.kind !== 152 /* FunctionExpression */ && n.kind !== 186 /* FunctionDeclaration */) { - ts.forEachChild(n, markThisReferencesAsErrors); - } - } - function isInstancePropertyWithInitializer(n) { - return n.kind === 124 /* Property */ && !(n.flags & 128 /* Static */) && !!n.initializer; - } - if (node.parent.baseType) { - if (containsSuperCall(node.body)) { - var superCallShouldBeFirst = ts.forEach(node.parent.members, isInstancePropertyWithInitializer) || ts.forEach(node.parameters, function (p) { return p.flags & (16 /* Public */ | 32 /* Private */ | 64 /* Protected */); }); - if (superCallShouldBeFirst) { - var statements = node.body.statements; - if (!statements.length || statements[0].kind !== 165 /* ExpressionStatement */ || !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 (fullTypeCheck) { - if (node.kind === 127 /* GetAccessor */) { - if (!ts.isInAmbientContext(node) && 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); - } - } - var otherKind = node.kind === 127 /* GetAccessor */ ? 128 /* SetAccessor */ : 127 /* GetAccessor */; - var otherAccessor = getDeclarationOfKind(node.symbol, otherKind); - if (otherAccessor) { - if (((node.flags & 112 /* AccessibilityModifier */) !== (otherAccessor.flags & 112 /* AccessibilityModifier */))) { - error(node.name, ts.Diagnostics.Getter_and_setter_accessors_do_not_agree_in_visibility); - } - var thisType = getAnnotatedAccessorType(node); - var otherType = getAnnotatedAccessorType(otherAccessor); - if (thisType && otherType) { - if (!isTypeIdenticalTo(thisType, otherType)) { - error(node, ts.Diagnostics.get_and_set_accessor_must_have_the_same_type); - } - } - } - } - checkFunctionDeclaration(node); - checkAndStoreTypeOfAccessors(getSymbolOfNode(node)); - } - function checkTypeReference(node) { - 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 (fullTypeCheck && 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 (fullTypeCheck) { - var type = getTypeFromTypeLiteralOrFunctionOrConstructorTypeNode(node); - checkIndexConstraints(type); - checkTypeForDuplicateIndexSignatures(node); - } - } - function checkArrayType(node) { - checkSourceElement(node.elementType); - } - function checkTupleType(node) { - ts.forEach(node.elementTypes, checkSourceElement); - } - function checkUnionType(node) { - ts.forEach(node.types, checkSourceElement); - } - function isPrivateWithinAmbient(node) { - return (node.flags & 32 /* Private */) && ts.isInAmbientContext(node); - } - function checkSpecializedSignatureDeclaration(signatureDeclarationNode) { - if (!fullTypeCheck) { - return; - } - var signature = getSignatureFromDeclaration(signatureDeclarationNode); - if (!signature.hasStringLiterals) { - return; - } - if (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 === 189 /* InterfaceDeclaration */) { - ts.Debug.assert(signatureDeclarationNode.kind === 129 /* CallSignature */ || signatureDeclarationNode.kind === 130 /* ConstructSignature */); - var signatureKind = signatureDeclarationNode.kind === 129 /* CallSignature */ ? 0 /* Call */ : 1 /* Construct */; - 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 = n.flags; - if (n.parent.kind !== 189 /* InterfaceDeclaration */ && ts.isInAmbientContext(n)) { - if (!(flags & 2 /* Ambient */)) { - flags |= 1 /* Export */; - } - flags |= 2 /* Ambient */; - } - return flags & flagsToCheck; - } - function checkFunctionOrConstructorSymbol(symbol) { - if (!fullTypeCheck) { - return; - } - function checkFlagAgreementBetweenOverloads(overloads, implementation, flagsToCheck, someOverloadFlags, allOverloadFlags) { - var someButNotAllOverloadFlags = someOverloadFlags ^ allOverloadFlags; - if (someButNotAllOverloadFlags !== 0) { - var implementationSharesContainerWithFirstOverload = implementation !== undefined && implementation.parent === overloads[0].parent; - var canonicalFlags = implementationSharesContainerWithFirstOverload ? getEffectiveDeclarationFlags(implementation, flagsToCheck) : getEffectiveDeclarationFlags(overloads[0], flagsToCheck); - ts.forEach(overloads, function (o) { - var deviation = getEffectiveDeclarationFlags(o, flagsToCheck) ^ canonicalFlags; - if (deviation & 1 /* Export */) { - error(o.name, ts.Diagnostics.Overload_signatures_must_all_be_exported_or_not_exported); - } - else if (deviation & 2 /* Ambient */) { - error(o.name, ts.Diagnostics.Overload_signatures_must_all_be_ambient_or_non_ambient); - } - else if (deviation & (32 /* Private */ | 64 /* Protected */)) { - error(o.name, ts.Diagnostics.Overload_signatures_must_all_be_public_private_or_protected); - } - else if (deviation & 4 /* QuestionMark */) { - error(o.name, ts.Diagnostics.Overload_signatures_must_all_be_optional_or_required); - } - }); - } - } - var flagsToCheck = 1 /* Export */ | 2 /* Ambient */ | 32 /* Private */ | 64 /* Protected */ | 4 /* QuestionMark */; - var someNodeFlags = 0; - var allNodeFlags = flagsToCheck; - var hasOverloads = false; - var bodyDeclaration; - var lastSeenNonAmbientDeclaration; - var previousDeclaration; - var declarations = symbol.declarations; - var isConstructor = (symbol.flags & 16384 /* Constructor */) !== 0; - function reportImplementationExpectedError(node) { - if (node.name && node.name.kind === 120 /* Missing */) { - 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 = subsequentNode.name || subsequentNode; - if (node.name && subsequentNode.name && node.name.text === subsequentNode.name.text) { - ts.Debug.assert(node.kind === 125 /* Method */); - ts.Debug.assert((node.flags & 128 /* Static */) !== (subsequentNode.flags & 128 /* Static */)); - var diagnostic = node.flags & 128 /* Static */ ? ts.Diagnostics.Function_overload_must_be_static : ts.Diagnostics.Function_overload_must_not_be_static; - error(errorNode, diagnostic); - return; - } - else if (subsequentNode.body) { - error(errorNode, 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 /* Module */; - var duplicateFunctionDeclaration = false; - var multipleConstructorImplementation = false; - for (var i = 0; i < declarations.length; i++) { - var node = declarations[i]; - var inAmbientContext = ts.isInAmbientContext(node); - var inAmbientContextOrInterface = node.parent.kind === 189 /* InterfaceDeclaration */ || node.parent.kind === 136 /* TypeLiteral */ || inAmbientContext; - if (inAmbientContextOrInterface) { - previousDeclaration = undefined; - } - if (node.kind === 186 /* FunctionDeclaration */ || node.kind === 125 /* Method */ || node.kind === 126 /* Constructor */) { - var currentNodeFlags = getEffectiveDeclarationFlags(node, flagsToCheck); - someNodeFlags |= currentNodeFlags; - allNodeFlags &= currentNodeFlags; - if (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 (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); - if (bodyDeclaration) { - var signatures = getSignaturesOfSymbol(symbol); - var bodySignature = getSignatureFromDeclaration(bodyDeclaration); - if (!bodySignature.hasStringLiterals) { - for (var i = 0, len = signatures.length; i < len; ++i) { - if (!signatures[i].hasStringLiterals && !isSignatureAssignableTo(bodySignature, signatures[i])) { - error(signatures[i].declaration, ts.Diagnostics.Overload_signature_is_not_compatible_with_function_implementation); - break; - } - } - } - } - } - } - function checkExportsOnMergedDeclarations(node) { - if (!fullTypeCheck) { - return; - } - var symbol; - var symbol = node.localSymbol; - if (!symbol) { - symbol = getSymbolOfNode(node); - if (!(symbol.flags & 29360128 /* Export */)) { - return; - } - } - if (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 /* Export */)) { - 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 189 /* InterfaceDeclaration */: - return 8388608 /* ExportType */; - case 192 /* ModuleDeclaration */: - return d.name.kind === 7 /* StringLiteral */ || ts.getModuleInstanceState(d) !== 0 /* NonInstantiated */ ? 16777216 /* ExportNamespace */ | 4194304 /* ExportValue */ : 16777216 /* ExportNamespace */; - case 188 /* ClassDeclaration */: - case 191 /* EnumDeclaration */: - return 8388608 /* ExportType */ | 4194304 /* ExportValue */; - case 194 /* ImportDeclaration */: - var result = 0; - var target = resolveImport(getSymbolOfNode(d)); - ts.forEach(target.declarations, function (d) { - result |= getDeclarationSpaces(d); - }); - return result; - default: - return 4194304 /* ExportValue */; - } - } - } - function checkFunctionDeclaration(node) { - checkSignatureDeclaration(node); - var symbol = getSymbolOfNode(node); - var localSymbol = node.localSymbol || symbol; - var firstDeclaration = getDeclarationOfKind(localSymbol, node.kind); - if (node === firstDeclaration) { - checkFunctionOrConstructorSymbol(localSymbol); - } - if (symbol.parent) { - if (getDeclarationOfKind(symbol, node.kind) === node) { - checkFunctionOrConstructorSymbol(symbol); - } - } - checkSourceElement(node.body); - if (node.type && !isAccessor(node.kind)) { - checkIfNonVoidFunctionHasReturnExpressionsOrSingleThrowStatment(node, getTypeFromTypeNode(node.type)); - } - if (fullTypeCheck && compilerOptions.noImplicitAny && !node.body && !node.type) { - if (!isPrivateWithinAmbient(node)) { - var typeName = typeToString(anyType); - if (node.name) { - error(node, ts.Diagnostics._0_which_lacks_return_type_annotation_implicitly_has_an_1_return_type, ts.declarationNameToString(node.name), typeName); - } - else { - error(node, ts.Diagnostics.Function_expression_which_lacks_return_type_annotation_implicitly_has_an_0_return_type, typeName); - } - } - } - } - function checkBlock(node) { - ts.forEach(node.statements, checkSourceElement); - } - function checkCollisionWithArgumentsInGeneratedCode(node) { - if (!ts.hasRestParameters(node) || ts.isInAmbientContext(node) || !node.body) { - return; - } - ts.forEach(node.parameters, function (p) { - if (p.name && p.name.text === argumentsSymbol.name) { - error(p, ts.Diagnostics.Duplicate_identifier_arguments_Compiler_uses_arguments_to_initialize_rest_parameters); - } - }); - } - function checkCollisionWithIndexVariableInGeneratedCode(node, name) { - if (!(name && name.text === "_i")) { - return; - } - if (node.kind === 123 /* Parameter */) { - if (node.parent.body && ts.hasRestParameters(node.parent) && !ts.isInAmbientContext(node)) { - error(node, ts.Diagnostics.Duplicate_identifier_i_Compiler_uses_i_to_initialize_rest_parameter); - } - return; - } - var symbol = getNodeLinks(node).resolvedSymbol; - if (symbol === unknownSymbol) { - return; - } - var current = node; - while (current) { - var definedOnCurrentLevel = ts.forEach(symbol.declarations, function (d) { return d.parent === current ? d : undefined; }); - if (definedOnCurrentLevel) { - return; - } - switch (current.kind) { - case 186 /* FunctionDeclaration */: - case 152 /* FunctionExpression */: - case 125 /* Method */: - case 153 /* ArrowFunction */: - case 126 /* Constructor */: - if (ts.hasRestParameters(current)) { - error(node, ts.Diagnostics.Expression_resolves_to_variable_declaration_i_that_compiler_uses_to_initialize_rest_parameter); - return; - } - break; - } - current = current.parent; - } - } - function needCollisionCheckForIdentifier(node, identifier, name) { - if (!(identifier && identifier.text === name)) { - return false; - } - if (node.kind === 124 /* Property */ || node.kind === 125 /* Method */ || node.kind === 127 /* GetAccessor */ || node.kind === 128 /* SetAccessor */) { - return false; - } - if (ts.isInAmbientContext(node)) { - return false; - } - if (node.kind === 123 /* Parameter */ && !node.parent.body) { - return false; - } - return true; - } - function checkCollisionWithCapturedThisVariable(node, name) { - if (!needCollisionCheckForIdentifier(node, name, "_this")) { - return; - } - potentialThisCollisions.push(node); - } - function checkIfThisIsCapturedInEnclosingScope(node) { - var current = node; - while (current) { - if (getNodeCheckFlags(current) & 4 /* CaptureThis */) { - var isDeclaration = node.kind !== 63 /* Identifier */; - if (isDeclaration) { - 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, 188 /* ClassDeclaration */); - if (!enclosingClass || ts.isInAmbientContext(enclosingClass)) { - return; - } - if (enclosingClass.baseType) { - var isDeclaration = node.kind !== 63 /* Identifier */; - if (isDeclaration) { - 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 === 192 /* ModuleDeclaration */ && ts.getModuleInstanceState(node) !== 1 /* Instantiated */) { - return; - } - var parent = node.kind === 185 /* VariableDeclaration */ ? node.parent.parent : node.parent; - if (parent.kind === 197 /* SourceFile */ && 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 checkCollisionWithConstDeclarations(node) { - if (node.initializer && (node.flags & 6144 /* BlockScoped */) === 0) { - var symbol = getSymbolOfNode(node); - if (symbol.flags & 1 /* FunctionScopedVariable */) { - var localDeclarationSymbol = resolveName(node, node.name.text, 3 /* Variable */, undefined, undefined); - if (localDeclarationSymbol && localDeclarationSymbol !== symbol && localDeclarationSymbol.flags & 2 /* BlockScopedVariable */) { - if (getDeclarationFlagsFromSymbol(localDeclarationSymbol) & 4096 /* Const */) { - error(node, ts.Diagnostics.Cannot_redeclare_block_scoped_variable_0, symbolToString(localDeclarationSymbol)); - } - } - } - } - } - function checkVariableDeclaration(node) { - checkSourceElement(node.type); - checkExportsOnMergedDeclarations(node); - if (fullTypeCheck) { - var symbol = getSymbolOfNode(node); - var typeOfValueDeclaration = getTypeOfVariableOrParameterOrProperty(symbol); - var type; - var useTypeFromValueDeclaration = node === symbol.valueDeclaration; - if (useTypeFromValueDeclaration) { - type = typeOfValueDeclaration; - } - else { - type = getTypeOfVariableOrPropertyDeclaration(node); - } - if (node.initializer) { - if (!(getNodeLinks(node.initializer).flags & 1 /* TypeChecked */)) { - checkTypeAssignableTo(checkAndMarkExpression(node.initializer), type, node, undefined); - } - checkCollisionWithConstDeclarations(node); - } - checkCollisionWithCapturedSuperVariable(node, node.name); - checkCollisionWithCapturedThisVariable(node, node.name); - checkCollisionWithRequireExportsInGeneratedCode(node, node.name); - if (!useTypeFromValueDeclaration) { - if (typeOfValueDeclaration !== unknownType && type !== unknownType && !isTypeIdenticalTo(typeOfValueDeclaration, type)) { - 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(typeOfValueDeclaration), typeToString(type)); - } - } - } - } - function checkVariableStatement(node) { - ts.forEach(node.declarations, checkVariableDeclaration); - } - function checkExpressionStatement(node) { - checkExpression(node.expression); - } - function checkIfStatement(node) { - checkExpression(node.expression); - checkSourceElement(node.thenStatement); - checkSourceElement(node.elseStatement); - } - function checkDoStatement(node) { - checkSourceElement(node.statement); - checkExpression(node.expression); - } - function checkWhileStatement(node) { - checkExpression(node.expression); - checkSourceElement(node.statement); - } - function checkForStatement(node) { - if (node.declarations) - ts.forEach(node.declarations, checkVariableDeclaration); - if (node.initializer) - checkExpression(node.initializer); - if (node.condition) - checkExpression(node.condition); - if (node.iterator) - checkExpression(node.iterator); - checkSourceElement(node.statement); - } - function checkForInStatement(node) { - if (node.declarations) { - if (node.declarations.length >= 1) { - var decl = node.declarations[0]; - checkVariableDeclaration(decl); - if (decl.type) { - error(decl, ts.Diagnostics.The_left_hand_side_of_a_for_in_statement_cannot_use_a_type_annotation); - } - } - } - if (node.variable) { - var exprType = checkExpression(node.variable); - if (exprType !== anyType && exprType !== stringType) { - error(node.variable, ts.Diagnostics.The_left_hand_side_of_a_for_in_statement_must_be_of_type_string_or_any); - } - else { - checkReferenceExpression(node.variable, ts.Diagnostics.Invalid_left_hand_side_in_for_in_statement, ts.Diagnostics.Left_hand_side_of_assignment_expression_cannot_be_a_constant); - } - } - var exprType = checkExpression(node.expression); - if (!isStructuredType(exprType) && exprType !== unknownType) { - 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 checkBreakOrContinueStatement(node) { - } - function checkReturnStatement(node) { - if (node.expression && !(getNodeLinks(node.expression).flags & 1 /* TypeChecked */)) { - var func = ts.getContainingFunction(node); - if (func) { - if (func.kind === 128 /* SetAccessor */) { - if (node.expression) { - error(node.expression, ts.Diagnostics.Setters_cannot_return_a_value); - } - } - else { - var returnType = getReturnTypeOfSignature(getSignatureFromDeclaration(func)); - var checkAssignability = func.type || (func.kind === 127 /* GetAccessor */ && getSetAccessorTypeAnnotationNode(getDeclarationOfKind(func.symbol, 128 /* SetAccessor */))); - if (checkAssignability) { - checkTypeAssignableTo(checkExpression(node.expression), returnType, node.expression, undefined); - } - else if (func.kind == 126 /* Constructor */) { - if (!isTypeAssignableTo(checkExpression(node.expression), returnType)) { - error(node.expression, ts.Diagnostics.Return_type_of_constructor_signature_must_be_assignable_to_the_instance_type_of_the_class); - } - } - } - } - } - } - function checkWithStatement(node) { - checkExpression(node.expression); - error(node.expression, ts.Diagnostics.All_symbols_within_a_with_block_will_be_resolved_to_any); - } - function checkSwitchStatement(node) { - var expressionType = checkExpression(node.expression); - ts.forEach(node.clauses, function (clause) { - if (fullTypeCheck && clause.expression) { - var caseType = checkExpression(clause.expression); - if (!isTypeAssignableTo(expressionType, caseType)) { - checkTypeAssignableTo(caseType, expressionType, clause.expression, undefined); - } - } - checkBlock(clause); - }); - } - function checkLabeledStatement(node) { - checkSourceElement(node.statement); - } - function checkThrowStatement(node) { - checkExpression(node.expression); - } - function checkTryStatement(node) { - checkBlock(node.tryBlock); - if (node.catchBlock) - checkBlock(node.catchBlock); - if (node.finallyBlock) - checkBlock(node.finallyBlock); - } - function checkIndexConstraints(type) { - function checkIndexConstraintForProperty(prop, propertyType, indexDeclaration, indexType, indexKind) { - if (!indexType) { - return; - } - if (indexKind === 1 /* Number */ && !isNumericName(prop.name)) { - return; - } - var errorNode; - if (prop.parent === type.symbol) { - errorNode = prop.valueDeclaration; - } - else if (indexDeclaration) { - errorNode = indexDeclaration; - } - else if (type.flags & 2048 /* Interface */) { - var someBaseClassHasBothPropertyAndIndexer = ts.forEach(type.baseTypes, function (base) { return getPropertyOfObjectType(base, prop.name) && getIndexTypeOfType(base, indexKind); }); - errorNode = someBaseClassHasBothPropertyAndIndexer ? undefined : type.symbol.declarations[0]; - } - if (errorNode && !isTypeAssignableTo(propertyType, indexType)) { - var errorMessage = indexKind === 0 /* String */ ? 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)); - } - } - var declaredNumberIndexer = getIndexDeclarationOfSymbol(type.symbol, 1 /* Number */); - var declaredStringIndexer = getIndexDeclarationOfSymbol(type.symbol, 0 /* String */); - var stringIndexType = getIndexTypeOfType(type, 0 /* String */); - var numberIndexType = getIndexTypeOfType(type, 1 /* Number */); - if (stringIndexType || numberIndexType) { - ts.forEach(getPropertiesOfObjectType(type), function (prop) { - var propType = getTypeOfSymbol(prop); - checkIndexConstraintForProperty(prop, propType, declaredStringIndexer, stringIndexType, 0 /* String */); - checkIndexConstraintForProperty(prop, propType, declaredNumberIndexer, numberIndexType, 1 /* Number */); - }); - } - var errorNode; - if (stringIndexType && numberIndexType) { - errorNode = declaredNumberIndexer || declaredStringIndexer; - if (!errorNode && (type.flags & 2048 /* Interface */)) { - var someBaseTypeHasBothIndexers = ts.forEach(type.baseTypes, function (base) { return getIndexTypeOfType(base, 0 /* String */) && getIndexTypeOfType(base, 1 /* Number */); }); - 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 checkTypeNameIsReserved(name, message) { - switch (name.text) { - case "any": - case "number": - case "boolean": - case "string": - case "void": - error(name, message, name.text); - } - } - function checkTypeParameters(typeParameterDeclarations) { - if (typeParameterDeclarations) { - for (var i = 0; i < typeParameterDeclarations.length; i++) { - var node = typeParameterDeclarations[i]; - checkTypeParameter(node); - if (fullTypeCheck) { - 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) { - checkTypeNameIsReserved(node.name, ts.Diagnostics.Class_name_cannot_be_0); - checkTypeParameters(node.typeParameters); - checkCollisionWithCapturedThisVariable(node, node.name); - checkCollisionWithRequireExportsInGeneratedCode(node, node.name); - checkExportsOnMergedDeclarations(node); - var symbol = getSymbolOfNode(node); - var type = getDeclaredTypeOfSymbol(symbol); - var staticType = getTypeOfSymbol(symbol); - if (node.baseType) { - emitExtends = emitExtends || !ts.isInAmbientContext(node); - checkTypeReference(node.baseType); - } - if (type.baseTypes.length) { - if (fullTypeCheck) { - var baseType = type.baseTypes[0]; - checkTypeAssignableTo(type, baseType, node.name, ts.Diagnostics.Class_0_incorrectly_extends_base_class_1); - var staticBaseType = getTypeOfSymbol(baseType.symbol); - checkTypeAssignableTo(staticType, getTypeWithoutConstructors(staticBaseType), node.name, ts.Diagnostics.Class_static_side_0_incorrectly_extends_base_class_static_side_1); - if (baseType.symbol !== resolveEntityName(node, node.baseType.typeName, 107455 /* Value */)) { - error(node.baseType, ts.Diagnostics.Type_name_0_in_extends_clause_does_not_reference_constructor_function_for_0, typeToString(baseType)); - } - checkKindsOfPropertyMemberOverrides(type, baseType); - } - checkExpression(node.baseType.typeName); - } - if (node.implementedTypes) { - ts.forEach(node.implementedTypes, function (typeRefNode) { - checkTypeReference(typeRefNode); - if (fullTypeCheck) { - var t = getTypeFromTypeReferenceNode(typeRefNode); - if (t !== unknownType) { - var declaredType = (t.flags & 4096 /* Reference */) ? t.target : t; - if (declaredType.flags & (1024 /* Class */ | 2048 /* Interface */)) { - checkTypeAssignableTo(type, t, node.name, 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 (fullTypeCheck) { - checkIndexConstraints(type); - checkTypeForDuplicateIndexSignatures(node); - } - } - function getTargetSymbol(s) { - return s.flags & 67108864 /* Instantiated */ ? getSymbolLinks(s).target : s; - } - function checkKindsOfPropertyMemberOverrides(type, baseType) { - var baseProperties = getPropertiesOfObjectType(baseType); - for (var i = 0, len = baseProperties.length; i < len; ++i) { - var base = getTargetSymbol(baseProperties[i]); - if (base.flags & 536870912 /* Prototype */) { - continue; - } - var derived = getTargetSymbol(getPropertyOfObjectType(type, base.name)); - if (derived) { - var baseDeclarationFlags = getDeclarationFlagsFromSymbol(base); - var derivedDeclarationFlags = getDeclarationFlagsFromSymbol(derived); - if ((baseDeclarationFlags & 32 /* Private */) || (derivedDeclarationFlags & 32 /* Private */)) { - continue; - } - if ((baseDeclarationFlags & 128 /* Static */) !== (derivedDeclarationFlags & 128 /* Static */)) { - continue; - } - if ((base.flags & derived.flags & 8192 /* Method */) || ((base.flags & 98308 /* PropertyOrAccessor */) && (derived.flags & 98308 /* PropertyOrAccessor */))) { - continue; - } - var errorMessage; - if (base.flags & 8192 /* Method */) { - if (derived.flags & 98304 /* Accessor */) { - 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 /* Property */) !== 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 /* Property */) { - ts.Debug.assert((derived.flags & 8192 /* Method */) !== 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 /* Accessor */) !== 0); - ts.Debug.assert((derived.flags & 8192 /* Method */) !== 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 === 127 /* GetAccessor */ || kind === 128 /* SetAccessor */; - } - 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, len = type.baseTypes.length; i < len; ++i) { - var base = type.baseTypes[i]; - var properties = getPropertiesOfObjectType(base); - for (var j = 0, proplen = properties.length; j < proplen; ++j) { - var prop = properties[j]; - 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_properties_0_of_types_1_and_2_are_not_identical, prop.name, typeName1, typeName2); - errorInfo = ts.chainDiagnosticMessages(errorInfo, ts.Diagnostics.Interface_0_cannot_simultaneously_extend_types_1_and_2, typeToString(type), typeName1, typeName2); - addDiagnostic(ts.createDiagnosticForNodeFromMessageChain(typeNode, errorInfo, program.getCompilerHost().getNewLine())); - } - } - } - } - return ok; - } - function checkInterfaceDeclaration(node) { - checkTypeParameters(node.typeParameters); - if (fullTypeCheck) { - checkTypeNameIsReserved(node.name, ts.Diagnostics.Interface_name_cannot_be_0); - checkExportsOnMergedDeclarations(node); - var symbol = getSymbolOfNode(node); - var firstInterfaceDecl = getDeclarationOfKind(symbol, 189 /* InterfaceDeclaration */); - 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(node.baseTypes, checkTypeReference); - ts.forEach(node.members, checkSourceElement); - if (fullTypeCheck) { - checkTypeForDuplicateIndexSignatures(node); - } - } - function checkTypeAliasDeclaration(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 /* EnumValuesComputed */)) { - 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 (isNumericName(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, enumIsConst); - 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 /* EnumValuesComputed */; - } - function getConstantValueForEnumMemberInitializer(initializer, enumIsConst) { - return evalConstant(initializer); - function evalConstant(e) { - switch (e.kind) { - case 154 /* PrefixOperator */: - var value = evalConstant(e.operand); - if (value === undefined) { - return undefined; - } - switch (e.operator) { - case 32 /* PlusToken */: return value; - case 33 /* MinusToken */: return -value; - case 46 /* TildeToken */: return enumIsConst ? ~value : undefined; - } - return undefined; - case 156 /* BinaryExpression */: - if (!enumIsConst) { - return undefined; - } - var left = evalConstant(e.left); - if (left === undefined) { - return undefined; - } - var right = evalConstant(e.right); - if (right === undefined) { - return undefined; - } - switch (e.operator) { - case 43 /* BarToken */: return left | right; - case 42 /* AmpersandToken */: return left & right; - case 40 /* GreaterThanGreaterThanToken */: return left >> right; - case 41 /* GreaterThanGreaterThanGreaterThanToken */: return left >>> right; - case 39 /* LessThanLessThanToken */: return left << right; - case 44 /* CaretToken */: return left ^ right; - case 34 /* AsteriskToken */: return left * right; - case 35 /* SlashToken */: return left / right; - case 32 /* PlusToken */: return left + right; - case 33 /* MinusToken */: return left - right; - case 36 /* PercentToken */: return left % right; - } - return undefined; - case 6 /* NumericLiteral */: - return +e.text; - case 151 /* ParenExpression */: - return enumIsConst ? evalConstant(e.expression) : undefined; - case 63 /* Identifier */: - case 146 /* IndexedAccess */: - case 145 /* PropertyAccess */: - if (!enumIsConst) { - return undefined; - } - var member = initializer.parent; - var currentType = getTypeOfSymbol(getSymbolOfNode(member.parent)); - var enumType; - var propertyName; - if (e.kind === 63 /* Identifier */) { - enumType = currentType; - propertyName = e.text; - } - else { - if (e.kind === 146 /* IndexedAccess */) { - if (e.index.kind !== 7 /* StringLiteral */) { - return undefined; - } - var enumType = getTypeOfNode(e.object); - propertyName = e.index.text; - } - else { - var enumType = getTypeOfNode(e.left); - propertyName = e.right.text; - } - if (enumType !== currentType) { - return undefined; - } - } - if (propertyName === undefined) { - return undefined; - } - var property = getPropertyOfObjectType(enumType, propertyName); - if (!property || !(property.flags & 8 /* EnumMember */)) { - 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 (!fullTypeCheck) { - return; - } - 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 = 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 !== 191 /* EnumDeclaration */) { - 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 === 188 /* ClassDeclaration */ || (declaration.kind === 186 /* FunctionDeclaration */ && declaration.body)) && !ts.isInAmbientContext(declaration)) { - return declaration; - } - } - return undefined; - } - function checkModuleDeclaration(node) { - if (fullTypeCheck) { - checkCollisionWithCapturedThisVariable(node, node.name); - checkCollisionWithRequireExportsInGeneratedCode(node, node.name); - checkExportsOnMergedDeclarations(node); - var symbol = getSymbolOfNode(node); - if (symbol.flags & 512 /* ValueModule */ && symbol.declarations.length > 1 && !ts.isInAmbientContext(node)) { - 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 === 7 /* StringLiteral */) { - 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 === 121 /* QualifiedName */) { - node = node.left; - } - return node; - } - function checkImportDeclaration(node) { - checkCollisionWithCapturedThisVariable(node, node.name); - checkCollisionWithRequireExportsInGeneratedCode(node, node.name); - var symbol = getSymbolOfNode(node); - var target; - if (node.entityName) { - target = resolveImport(symbol); - if (target !== unknownSymbol) { - if (target.flags & 107455 /* Value */) { - var moduleName = getFirstIdentifier(node.entityName); - if (resolveEntityName(node, moduleName, 107455 /* Value */ | 1536 /* Namespace */).flags & 1536 /* Namespace */) { - checkExpression(node.entityName); - } - else { - error(moduleName, ts.Diagnostics.Module_0_is_hidden_by_a_local_declaration_with_the_same_name, ts.declarationNameToString(moduleName)); - } - } - if (target.flags & 3152352 /* Type */) { - checkTypeNameIsReserved(node.name, ts.Diagnostics.Import_name_cannot_be_0); - } - } - } - else { - if (node.parent.kind === 197 /* SourceFile */) { - target = resolveImport(symbol); - } - else if (node.parent.kind === 193 /* ModuleBlock */ && node.parent.parent.name.kind === 7 /* StringLiteral */) { - if (isExternalModuleNameRelative(node.externalModuleName.text)) { - error(node, ts.Diagnostics.Import_declaration_in_an_ambient_external_module_declaration_cannot_reference_external_module_through_relative_external_module_name); - target = unknownSymbol; - } - else { - target = resolveImport(symbol); - } - } - else { - target = unknownSymbol; - } - } - if (target !== unknownSymbol) { - var excludedMeanings = (symbol.flags & 107455 /* Value */ ? 107455 /* Value */ : 0) | (symbol.flags & 3152352 /* Type */ ? 3152352 /* Type */ : 0) | (symbol.flags & 1536 /* Namespace */ ? 1536 /* Namespace */ : 0); - if (target.flags & excludedMeanings) { - error(node, ts.Diagnostics.Import_declaration_conflicts_with_local_declaration_of_0, symbolToString(symbol)); - } - } - } - function checkExportAssignment(node) { - var container = node.parent; - if (container.kind !== 197 /* SourceFile */) { - container = container.parent; - } - checkTypeOfExportAssignmentSymbol(getSymbolOfNode(container)); - } - function checkSourceElement(node) { - if (!node) - return; - switch (node.kind) { - case 122 /* TypeParameter */: - return checkTypeParameter(node); - case 123 /* Parameter */: - return checkParameter(node); - case 124 /* Property */: - return checkPropertyDeclaration(node); - case 133 /* FunctionType */: - case 134 /* ConstructorType */: - case 129 /* CallSignature */: - case 130 /* ConstructSignature */: - case 131 /* IndexSignature */: - return checkSignatureDeclaration(node); - case 125 /* Method */: - return checkMethodDeclaration(node); - case 126 /* Constructor */: - return checkConstructorDeclaration(node); - case 127 /* GetAccessor */: - case 128 /* SetAccessor */: - return checkAccessorDeclaration(node); - case 132 /* TypeReference */: - return checkTypeReference(node); - case 135 /* TypeQuery */: - return checkTypeQuery(node); - case 136 /* TypeLiteral */: - return checkTypeLiteral(node); - case 137 /* ArrayType */: - return checkArrayType(node); - case 138 /* TupleType */: - return checkTupleType(node); - case 139 /* UnionType */: - return checkUnionType(node); - case 140 /* ParenType */: - return checkSourceElement(node.type); - case 186 /* FunctionDeclaration */: - return checkFunctionDeclaration(node); - case 162 /* Block */: - return checkBlock(node); - case 187 /* FunctionBlock */: - case 193 /* ModuleBlock */: - return checkBody(node); - case 163 /* VariableStatement */: - return checkVariableStatement(node); - case 165 /* ExpressionStatement */: - return checkExpressionStatement(node); - case 166 /* IfStatement */: - return checkIfStatement(node); - case 167 /* DoStatement */: - return checkDoStatement(node); - case 168 /* WhileStatement */: - return checkWhileStatement(node); - case 169 /* ForStatement */: - return checkForStatement(node); - case 170 /* ForInStatement */: - return checkForInStatement(node); - case 171 /* ContinueStatement */: - case 172 /* BreakStatement */: - return checkBreakOrContinueStatement(node); - case 173 /* ReturnStatement */: - return checkReturnStatement(node); - case 174 /* WithStatement */: - return checkWithStatement(node); - case 175 /* SwitchStatement */: - return checkSwitchStatement(node); - case 178 /* LabeledStatement */: - return checkLabeledStatement(node); - case 179 /* ThrowStatement */: - return checkThrowStatement(node); - case 180 /* TryStatement */: - return checkTryStatement(node); - case 185 /* VariableDeclaration */: - return ts.Debug.fail("Checker encountered variable declaration"); - case 188 /* ClassDeclaration */: - return checkClassDeclaration(node); - case 189 /* InterfaceDeclaration */: - return checkInterfaceDeclaration(node); - case 190 /* TypeAliasDeclaration */: - return checkTypeAliasDeclaration(node); - case 191 /* EnumDeclaration */: - return checkEnumDeclaration(node); - case 192 /* ModuleDeclaration */: - return checkModuleDeclaration(node); - case 194 /* ImportDeclaration */: - return checkImportDeclaration(node); - case 195 /* ExportAssignment */: - return checkExportAssignment(node); - } - } - function checkFunctionExpressionBodies(node) { - switch (node.kind) { - case 152 /* FunctionExpression */: - case 153 /* ArrowFunction */: - ts.forEach(node.parameters, checkFunctionExpressionBodies); - checkFunctionExpressionBody(node); - break; - case 125 /* Method */: - case 126 /* Constructor */: - case 127 /* GetAccessor */: - case 128 /* SetAccessor */: - case 186 /* FunctionDeclaration */: - ts.forEach(node.parameters, checkFunctionExpressionBodies); - break; - case 174 /* WithStatement */: - checkFunctionExpressionBodies(node.expression); - break; - case 123 /* Parameter */: - case 124 /* Property */: - case 141 /* ArrayLiteral */: - case 142 /* ObjectLiteral */: - case 143 /* PropertyAssignment */: - case 145 /* PropertyAccess */: - case 146 /* IndexedAccess */: - case 147 /* CallExpression */: - case 148 /* NewExpression */: - case 149 /* TaggedTemplateExpression */: - case 150 /* TypeAssertion */: - case 151 /* ParenExpression */: - case 154 /* PrefixOperator */: - case 155 /* PostfixOperator */: - case 156 /* BinaryExpression */: - case 157 /* ConditionalExpression */: - case 162 /* Block */: - case 187 /* FunctionBlock */: - case 193 /* ModuleBlock */: - case 163 /* VariableStatement */: - case 165 /* ExpressionStatement */: - case 166 /* IfStatement */: - case 167 /* DoStatement */: - case 168 /* WhileStatement */: - case 169 /* ForStatement */: - case 170 /* ForInStatement */: - case 171 /* ContinueStatement */: - case 172 /* BreakStatement */: - case 173 /* ReturnStatement */: - case 175 /* SwitchStatement */: - case 176 /* CaseClause */: - case 177 /* DefaultClause */: - case 178 /* LabeledStatement */: - case 179 /* ThrowStatement */: - case 180 /* TryStatement */: - case 181 /* TryBlock */: - case 182 /* CatchBlock */: - case 183 /* FinallyBlock */: - case 185 /* VariableDeclaration */: - case 188 /* ClassDeclaration */: - case 191 /* EnumDeclaration */: - case 196 /* EnumMember */: - case 197 /* SourceFile */: - ts.forEachChild(node, checkFunctionExpressionBodies); - break; - } - } - function checkBody(node) { - checkBlock(node); - checkFunctionExpressionBodies(node); - } - function checkSourceFile(node) { - var links = getNodeLinks(node); - if (!(links.flags & 1 /* TypeChecked */)) { - emitExtends = false; - potentialThisCollisions.length = 0; - checkBody(node); - if (ts.isExternalModule(node)) { - var symbol = getExportAssignmentSymbol(node.symbol); - if (symbol && symbol.flags & 33554432 /* Import */) { - getSymbolLinks(symbol).referenced = true; - } - } - if (potentialThisCollisions.length) { - ts.forEach(potentialThisCollisions, checkIfThisIsCapturedInEnclosingScope); - potentialThisCollisions.length = 0; - } - if (emitExtends) - links.flags |= 8 /* EmitExtends */; - links.flags |= 1 /* TypeChecked */; - } - } - function checkProgram() { - ts.forEach(program.getSourceFiles(), checkSourceFile); - } - function getSortedDiagnostics() { - ts.Debug.assert(fullTypeCheck, "diagnostics are available only in the full typecheck mode"); - if (diagnosticsModified) { - diagnostics.sort(ts.compareDiagnostics); - diagnostics = ts.deduplicateSortedDiagnostics(diagnostics); - diagnosticsModified = false; - } - return diagnostics; - } - function getDiagnostics(sourceFile) { - if (sourceFile) { - checkSourceFile(sourceFile); - return ts.filter(getSortedDiagnostics(), function (d) { return d.file === sourceFile; }); - } - checkProgram(); - return getSortedDiagnostics(); - } - function getDeclarationDiagnostics(targetSourceFile) { - var resolver = createResolver(); - checkSourceFile(targetSourceFile); - return ts.getDeclarationDiagnostics(program, resolver, targetSourceFile); - } - function getGlobalDiagnostics() { - return ts.filter(getSortedDiagnostics(), function (d) { return !d.file; }); - } - function getNodeAtPosition(sourceFile, position) { - function findChildAtPosition(parent) { - var child = ts.forEachChild(parent, function (node) { - if (position >= node.pos && position <= node.end && position >= ts.getTokenPosOfNode(node)) { - return findChildAtPosition(node); - } - }); - return child || parent; - } - if (position < sourceFile.pos) - position = sourceFile.pos; - if (position > sourceFile.end) - position = sourceFile.end; - return findChildAtPosition(sourceFile); - } - function isInsideWithStatementBody(node) { - if (node) { - while (node.parent) { - if (node.parent.kind === 174 /* WithStatement */ && node.parent.statement === node) { - return true; - } - node = node.parent; - } - } - return false; - } - function getSymbolsInScope(location, meaning) { - var symbols = {}; - var memberFlags = 0; - 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 197 /* SourceFile */: - if (!ts.isExternalModule(location)) - break; - case 192 /* ModuleDeclaration */: - copySymbols(getSymbolOfNode(location).exports, meaning & 35653619 /* ModuleMember */); - break; - case 191 /* EnumDeclaration */: - copySymbols(getSymbolOfNode(location).exports, meaning & 8 /* EnumMember */); - break; - case 188 /* ClassDeclaration */: - case 189 /* InterfaceDeclaration */: - if (!(memberFlags & 128 /* Static */)) { - copySymbols(getSymbolOfNode(location).members, meaning & 3152352 /* Type */); - } - break; - case 152 /* FunctionExpression */: - if (location.name) { - copySymbol(location.symbol, meaning); - } - break; - case 182 /* CatchBlock */: - if (location.variable.text) { - copySymbol(location.symbol, meaning); - } - break; - } - memberFlags = location.flags; - location = location.parent; - } - copySymbols(globals, meaning); - return ts.mapToArray(symbols); - } - function isTypeDeclarationName(name) { - return name.kind == 63 /* Identifier */ && isTypeDeclaration(name.parent) && name.parent.name === name; - } - function isTypeDeclaration(node) { - switch (node.kind) { - case 122 /* TypeParameter */: - case 188 /* ClassDeclaration */: - case 189 /* InterfaceDeclaration */: - case 190 /* TypeAliasDeclaration */: - case 191 /* EnumDeclaration */: - return true; - } - } - function isTypeReferenceIdentifier(entityName) { - var node = entityName; - while (node.parent && node.parent.kind === 121 /* QualifiedName */) - node = node.parent; - return node.parent && node.parent.kind === 132 /* TypeReference */; - } - function isTypeNode(node) { - if (132 /* FirstTypeNode */ <= node.kind && node.kind <= 140 /* LastTypeNode */) { - return true; - } - switch (node.kind) { - case 109 /* AnyKeyword */: - case 116 /* NumberKeyword */: - case 118 /* StringKeyword */: - case 110 /* BooleanKeyword */: - return true; - case 97 /* VoidKeyword */: - return node.parent.kind !== 154 /* PrefixOperator */; - case 7 /* StringLiteral */: - return node.parent.kind === 123 /* Parameter */; - case 63 /* Identifier */: - if (node.parent.kind === 121 /* QualifiedName */ && node.parent.right === node) { - node = node.parent; - } - case 121 /* QualifiedName */: - ts.Debug.assert(node.kind === 63 /* Identifier */ || node.kind === 121 /* QualifiedName */, "'node' was expected to be a qualified name or identifier in 'isTypeNode'."); - var parent = node.parent; - if (parent.kind === 135 /* TypeQuery */) { - return false; - } - if (132 /* FirstTypeNode */ <= parent.kind && parent.kind <= 140 /* LastTypeNode */) { - return true; - } - switch (parent.kind) { - case 122 /* TypeParameter */: - return node === parent.constraint; - case 124 /* Property */: - case 123 /* Parameter */: - case 185 /* VariableDeclaration */: - return node === parent.type; - case 186 /* FunctionDeclaration */: - case 152 /* FunctionExpression */: - case 153 /* ArrowFunction */: - case 126 /* Constructor */: - case 125 /* Method */: - case 127 /* GetAccessor */: - case 128 /* SetAccessor */: - return node === parent.type; - case 129 /* CallSignature */: - case 130 /* ConstructSignature */: - case 131 /* IndexSignature */: - return node === parent.type; - case 150 /* TypeAssertion */: - return node === parent.type; - case 147 /* CallExpression */: - case 148 /* NewExpression */: - return parent.typeArguments && parent.typeArguments.indexOf(node) >= 0; - case 149 /* TaggedTemplateExpression */: - return false; - } - } - return false; - } - function isInRightSideOfImportOrExportAssignment(node) { - while (node.parent.kind === 121 /* QualifiedName */) { - node = node.parent; - } - if (node.parent.kind === 194 /* ImportDeclaration */) { - return node.parent.entityName === node; - } - if (node.parent.kind === 195 /* ExportAssignment */) { - return node.parent.exportName === node; - } - return false; - } - function isRightSideOfQualifiedNameOrPropertyAccess(node) { - return (node.parent.kind === 121 /* QualifiedName */ || node.parent.kind === 145 /* PropertyAccess */) && node.parent.right === node; - } - function getSymbolOfEntityName(entityName) { - if (ts.isDeclarationOrFunctionExpressionOrCatchVariableName(entityName)) { - return getSymbolOfNode(entityName.parent); - } - if (entityName.parent.kind === 195 /* ExportAssignment */) { - return resolveEntityName(entityName.parent.parent, entityName, 107455 /* Value */ | 3152352 /* Type */ | 1536 /* Namespace */ | 33554432 /* Import */); - } - if (isInRightSideOfImportOrExportAssignment(entityName)) { - return getSymbolOfPartOfRightHandSideOfImport(entityName); - } - if (isRightSideOfQualifiedNameOrPropertyAccess(entityName)) { - entityName = entityName.parent; - } - if (ts.isExpression(entityName)) { - if (entityName.kind === 63 /* Identifier */) { - var meaning = 107455 /* Value */ | 33554432 /* Import */; - return resolveEntityName(entityName, entityName, meaning); - } - else if (entityName.kind === 121 /* QualifiedName */ || entityName.kind === 145 /* PropertyAccess */) { - var symbol = getNodeLinks(entityName).resolvedSymbol; - if (!symbol) { - checkPropertyAccess(entityName); - } - return getNodeLinks(entityName).resolvedSymbol; - } - else { - return; - } - } - else if (isTypeReferenceIdentifier(entityName)) { - var meaning = entityName.parent.kind === 132 /* TypeReference */ ? 3152352 /* Type */ : 1536 /* Namespace */; - meaning |= 33554432 /* Import */; - return resolveEntityName(entityName, entityName, meaning); - } - return undefined; - } - function getSymbolInfo(node) { - if (isInsideWithStatementBody(node)) { - return undefined; - } - if (ts.isDeclarationOrFunctionExpressionOrCatchVariableName(node)) { - return getSymbolOfNode(node.parent); - } - if (node.kind === 63 /* Identifier */ && isInRightSideOfImportOrExportAssignment(node)) { - return node.parent.kind === 195 /* ExportAssignment */ ? getSymbolOfEntityName(node) : getSymbolOfPartOfRightHandSideOfImport(node); - } - switch (node.kind) { - case 63 /* Identifier */: - case 145 /* PropertyAccess */: - case 121 /* QualifiedName */: - return getSymbolOfEntityName(node); - case 91 /* ThisKeyword */: - case 89 /* SuperKeyword */: - var type = checkExpression(node); - return type.symbol; - case 111 /* ConstructorKeyword */: - var constructorDeclaration = node.parent; - if (constructorDeclaration && constructorDeclaration.kind === 126 /* Constructor */) { - return constructorDeclaration.parent.symbol; - } - return undefined; - case 7 /* StringLiteral */: - if (node.parent.kind === 194 /* ImportDeclaration */ && node.parent.externalModuleName === node) { - var importSymbol = getSymbolOfNode(node.parent); - var moduleType = getTypeOfSymbol(importSymbol); - return moduleType ? moduleType.symbol : undefined; - } - case 6 /* NumericLiteral */: - if (node.parent.kind == 146 /* IndexedAccess */ && node.parent.index === node) { - var objectType = checkExpression(node.parent.object); - 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 === 144 /* ShorthandPropertyAssignment */) { - return resolveEntityName(location, location.name, 107455 /* Value */); - } - 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.isDeclarationOrFunctionExpressionOrCatchVariableName(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) { - var type = getApparentType(type); - var propsByName = createSymbolTable(getPropertiesOfType(type)); - if (getSignaturesOfType(type, 0 /* Call */).length || getSignaturesOfType(type, 1 /* Construct */).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 & 1073741824 /* UnionProperty */) { - var symbols = []; - var name = symbol.name; - ts.forEach(getSymbolLinks(symbol).unionType.types, function (t) { - symbols.push(getPropertyOfType(t, name)); - }); - return symbols; - } - else if (symbol.flags & 268435456 /* Transient */) { - var target = getSymbolLinks(symbol).target; - if (target) { - return [target]; - } - } - return [symbol]; - } - function isExternalModuleSymbol(symbol) { - return symbol.flags & 512 /* ValueModule */ && symbol.declarations.length === 1 && symbol.declarations[0].kind === 197 /* SourceFile */; - } - 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) && node.locals[name].flags & (107455 /* Value */ | 4194304 /* ExportValue */)) { - return false; - } - } - return true; - } - function getLocalNameOfContainer(container) { - var links = getNodeLinks(container); - if (!links.localModuleName) { - var prefix = ""; - var name = ts.unescapeIdentifier(container.name.text); - while (!isUniqueLocalName(ts.escapeIdentifier(prefix + name), container)) { - prefix += "_"; - } - links.localModuleName = prefix + ts.getTextOfNode(container.name); - } - return links.localModuleName; - } - function getLocalNameForSymbol(symbol, location) { - var node = location; - while (node) { - if ((node.kind === 192 /* ModuleDeclaration */ || node.kind === 191 /* EnumDeclaration */) && getSymbolOfNode(node) === symbol) { - return getLocalNameOfContainer(node); - } - node = node.parent; - } - ts.Debug.fail("getLocalNameForSymbol failed"); - } - function getExpressionNamePrefix(node) { - var symbol = getNodeLinks(node).resolvedSymbol; - if (symbol) { - var exportSymbol = getExportSymbolOfValueSymbolIfExported(symbol); - if (symbol !== exportSymbol && !(exportSymbol.flags & 944 /* ExportHasLocal */)) { - symbol = exportSymbol; - } - if (symbol.parent) { - return isExternalModuleSymbol(symbol.parent) ? "exports" : getLocalNameForSymbol(getParentOfSymbol(symbol), node.parent); - } - } - } - function getExportAssignmentName(node) { - var symbol = getExportAssignmentSymbol(getSymbolOfNode(node)); - return symbol && symbolIsValue(symbol) && !isConstEnumSymbol(symbol) ? symbolToString(symbol) : undefined; - } - function isTopLevelValueImportWithEntityName(node) { - if (node.parent.kind !== 197 /* SourceFile */ || !node.entityName) { - return false; - } - return isImportResolvedToValue(getSymbolOfNode(node)); - } - function hasSemanticErrors() { - return getDiagnostics().length > 0 || getGlobalDiagnostics().length > 0; - } - function isEmitBlocked(sourceFile) { - return program.getDiagnostics(sourceFile).length !== 0 || hasEarlyErrors(sourceFile) || (compilerOptions.noEmitOnError && getDiagnostics(sourceFile).length !== 0); - } - function hasEarlyErrors(sourceFile) { - return ts.forEach(getDiagnostics(sourceFile), function (d) { return d.isEarly; }); - } - function isImportResolvedToValue(symbol) { - var target = resolveImport(symbol); - return target !== unknownSymbol && target.flags & 107455 /* Value */ && !isConstEnumOrConstEnumOnlyModule(target); - } - function isConstEnumOrConstEnumOnlyModule(s) { - return isConstEnumSymbol(s) || s.constEnumOnlyModule; - } - function isReferencedImportDeclaration(node) { - var symbol = getSymbolOfNode(node); - if (getSymbolLinks(symbol).referenced) { - return true; - } - if (node.flags & 1 /* Export */) { - return isImportResolvedToValue(symbol); - } - return false; - } - function isImplementationOfOverload(node) { - if (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) { - var symbol = getNodeLinks(node).resolvedSymbol; - if (symbol && (symbol.flags & 8 /* EnumMember */)) { - var declaration = symbol.valueDeclaration; - var constantValue; - if (declaration.kind === 196 /* EnumMember */ && (constantValue = getNodeLinks(declaration).enumMemberValue) !== undefined) { - return constantValue; - } - } - return undefined; - } - function writeTypeAtLocation(location, enclosingDeclaration, flags, writer) { - var symbol = getSymbolOfNode(location); - var type = symbol && !(symbol.flags & (2048 /* TypeLiteral */ | 131072 /* CallSignature */ | 262144 /* ConstructSignature */)) ? getTypeOfSymbol(symbol) : getTypeFromTypeNode(location); - getSymbolDisplayBuilder().buildTypeDisplay(type, writer, enclosingDeclaration, flags); - } - function writeReturnTypeOfSignatureDeclaration(signatureDeclaration, enclosingDeclaration, flags, writer) { - var signature = getSignatureFromDeclaration(signatureDeclaration); - getSymbolDisplayBuilder().buildTypeDisplay(getReturnTypeOfSignature(signature), writer, enclosingDeclaration, flags); - } - function createResolver() { - return { - getProgram: function () { return program; }, - getLocalNameOfContainer: getLocalNameOfContainer, - getExpressionNamePrefix: getExpressionNamePrefix, - getExportAssignmentName: getExportAssignmentName, - isReferencedImportDeclaration: isReferencedImportDeclaration, - getNodeCheckFlags: getNodeCheckFlags, - getEnumMemberValue: getEnumMemberValue, - isTopLevelValueImportWithEntityName: isTopLevelValueImportWithEntityName, - hasSemanticErrors: hasSemanticErrors, - isEmitBlocked: isEmitBlocked, - isDeclarationVisible: isDeclarationVisible, - isImplementationOfOverload: isImplementationOfOverload, - writeTypeAtLocation: writeTypeAtLocation, - writeReturnTypeOfSignatureDeclaration: writeReturnTypeOfSignatureDeclaration, - isSymbolAccessible: isSymbolAccessible, - isEntityNameVisible: isEntityNameVisible, - getConstantValue: getConstantValue - }; - } - function invokeEmitter(targetSourceFile) { - var resolver = createResolver(); - checkProgram(); - return ts.emitFiles(resolver, targetSourceFile); - } - function initializeTypeChecker() { - ts.forEach(program.getSourceFiles(), function (file) { - ts.bindSourceFile(file); - ts.forEach(file.semanticDiagnostics, addDiagnostic); - }); - ts.forEach(program.getSourceFiles(), function (file) { - if (!ts.isExternalModule(file)) { - extendSymbolTable(globals, file.locals); - } - }); - getSymbolLinks(undefinedSymbol).type = undefinedType; - getSymbolLinks(argumentsSymbol).type = getGlobalType("IArguments"); - getSymbolLinks(unknownSymbol).type = unknownType; - globals[undefinedSymbol.name] = undefinedSymbol; - globalArraySymbol = getGlobalSymbol("Array"); - globalArrayType = getTypeOfGlobalSymbol(globalArraySymbol, 1); - globalObjectType = getGlobalType("Object"); - globalFunctionType = getGlobalType("Function"); - globalStringType = getGlobalType("String"); - globalNumberType = getGlobalType("Number"); - globalBooleanType = getGlobalType("Boolean"); - globalRegExpType = getGlobalType("RegExp"); - globalTemplateStringsArrayType = compilerOptions.target >= 2 /* ES6 */ ? getGlobalType("TemplateStringsArray") : unknownType; - } - initializeTypeChecker(); - return checker; - } - ts.createTypeChecker = createTypeChecker; -})(ts || (ts = {})); -var TypeScript; -(function (TypeScript) { - TypeScript.DiagnosticCode = { - error_TS_0_1: "error TS{0}: {1}", - warning_TS_0_1: "warning TS{0}: {1}", - Unrecognized_escape_sequence: "Unrecognized escape sequence.", - Unexpected_character_0: "Unexpected character {0}.", - Unterminated_string_literal: "Unterminated string literal.", - Identifier_expected: "Identifier expected.", - _0_keyword_expected: "'{0}' keyword expected.", - _0_expected: "'{0}' expected.", - Identifier_expected_0_is_a_keyword: "Identifier expected; '{0}' is a keyword.", - Automatic_semicolon_insertion_not_allowed: "Automatic semicolon insertion not allowed.", - Unexpected_token_0_expected: "Unexpected token; '{0}' expected.", - Trailing_comma_not_allowed: "Trailing comma not allowed.", - public_or_private_modifier_must_precede_static: "'public' or 'private' modifier must precede 'static'.", - Unexpected_token: "Unexpected token.", - Catch_clause_parameter_cannot_have_a_type_annotation: "Catch clause parameter cannot have a type annotation.", - A_rest_parameter_must_be_last_in_a_parameter_list: "A rest parameter must be last in a parameter list.", - Parameter_cannot_have_question_mark_and_initializer: "Parameter cannot have question mark and initializer.", - A_required_parameter_cannot_follow_an_optional_parameter: "A required parameter cannot follow an optional parameter.", - Index_signatures_cannot_have_rest_parameters: "Index signatures cannot have rest parameters.", - Index_signature_parameter_cannot_have_modifiers: "Index signature parameter cannot have modifiers.", - Index_signature_parameter_cannot_have_a_question_mark: "Index signature parameter cannot have a question mark.", - Index_signature_parameter_cannot_have_an_initializer: "Index signature parameter cannot have an initializer.", - Index_signature_must_have_a_type_annotation: "Index signature must have a type annotation.", - Index_signature_parameter_must_have_a_type_annotation: "Index signature parameter must have a type annotation.", - Index_signature_parameter_type_must_be_string_or_number: "Index signature parameter type must be 'string' or 'number'.", - extends_clause_already_seen: "'extends' clause already seen.", - extends_clause_must_precede_implements_clause: "'extends' clause must precede 'implements' clause.", - Classes_can_only_extend_a_single_class: "Classes can only extend a single class.", - implements_clause_already_seen: "'implements' clause already seen.", - Accessibility_modifier_already_seen: "Accessibility modifier already seen.", - _0_modifier_must_precede_1_modifier: "'{0}' modifier must precede '{1}' modifier.", - _0_modifier_already_seen: "'{0}' modifier already seen.", - _0_modifier_cannot_appear_on_a_class_element: "'{0}' modifier cannot appear on a class element.", - Interface_declaration_cannot_have_implements_clause: "Interface declaration cannot have 'implements' clause.", - super_invocation_cannot_have_type_arguments: "'super' invocation cannot have type arguments.", - Only_ambient_modules_can_use_quoted_names: "Only ambient modules can use quoted names.", - Statements_are_not_allowed_in_ambient_contexts: "Statements are not allowed in ambient contexts.", - A_function_implementation_cannot_be_declared_in_an_ambient_context: "A function implementation cannot be declared in an ambient context.", - A_declare_modifier_cannot_be_used_in_an_already_ambient_context: "A 'declare' modifier cannot be used in an already ambient context.", - Initializers_are_not_allowed_in_ambient_contexts: "Initializers are not allowed in ambient contexts.", - _0_modifier_cannot_appear_on_a_module_element: "'{0}' modifier cannot appear on a module element.", - A_declare_modifier_cannot_be_used_with_an_interface_declaration: "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: "A 'declare' modifier is required for a top level declaration in a .d.ts file.", - A_rest_parameter_cannot_be_optional: "A rest parameter cannot be optional.", - A_rest_parameter_cannot_have_an_initializer: "A rest parameter cannot have an initializer.", - set_accessor_must_have_exactly_one_parameter: "'set' accessor must have exactly one parameter.", - set_accessor_parameter_cannot_be_optional: "'set' accessor parameter cannot be optional.", - set_accessor_parameter_cannot_have_an_initializer: "'set' accessor parameter cannot have an initializer.", - set_accessor_cannot_have_rest_parameter: "'set' accessor cannot have rest parameter.", - get_accessor_cannot_have_parameters: "'get' accessor cannot have parameters.", - Modifiers_cannot_appear_here: "Modifiers cannot appear here.", - Accessors_are_only_available_when_targeting_ECMAScript_5_and_higher: "Accessors are only available when targeting ECMAScript 5 and higher.", - Enum_member_must_have_initializer: "Enum member must have initializer.", - Export_assignment_cannot_be_used_in_internal_modules: "Export assignment cannot be used in internal modules.", - Ambient_enum_elements_can_only_have_integer_literal_initializers: "Ambient enum elements can only have integer literal initializers.", - module_class_interface_enum_import_or_statement: "module, class, interface, enum, import or statement", - constructor_function_accessor_or_variable: "constructor, function, accessor or variable", - statement: "statement", - case_or_default_clause: "case or default clause", - identifier: "identifier", - call_construct_index_property_or_function_signature: "call, construct, index, property or function signature", - expression: "expression", - type_name: "type name", - property_or_accessor: "property or accessor", - parameter: "parameter", - type: "type", - type_parameter: "type parameter", - A_declare_modifier_cannot_be_used_with_an_import_declaration: "A 'declare' modifier cannot be used with an import declaration.", - Invalid_reference_directive_syntax: "Invalid 'reference' directive syntax.", - Octal_literals_are_not_available_when_targeting_ECMAScript_5_and_higher: "Octal literals are not available when targeting ECMAScript 5 and higher.", - Accessors_are_not_allowed_in_ambient_contexts: "Accessors are not allowed in ambient contexts.", - _0_modifier_cannot_appear_on_a_constructor_declaration: "'{0}' modifier cannot appear on a constructor declaration.", - _0_modifier_cannot_appear_on_a_parameter: "'{0}' modifier cannot appear on a parameter.", - Only_a_single_variable_declaration_is_allowed_in_a_for_in_statement: "Only a single variable declaration is allowed in a 'for...in' statement.", - Type_parameters_cannot_appear_on_a_constructor_declaration: "Type parameters cannot appear on a constructor declaration.", - Type_annotation_cannot_appear_on_a_constructor_declaration: "Type annotation cannot appear on a constructor declaration.", - Type_parameters_cannot_appear_on_an_accessor: "Type parameters cannot appear on an accessor.", - Type_annotation_cannot_appear_on_a_set_accessor: "Type annotation cannot appear on a 'set' accessor.", - Index_signature_must_have_exactly_one_parameter: "Index signature must have exactly one parameter.", - _0_list_cannot_be_empty: "'{0}' list cannot be empty.", - variable_declaration: "variable declaration", - type_argument: "type argument", - Invalid_use_of_0_in_strict_mode: "Invalid use of '{0}' in strict mode.", - with_statements_are_not_allowed_in_strict_mode: "'with' statements are not allowed in strict mode.", - delete_cannot_be_called_on_an_identifier_in_strict_mode: "'delete' cannot be called on an identifier in strict mode.", - Invalid_left_hand_side_in_for_in_statement: "Invalid left-hand side in 'for...in' statement.", - continue_statement_can_only_be_used_within_an_enclosing_iteration_statement: "'continue' statement can only be used within an enclosing iteration statement.", - break_statement_can_only_be_used_within_an_enclosing_iteration_or_switch_statement: "'break' statement can only be used within an enclosing iteration or switch statement.", - Jump_target_not_found: "Jump target not found.", - Jump_target_cannot_cross_function_boundary: "Jump target cannot cross function boundary.", - return_statement_must_be_contained_within_a_function_body: "'return' statement must be contained within a function body.", - Expression_expected: "Expression expected.", - Type_expected: "Type expected.", - Template_literal_cannot_be_used_as_an_element_name: "Template literal cannot be used as an element name.", - Computed_property_names_cannot_be_used_here: "Computed property names cannot be used here.", - yield_expression_must_be_contained_within_a_generator_declaration: "'yield' expression must be contained within a generator declaration.", - Unterminated_regular_expression_literal: "Unterminated regular expression literal.", - Unterminated_template_literal: "Unterminated template literal.", - await_expression_must_be_contained_within_an_async_declaration: "'await' expression must be contained within an async declaration.", - async_arrow_function_parameters_must_be_parenthesized: "'async' arrow function parameters must be parenthesized.", - A_generator_declaration_cannot_have_the_async_modifier: "A generator declaration cannot have the 'async' modifier.", - async_modifier_cannot_appear_here: "'async' modifier cannot appear here.", - comma_expression_cannot_appear_in_a_computed_property_name: "'comma' expression cannot appear in a computed property name.", - Duplicate_identifier_0: "Duplicate identifier '{0}'.", - The_name_0_does_not_exist_in_the_current_scope: "The name '{0}' does not exist in the current scope.", - The_name_0_does_not_refer_to_a_value: "The name '{0}' does not refer to a value.", - super_can_only_be_used_inside_a_class_instance_method: "'super' can only be used inside a class instance method.", - The_left_hand_side_of_an_assignment_expression_must_be_a_variable_property_or_indexer: "The left-hand side of an assignment expression must be a variable, property or indexer.", - Value_of_type_0_is_not_callable_Did_you_mean_to_include_new: "Value of type '{0}' is not callable. Did you mean to include 'new'?", - Value_of_type_0_is_not_callable: "Value of type '{0}' is not callable.", - Value_of_type_0_is_not_newable: "Value of type '{0}' is not newable.", - An_index_expression_argument_must_be_string_number_or_any: "An index expression argument must be 'string', 'number', or 'any'.", - Operator_0_cannot_be_applied_to_types_1_and_2: "Operator '{0}' cannot be applied to types '{1}' and '{2}'.", - Type_0_is_not_assignable_to_type_1: "Type '{0}' is not assignable to type '{1}'.", - Type_0_is_not_assignable_to_type_1_NL_2: "Type '{0}' is not assignable to type '{1}':{NL}{2}", - Expected_var_class_interface_or_module: "Expected var, class, interface, or module.", - Getter_0_already_declared: "Getter '{0}' already declared.", - Setter_0_already_declared: "Setter '{0}' already declared.", - Exported_class_0_extends_private_class_1: "Exported class '{0}' extends private class '{1}'.", - Exported_class_0_implements_private_interface_1: "Exported class '{0}' implements private interface '{1}'.", - Exported_interface_0_extends_private_interface_1: "Exported interface '{0}' extends private interface '{1}'.", - Exported_class_0_extends_class_from_inaccessible_module_1: "Exported class '{0}' extends class from inaccessible module {1}.", - Exported_class_0_implements_interface_from_inaccessible_module_1: "Exported class '{0}' implements interface from inaccessible module {1}.", - Exported_interface_0_extends_interface_from_inaccessible_module_1: "Exported interface '{0}' extends interface from inaccessible module {1}.", - Public_static_property_0_of_exported_class_has_or_is_using_private_type_1: "Public static property '{0}' of exported class has or is using private type '{1}'.", - Public_property_0_of_exported_class_has_or_is_using_private_type_1: "Public property '{0}' of exported class has or is using private type '{1}'.", - Property_0_of_exported_interface_has_or_is_using_private_type_1: "Property '{0}' of exported interface has or is using private type '{1}'.", - Exported_variable_0_has_or_is_using_private_type_1: "Exported variable '{0}' has or is using private type '{1}'.", - Public_static_property_0_of_exported_class_is_using_inaccessible_module_1: "Public static property '{0}' of exported class is using inaccessible module {1}.", - Public_property_0_of_exported_class_is_using_inaccessible_module_1: "Public property '{0}' of exported class is using inaccessible module {1}.", - Property_0_of_exported_interface_is_using_inaccessible_module_1: "Property '{0}' of exported interface is using inaccessible module {1}.", - Exported_variable_0_is_using_inaccessible_module_1: "Exported variable '{0}' is using inaccessible module {1}.", - Parameter_0_of_constructor_from_exported_class_has_or_is_using_private_type_1: "Parameter '{0}' of constructor from exported class has or is using private type '{1}'.", - Parameter_0_of_public_static_property_setter_from_exported_class_has_or_is_using_private_type_1: "Parameter '{0}' of public static property setter from exported class has or is using private type '{1}'.", - Parameter_0_of_public_property_setter_from_exported_class_has_or_is_using_private_type_1: "Parameter '{0}' of public property setter from exported class has or is using private type '{1}'.", - Parameter_0_of_constructor_signature_from_exported_interface_has_or_is_using_private_type_1: "Parameter '{0}' of constructor signature from exported interface has or is using private type '{1}'.", - Parameter_0_of_call_signature_from_exported_interface_has_or_is_using_private_type_1: "Parameter '{0}' of call signature from exported interface has or is using private type '{1}'.", - Parameter_0_of_public_static_method_from_exported_class_has_or_is_using_private_type_1: "Parameter '{0}' of public static method from exported class has or is using private type '{1}'.", - Parameter_0_of_public_method_from_exported_class_has_or_is_using_private_type_1: "Parameter '{0}' of public method from exported class has or is using private type '{1}'.", - Parameter_0_of_method_from_exported_interface_has_or_is_using_private_type_1: "Parameter '{0}' of method from exported interface has or is using private type '{1}'.", - Parameter_0_of_exported_function_has_or_is_using_private_type_1: "Parameter '{0}' of exported function has or is using private type '{1}'.", - Parameter_0_of_constructor_from_exported_class_is_using_inaccessible_module_1: "Parameter '{0}' of constructor from exported class is using inaccessible module {1}.", - Parameter_0_of_public_static_property_setter_from_exported_class_is_using_inaccessible_module_1: "Parameter '{0}' of public static property setter from exported class is using inaccessible module {1}.", - Parameter_0_of_public_property_setter_from_exported_class_is_using_inaccessible_module_1: "Parameter '{0}' of public property setter from exported class is using inaccessible module {1}.", - Parameter_0_of_constructor_signature_from_exported_interface_is_using_inaccessible_module_1: "Parameter '{0}' of constructor signature from exported interface is using inaccessible module {1}.", - Parameter_0_of_call_signature_from_exported_interface_is_using_inaccessible_module_1: "Parameter '{0}' of call signature from exported interface is using inaccessible module {1}", - Parameter_0_of_public_static_method_from_exported_class_is_using_inaccessible_module_1: "Parameter '{0}' of public static method from exported class is using inaccessible module {1}.", - Parameter_0_of_public_method_from_exported_class_is_using_inaccessible_module_1: "Parameter '{0}' of public method from exported class is using inaccessible module {1}.", - Parameter_0_of_method_from_exported_interface_is_using_inaccessible_module_1: "Parameter '{0}' of method from exported interface is using inaccessible module {1}.", - Parameter_0_of_exported_function_is_using_inaccessible_module_1: "Parameter '{0}' of exported function is using inaccessible module {1}.", - Return_type_of_public_static_property_getter_from_exported_class_has_or_is_using_private_type_0: "Return type of public static property getter from exported class has or is using private type '{0}'.", - Return_type_of_public_property_getter_from_exported_class_has_or_is_using_private_type_0: "Return type of public property getter from exported class has or is using private type '{0}'.", - Return_type_of_constructor_signature_from_exported_interface_has_or_is_using_private_type_0: "Return type of constructor signature from exported interface has or is using private type '{0}'.", - Return_type_of_call_signature_from_exported_interface_has_or_is_using_private_type_0: "Return type of call signature from exported interface has or is using private type '{0}'.", - Return_type_of_index_signature_from_exported_interface_has_or_is_using_private_type_0: "Return type of index signature from exported interface has or is using private type '{0}'.", - Return_type_of_public_static_method_from_exported_class_has_or_is_using_private_type_0: "Return type of public static method from exported class has or is using private type '{0}'.", - Return_type_of_public_method_from_exported_class_has_or_is_using_private_type_0: "Return type of public method from exported class has or is using private type '{0}'.", - Return_type_of_method_from_exported_interface_has_or_is_using_private_type_0: "Return type of method from exported interface has or is using private type '{0}'.", - Return_type_of_exported_function_has_or_is_using_private_type_0: "Return type of exported function has or is using private type '{0}'.", - Return_type_of_public_static_property_getter_from_exported_class_is_using_inaccessible_module_0: "Return type of public static property getter from exported class is using inaccessible module {0}.", - Return_type_of_public_property_getter_from_exported_class_is_using_inaccessible_module_0: "Return type of public property getter from exported class is using inaccessible module {0}.", - Return_type_of_constructor_signature_from_exported_interface_is_using_inaccessible_module_0: "Return type of constructor signature from exported interface is using inaccessible module {0}.", - Return_type_of_call_signature_from_exported_interface_is_using_inaccessible_module_0: "Return type of call signature from exported interface is using inaccessible module {0}.", - Return_type_of_index_signature_from_exported_interface_is_using_inaccessible_module_0: "Return type of index signature from exported interface is using inaccessible module {0}.", - Return_type_of_public_static_method_from_exported_class_is_using_inaccessible_module_0: "Return type of public static method from exported class is using inaccessible module {0}.", - Return_type_of_public_method_from_exported_class_is_using_inaccessible_module_0: "Return type of public method from exported class is using inaccessible module {0}.", - Return_type_of_method_from_exported_interface_is_using_inaccessible_module_0: "Return type of method from exported interface is using inaccessible module {0}.", - Return_type_of_exported_function_is_using_inaccessible_module_0: "Return type of exported function is using inaccessible module {0}.", - new_T_cannot_be_used_to_create_an_array_Use_new_Array_T_instead: "'new T[]' cannot be used to create an array. Use 'new Array()' instead.", - A_parameter_list_must_follow_a_generic_type_argument_list_expected: "A parameter list must follow a generic type argument list. '(' expected.", - Multiple_constructor_implementations_are_not_allowed: "Multiple constructor implementations are not allowed.", - Cannot_find_external_module_0: "Cannot find external module '{0}'.", - Module_cannot_be_aliased_to_a_non_module_type: "Module cannot be aliased to a non-module type.", - A_class_may_only_extend_another_class: "A class may only extend another class.", - A_class_may_only_implement_another_class_or_interface: "A class may only implement another class or interface.", - An_interface_may_only_extend_a_class_or_another_interface: "An interface may only extend a class or another interface.", - Unable_to_resolve_type: "Unable to resolve type.", - Unable_to_resolve_type_of_0: "Unable to resolve type of '{0}'.", - Unable_to_resolve_type_parameter_constraint: "Unable to resolve type parameter constraint.", - Type_parameter_constraint_cannot_be_a_primitive_type: "Type parameter constraint cannot be a primitive type.", - Supplied_parameters_do_not_match_any_signature_of_call_target: "Supplied parameters do not match any signature of call target.", - Supplied_parameters_do_not_match_any_signature_of_call_target_NL_0: "Supplied parameters do not match any signature of call target:{NL}{0}", - Cannot_use_new_with_an_expression_whose_type_lacks_a_signature: "Cannot use 'new' with an expression whose type lacks a signature.", - Only_a_void_function_can_be_called_with_the_new_keyword: "Only a void function can be called with the 'new' keyword.", - Could_not_select_overload_for_new_expression: "Could not select overload for 'new' expression.", - Type_0_does_not_satisfy_the_constraint_1: "Type '{0}' does not satisfy the constraint '{1}'.", - Could_not_select_overload_for_call_expression: "Could not select overload for 'call' expression.", - Cannot_invoke_an_expression_whose_type_lacks_a_call_signature: "Cannot invoke an expression whose type lacks a call signature.", - Calls_to_super_are_only_valid_inside_a_class: "Calls to 'super' are only valid inside a class.", - Generic_type_0_requires_1_type_argument_s: "Generic type '{0}' requires {1} type argument(s).", - Type_of_array_literal_cannot_be_determined_Best_common_type_could_not_be_found_for_array_elements: "Type of array literal cannot be determined. Best common type could not be found for array elements.", - Could_not_find_enclosing_symbol_for_dotted_name_0: "Could not find enclosing symbol for dotted name '{0}'.", - Property_0_does_not_exist_on_value_of_type_1: "Property '{0}' does not exist on value of type '{1}'.", - Cannot_find_name_0: "Cannot find name '{0}'.", - get_and_set_accessor_must_have_the_same_type: "'get' and 'set' accessor must have the same type.", - this_cannot_be_referenced_in_current_location: "'this' cannot be referenced in current location.", - Static_members_cannot_reference_class_type_parameters: "Static members cannot reference class type parameters.", - Type_0_recursively_references_itself_as_a_base_type: "Type '{0}' recursively references itself as a base type.", - super_property_access_is_permitted_only_in_a_constructor_member_function_or_member_accessor_of_a_derived_class: "'super' property access is permitted only in a constructor, member function, or member accessor of a derived class.", - super_can_only_be_referenced_in_a_derived_class: "'super' can only be referenced in a derived class.", - A_super_call_must_be_the_first_statement_in_the_constructor_when_a_class_contains_initialized_properties_or_has_parameter_properties: "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: "Constructors for derived classes must contain a 'super' call.", - Super_calls_are_not_permitted_outside_constructors_or_in_nested_functions_inside_constructors: "Super calls are not permitted outside constructors or in nested functions inside constructors.", - _0_1_is_inaccessible: "'{0}.{1}' is inaccessible.", - this_cannot_be_referenced_in_a_module_body: "'this' cannot be referenced in a module body.", - Invalid_expression_types_not_known_to_support_the_addition_operator: "Invalid '+' expression - types not known to support the addition operator.", - The_right_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.", - The_left_hand_side_of_an_arithmetic_operation_must_be_of_type_any_number_or_an_enum_type: "The left-hand side of an arithmetic operation must be of type 'any', 'number' or an enum type.", - An_arithmetic_operand_must_be_of_type_any_number_or_an_enum_type: "An arithmetic operand must be of type 'any', 'number' or an enum type.", - Variable_declarations_of_a_for_statement_cannot_use_a_type_annotation: "Variable declarations of a 'for' statement cannot use a type annotation.", - Variable_declarations_of_a_for_statement_must_be_of_types_string_or_any: "Variable declarations of a 'for' statement must be of types 'string' or 'any'.", - The_right_hand_side_of_a_for_in_statement_must_be_of_type_any_an_object_type_or_a_type_parameter: "The right-hand side of a 'for...in' statement must be of type 'any', an object type or a type parameter.", - The_left_hand_side_of_an_in_expression_must_be_of_types_any_string_or_number: "The left-hand side of an 'in' expression must be of types 'any', 'string' or 'number'.", - The_right_hand_side_of_an_in_expression_must_be_of_type_any_an_object_type_or_a_type_parameter: "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_instanceof_expression_must_be_of_type_any_an_object_type_or_a_type_parameter: "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: "The right-hand side of an 'instanceof' expression must be of type 'any' or of a type assignable to the 'Function' interface type.", - Setters_cannot_return_a_value: "Setters cannot return a value.", - Tried_to_query_type_of_uninitialized_module_0: "Tried to query type of uninitialized module '{0}'.", - Tried_to_set_variable_type_to_uninitialized_module_type_0: "Tried to set variable type to uninitialized module type '{0}'.", - Type_0_is_not_generic: "Type '{0}' is not generic.", - Getters_must_return_a_value: "Getters must return a value.", - Getter_and_setter_accessors_do_not_agree_in_visibility: "Getter and setter accessors do not agree in visibility.", - Invalid_left_hand_side_of_assignment_expression: "Invalid left-hand side of assignment expression.", - Function_declared_a_non_void_return_type_but_has_no_return_expression: "Function declared a non-void return type, but has no return expression.", - Cannot_resolve_return_type_reference: "Cannot resolve return type reference.", - Constructors_cannot_have_a_return_type_of_void: "Constructors cannot have a return type of 'void'.", - Subsequent_variable_declarations_must_have_the_same_type_Variable_0_must_be_of_type_1_but_here_has_type_2: "Subsequent variable declarations must have the same type. Variable '{0}' must be of type '{1}', but here has type '{2}'.", - All_symbols_within_a_with_block_will_be_resolved_to_any: "All symbols within a with block will be resolved to 'any'.", - Import_declarations_in_an_internal_module_cannot_reference_an_external_module: "Import declarations in an internal module cannot reference an external module.", - Class_0_declares_interface_1_but_does_not_implement_it_NL_2: "Class {0} declares interface {1} but does not implement it:{NL}{2}", - Class_0_declares_class_1_as_an_interface_but_does_not_implement_it_NL_2: "Class {0} declares class {1} as an interface but does not implement it:{NL}{2}", - The_operand_of_an_increment_or_decrement_operator_must_be_a_variable_property_or_indexer: "The operand of an increment or decrement operator must be a variable, property or indexer.", - this_cannot_be_referenced_in_a_static_property_initializer: "'this' cannot be referenced in a static property initializer.", - Class_0_cannot_extend_class_1_NL_2: "Class '{0}' cannot extend class '{1}':{NL}{2}", - Interface_0_cannot_extend_class_1_NL_2: "Interface '{0}' cannot extend class '{1}':{NL}{2}", - Interface_0_cannot_extend_interface_1_NL_2: "Interface '{0}' cannot extend interface '{1}':{NL}{2}", - Overload_signature_is_not_compatible_with_function_definition: "Overload signature is not compatible with function definition.", - Overload_signature_is_not_compatible_with_function_definition_NL_0: "Overload signature is not compatible with function definition:{NL}{0}", - Overload_signatures_must_all_be_public_or_private: "Overload signatures must all be public or private.", - Overload_signatures_must_all_be_exported_or_not_exported: "Overload signatures must all be exported or not exported.", - Overload_signatures_must_all_be_ambient_or_non_ambient: "Overload signatures must all be ambient or non-ambient.", - Overload_signatures_must_all_be_optional_or_required: "Overload signatures must all be optional or required.", - Specialized_overload_signature_is_not_assignable_to_any_non_specialized_signature: "Specialized overload signature is not assignable to any non-specialized signature.", - this_cannot_be_referenced_in_constructor_arguments: "'this' cannot be referenced in constructor arguments.", - Instance_member_cannot_be_accessed_off_a_class: "Instance member cannot be accessed off a class.", - Untyped_function_calls_may_not_accept_type_arguments: "Untyped function calls may not accept type arguments.", - Non_generic_functions_may_not_accept_type_arguments: "Non-generic functions may not accept type arguments.", - A_generic_type_may_not_reference_itself_with_a_wrapped_form_of_its_own_type_parameters: "A generic type may not reference itself with a wrapped form of its own type parameters.", - A_rest_parameter_must_be_of_an_array_type: "A rest parameter must be of an array type.", - Overload_signature_implementation_cannot_use_specialized_type: "Overload signature implementation cannot use specialized type.", - Export_assignments_may_only_be_used_at_the_top_level_of_external_modules: "Export assignments may only be used at the top-level of external modules.", - Export_assignments_may_only_be_made_with_variables_functions_classes_interfaces_enums_and_internal_modules: "Export assignments may only be made with variables, functions, classes, interfaces, enums and internal modules.", - Only_public_methods_of_the_base_class_are_accessible_via_the_super_keyword: "Only public methods of the base class are accessible via the 'super' keyword.", - Numeric_indexer_type_0_must_be_assignable_to_string_indexer_type_1: "Numeric indexer type '{0}' must be assignable to string indexer type '{1}'.", - Numeric_indexer_type_0_must_be_assignable_to_string_indexer_type_1_NL_2: "Numeric indexer type '{0}' must be assignable to string indexer type '{1}':{NL}{2}", - All_numerically_named_properties_must_be_assignable_to_numeric_indexer_type_0: "All numerically named properties must be assignable to numeric indexer type '{0}'.", - All_numerically_named_properties_must_be_assignable_to_numeric_indexer_type_0_NL_1: "All numerically named properties must be assignable to numeric indexer type '{0}':{NL}{1}", - All_named_properties_must_be_assignable_to_string_indexer_type_0: "All named properties must be assignable to string indexer type '{0}'.", - All_named_properties_must_be_assignable_to_string_indexer_type_0_NL_1: "All named properties must be assignable to string indexer type '{0}':{NL}{1}", - A_parameter_initializer_is_only_allowed_in_a_function_or_constructor_implementation: "A parameter initializer is only allowed in a function or constructor implementation.", - Function_expression_declared_a_non_void_return_type_but_has_no_return_expression: "Function expression declared a non-void return type, but has no return expression.", - Import_declaration_referencing_identifier_from_internal_module_can_only_be_made_with_variables_functions_classes_interfaces_enums_and_internal_modules: "Import declaration referencing identifier from internal module can only be made with variables, functions, classes, interfaces, enums and internal modules.", - Module_0_has_no_exported_member_1: "Module '{0}' has no exported member '{1}'.", - Unable_to_resolve_module_reference_0: "Unable to resolve module reference '{0}'.", - Could_not_find_module_0_in_module_1: "Could not find module '{0}' in module '{1}'.", - Exported_import_declaration_0_is_assigned_value_with_type_that_has_or_is_using_private_type_1: "Exported import declaration '{0}' is assigned value with type that has or is using private type '{1}'.", - Exported_import_declaration_0_is_assigned_value_with_type_that_is_using_inaccessible_module_1: "Exported import declaration '{0}' is assigned value with type that is using inaccessible module '{1}'.", - Exported_import_declaration_0_is_assigned_type_that_has_or_is_using_private_type_1: "Exported import declaration '{0}' is assigned type that has or is using private type '{1}'.", - Exported_import_declaration_0_is_assigned_type_that_is_using_inaccessible_module_1: "Exported import declaration '{0}' is assigned type that is using inaccessible module '{1}'.", - Exported_import_declaration_0_is_assigned_container_that_is_or_is_using_inaccessible_module_1: "Exported import declaration '{0}' is assigned container that is or is using inaccessible module '{1}'.", - Type_name_0_in_extends_clause_does_not_reference_constructor_function_for_1: "Type name '{0}' in extends clause does not reference constructor function for '{1}'.", - Internal_module_reference_0_in_import_declaration_does_not_reference_module_instance_for_1: "Internal module reference '{0}' in import declaration does not reference module instance for '{1}'.", - Module_0_cannot_merge_with_previous_declaration_of_1_in_a_different_file_2: "Module '{0}' cannot merge with previous declaration of '{1}' in a different file '{2}'.", - Interface_0_cannot_simultaneously_extend_types_1_and_2_NL_3: "Interface '{0}' cannot simultaneously extend types '{1}' and '{2}':{NL}{3}", - Initializer_of_parameter_0_cannot_reference_identifier_1_declared_after_it: "Initializer of parameter '{0}' cannot reference identifier '{1}' declared after it.", - Ambient_external_module_declaration_cannot_be_reopened: "Ambient external module declaration cannot be reopened.", - All_declarations_of_merged_declaration_0_must_be_exported_or_not_exported: "All declarations of merged declaration '{0}' must be exported or not exported.", - super_cannot_be_referenced_in_constructor_arguments: "'super' cannot be referenced in constructor arguments.", - Return_type_of_constructor_signature_must_be_assignable_to_the_instance_type_of_the_class: "Return type of constructor signature must be assignable to the instance type of the class.", - Ambient_external_module_declaration_must_be_defined_in_global_context: "Ambient external module declaration must be defined in global context.", - Ambient_external_module_declaration_cannot_specify_relative_module_name: "Ambient external module declaration cannot specify relative module name.", - Import_declaration_in_an_ambient_external_module_declaration_cannot_reference_external_module_through_relative_external_module_name: "Import declaration in an ambient external module declaration cannot reference external module through relative external module name.", - No_best_common_type_exists_among_return_expressions: "No best common type exists among return expressions.", - Import_declaration_cannot_refer_to_external_module_reference_when_noResolve_option_is_set: "Import declaration cannot refer to external module reference when --noResolve option is set.", - Duplicate_identifier_this_Compiler_uses_variable_declaration_this_to_capture_this_reference: "Duplicate identifier '_this'. Compiler uses variable declaration '_this' to capture 'this' reference.", - Duplicate_identifier_super_Compiler_uses_super_to_capture_base_class_reference: "Duplicate identifier '_super'. Compiler uses '_super' to capture base class reference.", - Expression_resolves_to_variable_declaration_this_that_compiler_uses_to_capture_this_reference: "Expression resolves to variable declaration '_this' that compiler uses to capture 'this' reference.", - Expression_resolves_to_super_that_compiler_uses_to_capture_base_class_reference: "Expression resolves to '_super' that compiler uses to capture base class reference.", - TypeParameter_0_of_constructor_signature_from_exported_interface_has_or_is_using_private_type_1: "TypeParameter '{0}' of constructor signature from exported interface has or is using private type '{1}'.", - TypeParameter_0_of_call_signature_from_exported_interface_has_or_is_using_private_type_1: "TypeParameter '{0}' of call signature from exported interface has or is using private type '{1}'.", - TypeParameter_0_of_public_static_method_from_exported_class_has_or_is_using_private_type_1: "TypeParameter '{0}' of public static method from exported class has or is using private type '{1}'.", - TypeParameter_0_of_public_method_from_exported_class_has_or_is_using_private_type_1: "TypeParameter '{0}' of public method from exported class has or is using private type '{1}'.", - TypeParameter_0_of_method_from_exported_interface_has_or_is_using_private_type_1: "TypeParameter '{0}' of method from exported interface has or is using private type '{1}'.", - TypeParameter_0_of_exported_function_has_or_is_using_private_type_1: "TypeParameter '{0}' of exported function has or is using private type '{1}'.", - TypeParameter_0_of_constructor_signature_from_exported_interface_is_using_inaccessible_module_1: "TypeParameter '{0}' of constructor signature from exported interface is using inaccessible module {1}.", - TypeParameter_0_of_call_signature_from_exported_interface_is_using_inaccessible_module_1: "TypeParameter '{0}' of call signature from exported interface is using inaccessible module {1}", - TypeParameter_0_of_public_static_method_from_exported_class_is_using_inaccessible_module_1: "TypeParameter '{0}' of public static method from exported class is using inaccessible module {1}.", - TypeParameter_0_of_public_method_from_exported_class_is_using_inaccessible_module_1: "TypeParameter '{0}' of public method from exported class is using inaccessible module {1}.", - TypeParameter_0_of_method_from_exported_interface_is_using_inaccessible_module_1: "TypeParameter '{0}' of method from exported interface is using inaccessible module {1}.", - TypeParameter_0_of_exported_function_is_using_inaccessible_module_1: "TypeParameter '{0}' of exported function is using inaccessible module {1}.", - TypeParameter_0_of_exported_class_has_or_is_using_private_type_1: "TypeParameter '{0}' of exported class has or is using private type '{1}'.", - TypeParameter_0_of_exported_interface_has_or_is_using_private_type_1: "TypeParameter '{0}' of exported interface has or is using private type '{1}'.", - TypeParameter_0_of_exported_class_is_using_inaccessible_module_1: "TypeParameter '{0}' of exported class is using inaccessible module {1}.", - TypeParameter_0_of_exported_interface_is_using_inaccessible_module_1: "TypeParameter '{0}' of exported interface is using inaccessible module {1}.", - Duplicate_identifier_i_Compiler_uses_i_to_initialize_rest_parameter: "Duplicate identifier '_i'. Compiler uses '_i' to initialize rest parameter.", - Duplicate_identifier_arguments_Compiler_uses_arguments_to_initialize_rest_parameters: "Duplicate identifier 'arguments'. Compiler uses 'arguments' to initialize rest parameters.", - No_best_common_type_exists_between_0_and_1: "No best common type exists between '{0}' and '{1}'.", - No_best_common_type_exists_between_0_1_and_2: "No best common type exists between '{0}', '{1}', and '{2}'.", - Duplicate_identifier_0_Compiler_reserves_name_1_in_top_level_scope_of_an_external_module: "Duplicate identifier '{0}'. Compiler reserves name '{1}' in top level scope of an external module.", - Constraint_of_a_type_parameter_cannot_reference_any_type_parameter_from_the_same_type_parameter_list: "Constraint of a type parameter cannot reference any type parameter from the same type parameter list.", - Initializer_of_instance_member_variable_0_cannot_reference_identifier_1_declared_in_the_constructor: "Initializer of instance member variable '{0}' cannot reference identifier '{1}' declared in the constructor.", - Parameter_0_cannot_be_referenced_in_its_initializer: "Parameter '{0}' cannot be referenced in its initializer.", - Duplicate_string_index_signature: "Duplicate string index signature.", - Duplicate_number_index_signature: "Duplicate number index signature.", - All_declarations_of_an_interface_must_have_identical_type_parameters: "All declarations of an interface must have identical type parameters.", - Expression_resolves_to_variable_declaration_i_that_compiler_uses_to_initialize_rest_parameter: "Expression resolves to variable declaration '_i' that compiler uses to initialize rest parameter.", - Neither_type_0_nor_type_1_is_assignable_to_the_other: "Neither type '{0}' nor type '{1}' is assignable to the other.", - Neither_type_0_nor_type_1_is_assignable_to_the_other_NL_2: "Neither type '{0}' nor type '{1}' is assignable to the other:{NL}{2}", - Duplicate_function_implementation: "Duplicate function implementation.", - Function_implementation_expected: "Function implementation expected.", - Function_overload_name_must_be_0: "Function overload name must be '{0}'.", - Constructor_implementation_expected: "Constructor implementation expected.", - Class_name_cannot_be_0: "Class name cannot be '{0}'.", - Interface_name_cannot_be_0: "Interface name cannot be '{0}'.", - Enum_name_cannot_be_0: "Enum name cannot be '{0}'.", - A_module_cannot_have_multiple_export_assignments: "A module cannot have multiple export assignments.", - Export_assignment_not_allowed_in_module_with_exported_element: "Export assignment not allowed in module with exported element.", - A_parameter_property_is_only_allowed_in_a_constructor_implementation: "A parameter property is only allowed in a constructor implementation.", - Function_overload_must_be_static: "Function overload must be static.", - Function_overload_must_not_be_static: "Function overload must not be static.", - Type_0_is_missing_property_1_from_type_2: "Type '{0}' is missing property '{1}' from type '{2}'.", - Types_of_property_0_of_types_1_and_2_are_incompatible: "Types of property '{0}' of types '{1}' and '{2}' are incompatible.", - Types_of_property_0_of_types_1_and_2_are_incompatible_NL_3: "Types of property '{0}' of types '{1}' and '{2}' are incompatible:{NL}{3}", - Property_0_defined_as_private_in_type_1_is_defined_as_public_in_type_2: "Property '{0}' defined as private in type '{1}' is defined as public in type '{2}'.", - Property_0_defined_as_public_in_type_1_is_defined_as_private_in_type_2: "Property '{0}' defined as public in type '{1}' is defined as private in type '{2}'.", - Types_0_and_1_define_property_2_as_private: "Types '{0}' and '{1}' define property '{2}' as private.", - Call_signatures_of_types_0_and_1_are_incompatible: "Call signatures of types '{0}' and '{1}' are incompatible.", - Call_signatures_of_types_0_and_1_are_incompatible_NL_2: "Call signatures of types '{0}' and '{1}' are incompatible:{NL}{2}", - Type_0_requires_a_call_signature_but_type_1_lacks_one: "Type '{0}' requires a call signature, but type '{1}' lacks one.", - Construct_signatures_of_types_0_and_1_are_incompatible: "Construct signatures of types '{0}' and '{1}' are incompatible.", - Construct_signatures_of_types_0_and_1_are_incompatible_NL_2: "Construct signatures of types '{0}' and '{1}' are incompatible:{NL}{2}", - Type_0_requires_a_construct_signature_but_type_1_lacks_one: "Type '{0}' requires a construct signature, but type '{1}' lacks one.", - Index_signatures_of_types_0_and_1_are_incompatible: "Index signatures of types '{0}' and '{1}' are incompatible.", - Index_signatures_of_types_0_and_1_are_incompatible_NL_2: "Index signatures of types '{0}' and '{1}' are incompatible:{NL}{2}", - Call_signature_expects_0_or_fewer_parameters: "Call signature expects {0} or fewer parameters.", - Could_not_apply_type_0_to_argument_1_which_is_of_type_2: "Could not apply type '{0}' to argument {1} which is of type '{2}'.", - Class_0_defines_instance_member_accessor_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.", - Class_0_defines_instance_member_property_1_but_extended_class_2_defines_it_as_instance_member_function: "Class '{0}' defines instance member property '{1}', but extended class '{2}' defines it as instance member function.", - 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 accessor.", - Class_0_defines_instance_member_function_1_but_extended_class_2_defines_it_as_instance_member_property: "Class '{0}' defines instance member function '{1}', but extended class '{2}' defines it as instance member property.", - Types_of_static_property_0_of_class_1_and_class_2_are_incompatible: "Types of static property '{0}' of class '{1}' and class '{2}' are incompatible.", - Types_of_static_property_0_of_class_1_and_class_2_are_incompatible_NL_3: "Types of static property '{0}' of class '{1}' and class '{2}' are incompatible:{NL}{3}", - Type_reference_cannot_refer_to_container_0: "Type reference cannot refer to container '{0}'.", - Type_reference_must_refer_to_type: "Type reference must refer to type.", - In_enums_with_multiple_declarations_only_one_declaration_can_omit_an_initializer_for_the_first_enum_element: "In enums with multiple declarations only one declaration can omit an initializer for the first enum element.", - _0_overload_s: " (+ {0} overload(s))", - Variable_declaration_cannot_have_the_same_name_as_an_import_declaration: "Variable declaration cannot have the same name as an import declaration.", - Signature_expected_0_type_arguments_got_1_instead: "Signature expected {0} type arguments, got {1} instead.", - Property_0_defined_as_optional_in_type_1_but_is_required_in_type_2: "Property '{0}' defined as optional in type '{1}', but is required in type '{2}'.", - Types_0_and_1_originating_in_infinitely_expanding_type_reference_do_not_refer_to_same_named_type: "Types '{0}' and '{1}' originating in infinitely expanding type reference do not refer to same named type.", - Types_0_and_1_originating_in_infinitely_expanding_type_reference_have_incompatible_type_arguments: "Types '{0}' and '{1}' originating in infinitely expanding type reference have incompatible type arguments.", - Types_0_and_1_originating_in_infinitely_expanding_type_reference_have_incompatible_type_arguments_NL_2: "Types '{0}' and '{1}' originating in infinitely expanding type reference have incompatible type arguments:{NL}{2}", - Named_properties_0_of_types_1_and_2_are_not_identical: "Named properties '{0}' of types '{1}' and '{2}' are not identical.", - Types_of_string_indexer_of_types_0_and_1_are_not_identical: "Types of string indexer of types '{0}' and '{1}' are not identical.", - Types_of_number_indexer_of_types_0_and_1_are_not_identical: "Types of number indexer of types '{0}' and '{1}' are not identical.", - Type_of_number_indexer_in_type_0_is_not_assignable_to_string_indexer_type_in_type_1_NL_2: "Type of number indexer in type '{0}' is not assignable to string indexer type in type '{1}'.{NL}{2}", - Type_of_property_0_in_type_1_is_not_assignable_to_string_indexer_type_in_type_2_NL_3: "Type of property '{0}' in type '{1}' is not assignable to string indexer type in type '{2}'.{NL}{3}", - Type_of_property_0_in_type_1_is_not_assignable_to_number_indexer_type_in_type_2_NL_3: "Type of property '{0}' in type '{1}' is not assignable to number indexer type in type '{2}'.{NL}{3}", - Static_property_0_defined_as_private_in_type_1_is_defined_as_public_in_type_2: "Static property '{0}' defined as private in type '{1}' is defined as public in type '{2}'.", - Static_property_0_defined_as_public_in_type_1_is_defined_as_private_in_type_2: "Static property '{0}' defined as public in type '{1}' is defined as private in type '{2}'.", - Types_0_and_1_define_static_property_2_as_private: "Types '{0}' and '{1}' define static property '{2}' as private.", - Current_host_does_not_support_0_option: "Current host does not support '{0}' option.", - ECMAScript_target_version_0_not_supported_Specify_a_valid_target_version_1_default_or_2: "ECMAScript target version '{0}' not supported. Specify a valid target version: '{1}' (default), or '{2}'", - Argument_for_0_option_must_be_1_or_2: "Argument for '{0}' option must be '{1}' or '{2}'", - Could_not_find_file_0: "Could not find file: '{0}'.", - A_file_cannot_have_a_reference_to_itself: "A file cannot have a reference to itself.", - Cannot_resolve_referenced_file_0: "Cannot resolve referenced file: '{0}'.", - Cannot_find_the_common_subdirectory_path_for_the_input_files: "Cannot find the common subdirectory path for the input files.", - Emit_Error_0: "Emit Error: {0}.", - Cannot_read_file_0_1: "Cannot read file '{0}': {1}", - Unsupported_file_encoding: "Unsupported file encoding.", - Locale_must_be_of_the_form_language_or_language_territory_For_example_0_or_1: "Locale must be of the form or -. For example '{0}' or '{1}'.", - Unsupported_locale_0: "Unsupported locale: '{0}'.", - Execution_Failed_NL: "Execution Failed.{NL}", - Invalid_call_to_up: "Invalid call to 'up'", - Invalid_call_to_down: "Invalid call to 'down'", - Base64_value_0_finished_with_a_continuation_bit: "Base64 value '{0}' finished with a continuation bit.", - Unknown_compiler_option_0: "Unknown compiler option '{0}'", - Expected_0_arguments_to_message_got_1_instead: "Expected {0} arguments to message, got {1} instead.", - Expected_the_message_0_to_have_1_arguments_but_it_had_2: "Expected the message '{0}' to have {1} arguments, but it had {2}", - Could_not_delete_file_0: "Could not delete file '{0}'", - Could_not_create_directory_0: "Could not create directory '{0}'", - Error_while_executing_file_0: "Error while executing file '{0}': ", - Cannot_compile_external_modules_unless_the_module_flag_is_provided: "Cannot compile external modules unless the '--module' flag is provided.", - Option_mapRoot_cannot_be_specified_without_specifying_sourcemap_option: "Option mapRoot cannot be specified without specifying sourcemap option.", - Option_sourceRoot_cannot_be_specified_without_specifying_sourcemap_option: "Option sourceRoot cannot be specified without specifying sourcemap option.", - Options_mapRoot_and_sourceRoot_cannot_be_specified_without_specifying_sourcemap_option: "Options mapRoot and sourceRoot cannot be specified without specifying sourcemap option.", - Option_0_specified_without_1: "Option '{0}' specified without '{1}'", - codepage_option_not_supported_on_current_platform: "'codepage' option not supported on current platform.", - Concatenate_and_emit_output_to_single_file: "Concatenate and emit output to single file.", - Generates_corresponding_0_file: "Generates corresponding {0} file.", - Specifies_the_location_where_debugger_should_locate_map_files_instead_of_generated_locations: "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: "Specifies the location where debugger should locate TypeScript files instead of source locations.", - Watch_input_files: "Watch input files.", - Redirect_output_structure_to_the_directory: "Redirect output structure to the directory.", - Do_not_emit_comments_to_output: "Do not emit comments to output.", - Skip_resolution_and_preprocessing: "Skip resolution and preprocessing.", - Specify_ECMAScript_target_version_0_default_or_1: "Specify ECMAScript target version: '{0}' (default), or '{1}'", - Specify_module_code_generation_0_or_1: "Specify module code generation: '{0}' or '{1}'", - Print_this_message: "Print this message.", - Print_the_compiler_s_version_0: "Print the compiler's version: {0}", - Allow_use_of_deprecated_0_keyword_when_referencing_an_external_module: "Allow use of deprecated '{0}' keyword when referencing an external module.", - Specify_locale_for_errors_and_messages_For_example_0_or_1: "Specify locale for errors and messages. For example '{0}' or '{1}'", - Syntax_0: "Syntax: {0}", - options: "options", - file1: "file", - Examples: "Examples:", - Options: "Options:", - Insert_command_line_options_and_files_from_a_file: "Insert command line options and files from a file.", - Version_0: "Version {0}", - Use_the_0_flag_to_see_options: "Use the '{0}' flag to see options.", - NL_Recompiling_0: "{NL}Recompiling ({0}):", - STRING: "STRING", - KIND: "KIND", - file2: "FILE", - VERSION: "VERSION", - LOCATION: "LOCATION", - DIRECTORY: "DIRECTORY", - NUMBER: "NUMBER", - Specify_the_codepage_to_use_when_opening_source_files: "Specify the codepage to use when opening source files.", - Additional_locations: "Additional locations:", - This_version_of_the_Javascript_runtime_does_not_support_the_0_function: "This version of the Javascript runtime does not support the '{0}' function.", - Unknown_rule: "Unknown rule.", - Invalid_line_number_0: "Invalid line number ({0})", - Warn_on_expressions_and_declarations_with_an_implied_any_type: "Warn on expressions and declarations with an implied 'any' type.", - Variable_0_implicitly_has_an_any_type: "Variable '{0}' implicitly has an 'any' type.", - Parameter_0_of_1_implicitly_has_an_any_type: "Parameter '{0}' of '{1}' implicitly has an 'any' type.", - Parameter_0_of_function_type_implicitly_has_an_any_type: "Parameter '{0}' of function type implicitly has an 'any' type.", - Member_0_of_object_type_implicitly_has_an_any_type: "Member '{0}' of object type implicitly has an 'any' type.", - new_expression_which_lacks_a_constructor_signature_implicitly_has_an_any_type: "'new' expression, which lacks a constructor signature, implicitly has an 'any' type.", - _0_which_lacks_return_type_annotation_implicitly_has_an_any_return_type: "'{0}', which lacks return-type annotation, implicitly has an 'any' return type.", - Function_expression_which_lacks_return_type_annotation_implicitly_has_an_any_return_type: "Function expression, which lacks return-type annotation, implicitly has an 'any' return type.", - Parameter_0_of_lambda_function_implicitly_has_an_any_type: "Parameter '{0}' of lambda function implicitly has an 'any' type.", - Constructor_signature_which_lacks_return_type_annotation_implicitly_has_an_any_return_type: "Constructor signature, which lacks return-type annotation, implicitly has an 'any' return type.", - Lambda_Function_which_lacks_return_type_annotation_implicitly_has_an_any_return_type: "Lambda Function, which lacks return-type annotation, implicitly has an 'any' return type.", - Array_Literal_implicitly_has_an_any_type_from_widening: "Array Literal implicitly has an 'any' type from widening.", - _0_which_lacks_get_accessor_and_parameter_type_annotation_on_set_accessor_implicitly_has_an_any_type: "'{0}', which lacks 'get' accessor and parameter type annotation on 'set' accessor, implicitly has an 'any' type.", - Index_signature_of_object_type_implicitly_has_an_any_type: "Index signature of object type implicitly has an 'any' type.", - Object_literal_s_property_0_implicitly_has_an_any_type_from_widening: "Object literal's property '{0}' implicitly has an 'any' type from widening." - }; -})(TypeScript || (TypeScript = {})); -var TypeScript; -(function (TypeScript) { - (function (DiagnosticCategory) { - DiagnosticCategory[DiagnosticCategory["Warning"] = 0] = "Warning"; - DiagnosticCategory[DiagnosticCategory["Error"] = 1] = "Error"; - DiagnosticCategory[DiagnosticCategory["Message"] = 2] = "Message"; - DiagnosticCategory[DiagnosticCategory["NoPrefix"] = 3] = "NoPrefix"; - })(TypeScript.DiagnosticCategory || (TypeScript.DiagnosticCategory = {})); - var DiagnosticCategory = TypeScript.DiagnosticCategory; -})(TypeScript || (TypeScript = {})); -var TypeScript; -(function (TypeScript) { - TypeScript.diagnosticInformationMap = { - "error TS{0}: {1}": { "code": 0, "category": 3 /* NoPrefix */ }, - "warning TS{0}: {1}": { "code": 1, "category": 3 /* NoPrefix */ }, - "Unrecognized escape sequence.": { "code": 1000, "category": 1 /* Error */ }, - "Unexpected character {0}.": { "code": 1001, "category": 1 /* Error */ }, - "Unterminated string literal.": { "code": 1002, "category": 1 /* Error */ }, - "Identifier expected.": { "code": 1003, "category": 1 /* Error */ }, - "'{0}' keyword expected.": { "code": 1004, "category": 1 /* Error */ }, - "'{0}' expected.": { "code": 1005, "category": 1 /* Error */ }, - "Identifier expected; '{0}' is a keyword.": { "code": 1006, "category": 1 /* Error */ }, - "Automatic semicolon insertion not allowed.": { "code": 1007, "category": 1 /* Error */ }, - "Unexpected token; '{0}' expected.": { "code": 1008, "category": 1 /* Error */ }, - "Trailing comma not allowed.": { "code": 1009, "category": 1 /* Error */ }, - "'*/' expected.": { "code": 1010, "category": 1 /* Error */ }, - "'public' or 'private' modifier must precede 'static'.": { "code": 1011, "category": 1 /* Error */ }, - "Unexpected token.": { "code": 1012, "category": 1 /* Error */ }, - "Catch clause parameter cannot have a type annotation.": { "code": 1013, "category": 1 /* Error */ }, - "A rest parameter must be last in a parameter list.": { "code": 1014, "category": 1 /* Error */ }, - "Parameter cannot have question mark and initializer.": { "code": 1015, "category": 1 /* Error */ }, - "A required parameter cannot follow an optional parameter.": { "code": 1016, "category": 1 /* Error */ }, - "Index signatures cannot have rest parameters.": { "code": 1017, "category": 1 /* Error */ }, - "Index signature parameter cannot have modifiers.": { "code": 1018, "category": 1 /* Error */ }, - "Index signature parameter cannot have a question mark.": { "code": 1019, "category": 1 /* Error */ }, - "Index signature parameter cannot have an initializer.": { "code": 1020, "category": 1 /* Error */ }, - "Index signature must have a type annotation.": { "code": 1021, "category": 1 /* Error */ }, - "Index signature parameter must have a type annotation.": { "code": 1022, "category": 1 /* Error */ }, - "Index signature parameter type must be 'string' or 'number'.": { "code": 1023, "category": 1 /* Error */ }, - "'extends' clause already seen.": { "code": 1024, "category": 1 /* Error */ }, - "'extends' clause must precede 'implements' clause.": { "code": 1025, "category": 1 /* Error */ }, - "Classes can only extend a single class.": { "code": 1026, "category": 1 /* Error */ }, - "'implements' clause already seen.": { "code": 1027, "category": 1 /* Error */ }, - "Accessibility modifier already seen.": { "code": 1028, "category": 1 /* Error */ }, - "'{0}' modifier must precede '{1}' modifier.": { "code": 1029, "category": 1 /* Error */ }, - "'{0}' modifier already seen.": { "code": 1030, "category": 1 /* Error */ }, - "'{0}' modifier cannot appear on a class element.": { "code": 1031, "category": 1 /* Error */ }, - "Interface declaration cannot have 'implements' clause.": { "code": 1032, "category": 1 /* Error */ }, - "'super' invocation cannot have type arguments.": { "code": 1034, "category": 1 /* Error */ }, - "Only ambient modules can use quoted names.": { "code": 1035, "category": 1 /* Error */ }, - "Statements are not allowed in ambient contexts.": { "code": 1036, "category": 1 /* Error */ }, - "A function implementation cannot be declared in an ambient context.": { "code": 1037, "category": 1 /* Error */ }, - "A 'declare' modifier cannot be used in an already ambient context.": { "code": 1038, "category": 1 /* Error */ }, - "Initializers are not allowed in ambient contexts.": { "code": 1039, "category": 1 /* Error */ }, - "'{0}' modifier cannot appear on a module element.": { "code": 1044, "category": 1 /* Error */ }, - "A 'declare' modifier cannot be used with an interface declaration.": { "code": 1045, "category": 1 /* Error */ }, - "A 'declare' modifier is required for a top level declaration in a .d.ts file.": { "code": 1046, "category": 1 /* Error */ }, - "A rest parameter cannot be optional.": { "code": 1047, "category": 1 /* Error */ }, - "A rest parameter cannot have an initializer.": { "code": 1048, "category": 1 /* Error */ }, - "'set' accessor must have exactly one parameter.": { "code": 1049, "category": 1 /* Error */ }, - "'set' accessor parameter cannot be optional.": { "code": 1051, "category": 1 /* Error */ }, - "'set' accessor parameter cannot have an initializer.": { "code": 1052, "category": 1 /* Error */ }, - "'set' accessor cannot have rest parameter.": { "code": 1053, "category": 1 /* Error */ }, - "'get' accessor cannot have parameters.": { "code": 1054, "category": 1 /* Error */ }, - "Modifiers cannot appear here.": { "code": 1055, "category": 1 /* Error */ }, - "Accessors are only available when targeting ECMAScript 5 and higher.": { "code": 1056, "category": 1 /* Error */ }, - "Enum member must have initializer.": { "code": 1061, "category": 1 /* Error */ }, - "Export assignment cannot be used in internal modules.": { "code": 1063, "category": 1 /* Error */ }, - "Ambient enum elements can only have integer literal initializers.": { "code": 1066, "category": 1 /* Error */ }, - "module, class, interface, enum, import or statement": { "code": 1067, "category": 3 /* NoPrefix */ }, - "constructor, function, accessor or variable": { "code": 1068, "category": 3 /* NoPrefix */ }, - "statement": { "code": 1069, "category": 3 /* NoPrefix */ }, - "case or default clause": { "code": 1070, "category": 3 /* NoPrefix */ }, - "identifier": { "code": 1071, "category": 3 /* NoPrefix */ }, - "call, construct, index, property or function signature": { "code": 1072, "category": 3 /* NoPrefix */ }, - "expression": { "code": 1073, "category": 3 /* NoPrefix */ }, - "type name": { "code": 1074, "category": 3 /* NoPrefix */ }, - "property or accessor": { "code": 1075, "category": 3 /* NoPrefix */ }, - "parameter": { "code": 1076, "category": 3 /* NoPrefix */ }, - "type": { "code": 1077, "category": 3 /* NoPrefix */ }, - "type parameter": { "code": 1078, "category": 3 /* NoPrefix */ }, - "A 'declare' modifier cannot be used with an import declaration.": { "code": 1079, "category": 1 /* Error */ }, - "Invalid 'reference' directive syntax.": { "code": 1084, "category": 1 /* Error */ }, - "Octal literals are not available when targeting ECMAScript 5 and higher.": { "code": 1085, "category": 1 /* Error */ }, - "Accessors are not allowed in ambient contexts.": { "code": 1086, "category": 1 /* Error */ }, - "'{0}' modifier cannot appear on a constructor declaration.": { "code": 1089, "category": 1 /* Error */ }, - "'{0}' modifier cannot appear on a parameter.": { "code": 1090, "category": 1 /* Error */ }, - "Only a single variable declaration is allowed in a 'for...in' statement.": { "code": 1091, "category": 1 /* Error */ }, - "Type parameters cannot appear on a constructor declaration.": { "code": 1092, "category": 1 /* Error */ }, - "Type annotation cannot appear on a constructor declaration.": { "code": 1093, "category": 1 /* Error */ }, - "Type parameters cannot appear on an accessor.": { "code": 1094, "category": 1 /* Error */ }, - "Type annotation cannot appear on a 'set' accessor.": { "code": 1095, "category": 1 /* Error */ }, - "Index signature must have exactly one parameter.": { "code": 1096, "category": 1 /* Error */ }, - "'{0}' list cannot be empty.": { "code": 1097, "category": 1 /* Error */ }, - "variable declaration": { "code": 1098, "category": 3 /* NoPrefix */ }, - "type argument": { "code": 1099, "category": 3 /* NoPrefix */ }, - "Invalid use of '{0}' in strict mode.": { "code": 1100, "category": 1 /* Error */ }, - "'with' statements are not allowed in strict mode.": { "code": 1101, "category": 1 /* Error */ }, - "'delete' cannot be called on an identifier in strict mode.": { "code": 1102, "category": 1 /* Error */ }, - "Invalid left-hand side in 'for...in' statement.": { "code": 1103, "category": 1 /* Error */ }, - "'continue' statement can only be used within an enclosing iteration statement.": { "code": 1104, "category": 1 /* Error */ }, - "'break' statement can only be used within an enclosing iteration or switch statement.": { "code": 1105, "category": 1 /* Error */ }, - "Jump target not found.": { "code": 1106, "category": 1 /* Error */ }, - "Jump target cannot cross function boundary.": { "code": 1107, "category": 1 /* Error */ }, - "'return' statement must be contained within a function body.": { "code": 1108, "category": 1 /* Error */ }, - "Expression expected.": { "code": 1109, "category": 1 /* Error */ }, - "Type expected.": { "code": 1110, "category": 1 /* Error */ }, - "Template literal cannot be used as an element name.": { "code": 1111, "category": 1 /* Error */ }, - "Computed property names cannot be used here.": { "code": 1112, "category": 1 /* Error */ }, - "'yield' expression must be contained within a generator declaration.": { "code": 1113, "category": 1 /* Error */ }, - "Unterminated regular expression literal.": { "code": 1114, "category": 1 /* Error */ }, - "Unterminated template literal.": { "code": 1115, "category": 1 /* Error */ }, - "'await' expression must be contained within an 'async' declaration.": { "code": 1116, "category": 1 /* Error */ }, - "'async' arrow function parameters must be parenthesized.": { "code": 1117, "category": 1 /* Error */ }, - "A generator declaration cannot have the 'async' modifier.": { "code": 1118, "category": 1 /* Error */ }, - "'async' modifier cannot appear here.": { "code": 1119, "category": 1 /* Error */ }, - "'comma' expression cannot appear in a computed property name.": { "code": 1120, "category": 1 /* Error */ }, - "Duplicate identifier '{0}'.": { "code": 2000, "category": 1 /* Error */ }, - "The name '{0}' does not exist in the current scope.": { "code": 2001, "category": 1 /* Error */ }, - "The name '{0}' does not refer to a value.": { "code": 2002, "category": 1 /* Error */ }, - "'super' can only be used inside a class instance method.": { "code": 2003, "category": 1 /* Error */ }, - "The left-hand side of an assignment expression must be a variable, property or indexer.": { "code": 2004, "category": 1 /* Error */ }, - "Value of type '{0}' is not callable. Did you mean to include 'new'?": { "code": 2161, "category": 1 /* Error */ }, - "Value of type '{0}' is not callable.": { "code": 2006, "category": 1 /* Error */ }, - "Value of type '{0}' is not newable.": { "code": 2007, "category": 1 /* Error */ }, - "An index expression argument must be 'string', 'number', or 'any'.": { "code": 2008, "category": 1 /* Error */ }, - "Operator '{0}' cannot be applied to types '{1}' and '{2}'.": { "code": 2009, "category": 1 /* Error */ }, - "Type '{0}' is not assignable to type '{1}'.": { "code": 2011, "category": 1 /* Error */ }, - "Type '{0}' is not assignable to type '{1}':{NL}{2}": { "code": 2012, "category": 1 /* Error */ }, - "Expected var, class, interface, or module.": { "code": 2013, "category": 1 /* Error */ }, - "Getter '{0}' already declared.": { "code": 2015, "category": 1 /* Error */ }, - "Setter '{0}' already declared.": { "code": 2016, "category": 1 /* Error */ }, - "Exported class '{0}' extends private class '{1}'.": { "code": 2018, "category": 1 /* Error */ }, - "Exported class '{0}' implements private interface '{1}'.": { "code": 2019, "category": 1 /* Error */ }, - "Exported interface '{0}' extends private interface '{1}'.": { "code": 2020, "category": 1 /* Error */ }, - "Exported class '{0}' extends class from inaccessible module {1}.": { "code": 2021, "category": 1 /* Error */ }, - "Exported class '{0}' implements interface from inaccessible module {1}.": { "code": 2022, "category": 1 /* Error */ }, - "Exported interface '{0}' extends interface from inaccessible module {1}.": { "code": 2023, "category": 1 /* Error */ }, - "Public static property '{0}' of exported class has or is using private type '{1}'.": { "code": 2024, "category": 1 /* Error */ }, - "Public property '{0}' of exported class has or is using private type '{1}'.": { "code": 2025, "category": 1 /* Error */ }, - "Property '{0}' of exported interface has or is using private type '{1}'.": { "code": 2026, "category": 1 /* Error */ }, - "Exported variable '{0}' has or is using private type '{1}'.": { "code": 2027, "category": 1 /* Error */ }, - "Public static property '{0}' of exported class is using inaccessible module {1}.": { "code": 2028, "category": 1 /* Error */ }, - "Public property '{0}' of exported class is using inaccessible module {1}.": { "code": 2029, "category": 1 /* Error */ }, - "Property '{0}' of exported interface is using inaccessible module {1}.": { "code": 2030, "category": 1 /* Error */ }, - "Exported variable '{0}' is using inaccessible module {1}.": { "code": 2031, "category": 1 /* Error */ }, - "Parameter '{0}' of constructor from exported class has or is using private type '{1}'.": { "code": 2032, "category": 1 /* Error */ }, - "Parameter '{0}' of public static property setter from exported class has or is using private type '{1}'.": { "code": 2033, "category": 1 /* Error */ }, - "Parameter '{0}' of public property setter from exported class has or is using private type '{1}'.": { "code": 2034, "category": 1 /* Error */ }, - "Parameter '{0}' of constructor signature from exported interface has or is using private type '{1}'.": { "code": 2035, "category": 1 /* Error */ }, - "Parameter '{0}' of call signature from exported interface has or is using private type '{1}'.": { "code": 2036, "category": 1 /* Error */ }, - "Parameter '{0}' of public static method from exported class has or is using private type '{1}'.": { "code": 2037, "category": 1 /* Error */ }, - "Parameter '{0}' of public method from exported class has or is using private type '{1}'.": { "code": 2038, "category": 1 /* Error */ }, - "Parameter '{0}' of method from exported interface has or is using private type '{1}'.": { "code": 2039, "category": 1 /* Error */ }, - "Parameter '{0}' of exported function has or is using private type '{1}'.": { "code": 2040, "category": 1 /* Error */ }, - "Parameter '{0}' of constructor from exported class is using inaccessible module {1}.": { "code": 2041, "category": 1 /* Error */ }, - "Parameter '{0}' of public static property setter from exported class is using inaccessible module {1}.": { "code": 2042, "category": 1 /* Error */ }, - "Parameter '{0}' of public property setter from exported class is using inaccessible module {1}.": { "code": 2043, "category": 1 /* Error */ }, - "Parameter '{0}' of constructor signature from exported interface is using inaccessible module {1}.": { "code": 2044, "category": 1 /* Error */ }, - "Parameter '{0}' of call signature from exported interface is using inaccessible module {1}": { "code": 2045, "category": 1 /* Error */ }, - "Parameter '{0}' of public static method from exported class is using inaccessible module {1}.": { "code": 2046, "category": 1 /* Error */ }, - "Parameter '{0}' of public method from exported class is using inaccessible module {1}.": { "code": 2047, "category": 1 /* Error */ }, - "Parameter '{0}' of method from exported interface is using inaccessible module {1}.": { "code": 2048, "category": 1 /* Error */ }, - "Parameter '{0}' of exported function is using inaccessible module {1}.": { "code": 2049, "category": 1 /* Error */ }, - "Return type of public static property getter from exported class has or is using private type '{0}'.": { "code": 2050, "category": 1 /* Error */ }, - "Return type of public property getter from exported class has or is using private type '{0}'.": { "code": 2051, "category": 1 /* Error */ }, - "Return type of constructor signature from exported interface has or is using private type '{0}'.": { "code": 2052, "category": 1 /* Error */ }, - "Return type of call signature from exported interface has or is using private type '{0}'.": { "code": 2053, "category": 1 /* Error */ }, - "Return type of index signature from exported interface has or is using private type '{0}'.": { "code": 2054, "category": 1 /* Error */ }, - "Return type of public static method from exported class has or is using private type '{0}'.": { "code": 2055, "category": 1 /* Error */ }, - "Return type of public method from exported class has or is using private type '{0}'.": { "code": 2056, "category": 1 /* Error */ }, - "Return type of method from exported interface has or is using private type '{0}'.": { "code": 2057, "category": 1 /* Error */ }, - "Return type of exported function has or is using private type '{0}'.": { "code": 2058, "category": 1 /* Error */ }, - "Return type of public static property getter from exported class is using inaccessible module {0}.": { "code": 2059, "category": 1 /* Error */ }, - "Return type of public property getter from exported class is using inaccessible module {0}.": { "code": 2060, "category": 1 /* Error */ }, - "Return type of constructor signature from exported interface is using inaccessible module {0}.": { "code": 2061, "category": 1 /* Error */ }, - "Return type of call signature from exported interface is using inaccessible module {0}.": { "code": 2062, "category": 1 /* Error */ }, - "Return type of index signature from exported interface is using inaccessible module {0}.": { "code": 2063, "category": 1 /* Error */ }, - "Return type of public static method from exported class is using inaccessible module {0}.": { "code": 2064, "category": 1 /* Error */ }, - "Return type of public method from exported class is using inaccessible module {0}.": { "code": 2065, "category": 1 /* Error */ }, - "Return type of method from exported interface is using inaccessible module {0}.": { "code": 2066, "category": 1 /* Error */ }, - "Return type of exported function is using inaccessible module {0}.": { "code": 2067, "category": 1 /* Error */ }, - "'new T[]' cannot be used to create an array. Use 'new Array()' instead.": { "code": 2068, "category": 1 /* Error */ }, - "A parameter list must follow a generic type argument list. '(' expected.": { "code": 2069, "category": 1 /* Error */ }, - "Multiple constructor implementations are not allowed.": { "code": 2070, "category": 1 /* Error */ }, - "Cannot find external module '{0}'.": { "code": 2071, "category": 1 /* Error */ }, - "Module cannot be aliased to a non-module type.": { "code": 2072, "category": 1 /* Error */ }, - "A class may only extend another class.": { "code": 2073, "category": 1 /* Error */ }, - "A class may only implement another class or interface.": { "code": 2074, "category": 1 /* Error */ }, - "An interface may only extend a class or another interface.": { "code": 2075, "category": 1 /* Error */ }, - "Unable to resolve type.": { "code": 2077, "category": 1 /* Error */ }, - "Unable to resolve type of '{0}'.": { "code": 2078, "category": 1 /* Error */ }, - "Unable to resolve type parameter constraint.": { "code": 2079, "category": 1 /* Error */ }, - "Type parameter constraint cannot be a primitive type.": { "code": 2080, "category": 1 /* Error */ }, - "Supplied parameters do not match any signature of call target.": { "code": 2081, "category": 1 /* Error */ }, - "Supplied parameters do not match any signature of call target:{NL}{0}": { "code": 2082, "category": 1 /* Error */ }, - "Cannot use 'new' with an expression whose type lacks a signature.": { "code": 2083, "category": 1 /* Error */ }, - "Only a void function can be called with the 'new' keyword.": { "code": 2084, "category": 1 /* Error */ }, - "Could not select overload for 'new' expression.": { "code": 2085, "category": 1 /* Error */ }, - "Type '{0}' does not satisfy the constraint '{1}'.": { "code": 2086, "category": 1 /* Error */ }, - "Could not select overload for 'call' expression.": { "code": 2087, "category": 1 /* Error */ }, - "Cannot invoke an expression whose type lacks a call signature.": { "code": 2088, "category": 1 /* Error */ }, - "Calls to 'super' are only valid inside a class.": { "code": 2089, "category": 1 /* Error */ }, - "Generic type '{0}' requires {1} type argument(s).": { "code": 2090, "category": 1 /* Error */ }, - "Type of array literal cannot be determined. Best common type could not be found for array elements.": { "code": 2092, "category": 1 /* Error */ }, - "Could not find enclosing symbol for dotted name '{0}'.": { "code": 2093, "category": 1 /* Error */ }, - "Property '{0}' does not exist on value of type '{1}'.": { "code": 2094, "category": 1 /* Error */ }, - "Cannot find name '{0}'.": { "code": 2095, "category": 1 /* Error */ }, - "'get' and 'set' accessor must have the same type.": { "code": 2096, "category": 1 /* Error */ }, - "'this' cannot be referenced in current location.": { "code": 2097, "category": 1 /* Error */ }, - "Static members cannot reference class type parameters.": { "code": 2099, "category": 1 /* Error */ }, - "Type '{0}' recursively references itself as a base type.": { "code": 2100, "category": 1 /* Error */ }, - "'super' property access is permitted only in a constructor, member function, or member accessor of a derived class.": { "code": 2102, "category": 1 /* Error */ }, - "'super' can only be referenced in a derived class.": { "code": 2103, "category": 1 /* Error */ }, - "A 'super' call must be the first statement in the constructor when a class contains initialized properties or has parameter properties.": { "code": 2104, "category": 1 /* Error */ }, - "Constructors for derived classes must contain a 'super' call.": { "code": 2105, "category": 1 /* Error */ }, - "Super calls are not permitted outside constructors or in nested functions inside constructors.": { "code": 2106, "category": 1 /* Error */ }, - "'{0}.{1}' is inaccessible.": { "code": 2107, "category": 1 /* Error */ }, - "'this' cannot be referenced in a module body.": { "code": 2108, "category": 1 /* Error */ }, - "Invalid '+' expression - types not known to support the addition operator.": { "code": 2111, "category": 1 /* Error */ }, - "The right-hand side of an arithmetic operation must be of type 'any', 'number' or an enum type.": { "code": 2112, "category": 1 /* Error */ }, - "The left-hand side of an arithmetic operation must be of type 'any', 'number' or an enum type.": { "code": 2113, "category": 1 /* Error */ }, - "An arithmetic operand must be of type 'any', 'number' or an enum type.": { "code": 2114, "category": 1 /* Error */ }, - "Variable declarations of a 'for' statement cannot use a type annotation.": { "code": 2115, "category": 1 /* Error */ }, - "Variable declarations of a 'for' statement must be of types 'string' or 'any'.": { "code": 2116, "category": 1 /* Error */ }, - "The right-hand side of a 'for...in' statement must be of type 'any', an object type or a type parameter.": { "code": 2117, "category": 1 /* Error */ }, - "The left-hand side of an 'in' expression must be of types 'any', 'string' or 'number'.": { "code": 2118, "category": 1 /* Error */ }, - "The right-hand side of an 'in' expression must be of type 'any', an object type or a type parameter.": { "code": 2119, "category": 1 /* Error */ }, - "The left-hand side of an 'instanceof' expression must be of type 'any', an object type or a type parameter.": { "code": 2120, "category": 1 /* Error */ }, - "The right-hand side of an 'instanceof' expression must be of type 'any' or of a type assignable to the 'Function' interface type.": { "code": 2121, "category": 1 /* Error */ }, - "Setters cannot return a value.": { "code": 2122, "category": 1 /* Error */ }, - "Tried to query type of uninitialized module '{0}'.": { "code": 2123, "category": 1 /* Error */ }, - "Tried to set variable type to uninitialized module type '{0}'.": { "code": 2124, "category": 1 /* Error */ }, - "Type '{0}' is not generic.": { "code": 2125, "category": 1 /* Error */ }, - "Getters must return a value.": { "code": 2126, "category": 1 /* Error */ }, - "Getter and setter accessors do not agree in visibility.": { "code": 2127, "category": 1 /* Error */ }, - "Invalid left-hand side of assignment expression.": { "code": 2130, "category": 1 /* Error */ }, - "Function declared a non-void return type, but has no return expression.": { "code": 2131, "category": 1 /* Error */ }, - "Cannot resolve return type reference.": { "code": 2132, "category": 1 /* Error */ }, - "Constructors cannot have a return type of 'void'.": { "code": 2133, "category": 1 /* Error */ }, - "Subsequent variable declarations must have the same type. Variable '{0}' must be of type '{1}', but here has type '{2}'.": { "code": 2134, "category": 1 /* Error */ }, - "All symbols within a with block will be resolved to 'any'.": { "code": 2135, "category": 1 /* Error */ }, - "Import declarations in an internal module cannot reference an external module.": { "code": 2136, "category": 1 /* Error */ }, - "Class {0} declares interface {1} but does not implement it:{NL}{2}": { "code": 2137, "category": 1 /* Error */ }, - "Class {0} declares class {1} as an interface but does not implement it:{NL}{2}": { "code": 2138, "category": 1 /* Error */ }, - "The operand of an increment or decrement operator must be a variable, property or indexer.": { "code": 2139, "category": 1 /* Error */ }, - "'this' cannot be referenced in a static property initializer.": { "code": 2140, "category": 1 /* Error */ }, - "Class '{0}' cannot extend class '{1}':{NL}{2}": { "code": 2141, "category": 1 /* Error */ }, - "Interface '{0}' cannot extend class '{1}':{NL}{2}": { "code": 2142, "category": 1 /* Error */ }, - "Interface '{0}' cannot extend interface '{1}':{NL}{2}": { "code": 2143, "category": 1 /* Error */ }, - "Overload signature is not compatible with function definition.": { "code": 2148, "category": 1 /* Error */ }, - "Overload signature is not compatible with function definition:{NL}{0}": { "code": 2149, "category": 1 /* Error */ }, - "Overload signatures must all be public or private.": { "code": 2150, "category": 1 /* Error */ }, - "Overload signatures must all be exported or not exported.": { "code": 2151, "category": 1 /* Error */ }, - "Overload signatures must all be ambient or non-ambient.": { "code": 2152, "category": 1 /* Error */ }, - "Overload signatures must all be optional or required.": { "code": 2153, "category": 1 /* Error */ }, - "Specialized overload signature is not assignable to any non-specialized signature.": { "code": 2154, "category": 1 /* Error */ }, - "'this' cannot be referenced in constructor arguments.": { "code": 2155, "category": 1 /* Error */ }, - "Instance member cannot be accessed off a class.": { "code": 2157, "category": 1 /* Error */ }, - "Untyped function calls may not accept type arguments.": { "code": 2158, "category": 1 /* Error */ }, - "Non-generic functions may not accept type arguments.": { "code": 2159, "category": 1 /* Error */ }, - "A generic type may not reference itself with a wrapped form of its own type parameters.": { "code": 2160, "category": 1 /* Error */ }, - "A rest parameter must be of an array type.": { "code": 2162, "category": 1 /* Error */ }, - "Overload signature implementation cannot use specialized type.": { "code": 2163, "category": 1 /* Error */ }, - "Export assignments may only be used at the top-level of external modules.": { "code": 2164, "category": 1 /* Error */ }, - "Export assignments may only be made with variables, functions, classes, interfaces, enums and internal modules.": { "code": 2165, "category": 1 /* Error */ }, - "Only public methods of the base class are accessible via the 'super' keyword.": { "code": 2166, "category": 1 /* Error */ }, - "Numeric indexer type '{0}' must be assignable to string indexer type '{1}'.": { "code": 2167, "category": 1 /* Error */ }, - "Numeric indexer type '{0}' must be assignable to string indexer type '{1}':{NL}{2}": { "code": 2168, "category": 1 /* Error */ }, - "All numerically named properties must be assignable to numeric indexer type '{0}'.": { "code": 2169, "category": 1 /* Error */ }, - "All numerically named properties must be assignable to numeric indexer type '{0}':{NL}{1}": { "code": 2170, "category": 1 /* Error */ }, - "All named properties must be assignable to string indexer type '{0}'.": { "code": 2171, "category": 1 /* Error */ }, - "All named properties must be assignable to string indexer type '{0}':{NL}{1}": { "code": 2172, "category": 1 /* Error */ }, - "A parameter initializer is only allowed in a function or constructor implementation.": { "code": 2174, "category": 1 /* Error */ }, - "Function expression declared a non-void return type, but has no return expression.": { "code": 2176, "category": 1 /* Error */ }, - "Import declaration referencing identifier from internal module can only be made with variables, functions, classes, interfaces, enums and internal modules.": { "code": 2177, "category": 1 /* Error */ }, - "Module '{0}' has no exported member '{1}'.": { "code": 2178, "category": 1 /* Error */ }, - "Unable to resolve module reference '{0}'.": { "code": 2179, "category": 1 /* Error */ }, - "Could not find module '{0}' in module '{1}'.": { "code": 2180, "category": 1 /* Error */ }, - "Exported import declaration '{0}' is assigned value with type that has or is using private type '{1}'.": { "code": 2181, "category": 1 /* Error */ }, - "Exported import declaration '{0}' is assigned value with type that is using inaccessible module '{1}'.": { "code": 2182, "category": 1 /* Error */ }, - "Exported import declaration '{0}' is assigned type that has or is using private type '{1}'.": { "code": 2183, "category": 1 /* Error */ }, - "Exported import declaration '{0}' is assigned type that is using inaccessible module '{1}'.": { "code": 2184, "category": 1 /* Error */ }, - "Exported import declaration '{0}' is assigned container that is or is using inaccessible module '{1}'.": { "code": 2185, "category": 1 /* Error */ }, - "Type name '{0}' in extends clause does not reference constructor function for '{1}'.": { "code": 2186, "category": 1 /* Error */ }, - "Internal module reference '{0}' in import declaration does not reference module instance for '{1}'.": { "code": 2187, "category": 1 /* Error */ }, - "Module '{0}' cannot merge with previous declaration of '{1}' in a different file '{2}'.": { "code": 2188, "category": 1 /* Error */ }, - "Interface '{0}' cannot simultaneously extend types '{1}' and '{2}':{NL}{3}": { "code": 2189, "category": 1 /* Error */ }, - "Initializer of parameter '{0}' cannot reference identifier '{1}' declared after it.": { "code": 2190, "category": 1 /* Error */ }, - "Ambient external module declaration cannot be reopened.": { "code": 2191, "category": 1 /* Error */ }, - "All declarations of merged declaration '{0}' must be exported or not exported.": { "code": 2192, "category": 1 /* Error */ }, - "'super' cannot be referenced in constructor arguments.": { "code": 2193, "category": 1 /* Error */ }, - "Return type of constructor signature must be assignable to the instance type of the class.": { "code": 2194, "category": 1 /* Error */ }, - "Ambient external module declaration must be defined in global context.": { "code": 2195, "category": 1 /* Error */ }, - "Ambient external module declaration cannot specify relative module name.": { "code": 2196, "category": 1 /* Error */ }, - "Import declaration in an ambient external module declaration cannot reference external module through relative external module name.": { "code": 2197, "category": 1 /* Error */ }, - "No best common type exists among return expressions.": { "code": 2198, "category": 1 /* Error */ }, - "Import declaration cannot refer to external module reference when --noResolve option is set.": { "code": 2199, "category": 1 /* Error */ }, - "Duplicate identifier '_this'. Compiler uses variable declaration '_this' to capture 'this' reference.": { "code": 2200, "category": 1 /* Error */ }, - "Duplicate identifier '_super'. Compiler uses '_super' to capture base class reference.": { "code": 2205, "category": 1 /* Error */ }, - "Expression resolves to variable declaration '_this' that compiler uses to capture 'this' reference.": { "code": 2206, "category": 1 /* Error */ }, - "Expression resolves to '_super' that compiler uses to capture base class reference.": { "code": 2207, "category": 1 /* Error */ }, - "TypeParameter '{0}' of constructor signature from exported interface has or is using private type '{1}'.": { "code": 2208, "category": 1 /* Error */ }, - "TypeParameter '{0}' of call signature from exported interface has or is using private type '{1}'.": { "code": 2209, "category": 1 /* Error */ }, - "TypeParameter '{0}' of public static method from exported class has or is using private type '{1}'.": { "code": 2210, "category": 1 /* Error */ }, - "TypeParameter '{0}' of public method from exported class has or is using private type '{1}'.": { "code": 2211, "category": 1 /* Error */ }, - "TypeParameter '{0}' of method from exported interface has or is using private type '{1}'.": { "code": 2212, "category": 1 /* Error */ }, - "TypeParameter '{0}' of exported function has or is using private type '{1}'.": { "code": 2213, "category": 1 /* Error */ }, - "TypeParameter '{0}' of constructor signature from exported interface is using inaccessible module {1}.": { "code": 2214, "category": 1 /* Error */ }, - "TypeParameter '{0}' of call signature from exported interface is using inaccessible module {1}": { "code": 2215, "category": 1 /* Error */ }, - "TypeParameter '{0}' of public static method from exported class is using inaccessible module {1}.": { "code": 2216, "category": 1 /* Error */ }, - "TypeParameter '{0}' of public method from exported class is using inaccessible module {1}.": { "code": 2217, "category": 1 /* Error */ }, - "TypeParameter '{0}' of method from exported interface is using inaccessible module {1}.": { "code": 2218, "category": 1 /* Error */ }, - "TypeParameter '{0}' of exported function is using inaccessible module {1}.": { "code": 2219, "category": 1 /* Error */ }, - "TypeParameter '{0}' of exported class has or is using private type '{1}'.": { "code": 2220, "category": 1 /* Error */ }, - "TypeParameter '{0}' of exported interface has or is using private type '{1}'.": { "code": 2221, "category": 1 /* Error */ }, - "TypeParameter '{0}' of exported class is using inaccessible module {1}.": { "code": 2222, "category": 1 /* Error */ }, - "TypeParameter '{0}' of exported interface is using inaccessible module {1}.": { "code": 2223, "category": 1 /* Error */ }, - "Duplicate identifier '_i'. Compiler uses '_i' to initialize rest parameter.": { "code": 2224, "category": 1 /* Error */ }, - "Duplicate identifier 'arguments'. Compiler uses 'arguments' to initialize rest parameters.": { "code": 2225, "category": 1 /* Error */ }, - "No best common type exists between '{0}' and '{1}'.": { "code": 2226, "category": 1 /* Error */ }, - "No best common type exists between '{0}', '{1}', and '{2}'.": { "code": 2227, "category": 1 /* Error */ }, - "Duplicate identifier '{0}'. Compiler reserves name '{1}' in top level scope of an external module.": { "code": 2228, "category": 1 /* Error */ }, - "Constraint of a type parameter cannot reference any type parameter from the same type parameter list.": { "code": 2229, "category": 1 /* Error */ }, - "Initializer of instance member variable '{0}' cannot reference identifier '{1}' declared in the constructor.": { "code": 2230, "category": 1 /* Error */ }, - "Parameter '{0}' cannot be referenced in its initializer.": { "code": 2231, "category": 1 /* Error */ }, - "Duplicate string index signature.": { "code": 2232, "category": 1 /* Error */ }, - "Duplicate number index signature.": { "code": 2233, "category": 1 /* Error */ }, - "All declarations of an interface must have identical type parameters.": { "code": 2234, "category": 1 /* Error */ }, - "Expression resolves to variable declaration '_i' that compiler uses to initialize rest parameter.": { "code": 2235, "category": 1 /* Error */ }, - "Neither type '{0}' nor type '{1}' is assignable to the other.": { "code": 2236, "category": 1 /* Error */ }, - "Neither type '{0}' nor type '{1}' is assignable to the other:{NL}{2}": { "code": 2237, "category": 1 /* Error */ }, - "Duplicate function implementation.": { "code": 2237, "category": 1 /* Error */ }, - "Function implementation expected.": { "code": 2238, "category": 1 /* Error */ }, - "Function overload name must be '{0}'.": { "code": 2239, "category": 1 /* Error */ }, - "Constructor implementation expected.": { "code": 2240, "category": 1 /* Error */ }, - "Class name cannot be '{0}'.": { "code": 2241, "category": 1 /* Error */ }, - "Interface name cannot be '{0}'.": { "code": 2242, "category": 1 /* Error */ }, - "Enum name cannot be '{0}'.": { "code": 2243, "category": 1 /* Error */ }, - "A module cannot have multiple export assignments.": { "code": 2244, "category": 1 /* Error */ }, - "Export assignment not allowed in module with exported element.": { "code": 2245, "category": 1 /* Error */ }, - "A parameter property is only allowed in a constructor implementation.": { "code": 2246, "category": 1 /* Error */ }, - "Function overload must be static.": { "code": 2247, "category": 1 /* Error */ }, - "Function overload must not be static.": { "code": 2248, "category": 1 /* Error */ }, - "Type '{0}' is missing property '{1}' from type '{2}'.": { "code": 4000, "category": 3 /* NoPrefix */ }, - "Types of property '{0}' of types '{1}' and '{2}' are incompatible.": { "code": 4001, "category": 3 /* NoPrefix */ }, - "Types of property '{0}' of types '{1}' and '{2}' are incompatible:{NL}{3}": { "code": 4002, "category": 3 /* NoPrefix */ }, - "Property '{0}' defined as private in type '{1}' is defined as public in type '{2}'.": { "code": 4003, "category": 3 /* NoPrefix */ }, - "Property '{0}' defined as public in type '{1}' is defined as private in type '{2}'.": { "code": 4004, "category": 3 /* NoPrefix */ }, - "Types '{0}' and '{1}' define property '{2}' as private.": { "code": 4005, "category": 3 /* NoPrefix */ }, - "Call signatures of types '{0}' and '{1}' are incompatible.": { "code": 4006, "category": 3 /* NoPrefix */ }, - "Call signatures of types '{0}' and '{1}' are incompatible:{NL}{2}": { "code": 4007, "category": 3 /* NoPrefix */ }, - "Type '{0}' requires a call signature, but type '{1}' lacks one.": { "code": 4008, "category": 3 /* NoPrefix */ }, - "Construct signatures of types '{0}' and '{1}' are incompatible.": { "code": 4009, "category": 3 /* NoPrefix */ }, - "Construct signatures of types '{0}' and '{1}' are incompatible:{NL}{2}": { "code": 4010, "category": 3 /* NoPrefix */ }, - "Type '{0}' requires a construct signature, but type '{1}' lacks one.": { "code": 4011, "category": 3 /* NoPrefix */ }, - "Index signatures of types '{0}' and '{1}' are incompatible.": { "code": 4012, "category": 3 /* NoPrefix */ }, - "Index signatures of types '{0}' and '{1}' are incompatible:{NL}{2}": { "code": 4013, "category": 3 /* NoPrefix */ }, - "Call signature expects {0} or fewer parameters.": { "code": 4014, "category": 3 /* NoPrefix */ }, - "Could not apply type '{0}' to argument {1} which is of type '{2}'.": { "code": 4015, "category": 3 /* NoPrefix */ }, - "Class '{0}' defines instance member accessor '{1}', but extended class '{2}' defines it as instance member function.": { "code": 4016, "category": 3 /* NoPrefix */ }, - "Class '{0}' defines instance member property '{1}', but extended class '{2}' defines it as instance member function.": { "code": 4017, "category": 3 /* NoPrefix */ }, - "Class '{0}' defines instance member function '{1}', but extended class '{2}' defines it as instance member accessor.": { "code": 4018, "category": 3 /* NoPrefix */ }, - "Class '{0}' defines instance member function '{1}', but extended class '{2}' defines it as instance member property.": { "code": 4019, "category": 3 /* NoPrefix */ }, - "Types of static property '{0}' of class '{1}' and class '{2}' are incompatible.": { "code": 4020, "category": 3 /* NoPrefix */ }, - "Types of static property '{0}' of class '{1}' and class '{2}' are incompatible:{NL}{3}": { "code": 4021, "category": 3 /* NoPrefix */ }, - "Type reference cannot refer to container '{0}'.": { "code": 4022, "category": 1 /* Error */ }, - "Type reference must refer to type.": { "code": 4023, "category": 1 /* Error */ }, - "In enums with multiple declarations only one declaration can omit an initializer for the first enum element.": { "code": 4024, "category": 1 /* Error */ }, - " (+ {0} overload(s))": { "code": 4025, "category": 2 /* Message */ }, - "Variable declaration cannot have the same name as an import declaration.": { "code": 4026, "category": 1 /* Error */ }, - "Signature expected {0} type arguments, got {1} instead.": { "code": 4027, "category": 1 /* Error */ }, - "Property '{0}' defined as optional in type '{1}', but is required in type '{2}'.": { "code": 4028, "category": 3 /* NoPrefix */ }, - "Types '{0}' and '{1}' originating in infinitely expanding type reference do not refer to same named type.": { "code": 4029, "category": 3 /* NoPrefix */ }, - "Types '{0}' and '{1}' originating in infinitely expanding type reference have incompatible type arguments.": { "code": 4030, "category": 3 /* NoPrefix */ }, - "Types '{0}' and '{1}' originating in infinitely expanding type reference have incompatible type arguments:{NL}{2}": { "code": 4031, "category": 3 /* NoPrefix */ }, - "Named properties '{0}' of types '{1}' and '{2}' are not identical.": { "code": 4032, "category": 3 /* NoPrefix */ }, - "Types of string indexer of types '{0}' and '{1}' are not identical.": { "code": 4033, "category": 3 /* NoPrefix */ }, - "Types of number indexer of types '{0}' and '{1}' are not identical.": { "code": 4034, "category": 3 /* NoPrefix */ }, - "Type of number indexer in type '{0}' is not assignable to string indexer type in type '{1}'.{NL}{2}": { "code": 4035, "category": 3 /* NoPrefix */ }, - "Type of property '{0}' in type '{1}' is not assignable to string indexer type in type '{2}'.{NL}{3}": { "code": 4036, "category": 3 /* NoPrefix */ }, - "Type of property '{0}' in type '{1}' is not assignable to number indexer type in type '{2}'.{NL}{3}": { "code": 4037, "category": 3 /* NoPrefix */ }, - "Static property '{0}' defined as private in type '{1}' is defined as public in type '{2}'.": { "code": 4038, "category": 3 /* NoPrefix */ }, - "Static property '{0}' defined as public in type '{1}' is defined as private in type '{2}'.": { "code": 4039, "category": 3 /* NoPrefix */ }, - "Types '{0}' and '{1}' define static property '{2}' as private.": { "code": 4040, "category": 3 /* NoPrefix */ }, - "Current host does not support '{0}' option.": { "code": 5001, "category": 1 /* Error */ }, - "ECMAScript target version '{0}' not supported. Specify a valid target version: '{1}' (default), or '{2}'": { "code": 5002, "category": 1 /* Error */ }, - "Argument for '{0}' option must be '{1}' or '{2}'": { "code": 5003, "category": 1 /* Error */ }, - "Could not find file: '{0}'.": { "code": 5004, "category": 1 /* Error */ }, - "A file cannot have a reference to itself.": { "code": 5006, "category": 1 /* Error */ }, - "Cannot resolve referenced file: '{0}'.": { "code": 5007, "category": 1 /* Error */ }, - "Cannot find the common subdirectory path for the input files.": { "code": 5009, "category": 1 /* Error */ }, - "Emit Error: {0}.": { "code": 5011, "category": 1 /* Error */ }, - "Cannot read file '{0}': {1}": { "code": 5012, "category": 1 /* Error */ }, - "Unsupported file encoding.": { "code": 5013, "category": 3 /* NoPrefix */ }, - "Locale must be of the form or -. For example '{0}' or '{1}'.": { "code": 5014, "category": 1 /* Error */ }, - "Unsupported locale: '{0}'.": { "code": 5015, "category": 1 /* Error */ }, - "Execution Failed.{NL}": { "code": 5016, "category": 1 /* Error */ }, - "Invalid call to 'up'": { "code": 5019, "category": 1 /* Error */ }, - "Invalid call to 'down'": { "code": 5020, "category": 1 /* Error */ }, - "Base64 value '{0}' finished with a continuation bit.": { "code": 5021, "category": 1 /* Error */ }, - "Unknown compiler option '{0}'": { "code": 5023, "category": 1 /* Error */ }, - "Expected {0} arguments to message, got {1} instead.": { "code": 5024, "category": 1 /* Error */ }, - "Expected the message '{0}' to have {1} arguments, but it had {2}": { "code": 5025, "category": 1 /* Error */ }, - "Could not delete file '{0}'": { "code": 5034, "category": 1 /* Error */ }, - "Could not create directory '{0}'": { "code": 5035, "category": 1 /* Error */ }, - "Error while executing file '{0}': ": { "code": 5036, "category": 1 /* Error */ }, - "Cannot compile external modules unless the '--module' flag is provided.": { "code": 5037, "category": 1 /* Error */ }, - "Option mapRoot cannot be specified without specifying sourcemap option.": { "code": 5038, "category": 1 /* Error */ }, - "Option sourceRoot cannot be specified without specifying sourcemap option.": { "code": 5039, "category": 1 /* Error */ }, - "Options mapRoot and sourceRoot cannot be specified without specifying sourcemap option.": { "code": 5040, "category": 1 /* Error */ }, - "Option '{0}' specified without '{1}'": { "code": 5041, "category": 1 /* Error */ }, - "'codepage' option not supported on current platform.": { "code": 5042, "category": 1 /* Error */ }, - "Concatenate and emit output to single file.": { "code": 6001, "category": 2 /* Message */ }, - "Generates corresponding {0} file.": { "code": 6002, "category": 2 /* Message */ }, - "Specifies the location where debugger should locate map files instead of generated locations.": { "code": 6003, "category": 2 /* Message */ }, - "Specifies the location where debugger should locate TypeScript files instead of source locations.": { "code": 6004, "category": 2 /* Message */ }, - "Watch input files.": { "code": 6005, "category": 2 /* Message */ }, - "Redirect output structure to the directory.": { "code": 6006, "category": 2 /* Message */ }, - "Do not emit comments to output.": { "code": 6009, "category": 2 /* Message */ }, - "Skip resolution and preprocessing.": { "code": 6010, "category": 2 /* Message */ }, - "Specify ECMAScript target version: '{0}' (default), or '{1}'": { "code": 6015, "category": 2 /* Message */ }, - "Specify module code generation: '{0}' or '{1}'": { "code": 6016, "category": 2 /* Message */ }, - "Print this message.": { "code": 6017, "category": 2 /* Message */ }, - "Print the compiler's version: {0}": { "code": 6019, "category": 2 /* Message */ }, - "Allow use of deprecated '{0}' keyword when referencing an external module.": { "code": 6021, "category": 2 /* Message */ }, - "Specify locale for errors and messages. For example '{0}' or '{1}'": { "code": 6022, "category": 2 /* Message */ }, - "Syntax: {0}": { "code": 6023, "category": 2 /* Message */ }, - "options": { "code": 6024, "category": 2 /* Message */ }, - "file1": { "code": 6025, "category": 2 /* Message */ }, - "Examples:": { "code": 6026, "category": 2 /* Message */ }, - "Options:": { "code": 6027, "category": 2 /* Message */ }, - "Insert command line options and files from a file.": { "code": 6030, "category": 2 /* Message */ }, - "Version {0}": { "code": 6029, "category": 2 /* Message */ }, - "Use the '{0}' flag to see options.": { "code": 6031, "category": 2 /* Message */ }, - "{NL}Recompiling ({0}):": { "code": 6032, "category": 2 /* Message */ }, - "STRING": { "code": 6033, "category": 2 /* Message */ }, - "KIND": { "code": 6034, "category": 2 /* Message */ }, - "file2": { "code": 6035, "category": 2 /* Message */ }, - "VERSION": { "code": 6036, "category": 2 /* Message */ }, - "LOCATION": { "code": 6037, "category": 2 /* Message */ }, - "DIRECTORY": { "code": 6038, "category": 2 /* Message */ }, - "NUMBER": { "code": 6039, "category": 2 /* Message */ }, - "Specify the codepage to use when opening source files.": { "code": 6040, "category": 2 /* Message */ }, - "Additional locations:": { "code": 6041, "category": 2 /* Message */ }, - "This version of the Javascript runtime does not support the '{0}' function.": { "code": 7000, "category": 1 /* Error */ }, - "Unknown rule.": { "code": 7002, "category": 1 /* Error */ }, - "Invalid line number ({0})": { "code": 7003, "category": 1 /* Error */ }, - "Warn on expressions and declarations with an implied 'any' type.": { "code": 7004, "category": 2 /* Message */ }, - "Variable '{0}' implicitly has an 'any' type.": { "code": 7005, "category": 1 /* Error */ }, - "Parameter '{0}' of '{1}' implicitly has an 'any' type.": { "code": 7006, "category": 1 /* Error */ }, - "Parameter '{0}' of function type implicitly has an 'any' type.": { "code": 7007, "category": 1 /* Error */ }, - "Member '{0}' of object type implicitly has an 'any' type.": { "code": 7008, "category": 1 /* Error */ }, - "'new' expression, which lacks a constructor signature, implicitly has an 'any' type.": { "code": 7009, "category": 1 /* Error */ }, - "'{0}', which lacks return-type annotation, implicitly has an 'any' return type.": { "code": 7010, "category": 1 /* Error */ }, - "Function expression, which lacks return-type annotation, implicitly has an 'any' return type.": { "code": 7011, "category": 1 /* Error */ }, - "Parameter '{0}' of lambda function implicitly has an 'any' type.": { "code": 7012, "category": 1 /* Error */ }, - "Constructor signature, which lacks return-type annotation, implicitly has an 'any' return type.": { "code": 7013, "category": 1 /* Error */ }, - "Lambda Function, which lacks return-type annotation, implicitly has an 'any' return type.": { "code": 7014, "category": 1 /* Error */ }, - "Array Literal implicitly has an 'any' type from widening.": { "code": 7015, "category": 1 /* Error */ }, - "'{0}', which lacks 'get' accessor and parameter type annotation on 'set' accessor, implicitly has an 'any' type.": { "code": 7016, "category": 1 /* Error */ }, - "Index signature of object type implicitly has an 'any' type.": { "code": 7017, "category": 1 /* Error */ }, - "Object literal's property '{0}' implicitly has an 'any' type from widening.": { "code": 7018, "category": 1 /* Error */ } - }; -})(TypeScript || (TypeScript = {})); -var TypeScript; -(function (TypeScript) { - var Errors = (function () { - function Errors() { - } - Errors.argument = function (argument, message) { - return new Error("Invalid argument: " + argument + ". " + message); - }; - Errors.argumentOutOfRange = function (argument) { - return new Error("Argument out of range: " + argument); - }; - Errors.argumentNull = function (argument) { - return new Error("Argument null: " + argument); - }; - Errors.abstract = function () { - return new Error("Operation not implemented properly by subclass."); - }; - Errors.notYetImplemented = function () { - return new Error("Not yet implemented."); - }; - Errors.invalidOperation = function (message) { - return new Error("Invalid operation: " + message); - }; - return Errors; - })(); - TypeScript.Errors = Errors; -})(TypeScript || (TypeScript = {})); -var TypeScript; -(function (TypeScript) { - var ArrayUtilities = (function () { - function ArrayUtilities() { - } - ArrayUtilities.sequenceEquals = function (array1, array2, equals) { - if (array1 === array2) { - return true; - } - if (!array1 || !array2) { - return false; - } - if (array1.length !== array2.length) { - return false; - } - for (var i = 0, n = array1.length; i < n; i++) { - if (!equals(array1[i], array2[i])) { - return false; - } - } - return true; - }; - ArrayUtilities.contains = function (array, value) { - for (var i = 0; i < array.length; i++) { - if (array[i] === value) { - return true; - } - } - return false; - }; - ArrayUtilities.distinct = function (array, equalsFn) { - var result = []; - for (var i = 0, n = array.length; i < n; i++) { - var current = array[i]; - for (var j = 0; j < result.length; j++) { - if (equalsFn(result[j], current)) { - break; - } - } - if (j === result.length) { - result.push(current); - } - } - return result; - }; - ArrayUtilities.last = function (array) { - if (array.length === 0) { - throw TypeScript.Errors.argumentOutOfRange('array'); - } - return array[array.length - 1]; - }; - ArrayUtilities.lastOrDefault = function (array, predicate) { - for (var i = array.length - 1; i >= 0; i--) { - var v = array[i]; - if (predicate(v, i)) { - return v; - } - } - return undefined; - }; - ArrayUtilities.firstOrDefault = function (array, func) { - for (var i = 0, n = array.length; i < n; i++) { - var value = array[i]; - if (func(value, i)) { - return value; - } - } - return undefined; - }; - ArrayUtilities.first = function (array, func) { - for (var i = 0, n = array.length; i < n; i++) { - var value = array[i]; - if (!func || func(value, i)) { - return value; - } - } - throw TypeScript.Errors.invalidOperation(); - }; - ArrayUtilities.sum = function (array, func) { - var result = 0; - for (var i = 0, n = array.length; i < n; i++) { - result += func(array[i]); - } - return result; - }; - ArrayUtilities.select = function (values, func) { - var result = new Array(values.length); - for (var i = 0; i < values.length; i++) { - result[i] = func(values[i]); - } - return result; - }; - ArrayUtilities.where = function (values, func) { - var result = new Array(); - for (var i = 0; i < values.length; i++) { - if (func(values[i])) { - result.push(values[i]); - } - } - return result; - }; - ArrayUtilities.any = function (array, func) { - for (var i = 0, n = array.length; i < n; i++) { - if (func(array[i])) { - return true; - } - } - return false; - }; - ArrayUtilities.all = function (array, func) { - for (var i = 0, n = array.length; i < n; i++) { - if (!func(array[i])) { - return false; - } - } - return true; - }; - ArrayUtilities.binarySearch = function (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; - }; - ArrayUtilities.createArray = function (length, defaultValue) { - var result = new Array(length); - for (var i = 0; i < length; i++) { - result[i] = defaultValue; - } - return result; - }; - ArrayUtilities.grow = function (array, length, defaultValue) { - var count = length - array.length; - for (var i = 0; i < count; i++) { - array.push(defaultValue); - } - }; - ArrayUtilities.copy = function (sourceArray, sourceIndex, destinationArray, destinationIndex, length) { - for (var i = 0; i < length; i++) { - destinationArray[destinationIndex + i] = sourceArray[sourceIndex + i]; - } - }; - ArrayUtilities.indexOf = function (array, predicate) { - for (var i = 0, n = array.length; i < n; i++) { - if (predicate(array[i])) { - return i; - } - } - return -1; - }; - return ArrayUtilities; - })(); - TypeScript.ArrayUtilities = ArrayUtilities; -})(TypeScript || (TypeScript = {})); -var TypeScript; -(function (TypeScript) { - (function (AssertionLevel) { - AssertionLevel[AssertionLevel["None"] = 0] = "None"; - AssertionLevel[AssertionLevel["Normal"] = 1] = "Normal"; - AssertionLevel[AssertionLevel["Aggressive"] = 2] = "Aggressive"; - AssertionLevel[AssertionLevel["VeryAggressive"] = 3] = "VeryAggressive"; - })(TypeScript.AssertionLevel || (TypeScript.AssertionLevel = {})); - var AssertionLevel = TypeScript.AssertionLevel; - var Debug = (function () { - function Debug() { - } - Debug.shouldAssert = function (level) { - return this.currentAssertionLevel >= level; - }; - Debug.assert = function (expression, message, verboseDebugInfo) { - if (!expression) { - var verboseDebugString = ""; - if (verboseDebugInfo) { - verboseDebugString = "\r\nVerbose Debug Information:" + verboseDebugInfo(); - } - message = message || ""; - throw new Error("Debug Failure. False expression: " + message + verboseDebugString); - } - }; - Debug.fail = function (message) { - Debug.assert(false, message); - }; - Debug.currentAssertionLevel = 0 /* None */; - return Debug; - })(); - TypeScript.Debug = Debug; -})(TypeScript || (TypeScript = {})); -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 TypeScript; -(function (TypeScript) { - var Location = (function () { - function Location(fileName, lineMap, start, length) { - this._fileName = fileName; - this._lineMap = lineMap; - this._start = start; - this._length = length; - } - Location.prototype.fileName = function () { - return this._fileName; - }; - Location.prototype.lineMap = function () { - return this._lineMap; - }; - Location.prototype.line = function () { - return this._lineMap ? this._lineMap.getLineNumberFromPosition(this.start()) : 0; - }; - Location.prototype.character = function () { - return this._lineMap ? this._lineMap.getLineAndCharacterFromPosition(this.start()).character() : 0; - }; - Location.prototype.start = function () { - return this._start; - }; - Location.prototype.length = function () { - return this._length; - }; - Location.equals = function (location1, location2) { - return location1._fileName === location2._fileName && location1._start === location2._start && location1._length === location2._length; - }; - return Location; - })(); - TypeScript.Location = Location; - var Diagnostic = (function (_super) { - __extends(Diagnostic, _super); - function Diagnostic(fileName, lineMap, start, length, diagnosticKey, _arguments, additionalLocations) { - _super.call(this, fileName, lineMap, start, length); - this._diagnosticKey = diagnosticKey; - this._arguments = (_arguments && _arguments.length > 0) ? _arguments : undefined; - this._additionalLocations = (additionalLocations && additionalLocations.length > 0) ? additionalLocations : undefined; - } - Diagnostic.prototype.toJSON = function (key) { - var result = {}; - result.start = this.start(); - result.length = this.length(); - result.diagnosticCode = this._diagnosticKey; - var _arguments = this.arguments(); - if (_arguments && _arguments.length > 0) { - result.arguments = _arguments; - } - return result; - }; - Diagnostic.prototype.diagnosticKey = function () { - return this._diagnosticKey; - }; - Diagnostic.prototype.arguments = function () { - return this._arguments; - }; - Diagnostic.prototype.text = function () { - return TypeScript.getLocalizedText(this._diagnosticKey, this._arguments); - }; - Diagnostic.prototype.message = function () { - return TypeScript.getDiagnosticMessage(this._diagnosticKey, this._arguments); - }; - Diagnostic.prototype.additionalLocations = function () { - return this._additionalLocations || []; - }; - Diagnostic.equals = function (diagnostic1, diagnostic2) { - return Location.equals(diagnostic1, diagnostic2) && diagnostic1._diagnosticKey === diagnostic2._diagnosticKey && TypeScript.ArrayUtilities.sequenceEquals(diagnostic1._arguments, diagnostic2._arguments, function (v1, v2) { return v1 === v2; }); - }; - Diagnostic.prototype.info = function () { - return getDiagnosticInfoFromKey(this.diagnosticKey()); - }; - return Diagnostic; - })(Location); - TypeScript.Diagnostic = Diagnostic; - function newLine() { - return "\r\n"; - } - TypeScript.newLine = newLine; - function getLargestIndex(diagnostic) { - var largest = -1; - var regex = /\{(\d+)\}/g; - var match; - while (match = regex.exec(diagnostic)) { - var val = parseInt(match[1]); - if (!isNaN(val) && val > largest) { - largest = val; - } - } - return largest; - } - function getDiagnosticInfoFromKey(diagnosticKey) { - var result = TypeScript.diagnosticInformationMap[diagnosticKey]; - TypeScript.Debug.assert(result); - return result; - } - function getLocalizedText(diagnosticKey, args) { - var diagnosticMessageText = diagnosticKey; - TypeScript.Debug.assert(diagnosticMessageText !== undefined && diagnosticMessageText !== null); - var actualCount = args ? args.length : 0; - var expectedCount = 1 + getLargestIndex(diagnosticKey); - if (expectedCount !== actualCount) { - throw new Error(getLocalizedText(TypeScript.DiagnosticCode.Expected_0_arguments_to_message_got_1_instead, [expectedCount, actualCount])); - } - var valueCount = 1 + getLargestIndex(diagnosticMessageText); - if (valueCount !== expectedCount) { - throw new Error(getLocalizedText(TypeScript.DiagnosticCode.Expected_the_message_0_to_have_1_arguments_but_it_had_2, [diagnosticMessageText, expectedCount, valueCount])); - } - diagnosticMessageText = diagnosticMessageText.replace(/{(\d+)}/g, function (match, num) { - return typeof args[num] !== 'undefined' ? args[num] : match; - }); - diagnosticMessageText = diagnosticMessageText.replace(/{(NL)}/g, function (match) { - return TypeScript.newLine(); - }); - return diagnosticMessageText; - } - TypeScript.getLocalizedText = getLocalizedText; - function getDiagnosticMessage(diagnosticKey, args) { - var diagnostic = getDiagnosticInfoFromKey(diagnosticKey); - var diagnosticMessageText = getLocalizedText(diagnosticKey, args); - var message; - if (diagnostic.category === 1 /* Error */) { - message = getLocalizedText(TypeScript.DiagnosticCode.error_TS_0_1, [diagnostic.code, diagnosticMessageText]); - } - else if (diagnostic.category === 0 /* Warning */) { - message = getLocalizedText(TypeScript.DiagnosticCode.warning_TS_0_1, [diagnostic.code, diagnosticMessageText]); - } - else { - message = diagnosticMessageText; - } - return message; - } - TypeScript.getDiagnosticMessage = getDiagnosticMessage; -})(TypeScript || (TypeScript = {})); -var TypeScript; -(function (TypeScript) { - var IntegerUtilities; - (function (IntegerUtilities) { - function integerDivide(numerator, denominator) { - return (numerator / denominator) >> 0; - } - IntegerUtilities.integerDivide = integerDivide; - function integerMultiplyLow32Bits(n1, n2) { - var resultLow32 = (((n1 & 0xffff0000) * n2) >>> 0) + (((n1 & 0x0000ffff) * n2) >>> 0) >>> 0; - return resultLow32; - } - IntegerUtilities.integerMultiplyLow32Bits = integerMultiplyLow32Bits; - function isInteger(text) { - return /^[0-9]+$/.test(text); - } - IntegerUtilities.isInteger = isInteger; - function isHexInteger(text) { - return /^0(x|X)[0-9a-fA-F]+$/.test(text); - } - IntegerUtilities.isHexInteger = isHexInteger; - })(IntegerUtilities = TypeScript.IntegerUtilities || (TypeScript.IntegerUtilities = {})); -})(TypeScript || (TypeScript = {})); -var TypeScript; -(function (TypeScript) { - var LineMap = (function () { - function LineMap(_computeLineStarts, length) { - this._computeLineStarts = _computeLineStarts; - this.length = length; - this._lineStarts = undefined; - } - LineMap.prototype.toJSON = function (key) { - return { lineStarts: this.lineStarts(), length: this.length }; - }; - LineMap.prototype.equals = function (other) { - return this.length === other.length && TypeScript.ArrayUtilities.sequenceEquals(this.lineStarts(), other.lineStarts(), function (v1, v2) { return v1 === v2; }); - }; - LineMap.prototype.lineStarts = function () { - if (!this._lineStarts) { - this._lineStarts = this._computeLineStarts(); - } - return this._lineStarts; - }; - LineMap.prototype.lineCount = function () { - return this.lineStarts().length; - }; - LineMap.prototype.getPosition = function (line, character) { - return this.lineStarts()[line] + character; - }; - LineMap.prototype.getLineNumberFromPosition = function (position) { - if (position < 0 || position > this.length) { - throw TypeScript.Errors.argumentOutOfRange("position"); - } - if (position === this.length) { - return this.lineCount() - 1; - } - var lineNumber = TypeScript.ArrayUtilities.binarySearch(this.lineStarts(), position); - if (lineNumber < 0) { - lineNumber = (~lineNumber) - 1; - } - return lineNumber; - }; - LineMap.prototype.getLineStartPosition = function (lineNumber) { - return this.lineStarts()[lineNumber]; - }; - LineMap.prototype.fillLineAndCharacterFromPosition = function (position, lineAndCharacter) { - if (position < 0 || position > this.length) { - throw TypeScript.Errors.argumentOutOfRange("position"); - } - var lineNumber = this.getLineNumberFromPosition(position); - lineAndCharacter.line = lineNumber; - lineAndCharacter.character = position - this.lineStarts()[lineNumber]; - }; - LineMap.prototype.getLineAndCharacterFromPosition = function (position) { - if (position < 0 || position > this.length) { - throw TypeScript.Errors.argumentOutOfRange("position"); - } - var lineNumber = this.getLineNumberFromPosition(position); - return new TypeScript.LineAndCharacter(lineNumber, position - this.lineStarts()[lineNumber]); - }; - LineMap.empty = new LineMap(function () { return [0]; }, 0); - return LineMap; - })(); - TypeScript.LineMap = LineMap; -})(TypeScript || (TypeScript = {})); -var TypeScript; -(function (TypeScript) { - var LineAndCharacter = (function () { - function LineAndCharacter(line, character) { - this._line = 0; - this._character = 0; - if (line < 0) { - throw TypeScript.Errors.argumentOutOfRange("line"); - } - if (character < 0) { - throw TypeScript.Errors.argumentOutOfRange("character"); - } - this._line = line; - this._character = character; - } - LineAndCharacter.prototype.line = function () { - return this._line; - }; - LineAndCharacter.prototype.character = function () { - return this._character; - }; - return LineAndCharacter; - })(); - TypeScript.LineAndCharacter = LineAndCharacter; -})(TypeScript || (TypeScript = {})); -var TypeScript; -(function (TypeScript) { - var StringUtilities = (function () { - function StringUtilities() { - } - StringUtilities.isString = function (value) { - return Object.prototype.toString.apply(value, []) === '[object String]'; - }; - StringUtilities.endsWith = function (string, value) { - return string.substring(string.length - value.length, string.length) === value; - }; - StringUtilities.startsWith = function (string, value) { - return string.substr(0, value.length) === value; - }; - StringUtilities.repeat = function (value, count) { - return Array(count + 1).join(value); - }; - return StringUtilities; - })(); - TypeScript.StringUtilities = StringUtilities; -})(TypeScript || (TypeScript = {})); -var TypeScript; -(function (TypeScript) { - (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["_"] = 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["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"; - })(TypeScript.CharacterCodes || (TypeScript.CharacterCodes = {})); - var CharacterCodes = TypeScript.CharacterCodes; -})(TypeScript || (TypeScript = {})); -var TypeScript; -(function (TypeScript) { - 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.getLineStartPositions = function () { - if (!this._lineStartPositions) { - this._lineStartPositions = TypeScript.TextUtilities.parseLineStarts(this.text); - } - return this._lineStartPositions; - }; - StringScriptSnapshot.prototype.getChangeRange = function (oldSnapshot) { - throw TypeScript.Errors.notYetImplemented(); - }; - return StringScriptSnapshot; - })(); - function fromString(text) { - return new StringScriptSnapshot(text); - } - ScriptSnapshot.fromString = fromString; - })(ScriptSnapshot = TypeScript.ScriptSnapshot || (TypeScript.ScriptSnapshot = {})); -})(TypeScript || (TypeScript = {})); -var TypeScript; -(function (TypeScript) { - var LineMap1; - (function (LineMap1) { - function fromSimpleText(text) { - return new TypeScript.LineMap(function () { return TypeScript.TextUtilities.parseLineStarts({ charCodeAt: function (index) { return text.charCodeAt(index); }, length: text.length() }); }, text.length()); - } - LineMap1.fromSimpleText = fromSimpleText; - function fromScriptSnapshot(scriptSnapshot) { - return new TypeScript.LineMap(function () { return scriptSnapshot.getLineStartPositions(); }, scriptSnapshot.getLength()); - } - LineMap1.fromScriptSnapshot = fromScriptSnapshot; - function fromString(text) { - return new TypeScript.LineMap(function () { return TypeScript.TextUtilities.parseLineStarts(text); }, text.length); - } - LineMap1.fromString = fromString; - })(LineMap1 = TypeScript.LineMap1 || (TypeScript.LineMap1 = {})); -})(TypeScript || (TypeScript = {})); -var TypeScript; -(function (TypeScript) { - var SimpleText; - (function (SimpleText) { - var SimpleStringText = (function () { - function SimpleStringText(value) { - this.value = value; - this._lineMap = undefined; - } - SimpleStringText.prototype.length = function () { - return this.value.length; - }; - SimpleStringText.prototype.substr = function (start, length) { - var val = this.value; - return start === 0 && length == val.length ? val : val.substr(start, length); - }; - SimpleStringText.prototype.charCodeAt = function (index) { - return this.value.charCodeAt(index); - }; - SimpleStringText.prototype.lineMap = function () { - if (!this._lineMap) { - this._lineMap = TypeScript.LineMap1.fromString(this.value); - } - return this._lineMap; - }; - return SimpleStringText; - })(); - var SimpleScriptSnapshotText = (function () { - function SimpleScriptSnapshotText(scriptSnapshot) { - this.scriptSnapshot = scriptSnapshot; - this._lineMap = undefined; - } - SimpleScriptSnapshotText.prototype.charCodeAt = function (index) { - return this.scriptSnapshot.getText(index, index + 1).charCodeAt(0); - }; - SimpleScriptSnapshotText.prototype.length = function () { - return this.scriptSnapshot.getLength(); - }; - SimpleScriptSnapshotText.prototype.substr = function (start, length) { - return this.scriptSnapshot.getText(start, start + length); - }; - SimpleScriptSnapshotText.prototype.lineMap = function () { - var _this = this; - if (!this._lineMap) { - this._lineMap = new TypeScript.LineMap(function () { return _this.scriptSnapshot.getLineStartPositions(); }, this.length()); - } - return this._lineMap; - }; - return SimpleScriptSnapshotText; - })(); - function fromString(value) { - return new SimpleStringText(value); - } - SimpleText.fromString = fromString; - function fromScriptSnapshot(scriptSnapshot) { - return new SimpleScriptSnapshotText(scriptSnapshot); - } - SimpleText.fromScriptSnapshot = fromScriptSnapshot; - })(SimpleText = TypeScript.SimpleText || (TypeScript.SimpleText = {})); -})(TypeScript || (TypeScript = {})); -var TypeScript; -(function (TypeScript) { - var TextUtilities; - (function (TextUtilities) { - function parseLineStarts(text) { - var length = text.length; - if (0 === length) { - var result = new Array(); - result.push(0); - return result; - } - var position = 0; - var index = 0; - var arrayBuilder = new Array(); - var lineNumber = 0; - while (index < length) { - var c = text.charCodeAt(index); - var lineBreakLength; - if (c > 13 /* carriageReturn */ && c <= 127) { - index++; - continue; - } - else if (c === 13 /* carriageReturn */ && index + 1 < length && text.charCodeAt(index + 1) === 10 /* lineFeed */) { - lineBreakLength = 2; - } - else if (c === 10 /* lineFeed */) { - lineBreakLength = 1; - } - else { - lineBreakLength = TextUtilities.getLengthOfLineBreak(text, index); - } - if (0 === lineBreakLength) { - index++; - } - else { - arrayBuilder.push(position); - index += lineBreakLength; - position = index; - lineNumber++; - } - } - arrayBuilder.push(position); - return arrayBuilder; - } - TextUtilities.parseLineStarts = parseLineStarts; - function getLengthOfLineBreakSlow(text, index, c) { - if (c === 13 /* carriageReturn */) { - var next = index + 1; - return (next < text.length) && 10 /* lineFeed */ === text.charCodeAt(next) ? 2 : 1; - } - else if (isAnyLineBreakCharacter(c)) { - return 1; - } - else { - return 0; - } - } - TextUtilities.getLengthOfLineBreakSlow = getLengthOfLineBreakSlow; - function getLengthOfLineBreak(text, index) { - var c = text.charCodeAt(index); - if (c > 13 /* carriageReturn */ && c <= 127) { - return 0; - } - return getLengthOfLineBreakSlow(text, index, c); - } - TextUtilities.getLengthOfLineBreak = getLengthOfLineBreak; - function isAnyLineBreakCharacter(c) { - return c === 10 /* lineFeed */ || c === 13 /* carriageReturn */ || c === 133 /* nextLine */ || c === 8232 /* lineSeparator */ || c === 8233 /* paragraphSeparator */; - } - TextUtilities.isAnyLineBreakCharacter = isAnyLineBreakCharacter; - })(TextUtilities = TypeScript.TextUtilities || (TypeScript.TextUtilities = {})); -})(TypeScript || (TypeScript = {})); -var TypeScript; -(function (TypeScript) { - var TextSpan = (function () { - function TextSpan(start, length) { - if (start < 0) { - TypeScript.Errors.argument("start"); - } - if (length < 0) { - TypeScript.Errors.argument("length"); - } - this._start = start; - this._length = length; - } - TextSpan.prototype.toJSON = function (key) { - return { start: this._start, length: this._length }; - }; - TextSpan.prototype.start = function () { - return this._start; - }; - TextSpan.prototype.length = function () { - return this._length; - }; - TextSpan.prototype.end = function () { - return this._start + this._length; - }; - TextSpan.prototype.isEmpty = function () { - return this._length === 0; - }; - TextSpan.prototype.containsPosition = function (position) { - return position >= this._start && position < this.end(); - }; - TextSpan.prototype.containsTextSpan = function (span) { - return span._start >= this._start && span.end() <= this.end(); - }; - TextSpan.prototype.overlapsWith = function (span) { - var overlapStart = Math.max(this._start, span._start); - var overlapEnd = Math.min(this.end(), span.end()); - return overlapStart < overlapEnd; - }; - TextSpan.prototype.overlap = function (span) { - var overlapStart = Math.max(this._start, span._start); - var overlapEnd = Math.min(this.end(), span.end()); - if (overlapStart < overlapEnd) { - return TextSpan.fromBounds(overlapStart, overlapEnd); - } - return undefined; - }; - TextSpan.prototype.intersectsWithTextSpan = function (span) { - return span._start <= this.end() && span.end() >= this._start; - }; - TextSpan.prototype.intersectsWith = function (start, length) { - var end = start + length; - return start <= this.end() && end >= this._start; - }; - TextSpan.prototype.intersectsWithPosition = function (position) { - return position <= this.end() && position >= this._start; - }; - TextSpan.prototype.intersection = function (span) { - var intersectStart = Math.max(this._start, span._start); - var intersectEnd = Math.min(this.end(), span.end()); - if (intersectStart <= intersectEnd) { - return TextSpan.fromBounds(intersectStart, intersectEnd); - } - return undefined; - }; - TextSpan.fromBounds = function (start, end) { - TypeScript.Debug.assert(start >= 0); - TypeScript.Debug.assert(end - start >= 0); - return new TextSpan(start, end - start); - }; - return TextSpan; - })(); - TypeScript.TextSpan = TextSpan; -})(TypeScript || (TypeScript = {})); -var TypeScript; -(function (TypeScript) { - var TextChangeRange = (function () { - function TextChangeRange(span, newLength) { - if (newLength < 0) { - throw TypeScript.Errors.argumentOutOfRange("newLength"); - } - this._span = span; - this._newLength = newLength; - } - TextChangeRange.prototype.span = function () { - return this._span; - }; - TextChangeRange.prototype.newLength = function () { - return this._newLength; - }; - TextChangeRange.prototype.newSpan = function () { - return new TypeScript.TextSpan(this.span().start(), this.newLength()); - }; - TextChangeRange.prototype.isUnchanged = function () { - return this.span().isEmpty() && this.newLength() === 0; - }; - TextChangeRange.collapseChangesAcrossMultipleVersions = function (changes) { - if (changes.length === 0) { - return TextChangeRange.unchanged; - } - if (changes.length === 1) { - return changes[0]; - } - var change0 = changes[0]; - var oldStartN = change0.span().start(); - var oldEndN = change0.span().end(); - 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 = nextChange.span().end(); - 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 new TextChangeRange(TypeScript.TextSpan.fromBounds(oldStartN, oldEndN), newEndN - oldStartN); - }; - TextChangeRange.unchanged = new TextChangeRange(new TypeScript.TextSpan(0, 0), 0); - return TextChangeRange; - })(); - TypeScript.TextChangeRange = TextChangeRange; -})(TypeScript || (TypeScript = {})); -var TypeScript; -(function (TypeScript) { - var CharacterInfo; - (function (CharacterInfo) { - function isDecimalDigit(c) { - return c >= 48 /* _0 */ && c <= 57 /* _9 */; - } - CharacterInfo.isDecimalDigit = isDecimalDigit; - function isOctalDigit(c) { - return c >= 48 /* _0 */ && c <= 55 /* _7 */; - } - CharacterInfo.isOctalDigit = isOctalDigit; - function isHexDigit(c) { - return CharacterInfo.isDecimalDigit(c) || (c >= 65 /* A */ && c <= 70 /* F */) || (c >= 97 /* a */ && c <= 102 /* f */); - } - CharacterInfo.isHexDigit = isHexDigit; - function hexValue(c) { - return CharacterInfo.isDecimalDigit(c) ? (c - 48 /* _0 */) : (c >= 65 /* A */ && c <= 70 /* F */) ? c - 65 /* A */ + 10 : c - 97 /* a */ + 10; - } - CharacterInfo.hexValue = hexValue; - function isWhitespace(ch) { - switch (ch) { - case 32 /* space */: - case 160 /* nonBreakingSpace */: - case 8192 /* enQuad */: - case 8193 /* emQuad */: - case 8194 /* enSpace */: - case 8195 /* emSpace */: - case 8196 /* threePerEmSpace */: - case 8197 /* fourPerEmSpace */: - case 8198 /* sixPerEmSpace */: - case 8199 /* figureSpace */: - case 8200 /* punctuationSpace */: - case 8201 /* thinSpace */: - case 8202 /* hairSpace */: - case 8203 /* zeroWidthSpace */: - case 8239 /* narrowNoBreakSpace */: - case 12288 /* ideographicSpace */: - case 9 /* tab */: - case 11 /* verticalTab */: - case 12 /* formFeed */: - case 65279 /* byteOrderMark */: - return true; - } - return false; - } - CharacterInfo.isWhitespace = isWhitespace; - function isLineTerminator(ch) { - switch (ch) { - case 13 /* carriageReturn */: - case 10 /* lineFeed */: - case 8233 /* paragraphSeparator */: - case 8232 /* lineSeparator */: - return true; - } - return false; - } - CharacterInfo.isLineTerminator = isLineTerminator; - })(CharacterInfo = TypeScript.CharacterInfo || (TypeScript.CharacterInfo = {})); -})(TypeScript || (TypeScript = {})); -var TypeScript; -(function (TypeScript) { - (function (ParserContextFlags) { - ParserContextFlags[ParserContextFlags["StrictMode"] = 1] = "StrictMode"; - ParserContextFlags[ParserContextFlags["DisallowIn"] = 2] = "DisallowIn"; - ParserContextFlags[ParserContextFlags["Yield"] = 4] = "Yield"; - ParserContextFlags[ParserContextFlags["GeneratorParameter"] = 8] = "GeneratorParameter"; - ParserContextFlags[ParserContextFlags["Async"] = 16] = "Async"; - ParserContextFlags[ParserContextFlags["Mask"] = 31] = "Mask"; - })(TypeScript.ParserContextFlags || (TypeScript.ParserContextFlags = {})); - var ParserContextFlags = TypeScript.ParserContextFlags; - (function (SyntaxNodeConstants) { - SyntaxNodeConstants[SyntaxNodeConstants["None"] = 0] = "None"; - SyntaxNodeConstants[SyntaxNodeConstants["DataComputed"] = 1 << 5] = "DataComputed"; - SyntaxNodeConstants[SyntaxNodeConstants["IncrementallyUnusableMask"] = 1 << 6] = "IncrementallyUnusableMask"; - SyntaxNodeConstants[SyntaxNodeConstants["FullWidthShift"] = 1 << 7] = "FullWidthShift"; - })(TypeScript.SyntaxNodeConstants || (TypeScript.SyntaxNodeConstants = {})); - var SyntaxNodeConstants = TypeScript.SyntaxNodeConstants; -})(TypeScript || (TypeScript = {})); -var TypeScript; -(function (TypeScript) { - var FormattingOptions = (function () { - function FormattingOptions(useTabs, spacesPerTab, indentSpaces, newLineCharacter) { - this.useTabs = useTabs; - this.spacesPerTab = spacesPerTab; - this.indentSpaces = indentSpaces; - this.newLineCharacter = newLineCharacter; - } - FormattingOptions.defaultOptions = new FormattingOptions(false, 4, 4, "\r\n"); - return FormattingOptions; - })(); - TypeScript.FormattingOptions = FormattingOptions; -})(TypeScript || (TypeScript = {})); -var TypeScript; -(function (TypeScript) { - (function (SyntaxKind) { - SyntaxKind[SyntaxKind["None"] = 0] = "None"; - SyntaxKind[SyntaxKind["List"] = 1] = "List"; - SyntaxKind[SyntaxKind["WhitespaceTrivia"] = 2] = "WhitespaceTrivia"; - SyntaxKind[SyntaxKind["NewLineTrivia"] = 3] = "NewLineTrivia"; - SyntaxKind[SyntaxKind["MultiLineCommentTrivia"] = 4] = "MultiLineCommentTrivia"; - SyntaxKind[SyntaxKind["SingleLineCommentTrivia"] = 5] = "SingleLineCommentTrivia"; - SyntaxKind[SyntaxKind["SkippedTokenTrivia"] = 6] = "SkippedTokenTrivia"; - SyntaxKind[SyntaxKind["ErrorToken"] = 7] = "ErrorToken"; - SyntaxKind[SyntaxKind["EndOfFileToken"] = 8] = "EndOfFileToken"; - SyntaxKind[SyntaxKind["IdentifierName"] = 9] = "IdentifierName"; - SyntaxKind[SyntaxKind["RegularExpressionLiteral"] = 10] = "RegularExpressionLiteral"; - SyntaxKind[SyntaxKind["NumericLiteral"] = 11] = "NumericLiteral"; - SyntaxKind[SyntaxKind["StringLiteral"] = 12] = "StringLiteral"; - SyntaxKind[SyntaxKind["NoSubstitutionTemplateToken"] = 13] = "NoSubstitutionTemplateToken"; - SyntaxKind[SyntaxKind["TemplateStartToken"] = 14] = "TemplateStartToken"; - SyntaxKind[SyntaxKind["TemplateMiddleToken"] = 15] = "TemplateMiddleToken"; - SyntaxKind[SyntaxKind["TemplateEndToken"] = 16] = "TemplateEndToken"; - SyntaxKind[SyntaxKind["BreakKeyword"] = 17] = "BreakKeyword"; - SyntaxKind[SyntaxKind["CaseKeyword"] = 18] = "CaseKeyword"; - SyntaxKind[SyntaxKind["CatchKeyword"] = 19] = "CatchKeyword"; - SyntaxKind[SyntaxKind["ContinueKeyword"] = 20] = "ContinueKeyword"; - SyntaxKind[SyntaxKind["DebuggerKeyword"] = 21] = "DebuggerKeyword"; - SyntaxKind[SyntaxKind["DefaultKeyword"] = 22] = "DefaultKeyword"; - SyntaxKind[SyntaxKind["DeleteKeyword"] = 23] = "DeleteKeyword"; - SyntaxKind[SyntaxKind["DoKeyword"] = 24] = "DoKeyword"; - SyntaxKind[SyntaxKind["ElseKeyword"] = 25] = "ElseKeyword"; - SyntaxKind[SyntaxKind["FalseKeyword"] = 26] = "FalseKeyword"; - SyntaxKind[SyntaxKind["FinallyKeyword"] = 27] = "FinallyKeyword"; - SyntaxKind[SyntaxKind["ForKeyword"] = 28] = "ForKeyword"; - SyntaxKind[SyntaxKind["FunctionKeyword"] = 29] = "FunctionKeyword"; - SyntaxKind[SyntaxKind["IfKeyword"] = 30] = "IfKeyword"; - SyntaxKind[SyntaxKind["InKeyword"] = 31] = "InKeyword"; - SyntaxKind[SyntaxKind["InstanceOfKeyword"] = 32] = "InstanceOfKeyword"; - SyntaxKind[SyntaxKind["NewKeyword"] = 33] = "NewKeyword"; - SyntaxKind[SyntaxKind["NullKeyword"] = 34] = "NullKeyword"; - SyntaxKind[SyntaxKind["ReturnKeyword"] = 35] = "ReturnKeyword"; - SyntaxKind[SyntaxKind["SwitchKeyword"] = 36] = "SwitchKeyword"; - SyntaxKind[SyntaxKind["ThisKeyword"] = 37] = "ThisKeyword"; - SyntaxKind[SyntaxKind["ThrowKeyword"] = 38] = "ThrowKeyword"; - SyntaxKind[SyntaxKind["TrueKeyword"] = 39] = "TrueKeyword"; - SyntaxKind[SyntaxKind["TryKeyword"] = 40] = "TryKeyword"; - SyntaxKind[SyntaxKind["TypeOfKeyword"] = 41] = "TypeOfKeyword"; - SyntaxKind[SyntaxKind["VarKeyword"] = 42] = "VarKeyword"; - SyntaxKind[SyntaxKind["VoidKeyword"] = 43] = "VoidKeyword"; - SyntaxKind[SyntaxKind["WhileKeyword"] = 44] = "WhileKeyword"; - SyntaxKind[SyntaxKind["WithKeyword"] = 45] = "WithKeyword"; - SyntaxKind[SyntaxKind["ClassKeyword"] = 46] = "ClassKeyword"; - SyntaxKind[SyntaxKind["ConstKeyword"] = 47] = "ConstKeyword"; - SyntaxKind[SyntaxKind["EnumKeyword"] = 48] = "EnumKeyword"; - SyntaxKind[SyntaxKind["ExportKeyword"] = 49] = "ExportKeyword"; - SyntaxKind[SyntaxKind["ExtendsKeyword"] = 50] = "ExtendsKeyword"; - SyntaxKind[SyntaxKind["ImportKeyword"] = 51] = "ImportKeyword"; - SyntaxKind[SyntaxKind["SuperKeyword"] = 52] = "SuperKeyword"; - SyntaxKind[SyntaxKind["ImplementsKeyword"] = 53] = "ImplementsKeyword"; - SyntaxKind[SyntaxKind["InterfaceKeyword"] = 54] = "InterfaceKeyword"; - SyntaxKind[SyntaxKind["LetKeyword"] = 55] = "LetKeyword"; - SyntaxKind[SyntaxKind["PackageKeyword"] = 56] = "PackageKeyword"; - SyntaxKind[SyntaxKind["PrivateKeyword"] = 57] = "PrivateKeyword"; - SyntaxKind[SyntaxKind["ProtectedKeyword"] = 58] = "ProtectedKeyword"; - SyntaxKind[SyntaxKind["PublicKeyword"] = 59] = "PublicKeyword"; - SyntaxKind[SyntaxKind["StaticKeyword"] = 60] = "StaticKeyword"; - SyntaxKind[SyntaxKind["YieldKeyword"] = 61] = "YieldKeyword"; - SyntaxKind[SyntaxKind["AnyKeyword"] = 62] = "AnyKeyword"; - SyntaxKind[SyntaxKind["AsyncKeyword"] = 63] = "AsyncKeyword"; - SyntaxKind[SyntaxKind["AwaitKeyword"] = 64] = "AwaitKeyword"; - SyntaxKind[SyntaxKind["BooleanKeyword"] = 65] = "BooleanKeyword"; - SyntaxKind[SyntaxKind["ConstructorKeyword"] = 66] = "ConstructorKeyword"; - SyntaxKind[SyntaxKind["DeclareKeyword"] = 67] = "DeclareKeyword"; - SyntaxKind[SyntaxKind["GetKeyword"] = 68] = "GetKeyword"; - SyntaxKind[SyntaxKind["ModuleKeyword"] = 69] = "ModuleKeyword"; - SyntaxKind[SyntaxKind["RequireKeyword"] = 70] = "RequireKeyword"; - SyntaxKind[SyntaxKind["NumberKeyword"] = 71] = "NumberKeyword"; - SyntaxKind[SyntaxKind["SetKeyword"] = 72] = "SetKeyword"; - SyntaxKind[SyntaxKind["StringKeyword"] = 73] = "StringKeyword"; - SyntaxKind[SyntaxKind["OpenBraceToken"] = 74] = "OpenBraceToken"; - SyntaxKind[SyntaxKind["CloseBraceToken"] = 75] = "CloseBraceToken"; - SyntaxKind[SyntaxKind["OpenParenToken"] = 76] = "OpenParenToken"; - SyntaxKind[SyntaxKind["CloseParenToken"] = 77] = "CloseParenToken"; - SyntaxKind[SyntaxKind["OpenBracketToken"] = 78] = "OpenBracketToken"; - SyntaxKind[SyntaxKind["CloseBracketToken"] = 79] = "CloseBracketToken"; - SyntaxKind[SyntaxKind["DotToken"] = 80] = "DotToken"; - SyntaxKind[SyntaxKind["DotDotDotToken"] = 81] = "DotDotDotToken"; - SyntaxKind[SyntaxKind["SemicolonToken"] = 82] = "SemicolonToken"; - SyntaxKind[SyntaxKind["CommaToken"] = 83] = "CommaToken"; - SyntaxKind[SyntaxKind["LessThanToken"] = 84] = "LessThanToken"; - SyntaxKind[SyntaxKind["GreaterThanToken"] = 85] = "GreaterThanToken"; - SyntaxKind[SyntaxKind["LessThanEqualsToken"] = 86] = "LessThanEqualsToken"; - SyntaxKind[SyntaxKind["GreaterThanEqualsToken"] = 87] = "GreaterThanEqualsToken"; - SyntaxKind[SyntaxKind["EqualsEqualsToken"] = 88] = "EqualsEqualsToken"; - SyntaxKind[SyntaxKind["EqualsGreaterThanToken"] = 89] = "EqualsGreaterThanToken"; - SyntaxKind[SyntaxKind["ExclamationEqualsToken"] = 90] = "ExclamationEqualsToken"; - SyntaxKind[SyntaxKind["EqualsEqualsEqualsToken"] = 91] = "EqualsEqualsEqualsToken"; - SyntaxKind[SyntaxKind["ExclamationEqualsEqualsToken"] = 92] = "ExclamationEqualsEqualsToken"; - SyntaxKind[SyntaxKind["PlusToken"] = 93] = "PlusToken"; - SyntaxKind[SyntaxKind["MinusToken"] = 94] = "MinusToken"; - SyntaxKind[SyntaxKind["AsteriskToken"] = 95] = "AsteriskToken"; - SyntaxKind[SyntaxKind["PercentToken"] = 96] = "PercentToken"; - SyntaxKind[SyntaxKind["PlusPlusToken"] = 97] = "PlusPlusToken"; - SyntaxKind[SyntaxKind["MinusMinusToken"] = 98] = "MinusMinusToken"; - SyntaxKind[SyntaxKind["LessThanLessThanToken"] = 99] = "LessThanLessThanToken"; - SyntaxKind[SyntaxKind["GreaterThanGreaterThanToken"] = 100] = "GreaterThanGreaterThanToken"; - SyntaxKind[SyntaxKind["GreaterThanGreaterThanGreaterThanToken"] = 101] = "GreaterThanGreaterThanGreaterThanToken"; - SyntaxKind[SyntaxKind["AmpersandToken"] = 102] = "AmpersandToken"; - SyntaxKind[SyntaxKind["BarToken"] = 103] = "BarToken"; - SyntaxKind[SyntaxKind["CaretToken"] = 104] = "CaretToken"; - SyntaxKind[SyntaxKind["ExclamationToken"] = 105] = "ExclamationToken"; - SyntaxKind[SyntaxKind["TildeToken"] = 106] = "TildeToken"; - SyntaxKind[SyntaxKind["AmpersandAmpersandToken"] = 107] = "AmpersandAmpersandToken"; - SyntaxKind[SyntaxKind["BarBarToken"] = 108] = "BarBarToken"; - SyntaxKind[SyntaxKind["QuestionToken"] = 109] = "QuestionToken"; - SyntaxKind[SyntaxKind["ColonToken"] = 110] = "ColonToken"; - SyntaxKind[SyntaxKind["EqualsToken"] = 111] = "EqualsToken"; - SyntaxKind[SyntaxKind["PlusEqualsToken"] = 112] = "PlusEqualsToken"; - SyntaxKind[SyntaxKind["MinusEqualsToken"] = 113] = "MinusEqualsToken"; - SyntaxKind[SyntaxKind["AsteriskEqualsToken"] = 114] = "AsteriskEqualsToken"; - SyntaxKind[SyntaxKind["PercentEqualsToken"] = 115] = "PercentEqualsToken"; - SyntaxKind[SyntaxKind["LessThanLessThanEqualsToken"] = 116] = "LessThanLessThanEqualsToken"; - SyntaxKind[SyntaxKind["GreaterThanGreaterThanEqualsToken"] = 117] = "GreaterThanGreaterThanEqualsToken"; - SyntaxKind[SyntaxKind["GreaterThanGreaterThanGreaterThanEqualsToken"] = 118] = "GreaterThanGreaterThanGreaterThanEqualsToken"; - SyntaxKind[SyntaxKind["AmpersandEqualsToken"] = 119] = "AmpersandEqualsToken"; - SyntaxKind[SyntaxKind["BarEqualsToken"] = 120] = "BarEqualsToken"; - SyntaxKind[SyntaxKind["CaretEqualsToken"] = 121] = "CaretEqualsToken"; - SyntaxKind[SyntaxKind["SlashToken"] = 122] = "SlashToken"; - SyntaxKind[SyntaxKind["SlashEqualsToken"] = 123] = "SlashEqualsToken"; - SyntaxKind[SyntaxKind["SourceUnit"] = 124] = "SourceUnit"; - SyntaxKind[SyntaxKind["QualifiedName"] = 125] = "QualifiedName"; - SyntaxKind[SyntaxKind["ObjectType"] = 126] = "ObjectType"; - SyntaxKind[SyntaxKind["FunctionType"] = 127] = "FunctionType"; - SyntaxKind[SyntaxKind["ArrayType"] = 128] = "ArrayType"; - SyntaxKind[SyntaxKind["ConstructorType"] = 129] = "ConstructorType"; - SyntaxKind[SyntaxKind["GenericType"] = 130] = "GenericType"; - SyntaxKind[SyntaxKind["TypeQuery"] = 131] = "TypeQuery"; - SyntaxKind[SyntaxKind["TupleType"] = 132] = "TupleType"; - SyntaxKind[SyntaxKind["UnionType"] = 133] = "UnionType"; - SyntaxKind[SyntaxKind["ParenthesizedType"] = 134] = "ParenthesizedType"; - SyntaxKind[SyntaxKind["InterfaceDeclaration"] = 135] = "InterfaceDeclaration"; - SyntaxKind[SyntaxKind["FunctionDeclaration"] = 136] = "FunctionDeclaration"; - SyntaxKind[SyntaxKind["ModuleDeclaration"] = 137] = "ModuleDeclaration"; - SyntaxKind[SyntaxKind["ClassDeclaration"] = 138] = "ClassDeclaration"; - SyntaxKind[SyntaxKind["EnumDeclaration"] = 139] = "EnumDeclaration"; - SyntaxKind[SyntaxKind["ImportDeclaration"] = 140] = "ImportDeclaration"; - SyntaxKind[SyntaxKind["ExportAssignment"] = 141] = "ExportAssignment"; - SyntaxKind[SyntaxKind["MemberFunctionDeclaration"] = 142] = "MemberFunctionDeclaration"; - SyntaxKind[SyntaxKind["MemberVariableDeclaration"] = 143] = "MemberVariableDeclaration"; - SyntaxKind[SyntaxKind["ConstructorDeclaration"] = 144] = "ConstructorDeclaration"; - SyntaxKind[SyntaxKind["IndexMemberDeclaration"] = 145] = "IndexMemberDeclaration"; - SyntaxKind[SyntaxKind["GetAccessor"] = 146] = "GetAccessor"; - SyntaxKind[SyntaxKind["SetAccessor"] = 147] = "SetAccessor"; - SyntaxKind[SyntaxKind["PropertySignature"] = 148] = "PropertySignature"; - SyntaxKind[SyntaxKind["CallSignature"] = 149] = "CallSignature"; - SyntaxKind[SyntaxKind["ConstructSignature"] = 150] = "ConstructSignature"; - SyntaxKind[SyntaxKind["IndexSignature"] = 151] = "IndexSignature"; - SyntaxKind[SyntaxKind["MethodSignature"] = 152] = "MethodSignature"; - SyntaxKind[SyntaxKind["Block"] = 153] = "Block"; - SyntaxKind[SyntaxKind["IfStatement"] = 154] = "IfStatement"; - SyntaxKind[SyntaxKind["VariableStatement"] = 155] = "VariableStatement"; - SyntaxKind[SyntaxKind["ExpressionStatement"] = 156] = "ExpressionStatement"; - SyntaxKind[SyntaxKind["ReturnStatement"] = 157] = "ReturnStatement"; - SyntaxKind[SyntaxKind["SwitchStatement"] = 158] = "SwitchStatement"; - SyntaxKind[SyntaxKind["BreakStatement"] = 159] = "BreakStatement"; - SyntaxKind[SyntaxKind["ContinueStatement"] = 160] = "ContinueStatement"; - SyntaxKind[SyntaxKind["ForStatement"] = 161] = "ForStatement"; - SyntaxKind[SyntaxKind["ForInStatement"] = 162] = "ForInStatement"; - SyntaxKind[SyntaxKind["EmptyStatement"] = 163] = "EmptyStatement"; - SyntaxKind[SyntaxKind["ThrowStatement"] = 164] = "ThrowStatement"; - SyntaxKind[SyntaxKind["WhileStatement"] = 165] = "WhileStatement"; - SyntaxKind[SyntaxKind["TryStatement"] = 166] = "TryStatement"; - SyntaxKind[SyntaxKind["LabeledStatement"] = 167] = "LabeledStatement"; - SyntaxKind[SyntaxKind["DoStatement"] = 168] = "DoStatement"; - SyntaxKind[SyntaxKind["DebuggerStatement"] = 169] = "DebuggerStatement"; - SyntaxKind[SyntaxKind["WithStatement"] = 170] = "WithStatement"; - SyntaxKind[SyntaxKind["PrefixUnaryExpression"] = 171] = "PrefixUnaryExpression"; - SyntaxKind[SyntaxKind["DeleteExpression"] = 172] = "DeleteExpression"; - SyntaxKind[SyntaxKind["TypeOfExpression"] = 173] = "TypeOfExpression"; - SyntaxKind[SyntaxKind["VoidExpression"] = 174] = "VoidExpression"; - SyntaxKind[SyntaxKind["ConditionalExpression"] = 175] = "ConditionalExpression"; - SyntaxKind[SyntaxKind["BinaryExpression"] = 176] = "BinaryExpression"; - SyntaxKind[SyntaxKind["PostfixUnaryExpression"] = 177] = "PostfixUnaryExpression"; - SyntaxKind[SyntaxKind["MemberAccessExpression"] = 178] = "MemberAccessExpression"; - SyntaxKind[SyntaxKind["InvocationExpression"] = 179] = "InvocationExpression"; - SyntaxKind[SyntaxKind["ArrayLiteralExpression"] = 180] = "ArrayLiteralExpression"; - SyntaxKind[SyntaxKind["ObjectLiteralExpression"] = 181] = "ObjectLiteralExpression"; - SyntaxKind[SyntaxKind["ObjectCreationExpression"] = 182] = "ObjectCreationExpression"; - SyntaxKind[SyntaxKind["ParenthesizedExpression"] = 183] = "ParenthesizedExpression"; - SyntaxKind[SyntaxKind["ParenthesizedArrowFunctionExpression"] = 184] = "ParenthesizedArrowFunctionExpression"; - SyntaxKind[SyntaxKind["SimpleArrowFunctionExpression"] = 185] = "SimpleArrowFunctionExpression"; - SyntaxKind[SyntaxKind["CastExpression"] = 186] = "CastExpression"; - SyntaxKind[SyntaxKind["ElementAccessExpression"] = 187] = "ElementAccessExpression"; - SyntaxKind[SyntaxKind["FunctionExpression"] = 188] = "FunctionExpression"; - SyntaxKind[SyntaxKind["OmittedExpression"] = 189] = "OmittedExpression"; - SyntaxKind[SyntaxKind["TemplateExpression"] = 190] = "TemplateExpression"; - SyntaxKind[SyntaxKind["TemplateAccessExpression"] = 191] = "TemplateAccessExpression"; - SyntaxKind[SyntaxKind["YieldExpression"] = 192] = "YieldExpression"; - SyntaxKind[SyntaxKind["AwaitExpression"] = 193] = "AwaitExpression"; - SyntaxKind[SyntaxKind["VariableDeclaration"] = 194] = "VariableDeclaration"; - SyntaxKind[SyntaxKind["VariableDeclarator"] = 195] = "VariableDeclarator"; - SyntaxKind[SyntaxKind["ArgumentList"] = 196] = "ArgumentList"; - SyntaxKind[SyntaxKind["ParameterList"] = 197] = "ParameterList"; - SyntaxKind[SyntaxKind["TypeArgumentList"] = 198] = "TypeArgumentList"; - SyntaxKind[SyntaxKind["TypeParameterList"] = 199] = "TypeParameterList"; - SyntaxKind[SyntaxKind["HeritageClause"] = 200] = "HeritageClause"; - SyntaxKind[SyntaxKind["EqualsValueClause"] = 201] = "EqualsValueClause"; - SyntaxKind[SyntaxKind["CaseSwitchClause"] = 202] = "CaseSwitchClause"; - SyntaxKind[SyntaxKind["DefaultSwitchClause"] = 203] = "DefaultSwitchClause"; - SyntaxKind[SyntaxKind["ElseClause"] = 204] = "ElseClause"; - SyntaxKind[SyntaxKind["CatchClause"] = 205] = "CatchClause"; - SyntaxKind[SyntaxKind["FinallyClause"] = 206] = "FinallyClause"; - SyntaxKind[SyntaxKind["TemplateClause"] = 207] = "TemplateClause"; - SyntaxKind[SyntaxKind["TypeParameter"] = 208] = "TypeParameter"; - SyntaxKind[SyntaxKind["Constraint"] = 209] = "Constraint"; - SyntaxKind[SyntaxKind["Parameter"] = 210] = "Parameter"; - SyntaxKind[SyntaxKind["EnumElement"] = 211] = "EnumElement"; - SyntaxKind[SyntaxKind["TypeAnnotation"] = 212] = "TypeAnnotation"; - SyntaxKind[SyntaxKind["ExpressionBody"] = 213] = "ExpressionBody"; - SyntaxKind[SyntaxKind["ComputedPropertyName"] = 214] = "ComputedPropertyName"; - SyntaxKind[SyntaxKind["PropertyAssignment"] = 215] = "PropertyAssignment"; - SyntaxKind[SyntaxKind["ExternalModuleReference"] = 216] = "ExternalModuleReference"; - SyntaxKind[SyntaxKind["ModuleNameModuleReference"] = 217] = "ModuleNameModuleReference"; - SyntaxKind[SyntaxKind["FirstStandardKeyword"] = 17] = "FirstStandardKeyword"; - SyntaxKind[SyntaxKind["LastStandardKeyword"] = 45] = "LastStandardKeyword"; - SyntaxKind[SyntaxKind["FirstFutureReservedKeyword"] = 46] = "FirstFutureReservedKeyword"; - SyntaxKind[SyntaxKind["LastFutureReservedKeyword"] = 52] = "LastFutureReservedKeyword"; - SyntaxKind[SyntaxKind["FirstFutureReservedStrictKeyword"] = 53] = "FirstFutureReservedStrictKeyword"; - SyntaxKind[SyntaxKind["LastFutureReservedStrictKeyword"] = 61] = "LastFutureReservedStrictKeyword"; - SyntaxKind[SyntaxKind["FirstTypeScriptKeyword"] = 62] = "FirstTypeScriptKeyword"; - SyntaxKind[SyntaxKind["LastTypeScriptKeyword"] = 73] = "LastTypeScriptKeyword"; - SyntaxKind[SyntaxKind["FirstKeyword"] = 17] = "FirstKeyword"; - SyntaxKind[SyntaxKind["LastKeyword"] = 73] = "LastKeyword"; - SyntaxKind[SyntaxKind["FirstToken"] = 7] = "FirstToken"; - SyntaxKind[SyntaxKind["LastToken"] = 123] = "LastToken"; - SyntaxKind[SyntaxKind["FirstPunctuation"] = 74] = "FirstPunctuation"; - SyntaxKind[SyntaxKind["LastPunctuation"] = 123] = "LastPunctuation"; - SyntaxKind[SyntaxKind["FirstFixedWidth"] = 17] = "FirstFixedWidth"; - SyntaxKind[SyntaxKind["LastFixedWidth"] = 123] = "LastFixedWidth"; - SyntaxKind[SyntaxKind["FirstTrivia"] = 2] = "FirstTrivia"; - SyntaxKind[SyntaxKind["LastTrivia"] = 6] = "LastTrivia"; - SyntaxKind[SyntaxKind["FirstNode"] = 124] = "FirstNode"; - SyntaxKind[SyntaxKind["LastNode"] = 217] = "LastNode"; - })(TypeScript.SyntaxKind || (TypeScript.SyntaxKind = {})); - var SyntaxKind = TypeScript.SyntaxKind; -})(TypeScript || (TypeScript = {})); -var TypeScript; -(function (TypeScript) { - var SyntaxFacts; - (function (SyntaxFacts) { - var textToKeywordKind = { - "any": 62 /* AnyKeyword */, - "async": 63 /* AsyncKeyword */, - "await": 64 /* AwaitKeyword */, - "boolean": 65 /* BooleanKeyword */, - "break": 17 /* BreakKeyword */, - "case": 18 /* CaseKeyword */, - "catch": 19 /* CatchKeyword */, - "class": 46 /* ClassKeyword */, - "continue": 20 /* ContinueKeyword */, - "const": 47 /* ConstKeyword */, - "constructor": 66 /* ConstructorKeyword */, - "debugger": 21 /* DebuggerKeyword */, - "declare": 67 /* DeclareKeyword */, - "default": 22 /* DefaultKeyword */, - "delete": 23 /* DeleteKeyword */, - "do": 24 /* DoKeyword */, - "else": 25 /* ElseKeyword */, - "enum": 48 /* EnumKeyword */, - "export": 49 /* ExportKeyword */, - "extends": 50 /* ExtendsKeyword */, - "false": 26 /* FalseKeyword */, - "finally": 27 /* FinallyKeyword */, - "for": 28 /* ForKeyword */, - "function": 29 /* FunctionKeyword */, - "get": 68 /* GetKeyword */, - "if": 30 /* IfKeyword */, - "implements": 53 /* ImplementsKeyword */, - "import": 51 /* ImportKeyword */, - "in": 31 /* InKeyword */, - "instanceof": 32 /* InstanceOfKeyword */, - "interface": 54 /* InterfaceKeyword */, - "let": 55 /* LetKeyword */, - "module": 69 /* ModuleKeyword */, - "new": 33 /* NewKeyword */, - "null": 34 /* NullKeyword */, - "number": 71 /* NumberKeyword */, - "package": 56 /* PackageKeyword */, - "private": 57 /* PrivateKeyword */, - "protected": 58 /* ProtectedKeyword */, - "public": 59 /* PublicKeyword */, - "require": 70 /* RequireKeyword */, - "return": 35 /* ReturnKeyword */, - "set": 72 /* SetKeyword */, - "static": 60 /* StaticKeyword */, - "string": 73 /* StringKeyword */, - "super": 52 /* SuperKeyword */, - "switch": 36 /* SwitchKeyword */, - "this": 37 /* ThisKeyword */, - "throw": 38 /* ThrowKeyword */, - "true": 39 /* TrueKeyword */, - "try": 40 /* TryKeyword */, - "typeof": 41 /* TypeOfKeyword */, - "var": 42 /* VarKeyword */, - "void": 43 /* VoidKeyword */, - "while": 44 /* WhileKeyword */, - "with": 45 /* WithKeyword */, - "yield": 61 /* YieldKeyword */, - "{": 74 /* OpenBraceToken */, - "}": 75 /* CloseBraceToken */, - "(": 76 /* OpenParenToken */, - ")": 77 /* CloseParenToken */, - "[": 78 /* OpenBracketToken */, - "]": 79 /* CloseBracketToken */, - ".": 80 /* DotToken */, - "...": 81 /* DotDotDotToken */, - ";": 82 /* SemicolonToken */, - ",": 83 /* CommaToken */, - "<": 84 /* LessThanToken */, - ">": 85 /* GreaterThanToken */, - "<=": 86 /* LessThanEqualsToken */, - ">=": 87 /* GreaterThanEqualsToken */, - "==": 88 /* EqualsEqualsToken */, - "=>": 89 /* EqualsGreaterThanToken */, - "!=": 90 /* ExclamationEqualsToken */, - "===": 91 /* EqualsEqualsEqualsToken */, - "!==": 92 /* ExclamationEqualsEqualsToken */, - "+": 93 /* PlusToken */, - "-": 94 /* MinusToken */, - "*": 95 /* AsteriskToken */, - "%": 96 /* PercentToken */, - "++": 97 /* PlusPlusToken */, - "--": 98 /* MinusMinusToken */, - "<<": 99 /* LessThanLessThanToken */, - ">>": 100 /* GreaterThanGreaterThanToken */, - ">>>": 101 /* GreaterThanGreaterThanGreaterThanToken */, - "&": 102 /* AmpersandToken */, - "|": 103 /* BarToken */, - "^": 104 /* CaretToken */, - "!": 105 /* ExclamationToken */, - "~": 106 /* TildeToken */, - "&&": 107 /* AmpersandAmpersandToken */, - "||": 108 /* BarBarToken */, - "?": 109 /* QuestionToken */, - ":": 110 /* ColonToken */, - "=": 111 /* EqualsToken */, - "+=": 112 /* PlusEqualsToken */, - "-=": 113 /* MinusEqualsToken */, - "*=": 114 /* AsteriskEqualsToken */, - "%=": 115 /* PercentEqualsToken */, - "<<=": 116 /* LessThanLessThanEqualsToken */, - ">>=": 117 /* GreaterThanGreaterThanEqualsToken */, - ">>>=": 118 /* GreaterThanGreaterThanGreaterThanEqualsToken */, - "&=": 119 /* AmpersandEqualsToken */, - "|=": 120 /* BarEqualsToken */, - "^=": 121 /* CaretEqualsToken */, - "/": 122 /* SlashToken */, - "/=": 123 /* SlashEqualsToken */ - }; - var kindToText = new Array(); - for (var name in textToKeywordKind) { - if (textToKeywordKind.hasOwnProperty(name)) { - kindToText[textToKeywordKind[name]] = name; - } - } - kindToText[66 /* ConstructorKeyword */] = "constructor"; - function getTokenKind(text) { - if (textToKeywordKind.hasOwnProperty(text)) { - return textToKeywordKind[text]; - } - return 0 /* None */; - } - SyntaxFacts.getTokenKind = getTokenKind; - function getText(kind) { - var result = kindToText[kind]; - return result; - } - SyntaxFacts.getText = getText; - function isAnyKeyword(kind) { - return kind >= 17 /* FirstKeyword */ && kind <= 73 /* LastKeyword */; - } - SyntaxFacts.isAnyKeyword = isAnyKeyword; - function isAnyPunctuation(kind) { - return kind >= 74 /* FirstPunctuation */ && kind <= 123 /* LastPunctuation */; - } - SyntaxFacts.isAnyPunctuation = isAnyPunctuation; - function isPrefixUnaryExpressionOperatorToken(tokenKind) { - switch (tokenKind) { - case 93 /* PlusToken */: - case 94 /* MinusToken */: - case 106 /* TildeToken */: - case 105 /* ExclamationToken */: - case 97 /* PlusPlusToken */: - case 98 /* MinusMinusToken */: - return true; - default: - return false; - } - } - SyntaxFacts.isPrefixUnaryExpressionOperatorToken = isPrefixUnaryExpressionOperatorToken; - function isBinaryExpressionOperatorToken(tokenKind) { - switch (tokenKind) { - case 95 /* AsteriskToken */: - case 122 /* SlashToken */: - case 96 /* PercentToken */: - case 93 /* PlusToken */: - case 94 /* MinusToken */: - case 99 /* LessThanLessThanToken */: - case 100 /* GreaterThanGreaterThanToken */: - case 101 /* GreaterThanGreaterThanGreaterThanToken */: - case 84 /* LessThanToken */: - case 85 /* GreaterThanToken */: - case 86 /* LessThanEqualsToken */: - case 87 /* GreaterThanEqualsToken */: - case 32 /* InstanceOfKeyword */: - case 31 /* InKeyword */: - case 88 /* EqualsEqualsToken */: - case 90 /* ExclamationEqualsToken */: - case 91 /* EqualsEqualsEqualsToken */: - case 92 /* ExclamationEqualsEqualsToken */: - case 102 /* AmpersandToken */: - case 104 /* CaretToken */: - case 103 /* BarToken */: - case 107 /* AmpersandAmpersandToken */: - case 108 /* BarBarToken */: - case 120 /* BarEqualsToken */: - case 119 /* AmpersandEqualsToken */: - case 121 /* CaretEqualsToken */: - case 116 /* LessThanLessThanEqualsToken */: - case 117 /* GreaterThanGreaterThanEqualsToken */: - case 118 /* GreaterThanGreaterThanGreaterThanEqualsToken */: - case 112 /* PlusEqualsToken */: - case 113 /* MinusEqualsToken */: - case 114 /* AsteriskEqualsToken */: - case 123 /* SlashEqualsToken */: - case 115 /* PercentEqualsToken */: - case 111 /* EqualsToken */: - case 83 /* CommaToken */: - return true; - default: - return false; - } - } - SyntaxFacts.isBinaryExpressionOperatorToken = isBinaryExpressionOperatorToken; - function isAssignmentOperatorToken(tokenKind) { - switch (tokenKind) { - case 120 /* BarEqualsToken */: - case 119 /* AmpersandEqualsToken */: - case 121 /* CaretEqualsToken */: - case 116 /* LessThanLessThanEqualsToken */: - case 117 /* GreaterThanGreaterThanEqualsToken */: - case 118 /* GreaterThanGreaterThanGreaterThanEqualsToken */: - case 112 /* PlusEqualsToken */: - case 113 /* MinusEqualsToken */: - case 114 /* AsteriskEqualsToken */: - case 123 /* SlashEqualsToken */: - case 115 /* PercentEqualsToken */: - case 111 /* EqualsToken */: - return true; - default: - return false; - } - } - SyntaxFacts.isAssignmentOperatorToken = isAssignmentOperatorToken; - function isType(kind) { - switch (kind) { - case 128 /* ArrayType */: - case 62 /* AnyKeyword */: - case 71 /* NumberKeyword */: - case 65 /* BooleanKeyword */: - case 73 /* StringKeyword */: - case 43 /* VoidKeyword */: - case 127 /* FunctionType */: - case 126 /* ObjectType */: - case 129 /* ConstructorType */: - case 131 /* TypeQuery */: - case 130 /* GenericType */: - case 125 /* QualifiedName */: - case 9 /* IdentifierName */: - return true; - } - return false; - } - SyntaxFacts.isType = isType; - })(SyntaxFacts = TypeScript.SyntaxFacts || (TypeScript.SyntaxFacts = {})); -})(TypeScript || (TypeScript = {})); -var TypeScript; -(function (TypeScript) { - var ScannerUtilities; - (function (ScannerUtilities) { - ScannerUtilities.fixedWidthArray = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 4, 5, 8, 8, 7, 6, 2, 4, 5, 7, 3, 8, 2, 2, 10, 3, 4, 6, 6, 4, 5, 4, 3, 6, 3, 4, 5, 4, 5, 5, 4, 6, 7, 6, 5, 10, 9, 3, 7, 7, 9, 6, 6, 5, 3, 5, 5, 7, 11, 7, 3, 6, 7, 6, 3, 6, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 2, 2, 2, 2, 2, 3, 3, 1, 1, 1, 1, 2, 2, 2, 2, 3, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 2, 2, 2, 2, 3, 3, 4, 2, 2, 2, 1, 2]; - function identifierKind(str, start, length) { - switch (length) { - case 2: - switch (str.charCodeAt(start)) { - case 100 /* d */: return (str.charCodeAt(start + 1) === 111 /* o */) ? 24 /* DoKeyword */ : 9 /* IdentifierName */; - case 105 /* i */: - switch (str.charCodeAt(start + 1)) { - case 102 /* f */: return 30 /* IfKeyword */; - case 110 /* n */: return 31 /* InKeyword */; - default: return 9 /* IdentifierName */; - } - default: return 9 /* IdentifierName */; - } - case 3: - switch (str.charCodeAt(start)) { - case 97 /* a */: return (str.charCodeAt(start + 1) === 110 /* n */ && str.charCodeAt(start + 2) === 121 /* y */) ? 62 /* AnyKeyword */ : 9 /* IdentifierName */; - case 102 /* f */: return (str.charCodeAt(start + 1) === 111 /* o */ && str.charCodeAt(start + 2) === 114 /* r */) ? 28 /* ForKeyword */ : 9 /* IdentifierName */; - case 103 /* g */: return (str.charCodeAt(start + 1) === 101 /* e */ && str.charCodeAt(start + 2) === 116 /* t */) ? 68 /* GetKeyword */ : 9 /* IdentifierName */; - case 108 /* l */: return (str.charCodeAt(start + 1) === 101 /* e */ && str.charCodeAt(start + 2) === 116 /* t */) ? 55 /* LetKeyword */ : 9 /* IdentifierName */; - case 110 /* n */: return (str.charCodeAt(start + 1) === 101 /* e */ && str.charCodeAt(start + 2) === 119 /* w */) ? 33 /* NewKeyword */ : 9 /* IdentifierName */; - case 115 /* s */: return (str.charCodeAt(start + 1) === 101 /* e */ && str.charCodeAt(start + 2) === 116 /* t */) ? 72 /* SetKeyword */ : 9 /* IdentifierName */; - case 116 /* t */: return (str.charCodeAt(start + 1) === 114 /* r */ && str.charCodeAt(start + 2) === 121 /* y */) ? 40 /* TryKeyword */ : 9 /* IdentifierName */; - case 118 /* v */: return (str.charCodeAt(start + 1) === 97 /* a */ && str.charCodeAt(start + 2) === 114 /* r */) ? 42 /* VarKeyword */ : 9 /* IdentifierName */; - default: return 9 /* IdentifierName */; - } - case 4: - switch (str.charCodeAt(start)) { - case 99 /* c */: return (str.charCodeAt(start + 1) === 97 /* a */ && str.charCodeAt(start + 2) === 115 /* s */ && str.charCodeAt(start + 3) === 101 /* e */) ? 18 /* CaseKeyword */ : 9 /* IdentifierName */; - case 101 /* e */: - switch (str.charCodeAt(start + 1)) { - case 108 /* l */: return (str.charCodeAt(start + 2) === 115 /* s */ && str.charCodeAt(start + 3) === 101 /* e */) ? 25 /* ElseKeyword */ : 9 /* IdentifierName */; - case 110 /* n */: return (str.charCodeAt(start + 2) === 117 /* u */ && str.charCodeAt(start + 3) === 109 /* m */) ? 48 /* EnumKeyword */ : 9 /* IdentifierName */; - default: return 9 /* IdentifierName */; - } - case 110 /* n */: return (str.charCodeAt(start + 1) === 117 /* u */ && str.charCodeAt(start + 2) === 108 /* l */ && str.charCodeAt(start + 3) === 108 /* l */) ? 34 /* NullKeyword */ : 9 /* IdentifierName */; - case 116 /* t */: - switch (str.charCodeAt(start + 1)) { - case 104 /* h */: return (str.charCodeAt(start + 2) === 105 /* i */ && str.charCodeAt(start + 3) === 115 /* s */) ? 37 /* ThisKeyword */ : 9 /* IdentifierName */; - case 114 /* r */: return (str.charCodeAt(start + 2) === 117 /* u */ && str.charCodeAt(start + 3) === 101 /* e */) ? 39 /* TrueKeyword */ : 9 /* IdentifierName */; - default: return 9 /* IdentifierName */; - } - case 118 /* v */: return (str.charCodeAt(start + 1) === 111 /* o */ && str.charCodeAt(start + 2) === 105 /* i */ && str.charCodeAt(start + 3) === 100 /* d */) ? 43 /* VoidKeyword */ : 9 /* IdentifierName */; - case 119 /* w */: return (str.charCodeAt(start + 1) === 105 /* i */ && str.charCodeAt(start + 2) === 116 /* t */ && str.charCodeAt(start + 3) === 104 /* h */) ? 45 /* WithKeyword */ : 9 /* IdentifierName */; - default: return 9 /* IdentifierName */; - } - case 5: - switch (str.charCodeAt(start)) { - case 97 /* a */: - switch (str.charCodeAt(start + 1)) { - case 115 /* s */: return (str.charCodeAt(start + 2) === 121 /* y */ && str.charCodeAt(start + 3) === 110 /* n */ && str.charCodeAt(start + 4) === 99 /* c */) ? 63 /* AsyncKeyword */ : 9 /* IdentifierName */; - case 119 /* w */: return (str.charCodeAt(start + 2) === 97 /* a */ && str.charCodeAt(start + 3) === 105 /* i */ && str.charCodeAt(start + 4) === 116 /* t */) ? 64 /* AwaitKeyword */ : 9 /* IdentifierName */; - default: return 9 /* IdentifierName */; - } - case 98 /* b */: return (str.charCodeAt(start + 1) === 114 /* r */ && str.charCodeAt(start + 2) === 101 /* e */ && str.charCodeAt(start + 3) === 97 /* a */ && str.charCodeAt(start + 4) === 107 /* k */) ? 17 /* BreakKeyword */ : 9 /* IdentifierName */; - case 99 /* c */: - switch (str.charCodeAt(start + 1)) { - case 97 /* a */: return (str.charCodeAt(start + 2) === 116 /* t */ && str.charCodeAt(start + 3) === 99 /* c */ && str.charCodeAt(start + 4) === 104 /* h */) ? 19 /* CatchKeyword */ : 9 /* IdentifierName */; - case 108 /* l */: return (str.charCodeAt(start + 2) === 97 /* a */ && str.charCodeAt(start + 3) === 115 /* s */ && str.charCodeAt(start + 4) === 115 /* s */) ? 46 /* ClassKeyword */ : 9 /* IdentifierName */; - case 111 /* o */: return (str.charCodeAt(start + 2) === 110 /* n */ && str.charCodeAt(start + 3) === 115 /* s */ && str.charCodeAt(start + 4) === 116 /* t */) ? 47 /* ConstKeyword */ : 9 /* IdentifierName */; - default: return 9 /* IdentifierName */; - } - case 102 /* f */: return (str.charCodeAt(start + 1) === 97 /* a */ && str.charCodeAt(start + 2) === 108 /* l */ && str.charCodeAt(start + 3) === 115 /* s */ && str.charCodeAt(start + 4) === 101 /* e */) ? 26 /* FalseKeyword */ : 9 /* IdentifierName */; - case 115 /* s */: return (str.charCodeAt(start + 1) === 117 /* u */ && str.charCodeAt(start + 2) === 112 /* p */ && str.charCodeAt(start + 3) === 101 /* e */ && str.charCodeAt(start + 4) === 114 /* r */) ? 52 /* SuperKeyword */ : 9 /* IdentifierName */; - case 116 /* t */: return (str.charCodeAt(start + 1) === 104 /* h */ && str.charCodeAt(start + 2) === 114 /* r */ && str.charCodeAt(start + 3) === 111 /* o */ && str.charCodeAt(start + 4) === 119 /* w */) ? 38 /* ThrowKeyword */ : 9 /* IdentifierName */; - case 119 /* w */: return (str.charCodeAt(start + 1) === 104 /* h */ && str.charCodeAt(start + 2) === 105 /* i */ && str.charCodeAt(start + 3) === 108 /* l */ && str.charCodeAt(start + 4) === 101 /* e */) ? 44 /* WhileKeyword */ : 9 /* IdentifierName */; - case 121 /* y */: return (str.charCodeAt(start + 1) === 105 /* i */ && str.charCodeAt(start + 2) === 101 /* e */ && str.charCodeAt(start + 3) === 108 /* l */ && str.charCodeAt(start + 4) === 100 /* d */) ? 61 /* YieldKeyword */ : 9 /* IdentifierName */; - default: return 9 /* IdentifierName */; - } - case 6: - switch (str.charCodeAt(start)) { - case 100 /* d */: return (str.charCodeAt(start + 1) === 101 /* e */ && str.charCodeAt(start + 2) === 108 /* l */ && str.charCodeAt(start + 3) === 101 /* e */ && str.charCodeAt(start + 4) === 116 /* t */ && str.charCodeAt(start + 5) === 101 /* e */) ? 23 /* DeleteKeyword */ : 9 /* IdentifierName */; - case 101 /* e */: return (str.charCodeAt(start + 1) === 120 /* x */ && str.charCodeAt(start + 2) === 112 /* p */ && str.charCodeAt(start + 3) === 111 /* o */ && str.charCodeAt(start + 4) === 114 /* r */ && str.charCodeAt(start + 5) === 116 /* t */) ? 49 /* ExportKeyword */ : 9 /* IdentifierName */; - case 105 /* i */: return (str.charCodeAt(start + 1) === 109 /* m */ && str.charCodeAt(start + 2) === 112 /* p */ && str.charCodeAt(start + 3) === 111 /* o */ && str.charCodeAt(start + 4) === 114 /* r */ && str.charCodeAt(start + 5) === 116 /* t */) ? 51 /* ImportKeyword */ : 9 /* IdentifierName */; - case 109 /* m */: return (str.charCodeAt(start + 1) === 111 /* o */ && str.charCodeAt(start + 2) === 100 /* d */ && str.charCodeAt(start + 3) === 117 /* u */ && str.charCodeAt(start + 4) === 108 /* l */ && str.charCodeAt(start + 5) === 101 /* e */) ? 69 /* ModuleKeyword */ : 9 /* IdentifierName */; - case 110 /* n */: return (str.charCodeAt(start + 1) === 117 /* u */ && str.charCodeAt(start + 2) === 109 /* m */ && str.charCodeAt(start + 3) === 98 /* b */ && str.charCodeAt(start + 4) === 101 /* e */ && str.charCodeAt(start + 5) === 114 /* r */) ? 71 /* NumberKeyword */ : 9 /* IdentifierName */; - case 112 /* p */: return (str.charCodeAt(start + 1) === 117 /* u */ && str.charCodeAt(start + 2) === 98 /* b */ && str.charCodeAt(start + 3) === 108 /* l */ && str.charCodeAt(start + 4) === 105 /* i */ && str.charCodeAt(start + 5) === 99 /* c */) ? 59 /* PublicKeyword */ : 9 /* IdentifierName */; - case 114 /* r */: return (str.charCodeAt(start + 1) === 101 /* e */ && str.charCodeAt(start + 2) === 116 /* t */ && str.charCodeAt(start + 3) === 117 /* u */ && str.charCodeAt(start + 4) === 114 /* r */ && str.charCodeAt(start + 5) === 110 /* n */) ? 35 /* ReturnKeyword */ : 9 /* IdentifierName */; - case 115 /* s */: - switch (str.charCodeAt(start + 1)) { - case 116 /* t */: - switch (str.charCodeAt(start + 2)) { - case 97 /* a */: return (str.charCodeAt(start + 3) === 116 /* t */ && str.charCodeAt(start + 4) === 105 /* i */ && str.charCodeAt(start + 5) === 99 /* c */) ? 60 /* StaticKeyword */ : 9 /* IdentifierName */; - case 114 /* r */: return (str.charCodeAt(start + 3) === 105 /* i */ && str.charCodeAt(start + 4) === 110 /* n */ && str.charCodeAt(start + 5) === 103 /* g */) ? 73 /* StringKeyword */ : 9 /* IdentifierName */; - default: return 9 /* IdentifierName */; - } - case 119 /* w */: return (str.charCodeAt(start + 2) === 105 /* i */ && str.charCodeAt(start + 3) === 116 /* t */ && str.charCodeAt(start + 4) === 99 /* c */ && str.charCodeAt(start + 5) === 104 /* h */) ? 36 /* SwitchKeyword */ : 9 /* IdentifierName */; - default: return 9 /* IdentifierName */; - } - case 116 /* t */: return (str.charCodeAt(start + 1) === 121 /* y */ && str.charCodeAt(start + 2) === 112 /* p */ && str.charCodeAt(start + 3) === 101 /* e */ && str.charCodeAt(start + 4) === 111 /* o */ && str.charCodeAt(start + 5) === 102 /* f */) ? 41 /* TypeOfKeyword */ : 9 /* IdentifierName */; - default: return 9 /* IdentifierName */; - } - case 7: - switch (str.charCodeAt(start)) { - case 98 /* b */: return (str.charCodeAt(start + 1) === 111 /* o */ && str.charCodeAt(start + 2) === 111 /* o */ && str.charCodeAt(start + 3) === 108 /* l */ && str.charCodeAt(start + 4) === 101 /* e */ && str.charCodeAt(start + 5) === 97 /* a */ && str.charCodeAt(start + 6) === 110 /* n */) ? 65 /* BooleanKeyword */ : 9 /* IdentifierName */; - case 100 /* d */: - switch (str.charCodeAt(start + 1)) { - case 101 /* e */: - switch (str.charCodeAt(start + 2)) { - case 99 /* c */: return (str.charCodeAt(start + 3) === 108 /* l */ && str.charCodeAt(start + 4) === 97 /* a */ && str.charCodeAt(start + 5) === 114 /* r */ && str.charCodeAt(start + 6) === 101 /* e */) ? 67 /* DeclareKeyword */ : 9 /* IdentifierName */; - case 102 /* f */: return (str.charCodeAt(start + 3) === 97 /* a */ && str.charCodeAt(start + 4) === 117 /* u */ && str.charCodeAt(start + 5) === 108 /* l */ && str.charCodeAt(start + 6) === 116 /* t */) ? 22 /* DefaultKeyword */ : 9 /* IdentifierName */; - default: return 9 /* IdentifierName */; - } - default: return 9 /* IdentifierName */; - } - case 101 /* e */: return (str.charCodeAt(start + 1) === 120 /* x */ && str.charCodeAt(start + 2) === 116 /* t */ && str.charCodeAt(start + 3) === 101 /* e */ && str.charCodeAt(start + 4) === 110 /* n */ && str.charCodeAt(start + 5) === 100 /* d */ && str.charCodeAt(start + 6) === 115 /* s */) ? 50 /* ExtendsKeyword */ : 9 /* IdentifierName */; - case 102 /* f */: return (str.charCodeAt(start + 1) === 105 /* i */ && str.charCodeAt(start + 2) === 110 /* n */ && str.charCodeAt(start + 3) === 97 /* a */ && str.charCodeAt(start + 4) === 108 /* l */ && str.charCodeAt(start + 5) === 108 /* l */ && str.charCodeAt(start + 6) === 121 /* y */) ? 27 /* FinallyKeyword */ : 9 /* IdentifierName */; - case 112 /* p */: - switch (str.charCodeAt(start + 1)) { - case 97 /* a */: return (str.charCodeAt(start + 2) === 99 /* c */ && str.charCodeAt(start + 3) === 107 /* k */ && str.charCodeAt(start + 4) === 97 /* a */ && str.charCodeAt(start + 5) === 103 /* g */ && str.charCodeAt(start + 6) === 101 /* e */) ? 56 /* PackageKeyword */ : 9 /* IdentifierName */; - case 114 /* r */: return (str.charCodeAt(start + 2) === 105 /* i */ && str.charCodeAt(start + 3) === 118 /* v */ && str.charCodeAt(start + 4) === 97 /* a */ && str.charCodeAt(start + 5) === 116 /* t */ && str.charCodeAt(start + 6) === 101 /* e */) ? 57 /* PrivateKeyword */ : 9 /* IdentifierName */; - default: return 9 /* IdentifierName */; - } - case 114 /* r */: return (str.charCodeAt(start + 1) === 101 /* e */ && str.charCodeAt(start + 2) === 113 /* q */ && str.charCodeAt(start + 3) === 117 /* u */ && str.charCodeAt(start + 4) === 105 /* i */ && str.charCodeAt(start + 5) === 114 /* r */ && str.charCodeAt(start + 6) === 101 /* e */) ? 70 /* RequireKeyword */ : 9 /* IdentifierName */; - default: return 9 /* IdentifierName */; - } - case 8: - switch (str.charCodeAt(start)) { - case 99 /* c */: return (str.charCodeAt(start + 1) === 111 /* o */ && str.charCodeAt(start + 2) === 110 /* n */ && str.charCodeAt(start + 3) === 116 /* t */ && str.charCodeAt(start + 4) === 105 /* i */ && str.charCodeAt(start + 5) === 110 /* n */ && str.charCodeAt(start + 6) === 117 /* u */ && str.charCodeAt(start + 7) === 101 /* e */) ? 20 /* ContinueKeyword */ : 9 /* IdentifierName */; - case 100 /* d */: return (str.charCodeAt(start + 1) === 101 /* e */ && str.charCodeAt(start + 2) === 98 /* b */ && str.charCodeAt(start + 3) === 117 /* u */ && str.charCodeAt(start + 4) === 103 /* g */ && str.charCodeAt(start + 5) === 103 /* g */ && str.charCodeAt(start + 6) === 101 /* e */ && str.charCodeAt(start + 7) === 114 /* r */) ? 21 /* DebuggerKeyword */ : 9 /* IdentifierName */; - case 102 /* f */: return (str.charCodeAt(start + 1) === 117 /* u */ && str.charCodeAt(start + 2) === 110 /* n */ && str.charCodeAt(start + 3) === 99 /* c */ && str.charCodeAt(start + 4) === 116 /* t */ && str.charCodeAt(start + 5) === 105 /* i */ && str.charCodeAt(start + 6) === 111 /* o */ && str.charCodeAt(start + 7) === 110 /* n */) ? 29 /* FunctionKeyword */ : 9 /* IdentifierName */; - default: return 9 /* IdentifierName */; - } - case 9: - switch (str.charCodeAt(start)) { - case 105 /* i */: return (str.charCodeAt(start + 1) === 110 /* n */ && str.charCodeAt(start + 2) === 116 /* t */ && str.charCodeAt(start + 3) === 101 /* e */ && str.charCodeAt(start + 4) === 114 /* r */ && str.charCodeAt(start + 5) === 102 /* f */ && str.charCodeAt(start + 6) === 97 /* a */ && str.charCodeAt(start + 7) === 99 /* c */ && str.charCodeAt(start + 8) === 101 /* e */) ? 54 /* InterfaceKeyword */ : 9 /* IdentifierName */; - case 112 /* p */: return (str.charCodeAt(start + 1) === 114 /* r */ && str.charCodeAt(start + 2) === 111 /* o */ && str.charCodeAt(start + 3) === 116 /* t */ && str.charCodeAt(start + 4) === 101 /* e */ && str.charCodeAt(start + 5) === 99 /* c */ && str.charCodeAt(start + 6) === 116 /* t */ && str.charCodeAt(start + 7) === 101 /* e */ && str.charCodeAt(start + 8) === 100 /* d */) ? 58 /* ProtectedKeyword */ : 9 /* IdentifierName */; - default: return 9 /* IdentifierName */; - } - case 10: - switch (str.charCodeAt(start)) { - case 105 /* i */: - switch (str.charCodeAt(start + 1)) { - case 109 /* m */: return (str.charCodeAt(start + 2) === 112 /* p */ && str.charCodeAt(start + 3) === 108 /* l */ && str.charCodeAt(start + 4) === 101 /* e */ && str.charCodeAt(start + 5) === 109 /* m */ && str.charCodeAt(start + 6) === 101 /* e */ && str.charCodeAt(start + 7) === 110 /* n */ && str.charCodeAt(start + 8) === 116 /* t */ && str.charCodeAt(start + 9) === 115 /* s */) ? 53 /* ImplementsKeyword */ : 9 /* IdentifierName */; - case 110 /* n */: return (str.charCodeAt(start + 2) === 115 /* s */ && str.charCodeAt(start + 3) === 116 /* t */ && str.charCodeAt(start + 4) === 97 /* a */ && str.charCodeAt(start + 5) === 110 /* n */ && str.charCodeAt(start + 6) === 99 /* c */ && str.charCodeAt(start + 7) === 101 /* e */ && str.charCodeAt(start + 8) === 111 /* o */ && str.charCodeAt(start + 9) === 102 /* f */) ? 32 /* InstanceOfKeyword */ : 9 /* IdentifierName */; - default: return 9 /* IdentifierName */; - } - default: return 9 /* IdentifierName */; - } - case 11: return (str.charCodeAt(start) === 99 /* c */ && str.charCodeAt(start + 1) === 111 /* o */ && str.charCodeAt(start + 2) === 110 /* n */ && str.charCodeAt(start + 3) === 115 /* s */ && str.charCodeAt(start + 4) === 116 /* t */ && str.charCodeAt(start + 5) === 114 /* r */ && str.charCodeAt(start + 6) === 117 /* u */ && str.charCodeAt(start + 7) === 99 /* c */ && str.charCodeAt(start + 8) === 116 /* t */ && str.charCodeAt(start + 9) === 111 /* o */ && str.charCodeAt(start + 10) === 114 /* r */) ? 66 /* ConstructorKeyword */ : 9 /* IdentifierName */; - default: return 9 /* IdentifierName */; - } - } - ScannerUtilities.identifierKind = identifierKind; - })(ScannerUtilities = TypeScript.ScannerUtilities || (TypeScript.ScannerUtilities = {})); -})(TypeScript || (TypeScript = {})); -var TypeScript; -(function (TypeScript) { - var Scanner; - (function (Scanner) { - TypeScript.Debug.assert(123 /* LastToken */ <= 127); - var ScannerConstants; - (function (ScannerConstants) { - ScannerConstants[ScannerConstants["LargeTokenFullWidthShift"] = 3] = "LargeTokenFullWidthShift"; - ScannerConstants[ScannerConstants["WhitespaceTrivia"] = 0x01] = "WhitespaceTrivia"; - ScannerConstants[ScannerConstants["NewlineTrivia"] = 0x02] = "NewlineTrivia"; - ScannerConstants[ScannerConstants["CommentTrivia"] = 0x04] = "CommentTrivia"; - ScannerConstants[ScannerConstants["TriviaMask"] = 0x07] = "TriviaMask"; - ScannerConstants[ScannerConstants["KindMask"] = 0x7F] = "KindMask"; - ScannerConstants[ScannerConstants["IsVariableWidthMask"] = 0x80] = "IsVariableWidthMask"; - })(ScannerConstants || (ScannerConstants = {})); - function largeTokenPackData(fullWidth, leadingTriviaInfo) { - return (fullWidth << 3 /* LargeTokenFullWidthShift */) | leadingTriviaInfo; - } - function largeTokenUnpackFullWidth(packedFullWidthAndInfo) { - return packedFullWidthAndInfo >> 3 /* LargeTokenFullWidthShift */; - } - function largeTokenUnpackLeadingTriviaInfo(packedFullWidthAndInfo) { - return packedFullWidthAndInfo & 7 /* TriviaMask */; - } - function largeTokenUnpackHasLeadingTrivia(packed) { - return largeTokenUnpackLeadingTriviaInfo(packed) !== 0; - } - function hasComment(info) { - return (info & 4 /* CommentTrivia */) !== 0; - } - function hasNewLine(info) { - return (info & 2 /* NewlineTrivia */) !== 0; - } - function largeTokenUnpackHasLeadingNewLine(packed) { - return hasNewLine(largeTokenUnpackLeadingTriviaInfo(packed)); - } - function largeTokenUnpackHasLeadingComment(packed) { - return hasComment(largeTokenUnpackLeadingTriviaInfo(packed)); - } - var isKeywordStartCharacter = TypeScript.ArrayUtilities.createArray(127 /* maxAsciiCharacter */, 0); - var isIdentifierStartCharacter = TypeScript.ArrayUtilities.createArray(127 /* maxAsciiCharacter */, false); - var isIdentifierPartCharacter = TypeScript.ArrayUtilities.createArray(127 /* maxAsciiCharacter */, false); - for (var character = 0; character < 127 /* maxAsciiCharacter */; character++) { - if ((character >= 97 /* a */ && character <= 122 /* z */) || (character >= 65 /* A */ && character <= 90 /* Z */) || character === 95 /* _ */ || character === 36 /* $ */) { - isIdentifierStartCharacter[character] = true; - isIdentifierPartCharacter[character] = true; - } - else if (character >= 48 /* _0 */ && character <= 57 /* _9 */) { - isIdentifierPartCharacter[character] = true; - } - } - for (var keywordKind = 17 /* FirstKeyword */; keywordKind <= 73 /* LastKeyword */; keywordKind++) { - var keyword = TypeScript.SyntaxFacts.getText(keywordKind); - isKeywordStartCharacter[keyword.charCodeAt(0)] = 1; - } - function isContextualToken(token) { - switch (token.kind) { - case 10 /* RegularExpressionLiteral */: - case 100 /* GreaterThanGreaterThanToken */: - case 101 /* GreaterThanGreaterThanGreaterThanToken */: - case 87 /* GreaterThanEqualsToken */: - case 117 /* GreaterThanGreaterThanEqualsToken */: - case 118 /* GreaterThanGreaterThanGreaterThanEqualsToken */: - return true; - case 15 /* TemplateMiddleToken */: - case 16 /* TemplateEndToken */: - return true; - default: - return token.isKeywordConvertedToIdentifier(); - } - } - Scanner.isContextualToken = isContextualToken; - var lastTokenInfo = { leadingTriviaWidth: -1 }; - var lastTokenInfoTokenID = -1; - var triviaScanner = createScannerInternal(2 /* Latest */, TypeScript.SimpleText.fromString(""), function () { - }); - function fillSizeInfo(token, text) { - if (lastTokenInfoTokenID !== TypeScript.syntaxID(token)) { - triviaScanner.fillTokenInfo(token, text, lastTokenInfo); - lastTokenInfoTokenID = TypeScript.syntaxID(token); - } - } - function fullText(token, text) { - return text.substr(token.fullStart(), token.fullWidth()); - } - function leadingTrivia(token, text) { - if (!token.hasLeadingTrivia()) { - return TypeScript.Syntax.emptyTriviaList; - } - return triviaScanner.scanTrivia(token, text); - } - function leadingTriviaWidth(token, text) { - if (!token.hasLeadingTrivia()) { - return 0; - } - fillSizeInfo(token, text); - return lastTokenInfo.leadingTriviaWidth; - } - function tokenIsIncrementallyUnusable(token) { - return false; - } - var FixedWidthTokenWithNoTrivia = (function () { - function FixedWidthTokenWithNoTrivia(_fullStart, kind) { - this._fullStart = _fullStart; - this.kind = kind; - TypeScript.Debug.assert(!isNaN(_fullStart)); - } - FixedWidthTokenWithNoTrivia.prototype.setFullStart = function (fullStart) { - this._fullStart = fullStart; - }; - FixedWidthTokenWithNoTrivia.prototype.childAt = function (index) { - throw TypeScript.Errors.invalidOperation(); - }; - FixedWidthTokenWithNoTrivia.prototype.isIncrementallyUnusable = function () { - return false; - }; - FixedWidthTokenWithNoTrivia.prototype.isKeywordConvertedToIdentifier = function () { - return false; - }; - FixedWidthTokenWithNoTrivia.prototype.fullText = function () { - return TypeScript.SyntaxFacts.getText(this.kind); - }; - FixedWidthTokenWithNoTrivia.prototype.text = function () { - return this.fullText(); - }; - FixedWidthTokenWithNoTrivia.prototype.leadingTrivia = function () { - return TypeScript.Syntax.emptyTriviaList; - }; - FixedWidthTokenWithNoTrivia.prototype.leadingTriviaWidth = function () { - return 0; - }; - FixedWidthTokenWithNoTrivia.prototype.fullWidth = function () { - return fixedWidthTokenLength(this.kind); - }; - FixedWidthTokenWithNoTrivia.prototype.fullStart = function () { - return this._fullStart; - }; - FixedWidthTokenWithNoTrivia.prototype.hasLeadingTrivia = function () { - return false; - }; - FixedWidthTokenWithNoTrivia.prototype.hasLeadingNewLine = function () { - return false; - }; - FixedWidthTokenWithNoTrivia.prototype.hasLeadingSkippedToken = function () { - return false; - }; - FixedWidthTokenWithNoTrivia.prototype.hasLeadingComment = function () { - return false; - }; - FixedWidthTokenWithNoTrivia.prototype.clone = function () { - return new FixedWidthTokenWithNoTrivia(this._fullStart, this.kind); - }; - return FixedWidthTokenWithNoTrivia; - })(); - FixedWidthTokenWithNoTrivia.prototype.childCount = 0; - var LargeScannerToken = (function () { - function LargeScannerToken(_fullStart, kind, _packedFullWidthAndInfo, cachedText) { - this._fullStart = _fullStart; - this.kind = kind; - this._packedFullWidthAndInfo = _packedFullWidthAndInfo; - TypeScript.Debug.assert(!isNaN(_fullStart)); - if (cachedText !== undefined) { - this.cachedText = cachedText; - } - } - LargeScannerToken.prototype.setFullStart = function (fullStart) { - this._fullStart = fullStart; - }; - LargeScannerToken.prototype.childAt = function (index) { - throw TypeScript.Errors.invalidOperation(); - }; - LargeScannerToken.prototype.syntaxTreeText = function (text) { - var result = text || TypeScript.syntaxTree(this).text; - TypeScript.Debug.assert(result); - return result; - }; - LargeScannerToken.prototype.isIncrementallyUnusable = function () { - return tokenIsIncrementallyUnusable(this); - }; - LargeScannerToken.prototype.isKeywordConvertedToIdentifier = function () { - return false; - }; - LargeScannerToken.prototype.fullText = function (text) { - return fullText(this, this.syntaxTreeText(text)); - }; - LargeScannerToken.prototype.text = function () { - var cachedText = this.cachedText; - return cachedText !== undefined ? cachedText : TypeScript.SyntaxFacts.getText(this.kind); - }; - LargeScannerToken.prototype.leadingTrivia = function (text) { - return leadingTrivia(this, this.syntaxTreeText(text)); - }; - LargeScannerToken.prototype.leadingTriviaWidth = function (text) { - return leadingTriviaWidth(this, this.syntaxTreeText(text)); - }; - LargeScannerToken.prototype.fullWidth = function () { - return largeTokenUnpackFullWidth(this._packedFullWidthAndInfo); - }; - LargeScannerToken.prototype.fullStart = function () { - return this._fullStart; - }; - LargeScannerToken.prototype.hasLeadingTrivia = function () { - return largeTokenUnpackHasLeadingTrivia(this._packedFullWidthAndInfo); - }; - LargeScannerToken.prototype.hasLeadingNewLine = function () { - return largeTokenUnpackHasLeadingNewLine(this._packedFullWidthAndInfo); - }; - LargeScannerToken.prototype.hasLeadingComment = function () { - return largeTokenUnpackHasLeadingComment(this._packedFullWidthAndInfo); - }; - LargeScannerToken.prototype.hasLeadingSkippedToken = function () { - return false; - }; - LargeScannerToken.prototype.clone = function () { - return new LargeScannerToken(this._fullStart, this.kind, this._packedFullWidthAndInfo, this.cachedText); - }; - return LargeScannerToken; - })(); - LargeScannerToken.prototype.childCount = 0; - function createScanner(languageVersion, text, reportDiagnostic) { - var scanner = createScannerInternal(languageVersion, text, reportDiagnostic); - return { - setIndex: scanner.setIndex, - scan: scanner.scan - }; - } - Scanner.createScanner = createScanner; - function createScannerInternal(languageVersion, text, reportDiagnostic) { - var str; - var index; - var start; - var end; - function setIndex(_index) { - index = _index; - } - function reset(_text, _start, _end) { - var textLength = _text.length(); - TypeScript.Debug.assert(_start <= textLength, "Token's start was not within the bounds of text."); - TypeScript.Debug.assert(_end <= textLength, "Token's end was not within the bounds of text:"); - if (!str || text !== _text) { - text = _text; - str = _text.substr(0, textLength); - } - start = _start; - end = _end; - index = _start; - } - function scan(allowContextualToken) { - var fullStart = index; - var leadingTriviaInfo = scanTriviaInfo(); - var start = index; - var kindAndIsVariableWidth = scanSyntaxKind(allowContextualToken); - var fullEnd = index; - var fullWidth = fullEnd - fullStart; - var kind = kindAndIsVariableWidth & 127 /* KindMask */; - var isFixedWidth = kind >= 17 /* FirstFixedWidth */ && kind <= 123 /* LastFixedWidth */ && ((kindAndIsVariableWidth & 128 /* IsVariableWidthMask */) === 0); - if (isFixedWidth && leadingTriviaInfo === 0) { - return new FixedWidthTokenWithNoTrivia(fullStart, kind); - } - else { - var packedFullWidthAndInfo = largeTokenPackData(fullWidth, leadingTriviaInfo); - var cachedText = isFixedWidth ? undefined : text.substr(start, fullEnd - start); - return new LargeScannerToken(fullStart, kind, packedFullWidthAndInfo, cachedText); - } - } - function scanTrivia(parent, text) { - var tokenFullStart = parent.fullStart(); - var tokenStart = tokenFullStart + leadingTriviaWidth(parent, text); - reset(text, tokenFullStart, tokenStart); - var trivia = []; - while (true) { - if (index < end) { - var ch = str.charCodeAt(index); - switch (ch) { - case 32 /* space */: - case 160 /* nonBreakingSpace */: - case 8192 /* enQuad */: - case 8193 /* emQuad */: - case 8194 /* enSpace */: - case 8195 /* emSpace */: - case 8196 /* threePerEmSpace */: - case 8197 /* fourPerEmSpace */: - case 8198 /* sixPerEmSpace */: - case 8199 /* figureSpace */: - case 8200 /* punctuationSpace */: - case 8201 /* thinSpace */: - case 8202 /* hairSpace */: - case 8203 /* zeroWidthSpace */: - case 8239 /* narrowNoBreakSpace */: - case 12288 /* ideographicSpace */: - case 9 /* tab */: - case 11 /* verticalTab */: - case 12 /* formFeed */: - case 65279 /* byteOrderMark */: - trivia.push(scanWhitespaceTrivia()); - continue; - case 47 /* slash */: - var ch2 = str.charCodeAt(index + 1); - if (ch2 === 47 /* slash */) { - trivia.push(scanSingleLineCommentTrivia()); - continue; - } - if (ch2 === 42 /* asterisk */) { - trivia.push(scanMultiLineCommentTrivia()); - continue; - } - throw TypeScript.Errors.invalidOperation(); - case 13 /* carriageReturn */: - case 10 /* lineFeed */: - case 8233 /* paragraphSeparator */: - case 8232 /* lineSeparator */: - trivia.push(scanLineTerminatorSequenceTrivia(ch)); - continue; - default: - throw TypeScript.Errors.invalidOperation(); - } - } - var triviaList = TypeScript.Syntax.triviaList(trivia); - triviaList.parent = parent; - return triviaList; - } - } - function scanTriviaInfo() { - var result = 0; - var _end = end; - while (index < _end) { - var ch = str.charCodeAt(index); - switch (ch) { - case 9 /* tab */: - case 32 /* space */: - case 11 /* verticalTab */: - case 12 /* formFeed */: - index++; - result |= 1 /* WhitespaceTrivia */; - continue; - case 13 /* carriageReturn */: - if ((index + 1) < end && str.charCodeAt(index + 1) === 10 /* lineFeed */) { - index++; - } - case 10 /* lineFeed */: - case 8233 /* paragraphSeparator */: - case 8232 /* lineSeparator */: - index++; - result |= 2 /* NewlineTrivia */; - continue; - case 47 /* slash */: - if ((index + 1) < _end) { - var ch2 = str.charCodeAt(index + 1); - if (ch2 === 47 /* slash */) { - result |= 4 /* CommentTrivia */; - skipSingleLineCommentTrivia(); - continue; - } - if (ch2 === 42 /* asterisk */) { - result |= 4 /* CommentTrivia */; - skipMultiLineCommentTrivia(); - continue; - } - } - return result; - default: - if (ch > 127 /* maxAsciiCharacter */ && slowScanWhitespaceTriviaInfo(ch)) { - result |= 1 /* WhitespaceTrivia */; - continue; - } - return result; - } - } - return result; - } - function slowScanWhitespaceTriviaInfo(ch) { - switch (ch) { - case 160 /* nonBreakingSpace */: - case 8192 /* enQuad */: - case 8193 /* emQuad */: - case 8194 /* enSpace */: - case 8195 /* emSpace */: - case 8196 /* threePerEmSpace */: - case 8197 /* fourPerEmSpace */: - case 8198 /* sixPerEmSpace */: - case 8199 /* figureSpace */: - case 8200 /* punctuationSpace */: - case 8201 /* thinSpace */: - case 8202 /* hairSpace */: - case 8203 /* zeroWidthSpace */: - case 8239 /* narrowNoBreakSpace */: - case 12288 /* ideographicSpace */: - case 65279 /* byteOrderMark */: - index++; - return true; - default: - return false; - } - } - function isNewLineCharacter(ch) { - switch (ch) { - case 13 /* carriageReturn */: - case 10 /* lineFeed */: - case 8233 /* paragraphSeparator */: - case 8232 /* lineSeparator */: - return true; - default: - return false; - } - } - function scanWhitespaceTrivia() { - var absoluteStartIndex = index; - while (true) { - var ch = str.charCodeAt(index); - switch (ch) { - case 32 /* space */: - case 160 /* nonBreakingSpace */: - case 8192 /* enQuad */: - case 8193 /* emQuad */: - case 8194 /* enSpace */: - case 8195 /* emSpace */: - case 8196 /* threePerEmSpace */: - case 8197 /* fourPerEmSpace */: - case 8198 /* sixPerEmSpace */: - case 8199 /* figureSpace */: - case 8200 /* punctuationSpace */: - case 8201 /* thinSpace */: - case 8202 /* hairSpace */: - case 8203 /* zeroWidthSpace */: - case 8239 /* narrowNoBreakSpace */: - case 12288 /* ideographicSpace */: - case 9 /* tab */: - case 11 /* verticalTab */: - case 12 /* formFeed */: - case 65279 /* byteOrderMark */: - index++; - continue; - } - break; - } - return createTrivia(2 /* WhitespaceTrivia */, absoluteStartIndex); - } - function createTrivia(kind, absoluteStartIndex) { - var fullWidth = index - absoluteStartIndex; - return TypeScript.Syntax.deferredTrivia(kind, text, absoluteStartIndex, fullWidth); - } - function scanSingleLineCommentTrivia() { - var absoluteStartIndex = index; - skipSingleLineCommentTrivia(); - return createTrivia(5 /* SingleLineCommentTrivia */, absoluteStartIndex); - } - function skipSingleLineCommentTrivia() { - index += 2; - while (index < end) { - if (isNewLineCharacter(str.charCodeAt(index))) { - return; - } - index++; - } - } - function scanMultiLineCommentTrivia() { - var absoluteStartIndex = index; - skipMultiLineCommentTrivia(); - return createTrivia(4 /* MultiLineCommentTrivia */, absoluteStartIndex); - } - function skipMultiLineCommentTrivia() { - var _index = index + 2; - var _end = end; - index += 2; - while (true) { - if (_index === _end) { - reportDiagnostic(end, 0, TypeScript.DiagnosticCode._0_expected, ["*/"]); - break; - } - if ((_index + 1) < _end && str.charCodeAt(_index) === 42 /* asterisk */ && str.charCodeAt(_index + 1) === 47 /* slash */) { - _index += 2; - break; - } - _index++; - } - index = _index; - } - function scanLineTerminatorSequenceTrivia(ch) { - var absoluteStartIndex = index; - skipLineTerminatorSequence(ch); - return createTrivia(3 /* NewLineTrivia */, absoluteStartIndex); - } - function skipLineTerminatorSequence(ch) { - index++; - if (ch === 13 /* carriageReturn */ && str.charCodeAt(index) === 10 /* lineFeed */) { - index++; - } - } - function scanSyntaxKind(allowContextualToken) { - if (index >= end) { - return 8 /* EndOfFileToken */; - } - var character = str.charCodeAt(index); - index++; - switch (character) { - case 33 /* exclamation */: return scanExclamationToken(); - case 34 /* doubleQuote */: return scanStringLiteral(character); - case 37 /* percent */: return scanPercentToken(); - case 38 /* ampersand */: return scanAmpersandToken(); - case 39 /* singleQuote */: return scanStringLiteral(character); - case 40 /* openParen */: return 76 /* OpenParenToken */; - case 41 /* closeParen */: return 77 /* CloseParenToken */; - case 42 /* asterisk */: return scanAsteriskToken(); - case 43 /* plus */: return scanPlusToken(); - case 44 /* comma */: return 83 /* CommaToken */; - case 45 /* minus */: return scanMinusToken(); - case 46 /* dot */: return scanDotToken(); - case 47 /* slash */: return scanSlashToken(allowContextualToken); - case 48 /* _0 */: - case 49 /* _1 */: - case 50 /* _2 */: - case 51 /* _3 */: - case 52 /* _4 */: - case 53 /* _5 */: - case 54 /* _6 */: - case 55 /* _7 */: - case 56 /* _8 */: - case 57 /* _9 */: - return scanNumericLiteral(character); - case 58 /* colon */: return 110 /* ColonToken */; - case 59 /* semicolon */: return 82 /* SemicolonToken */; - case 60 /* lessThan */: return scanLessThanToken(); - case 61 /* equals */: return scanEqualsToken(); - case 62 /* greaterThan */: return scanGreaterThanToken(allowContextualToken); - case 63 /* question */: return 109 /* QuestionToken */; - case 91 /* openBracket */: return 78 /* OpenBracketToken */; - case 93 /* closeBracket */: return 79 /* CloseBracketToken */; - case 94 /* caret */: return scanCaretToken(); - case 96 /* backtick */: return scanTemplateToken(character); - case 123 /* openBrace */: return 74 /* OpenBraceToken */; - case 124 /* bar */: return scanBarToken(); - case 125 /* closeBrace */: return scanCloseBraceToken(allowContextualToken, character); - case 126 /* tilde */: return 106 /* TildeToken */; - } - if (isIdentifierStartCharacter[character]) { - var result = tryFastScanIdentifierOrKeyword(character); - if (result !== 0 /* None */) { - return result; - } - } - index--; - if (isIdentifierStart(peekCharOrUnicodeEscape())) { - return slowScanIdentifierOrKeyword(); - } - var text = String.fromCharCode(character); - var messageText = getErrorMessageText(text); - reportDiagnostic(index, 1, TypeScript.DiagnosticCode.Unexpected_character_0, [messageText]); - index++; - return 7 /* ErrorToken */; - } - function isIdentifierStart(interpretedChar) { - if (isIdentifierStartCharacter[interpretedChar]) { - return true; - } - return interpretedChar > 127 /* maxAsciiCharacter */ && TypeScript.Unicode.isIdentifierStart(interpretedChar, languageVersion); - } - function isIdentifierPart(interpretedChar) { - if (isIdentifierPartCharacter[interpretedChar]) { - return true; - } - return interpretedChar > 127 /* maxAsciiCharacter */ && TypeScript.Unicode.isIdentifierPart(interpretedChar, languageVersion); - } - function tryFastScanIdentifierOrKeyword(firstCharacter) { - var startIndex = index; - var character = firstCharacter; - while (index < end) { - character = str.charCodeAt(index); - if (!isIdentifierPartCharacter[character]) { - break; - } - index++; - } - if (index < end && (character === 92 /* backslash */ || character > 127 /* maxAsciiCharacter */)) { - index = startIndex; - return 0 /* None */; - } - else { - if (isKeywordStartCharacter[firstCharacter]) { - return TypeScript.ScannerUtilities.identifierKind(str, startIndex - 1, index - startIndex + 1); - } - else { - return 9 /* IdentifierName */; - } - } - } - function slowScanIdentifierOrKeyword() { - var startIndex = index; - do { - scanCharOrUnicodeEscape(); - } while (isIdentifierPart(peekCharOrUnicodeEscape())); - var length = index - startIndex; - var text = str.substr(startIndex, length); - var valueText = TypeScript.massageEscapes(text); - var keywordKind = TypeScript.SyntaxFacts.getTokenKind(valueText); - if (keywordKind >= 17 /* FirstKeyword */ && keywordKind <= 73 /* LastKeyword */) { - return keywordKind | 128 /* IsVariableWidthMask */; - } - return 9 /* IdentifierName */; - } - function scanNumericLiteral(ch) { - if (isHexNumericLiteral(ch)) { - scanHexNumericLiteral(); - } - else if (isOctalNumericLiteral(ch)) { - scanOctalNumericLiteral(); - } - else { - scanDecimalNumericLiteral(); - } - return 11 /* NumericLiteral */; - } - function isOctalNumericLiteral(ch) { - return ch === 48 /* _0 */ && TypeScript.CharacterInfo.isOctalDigit(str.charCodeAt(index)); - } - function scanOctalNumericLiteral() { - var start = index - 1; - while (TypeScript.CharacterInfo.isOctalDigit(str.charCodeAt(index))) { - index++; - } - if (languageVersion >= 1 /* ES5 */) { - reportDiagnostic(start, index - start, TypeScript.DiagnosticCode.Octal_literals_are_not_available_when_targeting_ECMAScript_5_and_higher, undefined); - } - } - function scanDecimalDigits() { - while (TypeScript.CharacterInfo.isDecimalDigit(str.charCodeAt(index))) { - index++; - } - } - function scanDecimalNumericLiteral() { - scanDecimalDigits(); - if (str.charCodeAt(index) === 46 /* dot */) { - index++; - } - scanDecimalNumericLiteralAfterDot(); - } - function scanDecimalNumericLiteralAfterDot() { - scanDecimalDigits(); - var ch = str.charCodeAt(index); - if (ch === 101 /* e */ || ch === 69 /* E */) { - var nextChar1 = str.charCodeAt(index + 1); - if (TypeScript.CharacterInfo.isDecimalDigit(nextChar1)) { - index++; - scanDecimalDigits(); - } - else if (nextChar1 === 45 /* minus */ || nextChar1 === 43 /* plus */) { - var nextChar2 = str.charCodeAt(index + 2); - if (TypeScript.CharacterInfo.isDecimalDigit(nextChar2)) { - index += 2; - scanDecimalDigits(); - } - } - } - } - function scanHexNumericLiteral() { - index++; - while (TypeScript.CharacterInfo.isHexDigit(str.charCodeAt(index))) { - index++; - } - } - function isHexNumericLiteral(ch) { - if (ch === 48 /* _0 */) { - var ch = str.charCodeAt(index); - if (ch === 120 /* x */ || ch === 88 /* X */) { - return TypeScript.CharacterInfo.isHexDigit(str.charCodeAt(index + 1)); - } - } - return false; - } - function scanLessThanToken() { - var ch0 = str.charCodeAt(index); - if (ch0 === 61 /* equals */) { - index++; - return 86 /* LessThanEqualsToken */; - } - else if (ch0 === 60 /* lessThan */) { - index++; - if (str.charCodeAt(index) === 61 /* equals */) { - index++; - return 116 /* LessThanLessThanEqualsToken */; - } - else { - return 99 /* LessThanLessThanToken */; - } - } - else { - return 84 /* LessThanToken */; - } - } - function scanGreaterThanToken(allowContextualToken) { - if (allowContextualToken) { - var ch0 = str.charCodeAt(index); - if (ch0 === 62 /* greaterThan */) { - index++; - var ch1 = str.charCodeAt(index); - if (ch1 === 62 /* greaterThan */) { - index++; - var ch2 = str.charCodeAt(index); - if (ch2 === 61 /* equals */) { - index++; - return 118 /* GreaterThanGreaterThanGreaterThanEqualsToken */; - } - else { - return 101 /* GreaterThanGreaterThanGreaterThanToken */; - } - } - else if (ch1 === 61 /* equals */) { - index++; - return 117 /* GreaterThanGreaterThanEqualsToken */; - } - else { - return 100 /* GreaterThanGreaterThanToken */; - } - } - else if (ch0 === 61 /* equals */) { - index++; - return 87 /* GreaterThanEqualsToken */; - } - } - return 85 /* GreaterThanToken */; - } - function scanBarToken() { - var ch = str.charCodeAt(index); - if (ch === 61 /* equals */) { - index++; - return 120 /* BarEqualsToken */; - } - else if (ch === 124 /* bar */) { - index++; - return 108 /* BarBarToken */; - } - else { - return 103 /* BarToken */; - } - } - function scanCaretToken() { - if (str.charCodeAt(index) === 61 /* equals */) { - index++; - return 121 /* CaretEqualsToken */; - } - else { - return 104 /* CaretToken */; - } - } - function scanCloseBraceToken(allowContextualToken, startChar) { - return allowContextualToken ? scanTemplateToken(startChar) : 75 /* CloseBraceToken */; - } - function scanTemplateToken(startChar) { - var startedWithBacktick = startChar === 96 /* backtick */; - while (true) { - if (index === end) { - reportDiagnostic(end, 0, TypeScript.DiagnosticCode.Unterminated_template_literal); - break; - } - var ch = str.charCodeAt(index); - index++; - if (ch === 96 /* backtick */) { - break; - } - if (ch === 36 /* $ */ && index < end && str.charCodeAt(index) === 123 /* openBrace */) { - index++; - return startedWithBacktick ? 14 /* TemplateStartToken */ : 15 /* TemplateMiddleToken */; - } - } - return startedWithBacktick ? 13 /* NoSubstitutionTemplateToken */ : 16 /* TemplateEndToken */; - } - function scanAmpersandToken() { - var character = str.charCodeAt(index); - if (character === 61 /* equals */) { - index++; - return 119 /* AmpersandEqualsToken */; - } - else if (character === 38 /* ampersand */) { - index++; - return 107 /* AmpersandAmpersandToken */; - } - else { - return 102 /* AmpersandToken */; - } - } - function scanPercentToken() { - if (str.charCodeAt(index) === 61 /* equals */) { - index++; - return 115 /* PercentEqualsToken */; - } - else { - return 96 /* PercentToken */; - } - } - function scanMinusToken() { - var character = str.charCodeAt(index); - if (character === 61 /* equals */) { - index++; - return 113 /* MinusEqualsToken */; - } - else if (character === 45 /* minus */) { - index++; - return 98 /* MinusMinusToken */; - } - else { - return 94 /* MinusToken */; - } - } - function scanPlusToken() { - var character = str.charCodeAt(index); - if (character === 61 /* equals */) { - index++; - return 112 /* PlusEqualsToken */; - } - else if (character === 43 /* plus */) { - index++; - return 97 /* PlusPlusToken */; - } - else { - return 93 /* PlusToken */; - } - } - function scanAsteriskToken() { - if (str.charCodeAt(index) === 61 /* equals */) { - index++; - return 114 /* AsteriskEqualsToken */; - } - else { - return 95 /* AsteriskToken */; - } - } - function scanEqualsToken() { - var character = str.charCodeAt(index); - if (character === 61 /* equals */) { - index++; - if (str.charCodeAt(index) === 61 /* equals */) { - index++; - return 91 /* EqualsEqualsEqualsToken */; - } - else { - return 88 /* EqualsEqualsToken */; - } - } - else if (character === 62 /* greaterThan */) { - index++; - return 89 /* EqualsGreaterThanToken */; - } - else { - return 111 /* EqualsToken */; - } - } - function scanDotToken() { - var nextChar = str.charCodeAt(index); - if (TypeScript.CharacterInfo.isDecimalDigit(nextChar)) { - scanDecimalNumericLiteralAfterDot(); - return 11 /* NumericLiteral */; - } - if (nextChar === 46 /* dot */ && str.charCodeAt(index + 1) === 46 /* dot */) { - index += 2; - return 81 /* DotDotDotToken */; - } - else { - return 80 /* DotToken */; - } - } - function scanSlashToken(allowContextualToken) { - if (allowContextualToken) { - return scanRegularExpressionToken(); - } - if (str.charCodeAt(index) === 61 /* equals */) { - index++; - return 123 /* SlashEqualsToken */; - } - else { - return 122 /* SlashToken */; - } - } - function scanRegularExpressionToken() { - var startIndex = index; - var inEscape = false; - var inCharacterClass = false; - while (true) { - var ch = str.charCodeAt(index); - if (isNaN(ch) || isNewLineCharacter(ch)) { - reportDiagnostic(index, 0, TypeScript.DiagnosticCode.Unterminated_regular_expression_literal); - break; - } - index++; - if (inEscape) { - inEscape = false; - continue; - } - switch (ch) { - case 92 /* backslash */: - inEscape = true; - continue; - case 91 /* openBracket */: - inCharacterClass = true; - continue; - case 93 /* closeBracket */: - inCharacterClass = false; - continue; - case 47 /* slash */: - if (inCharacterClass) { - continue; - } - break; - default: - continue; - } - break; - } - while (index < end && isIdentifierPartCharacter[str.charCodeAt(index)]) { - index++; - } - return 10 /* RegularExpressionLiteral */; - } - function scanExclamationToken() { - if (str.charCodeAt(index) === 61 /* equals */) { - index++; - if (str.charCodeAt(index) === 61 /* equals */) { - index++; - return 92 /* ExclamationEqualsEqualsToken */; - } - else { - return 90 /* ExclamationEqualsToken */; - } - } - else { - return 105 /* ExclamationToken */; - } - } - function getErrorMessageText(text) { - if (text === "\\") { - return '"\\"'; - } - return JSON.stringify(text); - } - function skipEscapeSequence() { - var rewindPoint = index; - index++; - var ch = str.charCodeAt(index); - if (isNaN(ch)) { - return; - } - index++; - switch (ch) { - case 120 /* x */: - case 117 /* u */: - index = rewindPoint; - var value = scanUnicodeOrHexEscape(true); - break; - case 13 /* carriageReturn */: - if (str.charCodeAt(index) === 10 /* lineFeed */) { - index++; - } - break; - default: - break; - } - } - function scanStringLiteral(quoteCharacter) { - while (true) { - var ch = str.charCodeAt(index); - if (ch === 92 /* backslash */) { - skipEscapeSequence(); - } - else if (ch === quoteCharacter) { - index++; - break; - } - else if (isNaN(ch) || isNewLineCharacter(ch)) { - reportDiagnostic(index, 0, TypeScript.DiagnosticCode.Unterminated_string_literal); - break; - } - else { - index++; - } - } - return 12 /* StringLiteral */; - } - function isUnicodeEscape(character) { - return character === 92 /* backslash */ && str.charCodeAt(index + 1) === 117 /* u */; - } - function peekCharOrUnicodeEscape() { - var character = str.charCodeAt(index); - if (isUnicodeEscape(character)) { - return peekUnicodeOrHexEscape(); - } - else { - return character; - } - } - function peekUnicodeOrHexEscape() { - var startIndex = index; - var ch = scanUnicodeOrHexEscape(false); - index = startIndex; - return ch; - } - function scanCharOrUnicodeEscape() { - if (str.charCodeAt(index) === 92 /* backslash */ && str.charCodeAt(index + 1) === 117 /* u */) { - scanUnicodeOrHexEscape(true); - } - else { - index++; - } - } - function scanUnicodeOrHexEscape(report) { - var start = index; - var character = str.charCodeAt(index); - index++; - character = str.charCodeAt(index); - var intChar = 0; - index++; - var count = character === 117 /* u */ ? 4 : 2; - for (var i = 0; i < count; i++) { - var ch2 = str.charCodeAt(index); - if (!TypeScript.CharacterInfo.isHexDigit(ch2)) { - if (report) { - reportDiagnostic(start, index - start, TypeScript.DiagnosticCode.Unrecognized_escape_sequence, undefined); - } - break; - } - intChar = (intChar << 4) + TypeScript.CharacterInfo.hexValue(ch2); - index++; - } - return intChar; - } - function fillTokenInfo(token, text, tokenInfo) { - var fullStart = token.fullStart(); - var fullEnd = fullStart + token.fullWidth(); - reset(text, fullStart, fullEnd); - scanTriviaInfo(); - var start = index; - tokenInfo.leadingTriviaWidth = start - fullStart; - } - reset(text, 0, text.length()); - return { - setIndex: setIndex, - scan: scan, - fillTokenInfo: fillTokenInfo, - scanTrivia: scanTrivia - }; - } - function isValidIdentifier(text, languageVersion) { - var hadError = false; - var scanner = createScanner(languageVersion, text, function () { return hadError = true; }); - var token = scanner.scan(false); - return !hadError && TypeScript.SyntaxFacts.isIdentifierNameOrAnyKeyword(token) && TypeScript.width(token) === text.length(); - } - Scanner.isValidIdentifier = isValidIdentifier; - function createParserSource(fileName, text, languageVersion) { - var _absolutePosition = 0; - var _tokenDiagnostics = []; - var rewindPointPool = []; - var rewindPointPoolCount = 0; - var lastDiagnostic = undefined; - var reportDiagnostic = function (position, fullWidth, diagnosticKey, args) { - lastDiagnostic = new TypeScript.Diagnostic(fileName, text.lineMap(), position, fullWidth, diagnosticKey, args); - }; - var slidingWindow = new TypeScript.SlidingWindow(fetchNextItem, TypeScript.ArrayUtilities.createArray(1024, undefined), undefined); - var scanner = createScanner(languageVersion, text, reportDiagnostic); - function release() { - slidingWindow = undefined; - scanner = undefined; - _tokenDiagnostics = []; - rewindPointPool = []; - lastDiagnostic = undefined; - reportDiagnostic = undefined; - } - function currentNode() { - return undefined; - } - function absolutePosition() { - TypeScript.Debug.assert(!isNaN(_absolutePosition)); - return _absolutePosition; - } - function tokenDiagnostics() { - return _tokenDiagnostics; - } - function getOrCreateRewindPoint() { - if (rewindPointPoolCount === 0) { - return {}; - } - rewindPointPoolCount--; - var result = rewindPointPool[rewindPointPoolCount]; - rewindPointPool[rewindPointPoolCount] = undefined; - return result; - } - function getRewindPoint() { - var slidingWindowIndex = slidingWindow.getAndPinAbsoluteIndex(); - var rewindPoint = getOrCreateRewindPoint(); - rewindPoint.slidingWindowIndex = slidingWindowIndex; - rewindPoint.absolutePosition = _absolutePosition; - return rewindPoint; - } - function rewind(rewindPoint) { - slidingWindow.rewindToPinnedIndex(rewindPoint.slidingWindowIndex); - _absolutePosition = rewindPoint.absolutePosition; - } - function releaseRewindPoint(rewindPoint) { - slidingWindow.releaseAndUnpinAbsoluteIndex(rewindPoint.absoluteIndex); - rewindPointPool[rewindPointPoolCount] = rewindPoint; - rewindPointPoolCount++; - } - function fetchNextItem(allowContextualToken) { - var token = scanner.scan(allowContextualToken); - if (lastDiagnostic === undefined) { - return token; - } - _tokenDiagnostics.push(lastDiagnostic); - lastDiagnostic = undefined; - return TypeScript.Syntax.realizeToken(token, text); - } - function peekToken(n) { - return slidingWindow.peekItemN(n); - } - function consumeNodeOrToken(nodeOrToken) { - if (nodeOrToken === slidingWindow.currentItemWithoutFetching()) { - _absolutePosition += nodeOrToken.fullWidth(); - TypeScript.Debug.assert(!isNaN(_absolutePosition)); - slidingWindow.moveToNextItem(); - } - else { - resetToPosition(TypeScript.fullEnd(nodeOrToken)); - } - } - function currentToken() { - return slidingWindow.currentItem(false); - } - function removeDiagnosticsOnOrAfterPosition(position) { - var tokenDiagnosticsLength = _tokenDiagnostics.length; - while (tokenDiagnosticsLength > 0) { - var diagnostic = _tokenDiagnostics[tokenDiagnosticsLength - 1]; - if (diagnostic.start() >= position) { - tokenDiagnosticsLength--; - _tokenDiagnostics.pop(); - } - else { - break; - } - } - } - function resetToPosition(absolutePosition) { - TypeScript.Debug.assert(absolutePosition <= text.length(), "Trying to set the position outside the bounds of the text!"); - var resetBackward = absolutePosition <= _absolutePosition; - _absolutePosition = absolutePosition; - if (resetBackward) { - removeDiagnosticsOnOrAfterPosition(absolutePosition); - } - slidingWindow.disgardAllItemsFromCurrentIndexOnwards(); - scanner.setIndex(absolutePosition); - } - function currentContextualToken() { - resetToPosition(_absolutePosition); - var token = slidingWindow.currentItem(true); - return token; - } - return { - text: text, - fileName: fileName, - languageVersion: languageVersion, - currentNode: currentNode, - currentToken: currentToken, - currentContextualToken: currentContextualToken, - peekToken: peekToken, - consumeNodeOrToken: consumeNodeOrToken, - getRewindPoint: getRewindPoint, - rewind: rewind, - releaseRewindPoint: releaseRewindPoint, - tokenDiagnostics: tokenDiagnostics, - release: release, - absolutePosition: absolutePosition - }; - } - Scanner.createParserSource = createParserSource; - var fixedWidthArray = TypeScript.ScannerUtilities.fixedWidthArray; - function fixedWidthTokenLength(kind) { - return fixedWidthArray[kind]; - } - })(Scanner = TypeScript.Scanner || (TypeScript.Scanner = {})); -})(TypeScript || (TypeScript = {})); -var TypeScript; -(function (TypeScript) { - var SlidingWindow = (function () { - function SlidingWindow(fetchNextItem, window, defaultValue, sourceLength) { - if (sourceLength === void 0) { sourceLength = -1; } - this.fetchNextItem = fetchNextItem; - this.window = window; - this.defaultValue = defaultValue; - this.sourceLength = sourceLength; - this.windowCount = 0; - this.windowAbsoluteStartIndex = 0; - this.currentRelativeItemIndex = 0; - this._pinCount = 0; - this.firstPinnedAbsoluteIndex = -1; - } - SlidingWindow.prototype.addMoreItemsToWindow = function (argument) { - var sourceLength = this.sourceLength; - if (sourceLength >= 0 && this.absoluteIndex() >= sourceLength) { - return false; - } - if (this.windowCount >= this.window.length) { - this.tryShiftOrGrowWindow(); - } - var item = this.fetchNextItem(argument); - this.window[this.windowCount] = item; - this.windowCount++; - return true; - }; - SlidingWindow.prototype.tryShiftOrGrowWindow = function () { - var currentIndexIsPastWindowHalfwayPoint = this.currentRelativeItemIndex > (this.window.length >>> 1); - var isAllowedToShift = this.firstPinnedAbsoluteIndex === -1 || this.firstPinnedAbsoluteIndex > this.windowAbsoluteStartIndex; - if (currentIndexIsPastWindowHalfwayPoint && isAllowedToShift) { - var shiftStartIndex = this.firstPinnedAbsoluteIndex === -1 ? this.currentRelativeItemIndex : this.firstPinnedAbsoluteIndex - this.windowAbsoluteStartIndex; - var shiftCount = this.windowCount - shiftStartIndex; - if (shiftCount > 0) { - TypeScript.ArrayUtilities.copy(this.window, shiftStartIndex, this.window, 0, shiftCount); - } - this.windowAbsoluteStartIndex += shiftStartIndex; - this.windowCount -= shiftStartIndex; - this.currentRelativeItemIndex -= shiftStartIndex; - } - else { - TypeScript.ArrayUtilities.grow(this.window, this.window.length * 2, this.defaultValue); - } - }; - SlidingWindow.prototype.absoluteIndex = function () { - return this.windowAbsoluteStartIndex + this.currentRelativeItemIndex; - }; - SlidingWindow.prototype.isAtEndOfSource = function () { - return this.absoluteIndex() >= this.sourceLength; - }; - SlidingWindow.prototype.getAndPinAbsoluteIndex = function () { - var absoluteIndex = this.absoluteIndex(); - var pinCount = this._pinCount++; - if (pinCount === 0) { - this.firstPinnedAbsoluteIndex = absoluteIndex; - } - return absoluteIndex; - }; - SlidingWindow.prototype.releaseAndUnpinAbsoluteIndex = function (absoluteIndex) { - this._pinCount--; - if (this._pinCount === 0) { - this.firstPinnedAbsoluteIndex = -1; - } - }; - SlidingWindow.prototype.rewindToPinnedIndex = function (absoluteIndex) { - var relativeIndex = absoluteIndex - this.windowAbsoluteStartIndex; - this.currentRelativeItemIndex = relativeIndex; - }; - SlidingWindow.prototype.currentItem = function (argument) { - if (this.currentRelativeItemIndex >= this.windowCount) { - if (!this.addMoreItemsToWindow(argument)) { - return this.defaultValue; - } - } - return this.window[this.currentRelativeItemIndex]; - }; - SlidingWindow.prototype.currentItemWithoutFetching = function () { - if (this.currentRelativeItemIndex >= this.windowCount) { - return undefined; - } - return this.window[this.currentRelativeItemIndex]; - }; - SlidingWindow.prototype.peekItemN = function (n) { - while (this.currentRelativeItemIndex + n >= this.windowCount) { - if (!this.addMoreItemsToWindow(undefined)) { - return this.defaultValue; - } - } - return this.window[this.currentRelativeItemIndex + n]; - }; - SlidingWindow.prototype.moveToNextItem = function () { - this.currentRelativeItemIndex++; - }; - SlidingWindow.prototype.disgardAllItemsFromCurrentIndexOnwards = function () { - this.windowCount = this.currentRelativeItemIndex; - }; - return SlidingWindow; - })(); - TypeScript.SlidingWindow = SlidingWindow; -})(TypeScript || (TypeScript = {})); -var TypeScript; -(function (TypeScript) { - var Syntax; - (function (Syntax) { - Syntax._nextSyntaxID = 1; - function nodeHasSkippedOrMissingTokens(node) { - for (var i = 0; i < TypeScript.childCount(node); i++) { - var child = TypeScript.childAt(node, i); - if (TypeScript.isToken(child)) { - var token = child; - if (token.hasLeadingSkippedToken() || (TypeScript.fullWidth(token) === 0 && token.kind !== 8 /* EndOfFileToken */)) { - return true; - } - } - } - return false; - } - Syntax.nodeHasSkippedOrMissingTokens = nodeHasSkippedOrMissingTokens; - function isUnterminatedStringLiteral(token) { - if (token && token.kind === 12 /* StringLiteral */) { - var text = token.text(); - return text.length < 2 || text.charCodeAt(text.length - 1) !== text.charCodeAt(0); - } - return false; - } - Syntax.isUnterminatedStringLiteral = isUnterminatedStringLiteral; - function isUnterminatedMultilineCommentTrivia(trivia) { - if (trivia && trivia.kind === 4 /* MultiLineCommentTrivia */) { - var text = trivia.fullText(); - return text.length < 4 || text.substring(text.length - 2) !== "*/"; - } - return false; - } - Syntax.isUnterminatedMultilineCommentTrivia = isUnterminatedMultilineCommentTrivia; - function isEntirelyInsideCommentTrivia(trivia, fullStart, position) { - if (trivia && trivia.isComment() && position > fullStart) { - var end = fullStart + trivia.fullWidth(); - if (position < end) { - return true; - } - else if (position === end) { - return trivia.kind === 5 /* SingleLineCommentTrivia */ || isUnterminatedMultilineCommentTrivia(trivia); - } - } - return false; - } - Syntax.isEntirelyInsideCommentTrivia = isEntirelyInsideCommentTrivia; - function getAncestorOfKind(positionedToken, kind) { - while (positionedToken && positionedToken.parent) { - if (positionedToken.parent.kind === kind) { - return positionedToken.parent; - } - positionedToken = positionedToken.parent; - } - return undefined; - } - Syntax.getAncestorOfKind = getAncestorOfKind; - function hasAncestorOfKind(positionedToken, kind) { - return !!getAncestorOfKind(positionedToken, kind); - } - Syntax.hasAncestorOfKind = hasAncestorOfKind; - function isIntegerLiteral(expression) { - if (expression) { - switch (expression.kind) { - case 171 /* PrefixUnaryExpression */: - var prefixExpr = expression; - if (prefixExpr.operatorToken.kind == 93 /* PlusToken */ || prefixExpr.operatorToken.kind === 94 /* MinusToken */) { - expression = prefixExpr.operand; - return TypeScript.isToken(expression) && TypeScript.IntegerUtilities.isInteger(expression.text()); - } - return false; - case 11 /* NumericLiteral */: - var text = expression.text(); - return TypeScript.IntegerUtilities.isInteger(text) || TypeScript.IntegerUtilities.isHexInteger(text); - } - } - return false; - } - Syntax.isIntegerLiteral = isIntegerLiteral; - function containingNode(element) { - var current = element.parent; - while (current && !TypeScript.isNode(current)) { - current = current.parent; - } - return current; - } - Syntax.containingNode = containingNode; - function findTokenOnLeft(sourceUnit, position) { - var positionedToken = TypeScript.findToken(sourceUnit, position); - var _start = TypeScript.start(positionedToken); - if (position > _start) { - return positionedToken; - } - if (positionedToken.fullStart() === 0) { - return undefined; - } - return TypeScript.previousToken(positionedToken); - } - Syntax.findTokenOnLeft = findTokenOnLeft; - function findCompleteTokenOnLeft(sourceUnit, position) { - var positionedToken = TypeScript.findToken(sourceUnit, position); - if (TypeScript.width(positionedToken) > 0 && position >= TypeScript.fullEnd(positionedToken)) { - return positionedToken; - } - return TypeScript.previousToken(positionedToken); - } - Syntax.findCompleteTokenOnLeft = findCompleteTokenOnLeft; - })(Syntax = TypeScript.Syntax || (TypeScript.Syntax = {})); -})(TypeScript || (TypeScript = {})); -var TypeScript; -(function (TypeScript) { - function syntaxTree(element) { - if (element) { - while (element) { - if (element.kind === 124 /* SourceUnit */) { - return element.syntaxTree; - } - element = element.parent; - } - } - return undefined; - } - TypeScript.syntaxTree = syntaxTree; - function parserContextFlags(node) { - var info = node.__data; - if (info === undefined) { - return 0; - } - return info & 31 /* Mask */; - } - TypeScript.parserContextFlags = parserContextFlags; - function parsedInStrictModeContext(node) { - return (parserContextFlags(node) & 1 /* StrictMode */) !== 0; - } - TypeScript.parsedInStrictModeContext = parsedInStrictModeContext; - function parsedInDisallowInContext(node) { - return (parserContextFlags(node) & 2 /* DisallowIn */) !== 0; - } - TypeScript.parsedInDisallowInContext = parsedInDisallowInContext; - function parsedInYieldContext(node) { - return (parserContextFlags(node) & 4 /* Yield */) !== 0; - } - TypeScript.parsedInYieldContext = parsedInYieldContext; - function parsedInGeneratorParameterContext(node) { - return (parserContextFlags(node) & 8 /* GeneratorParameter */) !== 0; - } - TypeScript.parsedInGeneratorParameterContext = parsedInGeneratorParameterContext; - function parsedInAsyncContext(node) { - return (parserContextFlags(node) & 16 /* Async */) !== 0; - } - TypeScript.parsedInAsyncContext = parsedInAsyncContext; - function previousToken(token) { - var start = token.fullStart(); - if (start === 0) { - return undefined; - } - return findToken(syntaxTree(token).sourceUnit(), start - 1); - } - TypeScript.previousToken = previousToken; - function findToken(sourceUnit, position) { - if (position < 0) { - throw TypeScript.Errors.argumentOutOfRange("position"); - } - var token = findTokenInNodeOrToken(sourceUnit, 0, position); - if (token) { - TypeScript.Debug.assert(token.fullWidth() > 0); - return token; - } - if (position === fullWidth(sourceUnit)) { - return sourceUnit.endOfFileToken; - } - if (position > fullWidth(sourceUnit)) { - throw TypeScript.Errors.argumentOutOfRange("position"); - } - throw TypeScript.Errors.invalidOperation(); - } - TypeScript.findToken = findToken; - function findTokenWorker(element, elementPosition, position) { - if (isList(element)) { - return findTokenInList(element, elementPosition, position); - } - else { - return findTokenInNodeOrToken(element, elementPosition, position); - } - } - function findTokenInList(list, elementPosition, position) { - for (var i = 0, n = list.length; i < n; i++) { - var child = list[i]; - var childFullWidth = fullWidth(child); - var elementEndPosition = elementPosition + childFullWidth; - if (position < elementEndPosition) { - return findTokenWorker(child, elementPosition, position); - } - elementPosition = elementEndPosition; - } - return undefined; - } - function findTokenInNodeOrToken(nodeOrToken, elementPosition, position) { - if (isToken(nodeOrToken)) { - return nodeOrToken; - } - for (var i = 0, n = TypeScript.childCount(nodeOrToken); i < n; i++) { - var child = nodeOrToken.childAt(i); - if (child) { - var childFullWidth = fullWidth(child); - var elementEndPosition = elementPosition + childFullWidth; - if (position < elementEndPosition) { - return findTokenWorker(child, elementPosition, position); - } - elementPosition = elementEndPosition; - } - } - return undefined; - } - function tryGetEndOfFileAt(element, position) { - if (element.kind === 124 /* SourceUnit */ && position === fullWidth(element)) { - var sourceUnit = element; - return sourceUnit.endOfFileToken; - } - return undefined; - } - function nextToken(token, text) { - if (token.kind === 8 /* EndOfFileToken */) { - return undefined; - } - return findToken(syntaxTree(token).sourceUnit(), fullEnd(token)); - } - TypeScript.nextToken = nextToken; - function isNode(element) { - if (element) { - var kind = element.kind; - return kind >= 124 /* FirstNode */ && kind <= 217 /* LastNode */; - } - return false; - } - TypeScript.isNode = isNode; - function isTokenKind(kind) { - return kind >= 7 /* FirstToken */ && kind <= 123 /* LastToken */; - } - function isToken(element) { - if (element) { - return isTokenKind(element.kind); - } - return false; - } - TypeScript.isToken = isToken; - function isList(element) { - return element instanceof Array; - } - TypeScript.isList = isList; - function syntaxID(element) { - var obj = element; - if (obj._syntaxID === undefined) { - obj._syntaxID = TypeScript.Syntax._nextSyntaxID++; - } - return obj._syntaxID; - } - TypeScript.syntaxID = syntaxID; - function collectTextElements(element, elements, text) { - if (element) { - if (isToken(element)) { - elements.push(element.fullText(text)); - } - else { - for (var i = 0, n = TypeScript.childCount(element); i < n; i++) { - collectTextElements(TypeScript.childAt(element, i), elements, text); - } - } - } - } - function fullText(element, text) { - if (isToken(element)) { - return element.fullText(text); - } - var elements = []; - collectTextElements(element, elements, text); - return elements.join(""); - } - TypeScript.fullText = fullText; - function leadingTriviaWidth(element, text) { - var token = firstToken(element); - return token ? token.leadingTriviaWidth(text) : 0; - } - TypeScript.leadingTriviaWidth = leadingTriviaWidth; - function firstToken(element) { - if (element) { - var kind = element.kind; - if (isTokenKind(kind)) { - return element.fullWidth() > 0 || kind === 8 /* EndOfFileToken */ ? element : undefined; - } - for (var i = 0, n = TypeScript.childCount(element); i < n; i++) { - var token = firstToken(TypeScript.childAt(element, i)); - if (token) { - return token; - } - } - } - return undefined; - } - TypeScript.firstToken = firstToken; - function lastToken(element) { - if (isToken(element)) { - return fullWidth(element) > 0 || element.kind === 8 /* EndOfFileToken */ ? element : undefined; - } - if (element.kind === 124 /* SourceUnit */) { - return element.endOfFileToken; - } - for (var i = TypeScript.childCount(element) - 1; i >= 0; i--) { - var child = TypeScript.childAt(element, i); - if (child) { - var token = lastToken(child); - if (token) { - return token; - } - } - } - return undefined; - } - TypeScript.lastToken = lastToken; - function fullStart(element) { - var token = isToken(element) ? element : firstToken(element); - return token ? token.fullStart() : -1; - } - TypeScript.fullStart = fullStart; - function fullWidth(element) { - if (isToken(element)) { - return element.fullWidth(); - } - var info = data(element); - return (info / TypeScript.SyntaxNodeConstants.FullWidthShift) | 0; - } - TypeScript.fullWidth = fullWidth; - function isIncrementallyUnusable(element) { - if (isToken(element)) { - return element.isIncrementallyUnusable(); - } - return (data(element) & TypeScript.SyntaxNodeConstants.IncrementallyUnusableMask) !== 0; - } - TypeScript.isIncrementallyUnusable = isIncrementallyUnusable; - function data(element) { - var dataElement = element; - var info = dataElement.__data; - if (info === undefined) { - info = 0; - } - if ((info & TypeScript.SyntaxNodeConstants.DataComputed) === 0) { - info |= computeData(element); - dataElement.__data = info; - } - return info; - } - function combineData(fullWidth, isIncrementallyUnusable) { - return (fullWidth * TypeScript.SyntaxNodeConstants.FullWidthShift) + (isIncrementallyUnusable ? TypeScript.SyntaxNodeConstants.IncrementallyUnusableMask : 0) + TypeScript.SyntaxNodeConstants.DataComputed; - } - function listComputeData(list) { - var fullWidth = 0; - var isIncrementallyUnusable = false; - for (var i = 0, n = list.length; i < n; i++) { - var child = list[i]; - fullWidth += TypeScript.fullWidth(child); - isIncrementallyUnusable = isIncrementallyUnusable || TypeScript.isIncrementallyUnusable(child); - } - return combineData(fullWidth, isIncrementallyUnusable); - } - function computeData(element) { - if (isList(element)) { - return listComputeData(element); - } - else { - return nodeOrTokenComputeData(element); - } - } - function nodeOrTokenComputeData(nodeOrToken) { - var fullWidth = 0; - var slotCount = nodeOrToken.childCount; - var isIncrementallyUnusable = slotCount === 0; - for (var i = 0, n = slotCount; i < n; i++) { - var child = nodeOrToken.childAt(i); - if (child) { - fullWidth += TypeScript.fullWidth(child); - isIncrementallyUnusable = isIncrementallyUnusable || TypeScript.isIncrementallyUnusable(child); - } - } - return combineData(fullWidth, isIncrementallyUnusable); - } - function start(element, text) { - var token = isToken(element) ? element : firstToken(element); - return token ? token.fullStart() + token.leadingTriviaWidth(text) : -1; - } - TypeScript.start = start; - function width(element, text) { - if (isToken(element)) { - return element.text().length; - } - return fullWidth(element) - leadingTriviaWidth(element, text); - } - TypeScript.width = width; - function fullEnd(element) { - return fullStart(element) + fullWidth(element); - } - TypeScript.fullEnd = fullEnd; - function existsNewLineBetweenTokens(token1, token2, text) { - if (token1 === token2) { - return false; - } - if (!token1 || !token2) { - return true; - } - var lineMap = text.lineMap(); - return lineMap.getLineNumberFromPosition(fullEnd(token1)) !== lineMap.getLineNumberFromPosition(start(token2, text)); - } - TypeScript.existsNewLineBetweenTokens = existsNewLineBetweenTokens; -})(TypeScript || (TypeScript = {})); -var TypeScript; -(function (TypeScript) { - var SyntaxFacts; - (function (SyntaxFacts) { - function isDirectivePrologueElement(node) { - return node.kind === 156 /* ExpressionStatement */ && node.expression.kind === 12 /* StringLiteral */; - } - SyntaxFacts.isDirectivePrologueElement = isDirectivePrologueElement; - function isUseStrictDirective(node) { - var expressionStatement = node; - var stringLiteral = expressionStatement.expression; - var text = stringLiteral.text(); - return text === '"use strict"' || text === "'use strict'"; - } - SyntaxFacts.isUseStrictDirective = isUseStrictDirective; - function isIdentifierNameOrAnyKeyword(token) { - var tokenKind = token.kind; - return tokenKind === 9 /* IdentifierName */ || SyntaxFacts.isAnyKeyword(tokenKind); - } - SyntaxFacts.isIdentifierNameOrAnyKeyword = isIdentifierNameOrAnyKeyword; - function isAccessibilityModifier(kind) { - switch (kind) { - case 59 /* PublicKeyword */: - case 57 /* PrivateKeyword */: - case 58 /* ProtectedKeyword */: - return true; - } - return false; - } - SyntaxFacts.isAccessibilityModifier = isAccessibilityModifier; - })(SyntaxFacts = TypeScript.SyntaxFacts || (TypeScript.SyntaxFacts = {})); -})(TypeScript || (TypeScript = {})); -var TypeScript; -(function (TypeScript) { - function separatorCount(list) { - return list === undefined ? 0 : list.length >> 1; - } - TypeScript.separatorCount = separatorCount; - function nonSeparatorCount(list) { - return list === undefined ? 0 : (list.length + 1) >> 1; - } - TypeScript.nonSeparatorCount = nonSeparatorCount; - function separatorAt(list, index) { - return list[(index << 1) + 1]; - } - TypeScript.separatorAt = separatorAt; - function nonSeparatorAt(list, index) { - return list[index << 1]; - } - TypeScript.nonSeparatorAt = nonSeparatorAt; -})(TypeScript || (TypeScript = {})); -var TypeScript; -(function (TypeScript) { - var Syntax; - (function (Syntax) { - function addArrayPrototypeValue(name, val) { - if (Object.defineProperty && Array.prototype[name] === undefined) { - Object.defineProperty(Array.prototype, name, { value: val, writable: false, enumerable: false }); - } - else { - Array.prototype[name] = val; - } - } - addArrayPrototypeValue("kind", 1 /* List */); - function list(nodes) { - if (nodes !== undefined) { - for (var i = 0, n = nodes.length; i < n; i++) { - nodes[i].parent = nodes; - } - } - return nodes; - } - Syntax.list = list; - function separatedList(nodesAndTokens) { - if (nodesAndTokens !== undefined) { - for (var i = 0, n = nodesAndTokens.length; i < n; i++) { - nodesAndTokens[i].parent = nodesAndTokens; - } - } - return nodesAndTokens; - } - Syntax.separatedList = separatedList; - })(Syntax = TypeScript.Syntax || (TypeScript.Syntax = {})); -})(TypeScript || (TypeScript = {})); -var TypeScript; -(function (TypeScript) { - function tokenValue(token) { - if (token.fullWidth() === 0) { - return undefined; - } - var kind = token.kind; - var text = token.text(); - if (kind === 9 /* IdentifierName */) { - return massageEscapes(text); - } - switch (kind) { - case 39 /* TrueKeyword */: - return true; - case 26 /* FalseKeyword */: - return false; - case 34 /* NullKeyword */: - return undefined; - } - if (TypeScript.SyntaxFacts.isAnyKeyword(kind) || TypeScript.SyntaxFacts.isAnyPunctuation(kind)) { - return TypeScript.SyntaxFacts.getText(kind); - } - if (kind === 11 /* NumericLiteral */) { - return TypeScript.IntegerUtilities.isHexInteger(text) ? parseInt(text, 16) : parseFloat(text); - } - else if (kind === 12 /* StringLiteral */) { - return (text.length > 1 && text.charCodeAt(text.length - 1) === text.charCodeAt(0)) ? massageEscapes(text.substr(1, text.length - "''".length)) : massageEscapes(text.substr(1)); - } - else if (kind === 13 /* NoSubstitutionTemplateToken */ || kind === 16 /* TemplateEndToken */) { - return (text.length > 1 && text.charCodeAt(text.length - 1) === 96 /* backtick */) ? massageTemplate(text.substr(1, text.length - "``".length)) : massageTemplate(text.substr(1)); - } - else if (kind === 14 /* TemplateStartToken */ || kind === 15 /* TemplateMiddleToken */) { - return massageTemplate(text.substr(1, text.length - "`${".length)); - } - else if (kind === 10 /* RegularExpressionLiteral */) { - return regularExpressionValue(text); - } - else if (kind === 8 /* EndOfFileToken */ || kind === 7 /* ErrorToken */) { - return undefined; - } - else { - throw TypeScript.Errors.invalidOperation(); - } - } - TypeScript.tokenValue = tokenValue; - function tokenValueText(token) { - var value = tokenValue(token); - return value === undefined ? "" : massageDisallowedIdentifiers(value.toString()); - } - TypeScript.tokenValueText = tokenValueText; - function massageTemplate(text) { - text = text.replace("\r\n", "\n").replace("\r", "\n"); - return massageEscapes(text); - } - function massageEscapes(text) { - return text.indexOf("\\") >= 0 ? convertEscapes(text) : text; - } - TypeScript.massageEscapes = massageEscapes; - function regularExpressionValue(text) { - try { - var lastSlash = text.lastIndexOf("/"); - var body = text.substring(1, lastSlash); - var flags = text.substring(lastSlash + 1); - return new RegExp(body, flags); - } - catch (e) { - return undefined; - } - } - function massageDisallowedIdentifiers(text) { - if (text.charCodeAt(0) === 95 /* _ */ && text.charCodeAt(1) === 95 /* _ */) { - return "_" + text; - } - return text; - } - var characterArray = []; - function convertEscapes(text) { - characterArray.length = 0; - var result = ""; - for (var i = 0, n = text.length; i < n; i++) { - var ch = text.charCodeAt(i); - if (ch === 92 /* backslash */) { - i++; - if (i < n) { - ch = text.charCodeAt(i); - switch (ch) { - case 48 /* _0 */: - characterArray.push(0 /* nullCharacter */); - continue; - case 98 /* b */: - characterArray.push(8 /* backspace */); - continue; - case 102 /* f */: - characterArray.push(12 /* formFeed */); - continue; - case 110 /* n */: - characterArray.push(10 /* lineFeed */); - continue; - case 114 /* r */: - characterArray.push(13 /* carriageReturn */); - continue; - case 116 /* t */: - characterArray.push(9 /* tab */); - continue; - case 118 /* v */: - characterArray.push(11 /* verticalTab */); - continue; - case 120 /* x */: - characterArray.push(hexValue(text, i + 1, 2)); - i += 2; - continue; - case 117 /* u */: - characterArray.push(hexValue(text, i + 1, 4)); - i += 4; - continue; - case 13 /* carriageReturn */: - var nextIndex = i + 1; - if (nextIndex < text.length && text.charCodeAt(nextIndex) === 10 /* lineFeed */) { - i++; - } - continue; - case 10 /* lineFeed */: - case 8233 /* paragraphSeparator */: - case 8232 /* lineSeparator */: - continue; - default: - } - } - } - characterArray.push(ch); - if (i && !(i % 1024)) { - result = result.concat(String.fromCharCode.apply(undefined, characterArray)); - characterArray.length = 0; - } - } - if (characterArray.length) { - result = result.concat(String.fromCharCode.apply(undefined, characterArray)); - } - return result; - } - function hexValue(text, start, length) { - var intChar = 0; - for (var i = 0; i < length; i++) { - var ch2 = text.charCodeAt(start + i); - if (!TypeScript.CharacterInfo.isHexDigit(ch2)) { - break; - } - intChar = (intChar << 4) + TypeScript.CharacterInfo.hexValue(ch2); - } - return intChar; - } -})(TypeScript || (TypeScript = {})); -var TypeScript; -(function (TypeScript) { - var Syntax; - (function (Syntax) { - function realizeToken(token, text) { - return new RealizedToken(token.fullStart(), token.kind, token.isKeywordConvertedToIdentifier(), token.leadingTrivia(text), token.text()); - } - Syntax.realizeToken = realizeToken; - function convertKeywordToIdentifier(token) { - return new ConvertedKeywordToken(token); - } - Syntax.convertKeywordToIdentifier = convertKeywordToIdentifier; - function withLeadingTrivia(token, leadingTrivia, text) { - return new RealizedToken(token.fullStart(), token.kind, token.isKeywordConvertedToIdentifier(), leadingTrivia, token.text()); - } - Syntax.withLeadingTrivia = withLeadingTrivia; - function emptyToken(kind, fullStart) { - return new EmptyToken(kind, fullStart); - } - Syntax.emptyToken = emptyToken; - var EmptyToken = (function () { - function EmptyToken(kind, _fullStart) { - this.kind = kind; - this._fullStart = _fullStart; - TypeScript.Debug.assert(!isNaN(_fullStart)); - } - EmptyToken.prototype.setFullStart = function (fullStart) { - this._fullStart = fullStart; - }; - EmptyToken.prototype.childAt = function (index) { - throw TypeScript.Errors.invalidOperation(); - }; - EmptyToken.prototype.clone = function () { - return new EmptyToken(this.kind, this._fullStart); - }; - EmptyToken.prototype.isIncrementallyUnusable = function () { - return true; - }; - EmptyToken.prototype.isKeywordConvertedToIdentifier = function () { - return false; - }; - EmptyToken.prototype.fullWidth = function () { - return 0; - }; - EmptyToken.prototype.fullStart = function () { - return this._fullStart; - }; - EmptyToken.prototype.text = function () { - return ""; - }; - EmptyToken.prototype.fullText = function () { - return ""; - }; - EmptyToken.prototype.hasLeadingTrivia = function () { - return false; - }; - EmptyToken.prototype.hasLeadingNewLine = function () { - return false; - }; - EmptyToken.prototype.hasLeadingComment = function () { - return false; - }; - EmptyToken.prototype.hasLeadingSkippedToken = function () { - return false; - }; - EmptyToken.prototype.leadingTriviaWidth = function () { - return 0; - }; - EmptyToken.prototype.leadingTrivia = function () { - return Syntax.emptyTriviaList; - }; - return EmptyToken; - })(); - EmptyToken.prototype.childCount = 0; - var RealizedToken = (function () { - function RealizedToken(_fullStart, kind, isKeywordConvertedToIdentifier, leadingTrivia, text) { - this._fullStart = _fullStart; - this.kind = kind; - TypeScript.Debug.assert(!isNaN(_fullStart)); - this._isKeywordConvertedToIdentifier = isKeywordConvertedToIdentifier; - this._text = text; - this._leadingTrivia = leadingTrivia.clone(); - if (!this._leadingTrivia.isShared()) { - this._leadingTrivia.parent = this; - } - } - RealizedToken.prototype.setFullStart = function (fullStart) { - this._fullStart = fullStart; - }; - RealizedToken.prototype.childAt = function (index) { - throw TypeScript.Errors.invalidOperation(); - }; - RealizedToken.prototype.clone = function () { - return new RealizedToken(this._fullStart, this.kind, this._isKeywordConvertedToIdentifier, this._leadingTrivia, this._text); - }; - RealizedToken.prototype.isIncrementallyUnusable = function () { - return true; - }; - RealizedToken.prototype.isKeywordConvertedToIdentifier = function () { - return this._isKeywordConvertedToIdentifier; - }; - RealizedToken.prototype.fullStart = function () { - return this._fullStart; - }; - RealizedToken.prototype.fullWidth = function () { - return this._leadingTrivia.fullWidth() + this._text.length; - }; - RealizedToken.prototype.text = function () { - return this._text; - }; - RealizedToken.prototype.fullText = function () { - return this._leadingTrivia.fullText() + this.text(); - }; - RealizedToken.prototype.hasLeadingTrivia = function () { - return this._leadingTrivia.count() > 0; - }; - RealizedToken.prototype.hasLeadingNewLine = function () { - return this._leadingTrivia.hasNewLine(); - }; - RealizedToken.prototype.hasLeadingComment = function () { - return this._leadingTrivia.hasComment(); - }; - RealizedToken.prototype.hasLeadingSkippedToken = function () { - return this._leadingTrivia.hasSkippedToken(); - }; - RealizedToken.prototype.leadingTrivia = function () { - return this._leadingTrivia; - }; - RealizedToken.prototype.leadingTriviaWidth = function () { - return this._leadingTrivia.fullWidth(); - }; - return RealizedToken; - })(); - RealizedToken.prototype.childCount = 0; - var ConvertedKeywordToken = (function () { - function ConvertedKeywordToken(underlyingToken) { - this.underlyingToken = underlyingToken; - } - ConvertedKeywordToken.prototype.setFullStart = function (fullStart) { - this.underlyingToken.setFullStart(fullStart); - }; - ConvertedKeywordToken.prototype.childAt = function (index) { - throw TypeScript.Errors.invalidOperation(); - }; - ConvertedKeywordToken.prototype.fullStart = function () { - return this.underlyingToken.fullStart(); - }; - ConvertedKeywordToken.prototype.fullWidth = function () { - return this.underlyingToken.fullWidth(); - }; - ConvertedKeywordToken.prototype.text = function () { - return this.underlyingToken.text(); - }; - ConvertedKeywordToken.prototype.syntaxTreeText = function (text) { - var result = text || TypeScript.syntaxTree(this).text; - TypeScript.Debug.assert(result); - return result; - }; - ConvertedKeywordToken.prototype.fullText = function (text) { - return this.underlyingToken.fullText(this.syntaxTreeText(text)); - }; - ConvertedKeywordToken.prototype.hasLeadingTrivia = function () { - return this.underlyingToken.hasLeadingTrivia(); - }; - ConvertedKeywordToken.prototype.hasLeadingNewLine = function () { - return this.underlyingToken.hasLeadingNewLine(); - }; - ConvertedKeywordToken.prototype.hasLeadingComment = function () { - return this.underlyingToken.hasLeadingComment(); - }; - ConvertedKeywordToken.prototype.hasLeadingSkippedToken = function () { - return this.underlyingToken.hasLeadingSkippedToken(); - }; - ConvertedKeywordToken.prototype.leadingTrivia = function (text) { - var result = this.underlyingToken.leadingTrivia(this.syntaxTreeText(text)); - result.parent = this; - return result; - }; - ConvertedKeywordToken.prototype.leadingTriviaWidth = function (text) { - return this.underlyingToken.leadingTriviaWidth(this.syntaxTreeText(text)); - }; - ConvertedKeywordToken.prototype.isKeywordConvertedToIdentifier = function () { - return true; - }; - ConvertedKeywordToken.prototype.isIncrementallyUnusable = function () { - return this.underlyingToken.isIncrementallyUnusable(); - }; - ConvertedKeywordToken.prototype.clone = function () { - return new ConvertedKeywordToken(this.underlyingToken); - }; - return ConvertedKeywordToken; - })(); - ConvertedKeywordToken.prototype.kind = 9 /* IdentifierName */; - ConvertedKeywordToken.prototype.childCount = 0; - })(Syntax = TypeScript.Syntax || (TypeScript.Syntax = {})); -})(TypeScript || (TypeScript = {})); -var TypeScript; -(function (TypeScript) { - var Syntax; - (function (Syntax) { - var AbstractTrivia = (function () { - function AbstractTrivia(kind) { - this.kind = kind; - } - AbstractTrivia.prototype.clone = function () { - throw TypeScript.Errors.abstract(); - }; - AbstractTrivia.prototype.fullStart = function () { - throw TypeScript.Errors.abstract(); - }; - AbstractTrivia.prototype.fullWidth = function () { - throw TypeScript.Errors.abstract(); - }; - AbstractTrivia.prototype.fullText = function () { - throw TypeScript.Errors.abstract(); - }; - AbstractTrivia.prototype.skippedToken = function () { - throw TypeScript.Errors.abstract(); - }; - AbstractTrivia.prototype.isWhitespace = function () { - return this.kind === 2 /* WhitespaceTrivia */; - }; - AbstractTrivia.prototype.isComment = function () { - return this.kind === 5 /* SingleLineCommentTrivia */ || this.kind === 4 /* MultiLineCommentTrivia */; - }; - AbstractTrivia.prototype.isNewLine = function () { - return this.kind === 3 /* NewLineTrivia */; - }; - AbstractTrivia.prototype.isSkippedToken = function () { - return this.kind === 6 /* SkippedTokenTrivia */; - }; - return AbstractTrivia; - })(); - var SkippedTokenTrivia = (function (_super) { - __extends(SkippedTokenTrivia, _super); - function SkippedTokenTrivia(_skippedToken, _fullText) { - _super.call(this, 6 /* SkippedTokenTrivia */); - this._skippedToken = _skippedToken; - this._fullText = _fullText; - _skippedToken.parent = this; - } - SkippedTokenTrivia.prototype.clone = function () { - return new SkippedTokenTrivia(this._skippedToken.clone(), this._fullText); - }; - SkippedTokenTrivia.prototype.fullStart = function () { - return this._skippedToken.fullStart(); - }; - SkippedTokenTrivia.prototype.fullWidth = function () { - return this.fullText().length; - }; - SkippedTokenTrivia.prototype.fullText = function () { - return this._fullText; - }; - SkippedTokenTrivia.prototype.skippedToken = function () { - return this._skippedToken; - }; - return SkippedTokenTrivia; - })(AbstractTrivia); - var DeferredTrivia = (function (_super) { - __extends(DeferredTrivia, _super); - function DeferredTrivia(kind, _text, _fullStart, _fullWidth) { - _super.call(this, kind); - this._text = _text; - this._fullStart = _fullStart; - this._fullWidth = _fullWidth; - } - DeferredTrivia.prototype.clone = function () { - return new DeferredTrivia(this.kind, this._text, this._fullStart, this._fullWidth); - }; - DeferredTrivia.prototype.fullStart = function () { - return this._fullStart; - }; - DeferredTrivia.prototype.fullWidth = function () { - return this._fullWidth; - }; - DeferredTrivia.prototype.fullText = function () { - return this._text.substr(this._fullStart, this._fullWidth); - }; - DeferredTrivia.prototype.skippedToken = function () { - throw TypeScript.Errors.invalidOperation(); - }; - return DeferredTrivia; - })(AbstractTrivia); - function deferredTrivia(kind, text, fullStart, fullWidth) { - return new DeferredTrivia(kind, text, fullStart, fullWidth); - } - Syntax.deferredTrivia = deferredTrivia; - function skippedTokenTrivia(token, text) { - TypeScript.Debug.assert(!token.hasLeadingTrivia()); - TypeScript.Debug.assert(token.fullWidth() > 0); - return new SkippedTokenTrivia(token, token.fullText(text)); - } - Syntax.skippedTokenTrivia = skippedTokenTrivia; - function splitMultiLineCommentTriviaIntoMultipleLines(trivia) { - var result = []; - var triviaText = trivia.fullText(); - var currentIndex = 0; - for (var i = 0; i < triviaText.length; i++) { - var ch = triviaText.charCodeAt(i); - switch (ch) { - case 13 /* carriageReturn */: - if (i < triviaText.length - 1 && triviaText.charCodeAt(i + 1) === 10 /* lineFeed */) { - i++; - } - case 10 /* lineFeed */: - case 8233 /* paragraphSeparator */: - case 8232 /* lineSeparator */: - result.push(triviaText.substring(currentIndex, i + 1)); - currentIndex = i + 1; - continue; - } - } - result.push(triviaText.substring(currentIndex)); - return result; - } - Syntax.splitMultiLineCommentTriviaIntoMultipleLines = splitMultiLineCommentTriviaIntoMultipleLines; - })(Syntax = TypeScript.Syntax || (TypeScript.Syntax = {})); -})(TypeScript || (TypeScript = {})); -var TypeScript; -(function (TypeScript) { - var Syntax; - (function (Syntax) { - var EmptyTriviaList = (function () { - function EmptyTriviaList() { - } - EmptyTriviaList.prototype.isShared = function () { - return true; - }; - EmptyTriviaList.prototype.count = function () { - return 0; - }; - EmptyTriviaList.prototype.syntaxTriviaAt = function (index) { - throw TypeScript.Errors.argumentOutOfRange("index"); - }; - EmptyTriviaList.prototype.last = function () { - throw TypeScript.Errors.argumentOutOfRange("index"); - }; - EmptyTriviaList.prototype.fullWidth = function () { - return 0; - }; - EmptyTriviaList.prototype.fullText = function () { - return ""; - }; - EmptyTriviaList.prototype.hasComment = function () { - return false; - }; - EmptyTriviaList.prototype.hasNewLine = function () { - return false; - }; - EmptyTriviaList.prototype.hasSkippedToken = function () { - return false; - }; - EmptyTriviaList.prototype.toArray = function () { - return []; - }; - EmptyTriviaList.prototype.clone = function () { - return this; - }; - return EmptyTriviaList; - })(); - ; - Syntax.emptyTriviaList = new EmptyTriviaList(); - function isComment(trivia) { - return trivia.kind === 4 /* MultiLineCommentTrivia */ || trivia.kind === 5 /* SingleLineCommentTrivia */; - } - var SingletonSyntaxTriviaList = (function () { - function SingletonSyntaxTriviaList(item) { - this.item = item.clone(); - this.item.parent = this; - } - SingletonSyntaxTriviaList.prototype.isShared = function () { - return false; - }; - SingletonSyntaxTriviaList.prototype.count = function () { - return 1; - }; - SingletonSyntaxTriviaList.prototype.syntaxTriviaAt = function (index) { - if (index !== 0) { - throw TypeScript.Errors.argumentOutOfRange("index"); - } - return this.item; - }; - SingletonSyntaxTriviaList.prototype.last = function () { - return this.item; - }; - SingletonSyntaxTriviaList.prototype.fullWidth = function () { - return this.item.fullWidth(); - }; - SingletonSyntaxTriviaList.prototype.fullText = function () { - return this.item.fullText(); - }; - SingletonSyntaxTriviaList.prototype.hasComment = function () { - return isComment(this.item); - }; - SingletonSyntaxTriviaList.prototype.hasNewLine = function () { - return this.item.kind === 3 /* NewLineTrivia */; - }; - SingletonSyntaxTriviaList.prototype.hasSkippedToken = function () { - return this.item.kind === 6 /* SkippedTokenTrivia */; - }; - SingletonSyntaxTriviaList.prototype.toArray = function () { - return [this.item]; - }; - SingletonSyntaxTriviaList.prototype.clone = function () { - return new SingletonSyntaxTriviaList(this.item.clone()); - }; - return SingletonSyntaxTriviaList; - })(); - var NormalSyntaxTriviaList = (function () { - function NormalSyntaxTriviaList(trivia) { - var _this = this; - this.trivia = trivia.map(function (t) { - var cloned = t.clone(); - cloned.parent = _this; - return cloned; - }); - } - NormalSyntaxTriviaList.prototype.isShared = function () { - return false; - }; - NormalSyntaxTriviaList.prototype.count = function () { - return this.trivia.length; - }; - NormalSyntaxTriviaList.prototype.syntaxTriviaAt = function (index) { - if (index < 0 || index >= this.trivia.length) { - throw TypeScript.Errors.argumentOutOfRange("index"); - } - return this.trivia[index]; - }; - NormalSyntaxTriviaList.prototype.last = function () { - return this.trivia[this.trivia.length - 1]; - }; - NormalSyntaxTriviaList.prototype.fullWidth = function () { - return TypeScript.ArrayUtilities.sum(this.trivia, function (t) { return t.fullWidth(); }); - }; - NormalSyntaxTriviaList.prototype.fullText = function () { - var result = []; - for (var i = 0, n = this.trivia.length; i < n; i++) { - result.push(this.trivia[i].fullText()); - } - return result.join(""); - }; - NormalSyntaxTriviaList.prototype.hasComment = function () { - for (var i = 0; i < this.trivia.length; i++) { - if (isComment(this.trivia[i])) { - return true; - } - } - return false; - }; - NormalSyntaxTriviaList.prototype.hasNewLine = function () { - for (var i = 0; i < this.trivia.length; i++) { - if (this.trivia[i].kind === 3 /* NewLineTrivia */) { - return true; - } - } - return false; - }; - NormalSyntaxTriviaList.prototype.hasSkippedToken = function () { - for (var i = 0; i < this.trivia.length; i++) { - if (this.trivia[i].kind === 6 /* SkippedTokenTrivia */) { - return true; - } - } - return false; - }; - NormalSyntaxTriviaList.prototype.toArray = function () { - return this.trivia.slice(0); - }; - NormalSyntaxTriviaList.prototype.clone = function () { - return new NormalSyntaxTriviaList(this.trivia.map(function (t) { return t.clone(); })); - }; - return NormalSyntaxTriviaList; - })(); - function triviaList(trivia) { - if (!trivia || trivia.length === 0) { - return Syntax.emptyTriviaList; - } - if (trivia.length === 1) { - return new SingletonSyntaxTriviaList(trivia[0]); - } - return new NormalSyntaxTriviaList(trivia); - } - Syntax.triviaList = triviaList; - })(Syntax = TypeScript.Syntax || (TypeScript.Syntax = {})); -})(TypeScript || (TypeScript = {})); -var TypeScript; -(function (TypeScript) { - function childCount(element) { - if (TypeScript.isList(element)) { - return element.length; - } - return element.childCount; - } - TypeScript.childCount = childCount; - function childAt(element, index) { - if (TypeScript.isList(element)) { - return element[index]; - } - return element.childAt(index); - } - TypeScript.childAt = childAt; - var SyntaxUtilities; - (function (SyntaxUtilities) { - function isAnyFunctionExpressionOrDeclaration(ast) { - switch (ast.kind) { - case 185 /* SimpleArrowFunctionExpression */: - case 184 /* ParenthesizedArrowFunctionExpression */: - case 188 /* FunctionExpression */: - case 136 /* FunctionDeclaration */: - case 142 /* MemberFunctionDeclaration */: - case 144 /* ConstructorDeclaration */: - case 146 /* GetAccessor */: - case 147 /* SetAccessor */: - return true; - } - return false; - } - SyntaxUtilities.isAnyFunctionExpressionOrDeclaration = isAnyFunctionExpressionOrDeclaration; - function isLastTokenOnLine(token, text) { - var _nextToken = TypeScript.nextToken(token, text); - if (_nextToken === undefined) { - return true; - } - var lineMap = text.lineMap(); - var tokenLine = lineMap.getLineNumberFromPosition(TypeScript.fullEnd(token)); - var nextTokenLine = lineMap.getLineNumberFromPosition(TypeScript.start(_nextToken, text)); - return tokenLine !== nextTokenLine; - } - SyntaxUtilities.isLastTokenOnLine = isLastTokenOnLine; - function isLeftHandSizeExpression(element) { - if (element) { - switch (element.kind) { - case 178 /* MemberAccessExpression */: - case 187 /* ElementAccessExpression */: - case 191 /* TemplateAccessExpression */: - case 182 /* ObjectCreationExpression */: - case 179 /* InvocationExpression */: - case 180 /* ArrayLiteralExpression */: - case 183 /* ParenthesizedExpression */: - case 181 /* ObjectLiteralExpression */: - case 188 /* FunctionExpression */: - case 9 /* IdentifierName */: - case 10 /* RegularExpressionLiteral */: - case 11 /* NumericLiteral */: - case 12 /* StringLiteral */: - case 26 /* FalseKeyword */: - case 34 /* NullKeyword */: - case 37 /* ThisKeyword */: - case 39 /* TrueKeyword */: - case 52 /* SuperKeyword */: - return true; - } - } - return false; - } - SyntaxUtilities.isLeftHandSizeExpression = isLeftHandSizeExpression; - function isSwitchClause(element) { - if (element) { - switch (element.kind) { - case 202 /* CaseSwitchClause */: - case 203 /* DefaultSwitchClause */: - return true; - } - } - return false; - } - SyntaxUtilities.isSwitchClause = isSwitchClause; - function isTypeMember(element) { - if (element) { - switch (element.kind) { - case 150 /* ConstructSignature */: - case 152 /* MethodSignature */: - case 151 /* IndexSignature */: - case 148 /* PropertySignature */: - case 149 /* CallSignature */: - return true; - } - } - return false; - } - SyntaxUtilities.isTypeMember = isTypeMember; - function isClassElement(element) { - if (element) { - switch (element.kind) { - case 144 /* ConstructorDeclaration */: - case 145 /* IndexMemberDeclaration */: - case 142 /* MemberFunctionDeclaration */: - case 146 /* GetAccessor */: - case 147 /* SetAccessor */: - case 142 /* MemberFunctionDeclaration */: - case 143 /* MemberVariableDeclaration */: - return true; - } - } - return false; - } - SyntaxUtilities.isClassElement = isClassElement; - function isModuleElement(element) { - if (element) { - switch (element.kind) { - case 140 /* ImportDeclaration */: - case 141 /* ExportAssignment */: - case 138 /* ClassDeclaration */: - case 135 /* InterfaceDeclaration */: - case 137 /* ModuleDeclaration */: - case 139 /* EnumDeclaration */: - case 136 /* FunctionDeclaration */: - case 155 /* VariableStatement */: - case 153 /* Block */: - case 154 /* IfStatement */: - case 156 /* ExpressionStatement */: - case 164 /* ThrowStatement */: - case 157 /* ReturnStatement */: - case 158 /* SwitchStatement */: - case 159 /* BreakStatement */: - case 160 /* ContinueStatement */: - case 162 /* ForInStatement */: - case 161 /* ForStatement */: - case 165 /* WhileStatement */: - case 170 /* WithStatement */: - case 163 /* EmptyStatement */: - case 166 /* TryStatement */: - case 167 /* LabeledStatement */: - case 168 /* DoStatement */: - case 169 /* DebuggerStatement */: - return true; - } - } - return false; - } - SyntaxUtilities.isModuleElement = isModuleElement; - function isStatement(element) { - if (element) { - switch (element.kind) { - case 136 /* FunctionDeclaration */: - case 155 /* VariableStatement */: - case 153 /* Block */: - case 154 /* IfStatement */: - case 156 /* ExpressionStatement */: - case 164 /* ThrowStatement */: - case 157 /* ReturnStatement */: - case 158 /* SwitchStatement */: - case 159 /* BreakStatement */: - case 160 /* ContinueStatement */: - case 162 /* ForInStatement */: - case 161 /* ForStatement */: - case 165 /* WhileStatement */: - case 170 /* WithStatement */: - case 163 /* EmptyStatement */: - case 166 /* TryStatement */: - case 167 /* LabeledStatement */: - case 168 /* DoStatement */: - case 169 /* DebuggerStatement */: - return true; - } - } - return false; - } - SyntaxUtilities.isStatement = isStatement; - function isAngleBracket(positionedElement) { - var element = positionedElement; - var parent = positionedElement.parent; - if (parent && (element.kind === 84 /* LessThanToken */ || element.kind === 85 /* GreaterThanToken */)) { - switch (parent.kind) { - case 198 /* TypeArgumentList */: - case 199 /* TypeParameterList */: - case 186 /* CastExpression */: - return true; - } - } - return false; - } - SyntaxUtilities.isAngleBracket = isAngleBracket; - function getToken(list, kind) { - for (var i = 0, n = list.length; i < n; i++) { - var token = list[i]; - if (token.kind === kind) { - return token; - } - } - return undefined; - } - SyntaxUtilities.getToken = getToken; - function containsToken(list, kind) { - return !!SyntaxUtilities.getToken(list, kind); - } - SyntaxUtilities.containsToken = containsToken; - function hasExportKeyword(moduleElement) { - return !!SyntaxUtilities.getExportKeyword(moduleElement); - } - SyntaxUtilities.hasExportKeyword = hasExportKeyword; - function getExportKeyword(moduleElement) { - switch (moduleElement.kind) { - case 137 /* ModuleDeclaration */: - case 138 /* ClassDeclaration */: - case 136 /* FunctionDeclaration */: - case 155 /* VariableStatement */: - case 139 /* EnumDeclaration */: - case 135 /* InterfaceDeclaration */: - case 140 /* ImportDeclaration */: - return SyntaxUtilities.getToken(moduleElement.modifiers, 49 /* ExportKeyword */); - default: - return undefined; - } - } - SyntaxUtilities.getExportKeyword = getExportKeyword; - function isAmbientDeclarationSyntax(positionNode) { - if (!positionNode) { - return false; - } - var node = positionNode; - switch (node.kind) { - case 137 /* ModuleDeclaration */: - case 138 /* ClassDeclaration */: - case 136 /* FunctionDeclaration */: - case 155 /* VariableStatement */: - case 139 /* EnumDeclaration */: - if (SyntaxUtilities.containsToken(node.modifiers, 67 /* DeclareKeyword */)) { - return true; - } - case 140 /* ImportDeclaration */: - case 144 /* ConstructorDeclaration */: - case 142 /* MemberFunctionDeclaration */: - case 146 /* GetAccessor */: - case 147 /* SetAccessor */: - case 143 /* MemberVariableDeclaration */: - if (SyntaxUtilities.isClassElement(node) || SyntaxUtilities.isModuleElement(node)) { - return SyntaxUtilities.isAmbientDeclarationSyntax(TypeScript.Syntax.containingNode(positionNode)); - } - case 211 /* EnumElement */: - return SyntaxUtilities.isAmbientDeclarationSyntax(TypeScript.Syntax.containingNode(TypeScript.Syntax.containingNode(positionNode))); - default: - return SyntaxUtilities.isAmbientDeclarationSyntax(TypeScript.Syntax.containingNode(positionNode)); - } - } - SyntaxUtilities.isAmbientDeclarationSyntax = isAmbientDeclarationSyntax; - })(SyntaxUtilities = TypeScript.SyntaxUtilities || (TypeScript.SyntaxUtilities = {})); -})(TypeScript || (TypeScript = {})); -var TypeScript; -(function (TypeScript) { - function visitNodeOrToken(visitor, element) { - if (element === undefined) { - return undefined; - } - switch (element.kind) { - case 124 /* SourceUnit */: return visitor.visitSourceUnit(element); - case 125 /* QualifiedName */: return visitor.visitQualifiedName(element); - case 126 /* ObjectType */: return visitor.visitObjectType(element); - case 127 /* FunctionType */: return visitor.visitFunctionType(element); - case 128 /* ArrayType */: return visitor.visitArrayType(element); - case 129 /* ConstructorType */: return visitor.visitConstructorType(element); - case 130 /* GenericType */: return visitor.visitGenericType(element); - case 131 /* TypeQuery */: return visitor.visitTypeQuery(element); - case 132 /* TupleType */: return visitor.visitTupleType(element); - case 133 /* UnionType */: return visitor.visitUnionType(element); - case 134 /* ParenthesizedType */: return visitor.visitParenthesizedType(element); - case 135 /* InterfaceDeclaration */: return visitor.visitInterfaceDeclaration(element); - case 136 /* FunctionDeclaration */: return visitor.visitFunctionDeclaration(element); - case 137 /* ModuleDeclaration */: return visitor.visitModuleDeclaration(element); - case 138 /* ClassDeclaration */: return visitor.visitClassDeclaration(element); - case 139 /* EnumDeclaration */: return visitor.visitEnumDeclaration(element); - case 140 /* ImportDeclaration */: return visitor.visitImportDeclaration(element); - case 141 /* ExportAssignment */: return visitor.visitExportAssignment(element); - case 142 /* MemberFunctionDeclaration */: return visitor.visitMemberFunctionDeclaration(element); - case 143 /* MemberVariableDeclaration */: return visitor.visitMemberVariableDeclaration(element); - case 144 /* ConstructorDeclaration */: return visitor.visitConstructorDeclaration(element); - case 145 /* IndexMemberDeclaration */: return visitor.visitIndexMemberDeclaration(element); - case 146 /* GetAccessor */: return visitor.visitGetAccessor(element); - case 147 /* SetAccessor */: return visitor.visitSetAccessor(element); - case 148 /* PropertySignature */: return visitor.visitPropertySignature(element); - case 149 /* CallSignature */: return visitor.visitCallSignature(element); - case 150 /* ConstructSignature */: return visitor.visitConstructSignature(element); - case 151 /* IndexSignature */: return visitor.visitIndexSignature(element); - case 152 /* MethodSignature */: return visitor.visitMethodSignature(element); - case 153 /* Block */: return visitor.visitBlock(element); - case 154 /* IfStatement */: return visitor.visitIfStatement(element); - case 155 /* VariableStatement */: return visitor.visitVariableStatement(element); - case 156 /* ExpressionStatement */: return visitor.visitExpressionStatement(element); - case 157 /* ReturnStatement */: return visitor.visitReturnStatement(element); - case 158 /* SwitchStatement */: return visitor.visitSwitchStatement(element); - case 159 /* BreakStatement */: return visitor.visitBreakStatement(element); - case 160 /* ContinueStatement */: return visitor.visitContinueStatement(element); - case 161 /* ForStatement */: return visitor.visitForStatement(element); - case 162 /* ForInStatement */: return visitor.visitForInStatement(element); - case 163 /* EmptyStatement */: return visitor.visitEmptyStatement(element); - case 164 /* ThrowStatement */: return visitor.visitThrowStatement(element); - case 165 /* WhileStatement */: return visitor.visitWhileStatement(element); - case 166 /* TryStatement */: return visitor.visitTryStatement(element); - case 167 /* LabeledStatement */: return visitor.visitLabeledStatement(element); - case 168 /* DoStatement */: return visitor.visitDoStatement(element); - case 169 /* DebuggerStatement */: return visitor.visitDebuggerStatement(element); - case 170 /* WithStatement */: return visitor.visitWithStatement(element); - case 171 /* PrefixUnaryExpression */: return visitor.visitPrefixUnaryExpression(element); - case 172 /* DeleteExpression */: return visitor.visitDeleteExpression(element); - case 173 /* TypeOfExpression */: return visitor.visitTypeOfExpression(element); - case 174 /* VoidExpression */: return visitor.visitVoidExpression(element); - case 175 /* ConditionalExpression */: return visitor.visitConditionalExpression(element); - case 176 /* BinaryExpression */: return visitor.visitBinaryExpression(element); - case 177 /* PostfixUnaryExpression */: return visitor.visitPostfixUnaryExpression(element); - case 178 /* MemberAccessExpression */: return visitor.visitMemberAccessExpression(element); - case 179 /* InvocationExpression */: return visitor.visitInvocationExpression(element); - case 180 /* ArrayLiteralExpression */: return visitor.visitArrayLiteralExpression(element); - case 181 /* ObjectLiteralExpression */: return visitor.visitObjectLiteralExpression(element); - case 182 /* ObjectCreationExpression */: return visitor.visitObjectCreationExpression(element); - case 183 /* ParenthesizedExpression */: return visitor.visitParenthesizedExpression(element); - case 184 /* ParenthesizedArrowFunctionExpression */: return visitor.visitParenthesizedArrowFunctionExpression(element); - case 185 /* SimpleArrowFunctionExpression */: return visitor.visitSimpleArrowFunctionExpression(element); - case 186 /* CastExpression */: return visitor.visitCastExpression(element); - case 187 /* ElementAccessExpression */: return visitor.visitElementAccessExpression(element); - case 188 /* FunctionExpression */: return visitor.visitFunctionExpression(element); - case 189 /* OmittedExpression */: return visitor.visitOmittedExpression(element); - case 190 /* TemplateExpression */: return visitor.visitTemplateExpression(element); - case 191 /* TemplateAccessExpression */: return visitor.visitTemplateAccessExpression(element); - case 192 /* YieldExpression */: return visitor.visitYieldExpression(element); - case 193 /* AwaitExpression */: return visitor.visitAwaitExpression(element); - case 194 /* VariableDeclaration */: return visitor.visitVariableDeclaration(element); - case 195 /* VariableDeclarator */: return visitor.visitVariableDeclarator(element); - case 196 /* ArgumentList */: return visitor.visitArgumentList(element); - case 197 /* ParameterList */: return visitor.visitParameterList(element); - case 198 /* TypeArgumentList */: return visitor.visitTypeArgumentList(element); - case 199 /* TypeParameterList */: return visitor.visitTypeParameterList(element); - case 200 /* HeritageClause */: return visitor.visitHeritageClause(element); - case 201 /* EqualsValueClause */: return visitor.visitEqualsValueClause(element); - case 202 /* CaseSwitchClause */: return visitor.visitCaseSwitchClause(element); - case 203 /* DefaultSwitchClause */: return visitor.visitDefaultSwitchClause(element); - case 204 /* ElseClause */: return visitor.visitElseClause(element); - case 205 /* CatchClause */: return visitor.visitCatchClause(element); - case 206 /* FinallyClause */: return visitor.visitFinallyClause(element); - case 207 /* TemplateClause */: return visitor.visitTemplateClause(element); - case 208 /* TypeParameter */: return visitor.visitTypeParameter(element); - case 209 /* Constraint */: return visitor.visitConstraint(element); - case 210 /* Parameter */: return visitor.visitParameter(element); - case 211 /* EnumElement */: return visitor.visitEnumElement(element); - case 212 /* TypeAnnotation */: return visitor.visitTypeAnnotation(element); - case 213 /* ExpressionBody */: return visitor.visitExpressionBody(element); - case 214 /* ComputedPropertyName */: return visitor.visitComputedPropertyName(element); - case 215 /* PropertyAssignment */: return visitor.visitPropertyAssignment(element); - case 216 /* ExternalModuleReference */: return visitor.visitExternalModuleReference(element); - case 217 /* ModuleNameModuleReference */: return visitor.visitModuleNameModuleReference(element); - default: return visitor.visitToken(element); - } - } - TypeScript.visitNodeOrToken = visitNodeOrToken; -})(TypeScript || (TypeScript = {})); -var TypeScript; -(function (TypeScript) { - var SyntaxWalker = (function () { - function SyntaxWalker() { - } - SyntaxWalker.prototype.visitToken = function (token) { - }; - SyntaxWalker.prototype.visitOptionalToken = function (token) { - if (token === undefined) { - return; - } - this.visitToken(token); - }; - SyntaxWalker.prototype.visitList = function (list) { - for (var i = 0, n = list.length; i < n; i++) { - TypeScript.visitNodeOrToken(this, list[i]); - } - }; - SyntaxWalker.prototype.visitSourceUnit = function (node) { - this.visitList(node.moduleElements); - this.visitToken(node.endOfFileToken); - }; - SyntaxWalker.prototype.visitQualifiedName = function (node) { - TypeScript.visitNodeOrToken(this, node.left); - this.visitToken(node.dotToken); - this.visitToken(node.right); - }; - SyntaxWalker.prototype.visitObjectType = function (node) { - this.visitToken(node.openBraceToken); - this.visitList(node.typeMembers); - this.visitToken(node.closeBraceToken); - }; - SyntaxWalker.prototype.visitFunctionType = function (node) { - TypeScript.visitNodeOrToken(this, node.typeParameterList); - TypeScript.visitNodeOrToken(this, node.parameterList); - this.visitToken(node.equalsGreaterThanToken); - TypeScript.visitNodeOrToken(this, node.type); - }; - SyntaxWalker.prototype.visitArrayType = function (node) { - TypeScript.visitNodeOrToken(this, node.type); - this.visitToken(node.openBracketToken); - this.visitToken(node.closeBracketToken); - }; - SyntaxWalker.prototype.visitConstructorType = function (node) { - this.visitToken(node.newKeyword); - TypeScript.visitNodeOrToken(this, node.typeParameterList); - TypeScript.visitNodeOrToken(this, node.parameterList); - this.visitToken(node.equalsGreaterThanToken); - TypeScript.visitNodeOrToken(this, node.type); - }; - SyntaxWalker.prototype.visitGenericType = function (node) { - TypeScript.visitNodeOrToken(this, node.name); - TypeScript.visitNodeOrToken(this, node.typeArgumentList); - }; - SyntaxWalker.prototype.visitTypeQuery = function (node) { - this.visitToken(node.typeOfKeyword); - TypeScript.visitNodeOrToken(this, node.name); - }; - SyntaxWalker.prototype.visitTupleType = function (node) { - this.visitToken(node.openBracketToken); - this.visitList(node.types); - this.visitToken(node.closeBracketToken); - }; - SyntaxWalker.prototype.visitUnionType = function (node) { - TypeScript.visitNodeOrToken(this, node.left); - this.visitToken(node.barToken); - TypeScript.visitNodeOrToken(this, node.right); - }; - SyntaxWalker.prototype.visitParenthesizedType = function (node) { - this.visitToken(node.openParenToken); - TypeScript.visitNodeOrToken(this, node.type); - this.visitToken(node.closeParenToken); - }; - SyntaxWalker.prototype.visitInterfaceDeclaration = function (node) { - this.visitList(node.modifiers); - this.visitToken(node.interfaceKeyword); - this.visitToken(node.identifier); - TypeScript.visitNodeOrToken(this, node.typeParameterList); - this.visitList(node.heritageClauses); - TypeScript.visitNodeOrToken(this, node.body); - }; - SyntaxWalker.prototype.visitFunctionDeclaration = function (node) { - this.visitList(node.modifiers); - this.visitToken(node.functionKeyword); - this.visitOptionalToken(node.asterixToken); - this.visitToken(node.identifier); - TypeScript.visitNodeOrToken(this, node.callSignature); - TypeScript.visitNodeOrToken(this, node.body); - }; - SyntaxWalker.prototype.visitModuleDeclaration = function (node) { - this.visitList(node.modifiers); - this.visitToken(node.moduleKeyword); - TypeScript.visitNodeOrToken(this, node.name); - this.visitToken(node.openBraceToken); - this.visitList(node.moduleElements); - this.visitToken(node.closeBraceToken); - }; - SyntaxWalker.prototype.visitClassDeclaration = function (node) { - this.visitList(node.modifiers); - this.visitToken(node.classKeyword); - this.visitToken(node.identifier); - TypeScript.visitNodeOrToken(this, node.typeParameterList); - this.visitList(node.heritageClauses); - this.visitToken(node.openBraceToken); - this.visitList(node.classElements); - this.visitToken(node.closeBraceToken); - }; - SyntaxWalker.prototype.visitEnumDeclaration = function (node) { - this.visitList(node.modifiers); - this.visitToken(node.enumKeyword); - this.visitToken(node.identifier); - this.visitToken(node.openBraceToken); - this.visitList(node.enumElements); - this.visitToken(node.closeBraceToken); - }; - SyntaxWalker.prototype.visitImportDeclaration = function (node) { - this.visitList(node.modifiers); - this.visitToken(node.importKeyword); - this.visitToken(node.identifier); - this.visitToken(node.equalsToken); - TypeScript.visitNodeOrToken(this, node.moduleReference); - this.visitOptionalToken(node.semicolonToken); - }; - SyntaxWalker.prototype.visitExportAssignment = function (node) { - this.visitList(node.modifiers); - this.visitToken(node.exportKeyword); - this.visitToken(node.equalsToken); - this.visitToken(node.identifier); - this.visitOptionalToken(node.semicolonToken); - }; - SyntaxWalker.prototype.visitMemberFunctionDeclaration = function (node) { - this.visitList(node.modifiers); - this.visitOptionalToken(node.asterixToken); - TypeScript.visitNodeOrToken(this, node.propertyName); - TypeScript.visitNodeOrToken(this, node.callSignature); - TypeScript.visitNodeOrToken(this, node.body); - }; - SyntaxWalker.prototype.visitMemberVariableDeclaration = function (node) { - this.visitList(node.modifiers); - TypeScript.visitNodeOrToken(this, node.variableDeclarator); - this.visitOptionalToken(node.semicolonToken); - }; - SyntaxWalker.prototype.visitConstructorDeclaration = function (node) { - this.visitList(node.modifiers); - this.visitToken(node.constructorKeyword); - TypeScript.visitNodeOrToken(this, node.callSignature); - TypeScript.visitNodeOrToken(this, node.body); - }; - SyntaxWalker.prototype.visitIndexMemberDeclaration = function (node) { - this.visitList(node.modifiers); - TypeScript.visitNodeOrToken(this, node.indexSignature); - this.visitOptionalToken(node.semicolonToken); - }; - SyntaxWalker.prototype.visitGetAccessor = function (node) { - this.visitList(node.modifiers); - this.visitToken(node.getKeyword); - TypeScript.visitNodeOrToken(this, node.propertyName); - TypeScript.visitNodeOrToken(this, node.callSignature); - TypeScript.visitNodeOrToken(this, node.body); - }; - SyntaxWalker.prototype.visitSetAccessor = function (node) { - this.visitList(node.modifiers); - this.visitToken(node.setKeyword); - TypeScript.visitNodeOrToken(this, node.propertyName); - TypeScript.visitNodeOrToken(this, node.callSignature); - TypeScript.visitNodeOrToken(this, node.body); - }; - SyntaxWalker.prototype.visitPropertySignature = function (node) { - TypeScript.visitNodeOrToken(this, node.propertyName); - this.visitOptionalToken(node.questionToken); - TypeScript.visitNodeOrToken(this, node.typeAnnotation); - }; - SyntaxWalker.prototype.visitCallSignature = function (node) { - TypeScript.visitNodeOrToken(this, node.typeParameterList); - TypeScript.visitNodeOrToken(this, node.parameterList); - TypeScript.visitNodeOrToken(this, node.typeAnnotation); - }; - SyntaxWalker.prototype.visitConstructSignature = function (node) { - this.visitToken(node.newKeyword); - TypeScript.visitNodeOrToken(this, node.callSignature); - }; - SyntaxWalker.prototype.visitIndexSignature = function (node) { - this.visitToken(node.openBracketToken); - this.visitList(node.parameters); - this.visitToken(node.closeBracketToken); - TypeScript.visitNodeOrToken(this, node.typeAnnotation); - }; - SyntaxWalker.prototype.visitMethodSignature = function (node) { - TypeScript.visitNodeOrToken(this, node.propertyName); - this.visitOptionalToken(node.questionToken); - TypeScript.visitNodeOrToken(this, node.callSignature); - }; - SyntaxWalker.prototype.visitBlock = function (node) { - this.visitOptionalToken(node.equalsGreaterThanToken); - this.visitToken(node.openBraceToken); - this.visitList(node.statements); - this.visitToken(node.closeBraceToken); - }; - SyntaxWalker.prototype.visitIfStatement = function (node) { - this.visitToken(node.ifKeyword); - this.visitToken(node.openParenToken); - TypeScript.visitNodeOrToken(this, node.condition); - this.visitToken(node.closeParenToken); - TypeScript.visitNodeOrToken(this, node.statement); - TypeScript.visitNodeOrToken(this, node.elseClause); - }; - SyntaxWalker.prototype.visitVariableStatement = function (node) { - this.visitList(node.modifiers); - TypeScript.visitNodeOrToken(this, node.variableDeclaration); - this.visitOptionalToken(node.semicolonToken); - }; - SyntaxWalker.prototype.visitExpressionStatement = function (node) { - TypeScript.visitNodeOrToken(this, node.expression); - this.visitOptionalToken(node.semicolonToken); - }; - SyntaxWalker.prototype.visitReturnStatement = function (node) { - this.visitToken(node.returnKeyword); - TypeScript.visitNodeOrToken(this, node.expression); - this.visitOptionalToken(node.semicolonToken); - }; - SyntaxWalker.prototype.visitSwitchStatement = function (node) { - this.visitToken(node.switchKeyword); - this.visitToken(node.openParenToken); - TypeScript.visitNodeOrToken(this, node.expression); - this.visitToken(node.closeParenToken); - this.visitToken(node.openBraceToken); - this.visitList(node.switchClauses); - this.visitToken(node.closeBraceToken); - }; - SyntaxWalker.prototype.visitBreakStatement = function (node) { - this.visitToken(node.breakKeyword); - this.visitOptionalToken(node.identifier); - this.visitOptionalToken(node.semicolonToken); - }; - SyntaxWalker.prototype.visitContinueStatement = function (node) { - this.visitToken(node.continueKeyword); - this.visitOptionalToken(node.identifier); - this.visitOptionalToken(node.semicolonToken); - }; - SyntaxWalker.prototype.visitForStatement = function (node) { - this.visitToken(node.forKeyword); - this.visitToken(node.openParenToken); - TypeScript.visitNodeOrToken(this, node.initializer); - this.visitToken(node.firstSemicolonToken); - TypeScript.visitNodeOrToken(this, node.condition); - this.visitToken(node.secondSemicolonToken); - TypeScript.visitNodeOrToken(this, node.incrementor); - this.visitToken(node.closeParenToken); - TypeScript.visitNodeOrToken(this, node.statement); - }; - SyntaxWalker.prototype.visitForInStatement = function (node) { - this.visitToken(node.forKeyword); - this.visitToken(node.openParenToken); - TypeScript.visitNodeOrToken(this, node.left); - this.visitToken(node.inKeyword); - TypeScript.visitNodeOrToken(this, node.right); - this.visitToken(node.closeParenToken); - TypeScript.visitNodeOrToken(this, node.statement); - }; - SyntaxWalker.prototype.visitEmptyStatement = function (node) { - this.visitToken(node.semicolonToken); - }; - SyntaxWalker.prototype.visitThrowStatement = function (node) { - this.visitToken(node.throwKeyword); - TypeScript.visitNodeOrToken(this, node.expression); - this.visitOptionalToken(node.semicolonToken); - }; - SyntaxWalker.prototype.visitWhileStatement = function (node) { - this.visitToken(node.whileKeyword); - this.visitToken(node.openParenToken); - TypeScript.visitNodeOrToken(this, node.condition); - this.visitToken(node.closeParenToken); - TypeScript.visitNodeOrToken(this, node.statement); - }; - SyntaxWalker.prototype.visitTryStatement = function (node) { - this.visitToken(node.tryKeyword); - TypeScript.visitNodeOrToken(this, node.block); - TypeScript.visitNodeOrToken(this, node.catchClause); - TypeScript.visitNodeOrToken(this, node.finallyClause); - }; - SyntaxWalker.prototype.visitLabeledStatement = function (node) { - this.visitToken(node.identifier); - this.visitToken(node.colonToken); - TypeScript.visitNodeOrToken(this, node.statement); - }; - SyntaxWalker.prototype.visitDoStatement = function (node) { - this.visitToken(node.doKeyword); - TypeScript.visitNodeOrToken(this, node.statement); - this.visitToken(node.whileKeyword); - this.visitToken(node.openParenToken); - TypeScript.visitNodeOrToken(this, node.condition); - this.visitToken(node.closeParenToken); - this.visitOptionalToken(node.semicolonToken); - }; - SyntaxWalker.prototype.visitDebuggerStatement = function (node) { - this.visitToken(node.debuggerKeyword); - this.visitOptionalToken(node.semicolonToken); - }; - SyntaxWalker.prototype.visitWithStatement = function (node) { - this.visitToken(node.withKeyword); - this.visitToken(node.openParenToken); - TypeScript.visitNodeOrToken(this, node.condition); - this.visitToken(node.closeParenToken); - TypeScript.visitNodeOrToken(this, node.statement); - }; - SyntaxWalker.prototype.visitPrefixUnaryExpression = function (node) { - this.visitToken(node.operatorToken); - TypeScript.visitNodeOrToken(this, node.operand); - }; - SyntaxWalker.prototype.visitDeleteExpression = function (node) { - this.visitToken(node.deleteKeyword); - TypeScript.visitNodeOrToken(this, node.expression); - }; - SyntaxWalker.prototype.visitTypeOfExpression = function (node) { - this.visitToken(node.typeOfKeyword); - TypeScript.visitNodeOrToken(this, node.expression); - }; - SyntaxWalker.prototype.visitVoidExpression = function (node) { - this.visitToken(node.voidKeyword); - TypeScript.visitNodeOrToken(this, node.expression); - }; - SyntaxWalker.prototype.visitConditionalExpression = function (node) { - TypeScript.visitNodeOrToken(this, node.condition); - this.visitToken(node.questionToken); - TypeScript.visitNodeOrToken(this, node.whenTrue); - this.visitToken(node.colonToken); - TypeScript.visitNodeOrToken(this, node.whenFalse); - }; - SyntaxWalker.prototype.visitBinaryExpression = function (node) { - TypeScript.visitNodeOrToken(this, node.left); - this.visitToken(node.operatorToken); - TypeScript.visitNodeOrToken(this, node.right); - }; - SyntaxWalker.prototype.visitPostfixUnaryExpression = function (node) { - TypeScript.visitNodeOrToken(this, node.operand); - this.visitToken(node.operatorToken); - }; - SyntaxWalker.prototype.visitMemberAccessExpression = function (node) { - TypeScript.visitNodeOrToken(this, node.expression); - this.visitToken(node.dotToken); - this.visitToken(node.name); - }; - SyntaxWalker.prototype.visitInvocationExpression = function (node) { - TypeScript.visitNodeOrToken(this, node.expression); - TypeScript.visitNodeOrToken(this, node.argumentList); - }; - SyntaxWalker.prototype.visitArrayLiteralExpression = function (node) { - this.visitToken(node.openBracketToken); - this.visitList(node.expressions); - this.visitToken(node.closeBracketToken); - }; - SyntaxWalker.prototype.visitObjectLiteralExpression = function (node) { - this.visitToken(node.openBraceToken); - this.visitList(node.propertyAssignments); - this.visitToken(node.closeBraceToken); - }; - SyntaxWalker.prototype.visitObjectCreationExpression = function (node) { - this.visitToken(node.newKeyword); - TypeScript.visitNodeOrToken(this, node.expression); - TypeScript.visitNodeOrToken(this, node.argumentList); - }; - SyntaxWalker.prototype.visitParenthesizedExpression = function (node) { - this.visitToken(node.openParenToken); - TypeScript.visitNodeOrToken(this, node.expression); - this.visitToken(node.closeParenToken); - }; - SyntaxWalker.prototype.visitParenthesizedArrowFunctionExpression = function (node) { - this.visitOptionalToken(node.asyncKeyword); - TypeScript.visitNodeOrToken(this, node.callSignature); - this.visitToken(node.equalsGreaterThanToken); - TypeScript.visitNodeOrToken(this, node.body); - }; - SyntaxWalker.prototype.visitSimpleArrowFunctionExpression = function (node) { - this.visitOptionalToken(node.asyncKeyword); - TypeScript.visitNodeOrToken(this, node.parameter); - this.visitToken(node.equalsGreaterThanToken); - TypeScript.visitNodeOrToken(this, node.body); - }; - SyntaxWalker.prototype.visitCastExpression = function (node) { - this.visitToken(node.lessThanToken); - TypeScript.visitNodeOrToken(this, node.type); - this.visitToken(node.greaterThanToken); - TypeScript.visitNodeOrToken(this, node.expression); - }; - SyntaxWalker.prototype.visitElementAccessExpression = function (node) { - TypeScript.visitNodeOrToken(this, node.expression); - this.visitToken(node.openBracketToken); - TypeScript.visitNodeOrToken(this, node.argumentExpression); - this.visitToken(node.closeBracketToken); - }; - SyntaxWalker.prototype.visitFunctionExpression = function (node) { - this.visitOptionalToken(node.asyncKeyword); - this.visitToken(node.functionKeyword); - this.visitOptionalToken(node.asterixToken); - this.visitOptionalToken(node.identifier); - TypeScript.visitNodeOrToken(this, node.callSignature); - TypeScript.visitNodeOrToken(this, node.body); - }; - SyntaxWalker.prototype.visitOmittedExpression = function (node) { - }; - SyntaxWalker.prototype.visitTemplateExpression = function (node) { - this.visitToken(node.templateStartToken); - this.visitList(node.templateClauses); - }; - SyntaxWalker.prototype.visitTemplateAccessExpression = function (node) { - TypeScript.visitNodeOrToken(this, node.expression); - TypeScript.visitNodeOrToken(this, node.templateExpression); - }; - SyntaxWalker.prototype.visitYieldExpression = function (node) { - this.visitToken(node.yieldKeyword); - this.visitOptionalToken(node.asterixToken); - TypeScript.visitNodeOrToken(this, node.expression); - }; - SyntaxWalker.prototype.visitAwaitExpression = function (node) { - this.visitToken(node.awaitKeyword); - TypeScript.visitNodeOrToken(this, node.expression); - }; - SyntaxWalker.prototype.visitVariableDeclaration = function (node) { - this.visitToken(node.varKeyword); - this.visitList(node.variableDeclarators); - }; - SyntaxWalker.prototype.visitVariableDeclarator = function (node) { - TypeScript.visitNodeOrToken(this, node.propertyName); - TypeScript.visitNodeOrToken(this, node.typeAnnotation); - TypeScript.visitNodeOrToken(this, node.equalsValueClause); - }; - SyntaxWalker.prototype.visitArgumentList = function (node) { - TypeScript.visitNodeOrToken(this, node.typeArgumentList); - this.visitToken(node.openParenToken); - this.visitList(node.arguments); - this.visitToken(node.closeParenToken); - }; - SyntaxWalker.prototype.visitParameterList = function (node) { - this.visitToken(node.openParenToken); - this.visitList(node.parameters); - this.visitToken(node.closeParenToken); - }; - SyntaxWalker.prototype.visitTypeArgumentList = function (node) { - this.visitToken(node.lessThanToken); - this.visitList(node.typeArguments); - this.visitToken(node.greaterThanToken); - }; - SyntaxWalker.prototype.visitTypeParameterList = function (node) { - this.visitToken(node.lessThanToken); - this.visitList(node.typeParameters); - this.visitToken(node.greaterThanToken); - }; - SyntaxWalker.prototype.visitHeritageClause = function (node) { - this.visitToken(node.extendsOrImplementsKeyword); - this.visitList(node.typeNames); - }; - SyntaxWalker.prototype.visitEqualsValueClause = function (node) { - this.visitToken(node.equalsToken); - TypeScript.visitNodeOrToken(this, node.value); - }; - SyntaxWalker.prototype.visitCaseSwitchClause = function (node) { - this.visitToken(node.caseKeyword); - TypeScript.visitNodeOrToken(this, node.expression); - this.visitToken(node.colonToken); - this.visitList(node.statements); - }; - SyntaxWalker.prototype.visitDefaultSwitchClause = function (node) { - this.visitToken(node.defaultKeyword); - this.visitToken(node.colonToken); - this.visitList(node.statements); - }; - SyntaxWalker.prototype.visitElseClause = function (node) { - this.visitToken(node.elseKeyword); - TypeScript.visitNodeOrToken(this, node.statement); - }; - SyntaxWalker.prototype.visitCatchClause = function (node) { - this.visitToken(node.catchKeyword); - this.visitToken(node.openParenToken); - this.visitToken(node.identifier); - TypeScript.visitNodeOrToken(this, node.typeAnnotation); - this.visitToken(node.closeParenToken); - TypeScript.visitNodeOrToken(this, node.block); - }; - SyntaxWalker.prototype.visitFinallyClause = function (node) { - this.visitToken(node.finallyKeyword); - TypeScript.visitNodeOrToken(this, node.block); - }; - SyntaxWalker.prototype.visitTemplateClause = function (node) { - TypeScript.visitNodeOrToken(this, node.expression); - this.visitToken(node.templateMiddleOrEndToken); - }; - SyntaxWalker.prototype.visitTypeParameter = function (node) { - this.visitToken(node.identifier); - TypeScript.visitNodeOrToken(this, node.constraint); - }; - SyntaxWalker.prototype.visitConstraint = function (node) { - this.visitToken(node.extendsKeyword); - TypeScript.visitNodeOrToken(this, node.typeOrExpression); - }; - SyntaxWalker.prototype.visitParameter = function (node) { - this.visitOptionalToken(node.dotDotDotToken); - this.visitList(node.modifiers); - this.visitToken(node.identifier); - this.visitOptionalToken(node.questionToken); - TypeScript.visitNodeOrToken(this, node.typeAnnotation); - TypeScript.visitNodeOrToken(this, node.equalsValueClause); - }; - SyntaxWalker.prototype.visitEnumElement = function (node) { - TypeScript.visitNodeOrToken(this, node.propertyName); - TypeScript.visitNodeOrToken(this, node.equalsValueClause); - }; - SyntaxWalker.prototype.visitTypeAnnotation = function (node) { - this.visitToken(node.colonToken); - TypeScript.visitNodeOrToken(this, node.type); - }; - SyntaxWalker.prototype.visitExpressionBody = function (node) { - this.visitToken(node.equalsGreaterThanToken); - TypeScript.visitNodeOrToken(this, node.expression); - }; - SyntaxWalker.prototype.visitComputedPropertyName = function (node) { - this.visitToken(node.openBracketToken); - TypeScript.visitNodeOrToken(this, node.expression); - this.visitToken(node.closeBracketToken); - }; - SyntaxWalker.prototype.visitPropertyAssignment = function (node) { - TypeScript.visitNodeOrToken(this, node.propertyName); - this.visitToken(node.colonToken); - TypeScript.visitNodeOrToken(this, node.expression); - }; - SyntaxWalker.prototype.visitExternalModuleReference = function (node) { - this.visitToken(node.requireKeyword); - this.visitToken(node.openParenToken); - this.visitToken(node.stringLiteral); - this.visitToken(node.closeParenToken); - }; - SyntaxWalker.prototype.visitModuleNameModuleReference = function (node) { - TypeScript.visitNodeOrToken(this, node.moduleName); - }; - return SyntaxWalker; - })(); - TypeScript.SyntaxWalker = SyntaxWalker; -})(TypeScript || (TypeScript = {})); -var TypeScript; -(function (TypeScript) { - var Parser; - (function (Parser) { - function createParseSyntaxTree() { - var fileName; - var source; - var languageVersion; - var listParsingState = 0; - var contextFlags = 0; - var diagnostics = []; - var _skippedTokens = undefined; - function setContextFlag(val, flag) { - if (val) { - contextFlags |= flag; - } - else { - contextFlags &= ~flag; - } - } - function setStrictModeContext(val) { - setContextFlag(val, 1 /* StrictMode */); - } - function setDisallowInContext(val) { - setContextFlag(val, 2 /* DisallowIn */); - } - function setYieldContext(val) { - setContextFlag(val, 4 /* Yield */); - } - function setGeneratorParameterContext(val) { - setContextFlag(val, 8 /* GeneratorParameter */); - } - function setAsyncContext(val) { - setContextFlag(val, 16 /* Async */); - } - function inStrictModeContext() { - return (contextFlags & 1 /* StrictMode */) !== 0; - } - function inDisallowInContext() { - return (contextFlags & 2 /* DisallowIn */) !== 0; - } - function inYieldContext() { - return (contextFlags & 4 /* Yield */) !== 0; - } - function inGeneratorParameterContext() { - return (contextFlags & 8 /* GeneratorParameter */) !== 0; - } - function inAsyncContext() { - return (contextFlags & 16 /* Async */) !== 0; - } - function allowInAnd(func) { - if (inDisallowInContext()) { - setDisallowInContext(false); - var result = func(); - setDisallowInContext(true); - return result; - } - return func(); - } - function disallowInAnd(func) { - if (inDisallowInContext()) { - return func(); - } - setDisallowInContext(true); - var result = func(); - setDisallowInContext(false); - return result; - } - function doInsideYieldContext(func) { - if (inYieldContext()) { - return func(); - } - setYieldContext(true); - var result = func(); - setYieldContext(false); - return result; - } - function doOutsideYieldContext(func) { - if (inYieldContext()) { - setYieldContext(false); - var result = func(); - setYieldContext(true); - return result; - } - return func(); - } - function doInsideAsyncContext(func) { - if (inAsyncContext()) { - return func(); - } - setAsyncContext(true); - var result = func(); - setAsyncContext(false); - return result; - } - function doOutsideAsyncContext(func) { - if (inAsyncContext()) { - setAsyncContext(false); - var result = func(); - setAsyncContext(true); - return result; - } - return func(); - } - function parseSyntaxTree(_source, isDeclaration) { - fileName = _source.fileName; - source = _source; - languageVersion = source.languageVersion; - var result = parseSyntaxTreeWorker(isDeclaration); - diagnostics = []; - contextFlags = 0; - fileName = undefined; - source.release(); - source = undefined; - _source = undefined; - return result; - } - function parseSyntaxTreeWorker(isDeclaration) { - var sourceUnit = parseSourceUnit(); - var allDiagnostics = source.tokenDiagnostics().concat(diagnostics); - allDiagnostics.sort(function (a, b) { return a.start() - b.start(); }); - return new TypeScript.SyntaxTree(sourceUnit, isDeclaration, allDiagnostics, fileName, source.text, languageVersion); - } - function getRewindPoint() { - var rewindPoint = source.getRewindPoint(); - rewindPoint.diagnosticsCount = diagnostics.length; - rewindPoint.skippedTokens = _skippedTokens ? _skippedTokens.slice(0) : undefined; - return rewindPoint; - } - function rewind(rewindPoint) { - source.rewind(rewindPoint); - diagnostics.length = rewindPoint.diagnosticsCount; - _skippedTokens = rewindPoint.skippedTokens; - } - function releaseRewindPoint(rewindPoint) { - source.releaseRewindPoint(rewindPoint); - } - function currentNode() { - if (!_skippedTokens) { - var node = source.currentNode(); - if (node && TypeScript.parserContextFlags(node) === contextFlags) { - return node; - } - } - return undefined; - } - function currentToken() { - return source.currentToken(); - } - function currentContextualToken() { - return source.currentContextualToken(); - } - function peekToken(n) { - return source.peekToken(n); - } - function skipToken(token) { - _skippedTokens = _skippedTokens || []; - _skippedTokens.push(token); - source.consumeNodeOrToken(token); - } - function consumeToken(token) { - source.consumeNodeOrToken(token); - if (_skippedTokens) { - token = addSkippedTokensBeforeToken(token, _skippedTokens); - _skippedTokens = undefined; - } - return token; - } - function addSkippedTokensBeforeToken(token, skippedTokens) { - var leadingTrivia = []; - for (var i = 0, n = skippedTokens.length; i < n; i++) { - var skippedToken = skippedTokens[i]; - addSkippedTokenToTriviaArray(leadingTrivia, skippedToken); - } - addTriviaTo(token.leadingTrivia(source.text), leadingTrivia); - var updatedToken = TypeScript.Syntax.withLeadingTrivia(token, TypeScript.Syntax.triviaList(leadingTrivia), source.text); - updatedToken.setFullStart(skippedTokens[0].fullStart()); - return updatedToken; - } - function addSkippedTokenToTriviaArray(array, skippedToken) { - addTriviaTo(skippedToken.leadingTrivia(source.text), array); - var trimmedToken = TypeScript.Syntax.withLeadingTrivia(skippedToken, TypeScript.Syntax.emptyTriviaList, source.text); - trimmedToken.setFullStart(TypeScript.start(skippedToken, source.text)); - array.push(TypeScript.Syntax.skippedTokenTrivia(trimmedToken, source.text)); - } - function addTriviaTo(list, array) { - for (var i = 0, n = list.count(); i < n; i++) { - array.push(list.syntaxTriviaAt(i)); - } - } - function consumeNode(node) { - TypeScript.Debug.assert(_skippedTokens === undefined); - source.consumeNodeOrToken(node); - } - function eatToken(kind) { - var token = currentToken(); - if (token.kind === kind) { - return consumeToken(token); - } - return createMissingToken(kind, token); - } - function tryEatToken(kind) { - var _currentToken = currentToken(); - if (_currentToken.kind === kind) { - return consumeToken(_currentToken); - } - return undefined; - } - function isIdentifier(token) { - var tokenKind = token.kind; - if (tokenKind === 9 /* IdentifierName */) { - return true; - } - if (tokenKind === 61 /* YieldKeyword */ && inYieldContext()) { - return false; - } - if (tokenKind === 64 /* AwaitKeyword */ && inAsyncContext()) { - return false; - } - if (tokenKind >= 53 /* FirstFutureReservedStrictKeyword */) { - if (tokenKind <= 61 /* LastFutureReservedStrictKeyword */) { - return !inStrictModeContext(); - } - return tokenKind <= 73 /* LastTypeScriptKeyword */; - } - return false; - } - function eatIdentifierNameToken() { - var token = currentToken(); - var tokenKind = token.kind; - if (tokenKind === 9 /* IdentifierName */) { - return consumeToken(token); - } - if (TypeScript.SyntaxFacts.isAnyKeyword(tokenKind)) { - return TypeScript.Syntax.convertKeywordToIdentifier(consumeToken(token)); - } - return createMissingToken(9 /* IdentifierName */, token); - } - function eatOptionalIdentifierToken() { - return isIdentifier(currentToken()) ? eatIdentifierToken() : undefined; - } - function eatIdentifierToken(diagnosticCode) { - var token = currentToken(); - if (isIdentifier(token)) { - if (token.kind === 9 /* IdentifierName */) { - return consumeToken(token); - } - return TypeScript.Syntax.convertKeywordToIdentifier(consumeToken(token)); - } - return createMissingToken(9 /* IdentifierName */, token, diagnosticCode); - } - function canEatAutomaticSemicolon(allowWithoutNewLine) { - var token = currentToken(); - var tokenKind = token.kind; - if (tokenKind === 8 /* EndOfFileToken */) { - return true; - } - if (tokenKind === 75 /* CloseBraceToken */) { - return true; - } - if (allowWithoutNewLine) { - return true; - } - if (token.hasLeadingNewLine()) { - return true; - } - return false; - } - function canEatExplicitOrAutomaticSemicolon(allowWithoutNewline) { - var token = currentToken(); - if (token.kind === 82 /* SemicolonToken */) { - return true; - } - return canEatAutomaticSemicolon(allowWithoutNewline); - } - function eatExplicitOrAutomaticSemicolon(allowWithoutNewline) { - var token = currentToken(); - if (token.kind === 82 /* SemicolonToken */) { - return consumeToken(token); - } - if (canEatAutomaticSemicolon(allowWithoutNewline)) { - return undefined; - } - return eatToken(82 /* SemicolonToken */); - } - function createEmptyToken(kind) { - var fullStart = _skippedTokens ? _skippedTokens[0].fullStart() : source.absolutePosition(); - return TypeScript.Syntax.emptyToken(kind, fullStart); - } - function createMissingToken(expectedKind, actual, diagnosticCode, args) { - var diagnostic = getExpectedTokenDiagnostic(expectedKind, actual, diagnosticCode, args); - addDiagnostic(diagnostic); - return createEmptyToken(expectedKind); - } - function getExpectedTokenDiagnostic(expectedKind, actual, diagnosticCode, args) { - var token = currentToken(); - if (!diagnosticCode) { - if (TypeScript.SyntaxFacts.isAnyKeyword(expectedKind) || TypeScript.SyntaxFacts.isAnyPunctuation(expectedKind)) { - diagnosticCode = TypeScript.DiagnosticCode._0_expected; - args = [TypeScript.SyntaxFacts.getText(expectedKind)]; - } - else { - if (actual && TypeScript.SyntaxFacts.isAnyKeyword(actual.kind)) { - diagnosticCode = TypeScript.DiagnosticCode.Identifier_expected_0_is_a_keyword; - args = [TypeScript.SyntaxFacts.getText(actual.kind)]; - } - else { - diagnosticCode = TypeScript.DiagnosticCode.Identifier_expected; - } - } - } - return new TypeScript.Diagnostic(fileName, source.text.lineMap(), TypeScript.start(token, source.text), TypeScript.width(token), diagnosticCode, args); - } - function getBinaryExpressionPrecedence(tokenKind) { - switch (tokenKind) { - case 108 /* BarBarToken */: return 2 /* LogicalOrExpressionPrecedence */; - case 107 /* AmpersandAmpersandToken */: return 3 /* LogicalAndExpressionPrecedence */; - case 103 /* BarToken */: return 4 /* BitwiseOrExpressionPrecedence */; - case 104 /* CaretToken */: return 5 /* BitwiseExclusiveOrExpressionPrecedence */; - case 102 /* AmpersandToken */: return 6 /* BitwiseAndExpressionPrecedence */; - case 88 /* EqualsEqualsToken */: - case 90 /* ExclamationEqualsToken */: - case 91 /* EqualsEqualsEqualsToken */: - case 92 /* ExclamationEqualsEqualsToken */: - return 7 /* EqualityExpressionPrecedence */; - case 84 /* LessThanToken */: - case 85 /* GreaterThanToken */: - case 86 /* LessThanEqualsToken */: - case 87 /* GreaterThanEqualsToken */: - case 32 /* InstanceOfKeyword */: - case 31 /* InKeyword */: - return 8 /* RelationalExpressionPrecedence */; - case 99 /* LessThanLessThanToken */: - case 100 /* GreaterThanGreaterThanToken */: - case 101 /* GreaterThanGreaterThanGreaterThanToken */: - return 9 /* ShiftExpressionPrecdence */; - case 93 /* PlusToken */: - case 94 /* MinusToken */: - return 10 /* AdditiveExpressionPrecedence */; - case 95 /* AsteriskToken */: - case 122 /* SlashToken */: - case 96 /* PercentToken */: - return 11 /* MultiplicativeExpressionPrecedence */; - } - throw TypeScript.Errors.invalidOperation(); - } - function parseSourceUnit() { - var savedIsInStrictMode = inStrictModeContext(); - var moduleElements = parseSyntaxList(0 /* SourceUnit_ModuleElements */, updateStrictModeState); - setStrictModeContext(savedIsInStrictMode); - var sourceUnit = new TypeScript.SourceUnitSyntax(contextFlags, moduleElements, consumeToken(currentToken())); - if (TypeScript.Debug.shouldAssert(2 /* Aggressive */)) { - TypeScript.Debug.assert(TypeScript.fullWidth(sourceUnit) === source.text.length()); - if (TypeScript.Debug.shouldAssert(3 /* VeryAggressive */)) { - TypeScript.Debug.assert(TypeScript.fullText(sourceUnit) === source.text.substr(0, source.text.length())); - } - } - return sourceUnit; - } - function isDirectivePrologueElement(node) { - return node.kind === 156 /* ExpressionStatement */ && node.expression.kind === 12 /* StringLiteral */; - } - function updateStrictModeState(items) { - if (!inStrictModeContext()) { - for (var i = 0, n = items.length; i < n; i++) { - if (!isDirectivePrologueElement(items[i])) { - return; - } - } - setStrictModeContext(TypeScript.SyntaxFacts.isUseStrictDirective(items[items.length - 1])); - } - } - function isModuleElement(inErrorRecovery) { - if (TypeScript.SyntaxUtilities.isModuleElement(currentNode())) { - return true; - } - var _modifierCount = modifierCount(); - return isInterfaceEnumClassModuleImportOrExport(_modifierCount) || isStatement(_modifierCount, inErrorRecovery); - } - function tryParseModuleElement(inErrorRecovery) { - var node = currentNode(); - if (TypeScript.SyntaxUtilities.isModuleElement(node)) { - consumeNode(node); - return node; - } - var _currentToken = currentToken(); - var _modifierCount = modifierCount(); - if (_modifierCount) { - switch (peekToken(_modifierCount).kind) { - case 51 /* ImportKeyword */: return parseImportDeclaration(); - case 69 /* ModuleKeyword */: return parseModuleDeclaration(); - case 54 /* InterfaceKeyword */: return parseInterfaceDeclaration(); - case 46 /* ClassKeyword */: return parseClassDeclaration(); - case 48 /* EnumKeyword */: return parseEnumDeclaration(); - case 49 /* ExportKeyword */: return parseExportAssignment(); - } - } - var nextToken = peekToken(1); - var currentTokenKind = _currentToken.kind; - switch (currentTokenKind) { - case 69 /* ModuleKeyword */: - if (isIdentifier(nextToken) || nextToken.kind === 12 /* StringLiteral */) { - return parseModuleDeclaration(); - } - break; - case 51 /* ImportKeyword */: - if (isIdentifier(nextToken)) { - return parseImportDeclaration(); - } - break; - case 46 /* ClassKeyword */: - if (isIdentifier(nextToken)) { - return parseClassDeclaration(); - } - break; - case 48 /* EnumKeyword */: - if (isIdentifier(nextToken)) { - return parseEnumDeclaration(); - } - break; - case 54 /* InterfaceKeyword */: - if (isIdentifier(nextToken)) { - return parseInterfaceDeclaration(); - } - break; - case 49 /* ExportKeyword */: - if (nextToken.kind === 111 /* EqualsToken */) { - return parseExportAssignment(); - } - break; - } - return tryParseStatementWorker(_currentToken, currentTokenKind, _modifierCount, inErrorRecovery); - } - function parseImportDeclaration() { - return new TypeScript.ImportDeclarationSyntax(contextFlags, parseModifiers(), eatToken(51 /* ImportKeyword */), eatIdentifierToken(), eatToken(111 /* EqualsToken */), parseModuleReference(), eatExplicitOrAutomaticSemicolon(false)); - } - function parseExportAssignment() { - return new TypeScript.ExportAssignmentSyntax(contextFlags, parseModifiers(), eatToken(49 /* ExportKeyword */), eatToken(111 /* EqualsToken */), eatIdentifierToken(), eatExplicitOrAutomaticSemicolon(false)); - } - function parseModuleReference() { - return isExternalModuleReference() ? parseExternalModuleReference() : parseModuleNameModuleReference(); - } - function isExternalModuleReference() { - return currentToken().kind === 70 /* RequireKeyword */ && peekToken(1).kind === 76 /* OpenParenToken */; - } - function parseExternalModuleReference() { - return new TypeScript.ExternalModuleReferenceSyntax(contextFlags, eatToken(70 /* RequireKeyword */), eatToken(76 /* OpenParenToken */), eatToken(12 /* StringLiteral */), eatToken(77 /* CloseParenToken */)); - } - function parseModuleNameModuleReference() { - return new TypeScript.ModuleNameModuleReferenceSyntax(contextFlags, parseName(false)); - } - function tryParseTypeArgumentList(inExpression) { - var _currentToken = currentToken(); - if (_currentToken.kind !== 84 /* LessThanToken */) { - return undefined; - } - if (!inExpression) { - return new TypeScript.TypeArgumentListSyntax(contextFlags, consumeToken(_currentToken), parseSeparatedSyntaxList(18 /* TypeArgumentList_Types */), eatToken(85 /* GreaterThanToken */)); - } - var rewindPoint = getRewindPoint(); - var lessThanToken = consumeToken(_currentToken); - var typeArguments = parseSeparatedSyntaxList(18 /* TypeArgumentList_Types */); - var greaterThanToken = eatToken(85 /* GreaterThanToken */); - if (greaterThanToken.fullWidth() === 0 || !canFollowTypeArgumentListInExpression(currentToken().kind)) { - rewind(rewindPoint); - releaseRewindPoint(rewindPoint); - return undefined; - } - else { - releaseRewindPoint(rewindPoint); - return new TypeScript.TypeArgumentListSyntax(contextFlags, lessThanToken, typeArguments, greaterThanToken); - } - } - function canFollowTypeArgumentListInExpression(kind) { - switch (kind) { - case 76 /* OpenParenToken */: - case 80 /* DotToken */: - case 77 /* CloseParenToken */: - case 79 /* CloseBracketToken */: - case 110 /* ColonToken */: - case 82 /* SemicolonToken */: - case 83 /* CommaToken */: - case 109 /* QuestionToken */: - case 88 /* EqualsEqualsToken */: - case 91 /* EqualsEqualsEqualsToken */: - case 90 /* ExclamationEqualsToken */: - case 92 /* ExclamationEqualsEqualsToken */: - case 107 /* AmpersandAmpersandToken */: - case 108 /* BarBarToken */: - case 104 /* CaretToken */: - case 102 /* AmpersandToken */: - case 103 /* BarToken */: - case 75 /* CloseBraceToken */: - case 8 /* EndOfFileToken */: - return true; - default: - return false; - } - } - function parseName(allowIdentifierName) { - return tryParseName(allowIdentifierName) || eatIdentifierToken(); - } - function eatRightSideOfName(allowIdentifierNames) { - var _currentToken = currentToken(); - if (TypeScript.SyntaxFacts.isAnyKeyword(_currentToken.kind) && _currentToken.hasLeadingNewLine()) { - var token1 = peekToken(1); - if (!TypeScript.existsNewLineBetweenTokens(_currentToken, token1, source.text) && TypeScript.SyntaxFacts.isIdentifierNameOrAnyKeyword(token1)) { - return createMissingToken(9 /* IdentifierName */, _currentToken); - } - } - return allowIdentifierNames ? eatIdentifierNameToken() : eatIdentifierToken(); - } - function tryParseName(allowIdentifierNames) { - var token0 = currentToken(); - var shouldContinue = isIdentifier(token0); - if (!shouldContinue) { - return undefined; - } - var current = eatIdentifierToken(); - while (shouldContinue && currentToken().kind === 80 /* DotToken */) { - var dotToken = consumeToken(currentToken()); - var identifierName = eatRightSideOfName(allowIdentifierNames); - current = new TypeScript.QualifiedNameSyntax(contextFlags, current, dotToken, identifierName); - shouldContinue = identifierName.fullWidth() > 0; - } - return current; - } - function parseEnumDeclaration() { - var openBraceToken; - return new TypeScript.EnumDeclarationSyntax(contextFlags, parseModifiers(), eatToken(48 /* EnumKeyword */), eatIdentifierToken(), openBraceToken = eatToken(74 /* OpenBraceToken */), openBraceToken.fullWidth() > 0 ? parseSeparatedSyntaxList(8 /* EnumDeclaration_EnumElements */) : [], eatToken(75 /* CloseBraceToken */)); - } - function isEnumElement(inErrorRecovery) { - var node = currentNode(); - if (node && node.kind === 211 /* EnumElement */) { - return true; - } - return isPropertyName(0, inErrorRecovery); - } - function tryParseEnumElementEqualsValueClause() { - return isEqualsValueClause(false) ? allowInAnd(parseEqualsValueClause) : undefined; - } - function tryParseEnumElement(inErrorRecovery) { - var node = currentNode(); - if (node && node.kind === 211 /* EnumElement */) { - consumeNode(node); - return node; - } - if (!isPropertyName(0, inErrorRecovery)) { - return undefined; - } - return new TypeScript.EnumElementSyntax(contextFlags, parsePropertyName(), tryParseEnumElementEqualsValueClause()); - } - function isModifierKind(kind) { - switch (kind) { - case 49 /* ExportKeyword */: - case 59 /* PublicKeyword */: - case 57 /* PrivateKeyword */: - case 58 /* ProtectedKeyword */: - case 60 /* StaticKeyword */: - case 67 /* DeclareKeyword */: - case 63 /* AsyncKeyword */: - return true; - } - return false; - } - function isModifier(token, peekIndex) { - if (isModifierKind(token.kind)) { - var nextToken = peekToken(peekIndex + 1); - if (token.kind === 63 /* AsyncKeyword */) { - if (nextToken.hasLeadingNewLine()) { - return false; - } - } - var nextTokenKind = nextToken.kind; - switch (nextTokenKind) { - case 9 /* IdentifierName */: - case 78 /* OpenBracketToken */: - case 11 /* NumericLiteral */: - case 12 /* StringLiteral */: - case 13 /* NoSubstitutionTemplateToken */: - case 95 /* AsteriskToken */: - return true; - default: - return TypeScript.SyntaxFacts.isAnyKeyword(nextTokenKind); - } - } - return false; - } - function isAtModifier() { - return isModifier(currentToken(), 0); - } - function modifierCount() { - var modifierCount = 0; - while (isModifier(peekToken(modifierCount), modifierCount)) { - modifierCount++; - } - return modifierCount; - } - function parseModifiers() { - var tokens = []; - while (true) { - var token = currentToken(); - if (isModifier(token, 0)) { - tokens.push(consumeToken(token)); - continue; - } - break; - } - return TypeScript.Syntax.list(tokens); - } - function parseHeritageClauses(isClassHeritageClause) { - if (isHeritageClause()) { - return isClassHeritageClause && inGeneratorParameterContext() ? doOutsideYieldContext(parseHeritageClausesWorker) : parseHeritageClausesWorker(); - } - return []; - } - function parseHeritageClausesWorker() { - return parseSyntaxList(10 /* ClassOrInterfaceDeclaration_HeritageClauses */); - } - function tryParseHeritageClauseTypeName() { - return isHeritageClauseTypeName() ? tryParseNameOrGenericType() : undefined; - } - function parseClassDeclaration() { - var openBraceToken; - return new TypeScript.ClassDeclarationSyntax(contextFlags, parseModifiers(), eatToken(46 /* ClassKeyword */), eatIdentifierToken(), tryParseTypeParameterList(false), parseHeritageClauses(true), openBraceToken = eatToken(74 /* OpenBraceToken */), openBraceToken.fullWidth() > 0 ? parseSyntaxList(1 /* ClassDeclaration_ClassElements */) : [], eatToken(75 /* CloseBraceToken */)); - } - function parseClassElement(openBraceToken) { - if (openBraceToken.fullWidth() > 0) { - return inGeneratorParameterContext() ? doOutsideYieldContext(parseClassElements) : parseClassElements(); - } - return []; - } - function parseClassElements() { - return parseSyntaxList(1 /* ClassDeclaration_ClassElements */); - } - function isAccessor(inErrorRecovery) { - var tokenKind = currentToken().kind; - if (tokenKind !== 68 /* GetKeyword */ && tokenKind !== 72 /* SetKeyword */) { - return false; - } - return isPropertyName(1, inErrorRecovery); - } - function parseAccessor(modifiers) { - var _currentToken = currentToken(); - var tokenKind = _currentToken.kind; - if (tokenKind === 68 /* GetKeyword */) { - return parseGetAccessor(modifiers, _currentToken); - } - else if (tokenKind === 72 /* SetKeyword */) { - return parseSetAccessor(modifiers, _currentToken); - } - else { - throw TypeScript.Errors.invalidOperation(); - } - } - function parseGetAccessor(modifiers, getKeyword) { - return new TypeScript.GetAccessorSyntax(contextFlags, modifiers, consumeToken(getKeyword), parsePropertyName(), parseCallSignature(false, false, false), parseFunctionBody(false, false)); - } - function parseSetAccessor(modifiers, setKeyword) { - return new TypeScript.SetAccessorSyntax(contextFlags, modifiers, consumeToken(setKeyword), parsePropertyName(), parseCallSignature(false, false, false), parseFunctionBody(false, false)); - } - function isClassElement(inErrorRecovery) { - if (TypeScript.SyntaxUtilities.isClassElement(currentNode())) { - return true; - } - return isAtModifier() || isConstructorDeclaration() || isAccessor(inErrorRecovery) || isIndexMemberDeclaration() || isMemberVariableOrFunctionDeclaration(inErrorRecovery); - } - function isMemberVariableOrFunctionDeclaration(inErrorRecovery) { - var token0 = currentToken(); - var token0Kind = token0.kind; - if (token0Kind === 95 /* AsteriskToken */) { - if (inErrorRecovery) { - return peekToken(1).kind === 9 /* IdentifierName */ && isCallSignature(2); - } - return true; - } - if (!isPropertyName(0, inErrorRecovery)) { - return false; - } - if (!TypeScript.SyntaxFacts.isAnyKeyword(token0Kind)) { - return true; - } - var nextToken = peekToken(1); - switch (nextToken.kind) { - case 82 /* SemicolonToken */: - case 111 /* EqualsToken */: - case 110 /* ColonToken */: - case 75 /* CloseBraceToken */: - case 76 /* OpenParenToken */: - case 84 /* LessThanToken */: - case 8 /* EndOfFileToken */: - return true; - default: - return nextToken.hasLeadingNewLine(); - } - } - function tryParseClassElement(inErrorRecovery) { - var node = currentNode(); - if (TypeScript.SyntaxUtilities.isClassElement(node)) { - consumeNode(node); - return node; - } - var modifiers = parseModifiers(); - if (isConstructorDeclaration()) { - return parseConstructorDeclaration(modifiers); - } - else if (isIndexMemberDeclaration()) { - return parseIndexMemberDeclaration(modifiers); - } - else if (isAccessor(inErrorRecovery)) { - return parseAccessor(modifiers); - } - else if (modifiers.length > 0 || isMemberVariableOrFunctionDeclaration(inErrorRecovery)) { - var asterixToken = tryEatToken(95 /* AsteriskToken */); - var propertyName = parsePropertyName(); - if (asterixToken || isCallSignature(0)) { - return parseMemberFunctionDeclaration(modifiers, asterixToken, propertyName); - } - else { - return parseMemberVariableDeclaration(modifiers, propertyName); - } - } - else { - return undefined; - } - } - function isConstructorDeclaration() { - return currentToken().kind === 66 /* ConstructorKeyword */; - } - function parseConstructorDeclaration(modifiers) { - return new TypeScript.ConstructorDeclarationSyntax(contextFlags, modifiers, eatToken(66 /* ConstructorKeyword */), parseCallSignature(false, false, false), parseFunctionBody(false, false)); - } - function parseMemberFunctionDeclaration(modifiers, asteriskToken, propertyName) { - var asyncContext = containsAsync(modifiers); - var isGenerator = asteriskToken !== undefined; - return new TypeScript.MemberFunctionDeclarationSyntax(contextFlags, modifiers, asteriskToken, propertyName, parseCallSignature(false, isGenerator, asyncContext), parseFunctionBody(isGenerator, asyncContext)); - } - function containsAsync(modifiers) { - for (var i = 0, n = modifiers.length; i < n; i++) { - if (modifiers[i].kind === 63 /* AsyncKeyword */) { - return true; - } - } - return false; - } - function parseMemberVariableDeclaration(modifiers, propertyName) { - return new TypeScript.MemberVariableDeclarationSyntax(contextFlags, modifiers, new TypeScript.VariableDeclaratorSyntax(contextFlags, propertyName, parseOptionalTypeAnnotation(false), isEqualsValueClause(false) ? allowInAnd(parseEqualsValueClause) : undefined), eatExplicitOrAutomaticSemicolon(false)); - } - function isIndexMemberDeclaration() { - return isIndexSignature(0); - } - function parseIndexMemberDeclaration(modifiers) { - return new TypeScript.IndexMemberDeclarationSyntax(contextFlags, modifiers, parseIndexSignature(), eatExplicitOrAutomaticSemicolon(false)); - } - function isFunctionDeclaration(modifierCount) { - return peekToken(modifierCount).kind === 29 /* FunctionKeyword */; - } - function parseFunctionDeclaration() { - return parseFunctionDeclarationWorker(parseModifiers(), eatToken(29 /* FunctionKeyword */), tryEatToken(95 /* AsteriskToken */)); - } - function parseFunctionDeclarationWorker(modifiers, functionKeyword, asteriskToken) { - var asyncContext = containsAsync(modifiers); - var isGenerator = asteriskToken !== undefined; - return new TypeScript.FunctionDeclarationSyntax(contextFlags, modifiers, functionKeyword, asteriskToken, eatIdentifierToken(), parseCallSignature(false, isGenerator, asyncContext), parseFunctionBody(isGenerator, asyncContext)); - } - function parseFunctionBody(isGenerator, asyncContext) { - return isBlockOrArrow() ? parseFunctionBlockOrExpressionBody(isGenerator, asyncContext) : eatExplicitOrAutomaticSemicolon(false); - } - function parseModuleName() { - return currentToken().kind === 12 /* StringLiteral */ ? eatToken(12 /* StringLiteral */) : parseName(false); - } - function parseModuleDeclaration() { - var openBraceToken; - return new TypeScript.ModuleDeclarationSyntax(contextFlags, parseModifiers(), eatToken(69 /* ModuleKeyword */), parseModuleName(), openBraceToken = eatToken(74 /* OpenBraceToken */), openBraceToken.fullWidth() > 0 ? parseSyntaxList(2 /* ModuleDeclaration_ModuleElements */) : [], eatToken(75 /* CloseBraceToken */)); - } - function parseInterfaceDeclaration() { - return new TypeScript.InterfaceDeclarationSyntax(contextFlags, parseModifiers(), eatToken(54 /* InterfaceKeyword */), eatIdentifierToken(), tryParseTypeParameterList(false), parseHeritageClauses(false), parseObjectType()); - } - function parseObjectType() { - var openBraceToken; - return new TypeScript.ObjectTypeSyntax(contextFlags, openBraceToken = eatToken(74 /* OpenBraceToken */), openBraceToken.fullWidth() > 0 ? parseSeparatedSyntaxList(9 /* ObjectType_TypeMembers */) : [], eatToken(75 /* CloseBraceToken */)); - } - function parseTupleType(currentToken) { - return new TypeScript.TupleTypeSyntax(contextFlags, consumeToken(currentToken), parseSeparatedSyntaxList(20 /* TupleType_Types */), eatToken(79 /* CloseBracketToken */)); - } - function isTypeMember(inErrorRecovery) { - if (TypeScript.SyntaxUtilities.isTypeMember(currentNode())) { - return true; - } - return isCallSignature(0) || isConstructSignature() || isIndexSignature(0) || isMethodOrPropertySignature(inErrorRecovery); - } - function isMethodOrPropertySignature(inErrorRecovery) { - var _currentToken = currentToken(); - if (isModifier(_currentToken, 0)) { - var token1 = peekToken(1); - if (!TypeScript.existsNewLineBetweenTokens(_currentToken, token1, source.text) && isPropertyNameToken(token1, inErrorRecovery)) { - return false; - } - } - return isPropertyName(0, inErrorRecovery); - } - function tryParseTypeMember(inErrorRecovery) { - var node = currentNode(); - if (TypeScript.SyntaxUtilities.isTypeMember(node)) { - consumeNode(node); - return node; - } - if (isCallSignature(0)) { - return parseCallSignature(false, false, false); - } - else if (isConstructSignature()) { - return parseConstructSignature(); - } - else if (isIndexSignature(0)) { - return parseIndexSignature(); - } - else if (isMethodOrPropertySignature(inErrorRecovery)) { - var propertyName = parsePropertyName(); - var questionToken = tryEatToken(109 /* QuestionToken */); - if (isCallSignature(0)) { - return parseMethodSignature(propertyName, questionToken); - } - else { - return parsePropertySignature(propertyName, questionToken); - } - } - else { - return undefined; - } - } - function parseConstructSignature() { - return new TypeScript.ConstructSignatureSyntax(contextFlags, eatToken(33 /* NewKeyword */), parseCallSignature(false, false, false)); - } - function parseIndexSignature() { - return new TypeScript.IndexSignatureSyntax(contextFlags, eatToken(78 /* OpenBracketToken */), parseSeparatedSyntaxList(17 /* IndexSignature_Parameters */), eatToken(79 /* CloseBracketToken */), parseOptionalTypeAnnotation(false)); - } - function parseMethodSignature(propertyName, questionToken) { - return new TypeScript.MethodSignatureSyntax(contextFlags, propertyName, questionToken, parseCallSignature(false, false, false)); - } - function parsePropertySignature(propertyName, questionToken) { - return new TypeScript.PropertySignatureSyntax(contextFlags, propertyName, questionToken, parseOptionalTypeAnnotation(false)); - } - function isCallSignature(peekIndex) { - var tokenKind = peekToken(peekIndex).kind; - return tokenKind === 76 /* OpenParenToken */ || tokenKind === 84 /* LessThanToken */; - } - function isConstructSignature() { - if (currentToken().kind !== 33 /* NewKeyword */) { - return false; - } - return isCallSignature(1); - } - function isIndexSignature(peekIndex) { - if (peekToken(peekIndex).kind === 78 /* OpenBracketToken */) { - var token1 = peekToken(peekIndex + 1); - if (token1.kind === 81 /* DotDotDotToken */ || token1.kind === 79 /* CloseBracketToken */) { - return true; - } - if (isIdentifier(token1)) { - var token2 = peekToken(peekIndex + 2); - if (token2.kind === 110 /* ColonToken */ || token2.kind === 83 /* CommaToken */) { - return true; - } - } - if (token1.kind === 59 /* PublicKeyword */ || token1.kind === 57 /* PrivateKeyword */) { - var token2 = peekToken(peekIndex + 2); - return isIdentifier(token2); - } - } - return false; - } - function isHeritageClause() { - var tokenKind = currentToken().kind; - return tokenKind === 50 /* ExtendsKeyword */ || tokenKind === 53 /* ImplementsKeyword */; - } - function isNotHeritageClauseTypeName() { - var tokenKind = currentToken().kind; - if (tokenKind === 53 /* ImplementsKeyword */ || tokenKind === 50 /* ExtendsKeyword */) { - return isIdentifier(peekToken(1)); - } - return false; - } - function isHeritageClauseTypeName() { - if (isIdentifier(currentToken())) { - return !isNotHeritageClauseTypeName(); - } - return false; - } - function tryParseHeritageClause() { - var extendsOrImplementsKeyword = currentToken(); - var tokenKind = extendsOrImplementsKeyword.kind; - if (tokenKind !== 50 /* ExtendsKeyword */ && tokenKind !== 53 /* ImplementsKeyword */) { - return undefined; - } - return new TypeScript.HeritageClauseSyntax(contextFlags, consumeToken(extendsOrImplementsKeyword), parseSeparatedSyntaxList(11 /* HeritageClause_TypeNameList */)); - } - function isInterfaceEnumClassModuleImportOrExport(modifierCount, _currentToken) { - if (modifierCount) { - switch (peekToken(modifierCount).kind) { - case 51 /* ImportKeyword */: - case 69 /* ModuleKeyword */: - case 54 /* InterfaceKeyword */: - case 46 /* ClassKeyword */: - case 48 /* EnumKeyword */: - case 49 /* ExportKeyword */: - return true; - } - } - _currentToken = _currentToken || currentToken(); - var nextToken = peekToken(1); - switch (_currentToken.kind) { - case 69 /* ModuleKeyword */: - return isIdentifier(nextToken) || nextToken.kind === 12 /* StringLiteral */; - case 51 /* ImportKeyword */: - case 46 /* ClassKeyword */: - case 48 /* EnumKeyword */: - case 54 /* InterfaceKeyword */: - return isIdentifier(nextToken); - case 49 /* ExportKeyword */: - return nextToken.kind === 111 /* EqualsToken */; - } - return false; - } - function isStatement(modifierCount, inErrorRecovery) { - if (TypeScript.SyntaxUtilities.isStatement(currentNode())) { - return true; - } - var _currentToken = currentToken(); - var currentTokenKind = _currentToken.kind; - switch (currentTokenKind) { - case 59 /* PublicKeyword */: - case 57 /* PrivateKeyword */: - case 58 /* ProtectedKeyword */: - case 60 /* StaticKeyword */: - var token1 = peekToken(1); - if (TypeScript.SyntaxFacts.isIdentifierNameOrAnyKeyword(token1)) { - return false; - } - break; - case 30 /* IfKeyword */: - case 74 /* OpenBraceToken */: - case 35 /* ReturnKeyword */: - case 36 /* SwitchKeyword */: - case 38 /* ThrowKeyword */: - case 17 /* BreakKeyword */: - case 20 /* ContinueKeyword */: - case 28 /* ForKeyword */: - case 44 /* WhileKeyword */: - case 45 /* WithKeyword */: - case 24 /* DoKeyword */: - case 40 /* TryKeyword */: - case 21 /* DebuggerKeyword */: - return true; - } - if (isInterfaceEnumClassModuleImportOrExport(modifierCount, _currentToken)) { - return false; - } - return isLabeledStatement(_currentToken) || isVariableStatement(modifierCount) || isFunctionDeclaration(modifierCount) || isEmptyStatement(_currentToken, inErrorRecovery) || isExpressionStatement(_currentToken); - } - function parseStatement(inErrorRecovery) { - return tryParseStatement(inErrorRecovery) || parseExpressionStatement(); - } - function tryParseStatement(inErrorRecovery) { - var node = currentNode(); - if (TypeScript.SyntaxUtilities.isStatement(node)) { - consumeNode(node); - return node; - } - var _currentToken = currentToken(); - var currentTokenKind = _currentToken.kind; - return tryParseStatementWorker(_currentToken, currentTokenKind, modifierCount(), inErrorRecovery); - } - function tryParseStatementWorker(_currentToken, currentTokenKind, modifierCount, inErrorRecovery) { - switch (currentTokenKind) { - case 59 /* PublicKeyword */: - case 57 /* PrivateKeyword */: - case 58 /* ProtectedKeyword */: - case 60 /* StaticKeyword */: - if (TypeScript.SyntaxFacts.isIdentifierNameOrAnyKeyword(peekToken(1))) { - return undefined; - } - else { - break; - } - case 30 /* IfKeyword */: return parseIfStatement(_currentToken); - case 74 /* OpenBraceToken */: return parseStatementBlock(); - case 35 /* ReturnKeyword */: return parseReturnStatement(_currentToken); - case 36 /* SwitchKeyword */: return parseSwitchStatement(_currentToken); - case 38 /* ThrowKeyword */: return parseThrowStatement(_currentToken); - case 17 /* BreakKeyword */: return parseBreakStatement(_currentToken); - case 20 /* ContinueKeyword */: return parseContinueStatement(_currentToken); - case 28 /* ForKeyword */: return parseForOrForInStatement(_currentToken); - case 44 /* WhileKeyword */: return parseWhileStatement(_currentToken); - case 45 /* WithKeyword */: return parseWithStatement(_currentToken); - case 24 /* DoKeyword */: return parseDoStatement(_currentToken); - case 40 /* TryKeyword */: return parseTryStatement(_currentToken); - case 21 /* DebuggerKeyword */: return parseDebuggerStatement(_currentToken); - } - if (isInterfaceEnumClassModuleImportOrExport(modifierCount, _currentToken)) { - return undefined; - } - else if (isVariableStatement(modifierCount)) { - return parseVariableStatement(); - } - else if (isLabeledStatement(_currentToken)) { - return parseLabeledStatement(_currentToken); - } - else if (isFunctionDeclaration(modifierCount)) { - return parseFunctionDeclaration(); - } - else if (isEmptyStatement(_currentToken, inErrorRecovery)) { - return parseEmptyStatement(_currentToken); - } - else if (isExpressionStatement(_currentToken)) { - return parseExpressionStatement(); - } - else { - return undefined; - } - } - function parseDebuggerStatement(debuggerKeyword) { - return new TypeScript.DebuggerStatementSyntax(contextFlags, consumeToken(debuggerKeyword), eatExplicitOrAutomaticSemicolon(false)); - } - function parseDoStatement(doKeyword) { - return new TypeScript.DoStatementSyntax(contextFlags, consumeToken(doKeyword), parseStatement(false), eatToken(44 /* WhileKeyword */), eatToken(76 /* OpenParenToken */), allowInAnd(parseExpression), eatToken(77 /* CloseParenToken */), eatExplicitOrAutomaticSemicolon(true)); - } - function isLabeledStatement(currentToken) { - return isIdentifier(currentToken) && peekToken(1).kind === 110 /* ColonToken */; - } - function parseLabeledStatement(identifierToken) { - return new TypeScript.LabeledStatementSyntax(contextFlags, consumeToken(identifierToken), eatToken(110 /* ColonToken */), parseStatement(false)); - } - function parseTryStatement(tryKeyword) { - var tryKeyword = consumeToken(tryKeyword); - var savedListParsingState = listParsingState; - listParsingState |= (1 << 6 /* TryBlock_Statements */); - var block = parseStatementBlock(); - listParsingState = savedListParsingState; - var catchClause = undefined; - if (currentToken().kind === 19 /* CatchKeyword */) { - catchClause = parseCatchClause(); - } - var finallyClause = undefined; - if (!catchClause || currentToken().kind === 27 /* FinallyKeyword */) { - finallyClause = parseFinallyClause(); - } - return new TypeScript.TryStatementSyntax(contextFlags, tryKeyword, block, catchClause, finallyClause); - } - function parseCatchClauseBlock() { - var savedListParsingState = listParsingState; - listParsingState |= (1 << 7 /* CatchBlock_Statements */); - var block = parseStatementBlock(); - listParsingState = savedListParsingState; - return block; - } - function parseCatchClause() { - return new TypeScript.CatchClauseSyntax(contextFlags, eatToken(19 /* CatchKeyword */), eatToken(76 /* OpenParenToken */), eatIdentifierToken(), parseOptionalTypeAnnotation(false), eatToken(77 /* CloseParenToken */), parseCatchClauseBlock()); - } - function parseFinallyClause() { - return new TypeScript.FinallyClauseSyntax(contextFlags, eatToken(27 /* FinallyKeyword */), parseStatementBlock()); - } - function parseWithStatement(withKeyword) { - return new TypeScript.WithStatementSyntax(contextFlags, consumeToken(withKeyword), eatToken(76 /* OpenParenToken */), allowInAnd(parseExpression), eatToken(77 /* CloseParenToken */), parseStatement(false)); - } - function parseWhileStatement(whileKeyword) { - return new TypeScript.WhileStatementSyntax(contextFlags, consumeToken(whileKeyword), eatToken(76 /* OpenParenToken */), allowInAnd(parseExpression), eatToken(77 /* CloseParenToken */), parseStatement(false)); - } - function isEmptyStatement(currentToken, inErrorRecovery) { - if (inErrorRecovery) { - return false; - } - return currentToken.kind === 82 /* SemicolonToken */; - } - function parseEmptyStatement(semicolonToken) { - return new TypeScript.EmptyStatementSyntax(contextFlags, consumeToken(semicolonToken)); - } - function parseForOrForInStatement(forKeyword) { - forKeyword = consumeToken(forKeyword); - var openParenToken = eatToken(76 /* OpenParenToken */); - var _currentToken = currentToken(); - var tokenKind = _currentToken.kind; - var initializer = tokenKind === 82 /* SemicolonToken */ ? undefined : tokenKind === 42 /* VarKeyword */ ? disallowInAnd(parseVariableDeclaration) : disallowInAnd(parseExpression); - if (initializer !== undefined && currentToken().kind === 31 /* InKeyword */) { - return new TypeScript.ForInStatementSyntax(contextFlags, forKeyword, openParenToken, initializer, eatToken(31 /* InKeyword */), allowInAnd(parseExpression), eatToken(77 /* CloseParenToken */), parseStatement(false)); - } - else { - return new TypeScript.ForStatementSyntax(contextFlags, forKeyword, openParenToken, initializer, eatToken(82 /* SemicolonToken */), tryParseForStatementCondition(), eatToken(82 /* SemicolonToken */), tryParseForStatementIncrementor(), eatToken(77 /* CloseParenToken */), parseStatement(false)); - } - } - function tryParseForStatementCondition() { - var tokenKind = currentToken().kind; - if (tokenKind !== 82 /* SemicolonToken */ && tokenKind !== 77 /* CloseParenToken */ && tokenKind !== 8 /* EndOfFileToken */) { - return allowInAnd(parseExpression); - } - return undefined; - } - function tryParseForStatementIncrementor() { - var tokenKind = currentToken().kind; - if (tokenKind !== 77 /* CloseParenToken */ && tokenKind !== 8 /* EndOfFileToken */) { - return allowInAnd(parseExpression); - } - return undefined; - } - function tryEatBreakOrContinueLabel() { - var identifier = undefined; - if (!canEatExplicitOrAutomaticSemicolon(false)) { - if (isIdentifier(currentToken())) { - return eatIdentifierToken(); - } - } - return undefined; - } - function parseBreakStatement(breakKeyword) { - return new TypeScript.BreakStatementSyntax(contextFlags, consumeToken(breakKeyword), tryEatBreakOrContinueLabel(), eatExplicitOrAutomaticSemicolon(false)); - } - function parseContinueStatement(continueKeyword) { - return new TypeScript.ContinueStatementSyntax(contextFlags, consumeToken(continueKeyword), tryEatBreakOrContinueLabel(), eatExplicitOrAutomaticSemicolon(false)); - } - function parseSwitchExpression(openParenToken) { - return openParenToken.fullWidth() === 0 && currentToken().kind === 74 /* OpenBraceToken */ ? eatIdentifierToken() : allowInAnd(parseExpression); - } - function parseSwitchStatement(switchKeyword) { - var openParenToken; - var openBraceToken; - return new TypeScript.SwitchStatementSyntax(contextFlags, consumeToken(switchKeyword), openParenToken = eatToken(76 /* OpenParenToken */), parseSwitchExpression(openParenToken), eatToken(77 /* CloseParenToken */), openBraceToken = eatToken(74 /* OpenBraceToken */), openBraceToken.fullWidth() > 0 ? parseSyntaxList(3 /* SwitchStatement_SwitchClauses */) : [], eatToken(75 /* CloseBraceToken */)); - } - function isSwitchClause() { - if (TypeScript.SyntaxUtilities.isSwitchClause(currentNode())) { - return true; - } - var currentTokenKind = currentToken().kind; - return currentTokenKind === 18 /* CaseKeyword */ || currentTokenKind === 22 /* DefaultKeyword */; - } - function tryParseSwitchClause() { - var node = currentNode(); - if (TypeScript.SyntaxUtilities.isSwitchClause(node)) { - consumeNode(node); - return node; - } - var _currentToken = currentToken(); - var kind = _currentToken.kind; - if (kind === 18 /* CaseKeyword */) { - return parseCaseSwitchClause(_currentToken); - } - else if (kind === 22 /* DefaultKeyword */) { - return parseDefaultSwitchClause(_currentToken); - } - else { - return undefined; - } - } - function parseCaseSwitchClause(caseKeyword) { - return new TypeScript.CaseSwitchClauseSyntax(contextFlags, consumeToken(caseKeyword), allowInAnd(parseExpression), eatToken(110 /* ColonToken */), parseSyntaxList(4 /* SwitchClause_Statements */)); - } - function parseDefaultSwitchClause(defaultKeyword) { - return new TypeScript.DefaultSwitchClauseSyntax(contextFlags, consumeToken(defaultKeyword), eatToken(110 /* ColonToken */), parseSyntaxList(4 /* SwitchClause_Statements */)); - } - function parseThrowStatement(throwKeyword) { - return new TypeScript.ThrowStatementSyntax(contextFlags, consumeToken(throwKeyword), tryParseThrowStatementExpression(), eatExplicitOrAutomaticSemicolon(false)); - } - function tryParseThrowStatementExpression() { - return canEatExplicitOrAutomaticSemicolon(false) ? undefined : allowInAnd(parseExpression); - } - function parseReturnStatement(returnKeyword) { - return new TypeScript.ReturnStatementSyntax(contextFlags, consumeToken(returnKeyword), tryParseReturnStatementExpression(), eatExplicitOrAutomaticSemicolon(false)); - } - function tryParseReturnStatementExpression() { - return canEatExplicitOrAutomaticSemicolon(false) ? undefined : allowInAnd(parseExpression); - } - function isExpressionStatement(currentToken) { - var tokenKind = currentToken.kind; - return tokenKind !== 74 /* OpenBraceToken */ && tokenKind !== 29 /* FunctionKeyword */ && isExpression(currentToken); - } - function isAssignmentOrOmittedExpression() { - var _currentToken = currentToken(); - return _currentToken.kind === 83 /* CommaToken */ || isExpression(_currentToken); - } - function tryParseAssignmentOrOmittedExpression() { - if (currentToken().kind === 83 /* CommaToken */) { - return new TypeScript.OmittedExpressionSyntax(contextFlags); - } - return allowInAnd(tryParseAssignmentExpressionOrHigher); - } - function isExpression(currentToken) { - switch (currentToken.kind) { - case 11 /* NumericLiteral */: - case 12 /* StringLiteral */: - case 10 /* RegularExpressionLiteral */: - case 13 /* NoSubstitutionTemplateToken */: - case 14 /* TemplateStartToken */: - case 78 /* OpenBracketToken */: - case 76 /* OpenParenToken */: - case 84 /* LessThanToken */: - case 97 /* PlusPlusToken */: - case 98 /* MinusMinusToken */: - case 93 /* PlusToken */: - case 94 /* MinusToken */: - case 106 /* TildeToken */: - case 105 /* ExclamationToken */: - case 74 /* OpenBraceToken */: - case 89 /* EqualsGreaterThanToken */: - case 122 /* SlashToken */: - case 123 /* SlashEqualsToken */: - case 52 /* SuperKeyword */: - case 37 /* ThisKeyword */: - case 39 /* TrueKeyword */: - case 26 /* FalseKeyword */: - case 34 /* NullKeyword */: - case 33 /* NewKeyword */: - case 23 /* DeleteKeyword */: - case 43 /* VoidKeyword */: - case 41 /* TypeOfKeyword */: - case 29 /* FunctionKeyword */: - return true; - case 61 /* YieldKeyword */: - return true; - case 64 /* AwaitKeyword */: - return true; - case 63 /* AsyncKeyword */: - return true; - } - return isIdentifier(currentToken); - } - function parseExpressionStatement() { - return new TypeScript.ExpressionStatementSyntax(contextFlags, allowInAnd(parseExpression), eatExplicitOrAutomaticSemicolon(false)); - } - function parseIfStatement(ifKeyword) { - return new TypeScript.IfStatementSyntax(contextFlags, consumeToken(ifKeyword), eatToken(76 /* OpenParenToken */), allowInAnd(parseExpression), eatToken(77 /* CloseParenToken */), parseStatement(false), parseOptionalElseClause()); - } - function parseOptionalElseClause() { - return currentToken().kind === 25 /* ElseKeyword */ ? parseElseClause() : undefined; - } - function parseElseClause() { - return new TypeScript.ElseClauseSyntax(contextFlags, eatToken(25 /* ElseKeyword */), parseStatement(false)); - } - function isVariableStatement(modifierCount) { - return peekToken(modifierCount).kind === 42 /* VarKeyword */; - } - function parseVariableStatement() { - return new TypeScript.VariableStatementSyntax(contextFlags, parseModifiers(), allowInAnd(parseVariableDeclaration), eatExplicitOrAutomaticSemicolon(false)); - } - function parseVariableDeclaration() { - return new TypeScript.VariableDeclarationSyntax(contextFlags, eatToken(42 /* VarKeyword */), parseSeparatedSyntaxList(12 /* VariableDeclaration_VariableDeclarators */)); - } - function isVariableDeclarator() { - var node = currentNode(); - if (node && node.kind === 195 /* VariableDeclarator */) { - return true; - } - return isIdentifier(currentToken()); - } - function canReuseVariableDeclaratorNode(node) { - if (!node || node.kind !== 195 /* VariableDeclarator */) { - return false; - } - var variableDeclarator = node; - return variableDeclarator.equalsValueClause === undefined; - } - function tryParseVariableDeclarator() { - var node = currentNode(); - if (canReuseVariableDeclaratorNode(node)) { - consumeNode(node); - return node; - } - if (!isIdentifier(currentToken())) { - return undefined; - } - var propertyName = eatIdentifierToken(); - var equalsValueClause = undefined; - var typeAnnotation = undefined; - if (TypeScript.fullWidth(propertyName) > 0) { - typeAnnotation = parseOptionalTypeAnnotation(false); - if (isEqualsValueClause(false)) { - equalsValueClause = parseEqualsValueClause(); - } - } - return new TypeScript.VariableDeclaratorSyntax(contextFlags, propertyName, typeAnnotation, equalsValueClause); - } - function isEqualsValueClause(inParameter) { - var token0 = currentToken(); - if (token0.kind === 111 /* EqualsToken */) { - return true; - } - if (!token0.hasLeadingNewLine()) { - var tokenKind = token0.kind; - if (tokenKind === 89 /* EqualsGreaterThanToken */) { - return false; - } - if (tokenKind === 74 /* OpenBraceToken */ && inParameter) { - return false; - } - return isExpression(token0); - } - return false; - } - function parseEqualsValueClause() { - return new TypeScript.EqualsValueClauseSyntax(contextFlags, eatToken(111 /* EqualsToken */), parseAssignmentExpressionOrHigher()); - } - function parseExpression() { - var leftOperand = parseAssignmentExpressionOrHigher(); - while (true) { - var _currentToken = currentToken(); - if (_currentToken.kind !== 83 /* CommaToken */) { - break; - } - leftOperand = new TypeScript.BinaryExpressionSyntax(contextFlags, leftOperand, consumeToken(_currentToken), parseAssignmentExpressionOrHigher()); - } - return leftOperand; - } - function tryParseAssignmentExpressionOrHigher() { - return tryParseAssignmentExpressionOrHigherWorker(false); - } - function parseAssignmentExpressionOrHigher() { - return tryParseAssignmentExpressionOrHigherWorker(true); - } - function tryParseAssignmentExpressionOrHigherWorker(force) { - var _currentToken = currentToken(); - if (isYieldExpression(_currentToken)) { - return parseYieldExpression(_currentToken); - } - var arrowFunction = tryParseAnyArrowFunctionExpression(_currentToken); - if (arrowFunction) { - return arrowFunction; - } - var leftOperand = tryParseBinaryExpressionOrHigher(_currentToken, force, 1 /* Lowest */); - if (leftOperand === undefined) { - return undefined; - } - if (TypeScript.SyntaxUtilities.isLeftHandSizeExpression(leftOperand)) { - var operatorToken = currentOperatorToken(); - if (TypeScript.SyntaxFacts.isAssignmentOperatorToken(operatorToken.kind)) { - return new TypeScript.BinaryExpressionSyntax(contextFlags, leftOperand, consumeToken(operatorToken), parseAssignmentExpressionOrHigher()); - } - } - return parseConditionalExpressionRest(leftOperand); - } - function parsePossibleAwaitExpression(awaitKeyword) { - if (inAsyncContext()) { - return parseAwaitExpression(awaitKeyword); - } - if (isUnambiguouslyYieldOrAwaitExpression()) { - return parseAwaitExpression(awaitKeyword); - } - return tryParsePostfixExpressionOrHigher(awaitKeyword, true); - } - function parseAwaitExpression(awaitKeyword) { - return new TypeScript.AwaitExpressionSyntax(contextFlags, consumeToken(awaitKeyword), parseAssignmentExpressionOrHigher()); - } - function isYieldExpression(_currentToken) { - if (_currentToken.kind === 61 /* YieldKeyword */) { - if (inYieldContext()) { - return true; - } - if (inStrictModeContext()) { - return true; - } - return isUnambiguouslyYieldOrAwaitExpression(); - } - return false; - } - function isUnambiguouslyYieldOrAwaitExpression() { - var token1 = peekToken(1); - if (token1.hasLeadingNewLine()) { - return false; - } - if (isIdentifier(token1)) { - return true; - } - var currentTokenKind = token1.kind; - switch (currentTokenKind) { - case 37 /* ThisKeyword */: - case 39 /* TrueKeyword */: - case 26 /* FalseKeyword */: - case 34 /* NullKeyword */: - case 11 /* NumericLiteral */: - case 12 /* StringLiteral */: - case 29 /* FunctionKeyword */: - case 74 /* OpenBraceToken */: - case 33 /* NewKeyword */: - return true; - case 13 /* NoSubstitutionTemplateToken */: - case 14 /* TemplateStartToken */: - return false; - case 122 /* SlashToken */: - case 123 /* SlashEqualsToken */: - return false; - case 78 /* OpenBracketToken */: - return false; - case 76 /* OpenParenToken */: - return false; - default: - return false; - } - } - function parseYieldExpression(yieldKeyword) { - yieldKeyword = consumeToken(yieldKeyword); - var _currentToken = currentToken(); - if (!_currentToken.hasLeadingNewLine() && (_currentToken.kind === 95 /* AsteriskToken */ || isExpression(_currentToken))) { - return new TypeScript.YieldExpressionSyntax(contextFlags, yieldKeyword, tryEatToken(95 /* AsteriskToken */), parseAssignmentExpressionOrHigher()); - } - else { - return new TypeScript.YieldExpressionSyntax(contextFlags, yieldKeyword, undefined, undefined); - } - } - function tryParseAnyArrowFunctionExpression(_currentToken) { - return isSimpleArrowFunctionExpression(_currentToken) ? parseSimpleArrowFunctionExpression() : tryParseParenthesizedArrowFunctionExpression(); - } - function tryParseUnaryExpressionOrHigher(_currentToken, force) { - var currentTokenKind = _currentToken.kind; - switch (currentTokenKind) { - case 93 /* PlusToken */: - case 94 /* MinusToken */: - case 106 /* TildeToken */: - case 105 /* ExclamationToken */: - case 97 /* PlusPlusToken */: - case 98 /* MinusMinusToken */: - return new TypeScript.PrefixUnaryExpressionSyntax(contextFlags, consumeToken(_currentToken), tryParseUnaryExpressionOrHigher(currentToken(), true)); - case 41 /* TypeOfKeyword */: - return parseTypeOfExpression(_currentToken); - case 43 /* VoidKeyword */: - return parseVoidExpression(_currentToken); - case 23 /* DeleteKeyword */: - return parseDeleteExpression(_currentToken); - case 84 /* LessThanToken */: - return parseCastExpression(_currentToken); - case 64 /* AwaitKeyword */: - return parsePossibleAwaitExpression(_currentToken); - default: - return tryParsePostfixExpressionOrHigher(_currentToken, force); - } - } - function tryParseBinaryExpressionOrHigher(_currentToken, force, precedence) { - var leftOperand = tryParseUnaryExpressionOrHigher(_currentToken, force); - if (leftOperand === undefined) { - return undefined; - } - return parseBinaryExpressionRest(precedence, leftOperand); - } - function parseConditionalExpressionRest(leftOperand) { - var _currentToken = currentToken(); - if (_currentToken.kind !== 109 /* QuestionToken */) { - return leftOperand; - } - return new TypeScript.ConditionalExpressionSyntax(contextFlags, leftOperand, consumeToken(_currentToken), allowInAnd(parseAssignmentExpressionOrHigher), eatToken(110 /* ColonToken */), parseAssignmentExpressionOrHigher()); - } - function parseBinaryExpressionRest(precedence, leftOperand) { - while (true) { - var operatorToken = currentOperatorToken(); - var tokenKind = operatorToken.kind; - if (!TypeScript.SyntaxFacts.isBinaryExpressionOperatorToken(tokenKind) || tokenKind === 83 /* CommaToken */ || TypeScript.SyntaxFacts.isAssignmentOperatorToken(tokenKind)) { - break; - } - if (tokenKind === 31 /* InKeyword */ && inDisallowInContext()) { - break; - } - var newPrecedence = getBinaryExpressionPrecedence(tokenKind); - if (newPrecedence <= precedence) { - break; - } - leftOperand = new TypeScript.BinaryExpressionSyntax(contextFlags, leftOperand, consumeToken(operatorToken), tryParseBinaryExpressionOrHigher(currentToken(), true, newPrecedence)); - } - return leftOperand; - } - function currentOperatorToken() { - var token0 = currentToken(); - if (token0.kind === 85 /* GreaterThanToken */) { - return currentContextualToken(); - } - return token0; - } - function tryParseMemberExpressionOrHigher(_currentToken, force) { - var expression = tryParsePrimaryExpression(_currentToken, force); - if (expression === undefined) { - return undefined; - } - return parseMemberExpressionRest(expression); - } - function parseCallExpressionRest(expression) { - while (true) { - var _currentToken = currentToken(); - var currentTokenKind = _currentToken.kind; - switch (currentTokenKind) { - case 76 /* OpenParenToken */: - expression = new TypeScript.InvocationExpressionSyntax(contextFlags, expression, parseArgumentList(undefined, _currentToken)); - continue; - case 84 /* LessThanToken */: - var argumentList = tryParseArgumentList(); - if (argumentList === undefined) { - break; - } - expression = new TypeScript.InvocationExpressionSyntax(contextFlags, expression, argumentList); - continue; - case 78 /* OpenBracketToken */: - expression = parseElementAccessExpression(expression, _currentToken); - continue; - case 80 /* DotToken */: - expression = new TypeScript.MemberAccessExpressionSyntax(contextFlags, expression, consumeToken(_currentToken), eatIdentifierNameToken()); - continue; - case 13 /* NoSubstitutionTemplateToken */: - case 14 /* TemplateStartToken */: - expression = new TypeScript.TemplateAccessExpressionSyntax(contextFlags, expression, parseTemplateExpression(_currentToken)); - continue; - } - return expression; - } - } - function parseMemberExpressionRest(expression) { - while (true) { - var _currentToken = currentToken(); - var currentTokenKind = _currentToken.kind; - switch (currentTokenKind) { - case 78 /* OpenBracketToken */: - expression = parseElementAccessExpression(expression, _currentToken); - continue; - case 80 /* DotToken */: - expression = new TypeScript.MemberAccessExpressionSyntax(contextFlags, expression, consumeToken(_currentToken), eatIdentifierNameToken()); - continue; - case 13 /* NoSubstitutionTemplateToken */: - case 14 /* TemplateStartToken */: - expression = new TypeScript.TemplateAccessExpressionSyntax(contextFlags, expression, parseTemplateExpression(_currentToken)); - continue; - } - return expression; - } - } - function tryParseLeftHandSideExpressionOrHigher(_currentToken, force) { - var expression = undefined; - if (_currentToken.kind === 52 /* SuperKeyword */) { - expression = parseSuperExpression(_currentToken); - } - else { - expression = tryParseMemberExpressionOrHigher(_currentToken, force); - if (expression === undefined) { - return undefined; - } - } - return parseCallExpressionRest(expression); - } - function parseSuperExpression(superToken) { - var expression = consumeToken(superToken); - var currentTokenKind = currentToken().kind; - return currentTokenKind === 76 /* OpenParenToken */ || currentTokenKind === 80 /* DotToken */ ? expression : new TypeScript.MemberAccessExpressionSyntax(contextFlags, expression, eatToken(80 /* DotToken */), eatIdentifierNameToken()); - } - function tryParsePostfixExpressionOrHigher(_currentToken, force) { - var expression = tryParseLeftHandSideExpressionOrHigher(_currentToken, force); - if (expression === undefined) { - return undefined; - } - var _currentToken = currentToken(); - var currentTokenKind = _currentToken.kind; - switch (currentTokenKind) { - case 97 /* PlusPlusToken */: - case 98 /* MinusMinusToken */: - if (_currentToken.hasLeadingNewLine()) { - break; - } - return new TypeScript.PostfixUnaryExpressionSyntax(contextFlags, expression, consumeToken(_currentToken)); - } - return expression; - } - function tryParseGenericArgumentList() { - var rewindPoint = getRewindPoint(); - var typeArgumentList = tryParseTypeArgumentList(true); - var token0 = currentToken(); - var tokenKind = token0.kind; - var isOpenParen = tokenKind === 76 /* OpenParenToken */; - var isDot = tokenKind === 80 /* DotToken */; - var isOpenParenOrDot = isOpenParen || isDot; - var argumentList = undefined; - if (!typeArgumentList || !isOpenParenOrDot) { - rewind(rewindPoint); - releaseRewindPoint(rewindPoint); - return undefined; - } - else { - TypeScript.Debug.assert(typeArgumentList && isOpenParenOrDot); - releaseRewindPoint(rewindPoint); - if (isDot) { - return new TypeScript.ArgumentListSyntax(contextFlags, typeArgumentList, createMissingToken(76 /* OpenParenToken */, undefined, TypeScript.DiagnosticCode.A_parameter_list_must_follow_a_generic_type_argument_list_expected), [], eatToken(77 /* CloseParenToken */)); - } - else { - TypeScript.Debug.assert(token0.kind === 76 /* OpenParenToken */); - return parseArgumentList(typeArgumentList, token0); - } - } - } - function tryParseArgumentList() { - var _currentToken = currentToken(); - var tokenKind = _currentToken.kind; - if (tokenKind === 84 /* LessThanToken */) { - return tryParseGenericArgumentList(); - } - if (tokenKind === 76 /* OpenParenToken */) { - return parseArgumentList(undefined, _currentToken); - } - return undefined; - } - function parseArgumentList(typeArgumentList, openParenToken) { - TypeScript.Debug.assert(openParenToken.kind === 76 /* OpenParenToken */ && openParenToken.fullWidth() > 0); - return new TypeScript.ArgumentListSyntax(contextFlags, typeArgumentList, consumeToken(openParenToken), parseSeparatedSyntaxList(13 /* ArgumentList_AssignmentExpressions */), eatToken(77 /* CloseParenToken */)); - } - function tryParseArgumentListExpression() { - var force = currentToken().kind === 83 /* CommaToken */; - return allowInAnd(force ? parseAssignmentExpressionOrHigher : tryParseAssignmentExpressionOrHigher); - } - function parseElementAccessArgumentExpression(openBracketToken) { - return currentToken().kind === 79 /* CloseBracketToken */ ? undefined : allowInAnd(parseExpression); - } - function parseElementAccessExpression(expression, openBracketToken) { - return new TypeScript.ElementAccessExpressionSyntax(contextFlags, expression, consumeToken(openBracketToken), parseElementAccessArgumentExpression(openBracketToken), eatToken(79 /* CloseBracketToken */)); - } - function tryParsePrimaryExpression(_currentToken, force) { - if (_currentToken.kind === 63 /* AsyncKeyword */) { - var token1 = peekToken(1); - if (!token1.hasLeadingNewLine() && token1.kind === 29 /* FunctionKeyword */) { - return parseFunctionExpression(); - } - } - if (isIdentifier(_currentToken)) { - return eatIdentifierToken(); - } - var currentTokenKind = _currentToken.kind; - switch (currentTokenKind) { - case 37 /* ThisKeyword */: - case 39 /* TrueKeyword */: - case 26 /* FalseKeyword */: - case 34 /* NullKeyword */: - case 11 /* NumericLiteral */: - case 10 /* RegularExpressionLiteral */: - case 12 /* StringLiteral */: - return consumeToken(_currentToken); - case 29 /* FunctionKeyword */: - return parseFunctionExpression(); - case 78 /* OpenBracketToken */: - return parseArrayLiteralExpression(_currentToken); - case 74 /* OpenBraceToken */: - return parseObjectLiteralExpression(_currentToken); - case 76 /* OpenParenToken */: - return parseParenthesizedExpression(_currentToken); - case 33 /* NewKeyword */: - return parseObjectCreationExpression(_currentToken); - case 13 /* NoSubstitutionTemplateToken */: - case 14 /* TemplateStartToken */: - return parseTemplateExpression(_currentToken); - case 122 /* SlashToken */: - case 123 /* SlashEqualsToken */: - return reparseDivideAsRegularExpression(); - } - if (!force) { - return undefined; - } - return eatIdentifierToken(TypeScript.DiagnosticCode.Expression_expected); - } - function reparseDivideAsRegularExpression() { - var currentToken = currentContextualToken(); - var tokenKind = currentToken.kind; - TypeScript.Debug.assert(tokenKind === 10 /* RegularExpressionLiteral */); - return consumeToken(currentToken); - } - function parseTypeOfExpression(typeOfKeyword) { - return new TypeScript.TypeOfExpressionSyntax(contextFlags, consumeToken(typeOfKeyword), tryParseUnaryExpressionOrHigher(currentToken(), true)); - } - function parseDeleteExpression(deleteKeyword) { - return new TypeScript.DeleteExpressionSyntax(contextFlags, consumeToken(deleteKeyword), tryParseUnaryExpressionOrHigher(currentToken(), true)); - } - function parseVoidExpression(voidKeyword) { - return new TypeScript.VoidExpressionSyntax(contextFlags, consumeToken(voidKeyword), tryParseUnaryExpressionOrHigher(currentToken(), true)); - } - function parseFunctionExpression() { - var asyncKeyword; - var asteriskToken; - return new TypeScript.FunctionExpressionSyntax(contextFlags, asyncKeyword = tryEatToken(63 /* AsyncKeyword */), eatToken(29 /* FunctionKeyword */), asteriskToken = tryEatToken(95 /* AsteriskToken */), tryEatFunctionExpressionIdentifier(!!asteriskToken, !!asyncKeyword), parseCallSignature(false, !!asteriskToken, !!asyncKeyword), parseFunctionBody(!!asteriskToken, !!asyncKeyword)); - } - function tryEatFunctionExpressionIdentifier(yieldContext, asyncContext) { - var savedYieldContext = inYieldContext(); - var savedAsyncContext = inAsyncContext(); - setYieldContext(yieldContext); - setAsyncContext(asyncContext); - var result = eatOptionalIdentifierToken(); - setYieldContext(savedYieldContext); - setAsyncContext(savedAsyncContext); - return result; - } - function parseObjectCreationExpression(newKeyword) { - return new TypeScript.ObjectCreationExpressionSyntax(contextFlags, consumeToken(newKeyword), tryParseMemberExpressionOrHigher(currentToken(), true), tryParseArgumentList()); - } - function parseTemplateExpression(startToken) { - startToken = consumeToken(startToken); - if (startToken.kind === 13 /* NoSubstitutionTemplateToken */) { - return startToken; - } - var templateClauses = []; - do { - templateClauses.push(parseTemplateClause()); - } while (templateClauses[templateClauses.length - 1].templateMiddleOrEndToken.kind === 15 /* TemplateMiddleToken */); - return new TypeScript.TemplateExpressionSyntax(contextFlags, startToken, TypeScript.Syntax.list(templateClauses)); - } - function parseTemplateClause() { - var expression = allowInAnd(parseExpression); - var token = currentToken(); - if (token.kind === 75 /* CloseBraceToken */) { - token = currentContextualToken(); - TypeScript.Debug.assert(token.kind === 15 /* TemplateMiddleToken */ || token.kind === 16 /* TemplateEndToken */); - token = consumeToken(token); - } - else { - token = createMissingToken(16 /* TemplateEndToken */, undefined, TypeScript.DiagnosticCode._0_expected, ["{"]); - } - return new TypeScript.TemplateClauseSyntax(contextFlags, expression, token); - } - function parseCastExpression(lessThanToken) { - return new TypeScript.CastExpressionSyntax(contextFlags, consumeToken(lessThanToken), parseType(), eatToken(85 /* GreaterThanToken */), tryParseUnaryExpressionOrHigher(currentToken(), true)); - } - function parseParenthesizedExpression(openParenToken) { - return new TypeScript.ParenthesizedExpressionSyntax(contextFlags, consumeToken(openParenToken), allowInAnd(parseExpression), eatToken(77 /* CloseParenToken */)); - } - function tryParseParenthesizedArrowFunctionExpression() { - var tokenKind = currentToken().kind; - if (tokenKind !== 63 /* AsyncKeyword */ && tokenKind !== 76 /* OpenParenToken */ && tokenKind !== 84 /* LessThanToken */) { - return undefined; - } - if (isDefinitelyArrowFunctionExpression()) { - return tryParseParenthesizedArrowFunctionExpressionWorker(false); - } - if (!isPossiblyArrowFunctionExpression()) { - return undefined; - } - var rewindPoint = getRewindPoint(); - var arrowFunction = tryParseParenthesizedArrowFunctionExpressionWorker(true); - if (arrowFunction === undefined) { - rewind(rewindPoint); - } - releaseRewindPoint(rewindPoint); - return arrowFunction; - } - function tryParseParenthesizedArrowFunctionExpressionWorker(requireArrow) { - var asyncKeyword = tryEatToken(63 /* AsyncKeyword */); - var callSignature = parseCallSignature(true, inYieldContext(), !!asyncKeyword); - if (requireArrow && currentToken().kind !== 89 /* EqualsGreaterThanToken */) { - return undefined; - } - return new TypeScript.ParenthesizedArrowFunctionExpressionSyntax(contextFlags, asyncKeyword, callSignature, eatToken(89 /* EqualsGreaterThanToken */), parseArrowFunctionBody(!!asyncKeyword)); - } - function parseArrowFunctionBody(asyncContext) { - if (currentToken().kind === 74 /* OpenBraceToken */) { - return parseFunctionBlock(false, asyncContext, undefined); - } - var _modifierCount = modifierCount(); - if (isStatement(_modifierCount, false) && !isExpression(currentToken())) { - return new TypeScript.BlockSyntax(contextFlags, undefined, eatToken(74 /* OpenBraceToken */), parseFunctionBlockStatements(false, asyncContext), eatToken(75 /* CloseBraceToken */)); - } - return asyncContext ? doInsideAsyncContext(parseAssignmentExpressionOrHigher) : doOutsideAsyncContext(parseAssignmentExpressionOrHigher); - } - function isSimpleArrowFunctionExpression(_currentToken) { - if (_currentToken.kind === 89 /* EqualsGreaterThanToken */) { - return true; - } - if (_currentToken.kind === 63 /* AsyncKeyword */) { - var token1 = peekToken(1); - if (!token1.hasLeadingNewLine() && isIdentifier(peekToken(1))) { - return true; - } - } - return isIdentifier(_currentToken) && peekToken(1).kind === 89 /* EqualsGreaterThanToken */; - } - function parseSimpleArrowFunctionExpression() { - var asyncKeyword; - return new TypeScript.SimpleArrowFunctionExpressionSyntax(contextFlags, asyncKeyword = tryEatToken(63 /* AsyncKeyword */), asyncKeyword ? doInsideAsyncContext(eatSimpleParameter) : doOutsideAsyncContext(eatSimpleParameter), eatToken(89 /* EqualsGreaterThanToken */), parseArrowFunctionBody(!!asyncKeyword)); - } - function isFunctionBlock() { - var currentTokenKind = currentToken().kind; - return currentTokenKind === 74 /* OpenBraceToken */ || currentTokenKind === 89 /* EqualsGreaterThanToken */; - } - function isBlockOrArrow() { - var _currentToken = currentToken(); - return _currentToken.kind === 74 /* OpenBraceToken */ || _currentToken.kind === 89 /* EqualsGreaterThanToken */; - } - function isDefinitelyArrowFunctionExpression() { - var peekIndex = 0; - if (currentToken().kind === 63 /* AsyncKeyword */) { - if (peekToken(1).hasLeadingNewLine()) { - return false; - } - peekIndex++; - } - var token0 = peekToken(peekIndex); - if (token0.kind !== 76 /* OpenParenToken */) { - return false; - } - var token1 = peekToken(peekIndex + 1); - var token1Kind = token1.kind; - var token2; - if (token1Kind === 77 /* CloseParenToken */) { - token2 = peekToken(peekIndex + 2); - var token2Kind = token2.kind; - return token2Kind === 110 /* ColonToken */ || token2Kind === 89 /* EqualsGreaterThanToken */ || token2Kind === 74 /* OpenBraceToken */; - } - if (token1Kind === 81 /* DotDotDotToken */) { - return true; - } - token2 = peekToken(peekIndex + 2); - token2Kind = token2.kind; - if (TypeScript.SyntaxFacts.isAccessibilityModifier(token1Kind)) { - if (isIdentifier(token2)) { - return true; - } - } - if (!isIdentifier(token1)) { - return false; - } - if (token2Kind === 110 /* ColonToken */) { - return true; - } - var token3 = peekToken(peekIndex + 3); - var token3Kind = token3.kind; - if (token2Kind === 109 /* QuestionToken */) { - if (token3Kind === 110 /* ColonToken */ || token3Kind === 77 /* CloseParenToken */ || token3Kind === 83 /* CommaToken */) { - return true; - } - } - if (token2Kind === 77 /* CloseParenToken */) { - if (token3Kind === 89 /* EqualsGreaterThanToken */) { - return true; - } - } - return false; - } - function isPossiblyArrowFunctionExpression() { - var peekIndex = 0; - if (currentToken().kind === 63 /* AsyncKeyword */) { - if (peekToken(1).hasLeadingNewLine()) { - return false; - } - peekIndex++; - } - var token0 = peekToken(peekIndex); - if (token0.kind !== 76 /* OpenParenToken */) { - return true; - } - var token1 = peekToken(peekIndex + 1); - if (!isIdentifier(token1)) { - return false; - } - var token2 = peekToken(peekIndex + 2); - var token2Kind = token2.kind; - if (token2Kind === 111 /* EqualsToken */) { - return true; - } - if (token2Kind === 83 /* CommaToken */) { - return true; - } - if (token2Kind === 77 /* CloseParenToken */) { - var token3 = peekToken(peekIndex + 3); - if (token3.kind === 110 /* ColonToken */) { - return true; - } - } - return false; - } - function parseObjectLiteralExpression(openBraceToken) { - return new TypeScript.ObjectLiteralExpressionSyntax(contextFlags, consumeToken(openBraceToken), parseSeparatedSyntaxList(14 /* ObjectLiteralExpression_PropertyAssignments */), eatToken(75 /* CloseBraceToken */)); - } - function tryParsePropertyAssignment(inErrorRecovery) { - var modifiers = parseModifiers(); - if (isAccessor(inErrorRecovery)) { - return parseAccessor(modifiers); - } - var _currentToken = currentToken(); - if (modifiers.length === 0) { - if (isIdentifier(_currentToken)) { - var token1 = peekToken(1); - if (token1.kind !== 110 /* ColonToken */ && token1.kind !== 76 /* OpenParenToken */ && token1.kind !== 84 /* LessThanToken */) { - return eatIdentifierToken(); - } - } - } - if (modifiers.length > 0 || _currentToken.kind === 95 /* AsteriskToken */ || isPropertyName(0, inErrorRecovery)) { - var asterixToken = tryEatToken(95 /* AsteriskToken */); - var propertyName = parsePropertyName(); - if (modifiers.length > 0 || asterixToken !== undefined || isCallSignature(0)) { - return parseMemberFunctionDeclaration(modifiers, asterixToken, propertyName); - } - else { - return new TypeScript.PropertyAssignmentSyntax(contextFlags, propertyName, eatToken(110 /* ColonToken */), allowInAnd(parseAssignmentExpressionOrHigher)); - } - } - return undefined; - } - function isPropertyAssignment(inErrorRecovery) { - return isAtModifier() || isAccessor(inErrorRecovery) || currentToken().kind === 95 /* AsteriskToken */ || isPropertyName(0, inErrorRecovery); - } - function isPropertyName(peekIndex, inErrorRecovery) { - var token = peekToken(peekIndex); - if (token.kind === 78 /* OpenBracketToken */) { - return !isIndexSignature(peekIndex); - } - return isPropertyNameToken(token, inErrorRecovery); - } - function isPropertyNameToken(token, inErrorRecovery) { - if (TypeScript.SyntaxFacts.isIdentifierNameOrAnyKeyword(token)) { - if (inErrorRecovery) { - return isIdentifier(token); - } - else { - return true; - } - } - return isLiteralPropertyName(token); - } - function isLiteralPropertyName(token) { - var kind = token.kind; - return kind === 12 /* StringLiteral */ || kind === 11 /* NumericLiteral */ || kind === 13 /* NoSubstitutionTemplateToken */; - } - function parsePropertyName() { - var _currentToken = currentToken(); - if (_currentToken.kind === 78 /* OpenBracketToken */) { - return inGeneratorParameterContext() ? doOutsideYieldContext(parseComputedPropertyName) : parseComputedPropertyName(); - } - else if (TypeScript.SyntaxFacts.isIdentifierNameOrAnyKeyword(_currentToken)) { - return eatIdentifierNameToken(); - } - else if (isLiteralPropertyName(_currentToken)) { - return consumeToken(_currentToken); - } - else { - return eatIdentifierToken(); - } - } - function parseComputedPropertyName() { - return new TypeScript.ComputedPropertyNameSyntax(contextFlags, eatToken(78 /* OpenBracketToken */), allowInAnd(parseExpression), eatToken(79 /* CloseBracketToken */)); - } - function parseArrayLiteralExpression(openBracketToken) { - return new TypeScript.ArrayLiteralExpressionSyntax(contextFlags, consumeToken(openBracketToken), parseSeparatedSyntaxList(15 /* ArrayLiteralExpression_AssignmentExpressions */), eatToken(79 /* CloseBracketToken */)); - } - function parseStatementBlock() { - var openBraceToken; - return new TypeScript.BlockSyntax(contextFlags, tryEatToken(89 /* EqualsGreaterThanToken */), openBraceToken = eatToken(74 /* OpenBraceToken */), openBraceToken.fullWidth() > 0 ? parseSyntaxList(5 /* Block_Statements */) : [], eatToken(75 /* CloseBraceToken */)); - } - function parseFunctionBlockOrExpressionBody(yieldContext, asyncContext) { - var equalsGreaterThanToken = tryEatToken(89 /* EqualsGreaterThanToken */); - if (equalsGreaterThanToken) { - if (isExpression(currentToken())) { - return new TypeScript.ExpressionBody(contextFlags, equalsGreaterThanToken, parseExpression()); - } - } - return parseFunctionBlock(yieldContext, asyncContext, equalsGreaterThanToken); - } - function parseFunctionBlock(yieldContext, asyncContext, equalsGreaterThanToken) { - var openBraceToken; - return new TypeScript.BlockSyntax(contextFlags, equalsGreaterThanToken, openBraceToken = eatToken(74 /* OpenBraceToken */), equalsGreaterThanToken || openBraceToken.fullWidth() > 0 ? parseFunctionBlockStatements(yieldContext, asyncContext) : [], eatToken(75 /* CloseBraceToken */)); - } - function parseFunctionBlockStatements(yieldContext, asyncContext) { - var savedStrictModeContext = inStrictModeContext(); - var savedYieldContext = inYieldContext(); - var savedAsyncContext = inAsyncContext(); - setYieldContext(yieldContext); - setAsyncContext(asyncContext); - var statements = parseSyntaxList(5 /* Block_Statements */, updateStrictModeState); - setStrictModeContext(savedStrictModeContext); - setYieldContext(savedYieldContext); - setAsyncContext(savedAsyncContext); - return statements; - } - function parseCallSignature(requireCompleteTypeParameterList, yieldAndGeneratorParameterContext, asyncContext) { - return new TypeScript.CallSignatureSyntax(contextFlags, tryParseTypeParameterList(requireCompleteTypeParameterList), parseParameterList(yieldAndGeneratorParameterContext, asyncContext), parseOptionalTypeAnnotation(false)); - } - function tryParseTypeParameterList(requireCompleteTypeParameterList) { - var _currentToken = currentToken(); - if (_currentToken.kind !== 84 /* LessThanToken */) { - return undefined; - } - var rewindPoint = getRewindPoint(); - var lessThanToken = consumeToken(_currentToken); - var typeParameters = parseSeparatedSyntaxList(19 /* TypeParameterList_TypeParameters */); - var greaterThanToken = eatToken(85 /* GreaterThanToken */); - if (requireCompleteTypeParameterList && greaterThanToken.fullWidth() === 0) { - rewind(rewindPoint); - releaseRewindPoint(rewindPoint); - return undefined; - } - else { - releaseRewindPoint(rewindPoint); - return new TypeScript.TypeParameterListSyntax(contextFlags, lessThanToken, typeParameters, greaterThanToken); - } - } - function isTypeParameter() { - return isIdentifier(currentToken()); - } - function tryParseTypeParameter() { - if (!isIdentifier(currentToken())) { - return undefined; - } - return new TypeScript.TypeParameterSyntax(contextFlags, eatIdentifierToken(), tryParseConstraint()); - } - function tryParseConstraint() { - if (currentToken().kind !== 50 /* ExtendsKeyword */) { - return undefined; - } - return new TypeScript.ConstraintSyntax(contextFlags, eatToken(50 /* ExtendsKeyword */), parseTypeOrExpression()); - } - function parseParameterList(yieldAndGeneratorParameterContext, asyncContext) { - var savedYieldContext = inYieldContext(); - var savedGeneratorParameterContext = inGeneratorParameterContext(); - var savedAsyncContext = inAsyncContext(); - setYieldContext(yieldAndGeneratorParameterContext); - setGeneratorParameterContext(yieldAndGeneratorParameterContext); - setAsyncContext(asyncContext); - var openParenToken; - var result = new TypeScript.ParameterListSyntax(contextFlags, openParenToken = eatToken(76 /* OpenParenToken */), openParenToken.fullWidth() > 0 ? parseSeparatedSyntaxList(16 /* ParameterList_Parameters */) : [], eatToken(77 /* CloseParenToken */)); - setYieldContext(savedYieldContext); - setGeneratorParameterContext(savedGeneratorParameterContext); - setAsyncContext(savedAsyncContext); - return result; - } - function parseOptionalTypeAnnotation(allowStringLiteral) { - return currentToken().kind === 110 /* ColonToken */ ? parseTypeAnnotation(allowStringLiteral) : undefined; - } - function parseTypeAnnotationType(allowStringLiteral) { - if (allowStringLiteral) { - var _currentToken = currentToken(); - if (_currentToken.kind === 12 /* StringLiteral */) { - return consumeToken(_currentToken); - } - } - return parseType(); - } - function parseTypeAnnotation(allowStringLiteral) { - return new TypeScript.TypeAnnotationSyntax(contextFlags, consumeToken(currentToken()), parseTypeAnnotationType(allowStringLiteral)); - } - function isType() { - var _currentToken = currentToken(); - switch (_currentToken.kind) { - case 41 /* TypeOfKeyword */: - case 62 /* AnyKeyword */: - case 71 /* NumberKeyword */: - case 65 /* BooleanKeyword */: - case 73 /* StringKeyword */: - case 43 /* VoidKeyword */: - case 74 /* OpenBraceToken */: - case 76 /* OpenParenToken */: - case 84 /* LessThanToken */: - case 33 /* NewKeyword */: - return true; - default: - return isIdentifier(_currentToken); - } - } - function parseTypeOrExpression() { - var result = tryParseType(); - if (result) { - return result; - } - var _currentToken = currentToken(); - if (isExpression(_currentToken)) { - return tryParseUnaryExpressionOrHigher(_currentToken, true); - } - return eatIdentifierToken(TypeScript.DiagnosticCode.Type_expected); - } - function parseType() { - return tryParseType() || eatIdentifierToken(TypeScript.DiagnosticCode.Type_expected); - } - function tryParseType() { - var savedYieldContext = inYieldContext(); - var savedGeneratorParameterContext = inGeneratorParameterContext(); - setYieldContext(false); - setGeneratorParameterContext(false); - var result = tryParseTypeWorker(); - setYieldContext(savedYieldContext); - setGeneratorParameterContext(savedGeneratorParameterContext); - return result; - } - function tryParseTypeWorker() { - if (isFunctionType()) { - return parseFunctionType(); - } - if (currentToken().kind === 33 /* NewKeyword */) { - return parseConstructorType(); - } - return tryParseUnionTypeOrHigher(); - } - function tryParseUnionTypeOrHigher() { - var type = tryParsePrimaryType(); - if (type) { - var barToken; - while ((barToken = currentToken()).kind === 103 /* BarToken */) { - type = new TypeScript.UnionTypeSyntax(contextFlags, type, consumeToken(barToken), parsePrimaryType()); - } - } - return type; - } - function parsePrimaryType() { - return tryParsePrimaryType() || eatIdentifierToken(TypeScript.DiagnosticCode.Type_expected); - } - function tryParsePrimaryType() { - var type = tryParseNonArrayType(); - while (type) { - var _currentToken = currentToken(); - if (_currentToken.hasLeadingNewLine() || _currentToken.kind !== 78 /* OpenBracketToken */) { - break; - } - type = new TypeScript.ArrayTypeSyntax(contextFlags, type, consumeToken(_currentToken), eatToken(79 /* CloseBracketToken */)); - } - return type; - } - function parseTypeQuery(typeOfKeyword) { - return new TypeScript.TypeQuerySyntax(contextFlags, consumeToken(typeOfKeyword), parseName(true)); - } - function tryParseNonArrayType() { - var _currentToken = currentToken(); - switch (_currentToken.kind) { - case 62 /* AnyKeyword */: - case 71 /* NumberKeyword */: - case 65 /* BooleanKeyword */: - case 73 /* StringKeyword */: - if (peekToken(1).kind === 80 /* DotToken */) { - break; - } - return consumeToken(_currentToken); - case 43 /* VoidKeyword */: return consumeToken(_currentToken); - case 76 /* OpenParenToken */: return parseParenthesizedType(_currentToken); - case 74 /* OpenBraceToken */: return parseObjectType(); - case 41 /* TypeOfKeyword */: return parseTypeQuery(_currentToken); - case 78 /* OpenBracketToken */: return parseTupleType(_currentToken); - } - return tryParseNameOrGenericType(); - } - function parseParenthesizedType(openParenToken) { - return new TypeScript.ParenthesizedTypeSyntax(contextFlags, consumeToken(openParenToken), parseType(), eatToken(77 /* CloseParenToken */)); - } - function tryParseNameOrGenericType() { - var name = tryParseName(false); - if (name === undefined) { - return undefined; - } - if (currentToken().hasLeadingNewLine()) { - return name; - } - var typeArgumentList = tryParseTypeArgumentList(false); - return !typeArgumentList ? name : new TypeScript.GenericTypeSyntax(contextFlags, name, typeArgumentList); - } - function isFunctionType() { - var token0 = currentToken(); - var token0Kind = token0.kind; - if (token0Kind === 84 /* LessThanToken */) { - return true; - } - if (token0Kind === 76 /* OpenParenToken */) { - var token1 = peekToken(1); - var token1Kind = token1.kind; - if (token1Kind === 77 /* CloseParenToken */ || token1Kind === 81 /* DotDotDotToken */) { - return true; - } - if (isModifierKind(token1Kind) || isIdentifier(token1)) { - var token2 = peekToken(2); - var token2Kind = token2.kind; - if (token2Kind === 110 /* ColonToken */ || token2Kind === 83 /* CommaToken */ || token2Kind === 109 /* QuestionToken */ || token2Kind === 111 /* EqualsToken */ || isIdentifier(token2) || isModifierKind(token2Kind)) { - return true; - } - if (token2Kind === 77 /* CloseParenToken */) { - return peekToken(3).kind === 89 /* EqualsGreaterThanToken */; - } - } - } - return false; - } - function parseFunctionType() { - return new TypeScript.FunctionTypeSyntax(contextFlags, tryParseTypeParameterList(false), parseParameterList(false, false), eatToken(89 /* EqualsGreaterThanToken */), parseType()); - } - function parseConstructorType() { - return new TypeScript.ConstructorTypeSyntax(contextFlags, eatToken(33 /* NewKeyword */), tryParseTypeParameterList(false), parseParameterList(false, false), eatToken(89 /* EqualsGreaterThanToken */), parseType()); - } - function isParameter() { - if (currentNode() && currentNode().kind === 210 /* Parameter */) { - return true; - } - return isParameterHelper(currentToken()); - } - function isParameterHelper(token) { - var tokenKind = token.kind; - return tokenKind === 81 /* DotDotDotToken */ || isModifierKind(tokenKind) || isIdentifier(token); - } - function eatSimpleParameter() { - return new TypeScript.ParameterSyntax(contextFlags, undefined, [], eatIdentifierToken(), undefined, undefined, undefined); - } - function tryParseParameter() { - var node = currentNode(); - if (node && node.kind === 210 /* Parameter */) { - consumeNode(node); - return node; - } - var dotDotDotToken = tryEatToken(81 /* DotDotDotToken */); - var modifiers = parseModifiers(); - var _currentToken = currentToken(); - if (!isIdentifier(_currentToken) && !dotDotDotToken && modifiers.length === 0) { - if (isModifierKind(_currentToken.kind)) { - modifiers = TypeScript.Syntax.list([consumeToken(_currentToken)]); - } - else { - return undefined; - } - } - var identifier = inGeneratorParameterContext() ? doInsideYieldContext(eatIdentifierToken) : eatIdentifierToken(); - var questionToken = tryEatToken(109 /* QuestionToken */); - var typeAnnotation = parseOptionalTypeAnnotation(true); - var equalsValueClause = undefined; - if (isEqualsValueClause(true)) { - equalsValueClause = inGeneratorParameterContext() ? doOutsideYieldContext(parseEqualsValueClause) : parseEqualsValueClause(); - } - return new TypeScript.ParameterSyntax(contextFlags, dotDotDotToken, modifiers, identifier, questionToken, typeAnnotation, equalsValueClause); - } - function parseSyntaxList(currentListType, processItems) { - var savedListParsingState = listParsingState; - listParsingState |= (1 << currentListType); - var result = parseSyntaxListWorker(currentListType, processItems); - listParsingState = savedListParsingState; - return result; - } - function parseSeparatedSyntaxList(currentListType) { - var savedListParsingState = listParsingState; - listParsingState |= (1 << currentListType); - var result = parseSeparatedSyntaxListWorker(currentListType); - listParsingState = savedListParsingState; - return result; - } - function abortParsingListOrMoveToNextToken(currentListType) { - reportUnexpectedTokenDiagnostic(currentListType); - for (var state = ListParsingState.LastListParsingState; state >= ListParsingState.FirstListParsingState; state--) { - if ((listParsingState & (1 << state)) !== 0) { - if (isExpectedListTerminator(state) || isExpectedListItem(state, true)) { - return true; - } - } - } - skipToken(currentToken()); - return false; - } - function tryParseExpectedListItem(currentListType, inErrorRecovery, items, processItems) { - var item = tryParseExpectedListItemWorker(currentListType, inErrorRecovery); - if (item !== undefined) { - items.push(item); - if (processItems) { - processItems(items); - } - } - } - function listIsTerminated(currentListType) { - return isExpectedListTerminator(currentListType) || currentToken().kind === 8 /* EndOfFileToken */; - } - function parseSyntaxListWorker(currentListType, processItems) { - var items = []; - while (true) { - var oldItemsLength = items.length; - tryParseExpectedListItem(currentListType, false, items, processItems); - if (items.length === oldItemsLength) { - if (listIsTerminated(currentListType)) { - break; - } - var abort = abortParsingListOrMoveToNextToken(currentListType); - if (abort) { - break; - } - } - } - return TypeScript.Syntax.list(items); - } - function parseSeparatedSyntaxListWorker(currentListType) { - var nodesAndSeparators = []; - var _separatorKind = currentListType === 9 /* ObjectType_TypeMembers */ ? 82 /* SemicolonToken */ : 83 /* CommaToken */; - var allowAutomaticSemicolonInsertion = _separatorKind === 82 /* SemicolonToken */; - var inErrorRecovery = false; - while (true) { - var oldArrayLength = nodesAndSeparators.length; - tryParseExpectedListItem(currentListType, inErrorRecovery, nodesAndSeparators, undefined); - if (nodesAndSeparators.length === oldArrayLength) { - if (listIsTerminated(currentListType)) { - break; - } - var abort = abortParsingListOrMoveToNextToken(currentListType); - if (abort) { - break; - } - else { - inErrorRecovery = true; - continue; - } - } - inErrorRecovery = false; - var _currentToken = currentToken(); - var tokenKind = _currentToken.kind; - if (tokenKind === _separatorKind || tokenKind === 83 /* CommaToken */) { - nodesAndSeparators.push(consumeToken(_currentToken)); - continue; - } - if (listIsTerminated(currentListType)) { - break; - } - if (allowAutomaticSemicolonInsertion && canEatAutomaticSemicolon(false)) { - var semicolonToken = eatExplicitOrAutomaticSemicolon(false) || createEmptyToken(82 /* SemicolonToken */); - nodesAndSeparators.push(semicolonToken); - continue; - } - nodesAndSeparators.push(eatToken(_separatorKind)); - inErrorRecovery = true; - } - return TypeScript.Syntax.separatedList(nodesAndSeparators); - } - function reportUnexpectedTokenDiagnostic(listType) { - var token = currentToken(); - var diagnostic = new TypeScript.Diagnostic(fileName, source.text.lineMap(), TypeScript.start(token, source.text), TypeScript.width(token), TypeScript.DiagnosticCode.Unexpected_token_0_expected, [getExpectedListElementType(listType)]); - addDiagnostic(diagnostic); - } - function addDiagnostic(diagnostic) { - if (diagnostics.length > 0 && diagnostics[diagnostics.length - 1].start() === diagnostic.start()) { - return; - } - diagnostics.push(diagnostic); - } - function isExpectedListTerminator(currentListType) { - switch (currentListType) { - case 0 /* SourceUnit_ModuleElements */: return isExpectedSourceUnit_ModuleElementsTerminator(); - case 1 /* ClassDeclaration_ClassElements */: return isExpectedClassDeclaration_ClassElementsTerminator(); - case 2 /* ModuleDeclaration_ModuleElements */: return isExpectedModuleDeclaration_ModuleElementsTerminator(); - case 3 /* SwitchStatement_SwitchClauses */: return isExpectedSwitchStatement_SwitchClausesTerminator(); - case 4 /* SwitchClause_Statements */: return isExpectedSwitchClause_StatementsTerminator(); - case 5 /* Block_Statements */: return isExpectedBlock_StatementsTerminator(); - case 6 /* TryBlock_Statements */: return isExpectedTryBlock_StatementsTerminator(); - case 7 /* CatchBlock_Statements */: return isExpectedCatchBlock_StatementsTerminator(); - case 8 /* EnumDeclaration_EnumElements */: return isExpectedEnumDeclaration_EnumElementsTerminator(); - case 9 /* ObjectType_TypeMembers */: return isExpectedObjectType_TypeMembersTerminator(); - case 10 /* ClassOrInterfaceDeclaration_HeritageClauses */: return isExpectedClassOrInterfaceDeclaration_HeritageClausesTerminator(); - case 11 /* HeritageClause_TypeNameList */: return isExpectedHeritageClause_TypeNameListTerminator(); - case 12 /* VariableDeclaration_VariableDeclarators */: return isExpectedVariableDeclaration_VariableDeclaratorsTerminator(); - case 13 /* ArgumentList_AssignmentExpressions */: return isExpectedArgumentList_AssignmentExpressionsTerminator(); - case 14 /* ObjectLiteralExpression_PropertyAssignments */: return isExpectedObjectLiteralExpression_PropertyAssignmentsTerminator(); - case 15 /* ArrayLiteralExpression_AssignmentExpressions */: return isExpectedLiteralExpression_AssignmentExpressionsTerminator(); - case 16 /* ParameterList_Parameters */: return isExpectedParameterList_ParametersTerminator(); - case 17 /* IndexSignature_Parameters */: return isExpectedIndexSignature_ParametersTerminator(); - case 18 /* TypeArgumentList_Types */: return isExpectedTypeArgumentList_TypesTerminator(); - case 19 /* TypeParameterList_TypeParameters */: return isExpectedTypeParameterList_TypeParametersTerminator(); - case 20 /* TupleType_Types */: return isExpectedTupleType_TypesTerminator(); - default: - throw TypeScript.Errors.invalidOperation(); - } - } - function isExpectedSourceUnit_ModuleElementsTerminator() { - return currentToken().kind === 8 /* EndOfFileToken */; - } - function isExpectedEnumDeclaration_EnumElementsTerminator() { - return currentToken().kind === 75 /* CloseBraceToken */; - } - function isExpectedModuleDeclaration_ModuleElementsTerminator() { - return currentToken().kind === 75 /* CloseBraceToken */; - } - function isExpectedObjectType_TypeMembersTerminator() { - return currentToken().kind === 75 /* CloseBraceToken */; - } - function isExpectedObjectLiteralExpression_PropertyAssignmentsTerminator() { - return currentToken().kind === 75 /* CloseBraceToken */; - } - function isExpectedLiteralExpression_AssignmentExpressionsTerminator() { - return currentToken().kind === 79 /* CloseBracketToken */; - } - function isExpectedTypeArgumentList_TypesTerminator() { - var token = currentToken(); - var tokenKind = token.kind; - if (tokenKind === 85 /* GreaterThanToken */) { - return true; - } - if (canFollowTypeArgumentListInExpression(tokenKind)) { - return true; - } - return false; - } - function isExpectedTupleType_TypesTerminator() { - var token = currentToken(); - var tokenKind = token.kind; - if (tokenKind === 79 /* CloseBracketToken */) { - return true; - } - return false; - } - function isExpectedTypeParameterList_TypeParametersTerminator() { - var tokenKind = currentToken().kind; - if (tokenKind === 85 /* GreaterThanToken */) { - return true; - } - if (tokenKind === 76 /* OpenParenToken */ || tokenKind === 74 /* OpenBraceToken */ || tokenKind === 50 /* ExtendsKeyword */ || tokenKind === 53 /* ImplementsKeyword */) { - return true; - } - return false; - } - function isExpectedParameterList_ParametersTerminator() { - var tokenKind = currentToken().kind; - if (tokenKind === 77 /* CloseParenToken */) { - return true; - } - if (tokenKind === 74 /* OpenBraceToken */) { - return true; - } - if (tokenKind === 89 /* EqualsGreaterThanToken */) { - return true; - } - return false; - } - function isExpectedIndexSignature_ParametersTerminator() { - var tokenKind = currentToken().kind; - if (tokenKind === 79 /* CloseBracketToken */) { - return true; - } - if (tokenKind === 74 /* OpenBraceToken */) { - return true; - } - return false; - } - function isExpectedVariableDeclaration_VariableDeclaratorsTerminator() { - if (inDisallowInContext()) { - var tokenKind = currentToken().kind; - if (tokenKind === 82 /* SemicolonToken */ || tokenKind === 77 /* CloseParenToken */) { - return true; - } - if (tokenKind === 31 /* InKeyword */) { - return true; - } - return false; - } - else { - if (currentToken().kind === 89 /* EqualsGreaterThanToken */) { - return true; - } - return canEatExplicitOrAutomaticSemicolon(false); - } - } - function isExpectedClassOrInterfaceDeclaration_HeritageClausesTerminator() { - var tokenKind = currentToken().kind; - if (tokenKind === 74 /* OpenBraceToken */ || tokenKind === 75 /* CloseBraceToken */) { - return true; - } - return false; - } - function isExpectedHeritageClause_TypeNameListTerminator() { - var tokenKind = currentToken().kind; - if (tokenKind === 50 /* ExtendsKeyword */ || tokenKind === 53 /* ImplementsKeyword */) { - return true; - } - if (isExpectedClassOrInterfaceDeclaration_HeritageClausesTerminator()) { - return true; - } - return false; - } - function isExpectedArgumentList_AssignmentExpressionsTerminator() { - var token0 = currentToken(); - var tokenKind = token0.kind; - return tokenKind === 77 /* CloseParenToken */ || tokenKind === 82 /* SemicolonToken */; - } - function isExpectedClassDeclaration_ClassElementsTerminator() { - return currentToken().kind === 75 /* CloseBraceToken */; - } - function isExpectedSwitchStatement_SwitchClausesTerminator() { - return currentToken().kind === 75 /* CloseBraceToken */; - } - function isExpectedSwitchClause_StatementsTerminator() { - return currentToken().kind === 75 /* CloseBraceToken */ || isSwitchClause(); - } - function isExpectedBlock_StatementsTerminator() { - return currentToken().kind === 75 /* CloseBraceToken */; - } - function isExpectedTryBlock_StatementsTerminator() { - var tokenKind = currentToken().kind; - return tokenKind === 19 /* CatchKeyword */ || tokenKind === 27 /* FinallyKeyword */; - } - function isExpectedCatchBlock_StatementsTerminator() { - return currentToken().kind === 27 /* FinallyKeyword */; - } - function isExpectedListItem(currentListType, inErrorRecovery) { - switch (currentListType) { - case 0 /* SourceUnit_ModuleElements */: return isModuleElement(inErrorRecovery); - case 1 /* ClassDeclaration_ClassElements */: return isClassElement(inErrorRecovery); - case 2 /* ModuleDeclaration_ModuleElements */: return isModuleElement(inErrorRecovery); - case 3 /* SwitchStatement_SwitchClauses */: return isSwitchClause(); - case 4 /* SwitchClause_Statements */: return isStatement(modifierCount(), inErrorRecovery); - case 5 /* Block_Statements */: return isStatement(modifierCount(), inErrorRecovery); - case 6 /* TryBlock_Statements */: return false; - case 7 /* CatchBlock_Statements */: return false; - case 8 /* EnumDeclaration_EnumElements */: return isEnumElement(inErrorRecovery); - case 9 /* ObjectType_TypeMembers */: return isTypeMember(inErrorRecovery); - case 10 /* ClassOrInterfaceDeclaration_HeritageClauses */: return isHeritageClause(); - case 11 /* HeritageClause_TypeNameList */: return isHeritageClauseTypeName(); - case 12 /* VariableDeclaration_VariableDeclarators */: return isVariableDeclarator(); - case 13 /* ArgumentList_AssignmentExpressions */: return isExpectedArgumentList_AssignmentExpression(); - case 14 /* ObjectLiteralExpression_PropertyAssignments */: return isPropertyAssignment(inErrorRecovery); - case 15 /* ArrayLiteralExpression_AssignmentExpressions */: return isAssignmentOrOmittedExpression(); - case 16 /* ParameterList_Parameters */: return isParameter(); - case 17 /* IndexSignature_Parameters */: return isParameter(); - case 18 /* TypeArgumentList_Types */: return isType(); - case 19 /* TypeParameterList_TypeParameters */: return isTypeParameter(); - case 20 /* TupleType_Types */: return isType(); - default: throw TypeScript.Errors.invalidOperation(); - } - } - function isExpectedArgumentList_AssignmentExpression() { - var _currentToken = currentToken(); - if (isExpression(_currentToken)) { - return true; - } - if (_currentToken.kind === 83 /* CommaToken */) { - return true; - } - return false; - } - function tryParseExpectedListItemWorker(currentListType, inErrorRecovery) { - switch (currentListType) { - case 0 /* SourceUnit_ModuleElements */: return tryParseModuleElement(inErrorRecovery); - case 1 /* ClassDeclaration_ClassElements */: return tryParseClassElement(inErrorRecovery); - case 2 /* ModuleDeclaration_ModuleElements */: return tryParseModuleElement(inErrorRecovery); - case 3 /* SwitchStatement_SwitchClauses */: return tryParseSwitchClause(); - case 4 /* SwitchClause_Statements */: return tryParseStatement(inErrorRecovery); - case 5 /* Block_Statements */: return tryParseStatement(inErrorRecovery); - case 6 /* TryBlock_Statements */: return tryParseStatement(inErrorRecovery); - case 7 /* CatchBlock_Statements */: return tryParseStatement(inErrorRecovery); - case 8 /* EnumDeclaration_EnumElements */: return tryParseEnumElement(inErrorRecovery); - case 9 /* ObjectType_TypeMembers */: return tryParseTypeMember(inErrorRecovery); - case 10 /* ClassOrInterfaceDeclaration_HeritageClauses */: return tryParseHeritageClause(); - case 11 /* HeritageClause_TypeNameList */: return tryParseHeritageClauseTypeName(); - case 12 /* VariableDeclaration_VariableDeclarators */: return tryParseVariableDeclarator(); - case 13 /* ArgumentList_AssignmentExpressions */: return tryParseArgumentListExpression(); - case 14 /* ObjectLiteralExpression_PropertyAssignments */: return tryParsePropertyAssignment(inErrorRecovery); - case 15 /* ArrayLiteralExpression_AssignmentExpressions */: return tryParseAssignmentOrOmittedExpression(); - case 16 /* ParameterList_Parameters */: return tryParseParameter(); - case 17 /* IndexSignature_Parameters */: return tryParseParameter(); - case 18 /* TypeArgumentList_Types */: return tryParseType(); - case 19 /* TypeParameterList_TypeParameters */: return tryParseTypeParameter(); - case 20 /* TupleType_Types */: return tryParseType(); - default: throw TypeScript.Errors.invalidOperation(); - } - } - function getExpectedListElementType(currentListType) { - switch (currentListType) { - case 0 /* SourceUnit_ModuleElements */: return TypeScript.getLocalizedText(TypeScript.DiagnosticCode.module_class_interface_enum_import_or_statement, undefined); - case 10 /* ClassOrInterfaceDeclaration_HeritageClauses */: return '{'; - case 1 /* ClassDeclaration_ClassElements */: return TypeScript.getLocalizedText(TypeScript.DiagnosticCode.constructor_function_accessor_or_variable, undefined); - case 2 /* ModuleDeclaration_ModuleElements */: return TypeScript.getLocalizedText(TypeScript.DiagnosticCode.module_class_interface_enum_import_or_statement, undefined); - case 3 /* SwitchStatement_SwitchClauses */: return TypeScript.getLocalizedText(TypeScript.DiagnosticCode.case_or_default_clause, undefined); - case 4 /* SwitchClause_Statements */: return TypeScript.getLocalizedText(TypeScript.DiagnosticCode.statement, undefined); - case 5 /* Block_Statements */: return TypeScript.getLocalizedText(TypeScript.DiagnosticCode.statement, undefined); - case 12 /* VariableDeclaration_VariableDeclarators */: return TypeScript.getLocalizedText(TypeScript.DiagnosticCode.identifier, undefined); - case 8 /* EnumDeclaration_EnumElements */: return TypeScript.getLocalizedText(TypeScript.DiagnosticCode.identifier, undefined); - case 9 /* ObjectType_TypeMembers */: return TypeScript.getLocalizedText(TypeScript.DiagnosticCode.call_construct_index_property_or_function_signature, undefined); - case 13 /* ArgumentList_AssignmentExpressions */: return TypeScript.getLocalizedText(TypeScript.DiagnosticCode.expression, undefined); - case 11 /* HeritageClause_TypeNameList */: return TypeScript.getLocalizedText(TypeScript.DiagnosticCode.type_name, undefined); - case 14 /* ObjectLiteralExpression_PropertyAssignments */: return TypeScript.getLocalizedText(TypeScript.DiagnosticCode.property_or_accessor, undefined); - case 16 /* ParameterList_Parameters */: return TypeScript.getLocalizedText(TypeScript.DiagnosticCode.parameter, undefined); - case 17 /* IndexSignature_Parameters */: return TypeScript.getLocalizedText(TypeScript.DiagnosticCode.parameter, undefined); - case 18 /* TypeArgumentList_Types */: return TypeScript.getLocalizedText(TypeScript.DiagnosticCode.type, undefined); - case 19 /* TypeParameterList_TypeParameters */: return TypeScript.getLocalizedText(TypeScript.DiagnosticCode.type_parameter, undefined); - case 20 /* TupleType_Types */: return TypeScript.getLocalizedText(TypeScript.DiagnosticCode.type, undefined); - case 15 /* ArrayLiteralExpression_AssignmentExpressions */: return TypeScript.getLocalizedText(TypeScript.DiagnosticCode.expression, undefined); - default: throw TypeScript.Errors.invalidOperation(); - } - } - return parseSyntaxTree; - } - var BinaryExpressionPrecedence; - (function (BinaryExpressionPrecedence) { - BinaryExpressionPrecedence[BinaryExpressionPrecedence["Lowest"] = 1] = "Lowest"; - BinaryExpressionPrecedence[BinaryExpressionPrecedence["LogicalOrExpressionPrecedence"] = 2] = "LogicalOrExpressionPrecedence"; - BinaryExpressionPrecedence[BinaryExpressionPrecedence["LogicalAndExpressionPrecedence"] = 3] = "LogicalAndExpressionPrecedence"; - BinaryExpressionPrecedence[BinaryExpressionPrecedence["BitwiseOrExpressionPrecedence"] = 4] = "BitwiseOrExpressionPrecedence"; - BinaryExpressionPrecedence[BinaryExpressionPrecedence["BitwiseExclusiveOrExpressionPrecedence"] = 5] = "BitwiseExclusiveOrExpressionPrecedence"; - BinaryExpressionPrecedence[BinaryExpressionPrecedence["BitwiseAndExpressionPrecedence"] = 6] = "BitwiseAndExpressionPrecedence"; - BinaryExpressionPrecedence[BinaryExpressionPrecedence["EqualityExpressionPrecedence"] = 7] = "EqualityExpressionPrecedence"; - BinaryExpressionPrecedence[BinaryExpressionPrecedence["RelationalExpressionPrecedence"] = 8] = "RelationalExpressionPrecedence"; - BinaryExpressionPrecedence[BinaryExpressionPrecedence["ShiftExpressionPrecdence"] = 9] = "ShiftExpressionPrecdence"; - BinaryExpressionPrecedence[BinaryExpressionPrecedence["AdditiveExpressionPrecedence"] = 10] = "AdditiveExpressionPrecedence"; - BinaryExpressionPrecedence[BinaryExpressionPrecedence["MultiplicativeExpressionPrecedence"] = 11] = "MultiplicativeExpressionPrecedence"; - })(BinaryExpressionPrecedence || (BinaryExpressionPrecedence = {})); - var ListParsingState; - (function (ListParsingState) { - ListParsingState[ListParsingState["SourceUnit_ModuleElements"] = 0] = "SourceUnit_ModuleElements"; - ListParsingState[ListParsingState["ClassDeclaration_ClassElements"] = 1] = "ClassDeclaration_ClassElements"; - ListParsingState[ListParsingState["ModuleDeclaration_ModuleElements"] = 2] = "ModuleDeclaration_ModuleElements"; - ListParsingState[ListParsingState["SwitchStatement_SwitchClauses"] = 3] = "SwitchStatement_SwitchClauses"; - ListParsingState[ListParsingState["SwitchClause_Statements"] = 4] = "SwitchClause_Statements"; - ListParsingState[ListParsingState["Block_Statements"] = 5] = "Block_Statements"; - ListParsingState[ListParsingState["TryBlock_Statements"] = 6] = "TryBlock_Statements"; - ListParsingState[ListParsingState["CatchBlock_Statements"] = 7] = "CatchBlock_Statements"; - ListParsingState[ListParsingState["EnumDeclaration_EnumElements"] = 8] = "EnumDeclaration_EnumElements"; - ListParsingState[ListParsingState["ObjectType_TypeMembers"] = 9] = "ObjectType_TypeMembers"; - ListParsingState[ListParsingState["ClassOrInterfaceDeclaration_HeritageClauses"] = 10] = "ClassOrInterfaceDeclaration_HeritageClauses"; - ListParsingState[ListParsingState["HeritageClause_TypeNameList"] = 11] = "HeritageClause_TypeNameList"; - ListParsingState[ListParsingState["VariableDeclaration_VariableDeclarators"] = 12] = "VariableDeclaration_VariableDeclarators"; - ListParsingState[ListParsingState["ArgumentList_AssignmentExpressions"] = 13] = "ArgumentList_AssignmentExpressions"; - ListParsingState[ListParsingState["ObjectLiteralExpression_PropertyAssignments"] = 14] = "ObjectLiteralExpression_PropertyAssignments"; - ListParsingState[ListParsingState["ArrayLiteralExpression_AssignmentExpressions"] = 15] = "ArrayLiteralExpression_AssignmentExpressions"; - ListParsingState[ListParsingState["ParameterList_Parameters"] = 16] = "ParameterList_Parameters"; - ListParsingState[ListParsingState["IndexSignature_Parameters"] = 17] = "IndexSignature_Parameters"; - ListParsingState[ListParsingState["TypeArgumentList_Types"] = 18] = "TypeArgumentList_Types"; - ListParsingState[ListParsingState["TypeParameterList_TypeParameters"] = 19] = "TypeParameterList_TypeParameters"; - ListParsingState[ListParsingState["TupleType_Types"] = 20] = "TupleType_Types"; - ListParsingState[ListParsingState["FirstListParsingState"] = ListParsingState.SourceUnit_ModuleElements] = "FirstListParsingState"; - ListParsingState[ListParsingState["LastListParsingState"] = ListParsingState.TupleType_Types] = "LastListParsingState"; - })(ListParsingState || (ListParsingState = {})); - TypeScript.Debug.assert(ListParsingState.LastListParsingState <= 30); - var parseSyntaxTree = createParseSyntaxTree(); - function parse(fileName, text, languageVersion, isDeclaration) { - return parseSource(TypeScript.Scanner.createParserSource(fileName, text, languageVersion), isDeclaration); - } - Parser.parse = parse; - function parseSource(source, isDeclaration) { - return parseSyntaxTree(source, isDeclaration); - } - Parser.parseSource = parseSource; - })(Parser = TypeScript.Parser || (TypeScript.Parser = {})); -})(TypeScript || (TypeScript = {})); -var TypeScript; -(function (TypeScript) { - TypeScript.SourceUnitSyntax = function (data, moduleElements, endOfFileToken) { - if (data) { - this.__data = data; - } - this.moduleElements = moduleElements, this.endOfFileToken = endOfFileToken, moduleElements.parent = this, endOfFileToken.parent = this; - }; - TypeScript.SourceUnitSyntax.prototype.kind = 124 /* SourceUnit */; - TypeScript.SourceUnitSyntax.prototype.childCount = 2; - TypeScript.SourceUnitSyntax.prototype.childAt = function (index) { - switch (index) { - case 0: return this.moduleElements; - case 1: return this.endOfFileToken; - } - }; - TypeScript.QualifiedNameSyntax = function (data, left, dotToken, right) { - if (data) { - this.__data = data; - } - this.left = left, this.dotToken = dotToken, this.right = right, left.parent = this, dotToken.parent = this, right.parent = this; - }; - TypeScript.QualifiedNameSyntax.prototype.kind = 125 /* QualifiedName */; - TypeScript.QualifiedNameSyntax.prototype.childCount = 3; - TypeScript.QualifiedNameSyntax.prototype.childAt = function (index) { - switch (index) { - case 0: return this.left; - case 1: return this.dotToken; - case 2: return this.right; - } - }; - TypeScript.ObjectTypeSyntax = function (data, openBraceToken, typeMembers, closeBraceToken) { - if (data) { - this.__data = data; - } - this.openBraceToken = openBraceToken, this.typeMembers = typeMembers, this.closeBraceToken = closeBraceToken, openBraceToken.parent = this, typeMembers.parent = this, closeBraceToken.parent = this; - }; - TypeScript.ObjectTypeSyntax.prototype.kind = 126 /* ObjectType */; - TypeScript.ObjectTypeSyntax.prototype.childCount = 3; - TypeScript.ObjectTypeSyntax.prototype.childAt = function (index) { - switch (index) { - case 0: return this.openBraceToken; - case 1: return this.typeMembers; - case 2: return this.closeBraceToken; - } - }; - TypeScript.FunctionTypeSyntax = function (data, typeParameterList, parameterList, equalsGreaterThanToken, type) { - if (data) { - this.__data = data; - } - this.typeParameterList = typeParameterList, this.parameterList = parameterList, this.equalsGreaterThanToken = equalsGreaterThanToken, this.type = type, typeParameterList && (typeParameterList.parent = this), parameterList.parent = this, equalsGreaterThanToken.parent = this, type.parent = this; - }; - TypeScript.FunctionTypeSyntax.prototype.kind = 127 /* FunctionType */; - TypeScript.FunctionTypeSyntax.prototype.childCount = 4; - TypeScript.FunctionTypeSyntax.prototype.childAt = function (index) { - switch (index) { - case 0: return this.typeParameterList; - case 1: return this.parameterList; - case 2: return this.equalsGreaterThanToken; - case 3: return this.type; - } - }; - TypeScript.ArrayTypeSyntax = function (data, type, openBracketToken, closeBracketToken) { - if (data) { - this.__data = data; - } - this.type = type, this.openBracketToken = openBracketToken, this.closeBracketToken = closeBracketToken, type.parent = this, openBracketToken.parent = this, closeBracketToken.parent = this; - }; - TypeScript.ArrayTypeSyntax.prototype.kind = 128 /* ArrayType */; - TypeScript.ArrayTypeSyntax.prototype.childCount = 3; - TypeScript.ArrayTypeSyntax.prototype.childAt = function (index) { - switch (index) { - case 0: return this.type; - case 1: return this.openBracketToken; - case 2: return this.closeBracketToken; - } - }; - TypeScript.ConstructorTypeSyntax = function (data, newKeyword, typeParameterList, parameterList, equalsGreaterThanToken, type) { - if (data) { - this.__data = data; - } - this.newKeyword = newKeyword, this.typeParameterList = typeParameterList, this.parameterList = parameterList, this.equalsGreaterThanToken = equalsGreaterThanToken, this.type = type, newKeyword.parent = this, typeParameterList && (typeParameterList.parent = this), parameterList.parent = this, equalsGreaterThanToken.parent = this, type.parent = this; - }; - TypeScript.ConstructorTypeSyntax.prototype.kind = 129 /* ConstructorType */; - TypeScript.ConstructorTypeSyntax.prototype.childCount = 5; - TypeScript.ConstructorTypeSyntax.prototype.childAt = function (index) { - switch (index) { - case 0: return this.newKeyword; - case 1: return this.typeParameterList; - case 2: return this.parameterList; - case 3: return this.equalsGreaterThanToken; - case 4: return this.type; - } - }; - TypeScript.GenericTypeSyntax = function (data, name, typeArgumentList) { - if (data) { - this.__data = data; - } - this.name = name, this.typeArgumentList = typeArgumentList, name.parent = this, typeArgumentList.parent = this; - }; - TypeScript.GenericTypeSyntax.prototype.kind = 130 /* GenericType */; - TypeScript.GenericTypeSyntax.prototype.childCount = 2; - TypeScript.GenericTypeSyntax.prototype.childAt = function (index) { - switch (index) { - case 0: return this.name; - case 1: return this.typeArgumentList; - } - }; - TypeScript.TypeQuerySyntax = function (data, typeOfKeyword, name) { - if (data) { - this.__data = data; - } - this.typeOfKeyword = typeOfKeyword, this.name = name, typeOfKeyword.parent = this, name.parent = this; - }; - TypeScript.TypeQuerySyntax.prototype.kind = 131 /* TypeQuery */; - TypeScript.TypeQuerySyntax.prototype.childCount = 2; - TypeScript.TypeQuerySyntax.prototype.childAt = function (index) { - switch (index) { - case 0: return this.typeOfKeyword; - case 1: return this.name; - } - }; - TypeScript.TupleTypeSyntax = function (data, openBracketToken, types, closeBracketToken) { - if (data) { - this.__data = data; - } - this.openBracketToken = openBracketToken, this.types = types, this.closeBracketToken = closeBracketToken, openBracketToken.parent = this, types.parent = this, closeBracketToken.parent = this; - }; - TypeScript.TupleTypeSyntax.prototype.kind = 132 /* TupleType */; - TypeScript.TupleTypeSyntax.prototype.childCount = 3; - TypeScript.TupleTypeSyntax.prototype.childAt = function (index) { - switch (index) { - case 0: return this.openBracketToken; - case 1: return this.types; - case 2: return this.closeBracketToken; - } - }; - TypeScript.UnionTypeSyntax = function (data, left, barToken, right) { - if (data) { - this.__data = data; - } - this.left = left, this.barToken = barToken, this.right = right, left.parent = this, barToken.parent = this, right.parent = this; - }; - TypeScript.UnionTypeSyntax.prototype.kind = 133 /* UnionType */; - TypeScript.UnionTypeSyntax.prototype.childCount = 3; - TypeScript.UnionTypeSyntax.prototype.childAt = function (index) { - switch (index) { - case 0: return this.left; - case 1: return this.barToken; - case 2: return this.right; - } - }; - TypeScript.ParenthesizedTypeSyntax = function (data, openParenToken, type, closeParenToken) { - if (data) { - this.__data = data; - } - this.openParenToken = openParenToken, this.type = type, this.closeParenToken = closeParenToken, openParenToken.parent = this, type.parent = this, closeParenToken.parent = this; - }; - TypeScript.ParenthesizedTypeSyntax.prototype.kind = 134 /* ParenthesizedType */; - TypeScript.ParenthesizedTypeSyntax.prototype.childCount = 3; - TypeScript.ParenthesizedTypeSyntax.prototype.childAt = function (index) { - switch (index) { - case 0: return this.openParenToken; - case 1: return this.type; - case 2: return this.closeParenToken; - } - }; - TypeScript.InterfaceDeclarationSyntax = function (data, modifiers, interfaceKeyword, identifier, typeParameterList, heritageClauses, body) { - if (data) { - this.__data = data; - } - this.modifiers = modifiers, this.interfaceKeyword = interfaceKeyword, this.identifier = identifier, this.typeParameterList = typeParameterList, this.heritageClauses = heritageClauses, this.body = body, modifiers.parent = this, interfaceKeyword.parent = this, identifier.parent = this, typeParameterList && (typeParameterList.parent = this), heritageClauses.parent = this, body.parent = this; - }; - TypeScript.InterfaceDeclarationSyntax.prototype.kind = 135 /* InterfaceDeclaration */; - TypeScript.InterfaceDeclarationSyntax.prototype.childCount = 6; - TypeScript.InterfaceDeclarationSyntax.prototype.childAt = function (index) { - switch (index) { - case 0: return this.modifiers; - case 1: return this.interfaceKeyword; - case 2: return this.identifier; - case 3: return this.typeParameterList; - case 4: return this.heritageClauses; - case 5: return this.body; - } - }; - TypeScript.FunctionDeclarationSyntax = function (data, modifiers, functionKeyword, asterixToken, identifier, callSignature, body) { - if (data) { - this.__data = data; - } - this.modifiers = modifiers, this.functionKeyword = functionKeyword, this.asterixToken = asterixToken, this.identifier = identifier, this.callSignature = callSignature, this.body = body, modifiers.parent = this, functionKeyword.parent = this, asterixToken && (asterixToken.parent = this), identifier.parent = this, callSignature.parent = this, body && (body.parent = this); - }; - TypeScript.FunctionDeclarationSyntax.prototype.kind = 136 /* FunctionDeclaration */; - TypeScript.FunctionDeclarationSyntax.prototype.childCount = 6; - TypeScript.FunctionDeclarationSyntax.prototype.childAt = function (index) { - switch (index) { - case 0: return this.modifiers; - case 1: return this.functionKeyword; - case 2: return this.asterixToken; - case 3: return this.identifier; - case 4: return this.callSignature; - case 5: return this.body; - } - }; - TypeScript.ModuleDeclarationSyntax = function (data, modifiers, moduleKeyword, name, openBraceToken, moduleElements, closeBraceToken) { - if (data) { - this.__data = data; - } - this.modifiers = modifiers, this.moduleKeyword = moduleKeyword, this.name = name, this.openBraceToken = openBraceToken, this.moduleElements = moduleElements, this.closeBraceToken = closeBraceToken, modifiers.parent = this, moduleKeyword.parent = this, name.parent = this, openBraceToken.parent = this, moduleElements.parent = this, closeBraceToken.parent = this; - }; - TypeScript.ModuleDeclarationSyntax.prototype.kind = 137 /* ModuleDeclaration */; - TypeScript.ModuleDeclarationSyntax.prototype.childCount = 6; - TypeScript.ModuleDeclarationSyntax.prototype.childAt = function (index) { - switch (index) { - case 0: return this.modifiers; - case 1: return this.moduleKeyword; - case 2: return this.name; - case 3: return this.openBraceToken; - case 4: return this.moduleElements; - case 5: return this.closeBraceToken; - } - }; - TypeScript.ClassDeclarationSyntax = function (data, modifiers, classKeyword, identifier, typeParameterList, heritageClauses, openBraceToken, classElements, closeBraceToken) { - if (data) { - this.__data = data; - } - this.modifiers = modifiers, this.classKeyword = classKeyword, this.identifier = identifier, this.typeParameterList = typeParameterList, this.heritageClauses = heritageClauses, this.openBraceToken = openBraceToken, this.classElements = classElements, this.closeBraceToken = closeBraceToken, modifiers.parent = this, classKeyword.parent = this, identifier.parent = this, typeParameterList && (typeParameterList.parent = this), heritageClauses.parent = this, openBraceToken.parent = this, classElements.parent = this, closeBraceToken.parent = this; - }; - TypeScript.ClassDeclarationSyntax.prototype.kind = 138 /* ClassDeclaration */; - TypeScript.ClassDeclarationSyntax.prototype.childCount = 8; - TypeScript.ClassDeclarationSyntax.prototype.childAt = function (index) { - switch (index) { - case 0: return this.modifiers; - case 1: return this.classKeyword; - case 2: return this.identifier; - case 3: return this.typeParameterList; - case 4: return this.heritageClauses; - case 5: return this.openBraceToken; - case 6: return this.classElements; - case 7: return this.closeBraceToken; - } - }; - TypeScript.EnumDeclarationSyntax = function (data, modifiers, enumKeyword, identifier, openBraceToken, enumElements, closeBraceToken) { - if (data) { - this.__data = data; - } - this.modifiers = modifiers, this.enumKeyword = enumKeyword, this.identifier = identifier, this.openBraceToken = openBraceToken, this.enumElements = enumElements, this.closeBraceToken = closeBraceToken, modifiers.parent = this, enumKeyword.parent = this, identifier.parent = this, openBraceToken.parent = this, enumElements.parent = this, closeBraceToken.parent = this; - }; - TypeScript.EnumDeclarationSyntax.prototype.kind = 139 /* EnumDeclaration */; - TypeScript.EnumDeclarationSyntax.prototype.childCount = 6; - TypeScript.EnumDeclarationSyntax.prototype.childAt = function (index) { - switch (index) { - case 0: return this.modifiers; - case 1: return this.enumKeyword; - case 2: return this.identifier; - case 3: return this.openBraceToken; - case 4: return this.enumElements; - case 5: return this.closeBraceToken; - } - }; - TypeScript.ImportDeclarationSyntax = function (data, modifiers, importKeyword, identifier, equalsToken, moduleReference, semicolonToken) { - if (data) { - this.__data = data; - } - this.modifiers = modifiers, this.importKeyword = importKeyword, this.identifier = identifier, this.equalsToken = equalsToken, this.moduleReference = moduleReference, this.semicolonToken = semicolonToken, modifiers.parent = this, importKeyword.parent = this, identifier.parent = this, equalsToken.parent = this, moduleReference.parent = this, semicolonToken && (semicolonToken.parent = this); - }; - TypeScript.ImportDeclarationSyntax.prototype.kind = 140 /* ImportDeclaration */; - TypeScript.ImportDeclarationSyntax.prototype.childCount = 6; - TypeScript.ImportDeclarationSyntax.prototype.childAt = function (index) { - switch (index) { - case 0: return this.modifiers; - case 1: return this.importKeyword; - case 2: return this.identifier; - case 3: return this.equalsToken; - case 4: return this.moduleReference; - case 5: return this.semicolonToken; - } - }; - TypeScript.ExportAssignmentSyntax = function (data, modifiers, exportKeyword, equalsToken, identifier, semicolonToken) { - if (data) { - this.__data = data; - } - this.modifiers = modifiers, this.exportKeyword = exportKeyword, this.equalsToken = equalsToken, this.identifier = identifier, this.semicolonToken = semicolonToken, modifiers.parent = this, exportKeyword.parent = this, equalsToken.parent = this, identifier.parent = this, semicolonToken && (semicolonToken.parent = this); - }; - TypeScript.ExportAssignmentSyntax.prototype.kind = 141 /* ExportAssignment */; - TypeScript.ExportAssignmentSyntax.prototype.childCount = 5; - TypeScript.ExportAssignmentSyntax.prototype.childAt = function (index) { - switch (index) { - case 0: return this.modifiers; - case 1: return this.exportKeyword; - case 2: return this.equalsToken; - case 3: return this.identifier; - case 4: return this.semicolonToken; - } - }; - TypeScript.MemberFunctionDeclarationSyntax = function (data, modifiers, asterixToken, propertyName, callSignature, body) { - if (data) { - this.__data = data; - } - this.modifiers = modifiers, this.asterixToken = asterixToken, this.propertyName = propertyName, this.callSignature = callSignature, this.body = body, modifiers.parent = this, asterixToken && (asterixToken.parent = this), propertyName.parent = this, callSignature.parent = this, body && (body.parent = this); - }; - TypeScript.MemberFunctionDeclarationSyntax.prototype.kind = 142 /* MemberFunctionDeclaration */; - TypeScript.MemberFunctionDeclarationSyntax.prototype.childCount = 5; - TypeScript.MemberFunctionDeclarationSyntax.prototype.childAt = function (index) { - switch (index) { - case 0: return this.modifiers; - case 1: return this.asterixToken; - case 2: return this.propertyName; - case 3: return this.callSignature; - case 4: return this.body; - } - }; - TypeScript.MemberVariableDeclarationSyntax = function (data, modifiers, variableDeclarator, semicolonToken) { - if (data) { - this.__data = data; - } - this.modifiers = modifiers, this.variableDeclarator = variableDeclarator, this.semicolonToken = semicolonToken, modifiers.parent = this, variableDeclarator.parent = this, semicolonToken && (semicolonToken.parent = this); - }; - TypeScript.MemberVariableDeclarationSyntax.prototype.kind = 143 /* MemberVariableDeclaration */; - TypeScript.MemberVariableDeclarationSyntax.prototype.childCount = 3; - TypeScript.MemberVariableDeclarationSyntax.prototype.childAt = function (index) { - switch (index) { - case 0: return this.modifiers; - case 1: return this.variableDeclarator; - case 2: return this.semicolonToken; - } - }; - TypeScript.ConstructorDeclarationSyntax = function (data, modifiers, constructorKeyword, callSignature, body) { - if (data) { - this.__data = data; - } - this.modifiers = modifiers, this.constructorKeyword = constructorKeyword, this.callSignature = callSignature, this.body = body, modifiers.parent = this, constructorKeyword.parent = this, callSignature.parent = this, body && (body.parent = this); - }; - TypeScript.ConstructorDeclarationSyntax.prototype.kind = 144 /* ConstructorDeclaration */; - TypeScript.ConstructorDeclarationSyntax.prototype.childCount = 4; - TypeScript.ConstructorDeclarationSyntax.prototype.childAt = function (index) { - switch (index) { - case 0: return this.modifiers; - case 1: return this.constructorKeyword; - case 2: return this.callSignature; - case 3: return this.body; - } - }; - TypeScript.IndexMemberDeclarationSyntax = function (data, modifiers, indexSignature, semicolonToken) { - if (data) { - this.__data = data; - } - this.modifiers = modifiers, this.indexSignature = indexSignature, this.semicolonToken = semicolonToken, modifiers.parent = this, indexSignature.parent = this, semicolonToken && (semicolonToken.parent = this); - }; - TypeScript.IndexMemberDeclarationSyntax.prototype.kind = 145 /* IndexMemberDeclaration */; - TypeScript.IndexMemberDeclarationSyntax.prototype.childCount = 3; - TypeScript.IndexMemberDeclarationSyntax.prototype.childAt = function (index) { - switch (index) { - case 0: return this.modifiers; - case 1: return this.indexSignature; - case 2: return this.semicolonToken; - } - }; - TypeScript.GetAccessorSyntax = function (data, modifiers, getKeyword, propertyName, callSignature, body) { - if (data) { - this.__data = data; - } - this.modifiers = modifiers, this.getKeyword = getKeyword, this.propertyName = propertyName, this.callSignature = callSignature, this.body = body, modifiers.parent = this, getKeyword.parent = this, propertyName.parent = this, callSignature.parent = this, body && (body.parent = this); - }; - TypeScript.GetAccessorSyntax.prototype.kind = 146 /* GetAccessor */; - TypeScript.GetAccessorSyntax.prototype.childCount = 5; - TypeScript.GetAccessorSyntax.prototype.childAt = function (index) { - switch (index) { - case 0: return this.modifiers; - case 1: return this.getKeyword; - case 2: return this.propertyName; - case 3: return this.callSignature; - case 4: return this.body; - } - }; - TypeScript.SetAccessorSyntax = function (data, modifiers, setKeyword, propertyName, callSignature, body) { - if (data) { - this.__data = data; - } - this.modifiers = modifiers, this.setKeyword = setKeyword, this.propertyName = propertyName, this.callSignature = callSignature, this.body = body, modifiers.parent = this, setKeyword.parent = this, propertyName.parent = this, callSignature.parent = this, body && (body.parent = this); - }; - TypeScript.SetAccessorSyntax.prototype.kind = 147 /* SetAccessor */; - TypeScript.SetAccessorSyntax.prototype.childCount = 5; - TypeScript.SetAccessorSyntax.prototype.childAt = function (index) { - switch (index) { - case 0: return this.modifiers; - case 1: return this.setKeyword; - case 2: return this.propertyName; - case 3: return this.callSignature; - case 4: return this.body; - } - }; - TypeScript.PropertySignatureSyntax = function (data, propertyName, questionToken, typeAnnotation) { - if (data) { - this.__data = data; - } - this.propertyName = propertyName, this.questionToken = questionToken, this.typeAnnotation = typeAnnotation, propertyName.parent = this, questionToken && (questionToken.parent = this), typeAnnotation && (typeAnnotation.parent = this); - }; - TypeScript.PropertySignatureSyntax.prototype.kind = 148 /* PropertySignature */; - TypeScript.PropertySignatureSyntax.prototype.childCount = 3; - TypeScript.PropertySignatureSyntax.prototype.childAt = function (index) { - switch (index) { - case 0: return this.propertyName; - case 1: return this.questionToken; - case 2: return this.typeAnnotation; - } - }; - TypeScript.CallSignatureSyntax = function (data, typeParameterList, parameterList, typeAnnotation) { - if (data) { - this.__data = data; - } - this.typeParameterList = typeParameterList, this.parameterList = parameterList, this.typeAnnotation = typeAnnotation, typeParameterList && (typeParameterList.parent = this), parameterList.parent = this, typeAnnotation && (typeAnnotation.parent = this); - }; - TypeScript.CallSignatureSyntax.prototype.kind = 149 /* CallSignature */; - TypeScript.CallSignatureSyntax.prototype.childCount = 3; - TypeScript.CallSignatureSyntax.prototype.childAt = function (index) { - switch (index) { - case 0: return this.typeParameterList; - case 1: return this.parameterList; - case 2: return this.typeAnnotation; - } - }; - TypeScript.ConstructSignatureSyntax = function (data, newKeyword, callSignature) { - if (data) { - this.__data = data; - } - this.newKeyword = newKeyword, this.callSignature = callSignature, newKeyword.parent = this, callSignature.parent = this; - }; - TypeScript.ConstructSignatureSyntax.prototype.kind = 150 /* ConstructSignature */; - TypeScript.ConstructSignatureSyntax.prototype.childCount = 2; - TypeScript.ConstructSignatureSyntax.prototype.childAt = function (index) { - switch (index) { - case 0: return this.newKeyword; - case 1: return this.callSignature; - } - }; - TypeScript.IndexSignatureSyntax = function (data, openBracketToken, parameters, closeBracketToken, typeAnnotation) { - if (data) { - this.__data = data; - } - this.openBracketToken = openBracketToken, this.parameters = parameters, this.closeBracketToken = closeBracketToken, this.typeAnnotation = typeAnnotation, openBracketToken.parent = this, parameters.parent = this, closeBracketToken.parent = this, typeAnnotation && (typeAnnotation.parent = this); - }; - TypeScript.IndexSignatureSyntax.prototype.kind = 151 /* IndexSignature */; - TypeScript.IndexSignatureSyntax.prototype.childCount = 4; - TypeScript.IndexSignatureSyntax.prototype.childAt = function (index) { - switch (index) { - case 0: return this.openBracketToken; - case 1: return this.parameters; - case 2: return this.closeBracketToken; - case 3: return this.typeAnnotation; - } - }; - TypeScript.MethodSignatureSyntax = function (data, propertyName, questionToken, callSignature) { - if (data) { - this.__data = data; - } - this.propertyName = propertyName, this.questionToken = questionToken, this.callSignature = callSignature, propertyName.parent = this, questionToken && (questionToken.parent = this), callSignature.parent = this; - }; - TypeScript.MethodSignatureSyntax.prototype.kind = 152 /* MethodSignature */; - TypeScript.MethodSignatureSyntax.prototype.childCount = 3; - TypeScript.MethodSignatureSyntax.prototype.childAt = function (index) { - switch (index) { - case 0: return this.propertyName; - case 1: return this.questionToken; - case 2: return this.callSignature; - } - }; - TypeScript.BlockSyntax = function (data, equalsGreaterThanToken, openBraceToken, statements, closeBraceToken) { - if (data) { - this.__data = data; - } - this.equalsGreaterThanToken = equalsGreaterThanToken, this.openBraceToken = openBraceToken, this.statements = statements, this.closeBraceToken = closeBraceToken, equalsGreaterThanToken && (equalsGreaterThanToken.parent = this), openBraceToken.parent = this, statements.parent = this, closeBraceToken.parent = this; - }; - TypeScript.BlockSyntax.prototype.kind = 153 /* Block */; - TypeScript.BlockSyntax.prototype.childCount = 4; - TypeScript.BlockSyntax.prototype.childAt = function (index) { - switch (index) { - case 0: return this.equalsGreaterThanToken; - case 1: return this.openBraceToken; - case 2: return this.statements; - case 3: return this.closeBraceToken; - } - }; - TypeScript.IfStatementSyntax = function (data, ifKeyword, openParenToken, condition, closeParenToken, statement, elseClause) { - if (data) { - this.__data = data; - } - this.ifKeyword = ifKeyword, this.openParenToken = openParenToken, this.condition = condition, this.closeParenToken = closeParenToken, this.statement = statement, this.elseClause = elseClause, ifKeyword.parent = this, openParenToken.parent = this, condition.parent = this, closeParenToken.parent = this, statement.parent = this, elseClause && (elseClause.parent = this); - }; - TypeScript.IfStatementSyntax.prototype.kind = 154 /* IfStatement */; - TypeScript.IfStatementSyntax.prototype.childCount = 6; - TypeScript.IfStatementSyntax.prototype.childAt = function (index) { - switch (index) { - case 0: return this.ifKeyword; - case 1: return this.openParenToken; - case 2: return this.condition; - case 3: return this.closeParenToken; - case 4: return this.statement; - case 5: return this.elseClause; - } - }; - TypeScript.VariableStatementSyntax = function (data, modifiers, variableDeclaration, semicolonToken) { - if (data) { - this.__data = data; - } - this.modifiers = modifiers, this.variableDeclaration = variableDeclaration, this.semicolonToken = semicolonToken, modifiers.parent = this, variableDeclaration.parent = this, semicolonToken && (semicolonToken.parent = this); - }; - TypeScript.VariableStatementSyntax.prototype.kind = 155 /* VariableStatement */; - TypeScript.VariableStatementSyntax.prototype.childCount = 3; - TypeScript.VariableStatementSyntax.prototype.childAt = function (index) { - switch (index) { - case 0: return this.modifiers; - case 1: return this.variableDeclaration; - case 2: return this.semicolonToken; - } - }; - TypeScript.ExpressionStatementSyntax = function (data, expression, semicolonToken) { - if (data) { - this.__data = data; - } - this.expression = expression, this.semicolonToken = semicolonToken, expression.parent = this, semicolonToken && (semicolonToken.parent = this); - }; - TypeScript.ExpressionStatementSyntax.prototype.kind = 156 /* ExpressionStatement */; - TypeScript.ExpressionStatementSyntax.prototype.childCount = 2; - TypeScript.ExpressionStatementSyntax.prototype.childAt = function (index) { - switch (index) { - case 0: return this.expression; - case 1: return this.semicolonToken; - } - }; - TypeScript.ReturnStatementSyntax = function (data, returnKeyword, expression, semicolonToken) { - if (data) { - this.__data = data; - } - this.returnKeyword = returnKeyword, this.expression = expression, this.semicolonToken = semicolonToken, returnKeyword.parent = this, expression && (expression.parent = this), semicolonToken && (semicolonToken.parent = this); - }; - TypeScript.ReturnStatementSyntax.prototype.kind = 157 /* ReturnStatement */; - TypeScript.ReturnStatementSyntax.prototype.childCount = 3; - TypeScript.ReturnStatementSyntax.prototype.childAt = function (index) { - switch (index) { - case 0: return this.returnKeyword; - case 1: return this.expression; - case 2: return this.semicolonToken; - } - }; - TypeScript.SwitchStatementSyntax = function (data, switchKeyword, openParenToken, expression, closeParenToken, openBraceToken, switchClauses, closeBraceToken) { - if (data) { - this.__data = data; - } - this.switchKeyword = switchKeyword, this.openParenToken = openParenToken, this.expression = expression, this.closeParenToken = closeParenToken, this.openBraceToken = openBraceToken, this.switchClauses = switchClauses, this.closeBraceToken = closeBraceToken, switchKeyword.parent = this, openParenToken.parent = this, expression.parent = this, closeParenToken.parent = this, openBraceToken.parent = this, switchClauses.parent = this, closeBraceToken.parent = this; - }; - TypeScript.SwitchStatementSyntax.prototype.kind = 158 /* SwitchStatement */; - TypeScript.SwitchStatementSyntax.prototype.childCount = 7; - TypeScript.SwitchStatementSyntax.prototype.childAt = function (index) { - switch (index) { - case 0: return this.switchKeyword; - case 1: return this.openParenToken; - case 2: return this.expression; - case 3: return this.closeParenToken; - case 4: return this.openBraceToken; - case 5: return this.switchClauses; - case 6: return this.closeBraceToken; - } - }; - TypeScript.BreakStatementSyntax = function (data, breakKeyword, identifier, semicolonToken) { - if (data) { - this.__data = data; - } - this.breakKeyword = breakKeyword, this.identifier = identifier, this.semicolonToken = semicolonToken, breakKeyword.parent = this, identifier && (identifier.parent = this), semicolonToken && (semicolonToken.parent = this); - }; - TypeScript.BreakStatementSyntax.prototype.kind = 159 /* BreakStatement */; - TypeScript.BreakStatementSyntax.prototype.childCount = 3; - TypeScript.BreakStatementSyntax.prototype.childAt = function (index) { - switch (index) { - case 0: return this.breakKeyword; - case 1: return this.identifier; - case 2: return this.semicolonToken; - } - }; - TypeScript.ContinueStatementSyntax = function (data, continueKeyword, identifier, semicolonToken) { - if (data) { - this.__data = data; - } - this.continueKeyword = continueKeyword, this.identifier = identifier, this.semicolonToken = semicolonToken, continueKeyword.parent = this, identifier && (identifier.parent = this), semicolonToken && (semicolonToken.parent = this); - }; - TypeScript.ContinueStatementSyntax.prototype.kind = 160 /* ContinueStatement */; - TypeScript.ContinueStatementSyntax.prototype.childCount = 3; - TypeScript.ContinueStatementSyntax.prototype.childAt = function (index) { - switch (index) { - case 0: return this.continueKeyword; - case 1: return this.identifier; - case 2: return this.semicolonToken; - } - }; - TypeScript.ForStatementSyntax = function (data, forKeyword, openParenToken, initializer, firstSemicolonToken, condition, secondSemicolonToken, incrementor, closeParenToken, statement) { - if (data) { - this.__data = data; - } - this.forKeyword = forKeyword, this.openParenToken = openParenToken, this.initializer = initializer, this.firstSemicolonToken = firstSemicolonToken, this.condition = condition, this.secondSemicolonToken = secondSemicolonToken, this.incrementor = incrementor, this.closeParenToken = closeParenToken, this.statement = statement, forKeyword.parent = this, openParenToken.parent = this, initializer && (initializer.parent = this), firstSemicolonToken.parent = this, condition && (condition.parent = this), secondSemicolonToken.parent = this, incrementor && (incrementor.parent = this), closeParenToken.parent = this, statement.parent = this; - }; - TypeScript.ForStatementSyntax.prototype.kind = 161 /* ForStatement */; - TypeScript.ForStatementSyntax.prototype.childCount = 9; - TypeScript.ForStatementSyntax.prototype.childAt = function (index) { - switch (index) { - case 0: return this.forKeyword; - case 1: return this.openParenToken; - case 2: return this.initializer; - case 3: return this.firstSemicolonToken; - case 4: return this.condition; - case 5: return this.secondSemicolonToken; - case 6: return this.incrementor; - case 7: return this.closeParenToken; - case 8: return this.statement; - } - }; - TypeScript.ForInStatementSyntax = function (data, forKeyword, openParenToken, left, inKeyword, right, closeParenToken, statement) { - if (data) { - this.__data = data; - } - this.forKeyword = forKeyword, this.openParenToken = openParenToken, this.left = left, this.inKeyword = inKeyword, this.right = right, this.closeParenToken = closeParenToken, this.statement = statement, forKeyword.parent = this, openParenToken.parent = this, left.parent = this, inKeyword.parent = this, right.parent = this, closeParenToken.parent = this, statement.parent = this; - }; - TypeScript.ForInStatementSyntax.prototype.kind = 162 /* ForInStatement */; - TypeScript.ForInStatementSyntax.prototype.childCount = 7; - TypeScript.ForInStatementSyntax.prototype.childAt = function (index) { - switch (index) { - case 0: return this.forKeyword; - case 1: return this.openParenToken; - case 2: return this.left; - case 3: return this.inKeyword; - case 4: return this.right; - case 5: return this.closeParenToken; - case 6: return this.statement; - } - }; - TypeScript.EmptyStatementSyntax = function (data, semicolonToken) { - if (data) { - this.__data = data; - } - this.semicolonToken = semicolonToken, semicolonToken.parent = this; - }; - TypeScript.EmptyStatementSyntax.prototype.kind = 163 /* EmptyStatement */; - TypeScript.EmptyStatementSyntax.prototype.childCount = 1; - TypeScript.EmptyStatementSyntax.prototype.childAt = function (index) { - switch (index) { - case 0: return this.semicolonToken; - } - }; - TypeScript.ThrowStatementSyntax = function (data, throwKeyword, expression, semicolonToken) { - if (data) { - this.__data = data; - } - this.throwKeyword = throwKeyword, this.expression = expression, this.semicolonToken = semicolonToken, throwKeyword.parent = this, expression && (expression.parent = this), semicolonToken && (semicolonToken.parent = this); - }; - TypeScript.ThrowStatementSyntax.prototype.kind = 164 /* ThrowStatement */; - TypeScript.ThrowStatementSyntax.prototype.childCount = 3; - TypeScript.ThrowStatementSyntax.prototype.childAt = function (index) { - switch (index) { - case 0: return this.throwKeyword; - case 1: return this.expression; - case 2: return this.semicolonToken; - } - }; - TypeScript.WhileStatementSyntax = function (data, whileKeyword, openParenToken, condition, closeParenToken, statement) { - if (data) { - this.__data = data; - } - this.whileKeyword = whileKeyword, this.openParenToken = openParenToken, this.condition = condition, this.closeParenToken = closeParenToken, this.statement = statement, whileKeyword.parent = this, openParenToken.parent = this, condition.parent = this, closeParenToken.parent = this, statement.parent = this; - }; - TypeScript.WhileStatementSyntax.prototype.kind = 165 /* WhileStatement */; - TypeScript.WhileStatementSyntax.prototype.childCount = 5; - TypeScript.WhileStatementSyntax.prototype.childAt = function (index) { - switch (index) { - case 0: return this.whileKeyword; - case 1: return this.openParenToken; - case 2: return this.condition; - case 3: return this.closeParenToken; - case 4: return this.statement; - } - }; - TypeScript.TryStatementSyntax = function (data, tryKeyword, block, catchClause, finallyClause) { - if (data) { - this.__data = data; - } - this.tryKeyword = tryKeyword, this.block = block, this.catchClause = catchClause, this.finallyClause = finallyClause, tryKeyword.parent = this, block.parent = this, catchClause && (catchClause.parent = this), finallyClause && (finallyClause.parent = this); - }; - TypeScript.TryStatementSyntax.prototype.kind = 166 /* TryStatement */; - TypeScript.TryStatementSyntax.prototype.childCount = 4; - TypeScript.TryStatementSyntax.prototype.childAt = function (index) { - switch (index) { - case 0: return this.tryKeyword; - case 1: return this.block; - case 2: return this.catchClause; - case 3: return this.finallyClause; - } - }; - TypeScript.LabeledStatementSyntax = function (data, identifier, colonToken, statement) { - if (data) { - this.__data = data; - } - this.identifier = identifier, this.colonToken = colonToken, this.statement = statement, identifier.parent = this, colonToken.parent = this, statement.parent = this; - }; - TypeScript.LabeledStatementSyntax.prototype.kind = 167 /* LabeledStatement */; - TypeScript.LabeledStatementSyntax.prototype.childCount = 3; - TypeScript.LabeledStatementSyntax.prototype.childAt = function (index) { - switch (index) { - case 0: return this.identifier; - case 1: return this.colonToken; - case 2: return this.statement; - } - }; - TypeScript.DoStatementSyntax = function (data, doKeyword, statement, whileKeyword, openParenToken, condition, closeParenToken, semicolonToken) { - if (data) { - this.__data = data; - } - this.doKeyword = doKeyword, this.statement = statement, this.whileKeyword = whileKeyword, this.openParenToken = openParenToken, this.condition = condition, this.closeParenToken = closeParenToken, this.semicolonToken = semicolonToken, doKeyword.parent = this, statement.parent = this, whileKeyword.parent = this, openParenToken.parent = this, condition.parent = this, closeParenToken.parent = this, semicolonToken && (semicolonToken.parent = this); - }; - TypeScript.DoStatementSyntax.prototype.kind = 168 /* DoStatement */; - TypeScript.DoStatementSyntax.prototype.childCount = 7; - TypeScript.DoStatementSyntax.prototype.childAt = function (index) { - switch (index) { - case 0: return this.doKeyword; - case 1: return this.statement; - case 2: return this.whileKeyword; - case 3: return this.openParenToken; - case 4: return this.condition; - case 5: return this.closeParenToken; - case 6: return this.semicolonToken; - } - }; - TypeScript.DebuggerStatementSyntax = function (data, debuggerKeyword, semicolonToken) { - if (data) { - this.__data = data; - } - this.debuggerKeyword = debuggerKeyword, this.semicolonToken = semicolonToken, debuggerKeyword.parent = this, semicolonToken && (semicolonToken.parent = this); - }; - TypeScript.DebuggerStatementSyntax.prototype.kind = 169 /* DebuggerStatement */; - TypeScript.DebuggerStatementSyntax.prototype.childCount = 2; - TypeScript.DebuggerStatementSyntax.prototype.childAt = function (index) { - switch (index) { - case 0: return this.debuggerKeyword; - case 1: return this.semicolonToken; - } - }; - TypeScript.WithStatementSyntax = function (data, withKeyword, openParenToken, condition, closeParenToken, statement) { - if (data) { - this.__data = data; - } - this.withKeyword = withKeyword, this.openParenToken = openParenToken, this.condition = condition, this.closeParenToken = closeParenToken, this.statement = statement, withKeyword.parent = this, openParenToken.parent = this, condition.parent = this, closeParenToken.parent = this, statement.parent = this; - }; - TypeScript.WithStatementSyntax.prototype.kind = 170 /* WithStatement */; - TypeScript.WithStatementSyntax.prototype.childCount = 5; - TypeScript.WithStatementSyntax.prototype.childAt = function (index) { - switch (index) { - case 0: return this.withKeyword; - case 1: return this.openParenToken; - case 2: return this.condition; - case 3: return this.closeParenToken; - case 4: return this.statement; - } - }; - TypeScript.PrefixUnaryExpressionSyntax = function (data, operatorToken, operand) { - if (data) { - this.__data = data; - } - this.operatorToken = operatorToken, this.operand = operand, operatorToken.parent = this, operand.parent = this; - }; - TypeScript.PrefixUnaryExpressionSyntax.prototype.kind = 171 /* PrefixUnaryExpression */; - TypeScript.PrefixUnaryExpressionSyntax.prototype.childCount = 2; - TypeScript.PrefixUnaryExpressionSyntax.prototype.childAt = function (index) { - switch (index) { - case 0: return this.operatorToken; - case 1: return this.operand; - } - }; - TypeScript.DeleteExpressionSyntax = function (data, deleteKeyword, expression) { - if (data) { - this.__data = data; - } - this.deleteKeyword = deleteKeyword, this.expression = expression, deleteKeyword.parent = this, expression.parent = this; - }; - TypeScript.DeleteExpressionSyntax.prototype.kind = 172 /* DeleteExpression */; - TypeScript.DeleteExpressionSyntax.prototype.childCount = 2; - TypeScript.DeleteExpressionSyntax.prototype.childAt = function (index) { - switch (index) { - case 0: return this.deleteKeyword; - case 1: return this.expression; - } - }; - TypeScript.TypeOfExpressionSyntax = function (data, typeOfKeyword, expression) { - if (data) { - this.__data = data; - } - this.typeOfKeyword = typeOfKeyword, this.expression = expression, typeOfKeyword.parent = this, expression.parent = this; - }; - TypeScript.TypeOfExpressionSyntax.prototype.kind = 173 /* TypeOfExpression */; - TypeScript.TypeOfExpressionSyntax.prototype.childCount = 2; - TypeScript.TypeOfExpressionSyntax.prototype.childAt = function (index) { - switch (index) { - case 0: return this.typeOfKeyword; - case 1: return this.expression; - } - }; - TypeScript.VoidExpressionSyntax = function (data, voidKeyword, expression) { - if (data) { - this.__data = data; - } - this.voidKeyword = voidKeyword, this.expression = expression, voidKeyword.parent = this, expression.parent = this; - }; - TypeScript.VoidExpressionSyntax.prototype.kind = 174 /* VoidExpression */; - TypeScript.VoidExpressionSyntax.prototype.childCount = 2; - TypeScript.VoidExpressionSyntax.prototype.childAt = function (index) { - switch (index) { - case 0: return this.voidKeyword; - case 1: return this.expression; - } - }; - TypeScript.ConditionalExpressionSyntax = function (data, condition, questionToken, whenTrue, colonToken, whenFalse) { - if (data) { - this.__data = data; - } - this.condition = condition, this.questionToken = questionToken, this.whenTrue = whenTrue, this.colonToken = colonToken, this.whenFalse = whenFalse, condition.parent = this, questionToken.parent = this, whenTrue.parent = this, colonToken.parent = this, whenFalse.parent = this; - }; - TypeScript.ConditionalExpressionSyntax.prototype.kind = 175 /* ConditionalExpression */; - TypeScript.ConditionalExpressionSyntax.prototype.childCount = 5; - TypeScript.ConditionalExpressionSyntax.prototype.childAt = function (index) { - switch (index) { - case 0: return this.condition; - case 1: return this.questionToken; - case 2: return this.whenTrue; - case 3: return this.colonToken; - case 4: return this.whenFalse; - } - }; - TypeScript.BinaryExpressionSyntax = function (data, left, operatorToken, right) { - if (data) { - this.__data = data; - } - this.left = left, this.operatorToken = operatorToken, this.right = right, left.parent = this, operatorToken.parent = this, right.parent = this; - }; - TypeScript.BinaryExpressionSyntax.prototype.kind = 176 /* BinaryExpression */; - TypeScript.BinaryExpressionSyntax.prototype.childCount = 3; - TypeScript.BinaryExpressionSyntax.prototype.childAt = function (index) { - switch (index) { - case 0: return this.left; - case 1: return this.operatorToken; - case 2: return this.right; - } - }; - TypeScript.PostfixUnaryExpressionSyntax = function (data, operand, operatorToken) { - if (data) { - this.__data = data; - } - this.operand = operand, this.operatorToken = operatorToken, operand.parent = this, operatorToken.parent = this; - }; - TypeScript.PostfixUnaryExpressionSyntax.prototype.kind = 177 /* PostfixUnaryExpression */; - TypeScript.PostfixUnaryExpressionSyntax.prototype.childCount = 2; - TypeScript.PostfixUnaryExpressionSyntax.prototype.childAt = function (index) { - switch (index) { - case 0: return this.operand; - case 1: return this.operatorToken; - } - }; - TypeScript.MemberAccessExpressionSyntax = function (data, expression, dotToken, name) { - if (data) { - this.__data = data; - } - this.expression = expression, this.dotToken = dotToken, this.name = name, expression.parent = this, dotToken.parent = this, name.parent = this; - }; - TypeScript.MemberAccessExpressionSyntax.prototype.kind = 178 /* MemberAccessExpression */; - TypeScript.MemberAccessExpressionSyntax.prototype.childCount = 3; - TypeScript.MemberAccessExpressionSyntax.prototype.childAt = function (index) { - switch (index) { - case 0: return this.expression; - case 1: return this.dotToken; - case 2: return this.name; - } - }; - TypeScript.InvocationExpressionSyntax = function (data, expression, argumentList) { - if (data) { - this.__data = data; - } - this.expression = expression, this.argumentList = argumentList, expression.parent = this, argumentList.parent = this; - }; - TypeScript.InvocationExpressionSyntax.prototype.kind = 179 /* InvocationExpression */; - TypeScript.InvocationExpressionSyntax.prototype.childCount = 2; - TypeScript.InvocationExpressionSyntax.prototype.childAt = function (index) { - switch (index) { - case 0: return this.expression; - case 1: return this.argumentList; - } - }; - TypeScript.ArrayLiteralExpressionSyntax = function (data, openBracketToken, expressions, closeBracketToken) { - if (data) { - this.__data = data; - } - this.openBracketToken = openBracketToken, this.expressions = expressions, this.closeBracketToken = closeBracketToken, openBracketToken.parent = this, expressions.parent = this, closeBracketToken.parent = this; - }; - TypeScript.ArrayLiteralExpressionSyntax.prototype.kind = 180 /* ArrayLiteralExpression */; - TypeScript.ArrayLiteralExpressionSyntax.prototype.childCount = 3; - TypeScript.ArrayLiteralExpressionSyntax.prototype.childAt = function (index) { - switch (index) { - case 0: return this.openBracketToken; - case 1: return this.expressions; - case 2: return this.closeBracketToken; - } - }; - TypeScript.ObjectLiteralExpressionSyntax = function (data, openBraceToken, propertyAssignments, closeBraceToken) { - if (data) { - this.__data = data; - } - this.openBraceToken = openBraceToken, this.propertyAssignments = propertyAssignments, this.closeBraceToken = closeBraceToken, openBraceToken.parent = this, propertyAssignments.parent = this, closeBraceToken.parent = this; - }; - TypeScript.ObjectLiteralExpressionSyntax.prototype.kind = 181 /* ObjectLiteralExpression */; - TypeScript.ObjectLiteralExpressionSyntax.prototype.childCount = 3; - TypeScript.ObjectLiteralExpressionSyntax.prototype.childAt = function (index) { - switch (index) { - case 0: return this.openBraceToken; - case 1: return this.propertyAssignments; - case 2: return this.closeBraceToken; - } - }; - TypeScript.ObjectCreationExpressionSyntax = function (data, newKeyword, expression, argumentList) { - if (data) { - this.__data = data; - } - this.newKeyword = newKeyword, this.expression = expression, this.argumentList = argumentList, newKeyword.parent = this, expression.parent = this, argumentList && (argumentList.parent = this); - }; - TypeScript.ObjectCreationExpressionSyntax.prototype.kind = 182 /* ObjectCreationExpression */; - TypeScript.ObjectCreationExpressionSyntax.prototype.childCount = 3; - TypeScript.ObjectCreationExpressionSyntax.prototype.childAt = function (index) { - switch (index) { - case 0: return this.newKeyword; - case 1: return this.expression; - case 2: return this.argumentList; - } - }; - TypeScript.ParenthesizedExpressionSyntax = function (data, openParenToken, expression, closeParenToken) { - if (data) { - this.__data = data; - } - this.openParenToken = openParenToken, this.expression = expression, this.closeParenToken = closeParenToken, openParenToken.parent = this, expression.parent = this, closeParenToken.parent = this; - }; - TypeScript.ParenthesizedExpressionSyntax.prototype.kind = 183 /* ParenthesizedExpression */; - TypeScript.ParenthesizedExpressionSyntax.prototype.childCount = 3; - TypeScript.ParenthesizedExpressionSyntax.prototype.childAt = function (index) { - switch (index) { - case 0: return this.openParenToken; - case 1: return this.expression; - case 2: return this.closeParenToken; - } - }; - TypeScript.ParenthesizedArrowFunctionExpressionSyntax = function (data, asyncKeyword, callSignature, equalsGreaterThanToken, body) { - if (data) { - this.__data = data; - } - this.asyncKeyword = asyncKeyword, this.callSignature = callSignature, this.equalsGreaterThanToken = equalsGreaterThanToken, this.body = body, asyncKeyword && (asyncKeyword.parent = this), callSignature.parent = this, equalsGreaterThanToken.parent = this, body.parent = this; - }; - TypeScript.ParenthesizedArrowFunctionExpressionSyntax.prototype.kind = 184 /* ParenthesizedArrowFunctionExpression */; - TypeScript.ParenthesizedArrowFunctionExpressionSyntax.prototype.childCount = 4; - TypeScript.ParenthesizedArrowFunctionExpressionSyntax.prototype.childAt = function (index) { - switch (index) { - case 0: return this.asyncKeyword; - case 1: return this.callSignature; - case 2: return this.equalsGreaterThanToken; - case 3: return this.body; - } - }; - TypeScript.SimpleArrowFunctionExpressionSyntax = function (data, asyncKeyword, parameter, equalsGreaterThanToken, body) { - if (data) { - this.__data = data; - } - this.asyncKeyword = asyncKeyword, this.parameter = parameter, this.equalsGreaterThanToken = equalsGreaterThanToken, this.body = body, asyncKeyword && (asyncKeyword.parent = this), parameter.parent = this, equalsGreaterThanToken.parent = this, body.parent = this; - }; - TypeScript.SimpleArrowFunctionExpressionSyntax.prototype.kind = 185 /* SimpleArrowFunctionExpression */; - TypeScript.SimpleArrowFunctionExpressionSyntax.prototype.childCount = 4; - TypeScript.SimpleArrowFunctionExpressionSyntax.prototype.childAt = function (index) { - switch (index) { - case 0: return this.asyncKeyword; - case 1: return this.parameter; - case 2: return this.equalsGreaterThanToken; - case 3: return this.body; - } - }; - TypeScript.CastExpressionSyntax = function (data, lessThanToken, type, greaterThanToken, expression) { - if (data) { - this.__data = data; - } - this.lessThanToken = lessThanToken, this.type = type, this.greaterThanToken = greaterThanToken, this.expression = expression, lessThanToken.parent = this, type.parent = this, greaterThanToken.parent = this, expression.parent = this; - }; - TypeScript.CastExpressionSyntax.prototype.kind = 186 /* CastExpression */; - TypeScript.CastExpressionSyntax.prototype.childCount = 4; - TypeScript.CastExpressionSyntax.prototype.childAt = function (index) { - switch (index) { - case 0: return this.lessThanToken; - case 1: return this.type; - case 2: return this.greaterThanToken; - case 3: return this.expression; - } - }; - TypeScript.ElementAccessExpressionSyntax = function (data, expression, openBracketToken, argumentExpression, closeBracketToken) { - if (data) { - this.__data = data; - } - this.expression = expression, this.openBracketToken = openBracketToken, this.argumentExpression = argumentExpression, this.closeBracketToken = closeBracketToken, expression.parent = this, openBracketToken.parent = this, argumentExpression && (argumentExpression.parent = this), closeBracketToken.parent = this; - }; - TypeScript.ElementAccessExpressionSyntax.prototype.kind = 187 /* ElementAccessExpression */; - TypeScript.ElementAccessExpressionSyntax.prototype.childCount = 4; - TypeScript.ElementAccessExpressionSyntax.prototype.childAt = function (index) { - switch (index) { - case 0: return this.expression; - case 1: return this.openBracketToken; - case 2: return this.argumentExpression; - case 3: return this.closeBracketToken; - } - }; - TypeScript.FunctionExpressionSyntax = function (data, asyncKeyword, functionKeyword, asterixToken, identifier, callSignature, body) { - if (data) { - this.__data = data; - } - this.asyncKeyword = asyncKeyword, this.functionKeyword = functionKeyword, this.asterixToken = asterixToken, this.identifier = identifier, this.callSignature = callSignature, this.body = body, asyncKeyword && (asyncKeyword.parent = this), functionKeyword.parent = this, asterixToken && (asterixToken.parent = this), identifier && (identifier.parent = this), callSignature.parent = this, body && (body.parent = this); - }; - TypeScript.FunctionExpressionSyntax.prototype.kind = 188 /* FunctionExpression */; - TypeScript.FunctionExpressionSyntax.prototype.childCount = 6; - TypeScript.FunctionExpressionSyntax.prototype.childAt = function (index) { - switch (index) { - case 0: return this.asyncKeyword; - case 1: return this.functionKeyword; - case 2: return this.asterixToken; - case 3: return this.identifier; - case 4: return this.callSignature; - case 5: return this.body; - } - }; - TypeScript.OmittedExpressionSyntax = function (data) { - if (data) { - this.__data = data; - } - }; - TypeScript.OmittedExpressionSyntax.prototype.kind = 189 /* OmittedExpression */; - TypeScript.OmittedExpressionSyntax.prototype.childCount = 0; - TypeScript.OmittedExpressionSyntax.prototype.childAt = function (index) { - throw TypeScript.Errors.invalidOperation(); - }; - TypeScript.TemplateExpressionSyntax = function (data, templateStartToken, templateClauses) { - if (data) { - this.__data = data; - } - this.templateStartToken = templateStartToken, this.templateClauses = templateClauses, templateStartToken.parent = this, templateClauses.parent = this; - }; - TypeScript.TemplateExpressionSyntax.prototype.kind = 190 /* TemplateExpression */; - TypeScript.TemplateExpressionSyntax.prototype.childCount = 2; - TypeScript.TemplateExpressionSyntax.prototype.childAt = function (index) { - switch (index) { - case 0: return this.templateStartToken; - case 1: return this.templateClauses; - } - }; - TypeScript.TemplateAccessExpressionSyntax = function (data, expression, templateExpression) { - if (data) { - this.__data = data; - } - this.expression = expression, this.templateExpression = templateExpression, expression.parent = this, templateExpression.parent = this; - }; - TypeScript.TemplateAccessExpressionSyntax.prototype.kind = 191 /* TemplateAccessExpression */; - TypeScript.TemplateAccessExpressionSyntax.prototype.childCount = 2; - TypeScript.TemplateAccessExpressionSyntax.prototype.childAt = function (index) { - switch (index) { - case 0: return this.expression; - case 1: return this.templateExpression; - } - }; - TypeScript.YieldExpressionSyntax = function (data, yieldKeyword, asterixToken, expression) { - if (data) { - this.__data = data; - } - this.yieldKeyword = yieldKeyword, this.asterixToken = asterixToken, this.expression = expression, yieldKeyword.parent = this, asterixToken && (asterixToken.parent = this), expression && (expression.parent = this); - }; - TypeScript.YieldExpressionSyntax.prototype.kind = 192 /* YieldExpression */; - TypeScript.YieldExpressionSyntax.prototype.childCount = 3; - TypeScript.YieldExpressionSyntax.prototype.childAt = function (index) { - switch (index) { - case 0: return this.yieldKeyword; - case 1: return this.asterixToken; - case 2: return this.expression; - } - }; - TypeScript.AwaitExpressionSyntax = function (data, awaitKeyword, expression) { - if (data) { - this.__data = data; - } - this.awaitKeyword = awaitKeyword, this.expression = expression, awaitKeyword.parent = this, expression && (expression.parent = this); - }; - TypeScript.AwaitExpressionSyntax.prototype.kind = 193 /* AwaitExpression */; - TypeScript.AwaitExpressionSyntax.prototype.childCount = 2; - TypeScript.AwaitExpressionSyntax.prototype.childAt = function (index) { - switch (index) { - case 0: return this.awaitKeyword; - case 1: return this.expression; - } - }; - TypeScript.VariableDeclarationSyntax = function (data, varKeyword, variableDeclarators) { - if (data) { - this.__data = data; - } - this.varKeyword = varKeyword, this.variableDeclarators = variableDeclarators, varKeyword.parent = this, variableDeclarators.parent = this; - }; - TypeScript.VariableDeclarationSyntax.prototype.kind = 194 /* VariableDeclaration */; - TypeScript.VariableDeclarationSyntax.prototype.childCount = 2; - TypeScript.VariableDeclarationSyntax.prototype.childAt = function (index) { - switch (index) { - case 0: return this.varKeyword; - case 1: return this.variableDeclarators; - } - }; - TypeScript.VariableDeclaratorSyntax = function (data, propertyName, typeAnnotation, equalsValueClause) { - if (data) { - this.__data = data; - } - this.propertyName = propertyName, this.typeAnnotation = typeAnnotation, this.equalsValueClause = equalsValueClause, propertyName.parent = this, typeAnnotation && (typeAnnotation.parent = this), equalsValueClause && (equalsValueClause.parent = this); - }; - TypeScript.VariableDeclaratorSyntax.prototype.kind = 195 /* VariableDeclarator */; - TypeScript.VariableDeclaratorSyntax.prototype.childCount = 3; - TypeScript.VariableDeclaratorSyntax.prototype.childAt = function (index) { - switch (index) { - case 0: return this.propertyName; - case 1: return this.typeAnnotation; - case 2: return this.equalsValueClause; - } - }; - TypeScript.ArgumentListSyntax = function (data, typeArgumentList, openParenToken, _arguments, closeParenToken) { - if (data) { - this.__data = data; - } - this.typeArgumentList = typeArgumentList, this.openParenToken = openParenToken, this.arguments = _arguments, this.closeParenToken = closeParenToken, typeArgumentList && (typeArgumentList.parent = this), openParenToken.parent = this, _arguments.parent = this, closeParenToken.parent = this; - }; - TypeScript.ArgumentListSyntax.prototype.kind = 196 /* ArgumentList */; - TypeScript.ArgumentListSyntax.prototype.childCount = 4; - TypeScript.ArgumentListSyntax.prototype.childAt = function (index) { - switch (index) { - case 0: return this.typeArgumentList; - case 1: return this.openParenToken; - case 2: return this.arguments; - case 3: return this.closeParenToken; - } - }; - TypeScript.ParameterListSyntax = function (data, openParenToken, parameters, closeParenToken) { - if (data) { - this.__data = data; - } - this.openParenToken = openParenToken, this.parameters = parameters, this.closeParenToken = closeParenToken, openParenToken.parent = this, parameters.parent = this, closeParenToken.parent = this; - }; - TypeScript.ParameterListSyntax.prototype.kind = 197 /* ParameterList */; - TypeScript.ParameterListSyntax.prototype.childCount = 3; - TypeScript.ParameterListSyntax.prototype.childAt = function (index) { - switch (index) { - case 0: return this.openParenToken; - case 1: return this.parameters; - case 2: return this.closeParenToken; - } - }; - TypeScript.TypeArgumentListSyntax = function (data, lessThanToken, typeArguments, greaterThanToken) { - if (data) { - this.__data = data; - } - this.lessThanToken = lessThanToken, this.typeArguments = typeArguments, this.greaterThanToken = greaterThanToken, lessThanToken.parent = this, typeArguments.parent = this, greaterThanToken.parent = this; - }; - TypeScript.TypeArgumentListSyntax.prototype.kind = 198 /* TypeArgumentList */; - TypeScript.TypeArgumentListSyntax.prototype.childCount = 3; - TypeScript.TypeArgumentListSyntax.prototype.childAt = function (index) { - switch (index) { - case 0: return this.lessThanToken; - case 1: return this.typeArguments; - case 2: return this.greaterThanToken; - } - }; - TypeScript.TypeParameterListSyntax = function (data, lessThanToken, typeParameters, greaterThanToken) { - if (data) { - this.__data = data; - } - this.lessThanToken = lessThanToken, this.typeParameters = typeParameters, this.greaterThanToken = greaterThanToken, lessThanToken.parent = this, typeParameters.parent = this, greaterThanToken.parent = this; - }; - TypeScript.TypeParameterListSyntax.prototype.kind = 199 /* TypeParameterList */; - TypeScript.TypeParameterListSyntax.prototype.childCount = 3; - TypeScript.TypeParameterListSyntax.prototype.childAt = function (index) { - switch (index) { - case 0: return this.lessThanToken; - case 1: return this.typeParameters; - case 2: return this.greaterThanToken; - } - }; - TypeScript.HeritageClauseSyntax = function (data, extendsOrImplementsKeyword, typeNames) { - if (data) { - this.__data = data; - } - this.extendsOrImplementsKeyword = extendsOrImplementsKeyword, this.typeNames = typeNames, extendsOrImplementsKeyword.parent = this, typeNames.parent = this; - }; - TypeScript.HeritageClauseSyntax.prototype.kind = 200 /* HeritageClause */; - TypeScript.HeritageClauseSyntax.prototype.childCount = 2; - TypeScript.HeritageClauseSyntax.prototype.childAt = function (index) { - switch (index) { - case 0: return this.extendsOrImplementsKeyword; - case 1: return this.typeNames; - } - }; - TypeScript.EqualsValueClauseSyntax = function (data, equalsToken, value) { - if (data) { - this.__data = data; - } - this.equalsToken = equalsToken, this.value = value, equalsToken.parent = this, value.parent = this; - }; - TypeScript.EqualsValueClauseSyntax.prototype.kind = 201 /* EqualsValueClause */; - TypeScript.EqualsValueClauseSyntax.prototype.childCount = 2; - TypeScript.EqualsValueClauseSyntax.prototype.childAt = function (index) { - switch (index) { - case 0: return this.equalsToken; - case 1: return this.value; - } - }; - TypeScript.CaseSwitchClauseSyntax = function (data, caseKeyword, expression, colonToken, statements) { - if (data) { - this.__data = data; - } - this.caseKeyword = caseKeyword, this.expression = expression, this.colonToken = colonToken, this.statements = statements, caseKeyword.parent = this, expression.parent = this, colonToken.parent = this, statements.parent = this; - }; - TypeScript.CaseSwitchClauseSyntax.prototype.kind = 202 /* CaseSwitchClause */; - TypeScript.CaseSwitchClauseSyntax.prototype.childCount = 4; - TypeScript.CaseSwitchClauseSyntax.prototype.childAt = function (index) { - switch (index) { - case 0: return this.caseKeyword; - case 1: return this.expression; - case 2: return this.colonToken; - case 3: return this.statements; - } - }; - TypeScript.DefaultSwitchClauseSyntax = function (data, defaultKeyword, colonToken, statements) { - if (data) { - this.__data = data; - } - this.defaultKeyword = defaultKeyword, this.colonToken = colonToken, this.statements = statements, defaultKeyword.parent = this, colonToken.parent = this, statements.parent = this; - }; - TypeScript.DefaultSwitchClauseSyntax.prototype.kind = 203 /* DefaultSwitchClause */; - TypeScript.DefaultSwitchClauseSyntax.prototype.childCount = 3; - TypeScript.DefaultSwitchClauseSyntax.prototype.childAt = function (index) { - switch (index) { - case 0: return this.defaultKeyword; - case 1: return this.colonToken; - case 2: return this.statements; - } - }; - TypeScript.ElseClauseSyntax = function (data, elseKeyword, statement) { - if (data) { - this.__data = data; - } - this.elseKeyword = elseKeyword, this.statement = statement, elseKeyword.parent = this, statement.parent = this; - }; - TypeScript.ElseClauseSyntax.prototype.kind = 204 /* ElseClause */; - TypeScript.ElseClauseSyntax.prototype.childCount = 2; - TypeScript.ElseClauseSyntax.prototype.childAt = function (index) { - switch (index) { - case 0: return this.elseKeyword; - case 1: return this.statement; - } - }; - TypeScript.CatchClauseSyntax = function (data, catchKeyword, openParenToken, identifier, typeAnnotation, closeParenToken, block) { - if (data) { - this.__data = data; - } - this.catchKeyword = catchKeyword, this.openParenToken = openParenToken, this.identifier = identifier, this.typeAnnotation = typeAnnotation, this.closeParenToken = closeParenToken, this.block = block, catchKeyword.parent = this, openParenToken.parent = this, identifier.parent = this, typeAnnotation && (typeAnnotation.parent = this), closeParenToken.parent = this, block.parent = this; - }; - TypeScript.CatchClauseSyntax.prototype.kind = 205 /* CatchClause */; - TypeScript.CatchClauseSyntax.prototype.childCount = 6; - TypeScript.CatchClauseSyntax.prototype.childAt = function (index) { - switch (index) { - case 0: return this.catchKeyword; - case 1: return this.openParenToken; - case 2: return this.identifier; - case 3: return this.typeAnnotation; - case 4: return this.closeParenToken; - case 5: return this.block; - } - }; - TypeScript.FinallyClauseSyntax = function (data, finallyKeyword, block) { - if (data) { - this.__data = data; - } - this.finallyKeyword = finallyKeyword, this.block = block, finallyKeyword.parent = this, block.parent = this; - }; - TypeScript.FinallyClauseSyntax.prototype.kind = 206 /* FinallyClause */; - TypeScript.FinallyClauseSyntax.prototype.childCount = 2; - TypeScript.FinallyClauseSyntax.prototype.childAt = function (index) { - switch (index) { - case 0: return this.finallyKeyword; - case 1: return this.block; - } - }; - TypeScript.TemplateClauseSyntax = function (data, expression, templateMiddleOrEndToken) { - if (data) { - this.__data = data; - } - this.expression = expression, this.templateMiddleOrEndToken = templateMiddleOrEndToken, expression.parent = this, templateMiddleOrEndToken.parent = this; - }; - TypeScript.TemplateClauseSyntax.prototype.kind = 207 /* TemplateClause */; - TypeScript.TemplateClauseSyntax.prototype.childCount = 2; - TypeScript.TemplateClauseSyntax.prototype.childAt = function (index) { - switch (index) { - case 0: return this.expression; - case 1: return this.templateMiddleOrEndToken; - } - }; - TypeScript.TypeParameterSyntax = function (data, identifier, constraint) { - if (data) { - this.__data = data; - } - this.identifier = identifier, this.constraint = constraint, identifier.parent = this, constraint && (constraint.parent = this); - }; - TypeScript.TypeParameterSyntax.prototype.kind = 208 /* TypeParameter */; - TypeScript.TypeParameterSyntax.prototype.childCount = 2; - TypeScript.TypeParameterSyntax.prototype.childAt = function (index) { - switch (index) { - case 0: return this.identifier; - case 1: return this.constraint; - } - }; - TypeScript.ConstraintSyntax = function (data, extendsKeyword, typeOrExpression) { - if (data) { - this.__data = data; - } - this.extendsKeyword = extendsKeyword, this.typeOrExpression = typeOrExpression, extendsKeyword.parent = this, typeOrExpression.parent = this; - }; - TypeScript.ConstraintSyntax.prototype.kind = 209 /* Constraint */; - TypeScript.ConstraintSyntax.prototype.childCount = 2; - TypeScript.ConstraintSyntax.prototype.childAt = function (index) { - switch (index) { - case 0: return this.extendsKeyword; - case 1: return this.typeOrExpression; - } - }; - TypeScript.ParameterSyntax = function (data, dotDotDotToken, modifiers, identifier, questionToken, typeAnnotation, equalsValueClause) { - if (data) { - this.__data = data; - } - this.dotDotDotToken = dotDotDotToken, this.modifiers = modifiers, this.identifier = identifier, this.questionToken = questionToken, this.typeAnnotation = typeAnnotation, this.equalsValueClause = equalsValueClause, dotDotDotToken && (dotDotDotToken.parent = this), modifiers.parent = this, identifier.parent = this, questionToken && (questionToken.parent = this), typeAnnotation && (typeAnnotation.parent = this), equalsValueClause && (equalsValueClause.parent = this); - }; - TypeScript.ParameterSyntax.prototype.kind = 210 /* Parameter */; - TypeScript.ParameterSyntax.prototype.childCount = 6; - TypeScript.ParameterSyntax.prototype.childAt = function (index) { - switch (index) { - case 0: return this.dotDotDotToken; - case 1: return this.modifiers; - case 2: return this.identifier; - case 3: return this.questionToken; - case 4: return this.typeAnnotation; - case 5: return this.equalsValueClause; - } - }; - TypeScript.EnumElementSyntax = function (data, propertyName, equalsValueClause) { - if (data) { - this.__data = data; - } - this.propertyName = propertyName, this.equalsValueClause = equalsValueClause, propertyName.parent = this, equalsValueClause && (equalsValueClause.parent = this); - }; - TypeScript.EnumElementSyntax.prototype.kind = 211 /* EnumElement */; - TypeScript.EnumElementSyntax.prototype.childCount = 2; - TypeScript.EnumElementSyntax.prototype.childAt = function (index) { - switch (index) { - case 0: return this.propertyName; - case 1: return this.equalsValueClause; - } - }; - TypeScript.TypeAnnotationSyntax = function (data, colonToken, type) { - if (data) { - this.__data = data; - } - this.colonToken = colonToken, this.type = type, colonToken.parent = this, type.parent = this; - }; - TypeScript.TypeAnnotationSyntax.prototype.kind = 212 /* TypeAnnotation */; - TypeScript.TypeAnnotationSyntax.prototype.childCount = 2; - TypeScript.TypeAnnotationSyntax.prototype.childAt = function (index) { - switch (index) { - case 0: return this.colonToken; - case 1: return this.type; - } - }; - TypeScript.ExpressionBody = function (data, equalsGreaterThanToken, expression) { - if (data) { - this.__data = data; - } - this.equalsGreaterThanToken = equalsGreaterThanToken, this.expression = expression, equalsGreaterThanToken.parent = this, expression.parent = this; - }; - TypeScript.ExpressionBody.prototype.kind = 213 /* ExpressionBody */; - TypeScript.ExpressionBody.prototype.childCount = 2; - TypeScript.ExpressionBody.prototype.childAt = function (index) { - switch (index) { - case 0: return this.equalsGreaterThanToken; - case 1: return this.expression; - } - }; - TypeScript.ComputedPropertyNameSyntax = function (data, openBracketToken, expression, closeBracketToken) { - if (data) { - this.__data = data; - } - this.openBracketToken = openBracketToken, this.expression = expression, this.closeBracketToken = closeBracketToken, openBracketToken.parent = this, expression.parent = this, closeBracketToken.parent = this; - }; - TypeScript.ComputedPropertyNameSyntax.prototype.kind = 214 /* ComputedPropertyName */; - TypeScript.ComputedPropertyNameSyntax.prototype.childCount = 3; - TypeScript.ComputedPropertyNameSyntax.prototype.childAt = function (index) { - switch (index) { - case 0: return this.openBracketToken; - case 1: return this.expression; - case 2: return this.closeBracketToken; - } - }; - TypeScript.PropertyAssignmentSyntax = function (data, propertyName, colonToken, expression) { - if (data) { - this.__data = data; - } - this.propertyName = propertyName, this.colonToken = colonToken, this.expression = expression, propertyName.parent = this, colonToken.parent = this, expression.parent = this; - }; - TypeScript.PropertyAssignmentSyntax.prototype.kind = 215 /* PropertyAssignment */; - TypeScript.PropertyAssignmentSyntax.prototype.childCount = 3; - TypeScript.PropertyAssignmentSyntax.prototype.childAt = function (index) { - switch (index) { - case 0: return this.propertyName; - case 1: return this.colonToken; - case 2: return this.expression; - } - }; - TypeScript.ExternalModuleReferenceSyntax = function (data, requireKeyword, openParenToken, stringLiteral, closeParenToken) { - if (data) { - this.__data = data; - } - this.requireKeyword = requireKeyword, this.openParenToken = openParenToken, this.stringLiteral = stringLiteral, this.closeParenToken = closeParenToken, requireKeyword.parent = this, openParenToken.parent = this, stringLiteral.parent = this, closeParenToken.parent = this; - }; - TypeScript.ExternalModuleReferenceSyntax.prototype.kind = 216 /* ExternalModuleReference */; - TypeScript.ExternalModuleReferenceSyntax.prototype.childCount = 4; - TypeScript.ExternalModuleReferenceSyntax.prototype.childAt = function (index) { - switch (index) { - case 0: return this.requireKeyword; - case 1: return this.openParenToken; - case 2: return this.stringLiteral; - case 3: return this.closeParenToken; - } - }; - TypeScript.ModuleNameModuleReferenceSyntax = function (data, moduleName) { - if (data) { - this.__data = data; - } - this.moduleName = moduleName, moduleName.parent = this; - }; - TypeScript.ModuleNameModuleReferenceSyntax.prototype.kind = 217 /* ModuleNameModuleReference */; - TypeScript.ModuleNameModuleReferenceSyntax.prototype.childCount = 1; - TypeScript.ModuleNameModuleReferenceSyntax.prototype.childAt = function (index) { - switch (index) { - case 0: return this.moduleName; - } - }; -})(TypeScript || (TypeScript = {})); -var TypeScript; -(function (TypeScript) { - TypeScript.syntaxDiagnosticsTime = 0; - var SyntaxTree = (function () { - function SyntaxTree(sourceUnit, isDeclaration, diagnostics, fileName, text, languageVersion) { - this.text = text; - this._allDiagnostics = undefined; - this._sourceUnit = sourceUnit; - this._isDeclaration = isDeclaration; - this._parserDiagnostics = diagnostics; - this._fileName = fileName; - this._lineMap = text.lineMap(); - this._languageVersion = languageVersion; - sourceUnit.syntaxTree = this; - } - SyntaxTree.prototype.sourceUnit = function () { - return this._sourceUnit; - }; - SyntaxTree.prototype.isDeclaration = function () { - return this._isDeclaration; - }; - SyntaxTree.prototype.computeDiagnostics = function () { - if (this._parserDiagnostics.length > 0) { - return this._parserDiagnostics; - } - var diagnostics = []; - TypeScript.visitNodeOrToken(new GrammarCheckerWalker(this, diagnostics), this.sourceUnit()); - return diagnostics; - }; - SyntaxTree.prototype.diagnostics = function () { - if (!this._allDiagnostics) { - var start = new Date().getTime(); - this._allDiagnostics = this.computeDiagnostics(); - TypeScript.syntaxDiagnosticsTime += new Date().getTime() - start; - } - return this._allDiagnostics; - }; - SyntaxTree.prototype.fileName = function () { - return this._fileName; - }; - SyntaxTree.prototype.lineMap = function () { - return this._lineMap; - }; - SyntaxTree.prototype.languageVersion = function () { - return this._languageVersion; - }; - SyntaxTree.prototype.cacheSyntaxTreeInfo = function () { - var firstToken = firstSyntaxTreeToken(this); - var leadingTrivia = firstToken.leadingTrivia(this.text); - this._isExternalModule = !!externalModuleIndicatorSpanWorker(this, firstToken); - var amdDependencies = []; - for (var i = 0, n = leadingTrivia.count(); i < n; i++) { - var trivia = leadingTrivia.syntaxTriviaAt(i); - if (trivia.isComment()) { - var amdDependency = this.getAmdDependency(trivia.fullText()); - if (amdDependency) { - amdDependencies.push(amdDependency); - } - } - } - this._amdDependencies = amdDependencies; - }; - SyntaxTree.prototype.getAmdDependency = function (comment) { - var amdDependencyRegEx = /^\/\/\/\s* 0) { - var modifiers = parameter.modifiers; - for (var i = 0, n = modifiers.length; i < n; i++) { - var modifier = modifiers[i]; - if (this.checkParameterAccessibilityModifier(modifier, i)) { - return true; - } - } - } - return false; - }; - GrammarCheckerWalker.prototype.checkParameterAccessibilityModifier = function (modifier, modifierIndex) { - if (!TypeScript.SyntaxFacts.isAccessibilityModifier(modifier.kind)) { - return this.pushDiagnostic(modifier, TypeScript.DiagnosticCode._0_modifier_cannot_appear_on_a_parameter, [modifier.text()]); - } - else { - if (modifierIndex > 0) { - return this.pushDiagnostic(modifier, TypeScript.DiagnosticCode.Accessibility_modifier_already_seen); - } - } - return false; - }; - GrammarCheckerWalker.prototype.checkForTrailingComma = function (list) { - if (list.length === 0 || list.length % 2 === 1) { - return false; - } - var child = list[list.length - 1]; - return this.pushDiagnostic(child, TypeScript.DiagnosticCode.Trailing_comma_not_allowed); - }; - GrammarCheckerWalker.prototype.checkForAtLeastOneElement = function (list, reportToken, listKind) { - if (TypeScript.childCount(list) > 0) { - return false; - } - return this.pushDiagnostic(reportToken, TypeScript.DiagnosticCode._0_list_cannot_be_empty, [listKind]); - }; - GrammarCheckerWalker.prototype.visitParameterList = function (node) { - if (this.checkParameterListOrder(node) || this.checkForTrailingComma(node.parameters)) { - return; - } - _super.prototype.visitParameterList.call(this, node); - }; - GrammarCheckerWalker.prototype.visitHeritageClause = function (node) { - if (this.checkForTrailingComma(node.typeNames) || this.checkForAtLeastOneElement(node.typeNames, node.extendsOrImplementsKeyword, TypeScript.SyntaxFacts.getText(node.extendsOrImplementsKeyword.kind))) { - return; - } - _super.prototype.visitHeritageClause.call(this, node); - }; - GrammarCheckerWalker.prototype.visitArgumentList = function (node) { - if (this.checkForTrailingComma(node.arguments)) { - return; - } - _super.prototype.visitArgumentList.call(this, node); - }; - GrammarCheckerWalker.prototype.visitVariableDeclaration = function (node) { - if (this.checkForAtLeastOneElement(node.variableDeclarators, node.varKeyword, TypeScript.getLocalizedText(TypeScript.DiagnosticCode.variable_declaration, undefined)) || this.checkForTrailingComma(node.variableDeclarators)) { - return; - } - _super.prototype.visitVariableDeclaration.call(this, node); - }; - GrammarCheckerWalker.prototype.visitTypeArgumentList = function (node) { - if (this.checkForTrailingComma(node.typeArguments) || this.checkForAtLeastOneElement(node.typeArguments, node.lessThanToken, TypeScript.getLocalizedText(TypeScript.DiagnosticCode.type_argument, undefined))) { - return; - } - _super.prototype.visitTypeArgumentList.call(this, node); - }; - GrammarCheckerWalker.prototype.visitTupleType = function (node) { - if (this.checkForTrailingComma(node.types) || this.checkForAtLeastOneElement(node.types, node.openBracketToken, TypeScript.getLocalizedText(TypeScript.DiagnosticCode.type, undefined))) { - return; - } - _super.prototype.visitTupleType.call(this, node); - }; - GrammarCheckerWalker.prototype.visitTypeParameterList = function (node) { - if (this.checkForTrailingComma(node.typeParameters) || this.checkForAtLeastOneElement(node.typeParameters, node.lessThanToken, TypeScript.getLocalizedText(TypeScript.DiagnosticCode.type_parameter, undefined))) { - return; - } - _super.prototype.visitTypeParameterList.call(this, node); - }; - GrammarCheckerWalker.prototype.checkIndexSignatureParameter = function (node) { - if (node.parameters.length !== 1) { - return this.pushDiagnostic(node.openBracketToken, TypeScript.DiagnosticCode.Index_signature_must_have_exactly_one_parameter); - } - var parameter = TypeScript.nonSeparatorAt(node.parameters, 0); - if (parameter.dotDotDotToken) { - return this.pushDiagnostic(parameter, TypeScript.DiagnosticCode.Index_signatures_cannot_have_rest_parameters); - } - else if (parameter.modifiers.length > 0) { - return this.pushDiagnostic(parameter, TypeScript.DiagnosticCode.Index_signature_parameter_cannot_have_modifiers); - } - else if (parameter.questionToken) { - return this.pushDiagnostic(parameter, TypeScript.DiagnosticCode.Index_signature_parameter_cannot_have_a_question_mark); - } - else if (parameter.equalsValueClause) { - return this.pushDiagnostic(parameter, TypeScript.DiagnosticCode.Index_signature_parameter_cannot_have_an_initializer); - } - else if (!parameter.typeAnnotation) { - return this.pushDiagnostic(parameter, TypeScript.DiagnosticCode.Index_signature_parameter_must_have_a_type_annotation); - } - else if (parameter.typeAnnotation.type.kind !== 73 /* StringKeyword */ && parameter.typeAnnotation.type.kind !== 71 /* NumberKeyword */) { - return this.pushDiagnostic(parameter, TypeScript.DiagnosticCode.Index_signature_parameter_type_must_be_string_or_number); - } - return false; - }; - GrammarCheckerWalker.prototype.visitIndexSignature = function (node) { - if (this.checkIndexSignatureParameter(node)) { - return; - } - if (!node.typeAnnotation) { - this.pushDiagnostic(node, TypeScript.DiagnosticCode.Index_signature_must_have_a_type_annotation); - return; - } - _super.prototype.visitIndexSignature.call(this, node); - }; - GrammarCheckerWalker.prototype.checkClassDeclarationHeritageClauses = function (node) { - var seenExtendsClause = false; - var seenImplementsClause = false; - for (var i = 0, n = node.heritageClauses.length; i < n; i++) { - TypeScript.Debug.assert(i <= 2); - var heritageClause = node.heritageClauses[i]; - if (heritageClause.extendsOrImplementsKeyword.kind === 50 /* ExtendsKeyword */) { - if (seenExtendsClause) { - return this.pushDiagnostic(heritageClause, TypeScript.DiagnosticCode.extends_clause_already_seen); - } - if (seenImplementsClause) { - return this.pushDiagnostic(heritageClause, TypeScript.DiagnosticCode.extends_clause_must_precede_implements_clause); - } - if (TypeScript.nonSeparatorCount(heritageClause.typeNames) > 1) { - return this.pushDiagnostic(heritageClause, TypeScript.DiagnosticCode.Classes_can_only_extend_a_single_class); - } - seenExtendsClause = true; - } - else { - TypeScript.Debug.assert(heritageClause.extendsOrImplementsKeyword.kind === 53 /* ImplementsKeyword */); - if (seenImplementsClause) { - return this.pushDiagnostic(heritageClause, TypeScript.DiagnosticCode.implements_clause_already_seen); - } - seenImplementsClause = true; - } - } - return false; - }; - GrammarCheckerWalker.prototype.checkForDisallowedDeclareModifier = function (modifiers) { - if (this.inAmbientDeclaration) { - var declareToken = TypeScript.SyntaxUtilities.getToken(modifiers, 67 /* DeclareKeyword */); - if (declareToken) { - return this.pushDiagnostic(declareToken, TypeScript.DiagnosticCode.A_declare_modifier_cannot_be_used_in_an_already_ambient_context); - } - } - return false; - }; - GrammarCheckerWalker.prototype.checkForRequiredDeclareModifier = function (moduleElement, reportToken, modifiers) { - if (!this.inAmbientDeclaration && this.syntaxTree.isDeclaration()) { - if (!TypeScript.SyntaxUtilities.containsToken(modifiers, 67 /* DeclareKeyword */)) { - return this.pushDiagnostic(reportToken, TypeScript.DiagnosticCode.A_declare_modifier_is_required_for_a_top_level_declaration_in_a_d_ts_file); - } - } - }; - GrammarCheckerWalker.prototype.visitClassDeclaration = function (node) { - if (this.checkForDisallowedDeclareModifier(node.modifiers) || this.checkForRequiredDeclareModifier(node, node.identifier, node.modifiers) || this.checkModuleElementModifiers(node.modifiers) || this.checkClassDeclarationHeritageClauses(node) || this.checkForDisallowedAsyncModifier(node.modifiers)) { - return; - } - var savedInAmbientDeclaration = this.inAmbientDeclaration; - this.inAmbientDeclaration = this.inAmbientDeclaration || this.syntaxTree.isDeclaration() || TypeScript.SyntaxUtilities.containsToken(node.modifiers, 67 /* DeclareKeyword */); - _super.prototype.visitClassDeclaration.call(this, node); - this.inAmbientDeclaration = savedInAmbientDeclaration; - }; - GrammarCheckerWalker.prototype.checkInterfaceDeclarationHeritageClauses = function (node) { - var seenExtendsClause = false; - for (var i = 0, n = node.heritageClauses.length; i < n; i++) { - TypeScript.Debug.assert(i <= 1); - var heritageClause = node.heritageClauses[i]; - if (heritageClause.extendsOrImplementsKeyword.kind === 50 /* ExtendsKeyword */) { - if (seenExtendsClause) { - return this.pushDiagnostic(heritageClause, TypeScript.DiagnosticCode.extends_clause_already_seen); - } - seenExtendsClause = true; - } - else { - TypeScript.Debug.assert(heritageClause.extendsOrImplementsKeyword.kind === 53 /* ImplementsKeyword */); - return this.pushDiagnostic(heritageClause, TypeScript.DiagnosticCode.Interface_declaration_cannot_have_implements_clause); - } - } - return false; - }; - GrammarCheckerWalker.prototype.checkInterfaceModifiers = function (modifiers) { - for (var i = 0, n = modifiers.length; i < n; i++) { - var modifier = modifiers[i]; - if (modifier.kind === 67 /* DeclareKeyword */) { - return this.pushDiagnostic(modifier, TypeScript.DiagnosticCode.A_declare_modifier_cannot_be_used_with_an_interface_declaration); - } - } - return false; - }; - GrammarCheckerWalker.prototype.visitInterfaceDeclaration = function (node) { - if (this.checkInterfaceModifiers(node.modifiers) || this.checkModuleElementModifiers(node.modifiers) || this.checkInterfaceDeclarationHeritageClauses(node) || this.checkForDisallowedAsyncModifier(node.modifiers)) { - return; - } - _super.prototype.visitInterfaceDeclaration.call(this, node); - }; - GrammarCheckerWalker.prototype.checkClassElementModifiers = function (list) { - var seenAccessibilityModifier = false; - var seenStaticModifier = false; - var seenAsyncModifier = false; - for (var i = 0, n = list.length; i < n; i++) { - var modifier = list[i]; - if (TypeScript.SyntaxFacts.isAccessibilityModifier(modifier.kind)) { - if (seenAccessibilityModifier) { - return this.pushDiagnostic(modifier, TypeScript.DiagnosticCode.Accessibility_modifier_already_seen); - } - if (seenStaticModifier) { - return this.pushDiagnostic(modifier, TypeScript.DiagnosticCode._0_modifier_must_precede_1_modifier, [modifier.text(), list[i - 1].text()]); - } - if (seenAsyncModifier) { - return this.pushDiagnostic(modifier, TypeScript.DiagnosticCode._0_modifier_must_precede_1_modifier, [modifier.text(), TypeScript.SyntaxFacts.getText(63 /* AsyncKeyword */)]); - } - seenAccessibilityModifier = true; - } - else if (modifier.kind === 60 /* StaticKeyword */) { - if (seenStaticModifier) { - return this.pushDiagnostic(modifier, TypeScript.DiagnosticCode._0_modifier_already_seen, [modifier.text()]); - } - if (seenAsyncModifier) { - return this.pushDiagnostic(modifier, TypeScript.DiagnosticCode._0_modifier_must_precede_1_modifier, [modifier.text(), TypeScript.SyntaxFacts.getText(63 /* AsyncKeyword */)]); - } - seenStaticModifier = true; - } - else if (modifier.kind === 63 /* AsyncKeyword */) { - if (seenAsyncModifier) { - return this.pushDiagnostic(modifier, TypeScript.DiagnosticCode._0_modifier_already_seen, [modifier.text()]); - } - seenAsyncModifier = true; - } - else { - return this.pushDiagnostic(modifier, TypeScript.DiagnosticCode._0_modifier_cannot_appear_on_a_class_element, [modifier.text()]); - } - } - return false; - }; - GrammarCheckerWalker.prototype.visitMemberVariableDeclaration = function (node) { - if (this.checkClassElementModifiers(node.modifiers) || this.checkForDisallowedAsyncModifier(node.modifiers)) { - return; - } - _super.prototype.visitMemberVariableDeclaration.call(this, node); - }; - GrammarCheckerWalker.prototype.visitMethodSignature = function (node) { - if (this.checkForDisallowedTemplatePropertyName(node.propertyName) || this.checkForDisallowedComputedPropertyName(node.propertyName)) { - return; - } - _super.prototype.visitMethodSignature.call(this, node); - }; - GrammarCheckerWalker.prototype.visitPropertySignature = function (node) { - if (this.checkForDisallowedTemplatePropertyName(node.propertyName) || this.checkForDisallowedComputedPropertyName(node.propertyName)) { - return; - } - _super.prototype.visitPropertySignature.call(this, node); - }; - GrammarCheckerWalker.prototype.visitMemberFunctionDeclaration = function (node) { - if (node.parent && node.parent.parent && node.parent.kind === 1 /* List */ && node.parent.parent.kind === 181 /* ObjectLiteralExpression */) { - if (this.checkForSemicolonInsteadOfBlock(node, node.body) || this.checkForDisallowedObjectLiteralMethod(node.modifiers)) { - return; - } - } - else { - if (this.checkClassElementModifiers(node.modifiers)) { - return; - } - } - if (this.checkForDisallowedTemplatePropertyName(node.propertyName) || this.checkForAsyncGenerator(this.getAsyncModifier(node.modifiers), node.asterixToken)) { - return; - } - _super.prototype.visitMemberFunctionDeclaration.call(this, node); - }; - GrammarCheckerWalker.prototype.checkForDisallowedObjectLiteralMethod = function (modifiers) { - for (var i = 0, n = modifiers.length; i < n; i++) { - var modifier = modifiers[i]; - if (modifier.kind !== 63 /* AsyncKeyword */) { - return this.pushDiagnostic(modifier, TypeScript.DiagnosticCode.Modifiers_cannot_appear_here); - } - } - return false; - }; - GrammarCheckerWalker.prototype.checkGetAccessorParameter = function (node) { - if (node.callSignature.parameterList.parameters.length !== 0) { - return this.pushDiagnostic(node.propertyName, TypeScript.DiagnosticCode.get_accessor_cannot_have_parameters); - } - return false; - }; - GrammarCheckerWalker.prototype.visitIndexMemberDeclaration = function (node) { - if (this.checkIndexMemberModifiers(node)) { - return; - } - _super.prototype.visitIndexMemberDeclaration.call(this, node); - }; - GrammarCheckerWalker.prototype.checkIndexMemberModifiers = function (node) { - if (node.modifiers.length > 0) { - return this.pushDiagnostic(node.modifiers[0], TypeScript.DiagnosticCode.Modifiers_cannot_appear_here); - } - return false; - }; - GrammarCheckerWalker.prototype.checkEcmaScriptVersionIsAtLeast = function (reportToken, languageVersion, diagnosticKey) { - if (this.syntaxTree.languageVersion() < languageVersion) { - return this.pushDiagnostic(reportToken, diagnosticKey); - } - return false; - }; - GrammarCheckerWalker.prototype.visitObjectLiteralExpression = function (node) { - var savedInObjectLiteralExpression = this.inObjectLiteralExpression; - this.inObjectLiteralExpression = true; - _super.prototype.visitObjectLiteralExpression.call(this, node); - this.inObjectLiteralExpression = savedInObjectLiteralExpression; - }; - GrammarCheckerWalker.prototype.visitGetAccessor = function (node) { - if (this.checkForAccessorDeclarationInAmbientContext(node) || this.checkEcmaScriptVersionIsAtLeast(node.getKeyword, 1 /* ES5 */, TypeScript.DiagnosticCode.Accessors_are_only_available_when_targeting_ECMAScript_5_and_higher) || this.checkForDisallowedModifiers(node.modifiers) || this.checkClassElementModifiers(node.modifiers) || this.checkForDisallowedAccessorTypeParameters(node.callSignature) || this.checkGetAccessorParameter(node) || this.checkForDisallowedTemplatePropertyName(node.propertyName) || this.checkForSemicolonInsteadOfBlock(node, node.body) || this.checkForDisallowedAsyncModifier(node.modifiers)) { - return; - } - _super.prototype.visitGetAccessor.call(this, node); - }; - GrammarCheckerWalker.prototype.checkForSemicolonInsteadOfBlock = function (parent, node) { - if (node === undefined) { - return this.pushDiagnosticAt(TypeScript.fullEnd(parent), 0, TypeScript.DiagnosticCode._0_expected, ["{"]); - } - else if (node.kind === 82 /* SemicolonToken */) { - return this.pushDiagnostic(node, TypeScript.DiagnosticCode._0_expected, ["{"]); - } - return false; - }; - GrammarCheckerWalker.prototype.checkForDisallowedSetAccessorTypeAnnotation = function (accessor) { - if (accessor.callSignature.typeAnnotation) { - return this.pushDiagnostic(accessor.callSignature.typeAnnotation, TypeScript.DiagnosticCode.Type_annotation_cannot_appear_on_a_set_accessor); - } - return false; - }; - GrammarCheckerWalker.prototype.checkForDisallowedAccessorTypeParameters = function (callSignature) { - if (callSignature.typeParameterList) { - return this.pushDiagnostic(callSignature.typeParameterList, TypeScript.DiagnosticCode.Type_parameters_cannot_appear_on_an_accessor); - } - return false; - }; - GrammarCheckerWalker.prototype.checkForAccessorDeclarationInAmbientContext = function (accessor) { - if (this.inAmbientDeclaration) { - return this.pushDiagnostic(accessor, TypeScript.DiagnosticCode.Accessors_are_not_allowed_in_ambient_contexts); - } - return false; - }; - GrammarCheckerWalker.prototype.checkSetAccessorParameter = function (node) { - var parameters = node.callSignature.parameterList.parameters; - if (TypeScript.nonSeparatorCount(parameters) !== 1) { - return this.pushDiagnostic(node.propertyName, TypeScript.DiagnosticCode.set_accessor_must_have_exactly_one_parameter); - } - var parameter = TypeScript.nonSeparatorAt(parameters, 0); - if (parameter.questionToken) { - return this.pushDiagnostic(parameter, TypeScript.DiagnosticCode.set_accessor_parameter_cannot_be_optional); - } - if (parameter.equalsValueClause) { - return this.pushDiagnostic(parameter, TypeScript.DiagnosticCode.set_accessor_parameter_cannot_have_an_initializer); - } - if (parameter.dotDotDotToken) { - return this.pushDiagnostic(parameter, TypeScript.DiagnosticCode.set_accessor_cannot_have_rest_parameter); - } - return false; - }; - GrammarCheckerWalker.prototype.visitSimpleArrowFunctionExpression = function (node) { - if (node.asyncKeyword) { - this.pushDiagnostic(node.asyncKeyword, TypeScript.DiagnosticCode.async_arrow_function_parameters_must_be_parenthesized); - return; - } - _super.prototype.visitSimpleArrowFunctionExpression.call(this, node); - }; - GrammarCheckerWalker.prototype.visitPropertyAssignment = function (node) { - if (this.checkForDisallowedTemplatePropertyName(node.propertyName)) { - return; - } - _super.prototype.visitPropertyAssignment.call(this, node); - }; - GrammarCheckerWalker.prototype.visitSetAccessor = function (node) { - if (this.checkForAccessorDeclarationInAmbientContext(node) || this.checkEcmaScriptVersionIsAtLeast(node.setKeyword, 1 /* ES5 */, TypeScript.DiagnosticCode.Accessors_are_only_available_when_targeting_ECMAScript_5_and_higher) || this.checkForDisallowedModifiers(node.modifiers) || this.checkClassElementModifiers(node.modifiers) || this.checkForDisallowedAccessorTypeParameters(node.callSignature) || this.checkForDisallowedSetAccessorTypeAnnotation(node) || this.checkSetAccessorParameter(node) || this.checkForDisallowedTemplatePropertyName(node.propertyName) || this.checkForSemicolonInsteadOfBlock(node, node.body) || this.checkForDisallowedAsyncModifier(node.modifiers)) { - return; - } - _super.prototype.visitSetAccessor.call(this, node); - }; - GrammarCheckerWalker.prototype.checkForDisallowedAsyncModifier = function (modifiers) { - var asyncKeyword = this.getAsyncModifier(modifiers); - if (asyncKeyword) { - return this.pushDiagnostic(asyncKeyword, TypeScript.DiagnosticCode.async_modifier_cannot_appear_here); - } - return false; - }; - GrammarCheckerWalker.prototype.visitElementAccessExpression = function (node) { - if (this.checkForMissingArgumentExpression(node)) { - return; - } - _super.prototype.visitElementAccessExpression.call(this, node); - }; - GrammarCheckerWalker.prototype.checkForMissingArgumentExpression = function (node) { - if (node.argumentExpression === undefined) { - if (node.parent.kind === 182 /* ObjectCreationExpression */ && node.parent.expression === node) { - var start = TypeScript.start(node.openBracketToken); - var end = TypeScript.fullEnd(node.closeBracketToken); - return this.pushDiagnosticAt(start, end - start, TypeScript.DiagnosticCode.new_T_cannot_be_used_to_create_an_array_Use_new_Array_T_instead); - } - else { - return this.pushDiagnostic(node.closeBracketToken, TypeScript.DiagnosticCode.Expression_expected); - } - } - return false; - }; - GrammarCheckerWalker.prototype.visitEnumDeclaration = function (node) { - if (this.checkForDisallowedDeclareModifier(node.modifiers) || this.checkForRequiredDeclareModifier(node, node.identifier, node.modifiers) || this.checkModuleElementModifiers(node.modifiers), this.checkEnumElements(node) || this.checkForDisallowedAsyncModifier(node.modifiers)) { - return; - } - var savedInAmbientDeclaration = this.inAmbientDeclaration; - this.inAmbientDeclaration = this.inAmbientDeclaration || this.syntaxTree.isDeclaration() || TypeScript.SyntaxUtilities.containsToken(node.modifiers, 67 /* DeclareKeyword */); - _super.prototype.visitEnumDeclaration.call(this, node); - this.inAmbientDeclaration = savedInAmbientDeclaration; - }; - GrammarCheckerWalker.prototype.checkEnumElements = function (node) { - var previousValueWasComputed = false; - for (var i = 0, n = TypeScript.nonSeparatorCount(node.enumElements); i < n; i++) { - var enumElement = TypeScript.nonSeparatorAt(node.enumElements, i); - if (!enumElement.equalsValueClause && previousValueWasComputed) { - return this.pushDiagnostic(enumElement, TypeScript.DiagnosticCode.Enum_member_must_have_initializer); - } - if (enumElement.equalsValueClause) { - var value = enumElement.equalsValueClause.value; - previousValueWasComputed = !TypeScript.Syntax.isIntegerLiteral(value); - } - } - return false; - }; - GrammarCheckerWalker.prototype.visitEnumElement = function (node) { - if (this.checkForDisallowedTemplatePropertyName(node.propertyName) || this.checkForDisallowedComputedPropertyName(node.propertyName)) { - return; - } - if (this.inAmbientDeclaration && node.equalsValueClause) { - var expression = node.equalsValueClause.value; - if (!TypeScript.Syntax.isIntegerLiteral(expression)) { - this.pushDiagnostic(node.equalsValueClause.value, TypeScript.DiagnosticCode.Ambient_enum_elements_can_only_have_integer_literal_initializers); - return; - } - } - _super.prototype.visitEnumElement.call(this, node); - }; - GrammarCheckerWalker.prototype.visitInvocationExpression = function (node) { - if (node.expression.kind === 52 /* SuperKeyword */ && node.argumentList.typeArgumentList) { - this.pushDiagnostic(node, TypeScript.DiagnosticCode.super_invocation_cannot_have_type_arguments); - } - _super.prototype.visitInvocationExpression.call(this, node); - }; - GrammarCheckerWalker.prototype.checkModuleElementModifiers = function (modifiers) { - var seenExportModifier = false; - var seenDeclareModifier = false; - var seenAsyncModifier = false; - for (var i = 0, n = modifiers.length; i < n; i++) { - var modifier = modifiers[i]; - if (TypeScript.SyntaxFacts.isAccessibilityModifier(modifier.kind) || modifier.kind === 60 /* StaticKeyword */) { - return this.pushDiagnostic(modifier, TypeScript.DiagnosticCode._0_modifier_cannot_appear_on_a_module_element, [modifier.text()]); - } - if (modifier.kind === 67 /* DeclareKeyword */) { - if (seenDeclareModifier) { - this.pushDiagnostic(modifier, TypeScript.DiagnosticCode.Accessibility_modifier_already_seen); - return; - } - if (seenAsyncModifier) { - this.pushDiagnostic(modifier, TypeScript.DiagnosticCode._0_modifier_must_precede_1_modifier, [TypeScript.SyntaxFacts.getText(67 /* DeclareKeyword */), TypeScript.SyntaxFacts.getText(63 /* AsyncKeyword */)]); - return; - } - seenDeclareModifier = true; - } - else if (modifier.kind === 49 /* ExportKeyword */) { - if (seenExportModifier) { - this.pushDiagnostic(modifier, TypeScript.DiagnosticCode._0_modifier_already_seen, [modifier.text()]); - return; - } - if (seenDeclareModifier) { - this.pushDiagnostic(modifier, TypeScript.DiagnosticCode._0_modifier_must_precede_1_modifier, [TypeScript.SyntaxFacts.getText(49 /* ExportKeyword */), TypeScript.SyntaxFacts.getText(67 /* DeclareKeyword */)]); - return; - } - if (seenAsyncModifier) { - this.pushDiagnostic(modifier, TypeScript.DiagnosticCode._0_modifier_must_precede_1_modifier, [TypeScript.SyntaxFacts.getText(49 /* ExportKeyword */), TypeScript.SyntaxFacts.getText(63 /* AsyncKeyword */)]); - return; - } - seenExportModifier = true; - } - else if (modifier.kind === 63 /* AsyncKeyword */) { - if (seenAsyncModifier) { - this.pushDiagnostic(modifier, TypeScript.DiagnosticCode._0_modifier_already_seen, [modifier.text()]); - return; - } - seenAsyncModifier = true; - } - } - return false; - }; - GrammarCheckerWalker.prototype.checkForDisallowedImportDeclaration = function (node) { - if (node.name.kind !== 12 /* StringLiteral */) { - for (var i = 0, n = node.moduleElements.length; i < n; i++) { - var child = node.moduleElements[i]; - if (child.kind === 140 /* ImportDeclaration */) { - var importDeclaration = child; - if (importDeclaration.moduleReference.kind === 216 /* ExternalModuleReference */) { - this.pushDiagnostic(importDeclaration, TypeScript.DiagnosticCode.Import_declarations_in_an_internal_module_cannot_reference_an_external_module); - } - } - } - } - return false; - }; - GrammarCheckerWalker.prototype.checkForDisallowedDeclareModifierOnImportDeclaration = function (modifiers) { - var declareToken = TypeScript.SyntaxUtilities.getToken(modifiers, 67 /* DeclareKeyword */); - if (declareToken) { - return this.pushDiagnostic(declareToken, TypeScript.DiagnosticCode.A_declare_modifier_cannot_be_used_with_an_import_declaration); - } - }; - GrammarCheckerWalker.prototype.visitImportDeclaration = function (node) { - if (this.checkForDisallowedDeclareModifierOnImportDeclaration(node.modifiers) || this.checkModuleElementModifiers(node.modifiers) || this.checkForDisallowedAsyncModifier(node.modifiers)) { - return; - } - _super.prototype.visitImportDeclaration.call(this, node); - }; - GrammarCheckerWalker.prototype.visitModuleDeclaration = function (node) { - if (this.checkForDisallowedDeclareModifier(node.modifiers) || this.checkForRequiredDeclareModifier(node, TypeScript.firstToken(node.name), node.modifiers) || this.checkModuleElementModifiers(node.modifiers) || this.checkForDisallowedImportDeclaration(node) || this.checkForDisallowedAsyncModifier(node.modifiers)) { - return; - } - if (node.name.kind === 12 /* StringLiteral */) { - if (!this.inAmbientDeclaration && !TypeScript.SyntaxUtilities.containsToken(node.modifiers, 67 /* DeclareKeyword */)) { - this.pushDiagnostic(node.name, TypeScript.DiagnosticCode.Only_ambient_modules_can_use_quoted_names); - return; - } - } - if (node.name.kind !== 12 /* StringLiteral */ && this.checkForDisallowedExportAssignment(node)) { - return; - } - var savedInAmbientDeclaration = this.inAmbientDeclaration; - this.inAmbientDeclaration = this.inAmbientDeclaration || this.syntaxTree.isDeclaration() || TypeScript.SyntaxUtilities.containsToken(node.modifiers, 67 /* DeclareKeyword */); - _super.prototype.visitModuleDeclaration.call(this, node); - this.inAmbientDeclaration = savedInAmbientDeclaration; - }; - GrammarCheckerWalker.prototype.checkForDisallowedExportAssignment = function (node) { - for (var i = 0, n = node.moduleElements.length; i < n; i++) { - var child = node.moduleElements[i]; - if (child.kind === 141 /* ExportAssignment */) { - return this.pushDiagnostic(child, TypeScript.DiagnosticCode.Export_assignment_cannot_be_used_in_internal_modules); - } - } - return false; - }; - GrammarCheckerWalker.prototype.visitBlock = function (node) { - if (this.checkForBlockInAmbientContext(node) || this.checkForMalformedBlock(node)) { - return; - } - var savedInBlock = this.inBlock; - this.inBlock = true; - _super.prototype.visitBlock.call(this, node); - this.inBlock = savedInBlock; - }; - GrammarCheckerWalker.prototype.checkForMalformedBlock = function (node) { - if (node.equalsGreaterThanToken || node.openBraceToken === undefined) { - return this.pushDiagnostic(TypeScript.firstToken(node), TypeScript.DiagnosticCode._0_expected, ["{"]); - } - return false; - }; - GrammarCheckerWalker.prototype.checkForBlockInAmbientContext = function (node) { - if (this.inAmbientDeclaration || this.syntaxTree.isDeclaration()) { - if (node.parent.kind === 1 /* List */) { - return this.pushDiagnostic(TypeScript.firstToken(node), TypeScript.DiagnosticCode.Statements_are_not_allowed_in_ambient_contexts); - } - else { - return this.pushDiagnostic(TypeScript.firstToken(node), TypeScript.DiagnosticCode.A_function_implementation_cannot_be_declared_in_an_ambient_context); - } - } - return false; - }; - GrammarCheckerWalker.prototype.checkForStatementInAmbientContxt = function (node) { - if (this.inAmbientDeclaration || this.syntaxTree.isDeclaration()) { - return this.pushDiagnostic(TypeScript.firstToken(node), TypeScript.DiagnosticCode.Statements_are_not_allowed_in_ambient_contexts); - } - return false; - }; - GrammarCheckerWalker.prototype.visitExportAssignment = function (node) { - if (node.modifiers.length > 0) { - this.pushDiagnostic(node.modifiers[0], TypeScript.DiagnosticCode.Modifiers_cannot_appear_here); - return; - } - _super.prototype.visitExportAssignment.call(this, node); - }; - GrammarCheckerWalker.prototype.visitExpressionBody = function (node) { - this.pushDiagnostic(node.equalsGreaterThanToken, TypeScript.DiagnosticCode._0_expected, ["{"]); - }; - GrammarCheckerWalker.prototype.visitBreakStatement = function (node) { - if (this.checkForStatementInAmbientContxt(node) || this.checkBreakStatementTarget(node)) { - return; - } - _super.prototype.visitBreakStatement.call(this, node); - }; - GrammarCheckerWalker.prototype.visitComputedPropertyName = function (node) { - if (node.expression.kind === 176 /* BinaryExpression */ && node.expression.operatorToken.kind === 83 /* CommaToken */) { - this.pushDiagnostic(node.expression.operatorToken, TypeScript.DiagnosticCode.comma_expression_cannot_appear_in_a_computed_property_name); - return; - } - _super.prototype.visitComputedPropertyName.call(this, node); - }; - GrammarCheckerWalker.prototype.visitContinueStatement = function (node) { - if (this.checkForStatementInAmbientContxt(node) || this.checkContinueStatementTarget(node)) { - return; - } - _super.prototype.visitContinueStatement.call(this, node); - }; - GrammarCheckerWalker.prototype.checkBreakStatementTarget = function (node) { - if (node.identifier) { - var breakableLabels = this.getEnclosingLabels(node, true, false); - if (!TypeScript.ArrayUtilities.any(breakableLabels, function (s) { return TypeScript.tokenValueText(s.identifier) === TypeScript.tokenValueText(node.identifier); })) { - var breakableLabels = this.getEnclosingLabels(node, true, true); - if (TypeScript.ArrayUtilities.any(breakableLabels, function (s) { return TypeScript.tokenValueText(s.identifier) === TypeScript.tokenValueText(node.identifier); })) { - return this.pushDiagnostic(node, TypeScript.DiagnosticCode.Jump_target_cannot_cross_function_boundary); - } - else { - return this.pushDiagnostic(node, TypeScript.DiagnosticCode.Jump_target_not_found); - } - } - } - else if (!this.inIterationStatement(node, false) && !this.inSwitchStatement(node)) { - if (this.inIterationStatement(node, true)) { - return this.pushDiagnostic(node, TypeScript.DiagnosticCode.Jump_target_cannot_cross_function_boundary); - } - else { - return this.pushDiagnostic(node, TypeScript.DiagnosticCode.break_statement_can_only_be_used_within_an_enclosing_iteration_or_switch_statement); - } - } - return false; - }; - GrammarCheckerWalker.prototype.inSwitchStatement = function (ast) { - while (ast) { - if (ast.kind === 158 /* SwitchStatement */) { - return true; - } - if (TypeScript.SyntaxUtilities.isAnyFunctionExpressionOrDeclaration(ast)) { - return false; - } - ast = ast.parent; - } - return false; - }; - GrammarCheckerWalker.prototype.isIterationStatement = function (ast) { - switch (ast.kind) { - case 161 /* ForStatement */: - case 162 /* ForInStatement */: - case 165 /* WhileStatement */: - case 168 /* DoStatement */: - return true; - } - return false; - }; - GrammarCheckerWalker.prototype.inIterationStatement = function (element, crossFunctions) { - while (element) { - if (this.isIterationStatement(element)) { - return true; - } - if (!crossFunctions && TypeScript.SyntaxUtilities.isAnyFunctionExpressionOrDeclaration(element)) { - return false; - } - element = element.parent; - } - return false; - }; - GrammarCheckerWalker.prototype.getEnclosingLabels = function (element, breakable, crossFunctions) { - var result = []; - element = element.parent; - while (element) { - if (element.kind === 167 /* LabeledStatement */) { - var labeledStatement = element; - if (breakable) { - result.push(labeledStatement); - } - else { - if (this.labelIsOnContinuableConstruct(labeledStatement.statement)) { - result.push(labeledStatement); - } - } - } - if (!crossFunctions && TypeScript.SyntaxUtilities.isAnyFunctionExpressionOrDeclaration(element)) { - break; - } - element = element.parent; - } - return result; - }; - GrammarCheckerWalker.prototype.labelIsOnContinuableConstruct = function (statement) { - switch (statement.kind) { - case 167 /* LabeledStatement */: - return this.labelIsOnContinuableConstruct(statement.statement); - case 165 /* WhileStatement */: - case 161 /* ForStatement */: - case 162 /* ForInStatement */: - case 168 /* DoStatement */: - return true; - default: - return false; - } - }; - GrammarCheckerWalker.prototype.checkContinueStatementTarget = function (node) { - if (!this.inIterationStatement(node, false)) { - if (this.inIterationStatement(node, true)) { - return this.pushDiagnostic(node, TypeScript.DiagnosticCode.Jump_target_cannot_cross_function_boundary); - } - else { - return this.pushDiagnostic(node, TypeScript.DiagnosticCode.continue_statement_can_only_be_used_within_an_enclosing_iteration_statement); - } - } - else if (node.identifier) { - var continuableLabels = this.getEnclosingLabels(node, false, false); - if (!TypeScript.ArrayUtilities.any(continuableLabels, function (s) { return TypeScript.tokenValueText(s.identifier) === TypeScript.tokenValueText(node.identifier); })) { - var continuableLabels = this.getEnclosingLabels(node, false, true); - if (TypeScript.ArrayUtilities.any(continuableLabels, function (s) { return TypeScript.tokenValueText(s.identifier) === TypeScript.tokenValueText(node.identifier); })) { - return this.pushDiagnostic(node, TypeScript.DiagnosticCode.Jump_target_cannot_cross_function_boundary); - } - else { - return this.pushDiagnostic(node, TypeScript.DiagnosticCode.Jump_target_not_found); - } - } - } - return false; - }; - GrammarCheckerWalker.prototype.visitDebuggerStatement = function (node) { - if (this.checkForStatementInAmbientContxt(node)) { - return; - } - _super.prototype.visitDebuggerStatement.call(this, node); - }; - GrammarCheckerWalker.prototype.visitDoStatement = function (node) { - if (this.checkForStatementInAmbientContxt(node)) { - return; - } - _super.prototype.visitDoStatement.call(this, node); - }; - GrammarCheckerWalker.prototype.visitEmptyStatement = function (node) { - if (this.checkForStatementInAmbientContxt(node)) { - return; - } - _super.prototype.visitEmptyStatement.call(this, node); - }; - GrammarCheckerWalker.prototype.visitExpressionStatement = function (node) { - if (this.checkForStatementInAmbientContxt(node)) { - return; - } - _super.prototype.visitExpressionStatement.call(this, node); - }; - GrammarCheckerWalker.prototype.visitForInStatement = function (node) { - if (this.checkForStatementInAmbientContxt(node) || this.checkForInStatementVariableDeclaration(node) || this.checkForInLeftHandSideExpression(node)) { - return; - } - _super.prototype.visitForInStatement.call(this, node); - }; - GrammarCheckerWalker.prototype.checkForInLeftHandSideExpression = function (node) { - if (node.left.kind !== 194 /* VariableDeclaration */ && !TypeScript.SyntaxUtilities.isLeftHandSizeExpression(node.left)) { - return this.pushDiagnostic(node.left, TypeScript.DiagnosticCode.Invalid_left_hand_side_in_for_in_statement); - } - return false; - }; - GrammarCheckerWalker.prototype.checkForInStatementVariableDeclaration = function (node) { - if (node.left.kind === 194 /* VariableDeclaration */ && node.left.variableDeclarators.length > 1) { - return this.pushDiagnostic(node.left, TypeScript.DiagnosticCode.Only_a_single_variable_declaration_is_allowed_in_a_for_in_statement); - } - return false; - }; - GrammarCheckerWalker.prototype.visitForStatement = function (node) { - if (this.checkForStatementInAmbientContxt(node)) { - return; - } - _super.prototype.visitForStatement.call(this, node); - }; - GrammarCheckerWalker.prototype.visitIfStatement = function (node) { - if (this.checkForStatementInAmbientContxt(node)) { - return; - } - _super.prototype.visitIfStatement.call(this, node); - }; - GrammarCheckerWalker.prototype.visitLabeledStatement = function (node) { - if (this.checkForStatementInAmbientContxt(node) || this.checkForInvalidLabelIdentifier(node)) { - return; - } - _super.prototype.visitLabeledStatement.call(this, node); - }; - GrammarCheckerWalker.prototype.checkForInvalidLabelIdentifier = function (node) { - var labelIdentifier = TypeScript.tokenValueText(node.identifier); - var breakableLabels = this.getEnclosingLabels(node, true, false); - var matchingLabel = TypeScript.ArrayUtilities.firstOrDefault(breakableLabels, function (s) { return TypeScript.tokenValueText(s.identifier) === labelIdentifier; }); - if (matchingLabel) { - return this.pushDiagnostic(node.identifier, TypeScript.DiagnosticCode.Duplicate_identifier_0, [labelIdentifier]); - } - return false; - }; - GrammarCheckerWalker.prototype.visitReturnStatement = function (node) { - if (this.checkForStatementInAmbientContxt(node) || this.checkForReturnStatementNotInFunctionBody(node)) { - return; - } - _super.prototype.visitReturnStatement.call(this, node); - }; - GrammarCheckerWalker.prototype.checkForReturnStatementNotInFunctionBody = function (node) { - for (var element = node; element; element = element.parent) { - if (TypeScript.SyntaxUtilities.isAnyFunctionExpressionOrDeclaration(element)) { - return false; - } - } - return this.pushDiagnostic(TypeScript.firstToken(node), TypeScript.DiagnosticCode.return_statement_must_be_contained_within_a_function_body); - }; - GrammarCheckerWalker.prototype.visitSwitchStatement = function (node) { - if (this.checkForStatementInAmbientContxt(node)) { - return; - } - _super.prototype.visitSwitchStatement.call(this, node); - }; - GrammarCheckerWalker.prototype.visitThrowStatement = function (node) { - if (this.checkForStatementInAmbientContxt(node) || this.checkForMissingThrowStatementExpression(node)) { - return; - } - _super.prototype.visitThrowStatement.call(this, node); - }; - GrammarCheckerWalker.prototype.checkForMissingThrowStatementExpression = function (node) { - if (node.expression === undefined) { - return this.pushDiagnosticAt(TypeScript.fullEnd(node.throwKeyword), 0, TypeScript.DiagnosticCode.Expression_expected); - } - return false; - }; - GrammarCheckerWalker.prototype.visitTryStatement = function (node) { - if (this.checkForStatementInAmbientContxt(node)) { - return; - } - _super.prototype.visitTryStatement.call(this, node); - }; - GrammarCheckerWalker.prototype.visitWhileStatement = function (node) { - if (this.checkForStatementInAmbientContxt(node)) { - return; - } - _super.prototype.visitWhileStatement.call(this, node); - }; - GrammarCheckerWalker.prototype.visitWithStatement = function (node) { - if (this.checkForStatementInAmbientContxt(node) || this.checkForWithInStrictMode(node)) { - return; - } - _super.prototype.visitWithStatement.call(this, node); - }; - GrammarCheckerWalker.prototype.checkForWithInStrictMode = function (node) { - if (TypeScript.parsedInStrictModeContext(node)) { - return this.pushDiagnostic(TypeScript.firstToken(node), TypeScript.DiagnosticCode.with_statements_are_not_allowed_in_strict_mode); - } - return false; - }; - GrammarCheckerWalker.prototype.checkForDisallowedModifiers = function (modifiers) { - if (this.inBlock || this.inObjectLiteralExpression) { - if (modifiers.length > 0) { - return this.pushDiagnostic(modifiers[0], TypeScript.DiagnosticCode.Modifiers_cannot_appear_here); - } - } - return false; - }; - GrammarCheckerWalker.prototype.visitFunctionDeclaration = function (node) { - if (this.checkForDisallowedDeclareModifier(node.modifiers) || this.checkForDisallowedModifiers(node.modifiers) || this.checkForRequiredDeclareModifier(node, node.identifier, node.modifiers) || this.checkModuleElementModifiers(node.modifiers) || this.checkForDisallowedEvalOrArguments(node, node.identifier) || this.checkForAsyncGenerator(this.getAsyncModifier(node.modifiers), node.asterixToken)) { - return; - } - var savedInAmbientDeclaration = this.inAmbientDeclaration; - this.inAmbientDeclaration = this.inAmbientDeclaration || this.syntaxTree.isDeclaration() || TypeScript.SyntaxUtilities.containsToken(node.modifiers, 67 /* DeclareKeyword */); - _super.prototype.visitFunctionDeclaration.call(this, node); - this.inAmbientDeclaration = savedInAmbientDeclaration; - }; - GrammarCheckerWalker.prototype.getAsyncModifier = function (modifiers) { - for (var i = 0, n = modifiers.length; i < n; i++) { - var modifier = modifiers[i]; - if (modifier.kind === 63 /* AsyncKeyword */) { - return modifier; - } - } - return undefined; - }; - GrammarCheckerWalker.prototype.checkForAsyncGenerator = function (asyncKeyword, asterixToken) { - if (asyncKeyword && asterixToken) { - return this.pushDiagnostic(asyncKeyword, TypeScript.DiagnosticCode.A_generator_declaration_cannot_have_the_async_modifier); - } - return false; - }; - GrammarCheckerWalker.prototype.visitFunctionExpression = function (node) { - if (this.checkForDisallowedEvalOrArguments(node, node.identifier) || this.checkForSemicolonInsteadOfBlock(node, node.body) || this.checkForAsyncGenerator(node.asyncKeyword, node.asterixToken)) { - return; - } - _super.prototype.visitFunctionExpression.call(this, node); - }; - GrammarCheckerWalker.prototype.visitVariableStatement = function (node) { - if (this.checkForDisallowedDeclareModifier(node.modifiers) || this.checkForDisallowedModifiers(node.modifiers) || this.checkForRequiredDeclareModifier(node, node.variableDeclaration.varKeyword, node.modifiers) || this.checkModuleElementModifiers(node.modifiers) || this.checkForDisallowedAsyncModifier(node.modifiers)) { - return; - } - var savedInAmbientDeclaration = this.inAmbientDeclaration; - this.inAmbientDeclaration = this.inAmbientDeclaration || this.syntaxTree.isDeclaration() || TypeScript.SyntaxUtilities.containsToken(node.modifiers, 67 /* DeclareKeyword */); - _super.prototype.visitVariableStatement.call(this, node); - this.inAmbientDeclaration = savedInAmbientDeclaration; - }; - GrammarCheckerWalker.prototype.checkListSeparators = function (list, kind) { - for (var i = 0, n = TypeScript.separatorCount(list); i < n; i++) { - var child = TypeScript.separatorAt(list, i); - if (child.kind !== kind) { - this.pushDiagnostic(child, TypeScript.DiagnosticCode._0_expected, [TypeScript.SyntaxFacts.getText(kind)]); - } - } - return false; - }; - GrammarCheckerWalker.prototype.visitObjectType = function (node) { - if (this.checkListSeparators(node.typeMembers, 82 /* SemicolonToken */)) { - return; - } - var savedInAmbientDeclaration = this.inAmbientDeclaration; - this.inAmbientDeclaration = true; - _super.prototype.visitObjectType.call(this, node); - this.inAmbientDeclaration = savedInAmbientDeclaration; - }; - GrammarCheckerWalker.prototype.visitArrayType = function (node) { - var savedInAmbientDeclaration = this.inAmbientDeclaration; - this.inAmbientDeclaration = true; - _super.prototype.visitArrayType.call(this, node); - this.inAmbientDeclaration = savedInAmbientDeclaration; - }; - GrammarCheckerWalker.prototype.visitFunctionType = function (node) { - var savedInAmbientDeclaration = this.inAmbientDeclaration; - this.inAmbientDeclaration = true; - _super.prototype.visitFunctionType.call(this, node); - this.inAmbientDeclaration = savedInAmbientDeclaration; - }; - GrammarCheckerWalker.prototype.visitConstructorType = function (node) { - var savedInAmbientDeclaration = this.inAmbientDeclaration; - this.inAmbientDeclaration = true; - _super.prototype.visitConstructorType.call(this, node); - this.inAmbientDeclaration = savedInAmbientDeclaration; - }; - GrammarCheckerWalker.prototype.visitVariableDeclarator = function (node) { - if (this.checkVariableDeclaratorInitializer(node) || this.checkVariableDeclaratorIdentifier(node) || this.checkForDisallowedTemplatePropertyName(node.propertyName)) { - return; - } - _super.prototype.visitVariableDeclarator.call(this, node); - }; - GrammarCheckerWalker.prototype.checkForDisallowedTemplatePropertyName = function (propertyName) { - if (propertyName.kind === 13 /* NoSubstitutionTemplateToken */) { - return this.pushDiagnostic(propertyName, TypeScript.DiagnosticCode.Template_literal_cannot_be_used_as_an_element_name); - } - return false; - }; - GrammarCheckerWalker.prototype.checkForDisallowedComputedPropertyName = function (propertyName) { - if (propertyName.kind === 214 /* ComputedPropertyName */) { - return this.pushDiagnostic(propertyName, TypeScript.DiagnosticCode.Computed_property_names_cannot_be_used_here); - } - return false; - }; - GrammarCheckerWalker.prototype.checkVariableDeclaratorIdentifier = function (node) { - if (node.parent.kind !== 143 /* MemberVariableDeclaration */) { - TypeScript.Debug.assert(TypeScript.isToken(node.propertyName), "A normal variable declarator must always have a token for a name."); - if (this.checkForDisallowedEvalOrArguments(node, node.propertyName)) { - return true; - } - } - return false; - }; - GrammarCheckerWalker.prototype.checkVariableDeclaratorInitializer = function (node) { - if (this.inAmbientDeclaration && node.equalsValueClause) { - return this.pushDiagnostic(TypeScript.firstToken(node.equalsValueClause.value), TypeScript.DiagnosticCode.Initializers_are_not_allowed_in_ambient_contexts); - } - return false; - }; - GrammarCheckerWalker.prototype.visitConstructorDeclaration = function (node) { - if (this.checkClassElementModifiers(node.modifiers) || this.checkConstructorModifiers(node.modifiers) || this.checkConstructorTypeParameterList(node) || this.checkConstructorTypeAnnotation(node) || this.checkForDisallowedAsyncModifier(node.modifiers)) { - return; - } - _super.prototype.visitConstructorDeclaration.call(this, node); - }; - GrammarCheckerWalker.prototype.checkConstructorModifiers = function (modifiers) { - for (var i = 0, n = modifiers.length; i < n; i++) { - var child = modifiers[i]; - if (child.kind !== 59 /* PublicKeyword */) { - return this.pushDiagnostic(child, TypeScript.DiagnosticCode._0_modifier_cannot_appear_on_a_constructor_declaration, [TypeScript.SyntaxFacts.getText(child.kind)]); - } - } - return false; - }; - GrammarCheckerWalker.prototype.checkConstructorTypeParameterList = function (node) { - if (node.callSignature.typeParameterList) { - return this.pushDiagnostic(node.callSignature.typeParameterList, TypeScript.DiagnosticCode.Type_parameters_cannot_appear_on_a_constructor_declaration); - } - return false; - }; - GrammarCheckerWalker.prototype.checkConstructorTypeAnnotation = function (node) { - if (node.callSignature.typeAnnotation) { - return this.pushDiagnostic(node.callSignature.typeAnnotation, TypeScript.DiagnosticCode.Type_annotation_cannot_appear_on_a_constructor_declaration); - } - return false; - }; - GrammarCheckerWalker.prototype.visitBinaryExpression = function (node) { - if (this.checkIllegalAssignment(node)) { - return; - } - _super.prototype.visitBinaryExpression.call(this, node); - }; - GrammarCheckerWalker.prototype.visitPrefixUnaryExpression = function (node) { - if (TypeScript.parsedInStrictModeContext(node) && this.isPreIncrementOrDecrementExpression(node) && this.isEvalOrArguments(node.operand)) { - this.pushDiagnostic(node.operatorToken, TypeScript.DiagnosticCode.Invalid_use_of_0_in_strict_mode, [this.getEvalOrArguments(node.operand)]); - } - _super.prototype.visitPrefixUnaryExpression.call(this, node); - }; - GrammarCheckerWalker.prototype.visitPostfixUnaryExpression = function (node) { - if (TypeScript.parsedInStrictModeContext(node) && this.isEvalOrArguments(node.operand)) { - this.pushDiagnostic(node.operatorToken, TypeScript.DiagnosticCode.Invalid_use_of_0_in_strict_mode, [this.getEvalOrArguments(node.operand)]); - } - _super.prototype.visitPostfixUnaryExpression.call(this, node); - }; - GrammarCheckerWalker.prototype.visitParameter = function (node) { - if (this.checkParameterAccessibilityModifiers(node) || this.checkForDisallowedEvalOrArguments(node, node.identifier)) { - return; - } - _super.prototype.visitParameter.call(this, node); - }; - GrammarCheckerWalker.prototype.checkForDisallowedEvalOrArguments = function (node, token) { - if (token) { - if (TypeScript.parsedInStrictModeContext(node) && this.isEvalOrArguments(token)) { - return this.pushDiagnostic(token, TypeScript.DiagnosticCode.Invalid_use_of_0_in_strict_mode, [this.getEvalOrArguments(token)]); - } - } - return false; - }; - GrammarCheckerWalker.prototype.isPreIncrementOrDecrementExpression = function (node) { - switch (node.operatorToken.kind) { - case 98 /* MinusMinusToken */: - case 97 /* PlusPlusToken */: - return true; - } - return false; - }; - GrammarCheckerWalker.prototype.visitDeleteExpression = function (node) { - if (TypeScript.parsedInStrictModeContext(node) && node.expression.kind === 9 /* IdentifierName */) { - this.pushDiagnostic(node.deleteKeyword, TypeScript.DiagnosticCode.delete_cannot_be_called_on_an_identifier_in_strict_mode); - return; - } - _super.prototype.visitDeleteExpression.call(this, node); - }; - GrammarCheckerWalker.prototype.visitYieldExpression = function (node) { - if (!TypeScript.parsedInYieldContext(node)) { - this.pushDiagnostic(node.yieldKeyword, TypeScript.DiagnosticCode.yield_expression_must_be_contained_within_a_generator_declaration); - return; - } - _super.prototype.visitYieldExpression.call(this, node); - }; - GrammarCheckerWalker.prototype.visitAwaitExpression = function (node) { - if (!TypeScript.parsedInAsyncContext(node)) { - this.pushDiagnostic(node.awaitKeyword, TypeScript.DiagnosticCode.await_expression_must_be_contained_within_an_async_declaration); - return; - } - _super.prototype.visitAwaitExpression.call(this, node); - }; - GrammarCheckerWalker.prototype.checkIllegalAssignment = function (node) { - if (TypeScript.parsedInStrictModeContext(node) && TypeScript.SyntaxFacts.isAssignmentOperatorToken(node.operatorToken.kind) && this.isEvalOrArguments(node.left)) { - return this.pushDiagnostic(node.operatorToken, TypeScript.DiagnosticCode.Invalid_use_of_0_in_strict_mode, [this.getEvalOrArguments(node.left)]); - } - return false; - }; - GrammarCheckerWalker.prototype.getEvalOrArguments = function (expr) { - if (expr.kind === 9 /* IdentifierName */) { - var text = TypeScript.tokenValueText(expr); - if (text === "eval" || text === "arguments") { - return text; - } - } - return undefined; - }; - GrammarCheckerWalker.prototype.isEvalOrArguments = function (expr) { - return !!this.getEvalOrArguments(expr); - }; - GrammarCheckerWalker.prototype.visitConstraint = function (node) { - if (this.checkConstraintType(node)) { - return; - } - _super.prototype.visitConstraint.call(this, node); - }; - GrammarCheckerWalker.prototype.checkConstraintType = function (node) { - if (!TypeScript.SyntaxFacts.isType(node.typeOrExpression.kind)) { - return this.pushDiagnostic(node.typeOrExpression, TypeScript.DiagnosticCode.Type_expected); - } - return false; - }; - return GrammarCheckerWalker; - })(TypeScript.SyntaxWalker); - function firstSyntaxTreeToken(syntaxTree) { - var scanner = TypeScript.Scanner.createScanner(syntaxTree.languageVersion(), syntaxTree.text, function () { - }); - return scanner.scan(false); - } - function externalModuleIndicatorSpan(syntaxTree) { - var firstToken = firstSyntaxTreeToken(syntaxTree); - return externalModuleIndicatorSpanWorker(syntaxTree, firstToken); - } - TypeScript.externalModuleIndicatorSpan = externalModuleIndicatorSpan; - function externalModuleIndicatorSpanWorker(syntaxTree, firstToken) { - var leadingTrivia = firstToken.leadingTrivia(syntaxTree.text); - return implicitImportSpan(leadingTrivia) || topLevelImportOrExportSpan(syntaxTree.sourceUnit()); - } - TypeScript.externalModuleIndicatorSpanWorker = externalModuleIndicatorSpanWorker; - function implicitImportSpan(sourceUnitLeadingTrivia) { - for (var i = 0, n = sourceUnitLeadingTrivia.count(); i < n; i++) { - var trivia = sourceUnitLeadingTrivia.syntaxTriviaAt(i); - if (trivia.isComment()) { - var span = implicitImportSpanWorker(trivia); - if (span) { - return span; - } - } - } - return undefined; - } - function implicitImportSpanWorker(trivia) { - var implicitImportRegEx = /^(\/\/\/\s*/gim; - var match = implicitImportRegEx.exec(trivia.fullText()); - if (match) { - return new TypeScript.TextSpan(trivia.fullStart(), trivia.fullWidth()); - } - return undefined; - } - function topLevelImportOrExportSpan(node) { - for (var i = 0, n = node.moduleElements.length; i < n; i++) { - var moduleElement = node.moduleElements[i]; - var _firstToken = TypeScript.firstToken(moduleElement); - if (_firstToken && _firstToken.kind === 49 /* ExportKeyword */) { - return new TypeScript.TextSpan(TypeScript.start(_firstToken), TypeScript.width(_firstToken)); - } - if (moduleElement.kind === 140 /* ImportDeclaration */) { - var importDecl = moduleElement; - if (importDecl.moduleReference.kind === 216 /* ExternalModuleReference */) { - var literal = importDecl.moduleReference.stringLiteral; - return new TypeScript.TextSpan(TypeScript.start(literal), TypeScript.width(literal)); - } - } - } - return undefined; - } -})(TypeScript || (TypeScript = {})); -var TypeScript; -(function (TypeScript) { - var Unicode = (function () { - function Unicode() { - } - Unicode.lookupInUnicodeMap = function (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; - }; - Unicode.isIdentifierStart = function (code, languageVersion) { - if (languageVersion === 0 /* ES3 */) { - return Unicode.lookupInUnicodeMap(code, Unicode.unicodeES3IdentifierStart); - } - else if (languageVersion >= 1 /* ES5 */) { - return Unicode.lookupInUnicodeMap(code, Unicode.unicodeES5IdentifierStart); - } - else { - throw TypeScript.Errors.argumentOutOfRange("languageVersion"); - } - }; - Unicode.isIdentifierPart = function (code, languageVersion) { - if (languageVersion === 0 /* ES3 */) { - return Unicode.lookupInUnicodeMap(code, Unicode.unicodeES3IdentifierPart); - } - else if (languageVersion >= 1 /* ES5 */) { - return Unicode.lookupInUnicodeMap(code, Unicode.unicodeES5IdentifierPart); - } - else { - throw TypeScript.Errors.argumentOutOfRange("languageVersion"); - } - }; - Unicode.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,]; - Unicode.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,]; - Unicode.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,]; - Unicode.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,]; - return Unicode; - })(); - TypeScript.Unicode = Unicode; -})(TypeScript || (TypeScript = {})); -var TypeScript; -(function (TypeScript) { - var PrettyPrinter; - (function (PrettyPrinter) { - function prettyPrint(node, indentWhitespace) { - if (indentWhitespace === void 0) { indentWhitespace = " "; } - var impl = new PrettyPrinterImpl(indentWhitespace); - TypeScript.visitNodeOrToken(impl, node); - return impl.result.join(""); - } - PrettyPrinter.prettyPrint = prettyPrint; - var PrettyPrinterImpl = (function () { - function PrettyPrinterImpl(indentWhitespace) { - this.indentWhitespace = indentWhitespace; - this.result = []; - this.indentations = []; - this.indentation = 0; - } - PrettyPrinterImpl.prototype.newLineCountBetweenModuleElements = function (element1, element2) { - if (!element1 || !element2) { - return 0; - } - if (TypeScript.lastToken(element1).kind === 75 /* CloseBraceToken */) { - return 2; - } - return 1; - }; - PrettyPrinterImpl.prototype.newLineCountBetweenClassElements = function (element1, element2) { - if (!element1 || !element2) { - return 0; - } - return 1; - }; - PrettyPrinterImpl.prototype.newLineCountBetweenStatements = function (element1, element2) { - if (!element1 || !element2) { - return 0; - } - if (TypeScript.lastToken(element1).kind === 75 /* CloseBraceToken */) { - return 2; - } - return 1; - }; - PrettyPrinterImpl.prototype.newLineCountBetweenSwitchClauses = function (element1, element2) { - if (!element1 || !element2) { - return 0; - } - if (TypeScript.childCount(element1.statements) === 0) { - return 1; - } - return 2; - }; - PrettyPrinterImpl.prototype.ensureSpace = function () { - if (this.result.length > 0) { - var last = TypeScript.ArrayUtilities.last(this.result); - if (last !== " " && last !== "\r\n") { - this.appendText(" "); - } - } - }; - PrettyPrinterImpl.prototype.ensureNewLine = function () { - if (this.result.length > 0) { - var last = TypeScript.ArrayUtilities.last(this.result); - if (last !== "\r\n") { - this.appendText("\r\n"); - } - } - }; - PrettyPrinterImpl.prototype.appendNewLines = function (count) { - for (var i = 0; i < count; i++) { - this.appendText("\r\n"); - } - }; - PrettyPrinterImpl.prototype.getIndentation = function (count) { - for (var i = this.indentations.length; i <= count; i++) { - var text = i === 0 ? "" : this.indentations[i - 1] + this.indentWhitespace; - this.indentations[i] = text; - } - return this.indentations[count]; - }; - PrettyPrinterImpl.prototype.appendIndentationIfAfterNewLine = function () { - if (this.result.length > 0) { - if (TypeScript.ArrayUtilities.last(this.result) === "\r\n") { - this.result.push(this.getIndentation(this.indentation)); - } - } - }; - PrettyPrinterImpl.prototype.appendText = function (text) { - this.result.push(text); - }; - PrettyPrinterImpl.prototype.appendElement = function (element) { - if (TypeScript.isToken(element)) { - this.appendToken(element); - } - else if (TypeScript.isNode(element)) { - this.appendNode(element); - } - }; - PrettyPrinterImpl.prototype.appendNode = function (node) { - TypeScript.visitNodeOrToken(this, node); - }; - PrettyPrinterImpl.prototype.appendToken = function (token) { - if (token && token.fullWidth() > 0) { - this.appendIndentationIfAfterNewLine(); - this.appendText(token.text()); - } - }; - PrettyPrinterImpl.prototype.visitToken = function (token) { - this.appendToken(token); - }; - PrettyPrinterImpl.prototype.appendSpaceList = function (list) { - for (var i = 0, n = TypeScript.childCount(list); i < n; i++) { - if (TypeScript.isNode(TypeScript.childAt(list, i))) { - this.appendNode(TypeScript.childAt(list, i)); - } - else { - this.appendToken(TypeScript.childAt(list, i)); - } - this.ensureSpace(); - } - }; - PrettyPrinterImpl.prototype.appendSeparatorSpaceList = function (list) { - for (var i = 0, n = TypeScript.childCount(list); i < n; i++) { - if (i % 2 === 0) { - if (i > 0) { - this.ensureSpace(); - } - TypeScript.visitNodeOrToken(this, list[i]); - } - else { - this.appendToken(TypeScript.childAt(list, i)); - } - } - }; - PrettyPrinterImpl.prototype.appendSeparatorNewLineList = function (list) { - for (var i = 0, n = TypeScript.childCount(list); i < n; i++) { - if (i % 2 === 0) { - if (i > 0) { - this.ensureNewLine(); - } - TypeScript.visitNodeOrToken(this, list[i]); - } - else { - this.appendToken(TypeScript.childAt(list, i)); - } - } - }; - PrettyPrinterImpl.prototype.appendModuleElements = function (list) { - var lastModuleElement = undefined; - for (var i = 0, n = list.length; i < n; i++) { - var moduleElement = list[i]; - var newLineCount = this.newLineCountBetweenModuleElements(lastModuleElement, moduleElement); - this.appendNewLines(newLineCount); - TypeScript.visitNodeOrToken(this, moduleElement); - lastModuleElement = moduleElement; - } - }; - PrettyPrinterImpl.prototype.visitSourceUnit = function (node) { - this.appendModuleElements(node.moduleElements); - }; - PrettyPrinterImpl.prototype.visitExternalModuleReference = function (node) { - this.appendToken(node.requireKeyword); - this.appendToken(node.openParenToken); - this.appendToken(node.stringLiteral); - this.appendToken(node.closeParenToken); - }; - PrettyPrinterImpl.prototype.visitModuleNameModuleReference = function (node) { - TypeScript.visitNodeOrToken(this, node.moduleName); - }; - PrettyPrinterImpl.prototype.visitImportDeclaration = function (node) { - this.appendToken(node.importKeyword); - this.ensureSpace(); - this.appendToken(node.identifier); - this.ensureSpace(); - this.appendToken(node.equalsToken); - this.ensureSpace(); - TypeScript.visitNodeOrToken(this, node.moduleReference); - this.appendToken(node.semicolonToken); - }; - PrettyPrinterImpl.prototype.visitExportAssignment = function (node) { - this.appendToken(node.exportKeyword); - this.ensureSpace(); - this.appendToken(node.equalsToken); - this.ensureSpace(); - this.appendToken(node.identifier); - this.appendToken(node.semicolonToken); - }; - PrettyPrinterImpl.prototype.visitClassDeclaration = function (node) { - this.appendSpaceList(node.modifiers); - this.ensureSpace(); - this.appendToken(node.classKeyword); - this.ensureSpace(); - this.appendToken(node.identifier); - this.appendNode(node.typeParameterList); - this.ensureSpace(); - this.appendSpaceList(node.heritageClauses); - this.ensureSpace(); - this.appendToken(node.openBraceToken); - this.ensureNewLine(); - this.indentation++; - var lastClassElement = undefined; - for (var i = 0, n = node.classElements.length; i < n; i++) { - var classElement = node.classElements[i]; - var newLineCount = this.newLineCountBetweenClassElements(lastClassElement, classElement); - this.appendNewLines(newLineCount); - TypeScript.visitNodeOrToken(this, classElement); - lastClassElement = classElement; - } - this.indentation--; - this.ensureNewLine(); - this.appendToken(node.closeBraceToken); - }; - PrettyPrinterImpl.prototype.visitInterfaceDeclaration = function (node) { - this.appendSpaceList(node.modifiers); - this.ensureSpace(); - this.appendToken(node.interfaceKeyword); - this.ensureSpace(); - this.appendToken(node.identifier); - this.appendNode(node.typeParameterList); - this.ensureSpace(); - this.appendSpaceList(node.heritageClauses); - this.ensureSpace(); - this.appendObjectType(node.body, true); - }; - PrettyPrinterImpl.prototype.appendObjectType = function (node, appendNewLines) { - this.appendToken(node.openBraceToken); - if (appendNewLines) { - this.ensureNewLine(); - this.indentation++; - } - else { - this.ensureSpace(); - } - for (var i = 0, n = TypeScript.childCount(node.typeMembers); i < n; i++) { - TypeScript.visitNodeOrToken(this, node.typeMembers[i]); - if (appendNewLines) { - this.ensureNewLine(); - } - else { - this.ensureSpace(); - } - } - this.indentation--; - this.appendToken(node.closeBraceToken); - }; - PrettyPrinterImpl.prototype.visitHeritageClause = function (node) { - this.appendToken(node.extendsOrImplementsKeyword); - this.ensureSpace(); - this.appendSeparatorSpaceList(node.typeNames); - }; - PrettyPrinterImpl.prototype.visitModuleDeclaration = function (node) { - this.appendSpaceList(node.modifiers); - this.ensureSpace(); - this.appendToken(node.moduleKeyword); - this.ensureSpace(); - this.appendElement(node.name); - this.ensureSpace(); - this.appendToken(node.openBraceToken); - this.ensureNewLine(); - this.indentation++; - this.appendModuleElements(node.moduleElements); - this.indentation--; - this.appendToken(node.closeBraceToken); - }; - PrettyPrinterImpl.prototype.appendBody = function (body) { - if (body.kind === 153 /* Block */ || body.kind === 213 /* ExpressionBody */) { - this.ensureSpace(); - TypeScript.visitNodeOrToken(this, body); - } - else { - this.appendToken(body); - } - }; - PrettyPrinterImpl.prototype.visitExpressionBody = function (node) { - this.appendToken(node.equalsGreaterThanToken); - this.ensureSpace(); - TypeScript.visitNodeOrToken(this, node.expression); - }; - PrettyPrinterImpl.prototype.visitFunctionDeclaration = function (node) { - this.appendSpaceList(node.modifiers); - this.ensureSpace(); - this.appendToken(node.functionKeyword); - this.ensureSpace(); - this.appendToken(node.identifier); - this.appendNode(node.callSignature); - this.appendBody(node.body); - }; - PrettyPrinterImpl.prototype.visitVariableStatement = function (node) { - this.appendSpaceList(node.modifiers); - this.ensureSpace(); - TypeScript.visitNodeOrToken(this, node.variableDeclaration); - this.appendToken(node.semicolonToken); - }; - PrettyPrinterImpl.prototype.visitVariableDeclaration = function (node) { - this.appendToken(node.varKeyword); - this.ensureSpace(); - this.appendSeparatorSpaceList(node.variableDeclarators); - }; - PrettyPrinterImpl.prototype.visitVariableDeclarator = function (node) { - TypeScript.visitNodeOrToken(this, node.propertyName); - this.appendNode(node.equalsValueClause); - }; - PrettyPrinterImpl.prototype.visitEqualsValueClause = function (node) { - this.ensureSpace(); - this.appendToken(node.equalsToken); - this.ensureSpace(); - TypeScript.visitNodeOrToken(this, node.value); - }; - PrettyPrinterImpl.prototype.visitPrefixUnaryExpression = function (node) { - this.appendToken(node.operatorToken); - TypeScript.visitNodeOrToken(this, node.operand); - }; - PrettyPrinterImpl.prototype.visitArrayLiteralExpression = function (node) { - this.appendToken(node.openBracketToken); - this.appendSeparatorSpaceList(node.expressions); - this.appendToken(node.closeBracketToken); - }; - PrettyPrinterImpl.prototype.visitOmittedExpression = function (node) { - }; - PrettyPrinterImpl.prototype.visitParenthesizedExpression = function (node) { - this.appendToken(node.openParenToken); - TypeScript.visitNodeOrToken(this, node.expression); - this.appendToken(node.closeParenToken); - }; - PrettyPrinterImpl.prototype.visitSimpleArrowFunctionExpression = function (node) { - this.appendNode(node.parameter); - this.ensureSpace(); - this.appendToken(node.equalsGreaterThanToken); - this.ensureSpace(); - TypeScript.visitNodeOrToken(this, node.body); - }; - PrettyPrinterImpl.prototype.visitParenthesizedArrowFunctionExpression = function (node) { - TypeScript.visitNodeOrToken(this, node.callSignature); - this.ensureSpace(); - this.appendToken(node.equalsGreaterThanToken); - this.ensureSpace(); - TypeScript.visitNodeOrToken(this, node.body); - }; - PrettyPrinterImpl.prototype.visitQualifiedName = function (node) { - TypeScript.visitNodeOrToken(this, node.left); - this.appendToken(node.dotToken); - this.appendToken(node.right); - }; - PrettyPrinterImpl.prototype.visitTypeQuery = function (node) { - this.appendToken(node.typeOfKeyword); - this.ensureSpace(); - TypeScript.visitNodeOrToken(this, node.name); - }; - PrettyPrinterImpl.prototype.visitTypeArgumentList = function (node) { - this.appendToken(node.lessThanToken); - this.appendSeparatorSpaceList(node.typeArguments); - this.appendToken(node.greaterThanToken); - }; - PrettyPrinterImpl.prototype.visitTupleType = function (node) { - this.appendToken(node.openBracketToken); - this.appendSeparatorSpaceList(node.types); - this.appendToken(node.closeBracketToken); - }; - PrettyPrinterImpl.prototype.visitParenthesizedType = function (node) { - this.appendToken(node.openParenToken); - this.appendElement(node.type); - this.appendToken(node.closeParenToken); - }; - PrettyPrinterImpl.prototype.visitUnionType = function (node) { - this.appendElement(node.left); - this.ensureSpace(); - this.appendToken(node.barToken); - this.ensureSpace(); - this.appendElement(node.right); - }; - PrettyPrinterImpl.prototype.visitConstructorType = function (node) { - this.appendToken(node.newKeyword); - this.ensureSpace(); - this.appendNode(node.typeParameterList); - TypeScript.visitNodeOrToken(this, node.parameterList); - this.ensureSpace(); - this.appendToken(node.equalsGreaterThanToken); - this.ensureSpace(); - TypeScript.visitNodeOrToken(this, node.type); - }; - PrettyPrinterImpl.prototype.visitFunctionType = function (node) { - this.appendNode(node.typeParameterList); - TypeScript.visitNodeOrToken(this, node.parameterList); - this.ensureSpace(); - this.appendToken(node.equalsGreaterThanToken); - this.ensureSpace(); - TypeScript.visitNodeOrToken(this, node.type); - }; - PrettyPrinterImpl.prototype.visitObjectType = function (node) { - this.appendToken(node.openBraceToken); - this.ensureSpace(); - this.appendSeparatorSpaceList(node.typeMembers); - this.appendToken(node.closeBraceToken); - }; - PrettyPrinterImpl.prototype.visitArrayType = function (node) { - TypeScript.visitNodeOrToken(this, node.type); - this.appendToken(node.openBracketToken); - this.appendToken(node.closeBracketToken); - }; - PrettyPrinterImpl.prototype.visitGenericType = function (node) { - TypeScript.visitNodeOrToken(this, node.name); - TypeScript.visitNodeOrToken(this, node.typeArgumentList); - }; - PrettyPrinterImpl.prototype.visitTypeAnnotation = function (node) { - this.appendToken(node.colonToken); - this.ensureSpace(); - TypeScript.visitNodeOrToken(this, node.type); - }; - PrettyPrinterImpl.prototype.appendStatements = function (statements) { - var lastStatement = undefined; - for (var i = 0, n = statements.length; i < n; i++) { - var statement = statements[i]; - var newLineCount = this.newLineCountBetweenStatements(lastStatement, statement); - this.appendNewLines(newLineCount); - TypeScript.visitNodeOrToken(this, statement); - lastStatement = statement; - } - }; - PrettyPrinterImpl.prototype.visitBlock = function (node) { - this.appendToken(node.openBraceToken); - this.ensureNewLine(); - this.indentation++; - this.appendStatements(node.statements); - this.indentation--; - this.ensureNewLine(); - this.appendToken(node.closeBraceToken); - }; - PrettyPrinterImpl.prototype.visitParameter = function (node) { - this.appendToken(node.dotDotDotToken); - this.appendSpaceList(node.modifiers); - this.appendToken(node.identifier); - this.appendToken(node.questionToken); - this.appendNode(node.typeAnnotation); - this.appendNode(node.equalsValueClause); - }; - PrettyPrinterImpl.prototype.visitMemberAccessExpression = function (node) { - TypeScript.visitNodeOrToken(this, node.expression); - this.appendToken(node.dotToken); - this.appendToken(node.name); - }; - PrettyPrinterImpl.prototype.visitPostfixUnaryExpression = function (node) { - TypeScript.visitNodeOrToken(this, node.operand); - this.appendToken(node.operatorToken); - }; - PrettyPrinterImpl.prototype.visitElementAccessExpression = function (node) { - TypeScript.visitNodeOrToken(this, node.expression); - this.appendToken(node.openBracketToken); - TypeScript.visitNodeOrToken(this, node.argumentExpression); - this.appendToken(node.closeBracketToken); - }; - PrettyPrinterImpl.prototype.visitInvocationExpression = function (node) { - TypeScript.visitNodeOrToken(this, node.expression); - TypeScript.visitNodeOrToken(this, node.argumentList); - }; - PrettyPrinterImpl.prototype.visitArgumentList = function (node) { - this.appendToken(node.openParenToken); - this.appendSeparatorSpaceList(node.arguments); - this.appendToken(node.closeParenToken); - }; - PrettyPrinterImpl.prototype.visitBinaryExpression = function (node) { - TypeScript.visitNodeOrToken(this, node.left); - if (node.operatorToken.kind !== 83 /* CommaToken */) { - this.ensureSpace(); - } - this.appendToken(node.operatorToken); - this.ensureSpace(); - TypeScript.visitNodeOrToken(this, node.right); - }; - PrettyPrinterImpl.prototype.visitConditionalExpression = function (node) { - TypeScript.visitNodeOrToken(this, node.condition); - this.ensureSpace(); - this.appendToken(node.questionToken); - this.ensureSpace(); - TypeScript.visitNodeOrToken(this, node.whenTrue); - this.ensureSpace(); - this.appendToken(node.colonToken); - this.ensureSpace(); - TypeScript.visitNodeOrToken(this, node.whenFalse); - }; - PrettyPrinterImpl.prototype.visitConstructSignature = function (node) { - this.appendToken(node.newKeyword); - TypeScript.visitNodeOrToken(this, node.callSignature); - }; - PrettyPrinterImpl.prototype.visitMethodSignature = function (node) { - TypeScript.visitNodeOrToken(this, node.propertyName); - this.appendToken(node.questionToken); - TypeScript.visitNodeOrToken(this, node.callSignature); - }; - PrettyPrinterImpl.prototype.visitIndexSignature = function (node) { - this.appendToken(node.openBracketToken); - this.appendSeparatorSpaceList(node.parameters); - this.appendToken(node.closeBracketToken); - this.appendNode(node.typeAnnotation); - }; - PrettyPrinterImpl.prototype.visitPropertySignature = function (node) { - TypeScript.visitNodeOrToken(this, node.propertyName); - this.appendToken(node.questionToken); - this.appendNode(node.typeAnnotation); - }; - PrettyPrinterImpl.prototype.visitParameterList = function (node) { - this.appendToken(node.openParenToken); - this.appendSeparatorSpaceList(node.parameters); - this.appendToken(node.closeParenToken); - }; - PrettyPrinterImpl.prototype.visitCallSignature = function (node) { - this.appendNode(node.typeParameterList); - TypeScript.visitNodeOrToken(this, node.parameterList); - this.appendNode(node.typeAnnotation); - }; - PrettyPrinterImpl.prototype.visitTypeParameterList = function (node) { - this.appendToken(node.lessThanToken); - this.appendSeparatorSpaceList(node.typeParameters); - this.appendToken(node.greaterThanToken); - }; - PrettyPrinterImpl.prototype.visitTypeParameter = function (node) { - this.appendToken(node.identifier); - this.appendNode(node.constraint); - }; - PrettyPrinterImpl.prototype.visitConstraint = function (node) { - this.ensureSpace(); - this.appendToken(node.extendsKeyword); - this.ensureSpace(); - TypeScript.visitNodeOrToken(this, node.typeOrExpression); - }; - PrettyPrinterImpl.prototype.appendBlockOrStatement = function (node) { - if (node.kind === 153 /* Block */) { - this.ensureSpace(); - TypeScript.visitNodeOrToken(this, node); - } - else { - this.ensureNewLine(); - this.indentation++; - TypeScript.visitNodeOrToken(this, node); - this.indentation--; - } - }; - PrettyPrinterImpl.prototype.visitIfStatement = function (node) { - this.appendToken(node.ifKeyword); - this.ensureSpace(); - this.appendToken(node.openParenToken); - TypeScript.visitNodeOrToken(this, node.condition); - this.appendToken(node.closeParenToken); - this.appendBlockOrStatement(node.statement); - this.appendNode(node.elseClause); - }; - PrettyPrinterImpl.prototype.visitElseClause = function (node) { - this.ensureNewLine(); - this.appendToken(node.elseKeyword); - if (node.statement.kind === 154 /* IfStatement */) { - this.ensureSpace(); - TypeScript.visitNodeOrToken(this, node.statement); - } - else { - this.appendBlockOrStatement(node.statement); - } - }; - PrettyPrinterImpl.prototype.visitExpressionStatement = function (node) { - TypeScript.visitNodeOrToken(this, node.expression); - this.appendToken(node.semicolonToken); - }; - PrettyPrinterImpl.prototype.visitConstructorDeclaration = function (node) { - this.appendToken(node.constructorKeyword); - TypeScript.visitNodeOrToken(this, node.callSignature); - this.appendBody(node.body); - }; - PrettyPrinterImpl.prototype.visitIndexMemberDeclaration = function (node) { - this.appendSpaceList(node.modifiers); - this.ensureSpace(); - TypeScript.visitNodeOrToken(this, node.indexSignature); - this.appendToken(node.semicolonToken); - }; - PrettyPrinterImpl.prototype.visitMemberFunctionDeclaration = function (node) { - this.appendSpaceList(node.modifiers); - this.ensureSpace(); - TypeScript.visitNodeOrToken(this, node.propertyName); - TypeScript.visitNodeOrToken(this, node.callSignature); - this.appendBody(node.body); - }; - PrettyPrinterImpl.prototype.visitGetAccessor = function (node) { - this.appendSpaceList(node.modifiers); - this.ensureSpace(); - this.appendToken(node.getKeyword); - this.ensureSpace(); - TypeScript.visitNodeOrToken(this, node.propertyName); - TypeScript.visitNodeOrToken(this, node.callSignature); - this.ensureSpace(); - TypeScript.visitNodeOrToken(this, node.body); - }; - PrettyPrinterImpl.prototype.visitSetAccessor = function (node) { - this.appendSpaceList(node.modifiers); - this.ensureSpace(); - this.appendToken(node.setKeyword); - this.ensureSpace(); - TypeScript.visitNodeOrToken(this, node.propertyName); - TypeScript.visitNodeOrToken(this, node.callSignature); - this.ensureSpace(); - TypeScript.visitNodeOrToken(this, node.body); - }; - PrettyPrinterImpl.prototype.visitMemberVariableDeclaration = function (node) { - this.appendSpaceList(node.modifiers); - this.ensureSpace(); - TypeScript.visitNodeOrToken(this, node.variableDeclarator); - this.appendToken(node.semicolonToken); - }; - PrettyPrinterImpl.prototype.visitThrowStatement = function (node) { - this.appendToken(node.throwKeyword); - if (node.expression) { - this.ensureSpace(); - TypeScript.visitNodeOrToken(this, node.expression); - } - this.appendToken(node.semicolonToken); - }; - PrettyPrinterImpl.prototype.visitReturnStatement = function (node) { - this.appendToken(node.returnKeyword); - if (node.expression) { - this.ensureSpace(); - TypeScript.visitNodeOrToken(this, node.expression); - } - this.appendToken(node.semicolonToken); - }; - PrettyPrinterImpl.prototype.visitObjectCreationExpression = function (node) { - this.appendToken(node.newKeyword); - this.ensureSpace(); - TypeScript.visitNodeOrToken(this, node.expression); - this.appendNode(node.argumentList); - }; - PrettyPrinterImpl.prototype.visitSwitchStatement = function (node) { - this.appendToken(node.switchKeyword); - this.ensureSpace(); - this.appendToken(node.openParenToken); - TypeScript.visitNodeOrToken(this, node.expression); - this.appendToken(node.closeParenToken); - this.ensureSpace(); - this.appendToken(node.openBraceToken); - this.ensureNewLine(); - var lastSwitchClause = undefined; - for (var i = 0, n = node.switchClauses.length; i < n; i++) { - var switchClause = node.switchClauses[i]; - var newLineCount = this.newLineCountBetweenSwitchClauses(lastSwitchClause, switchClause); - this.appendNewLines(newLineCount); - TypeScript.visitNodeOrToken(this, switchClause); - lastSwitchClause = switchClause; - } - this.ensureNewLine(); - this.appendToken(node.closeBraceToken); - }; - PrettyPrinterImpl.prototype.appendSwitchClauseStatements = function (node) { - if (TypeScript.childCount(node.statements) === 1 && TypeScript.childAt(node.statements, 0).kind === 153 /* Block */) { - this.ensureSpace(); - TypeScript.visitNodeOrToken(this, node.statements[0]); - } - else if (TypeScript.childCount(node.statements) > 0) { - this.ensureNewLine(); - this.indentation++; - this.appendStatements(node.statements); - this.indentation--; - } - }; - PrettyPrinterImpl.prototype.visitCaseSwitchClause = function (node) { - this.appendToken(node.caseKeyword); - this.ensureSpace(); - TypeScript.visitNodeOrToken(this, node.expression); - this.appendToken(node.colonToken); - this.appendSwitchClauseStatements(node); - }; - PrettyPrinterImpl.prototype.visitDefaultSwitchClause = function (node) { - this.appendToken(node.defaultKeyword); - this.appendToken(node.colonToken); - this.appendSwitchClauseStatements(node); - }; - PrettyPrinterImpl.prototype.visitBreakStatement = function (node) { - this.appendToken(node.breakKeyword); - if (node.identifier) { - this.ensureSpace(); - this.appendToken(node.identifier); - } - this.appendToken(node.semicolonToken); - }; - PrettyPrinterImpl.prototype.visitContinueStatement = function (node) { - this.appendToken(node.continueKeyword); - if (node.identifier) { - this.ensureSpace(); - this.appendToken(node.identifier); - } - this.appendToken(node.semicolonToken); - }; - PrettyPrinterImpl.prototype.visitForStatement = function (node) { - this.appendToken(node.forKeyword); - this.ensureSpace(); - this.appendToken(node.openParenToken); - TypeScript.visitNodeOrToken(this, node.initializer); - this.appendToken(node.firstSemicolonToken); - if (node.condition) { - this.ensureSpace(); - TypeScript.visitNodeOrToken(this, node.condition); - } - this.appendToken(node.secondSemicolonToken); - if (node.incrementor) { - this.ensureSpace(); - TypeScript.visitNodeOrToken(this, node.incrementor); - } - this.appendToken(node.closeParenToken); - this.appendBlockOrStatement(node.statement); - }; - PrettyPrinterImpl.prototype.visitForInStatement = function (node) { - this.appendToken(node.forKeyword); - this.ensureSpace(); - this.appendToken(node.openParenToken); - this.appendElement(node.left); - this.ensureSpace(); - this.appendToken(node.inKeyword); - this.ensureSpace(); - this.appendElement(node.right); - this.appendToken(node.closeParenToken); - this.appendBlockOrStatement(node.statement); - }; - PrettyPrinterImpl.prototype.visitWhileStatement = function (node) { - this.appendToken(node.whileKeyword); - this.ensureSpace(); - this.appendToken(node.openParenToken); - TypeScript.visitNodeOrToken(this, node.condition); - this.appendToken(node.closeParenToken); - this.appendBlockOrStatement(node.statement); - }; - PrettyPrinterImpl.prototype.visitWithStatement = function (node) { - this.appendToken(node.withKeyword); - this.ensureSpace(); - this.appendToken(node.openParenToken); - TypeScript.visitNodeOrToken(this, node.condition); - this.appendToken(node.closeParenToken); - this.appendBlockOrStatement(node.statement); - }; - PrettyPrinterImpl.prototype.visitEnumDeclaration = function (node) { - this.appendSpaceList(node.modifiers); - this.ensureSpace(); - this.appendToken(node.enumKeyword); - this.ensureSpace(); - this.appendToken(node.identifier); - this.ensureSpace(); - this.appendToken(node.openBraceToken); - this.ensureNewLine(); - this.indentation++; - this.appendSeparatorNewLineList(node.enumElements); - this.indentation--; - this.appendToken(node.closeBraceToken); - }; - PrettyPrinterImpl.prototype.visitEnumElement = function (node) { - TypeScript.visitNodeOrToken(this, node.propertyName); - this.ensureSpace(); - this.appendNode(node.equalsValueClause); - }; - PrettyPrinterImpl.prototype.visitCastExpression = function (node) { - this.appendToken(node.lessThanToken); - TypeScript.visitNodeOrToken(this, node.type); - this.appendToken(node.greaterThanToken); - TypeScript.visitNodeOrToken(this, node.expression); - }; - PrettyPrinterImpl.prototype.visitObjectLiteralExpression = function (node) { - this.appendToken(node.openBraceToken); - if (TypeScript.childCount(node.propertyAssignments) === 1) { - this.ensureSpace(); - TypeScript.visitNodeOrToken(this, TypeScript.childAt(node.propertyAssignments, 0)); - this.ensureSpace(); - } - else if (TypeScript.childCount(node.propertyAssignments) > 0) { - this.indentation++; - this.ensureNewLine(); - this.appendSeparatorNewLineList(node.propertyAssignments); - this.ensureNewLine(); - this.indentation--; - } - this.appendToken(node.closeBraceToken); - }; - PrettyPrinterImpl.prototype.visitComputedPropertyName = function (node) { - this.appendToken(node.openBracketToken); - TypeScript.visitNodeOrToken(this, node.expression); - this.appendToken(node.closeBracketToken); - }; - PrettyPrinterImpl.prototype.visitPropertyAssignment = function (node) { - TypeScript.visitNodeOrToken(this, node.propertyName); - this.appendToken(node.colonToken); - this.ensureSpace(); - TypeScript.visitNodeOrToken(this, node.expression); - }; - PrettyPrinterImpl.prototype.visitFunctionExpression = function (node) { - this.appendToken(node.functionKeyword); - if (node.identifier) { - this.ensureSpace(); - this.appendToken(node.identifier); - } - TypeScript.visitNodeOrToken(this, node.callSignature); - this.ensureSpace(); - TypeScript.visitNodeOrToken(this, node.body); - }; - PrettyPrinterImpl.prototype.visitEmptyStatement = function (node) { - this.appendToken(node.semicolonToken); - }; - PrettyPrinterImpl.prototype.visitTryStatement = function (node) { - this.appendToken(node.tryKeyword); - this.ensureSpace(); - TypeScript.visitNodeOrToken(this, node.block); - this.appendNode(node.catchClause); - this.appendNode(node.finallyClause); - }; - PrettyPrinterImpl.prototype.visitCatchClause = function (node) { - this.ensureNewLine(); - this.appendToken(node.catchKeyword); - this.ensureSpace(); - this.appendToken(node.openParenToken); - this.appendToken(node.identifier); - this.appendToken(node.closeParenToken); - this.ensureSpace(); - TypeScript.visitNodeOrToken(this, node.block); - }; - PrettyPrinterImpl.prototype.visitFinallyClause = function (node) { - this.ensureNewLine(); - this.appendToken(node.finallyKeyword); - this.ensureNewLine(); - TypeScript.visitNodeOrToken(this, node.block); - }; - PrettyPrinterImpl.prototype.visitLabeledStatement = function (node) { - this.appendToken(node.identifier); - this.appendToken(node.colonToken); - this.appendBlockOrStatement(node.statement); - }; - PrettyPrinterImpl.prototype.visitDoStatement = function (node) { - this.appendToken(node.doKeyword); - this.appendBlockOrStatement(node.statement); - this.ensureNewLine(); - this.appendToken(node.whileKeyword); - this.ensureSpace(); - this.appendToken(node.openParenToken); - TypeScript.visitNodeOrToken(this, node.condition); - this.appendToken(node.closeParenToken); - this.appendToken(node.semicolonToken); - }; - PrettyPrinterImpl.prototype.visitTypeOfExpression = function (node) { - this.appendToken(node.typeOfKeyword); - this.ensureSpace(); - TypeScript.visitNodeOrToken(this, node.expression); - }; - PrettyPrinterImpl.prototype.visitDeleteExpression = function (node) { - this.appendToken(node.deleteKeyword); - this.ensureSpace(); - TypeScript.visitNodeOrToken(this, node.expression); - }; - PrettyPrinterImpl.prototype.visitVoidExpression = function (node) { - this.appendToken(node.voidKeyword); - this.ensureSpace(); - TypeScript.visitNodeOrToken(this, node.expression); - }; - PrettyPrinterImpl.prototype.visitYieldExpression = function (node) { - this.appendToken(node.yieldKeyword); - this.ensureSpace(); - this.appendToken(node.asterixToken); - this.ensureSpace(); - TypeScript.visitNodeOrToken(this, node.expression); - }; - PrettyPrinterImpl.prototype.visitAwaitExpression = function (node) { - this.appendToken(node.awaitKeyword); - this.ensureSpace(); - TypeScript.visitNodeOrToken(this, node.expression); - }; - PrettyPrinterImpl.prototype.visitDebuggerStatement = function (node) { - this.appendToken(node.debuggerKeyword); - this.appendToken(node.semicolonToken); - }; - PrettyPrinterImpl.prototype.visitTemplateExpression = function (node) { - this.appendToken(node.templateStartToken); - this.ensureSpace(); - this.appendSpaceList(node.templateClauses); - }; - PrettyPrinterImpl.prototype.visitTemplateClause = function (node) { - TypeScript.visitNodeOrToken(this, node.expression); - this.ensureSpace(); - this.appendToken(node.templateMiddleOrEndToken); - }; - PrettyPrinterImpl.prototype.visitTemplateAccessExpression = function (node) { - TypeScript.visitNodeOrToken(this, node.expression); - this.ensureSpace(); - TypeScript.visitNodeOrToken(this, node.templateExpression); - }; - return PrettyPrinterImpl; - })(); - })(PrettyPrinter = TypeScript.PrettyPrinter || (TypeScript.PrettyPrinter = {})); -})(TypeScript || (TypeScript = {})); -var negative262ExpectedResults = { - 'Sbp_12.5_A9_T3.js': false, - 'Sbp_12.6.1_A13_T3.js': false, - 'Sbp_12.6.2_A13_T3.js': false, - 'Sbp_12.6.4_A13_T3.js': false, - 'Sbp_7.8.4_A6.1_T4.js': false, - 'Sbp_7.8.4_A6.2_T1.js': false, - 'Sbp_7.8.4_A6.2_T2.js': false, - 'Sbp_A1_T1.js': true, - 'Sbp_A2_T1.js': true, - 'Sbp_A2_T2.js': true, - 'Sbp_A3_T1.js': true, - 'Sbp_A3_T2.js': true, - 'Sbp_A4_T1.js': true, - 'Sbp_A4_T2.js': true, - 'Sbp_A5_T1.js': true, - 'Sbp_A5_T2.js': true, - 'S7.2_A5_T1.js': false, - 'S7.2_A5_T2.js': false, - 'S7.2_A5_T3.js': false, - 'S7.2_A5_T4.js': false, - 'S7.2_A5_T5.js': false, - 'S7.3_A2.1_T1.js': true, - 'S7.3_A2.1_T2.js': false, - 'S7.3_A2.2_T1.js': true, - 'S7.3_A2.2_T2.js': false, - 'S7.3_A2.3.js': true, - 'S7.3_A2.4.js': true, - 'S7.3_A3.1_T1.js': true, - 'S7.3_A3.1_T2.js': true, - 'S7.3_A3.1_T3.js': false, - 'S7.3_A3.2_T1.js': true, - 'S7.3_A3.2_T2.js': true, - 'S7.3_A3.2_T3.js': false, - 'S7.3_A3.3_T1.js': true, - 'S7.3_A3.3_T2.js': true, - 'S7.3_A3.4_T1.js': true, - 'S7.3_A3.4_T2.js': true, - 'S7.3_A6_T1.js': false, - 'S7.3_A6_T2.js': false, - 'S7.3_A6_T3.js': false, - 'S7.3_A6_T4.js': false, - 'S7.4_A2_T2.js': false, - 'S7.4_A3.js': false, - 'S7.4_A4_T1.js': false, - 'S7.4_A4_T4.js': false, - 'S7.6.1.1_A1.1.js': false, - 'S7.6.1.1_A1.10.js': false, - 'S7.6.1.1_A1.11.js': false, - 'S7.6.1.1_A1.12.js': false, - 'S7.6.1.1_A1.13.js': false, - 'S7.6.1.1_A1.14.js': false, - 'S7.6.1.1_A1.15.js': false, - 'S7.6.1.1_A1.16.js': false, - 'S7.6.1.1_A1.17.js': false, - 'S7.6.1.1_A1.18.js': true, - 'S7.6.1.1_A1.19.js': false, - 'S7.6.1.1_A1.2.js': false, - 'S7.6.1.1_A1.20.js': false, - 'S7.6.1.1_A1.21.js': false, - 'S7.6.1.1_A1.22.js': false, - 'S7.6.1.1_A1.23.js': false, - 'S7.6.1.1_A1.24.js': false, - 'S7.6.1.1_A1.25.js': false, - 'S7.6.1.1_A1.3.js': false, - 'S7.6.1.1_A1.4.js': false, - 'S7.6.1.1_A1.5.js': false, - 'S7.6.1.1_A1.6.js': false, - 'S7.6.1.1_A1.7.js': false, - 'S7.6.1.1_A1.8.js': false, - 'S7.6.1.1_A1.9.js': false, - 'S7.6.1.2_A1.10.js': false, - 'S7.6.1.2_A1.11.js': false, - 'S7.6.1.2_A1.15.js': false, - 'S7.6.1.2_A1.16.js': false, - 'S7.6.1.2_A1.18.js': false, - 'S7.6.1.2_A1.21.js': false, - 'S7.6.1.2_A1.22.js': false, - 'S7.6.1.2_A1.23.js': false, - 'S7.6.1.2_A1.24.js': false, - 'S7.6.1.2_A1.26.js': false, - 'S7.6.1.2_A1.27.js': false, - 'S7.6.1.2_A1.5.js': false, - 'S7.6.1.2_A1.6.js': false, - 'S7.6.1.2_A1.7.js': false, - 'S7.6.1.2_A1.9.js': false, - '7.6.1.2-1gs.js': false, - 'S7.6.1_A1.1.js': true, - 'S7.6.1_A1.2.js': true, - 'S7.6.1_A1.3.js': true, - 'S7.7_A2_T1.js': false, - 'S7.7_A2_T10.js': false, - 'S7.7_A2_T2.js': false, - 'S7.7_A2_T3.js': false, - 'S7.7_A2_T4.js': false, - 'S7.7_A2_T5.js': false, - 'S7.7_A2_T6.js': false, - 'S7.7_A2_T7.js': false, - 'S7.7_A2_T8.js': false, - 'S7.7_A2_T9.js': false, - '7.8.3-1gs.js': true, - '7.8.3-2gs.js': true, - '7.8.3-3gs.js': true, - 'S7.8.3_A4.1_T1.js': true, - 'S7.8.3_A4.1_T2.js': true, - 'S7.8.3_A4.1_T3.js': true, - 'S7.8.3_A4.1_T4.js': true, - 'S7.8.3_A4.1_T5.js': true, - 'S7.8.3_A4.1_T6.js': true, - 'S7.8.3_A4.1_T7.js': true, - 'S7.8.3_A4.1_T8.js': true, - 'S7.8.3_A6.1_T1.js': false, - 'S7.8.3_A6.1_T2.js': false, - 'S7.8.3_A6.2_T1.js': false, - 'S7.8.3_A6.2_T2.js': false, - '7.8.4-1gs.js': true, - 'S7.8.4_A1.1_T1.js': false, - 'S7.8.4_A1.1_T2.js': false, - 'S7.8.4_A1.2_T1.js': false, - 'S7.8.4_A1.2_T2.js': false, - 'S7.8.4_A3.1_T1.js': false, - 'S7.8.4_A3.1_T2.js': false, - 'S7.8.4_A3.2_T1.js': false, - 'S7.8.4_A3.2_T2.js': false, - 'S7.8.4_A4.3_T1.js': true, - 'S7.8.4_A4.3_T2.js': true, - 'S7.8.4_A7.1_T4.js': false, - 'S7.8.4_A7.2_T1.js': false, - 'S7.8.4_A7.2_T2.js': false, - 'S7.8.4_A7.2_T3.js': false, - 'S7.8.4_A7.2_T4.js': false, - 'S7.8.4_A7.2_T5.js': false, - 'S7.8.4_A7.2_T6.js': false, - '7.8.5-1gs.js': false, - 'S7.8.5_A1.2_T1.js': false, - 'S7.8.5_A1.2_T2.js': false, - 'S7.8.5_A1.2_T3.js': false, - 'S7.8.5_A1.2_T4.js': false, - 'S7.8.5_A1.3_T1.js': false, - 'S7.8.5_A1.3_T3.js': false, - 'S7.8.5_A1.5_T1.js': false, - 'S7.8.5_A1.5_T3.js': false, - 'S7.8.5_A2.2_T1.js': false, - 'S7.8.5_A2.2_T2.js': false, - 'S7.8.5_A2.3_T1.js': false, - 'S7.8.5_A2.3_T3.js': false, - 'S7.8.5_A2.5_T1.js': false, - 'S7.8.5_A2.5_T3.js': false, - 'S7.9.2_A1_T1.js': false, - 'S7.9.2_A1_T3.js': false, - 'S7.9.2_A1_T6.js': false, - 'S7.9_A10_T2.js': false, - 'S7.9_A10_T4.js': false, - 'S7.9_A10_T6.js': false, - 'S7.9_A10_T8.js': false, - 'S7.9_A11_T4.js': false, - 'S7.9_A11_T8.js': false, - 'S7.9_A4.js': false, - 'S7.9_A5.1_T1.js': false, - 'S7.9_A5.3_T1.js': false, - 'S7.9_A5.7_T1.js': true, - 'S7.9_A6.2_T1.js': false, - 'S7.9_A6.2_T10.js': false, - 'S7.9_A6.2_T2.js': false, - 'S7.9_A6.2_T3.js': false, - 'S7.9_A6.2_T4.js': false, - 'S7.9_A6.2_T5.js': false, - 'S7.9_A6.2_T6.js': false, - 'S7.9_A6.2_T7.js': false, - 'S7.9_A6.2_T8.js': false, - 'S7.9_A6.2_T9.js': false, - 'S7.9_A6.3_T1.js': false, - 'S7.9_A6.3_T2.js': false, - 'S7.9_A6.3_T3.js': false, - 'S7.9_A6.3_T4.js': false, - 'S7.9_A6.3_T5.js': false, - 'S7.9_A6.3_T6.js': false, - 'S7.9_A6.3_T7.js': false, - 'S7.9_A6.4_T1.js': false, - 'S7.9_A6.4_T2.js': false, - 'S7.9_A7_T7.js': true, - 'S7.9_A9_T6.js': false, - 'S7.9_A9_T7.js': false, - 'S7.9_A9_T8.js': false, - 'S8.2_A2.js': false, - 'S8.3_A2.1.js': true, - 'S8.3_A2.2.js': true, - 'S8.4_A13_T1.js': false, - 'S8.4_A13_T2.js': false, - 'S8.4_A13_T3.js': false, - 'S8.4_A14_T1.js': false, - 'S8.4_A14_T2.js': false, - 'S8.4_A14_T3.js': false, - 'S8.4_A7.1.js': true, - 'S8.4_A7.2.js': true, - 'S8.4_A7.3.js': true, - 'S8.4_A7.4.js': true, - 'S8.6.2_A7.js': true, - '8.7.2-3-a-1gs.js': true, - '8.7.2-3-a-2gs.js': true, - 'S8.7.2_A1_T1.js': true, - 'S8.7.2_A1_T2.js': true, - '10.1.1-2gs.js': false, - '10.1.1-5gs.js': false, - '10.1.1-8gs.js': false, - '10.4.2.1-1gs.js': true, - '10.5-1gs.js': true, - '10.6-2gs.js': true, - 'S11.1.1_A1.js': true, - '11.1.5-1gs.js': true, - '11.1.5-2gs.js': true, - '11.13.1-4-28gs.js': true, - '11.13.1-4-29gs.js': true, - 'S11.13.1_A2.1_T3.js': true, - '11.13.2-6-1gs.js': true, - 'S11.13.2_A2.2_T1.js': true, - 'S11.13.2_A2.2_T10.js': true, - 'S11.13.2_A2.2_T11.js': true, - 'S11.13.2_A2.2_T2.js': true, - 'S11.13.2_A2.2_T3.js': true, - 'S11.13.2_A2.2_T4.js': true, - 'S11.13.2_A2.2_T5.js': true, - 'S11.13.2_A2.2_T6.js': true, - 'S11.13.2_A2.2_T7.js': true, - 'S11.13.2_A2.2_T8.js': true, - 'S11.13.2_A2.2_T9.js': true, - 'S11.2.4_A1.3_T1.js': false, - '11.3.1-2-1gs.js': true, - 'S11.3.1_A1.1_T1.js': true, - 'S11.3.1_A1.1_T2.js': true, - 'S11.3.1_A1.1_T3.js': true, - 'S11.3.1_A1.1_T4.js': true, - 'S11.3.1_A2.1_T3.js': true, - 'S11.3.2_A1.1_T1.js': true, - 'S11.3.2_A1.1_T2.js': true, - 'S11.3.2_A1.1_T3.js': true, - 'S11.3.2_A1.1_T4.js': true, - 'S11.3.2_A2.1_T3.js': true, - '11.4.1-5-a-5gs.js': true, - 'S11.4.2_A2_T2.js': true, - 'S11.4.4_A2.1_T3.js': true, - '11.4.5-2-2gs.js': true, - 'S11.4.5_A2.1_T3.js': true, - 'S12.1_A4_T1.js': false, - 'S12.1_A4_T2.js': false, - '12.10.1-11gs.js': true, - 'S12.11_A2_T1.js': true, - 'S12.11_A3_T1.js': false, - 'S12.11_A3_T2.js': false, - 'S12.11_A3_T3.js': false, - 'S12.11_A3_T4.js': false, - 'S12.11_A3_T5.js': false, - 'S12.13_A1.js': true, - '12.14.1-1gs.js': true, - 'S12.14_A16_T1.js': false, - 'S12.14_A16_T10.js': false, - 'S12.14_A16_T11.js': false, - 'S12.14_A16_T12.js': false, - 'S12.14_A16_T13.js': false, - 'S12.14_A16_T14.js': false, - 'S12.14_A16_T15.js': false, - 'S12.14_A16_T2.js': false, - 'S12.14_A16_T3.js': false, - 'S12.14_A16_T4.js': false, - 'S12.14_A16_T5.js': false, - 'S12.14_A16_T6.js': false, - 'S12.14_A16_T7.js': false, - 'S12.14_A16_T8.js': false, - 'S12.14_A16_T9.js': false, - '12.2.1-1gs.js': true, - '12.2.1-4gs.js': true, - 'S12.2_A8_T1.js': false, - 'S12.2_A8_T2.js': false, - 'S12.2_A8_T3.js': false, - 'S12.2_A8_T4.js': false, - 'S12.2_A8_T5.js': false, - 'S12.2_A8_T6.js': false, - 'S12.2_A8_T7.js': false, - 'S12.2_A8_T8.js': false, - 'S12.4_A1.js': false, - 'S12.5_A11.js': false, - 'S12.5_A2.js': true, - 'S12.5_A6_T1.js': false, - 'S12.5_A6_T2.js': false, - 'S12.5_A8.js': false, - 'S12.6.1_A12.js': false, - 'S12.6.1_A15.js': false, - 'S12.6.1_A6_T1.js': false, - 'S12.6.1_A6_T2.js': false, - 'S12.6.1_A6_T3.js': false, - 'S12.6.1_A6_T4.js': false, - 'S12.6.1_A6_T5.js': false, - 'S12.6.1_A6_T6.js': false, - 'S12.6.2_A15.js': false, - 'S12.6.2_A6_T1.js': false, - 'S12.6.2_A6_T2.js': false, - 'S12.6.2_A6_T3.js': false, - 'S12.6.2_A6_T4.js': false, - 'S12.6.2_A6_T5.js': false, - 'S12.6.2_A6_T6.js': false, - 'S12.6.3_A11.1_T3.js': true, - 'S12.6.3_A11_T3.js': true, - 'S12.6.3_A12.1_T3.js': true, - 'S12.6.3_A12_T3.js': true, - 'S12.6.3_A4.1.js': false, - 'S12.6.3_A4_T1.js': false, - 'S12.6.3_A4_T2.js': false, - 'S12.6.3_A7.1_T1.js': false, - 'S12.6.3_A7.1_T2.js': false, - 'S12.6.3_A7_T1.js': false, - 'S12.6.3_A7_T2.js': false, - 'S12.6.3_A8.1_T1.js': false, - 'S12.6.3_A8.1_T2.js': false, - 'S12.6.3_A8.1_T3.js': false, - 'S12.6.3_A8_T1.js': false, - 'S12.6.3_A8_T2.js': false, - 'S12.6.3_A8_T3.js': false, - 'S12.6.4_A15.js': false, - 'S12.7_A1_T1.js': true, - 'S12.7_A1_T2.js': true, - 'S12.7_A1_T3.js': true, - 'S12.7_A1_T4.js': true, - 'S12.7_A5_T1.js': true, - 'S12.7_A5_T2.js': true, - 'S12.7_A5_T3.js': true, - 'S12.7_A6.js': true, - 'S12.7_A8_T1.js': true, - 'S12.7_A8_T2.js': true, - 'S12.8_A1_T1.js': true, - 'S12.8_A1_T2.js': true, - 'S12.8_A1_T3.js': true, - 'S12.8_A1_T4.js': true, - 'S12.8_A5_T1.js': true, - 'S12.8_A5_T2.js': true, - 'S12.8_A5_T3.js': true, - 'S12.8_A6.js': true, - 'S12.8_A8_T1.js': true, - 'S12.8_A8_T2.js': true, - 'S12.9_A1_T1.js': true, - 'S12.9_A1_T10.js': true, - 'S12.9_A1_T2.js': true, - 'S12.9_A1_T3.js': true, - 'S12.9_A1_T4.js': true, - 'S12.9_A1_T5.js': true, - 'S12.9_A1_T6.js': true, - 'S12.9_A1_T7.js': true, - 'S12.9_A1_T8.js': true, - 'S12.9_A1_T9.js': true, - '13.0_4-17gs.js': true, - '13.0_4-5gs.js': true, - 'S13_A7_T3.js': false, - '13.1-13gs.js': true, - '13.1-1gs.js': true, - '13.1-4gs.js': true, - '13.1-5gs.js': true, - '13.1-8gs.js': true, - '13.2-19-b-3gs.js': true, - '14.1-4gs.js': true, - '14.1-5gs.js': true, - 'S15.1.2.1_A2_T2.js': true, - 'S15.1_A1_T1.js': true, - 'S15.1_A1_T2.js': true, - 'S15.1_A2_T1.js': true, - 'S15.2.4.3_A12.js': true, - 'S15.2.4.3_A13.js': true, - 'S15.2.4.4_A12.js': true, - 'S15.2.4.4_A13.js': true, - 'S15.2.4.4_A14.js': true, - 'S15.2.4.4_A15.js': true, - 'S15.2.4.5_A12.js': true, - 'S15.2.4.5_A13.js': true, - 'S15.2.4.6_A12.js': true, - 'S15.2.4.6_A13.js': true, - 'S15.2.4.7_A12.js': true, - 'S15.2.4.7_A13.js': true, - '15.3.2.1-10-4gs.js': true, - '15.3.2.1-10-6gs.js': true, - 'S15.3.4.2_A12.js': true, - 'S15.3.4.2_A13.js': true, - 'S15.3.4.2_A14.js': true, - 'S15.3.4.2_A15.js': true, - 'S15.3.4.2_A16.js': true, - 'S15.3.4.3_A13.js': true, - 'S15.3.4.3_A14.js': true, - 'S15.3.4.3_A15.js': true, - 'S15.3.4.4_A13.js': true, - 'S15.3.4.4_A14.js': true, - 'S15.3.4.4_A15.js': true, - 'S15.3.4.5_A1.js': true, - 'S15.3.4.5_A13.js': true, - 'S15.3.4.5_A14.js': true, - 'S15.3.4.5_A15.js': true, - 'S15.3.4.5_A2.js': true, - '15.3.5.4_2-10gs.js': true, - '15.3.5.4_2-11gs.js': true, - '15.3.5.4_2-13gs.js': true, - '15.3.5.4_2-15gs.js': true, - '15.3.5.4_2-16gs.js': true, - '15.3.5.4_2-17gs.js': true, - '15.3.5.4_2-18gs.js': true, - '15.3.5.4_2-19gs.js': true, - '15.3.5.4_2-1gs.js': true, - '15.3.5.4_2-20gs.js': true, - '15.3.5.4_2-21gs.js': true, - '15.3.5.4_2-22gs.js': true, - '15.3.5.4_2-23gs.js': true, - '15.3.5.4_2-24gs.js': true, - '15.3.5.4_2-25gs.js': true, - '15.3.5.4_2-26gs.js': true, - '15.3.5.4_2-27gs.js': true, - '15.3.5.4_2-28gs.js': true, - '15.3.5.4_2-29gs.js': true, - '15.3.5.4_2-2gs.js': true, - '15.3.5.4_2-30gs.js': true, - '15.3.5.4_2-31gs.js': true, - '15.3.5.4_2-32gs.js': true, - '15.3.5.4_2-33gs.js': true, - '15.3.5.4_2-34gs.js': true, - '15.3.5.4_2-35gs.js': true, - '15.3.5.4_2-36gs.js': true, - '15.3.5.4_2-37gs.js': true, - '15.3.5.4_2-38gs.js': true, - '15.3.5.4_2-39gs.js': true, - '15.3.5.4_2-3gs.js': true, - '15.3.5.4_2-40gs.js': true, - '15.3.5.4_2-41gs.js': true, - '15.3.5.4_2-42gs.js': true, - '15.3.5.4_2-43gs.js': true, - '15.3.5.4_2-44gs.js': true, - '15.3.5.4_2-45gs.js': true, - '15.3.5.4_2-46gs.js': true, - '15.3.5.4_2-47gs.js': true, - '15.3.5.4_2-48gs.js': true, - '15.3.5.4_2-49gs.js': true, - '15.3.5.4_2-4gs.js': true, - '15.3.5.4_2-50gs.js': true, - '15.3.5.4_2-51gs.js': true, - '15.3.5.4_2-52gs.js': true, - '15.3.5.4_2-53gs.js': true, - '15.3.5.4_2-54gs.js': true, - '15.3.5.4_2-55gs.js': true, - '15.3.5.4_2-56gs.js': true, - '15.3.5.4_2-57gs.js': true, - '15.3.5.4_2-58gs.js': true, - '15.3.5.4_2-59gs.js': true, - '15.3.5.4_2-5gs.js': true, - '15.3.5.4_2-60gs.js': true, - '15.3.5.4_2-61gs.js': true, - '15.3.5.4_2-62gs.js': true, - '15.3.5.4_2-63gs.js': true, - '15.3.5.4_2-64gs.js': true, - '15.3.5.4_2-65gs.js': true, - '15.3.5.4_2-66gs.js': true, - '15.3.5.4_2-67gs.js': true, - '15.3.5.4_2-68gs.js': true, - '15.3.5.4_2-69gs.js': true, - '15.3.5.4_2-6gs.js': true, - '15.3.5.4_2-70gs.js': true, - '15.3.5.4_2-71gs.js': true, - '15.3.5.4_2-72gs.js': true, - '15.3.5.4_2-73gs.js': true, - '15.3.5.4_2-74gs.js': true, - '15.3.5.4_2-7gs.js': true, - '15.3.5.4_2-8gs.js': true, - '15.3.5.4_2-94gs.js': true, - '15.3.5.4_2-95gs.js': true, - '15.3.5.4_2-96gs.js': true, - '15.3.5.4_2-97gs.js': true, - '15.3.5.4_2-9gs.js': true, - '15.3.5-1gs.js': true, - '15.3.5-2gs.js': true -}; -var TypeScript; -(function (TypeScript) { - var SyntaxElementsCollector = (function () { - function SyntaxElementsCollector() { - } - SyntaxElementsCollector.collectElements = function (node) { - var result = []; - this.collect(node, result); - return result; - }; - SyntaxElementsCollector.collect = function (element, result) { - if (element) { - var kind = element.kind; - result.push(element); - for (var i = 0, n = TypeScript.childCount(element); i < n; i++) { - this.collect(TypeScript.childAt(element, i), result); - } - } - }; - return SyntaxElementsCollector; - })(); - TypeScript.SyntaxElementsCollector = SyntaxElementsCollector; - function withChange(text, start, length, newText) { - var contents = text.substr(0, text.length()); - var newContents = contents.substr(0, start) + newText + contents.substring(start + length); - return { text: TypeScript.SimpleText.fromString(newContents), textChangeRange: new TypeScript.TextChangeRange(new TypeScript.TextSpan(start, length), newText.length) }; - } - function withInsert(text, start, newText) { - return withChange(text, start, 0, newText); - } - function withDelete(text, start, length) { - return withChange(text, start, length, ""); - } - function compareTrees(oldText, newText, textChangeRange, reusedElements) { - if (reusedElements === void 0) { reusedElements = -1; } - var oldTree = TypeScript.Parser.parse("", oldText, 1 /* ES5 */, false); - TypeScript.visitNodeOrToken(new PositionValidatingWalker(), oldTree.sourceUnit()); - var newTree = TypeScript.Parser.parse("", newText, 1 /* ES5 */, false); - TypeScript.visitNodeOrToken(new PositionValidatingWalker(), newTree.sourceUnit()); - var incrementalNewTree = TypeScript.IncrementalParser.parse(oldTree, textChangeRange, newText); - TypeScript.visitNodeOrToken(new PositionValidatingWalker(), incrementalNewTree.sourceUnit()); - TypeScript.Debug.assert(TypeScript.treeStructuralEquals(newTree, incrementalNewTree, true)); - TypeScript.Debug.assert(IncrementalParserTests.reusedElements(oldTree.sourceUnit(), newTree.sourceUnit()) === 0); - if (reusedElements !== -1) { - var actualReusedCount = IncrementalParserTests.reusedElements(oldTree.sourceUnit(), incrementalNewTree.sourceUnit()); - TypeScript.Debug.assert(actualReusedCount === reusedElements, actualReusedCount + " !== " + reusedElements); - } - } - var IncrementalParserTests = (function () { - function IncrementalParserTests() { - } - IncrementalParserTests.runAllTests = function () { - for (var name in IncrementalParserTests) { - if (IncrementalParserTests.hasOwnProperty(name) && TypeScript.StringUtilities.startsWith(name, "test")) { - var o = IncrementalParserTests; - o[name](); - } - } - }; - IncrementalParserTests.reusedElements = function (oldNode, newNode) { - var allOldElements = SyntaxElementsCollector.collectElements(oldNode); - var allNewElements = SyntaxElementsCollector.collectElements(newNode); - return TypeScript.ArrayUtilities.where(allOldElements, function (v) { return TypeScript.ArrayUtilities.contains(allNewElements, v); }).length; - }; - IncrementalParserTests.testIncremental1 = function () { - var source = "class C {\r\n"; - source += " public foo1() { }\r\n"; - source += " public foo2() {\r\n"; - source += " return 1;\r\n"; - source += " }\r\n"; - source += " public foo3() { }\r\n"; - source += "}"; - var semicolonIndex = source.indexOf(";"); - var oldText = TypeScript.SimpleText.fromString(source); - var newTextAndChange = withInsert(oldText, semicolonIndex, " + 1"); - compareTrees(oldText, newTextAndChange.text, newTextAndChange.textChangeRange, 36); - }; - IncrementalParserTests.testIncremental2 = function () { - var source = "class C {\r\n"; - source += " public foo1() { }\r\n"; - source += " public foo2() {\r\n"; - source += " return 1 + 1;\r\n"; - source += " }\r\n"; - source += " public foo3() { }\r\n"; - source += "}"; - var index = source.indexOf("+ 1"); - var oldText = TypeScript.SimpleText.fromString(source); - var newTextAndChange = withDelete(oldText, index, 3); - compareTrees(oldText, newTextAndChange.text, newTextAndChange.textChangeRange, 36); - }; - IncrementalParserTests.testIncrementalRegex1 = function () { - var source = "class C { public foo1() { /; } public foo2() { return 1;} public foo3() { } }"; - var semicolonIndex = source.indexOf(";}"); - var oldText = TypeScript.SimpleText.fromString(source); - var newTextAndChange = withInsert(oldText, semicolonIndex, "/"); - compareTrees(oldText, newTextAndChange.text, newTextAndChange.textChangeRange, 5); - }; - IncrementalParserTests.testIncrementalRegex2 = function () { - var source = "class C { public foo1() { ; } public foo2() { return 1/;} public foo3() { } }"; - var semicolonIndex = source.indexOf(";"); - var oldText = TypeScript.SimpleText.fromString(source); - var newTextAndChange = withInsert(oldText, semicolonIndex, "/"); - compareTrees(oldText, newTextAndChange.text, newTextAndChange.textChangeRange, 21); - }; - IncrementalParserTests.testIncrementalComment1 = function () { - var source = "class C { public foo1() { /; } public foo2() { return 1; } public foo3() { } }"; - var semicolonIndex = source.indexOf(";"); - var oldText = TypeScript.SimpleText.fromString(source); - var newTextAndChange = withInsert(oldText, semicolonIndex, "/"); - compareTrees(oldText, newTextAndChange.text, newTextAndChange.textChangeRange, 5); - }; - IncrementalParserTests.testIncrementalComment2 = function () { - var source = "class C { public foo1() { /; } public foo2() { return 1; } public foo3() { } }"; - var oldText = TypeScript.SimpleText.fromString(source); - var newTextAndChange = withInsert(oldText, 0, "//"); - compareTrees(oldText, newTextAndChange.text, newTextAndChange.textChangeRange, 0); - }; - IncrementalParserTests.testIncrementalComment3 = function () { - var source = "//class C { public foo1() { /; } public foo2() { return 1; } public foo3() { } }"; - var oldText = TypeScript.SimpleText.fromString(source); - var newTextAndChange = withDelete(oldText, 0, 2); - compareTrees(oldText, newTextAndChange.text, newTextAndChange.textChangeRange, 0); - }; - IncrementalParserTests.testIncrementalComment4 = function () { - var source = "class C { public foo1() { /; } public foo2() { */ return 1; } public foo3() { } }"; - var index = source.indexOf(";"); - var oldText = TypeScript.SimpleText.fromString(source); - var newTextAndChange = withInsert(oldText, index, "*"); - compareTrees(oldText, newTextAndChange.text, newTextAndChange.textChangeRange, 22); - }; - IncrementalParserTests.testParameter1 = function () { - var source = "class C {\r\n"; - source += " public foo2(a, b, c, d) {\r\n"; - source += " return 1;\r\n"; - source += " }\r\n"; - source += "}"; - var semicolonIndex = source.indexOf(";"); - var oldText = TypeScript.SimpleText.fromString(source); - var newTextAndChange = withInsert(oldText, semicolonIndex, " + 1"); - compareTrees(oldText, newTextAndChange.text, newTextAndChange.textChangeRange, 25); - }; - IncrementalParserTests.testTypeMember1 = function () { - var source = "interface I { a: number; b: string; (c): d; new (e): f; g(): h }"; - var index = source.indexOf(": string"); - var oldText = TypeScript.SimpleText.fromString(source); - var newTextAndChange = withInsert(oldText, index, "?"); - compareTrees(oldText, newTextAndChange.text, newTextAndChange.textChangeRange, 44); - }; - IncrementalParserTests.testEnumElement1 = function () { - var source = "enum E { a = 1, b = 1 << 1, c = 3, e = 4, f = 5, g = 7, h = 8, i = 9, j = 10 }"; - var index = source.indexOf("<<"); - var oldText = TypeScript.SimpleText.fromString(source); - var newTextAndChange = withChange(oldText, index, 2, "+"); - compareTrees(oldText, newTextAndChange.text, newTextAndChange.textChangeRange, 53); - }; - IncrementalParserTests.testStrictMode1 = function () { - var source = "foo1();\r\nfoo1();\r\nfoo1();\r\package();"; - var oldText = TypeScript.SimpleText.fromString(source); - var newTextAndChange = withInsert(oldText, 0, "'strict';\r\n"); - compareTrees(oldText, newTextAndChange.text, newTextAndChange.textChangeRange, 27); - }; - IncrementalParserTests.testStrictMode2 = function () { - var source = "foo1();\r\nfoo1();\r\nfoo1();\r\package();"; - var oldText = TypeScript.SimpleText.fromString(source); - var newTextAndChange = withInsert(oldText, 0, "'use strict';\r\n"); - compareTrees(oldText, newTextAndChange.text, newTextAndChange.textChangeRange, 13); - }; - IncrementalParserTests.testStrictMode3 = function () { - var source = "'strict';\r\nfoo1();\r\nfoo1();\r\nfoo1();\r\npackage();"; - var index = source.indexOf('f'); - var oldText = TypeScript.SimpleText.fromString(source); - var newTextAndChange = withDelete(oldText, 0, index); - compareTrees(oldText, newTextAndChange.text, newTextAndChange.textChangeRange, 27); - }; - IncrementalParserTests.testStrictMode4 = function () { - var source = "'use strict';\r\nfoo1();\r\nfoo1();\r\nfoo1();\r\npackage();"; - var index = source.indexOf('f'); - var oldText = TypeScript.SimpleText.fromString(source); - var newTextAndChange = withDelete(oldText, 0, index); - compareTrees(oldText, newTextAndChange.text, newTextAndChange.textChangeRange, 12); - }; - IncrementalParserTests.testIncremental5 = function () { - var source = "'use blahhh';\r\nfoo1();\r\nfoo2();\r\nfoo3();\r\nfoo4();\r\nfoo4();\r\nfoo6();\r\nfoo7();\r\nfoo8();\r\nfoo9();\r\n"; - var index = source.indexOf('b'); - var oldText = TypeScript.SimpleText.fromString(source); - var newTextAndChange = withChange(oldText, index, 6, "strict"); - compareTrees(oldText, newTextAndChange.text, newTextAndChange.textChangeRange, 37); - }; - IncrementalParserTests.testIncremental6 = function () { - var source = "'use strict';\r\nfoo1();\r\nfoo2();\r\nfoo3();\r\nfoo4();\r\nfoo4();\r\nfoo6();\r\nfoo7();\r\nfoo8();\r\nfoo9();\r\n"; - var index = source.indexOf('s'); - var oldText = TypeScript.SimpleText.fromString(source); - var newTextAndChange = withChange(oldText, index, 6, "blahhh"); - compareTrees(oldText, newTextAndChange.text, newTextAndChange.textChangeRange, 37); - }; - IncrementalParserTests.testDelete1 = function () { - var source = "'use blahhh';\r\nfoo1();\r\nfoo2();\r\nfoo3();\r\nfoo4();\r\nfoo4();\r\nfoo6();\r\nfoo7();\r\nfoo8();\r\nfoo9();\r\n"; - var index = source.indexOf('f'); - var oldText = TypeScript.SimpleText.fromString(source); - var newTextAndChange = withDelete(oldText, 0, index); - compareTrees(oldText, newTextAndChange.text, newTextAndChange.textChangeRange, 67); - }; - IncrementalParserTests.testIncremental3 = function () { - var source = "var v = (a, b, c, d, e)"; - var index = source.indexOf('a'); - var oldText = TypeScript.SimpleText.fromString(source); - var newTextAndChange = withInsert(oldText, index + 1, ":"); - compareTrees(oldText, newTextAndChange.text, newTextAndChange.textChangeRange, -1); - }; - IncrementalParserTests.testIncremental4 = function () { - var source = "var v = (a:, b, c, d, e)"; - var index = source.indexOf(':'); - var oldText = TypeScript.SimpleText.fromString(source); - var newTextAndChange = withDelete(oldText, index, 1); - compareTrees(oldText, newTextAndChange.text, newTextAndChange.textChangeRange, -1); - }; - IncrementalParserTests.testIncremental7 = function () { - var source = "var v = Fe"; - var index = source.indexOf('b'); - var oldText = TypeScript.SimpleText.fromString(source); - var newTextAndChange = withInsert(oldText, index + 1, ",x"); - compareTrees(oldText, newTextAndChange.text, newTextAndChange.textChangeRange, -1); - }; - IncrementalParserTests.testIncremental8 = function () { - var source = "var v = Fe"; - var index = source.indexOf('b'); - var oldText = TypeScript.SimpleText.fromString(source); - var newTextAndChange = withInsert(oldText, index + 1, ",x"); - compareTrees(oldText, newTextAndChange.text, newTextAndChange.textChangeRange, -1); - }; - IncrementalParserTests.testIncremental9 = function () { - var source = "var v = Fe"; - var index = source.indexOf('b'); - var oldText = TypeScript.SimpleText.fromString(source); - var newTextAndChange = withInsert(oldText, index + 1, ",x"); - compareTrees(oldText, newTextAndChange.text, newTextAndChange.textChangeRange, -1); - }; - IncrementalParserTests.testIncremental10 = function () { - var source = "var v = Fe"; - var index = source.indexOf('b'); - var oldText = TypeScript.SimpleText.fromString(source); - var newTextAndChange = withInsert(oldText, index + 1, ",x"); - compareTrees(oldText, newTextAndChange.text, newTextAndChange.textChangeRange, -1); - }; - IncrementalParserTests.testIncremental11 = function () { - var source = "interface IFoo { }\r\ninterface Array extends IFoo { }"; - var index = source.indexOf('extends'); - var repeat = "extends IFoo".length; - for (var i = 0; i < repeat; i++) { - var oldText = TypeScript.SimpleText.fromString(source); - var newTextAndChange = withDelete(oldText, index, 1); - compareTrees(oldText, newTextAndChange.text, newTextAndChange.textChangeRange, -1); - source = newTextAndChange.text.substr(0, newTextAndChange.text.length()); - } - }; - IncrementalParserTests.testGenerics1 = function () { - var source = "var v = (a);"; - var index = source.indexOf(';'); - var oldText = TypeScript.SimpleText.fromString(source); - var newTextAndChange = withInsert(oldText, index, " => 1"); - compareTrees(oldText, newTextAndChange.text, newTextAndChange.textChangeRange, 3); - }; - IncrementalParserTests.testGenerics2 = function () { - var source = "var v = (a) => 1;"; - var index = source.indexOf(' =>'); - var oldText = TypeScript.SimpleText.fromString(source); - var newTextAndChange = withDelete(oldText, index, " => 1".length); - compareTrees(oldText, newTextAndChange.text, newTextAndChange.textChangeRange, 6); - }; - IncrementalParserTests.testGenerics3 = function () { - var source = "var v = 1 >> = 2"; - var index = source.indexOf('>> ='); - var oldText = TypeScript.SimpleText.fromString(source); - var newTextAndChange = withDelete(oldText, index + 2, 1); - compareTrees(oldText, newTextAndChange.text, newTextAndChange.textChangeRange, -1); - }; - IncrementalParserTests.testGenerics4 = function () { - var source = "var v = 1 >>= 2"; - var index = source.indexOf('>>='); - var oldText = TypeScript.SimpleText.fromString(source); - var newTextAndChange = withInsert(oldText, index + 2, " "); - compareTrees(oldText, newTextAndChange.text, newTextAndChange.textChangeRange, 2); - }; - IncrementalParserTests.testGenerics5 = function () { - var source = "var v = T>>(2)"; - var index = source.indexOf('T'); - var oldText = TypeScript.SimpleText.fromString(source); - var newTextAndChange = withInsert(oldText, index, "Foo"); - compareTrees(oldText, newTextAndChange.text, newTextAndChange.textChangeRange, -1); - }; - IncrementalParserTests.testLambdaToParenthesizedExpression = function () { - var source = "var v = (a, b) => c"; - var index = source.indexOf(">"); - var oldText = TypeScript.SimpleText.fromString(source); - var newTextAndChange = withDelete(oldText, index, 1); - compareTrees(oldText, newTextAndChange.text, newTextAndChange.textChangeRange, -1); - }; - IncrementalParserTests.testGenericToArithmetic = function () { - var source = "var v = new Dictionary()"; - var index = source.indexOf("()"); - var oldText = TypeScript.SimpleText.fromString(source); - var newTextAndChange = withDelete(oldText, index, 2); - compareTrees(oldText, newTextAndChange.text, newTextAndChange.textChangeRange, -1); - }; - IncrementalParserTests.testArithmeticToGeneric = function () { - var source = "var v = new Dictionary"; - var index = source.length; - var oldText = TypeScript.SimpleText.fromString(source); - var newTextAndChange = withInsert(oldText, index, "()"); - compareTrees(oldText, newTextAndChange.text, newTextAndChange.textChangeRange, -1); - }; - IncrementalParserTests.testYield1 = function () { - var source = "function foo() {\r\nyield(foo1);\r\n}"; - var oldText = TypeScript.SimpleText.fromString(source); - var index = source.indexOf("foo"); - var newTextAndChange = withInsert(oldText, index, "*"); - compareTrees(oldText, newTextAndChange.text, newTextAndChange.textChangeRange, -1); - }; - IncrementalParserTests.testYield2 = function () { - var source = "function *foo() {\r\nyield(foo1);\r\n}"; - var oldText = TypeScript.SimpleText.fromString(source); - var index = source.indexOf("*"); - var newTextAndChange = withDelete(oldText, index, "*".length); - compareTrees(oldText, newTextAndChange.text, newTextAndChange.textChangeRange, -1); - }; - IncrementalParserTests.textComplexEdits1 = function () { - var source = "if (typeParameterSymbol.isResolved() || typeParameterSymbol.isResolving()) {\ - return typeParameterSymbol;\ -}\ -else {\ - return null;\ -}"; - var index = source.indexOf("||"); - var text1 = TypeScript.SimpleText.fromString(source); - var textAndChange1 = withChange(text1, index, "|| typeParameterSymbol.isResolving()".length, "/*|| typeParameterSymbol.isResolving()*/"); - var text2 = textAndChange1.text; - var start = text2.substr(0, text2.length()).indexOf("else"); - var end = text2.substr(0, text2.length()).lastIndexOf("}") + 1; - var textAndChange2 = withDelete(text2, start, end - start); - var text3 = textAndChange2.text; - compareTrees(text1, text2, textAndChange1.textChangeRange, -1); - compareTrees(text2, text3, textAndChange2.textChangeRange, -1); - compareTrees(text1, text3, TypeScript.TextChangeRange.collapseChangesAcrossMultipleVersions([textAndChange1.textChangeRange, textAndChange2.textChangeRange]), -1); - }; - IncrementalParserTests.testSemicolonDelete1 = function () { - var source = "export class Foo {\r\n}\r\n\r\nexport var foo = new Foo();\r\n\r\n export function test(foo: Foo) {\r\n return true;\r\n }\r\n"; - var oldText = TypeScript.SimpleText.fromString(source); - var index = source.lastIndexOf(";"); - var newTextAndChange = withDelete(oldText, index, 1); - compareTrees(oldText, newTextAndChange.text, newTextAndChange.textChangeRange, 39); - }; - IncrementalParserTests.testGenericError1 = function () { - var source = "class Dictionary<> { }\r\nvar y;\r\n"; - var oldText = TypeScript.SimpleText.fromString(source); - var index = source.length; - var newTextAndChange = withInsert(oldText, index, "var x;"); - compareTrees(oldText, newTextAndChange.text, newTextAndChange.textChangeRange, -1); - }; - IncrementalParserTests.testParameterDeleteAfterComment1 = function () { - var source = "function fn(/* comment! */ a: number, c) { }"; - var oldText = TypeScript.SimpleText.fromString(source); - var index = source.indexOf("a:"); - var newTextAndChange = withDelete(oldText, index, "a: number,".length); - compareTrees(oldText, newTextAndChange.text, newTextAndChange.textChangeRange, -1); - }; - IncrementalParserTests.testInsertModifierBeforeSetter1 = function () { - var source = "class C {\ - set Bar(bar:string) {}\ -}\ -var o2 = { set Foo(val:number) { } };"; - var oldText = TypeScript.SimpleText.fromString(source); - var index = source.indexOf("set"); - var newTextAndChange = withInsert(oldText, index, "public "); - compareTrees(oldText, newTextAndChange.text, newTextAndChange.textChangeRange, -1); - }; - IncrementalParserTests.testParameter2 = function () { - var source = "alert(100);\ -\ -class OverloadedMonster {\ -constructor();\ -constructor(name) { }\ -}"; - var oldText = TypeScript.SimpleText.fromString(source); - var index = source.indexOf("100"); - var newTextAndChange = withInsert(oldText, index, "'1', "); - compareTrees(oldText, newTextAndChange.text, newTextAndChange.textChangeRange, -1); - }; - IncrementalParserTests.testInsertAboveComment = function () { - var source = "\ -// foo\ -1;"; - var oldText = TypeScript.SimpleText.fromString(source); - var index = 0; - var newTextAndChange = withInsert(oldText, index, "var x;\r\n"); - compareTrees(oldText, newTextAndChange.text, newTextAndChange.textChangeRange, -1); - }; - IncrementalParserTests.testInsertDeclareAboveModule = function () { - var source = "module mAmbient {\ -module m3 { }\ -}"; - var oldText = TypeScript.SimpleText.fromString(source); - var index = 0; - var newTextAndChange = withInsert(oldText, index, "declare "); - compareTrees(oldText, newTextAndChange.text, newTextAndChange.textChangeRange, -1); - }; - IncrementalParserTests.testInsertFunctionAboveLambdaWithComment = function () { - var source = "\ -() =>\ - // do something\ -0;"; - var oldText = TypeScript.SimpleText.fromString(source); - var index = 0; - var newTextAndChange = withInsert(oldText, index, "function Foo() { }"); - compareTrees(oldText, newTextAndChange.text, newTextAndChange.textChangeRange, -1); - }; - IncrementalParserTests.testSlashToRegex1 = function () { - var source = "while (true) /3; return;"; - var oldText = TypeScript.SimpleText.fromString(source); - var index = source.length - 1; - var newTextAndChange = withInsert(oldText, index, "/"); - compareTrees(oldText, newTextAndChange.text, newTextAndChange.textChangeRange, -1); - }; - IncrementalParserTests.testRegex1 = function () { - var source = "return;\r\nwhile (true) /3/g;"; - var oldText = TypeScript.SimpleText.fromString(source); - var index = source.indexOf("while"); - var newTextAndChange = withDelete(oldText, index, "while ".length); - compareTrees(oldText, newTextAndChange.text, newTextAndChange.textChangeRange, -1); - }; - IncrementalParserTests.testRegex2 = function () { - var source = "return;\r\n(true) /3/g;"; - var oldText = TypeScript.SimpleText.fromString(source); - var index = source.indexOf("("); - var newTextAndChange = withInsert(oldText, index, "while "); - compareTrees(oldText, newTextAndChange.text, newTextAndChange.textChangeRange, -1); - }; - IncrementalParserTests.testKeywordAsIdentifier1 = function () { - var source = "return; a.public /*"; - var oldText = TypeScript.SimpleText.fromString(source); - var newTextAndChange = withInsert(oldText, 0, ""); - compareTrees(oldText, newTextAndChange.text, newTextAndChange.textChangeRange, -1); - }; - IncrementalParserTests.testSkippedToken1 = function () { - var source = "function foo() {\r\n" + " function getOccurrencesAtPosition() {\r\n" + " switch (node) {\r\n" + " enum \r\n" + " }\r\n" + " \r\n" + " return undefined;\r\n" + " \r\n" + " function keywordToReferenceEntry() {\r\n" + " }\r\n" + " }\r\n" + " \r\n" + " return {\r\n" + " getEmitOutput: (filename): Bar => null,\r\n" + " };\r\n" + " }"; - var text1 = TypeScript.SimpleText.fromString(source); - var tree1 = TypeScript.Parser.parse("", text1, 1 /* ES5 */, false); - var index = source.indexOf("enum ") + "enum ".length; - var textAndChange1 = withInsert(text1, index, "F"); - var incrementalTree1 = TypeScript.IncrementalParser.parse(tree1, textAndChange1.textChangeRange, textAndChange1.text); - var textAndChange2 = withInsert(textAndChange1.text, index + 1, "o"); - var incrementalTree2 = TypeScript.IncrementalParser.parse(incrementalTree1, textAndChange2.textChangeRange, textAndChange2.text); - }; - return IncrementalParserTests; - })(); - TypeScript.IncrementalParserTests = IncrementalParserTests; -})(TypeScript || (TypeScript = {})); -var TypeScript; -(function (TypeScript) { - var IncrementalParser; - (function (IncrementalParser) { - function createParserSource(oldSyntaxTree, textChangeRange, text) { - var _scannerParserSource = TypeScript.Scanner.createParserSource(oldSyntaxTree.fileName(), text, oldSyntaxTree.languageVersion()); - var oldSourceUnit = oldSyntaxTree.sourceUnit(); - var _outstandingRewindPointCount = 0; - var _oldSourceUnitCursor = getSyntaxCursor(); - if (oldSourceUnit.moduleElements.length > 0) { - _oldSourceUnitCursor.pushElement(TypeScript.childAt(oldSourceUnit.moduleElements, 0), 0); - } - var _changeRange = extendToAffectedRange(textChangeRange, oldSourceUnit); - var _changeRangeNewSpan = _changeRange.newSpan(); - if (TypeScript.Debug.shouldAssert(2 /* Aggressive */)) { - TypeScript.Debug.assert((TypeScript.fullWidth(oldSourceUnit) - _changeRange.span().length() + _changeRange.newLength()) === text.length()); - } - var delta = _changeRange.newSpan().length() - _changeRange.span().length(); - updateTokenPositionsAndMarkElements(oldSourceUnit, _changeRange.span().start(), _changeRange.span().end(), delta, 0); - function release() { - _scannerParserSource.release(); - _scannerParserSource = undefined; - _oldSourceUnitCursor = undefined; - _outstandingRewindPointCount = 0; - } - function extendToAffectedRange(changeRange, sourceUnit) { - var maxLookahead = 1; - var start = changeRange.span().start(); - for (var i = 0; start > 0 && i <= maxLookahead; i++) { - var token = TypeScript.findToken(sourceUnit, start); - var position = token.fullStart(); - start = Math.max(0, position - 1); - } - var finalSpan = TypeScript.TextSpan.fromBounds(start, changeRange.span().end()); - var finalLength = changeRange.newLength() + (changeRange.span().start() - start); - return new TypeScript.TextChangeRange(finalSpan, finalLength); - } - function absolutePosition() { - return _scannerParserSource.absolutePosition(); - } - function tokenDiagnostics() { - return _scannerParserSource.tokenDiagnostics(); - } - function getRewindPoint() { - var rewindPoint = _scannerParserSource.getRewindPoint(); - rewindPoint.oldSourceUnitCursor = cloneSyntaxCursor(_oldSourceUnitCursor); - _outstandingRewindPointCount++; - return rewindPoint; - } - function rewind(rewindPoint) { - returnSyntaxCursor(_oldSourceUnitCursor); - _oldSourceUnitCursor = rewindPoint.oldSourceUnitCursor; - rewindPoint.oldSourceUnitCursor = undefined; - _scannerParserSource.rewind(rewindPoint); - } - function releaseRewindPoint(rewindPoint) { - if (rewindPoint.oldSourceUnitCursor) { - returnSyntaxCursor(rewindPoint.oldSourceUnitCursor); - } - _scannerParserSource.releaseRewindPoint(rewindPoint); - _outstandingRewindPointCount--; - TypeScript.Debug.assert(_outstandingRewindPointCount >= 0); - } - function isPinned() { - return _outstandingRewindPointCount > 0; - } - function trySynchronizeCursorToPosition() { - if (isPinned()) { - return false; - } - var absolutePos = absolutePosition(); - while (true) { - if (_oldSourceUnitCursor.isFinished()) { - return false; - } - var currentNodeOrToken = _oldSourceUnitCursor.currentNodeOrToken(); - if (currentNodeOrToken.intersectsChange) { - if (TypeScript.isNode(currentNodeOrToken)) { - _oldSourceUnitCursor.moveToFirstChild(); - } - else { - _oldSourceUnitCursor.moveToNextSibling(); - } - continue; - } - var currentNodeOrTokenFullStart = TypeScript.fullStart(currentNodeOrToken); - if (currentNodeOrTokenFullStart === absolutePos) { - return true; - } - if (currentNodeOrTokenFullStart > absolutePos) { - return false; - } - var currentNodeOrTokenFullWidth = TypeScript.fullWidth(currentNodeOrToken); - var currentNodeOrTokenFullEnd = currentNodeOrTokenFullStart + currentNodeOrTokenFullWidth; - if (currentNodeOrTokenFullEnd <= absolutePos || TypeScript.isToken(currentNodeOrToken)) { - _oldSourceUnitCursor.moveToNextSibling(); - } - else { - _oldSourceUnitCursor.moveToFirstChild(); - } - } - } - function currentNode() { - if (trySynchronizeCursorToPosition()) { - var node = tryGetNodeFromOldSourceUnit(); - if (node) { - return node; - } - } - return undefined; - } - function currentToken() { - if (trySynchronizeCursorToPosition()) { - var token = tryGetTokenFromOldSourceUnit(); - if (token) { - return token; - } - } - return _scannerParserSource.currentToken(); - } - function currentContextualToken() { - return _scannerParserSource.currentContextualToken(); - } - function tryGetNodeFromOldSourceUnit() { - while (true) { - var node = _oldSourceUnitCursor.currentNode(); - if (node === undefined) { - return undefined; - } - if (!TypeScript.isIncrementallyUnusable(node)) { - return node; - } - _oldSourceUnitCursor.moveToFirstChild(); - } - } - function canReuseTokenFromOldSourceUnit(token) { - return token && !token.intersectsChange && !token.isIncrementallyUnusable() && !TypeScript.Scanner.isContextualToken(token); - } - function tryGetTokenFromOldSourceUnit() { - var token = _oldSourceUnitCursor.currentToken(); - return canReuseTokenFromOldSourceUnit(token) ? token : undefined; - } - function peekToken(n) { - if (trySynchronizeCursorToPosition()) { - var token = tryPeekTokenFromOldSourceUnit(n); - if (token) { - return token; - } - } - return _scannerParserSource.peekToken(n); - } - function tryPeekTokenFromOldSourceUnit(n) { - var cursorClone = cloneSyntaxCursor(_oldSourceUnitCursor); - var token = tryPeekTokenFromOldSourceUnitWorker(n); - returnSyntaxCursor(_oldSourceUnitCursor); - _oldSourceUnitCursor = cursorClone; - return token; - } - function tryPeekTokenFromOldSourceUnitWorker(n) { - _oldSourceUnitCursor.moveToFirstToken(); - for (var i = 0; i < n; i++) { - var interimToken = _oldSourceUnitCursor.currentToken(); - if (!canReuseTokenFromOldSourceUnit(interimToken)) { - return undefined; - } - _oldSourceUnitCursor.moveToNextSibling(); - } - var token = _oldSourceUnitCursor.currentToken(); - return canReuseTokenFromOldSourceUnit(token) ? token : undefined; - } - function consumeNodeOrToken(nodeOrToken) { - _scannerParserSource.consumeNodeOrToken(nodeOrToken); - } - return { - text: text, - fileName: oldSyntaxTree.fileName(), - languageVersion: oldSyntaxTree.languageVersion(), - absolutePosition: absolutePosition, - currentNode: currentNode, - currentToken: currentToken, - currentContextualToken: currentContextualToken, - peekToken: peekToken, - consumeNodeOrToken: consumeNodeOrToken, - getRewindPoint: getRewindPoint, - rewind: rewind, - releaseRewindPoint: releaseRewindPoint, - tokenDiagnostics: tokenDiagnostics, - release: release - }; - } - function createSyntaxCursorPiece(element, indexInParent) { - return { element: element, indexInParent: indexInParent }; - } - var syntaxCursorPool = []; - var syntaxCursorPoolCount = 0; - function returnSyntaxCursor(cursor) { - cursor.clean(); - syntaxCursorPool[syntaxCursorPoolCount] = cursor; - syntaxCursorPoolCount++; - } - function getSyntaxCursor() { - var cursor = syntaxCursorPoolCount > 0 ? syntaxCursorPool[syntaxCursorPoolCount - 1] : createSyntaxCursor(); - if (syntaxCursorPoolCount > 0) { - syntaxCursorPoolCount--; - syntaxCursorPool[syntaxCursorPoolCount] = undefined; - } - return cursor; - } - function cloneSyntaxCursor(cursor) { - var newCursor = getSyntaxCursor(); - newCursor.deepCopyFrom(cursor); - return newCursor; - } - function createSyntaxCursor() { - var pieces = []; - var currentPieceIndex = -1; - function clean() { - for (var i = 0, n = pieces.length; i < n; i++) { - var piece = pieces[i]; - if (piece.element === undefined) { - break; - } - piece.element = undefined; - piece.indexInParent = -1; - } - currentPieceIndex = -1; - } - function deepCopyFrom(other) { - for (var i = 0, n = other.pieces.length; i < n; i++) { - var piece = other.pieces[i]; - if (piece.element === undefined) { - break; - } - pushElement(piece.element, piece.indexInParent); - } - } - function isFinished() { - return currentPieceIndex < 0; - } - function currentNodeOrToken() { - if (isFinished()) { - return undefined; - } - var result = pieces[currentPieceIndex].element; - return result; - } - function currentNode() { - var element = currentNodeOrToken(); - return TypeScript.isNode(element) ? element : undefined; - } - function isEmptyList(element) { - return TypeScript.isList(element) && element.length === 0; - } - function moveToFirstChild() { - var nodeOrToken = currentNodeOrToken(); - if (nodeOrToken === undefined) { - return; - } - if (TypeScript.isToken(nodeOrToken)) { - return; - } - for (var i = 0, n = TypeScript.childCount(nodeOrToken); i < n; i++) { - var child = TypeScript.childAt(nodeOrToken, i); - if (child && !isEmptyList(child)) { - pushElement(child, i); - moveToFirstChildIfList(); - return; - } - } - moveToNextSibling(); - } - function moveToNextSibling() { - while (!isFinished()) { - var currentPiece = pieces[currentPieceIndex]; - var parent = currentPiece.element.parent; - for (var i = currentPiece.indexInParent + 1, n = TypeScript.childCount(parent); i < n; i++) { - var sibling = TypeScript.childAt(parent, i); - if (sibling && !isEmptyList(sibling)) { - currentPiece.element = sibling; - currentPiece.indexInParent = i; - moveToFirstChildIfList(); - return; - } - } - currentPiece.element = undefined; - currentPiece.indexInParent = -1; - currentPieceIndex--; - } - } - function moveToFirstChildIfList() { - var element = pieces[currentPieceIndex].element; - if (TypeScript.isList(element)) { - pushElement(TypeScript.childAt(element, 0), 0); - } - } - function pushElement(element, indexInParent) { - currentPieceIndex++; - if (currentPieceIndex === pieces.length) { - pieces.push(createSyntaxCursorPiece(element, indexInParent)); - } - else { - var piece = pieces[currentPieceIndex]; - piece.element = element; - piece.indexInParent = indexInParent; - } - } - function moveToFirstToken() { - while (!isFinished()) { - var element = pieces[currentPieceIndex].element; - if (TypeScript.isNode(element)) { - moveToFirstChild(); - continue; - } - return; - } - } - function currentToken() { - moveToFirstToken(); - var element = currentNodeOrToken(); - return element; - } - return { - pieces: pieces, - clean: clean, - isFinished: isFinished, - moveToFirstChild: moveToFirstChild, - moveToFirstToken: moveToFirstToken, - moveToNextSibling: moveToNextSibling, - currentNodeOrToken: currentNodeOrToken, - currentNode: currentNode, - currentToken: currentToken, - pushElement: pushElement, - deepCopyFrom: deepCopyFrom - }; - } - var TokenCollectorWalker = (function (_super) { - __extends(TokenCollectorWalker, _super); - function TokenCollectorWalker() { - _super.apply(this, arguments); - this.tokens = []; - } - TokenCollectorWalker.prototype.visitToken = function (token) { - this.tokens.push(token); - }; - return TokenCollectorWalker; - })(TypeScript.SyntaxWalker); - var tokenCollectorWalker = new TokenCollectorWalker(); - function updateTokenPositionsAndMarkElements(element, changeStart, changeRangeOldEnd, delta, fullStart) { - if (fullStart > changeRangeOldEnd) { - forceUpdateTokenPositionsForElement(element, delta); - } - else { - var fullEnd = fullStart + TypeScript.fullWidth(element); - if (fullEnd >= changeStart) { - element.intersectsChange = true; - if (TypeScript.isList(element)) { - var list = element; - for (var i = 0, n = list.length; i < n; i++) { - var child = list[i]; - updateTokenPositionsAndMarkElements(child, changeStart, changeRangeOldEnd, delta, fullStart); - fullStart += TypeScript.fullWidth(child); - } - } - else if (TypeScript.isNode(element)) { - var node = element; - for (var i = 0, n = node.childCount; i < n; i++) { - var child = node.childAt(i); - if (child) { - updateTokenPositionsAndMarkElements(child, changeStart, changeRangeOldEnd, delta, fullStart); - fullStart += TypeScript.fullWidth(child); - } - } - } - } - } - } - function forceUpdateTokenPositionsForElement(element, delta) { - if (delta !== 0) { - if (TypeScript.isList(element)) { - var list = element; - for (var i = 0, n = list.length; i < n; i++) { - forceUpdateTokenPositionForNodeOrToken(list[i], delta); - } - } - else { - forceUpdateTokenPositionForNodeOrToken(element, delta); - } - } - } - function forceUpdateTokenPosition(token, delta) { - token.setFullStart(token.fullStart() + delta); - } - function forceUpdateTokenPositionForNodeOrToken(nodeOrToken, delta) { - if (TypeScript.isToken(nodeOrToken)) { - forceUpdateTokenPosition(nodeOrToken, delta); - } - else { - var node = nodeOrToken; - var tokens = getTokens(node); - for (var i = 0, n = tokens.length; i < n; i++) { - forceUpdateTokenPosition(tokens[i], delta); - } - } - } - function getTokens(node) { - var tokens = node.__cachedTokens; - if (!tokens) { - tokens = []; - tokenCollectorWalker.tokens = tokens; - TypeScript.visitNodeOrToken(tokenCollectorWalker, node); - node.__cachedTokens = tokens; - tokenCollectorWalker.tokens = undefined; - } - return tokens; - } - function parse(oldSyntaxTree, textChangeRange, newText) { - if (textChangeRange.isUnchanged()) { - return oldSyntaxTree; - } - return TypeScript.Parser.parseSource(createParserSource(oldSyntaxTree, textChangeRange, newText), oldSyntaxTree.isDeclaration()); - } - IncrementalParser.parse = parse; - })(IncrementalParser = TypeScript.IncrementalParser || (TypeScript.IncrementalParser = {})); -})(TypeScript || (TypeScript = {})); -var TypeScript; -(function (TypeScript) { - function assertParent(parent, child) { - if (child) { - return TypeScript.Debug.assert(parent === child.parent); - } - } - function nodeStructuralEquals(node1, node2, checkParents, text1, text2) { - if (node1 === node2) { - return true; - } - if (!node1 || !node2) { - return false; - } - TypeScript.Debug.assert(node1.kind === 124 /* SourceUnit */ || node1.parent); - TypeScript.Debug.assert(node2.kind === 124 /* SourceUnit */ || node2.parent); - if (node1.kind !== node2.kind) { - return false; - } - if (TypeScript.childCount(node1) !== TypeScript.childCount(node2)) { - return false; - } - for (var i = 0, n = TypeScript.childCount(node1); i < n; i++) { - var element1 = TypeScript.childAt(node1, i); - var element2 = TypeScript.childAt(node2, i); - if (checkParents) { - assertParent(node1, element1); - assertParent(node2, element2); - } - if (!elementStructuralEquals(element1, element2, checkParents, text1, text2)) { - return false; - } - } - return true; - } - TypeScript.nodeStructuralEquals = nodeStructuralEquals; - function nodeOrTokenStructuralEquals(node1, node2, checkParents, text1, text2) { - if (node1 === node2) { - return true; - } - if (!node1 || !node2) { - return false; - } - TypeScript.Debug.assert(node1.kind === 124 /* SourceUnit */ || node1.parent); - TypeScript.Debug.assert(node2.kind === 124 /* SourceUnit */ || node2.parent); - if (TypeScript.isToken(node1)) { - return TypeScript.isToken(node2) ? tokenStructuralEquals(node1, node2, text1, text2) : false; - } - return TypeScript.isNode(node2) ? nodeStructuralEquals(node1, node2, checkParents, text1, text2) : false; - } - TypeScript.nodeOrTokenStructuralEquals = nodeOrTokenStructuralEquals; - function tokenStructuralEquals(token1, token2, text1, text2) { - if (token1 === token2) { - return true; - } - if (!token1 || !token2) { - return false; - } - TypeScript.Debug.assert(token1.parent); - TypeScript.Debug.assert(token2.parent); - return token1.kind === token2.kind && TypeScript.width(token1) === TypeScript.width(token2) && token1.fullWidth() === token2.fullWidth() && token1.fullStart() === token2.fullStart() && TypeScript.fullEnd(token1) === TypeScript.fullEnd(token2) && TypeScript.start(token1, text1) === TypeScript.start(token2, text2) && token1.text() === token2.text() && triviaListStructuralEquals(token1.leadingTrivia(text1), token2.leadingTrivia(text2)); - } - TypeScript.tokenStructuralEquals = tokenStructuralEquals; - function triviaListStructuralEquals(triviaList1, triviaList2) { - TypeScript.Debug.assert(triviaList1.isShared() || triviaList1.parent); - TypeScript.Debug.assert(triviaList1.isShared() || triviaList2.parent); - if (triviaList1.count() !== triviaList2.count()) { - return false; - } - for (var i = 0, n = triviaList1.count(); i < n; i++) { - if (!triviaStructuralEquals(triviaList1.syntaxTriviaAt(i), triviaList2.syntaxTriviaAt(i))) { - return false; - } - } - return true; - } - TypeScript.triviaListStructuralEquals = triviaListStructuralEquals; - function triviaStructuralEquals(trivia1, trivia2) { - TypeScript.Debug.assert(trivia1.parent); - TypeScript.Debug.assert(trivia2.parent); - return trivia1.kind === trivia2.kind && trivia1.fullWidth() === trivia2.fullWidth() && trivia1.fullText() === trivia2.fullText(); - } - TypeScript.triviaStructuralEquals = triviaStructuralEquals; - function listStructuralEquals(list1, list2, checkParents, text1, text2) { - TypeScript.Debug.assert(list1.parent); - TypeScript.Debug.assert(list2.parent); - if (TypeScript.childCount(list1) !== TypeScript.childCount(list2)) { - return false; - } - for (var i = 0, n = TypeScript.childCount(list1); i < n; i++) { - var child1 = TypeScript.childAt(list1, i); - var child2 = TypeScript.childAt(list2, i); - if (checkParents) { - assertParent(list1, child1); - assertParent(list2, child2); - } - if (!elementStructuralEquals(child1, child2, checkParents, text1, text2)) { - return false; - } - } - return true; - } - function elementStructuralEquals(element1, element2, checkParents, text1, text2) { - if (element1 === element2) { - return true; - } - if (!element1 || !element2) { - return false; - } - TypeScript.Debug.assert(element1.kind === 124 /* SourceUnit */ || element1.parent); - TypeScript.Debug.assert(element2.kind === 124 /* SourceUnit */ || element2.parent); - if (element2.kind !== element2.kind) { - return false; - } - if (TypeScript.fullStart(element1) !== TypeScript.fullStart(element2)) { - return false; - } - if (TypeScript.start(element1) !== TypeScript.start(element2)) { - return false; - } - if (TypeScript.fullEnd(element1) !== TypeScript.fullEnd(element2)) { - return false; - } - if (TypeScript.isToken(element1)) { - return tokenStructuralEquals(element1, element2, text1, text2); - } - else if (TypeScript.isNode(element1)) { - return nodeStructuralEquals(element1, element2, checkParents, text1, text2); - } - else if (TypeScript.isList(element1)) { - return listStructuralEquals(element1, element2, checkParents, text1, text2); - } - throw TypeScript.Errors.invalidOperation(); - } - TypeScript.elementStructuralEquals = elementStructuralEquals; - function treeStructuralEquals(tree1, tree2, checkParents) { - if (!TypeScript.ArrayUtilities.sequenceEquals(tree1.diagnostics(), tree2.diagnostics(), TypeScript.Diagnostic.equals)) { - return false; - } - return nodeStructuralEquals(tree1.sourceUnit(), tree2.sourceUnit(), checkParents, tree1.text, tree2.text); - } - TypeScript.treeStructuralEquals = treeStructuralEquals; -})(TypeScript || (TypeScript = {})); -var specificFile = undefined; -var generate = false; -function isDTSFile(s) { - return ts.fileExtensionIs(s, ".d.ts"); -} -var PositionValidatingWalker = (function (_super) { - __extends(PositionValidatingWalker, _super); - function PositionValidatingWalker() { - _super.apply(this, arguments); - this.position = 0; - } - PositionValidatingWalker.prototype.visitToken = function (token) { - TypeScript.Debug.assert(this.position === token.fullStart()); - this.position += token.fullWidth(); - }; - return PositionValidatingWalker; -})(TypeScript.SyntaxWalker); -function tokenToJSON(token, text, mergeTrivia) { - if (!token) { - return undefined; - } - var isSkippedToken = token.parent && token.parent.kind === 6 /* SkippedTokenTrivia */; - var isMissingToken = token.fullWidth() === 0 && token.kind !== 8 /* EndOfFileToken */; - var result = {}; - for (var name in getSyntaxKindEnum()) { - if (getSyntaxKindEnum()[name] === token.kind) { - result.kind = name; - break; - } - } - var fullStart = TypeScript.fullStart(token); - var fullEnd = TypeScript.fullEnd(token); - result.fullStart = fullStart; - result.start = TypeScript.start(token, text); - result.fullWidth = fullEnd - fullStart; - result.width = TypeScript.width(token, text); - result.text = token.text(); - var value = TypeScript.tokenValue(token); - if (value !== undefined) { - result.value = value; - result.valueText = TypeScript.tokenValueText(token); - } - if (token.isKeywordConvertedToIdentifier()) { - result.isKeywordConvertedToIdentifier = true; - } - if (token.isIncrementallyUnusable()) { - result.isIncrementallyUnusable = true; - } - if (isSkippedToken || isMissingToken) { - TypeScript.Debug.assert(!token.hasLeadingTrivia()); - } - else { - var leadingTriviaList = token.hasLeadingTrivia() ? token.leadingTrivia(text) : undefined; - if (leadingTriviaList) { - var leadingTrivia = leadingTriviaList.toArray(); - result.hasLeadingTrivia = true; - if (TypeScript.ArrayUtilities.any(leadingTrivia, function (t) { return t.isComment(); })) { - result.hasLeadingComment = true; - } - if (TypeScript.ArrayUtilities.any(leadingTrivia, function (t) { return t.isNewLine(); })) { - result.hasLeadingNewLine = true; - } - if (TypeScript.ArrayUtilities.any(leadingTrivia, function (t) { return t.isSkippedToken(); })) { - result.hasLeadingSkippedToken = true; - } - result.leadingTrivia = triviaListToJSON(leadingTrivia, text); - } - } - return result; -} -function triviaListToJSON(trivia, text) { - var result = []; - for (var i = 0, n = trivia.length; i < n; i++) { - result.push(triviaToJSON(trivia[i], text)); - } - return result; -} -function triviaToJSON(trivia, text) { - var result = {}; - for (var name in getSyntaxKindEnum()) { - if (getSyntaxKindEnum()[name] === trivia.kind) { - result.kind = name; - break; - } - } - if (trivia.isSkippedToken()) { - result.skippedToken = tokenToJSON(trivia.skippedToken(), text, false); - } - else { - result.fullStart = trivia.fullStart(); - result.fullEnd = trivia.fullStart() + trivia.fullWidth(); - result.text = trivia.fullText(); - } - return result; -} -function getSyntaxKindEnum() { - var name = "SyntaxKind"; - return TypeScript[name]; -} -function nodeToJSON(node, text) { - var result = {}; - for (var name in getSyntaxKindEnum()) { - if (getSyntaxKindEnum()[name] === node.kind) { - result.kind = name; - break; - } - } - result.start = TypeScript.start(node); - result.end = TypeScript.fullEnd(node); - result.width = TypeScript.width(node); - if (TypeScript.isIncrementallyUnusable(node)) { - result.isIncrementallyUnusable = true; - } - if (TypeScript.parsedInStrictModeContext(node)) { - result.parsedInStrictModeContext = true; - } - if (TypeScript.parsedInDisallowInContext(node)) { - result.parsedInDisallowInContext = true; - } - if (TypeScript.parsedInYieldContext(node)) { - result.parsedInYieldContext = true; - } - if (TypeScript.parsedInGeneratorParameterContext(node)) { - result.parsedInGeneratorParameterContext = true; - } - if (TypeScript.parsedInAsyncContext(node)) { - result.parsedInAsyncContext = true; - } - var usedNames = {}; - var thisAsIndexable = node; - for (var i = 0, n = TypeScript.childCount(node); i < n; i++) { - var value = TypeScript.childAt(node, i); - if (value) { - for (var name in node) { - if (usedNames[name] === undefined && value === thisAsIndexable[name]) { - result[name] = elementToJSON(value, text); - usedNames[name] = true; - break; - } - } - } - } - return result; -} -function elementToJSON(element, text) { - if (element !== undefined) { - if (TypeScript.isToken(element)) { - return tokenToJSON(element, text, true); - } - else if (TypeScript.isList(element)) { - if (TypeScript.childCount(element) > 0) { - var result = []; - for (var i = 0, n = TypeScript.childCount(element); i < n; i++) { - result.push(elementToJSON(TypeScript.childAt(element, i), text)); - } - return result; - } - } - else { - return nodeToJSON(element, text); - } - } -} -function syntaxTreeToJSON(tree) { - var result = {}; - result.isDeclaration = tree.isDeclaration(); - switch (tree.languageVersion()) { - case 0 /* ES3 */: - result.languageVersion = "EcmaScript3"; - break; - case 1 /* ES5 */: - result.languageVersion = "EcmaScript5"; - break; - case 2 /* ES6 */: - result.languageVersion = "EcmaScript6"; - break; - default: - throw new Error(); - } - if (tree.diagnostics().length > 0) { - result.diagnostics = tree.diagnostics(); - } - result.sourceUnit = elementToJSON(tree.sourceUnit(), tree.text); - result.lineMap = tree.lineMap(); - return result; -} -function emptySourceUnit() { - return TypeScript.Parser.parse("", TypeScript.SimpleText.fromString(""), 1 /* ES5 */, false).sourceUnit(); -} -var Program = (function () { - function Program() { - } - Program.prototype.runAllTests = function (verify) { - var _this = this; - TypeScript.Environment.standardOut.WriteLine(""); - if (generate) { - TypeScript.Environment.standardOut.WriteLine("!!!!!!!!!! WARNING - GENERATING !!!!!!!!!"); - TypeScript.Environment.standardOut.WriteLine(""); - } - if (specificFile === undefined) { - TypeScript.Environment.standardOut.WriteLine("Testing Incremental 2."); - TypeScript.IncrementalParserTests.runAllTests(); - } - TypeScript.Environment.standardOut.Write("Testing Incremental 1:"); - this.runTests(TypeScript.Environment.currentDirectory() + "\\tests\\Fidelity\\parser\\ecmascript5", function (fileName) { return _this.runIncremental(fileName, 1 /* ES5 */); }); - if (specificFile === undefined) { - this.testIncrementalSpeed(TypeScript.Environment.currentDirectory() + "\\src\\services\\syntax\\syntaxNodes.concrete.generated.ts"); - } - TypeScript.Environment.standardOut.Write("Testing scanner ES3:"); - this.runTests(TypeScript.Environment.currentDirectory() + "\\tests\\Fidelity\\scanner\\ecmascript3", function (fileName) { return _this.runScanner(fileName, 0 /* ES3 */, verify, generate); }); - TypeScript.Environment.standardOut.Write("Testing scanner ES5:"); - this.runTests(TypeScript.Environment.currentDirectory() + "\\tests\\Fidelity\\scanner\\ecmascript5", function (fileName) { return _this.runScanner(fileName, 1 /* ES5 */, verify, generate); }); - TypeScript.Environment.standardOut.Write("Testing findToken:"); - this.runTests(TypeScript.Environment.currentDirectory() + "\\tests\\Fidelity\\findToken\\ecmascript5", function (fileName) { return _this.runFindToken(fileName, 1 /* ES5 */, verify, generate); }); - TypeScript.Environment.standardOut.Write("Testing trivia:"); - this.runTests(TypeScript.Environment.currentDirectory() + "\\tests\\Fidelity\\trivia\\ecmascript5", function (fileName) { return _this.runTrivia(fileName, 1 /* ES5 */, verify, generate); }); - TypeScript.Environment.standardOut.Write("Testing parser ES6:"); - this.runTests(TypeScript.Environment.currentDirectory() + "\\tests\\Fidelity\\parser\\ecmascript6", function (fileName) { return _this.runParser(fileName, 2 /* ES6 */, verify, generate); }); - TypeScript.Environment.standardOut.Write("Testing parser ES5:"); - this.runTests(TypeScript.Environment.currentDirectory() + "\\tests\\Fidelity\\parser\\ecmascript5", function (fileName) { return _this.runParser(fileName, 1 /* ES5 */, verify, generate); }); - TypeScript.Environment.standardOut.Write("Testing parser ES3:"); - this.runTests(TypeScript.Environment.currentDirectory() + "\\tests\\Fidelity\\parser\\ecmascript3", function (fileName) { return _this.runParser(fileName, 0 /* ES3 */, verify, generate); }); - TypeScript.Environment.standardOut.Write("Testing emitter 2:"); - this.runTests(TypeScript.Environment.currentDirectory() + "\\tests\\Fidelity\\emitter2\\ecmascript5", function (fileName) { return _this.runEmitter(fileName, 1 /* ES5 */, verify, generate, true); }); - TypeScript.Environment.standardOut.Write("Testing emitter 1:"); - this.runTests(TypeScript.Environment.currentDirectory() + "\\tests\\Fidelity\\emitter\\ecmascript5", function (fileName) { return _this.runEmitter(fileName, 1 /* ES5 */, verify, generate, false); }); - TypeScript.Environment.standardOut.Write("Testing pretty printer:"); - this.runTests(TypeScript.Environment.currentDirectory() + "\\tests\\Fidelity\\prettyPrinter\\ecmascript5", function (fileName) { return _this.runPrettyPrinter(fileName, 1 /* ES5 */, verify, generate); }); - TypeScript.Environment.standardOut.Write("Testing against 262:"); - this.runTests(TypeScript.Environment.currentDirectory() + "\\tests\\Fidelity\\test262", function (fileName) { return _this.runParser(fileName, 1 /* ES5 */, verify, generate); }); - }; - Program.reusedElements = function (oldNode, newNode, key) { - var allOldElements = TypeScript.SyntaxElementsCollector.collectElements(oldNode); - var allNewElements = TypeScript.SyntaxElementsCollector.collectElements(newNode); - for (var i = 0; i < allOldElements.length; i++) { - var oldElement = allOldElements[i]; - oldElement[key] = key; - } - var reused = 0; - for (var j = 0; j < allNewElements.length; j++) { - var newElement = allNewElements[j]; - if (newElement[key] === key) { - reused++; - } - } - return { originalElements: allOldElements.length, reusedElements: reused }; - }; - Program.prototype.testIncrementalSpeed = function (fileName) { - var repeat = 500; - TypeScript.Environment.standardOut.WriteLine("Incremental Perf - Changed Text."); - this.testIncrementalSpeedChange(fileName, repeat); - TypeScript.Environment.standardOut.WriteLine(""); - TypeScript.Environment.standardOut.WriteLine("Incremental Perf - No Changed Text."); - this.testIncrementalSpeedNoChange(fileName, repeat); - }; - Program.prototype.testIncrementalSpeedNoChange = function (fileName, repeat) { - if (specificFile !== undefined) { - return; - } - var contents = TypeScript.Environment.readFile(fileName, undefined).contents; - var text = TypeScript.SimpleText.fromString(contents); - var tree = TypeScript.Parser.parse(fileName, text, 1 /* ES5 */, isDTSFile(fileName)); - var originalTree = tree; - var totalIncrementalTime = 0; - for (var i = 0; i < repeat; i++) { - var changeLength = i * 2; - var start = new Date().getTime(); - var tree2 = TypeScript.IncrementalParser.parse(tree, new TypeScript.TextChangeRange(new TypeScript.TextSpan(((text.length() / 2) >> 0) - i, changeLength), changeLength), text); - totalIncrementalTime += (new Date().getTime() - start); - TypeScript.Debug.assert(TypeScript.treeStructuralEquals(tree, tree2, false)); - tree = tree2; - } - var rateBytesPerMillisecond = (contents.length * repeat) / totalIncrementalTime; - var rateBytesPerSecond = rateBytesPerMillisecond * 1000; - var rateMBPerSecond = rateBytesPerSecond / (1024 * 1024); - TypeScript.Environment.standardOut.WriteLine("Incremental rate: " + rateMBPerSecond + " MB/s"); - var allOldElements = TypeScript.SyntaxElementsCollector.collectElements(originalTree.sourceUnit()); - var allNewElements = TypeScript.SyntaxElementsCollector.collectElements(tree.sourceUnit()); - var reuse = TypeScript.ArrayUtilities.where(allNewElements, function (v) { return TypeScript.ArrayUtilities.contains(allOldElements, v); }).length; - TypeScript.Environment.standardOut.WriteLine("Reuse: " + reuse / allNewElements.length); - }; - Program.prototype.testIncrementalSpeedChange = function (fileName, repeat) { - if (specificFile !== undefined) { - return; - } - var contents = TypeScript.Environment.readFile(fileName, undefined).contents; - var text = TypeScript.SimpleText.fromString(contents); - var tree = TypeScript.Parser.parse(fileName, text, 1 /* ES5 */, isDTSFile(fileName)); - var originalTree = tree; - var allElements = TypeScript.SyntaxElementsCollector.collectElements(tree.sourceUnit()); - var nonSharedElements = TypeScript.ArrayUtilities.where(allElements, function (e) { return !(TypeScript.isList(e) && e.length === 0); }); - TypeScript.Environment.standardOut.WriteLine("All elements : " + allElements.length); - TypeScript.Environment.standardOut.WriteLine("Non empty lists: " + nonSharedElements.length); - var totalIncrementalTime = 0; - var totalIncrementalASTTime = 0; - for (var i = 0; i < repeat; i++) { - var changeLength = i * 2; - var changeSpan = new TypeScript.TextSpan(((text.length() / 2) >> 0) - i, changeLength); - contents = text.substr(0, text.length()); - var contentsToReplace = contents.substr(changeSpan.start(), changeSpan.length()); - var first = true; - var updatedText = contentsToReplace.replace(/[^a-zA-Z0-9][a-z]+[^a-zA-Z0-9]/, function (sub) { - if (first && TypeScript.SyntaxFacts.getTokenKind(sub.substr(1, sub.length - 2)) === 0 /* None */) { - first = false; - return sub.substr(0, sub.length - 1) + "a" + sub.substr(sub.length - 1); - } - return sub; - }); - text = TypeScript.SimpleText.fromString(contents.substr(0, changeSpan.start()) + updatedText + contents.substr(changeSpan.end())); - var changeRange = new TypeScript.TextChangeRange(changeSpan, updatedText.length); - var start = new Date().getTime(); - var tree2 = TypeScript.IncrementalParser.parse(tree, changeRange, text); - totalIncrementalTime += (new Date().getTime() - start); - tree = tree2; - } - var rateBytesPerMillisecond = (contents.length * repeat) / totalIncrementalTime; - var rateBytesPerSecond = rateBytesPerMillisecond * 1000; - var rateMBPerSecond = rateBytesPerSecond / (1024 * 1024); - TypeScript.Environment.standardOut.WriteLine("Incremental rate: " + rateMBPerSecond + " MB/s"); - rateBytesPerMillisecond = (contents.length * repeat) / totalIncrementalASTTime; - rateBytesPerSecond = rateBytesPerMillisecond * 1000; - rateMBPerSecond = rateBytesPerSecond / (1024 * 1024); - var allOldElements = TypeScript.SyntaxElementsCollector.collectElements(originalTree.sourceUnit()); - var allNewElements = TypeScript.SyntaxElementsCollector.collectElements(tree.sourceUnit()); - var reuse = TypeScript.ArrayUtilities.where(allNewElements, function (v) { return TypeScript.ArrayUtilities.contains(allOldElements, v); }).length; - TypeScript.Environment.standardOut.WriteLine("Reuse: " + reuse / allNewElements.length); - }; - Program.prototype.handleException = function (fileName, e) { - TypeScript.Environment.standardOut.WriteLine(""); - if (e.message.indexOf(fileName) < 0) { - TypeScript.Environment.standardOut.WriteLine("Exception: " + fileName + ": " + e.message); - } - else { - TypeScript.Environment.standardOut.WriteLine(e.message); - } - }; - Program.prototype.runTests = function (path, action) { - var _this = this; - var testFiles = TypeScript.Environment.listFiles(path, undefined, { recursive: true }); - var indexNum = 0; - testFiles.forEach(function (fileName) { - if (specificFile !== undefined && fileName.indexOf(specificFile) < 0) { - return; - } - if (indexNum % 100 === 0) { - TypeScript.Environment.standardOut.Write("."); - } - try { - action(fileName); - } - catch (e) { - _this.handleException(fileName, e); - } - indexNum++; - }); - TypeScript.Environment.standardOut.WriteLine(""); - }; - Program.prototype.checkResult = function (fileName, result, convert, verify, generateBaseline, justText) { - var actualResult; - var expectedFile = fileName + ".expected"; - var actualFile = fileName + ".actual"; - if (generateBaseline) { - actualResult = justText ? result : JSON.stringify(convert(result), undefined, 4); - expectedFile = fileName + ".expected"; - TypeScript.Environment.writeFile(expectedFile, actualResult, false); - if (TypeScript.Environment.fileExists(actualFile)) { - TypeScript.Environment.deleteFile(actualFile); - } - } - else if (verify) { - actualResult = justText ? result : JSON.stringify(convert(result), undefined, 4); - var expectedResult = undefined; - if (!TypeScript.Environment.fileExists(expectedFile)) { - TypeScript.Environment.writeFile(expectedFile, "", false); - } - else { - expectedResult = TypeScript.Environment.readFile(expectedFile, undefined).contents; - } - if (expectedResult !== actualResult) { - TypeScript.Environment.standardOut.WriteLine(" ! Fail: " + actualFile); - TypeScript.Environment.writeFile(actualFile, actualResult, false); - } - else { - if (TypeScript.Environment.fileExists(actualFile)) { - TypeScript.Environment.deleteFile(actualFile); - } - } - } - }; - Program.prototype.runEmitter = function (fileName, languageVersion, verify, generateBaseline, justText) { - if (true) { - return; - } - if (!TypeScript.StringUtilities.endsWith(fileName, ".ts") && !TypeScript.StringUtilities.endsWith(fileName, ".js")) { - return; - } - if (fileName.indexOf("RealSource") >= 0) { - return; - } - var contents = TypeScript.Environment.readFile(fileName, undefined).contents; - totalSize += contents.length; - var text = TypeScript.SimpleText.fromString(contents); - var tree = TypeScript.Parser.parse(fileName, text, languageVersion, isDTSFile(fileName)); - }; - Program.prototype.runPrettyPrinter = function (fileName, languageVersion, verify, generateBaseline) { - if (!TypeScript.StringUtilities.endsWith(fileName, ".ts") && !TypeScript.StringUtilities.endsWith(fileName, ".js")) { - return; - } - if (fileName.indexOf("RealSource") >= 0) { - return; - } - var contents = TypeScript.Environment.readFile(fileName, undefined).contents; - totalSize += contents.length; - var text = TypeScript.SimpleText.fromString(contents); - var tree = TypeScript.Parser.parse(fileName, text, languageVersion, isDTSFile(fileName)); - var result = TypeScript.PrettyPrinter.prettyPrint(tree.sourceUnit()); - this.checkResult(fileName, result, undefined, verify, generateBaseline, true); - }; - Program.prototype.runParser = function (fileName, languageVersion, verify, generateBaseline, allowErrors) { - if (allowErrors === void 0) { allowErrors = true; } - if (!TypeScript.StringUtilities.endsWith(fileName, ".ts") && !TypeScript.StringUtilities.endsWith(fileName, ".js")) { - return; - } - if (fileName.indexOf("RealSource") >= 0) { - return; - } - var contents = TypeScript.Environment.readFile(fileName, undefined).contents; - totalSize += contents.length; - var text = TypeScript.SimpleText.fromString(contents); - var andersStart = new Date().getTime(); - var andersText = ts.createSourceFile(fileName, contents, 2 /* ES6 */, "0"); - andersTime += (new Date().getTime() - andersStart); - var start = new Date().getTime(); - var tree = TypeScript.Parser.parse(fileName, text, languageVersion, isDTSFile(fileName)); - var delta = new Date().getTime() - start; - cyrusTime += delta; - if (!allowErrors) { - var diagnostics = tree.diagnostics(); - if (diagnostics.length > 0) { - TypeScript.Environment.standardOut.WriteLine(fileName); - TypeScript.Environment.standardOut.WriteLine("\t" + diagnostics[0].message()); - } - } - if (verify) { - TypeScript.Debug.assert(TypeScript.fullWidth(tree.sourceUnit()) === contents.length); - TypeScript.visitNodeOrToken(new PositionValidatingWalker(), tree.sourceUnit()); - this.checkResult(fileName, tree, syntaxTreeToJSON, verify, generateBaseline, false); - } - totalTime += delta; - }; - Program.prototype.runIncremental = function (fileName, languageVersion) { - if (!TypeScript.StringUtilities.endsWith(fileName, ".ts") && !TypeScript.StringUtilities.endsWith(fileName, ".js")) { - return; - } - if (fileName.indexOf("RealSource") >= 0) { - return; - } - var contents = TypeScript.Environment.readFile(fileName, undefined).contents; - var text = TypeScript.SimpleText.fromString(contents); - var tree1 = TypeScript.Parser.parse(fileName, text, languageVersion, isDTSFile(fileName)); - var tree2 = TypeScript.IncrementalParser.parse(new TypeScript.SyntaxTree(emptySourceUnit(), isDTSFile(fileName), [], fileName, text, tree1.languageVersion()), new TypeScript.TextChangeRange(new TypeScript.TextSpan(0, 0), text.length()), text); - TypeScript.Debug.assert(TypeScript.treeStructuralEquals(tree1, tree2, true)); - }; - Program.prototype.runFindToken = function (fileName, languageVersion, verify, generateBaseline) { - if (!TypeScript.StringUtilities.endsWith(fileName, ".ts") && !TypeScript.StringUtilities.endsWith(fileName, ".js")) { - return; - } - if (fileName.indexOf("RealSource") >= 0) { - return; - } - var contents = TypeScript.Environment.readFile(fileName, undefined).contents; - var text = TypeScript.SimpleText.fromString(contents); - var tree = TypeScript.Parser.parse(fileName, text, languageVersion, isDTSFile(fileName)); - var sourceUnit = tree.sourceUnit(); - TypeScript.Debug.assert(TypeScript.fullWidth(tree.sourceUnit()) === contents.length); - var tokens = {}; - var tokensOnLeft = {}; - var leftToRight = []; - var rightToLeft = []; - for (var i = 0; i <= contents.length; i++) { - var token = TypeScript.findToken(sourceUnit, i); - var left = TypeScript.Syntax.findTokenOnLeft(sourceUnit, i); - var tokenOnLeft = left || null; - TypeScript.Debug.assert(TypeScript.isToken(token)); - if (i === contents.length) { - TypeScript.Debug.assert(token.kind === 8 /* EndOfFileToken */); - } - else { - TypeScript.Debug.assert(TypeScript.width(token) > 0 || token.kind === 8 /* EndOfFileToken */); - TypeScript.Debug.assert(token.fullWidth() > 0); - } - tokens[i] = tokenToJSON(token, text, false); - tokensOnLeft[i] = tokenToJSON(tokenOnLeft, text, false) || null; - } - var positionedToken = TypeScript.findToken(sourceUnit, 0); - while (positionedToken) { - leftToRight.push(tokenToJSON(positionedToken, text, false)); - positionedToken = TypeScript.nextToken(positionedToken); - } - positionedToken = TypeScript.findToken(sourceUnit, contents.length); - while (positionedToken) { - rightToLeft.push(tokenToJSON(positionedToken, text, false)); - positionedToken = TypeScript.previousToken(positionedToken); - } - var result = { - tokens: tokens, - tokensOnLeft: tokensOnLeft, - leftToRight: leftToRight, - rightToLeft: rightToLeft - }; - this.checkResult(fileName, result, function (a) { return a; }, verify, generateBaseline, false); - }; - Program.prototype.runTrivia = function (fileName, languageVersion, verify, generateBaseline) { - if (!TypeScript.StringUtilities.endsWith(fileName, ".ts")) { - return; - } - var contents = TypeScript.Environment.readFile(fileName, undefined).contents; - var text = TypeScript.SimpleText.fromString(contents); - var scanner = TypeScript.Scanner.createScanner(languageVersion, text, function () { - }); - var tokens = []; - var textArray = []; - var diagnostics = []; - while (true) { - var token = scanner.scan(false); - tokens.push(tokenToJSON(token, text, false)); - if (token.kind === 8 /* EndOfFileToken */) { - break; - } - } - this.checkResult(fileName, tokens, function (a) { return a; }, verify, generateBaseline, false); - }; - Program.prototype.runScanner = function (fileName, languageVersion, verify, generateBaseline) { - if (!TypeScript.StringUtilities.endsWith(fileName, ".ts")) { - return; - } - var contents = TypeScript.Environment.readFile(fileName, undefined).contents; - var diagnostics = []; - var reportDiagnostic = function (position, fullWidth, diagnosticKey, args) { - diagnostics.push(new TypeScript.Diagnostic(fileName, text.lineMap(), position, fullWidth, diagnosticKey, args)); - }; - var text = TypeScript.SimpleText.fromString(contents); - var scanner = TypeScript.Scanner.createScanner(languageVersion, text, reportDiagnostic); - var tokens = []; - var jsonTokens = []; - var textArray = []; - var position = 0; - while (true) { - var token = scanner.scan(false); - jsonTokens.push(tokenToJSON(token, text, false)); - tokens.push(token); - TypeScript.Debug.assert(position === token.fullStart()); - position += token.fullWidth(); - if (token.kind === 8 /* EndOfFileToken */) { - break; - } - } - if (verify) { - var tokenText = TypeScript.ArrayUtilities.select(tokens, function (t) { return t.fullText(text); }).join(""); - if (tokenText !== contents) { - throw new Error("Token invariant broken!"); - } - } - var result = diagnostics.length === 0 ? jsonTokens : { diagnostics: diagnostics, tokens: jsonTokens }; - this.checkResult(fileName, result, function (a) { return a; }, verify, generateBaseline, false); - }; - Program.prototype.parseArguments = function () { - TypeScript.Environment.standardOut.WriteLine("Testing input files."); - for (var index in TypeScript.Environment.arguments) { - var fileName = TypeScript.Environment.arguments[index]; - if (specificFile !== undefined && fileName.indexOf(specificFile) < 0) { - continue; - } - this.runParser(fileName, 1 /* ES5 */, false, false, false); - } - }; - Program.prototype.run262 = function () { - var path = "C:\\temp\\test262\\suite"; - var testFiles = TypeScript.Environment.listFiles(path, undefined, { recursive: true }); - var testCount = 0; - var failCount = 0; - var skippedTests = []; - for (var index in testFiles) { - var fileName = testFiles[index]; - if (specificFile !== undefined && fileName.indexOf(specificFile) < 0) { - continue; - } - var contents = TypeScript.Environment.readFile(fileName, undefined).contents; - var isNegative = contents.indexOf("@negative") >= 0; - testCount++; - try { - var stringText = TypeScript.SimpleText.fromString(contents); - var tree = TypeScript.Parser.parse(fileName, stringText, 1 /* ES5 */, isDTSFile(fileName)); - if (isNegative) { - var nameOnly = fileName.substr(fileName.lastIndexOf("\\") + 1); - var canParseSuccessfully = negative262ExpectedResults[nameOnly]; - if (canParseSuccessfully) { - if (tree.diagnostics() && tree.diagnostics().length > 0) { - TypeScript.Environment.standardOut.WriteLine("Negative test. Unexpected failure: " + fileName); - failCount++; - } - } - else { - if (!tree.diagnostics() || tree.diagnostics().length === 0) { - TypeScript.Environment.standardOut.WriteLine("Negative test. Unexpected success: " + fileName); - failCount++; - } - } - } - else { - if (tree.diagnostics() && tree.diagnostics().length > 0) { - TypeScript.Environment.standardOut.WriteLine("Unexpected failure: " + fileName); - failCount++; - } - } - } - catch (e) { - failCount++; - this.handleException(fileName, e); - } - } - TypeScript.Environment.standardOut.WriteLine(""); - TypeScript.Environment.standardOut.WriteLine("Test 262 results:"); - TypeScript.Environment.standardOut.WriteLine("Test Count: " + testCount); - TypeScript.Environment.standardOut.WriteLine("Skip Count: " + skippedTests.length); - TypeScript.Environment.standardOut.WriteLine("Fail Count: " + failCount); - for (var i = 0; i < skippedTests.length; i++) { - TypeScript.Environment.standardOut.WriteLine(skippedTests[i]); - } - }; - return Program; -})(); -var andersTime = 0; -var cyrusTime = 0; -var totalTime = 0; -var totalSize = 0; -var program = new Program(); -totalTime = 0; -totalSize = 0; -program.runAllTests(true); -var count = 1; -TypeScript.Environment.standardOut.WriteLine("Total time: " + (totalTime / count)); -TypeScript.Environment.standardOut.WriteLine("Total size: " + (totalSize / count)); -TypeScript.Environment.standardOut.WriteLine("Anders time: " + andersTime); -TypeScript.Environment.standardOut.WriteLine("Cyrus time : " + cyrusTime); -//# sourceMappingURL=file:///C:/VSPro_1/src/typescript/public_cyrusn/tests/Fidelity/program.js.map \ No newline at end of file diff --git a/tests/Fidelity/program.js.map b/tests/Fidelity/program.js.map deleted file mode 100644 index 3bee2fc925a..00000000000 --- a/tests/Fidelity/program.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"program.js","sourceRoot":"","sources":["file:///C:/VSPro_1/src/typescript/public_cyrusn/tests/Fidelity/es5compat.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/tests/Fidelity/json2.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/tests/Fidelity/enumerator.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/tests/Fidelity/process.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/tests/Fidelity/require.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/tests/Fidelity/environment.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/compiler/core.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/compiler/types.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/compiler/diagnosticInformationMap.generated.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/compiler/scanner.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/compiler/parser.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/compiler/binder.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/compiler/emitter.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/compiler/checker.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/resources/diagnosticCode.generated.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/core/diagnosticCategory.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/resources/diagnosticInformationMap.generated.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/resources/references.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/core/errors.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/core/arrayUtilities.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/core/debug.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/core/diagnosticCore.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/core/diagnosticInfo.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/core/integerUtilities.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/core/lineMap.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/core/linePosition.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/core/stringUtilities.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/core/references.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/text/characterCodes.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/text/scriptSnapshot.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/text/text.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/text/lineMap.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/text/textFactory.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/text/textUtilities.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/text/textSpan.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/text/textChangeRange.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/text/references.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/syntax/characterInfo.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/syntax/constants.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/syntax/formattingOptions.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/syntax/languageVersion.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/syntax/syntaxKind.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/syntax/syntaxFacts.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/syntax/scannerUtilities.generated.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/syntax/scanner.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/syntax/slidingWindow.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/syntax/syntax.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/syntax/syntaxElement.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/syntax/syntaxFacts2.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/syntax/syntaxList.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/syntax/syntaxNodeOrToken.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/syntax/syntaxToken.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/syntax/syntaxTrivia.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/syntax/syntaxTriviaList.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/syntax/syntaxUtilities.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/syntax/syntaxVisitor.generated.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/syntax/syntaxWalker.generated.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/syntax/depthLimitedWalker.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/syntax/parser.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/syntax/syntaxInterfaces.generated.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/syntax/syntaxNodes.concrete.generated.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/syntax/syntaxTree.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/syntax/unicode.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/syntax/references.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/syntax/prettyPrinter.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/tests/Fidelity/Test262.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/tests/Fidelity/incremental/IncrementalParserTests.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/syntax/incrementalParser.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/syntax/testUtilities.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/tests/Fidelity/Program.ts"],"names":["reduce","f","quote","str","walk","TypeScript","TypeScript.ByteOrderMark","TypeScript.FileInformation","TypeScript.FileInformation.constructor","TypeScript.throwIOError","getWindowsScriptHostEnvironment","getWindowsScriptHostEnvironment.getStreamObject","getWindowsScriptHostEnvironment.releaseStreamObject","getWindowsScriptHostEnvironment.filesInFolder","getNodeEnvironment","getNodeEnvironment.mkdirRecursiveSync","getNodeEnvironment.filesInFolder","ts","ts.Ternary","ts.Comparison","ts.forEach","ts.contains","ts.indexOf","ts.countWhere","ts.filter","ts.map","ts.concatenate","ts.deduplicate","ts.sum","ts.lastOrUndefined","ts.binarySearch","ts.hasProperty","ts.getProperty","ts.isEmpty","ts.clone","ts.forEachValue","ts.forEachKey","ts.lookUp","ts.mapToArray","ts.arrayToMap","ts.formatStringFromArgs","ts.getLocaleSpecificMessage","ts.createFileDiagnostic","ts.createCompilerDiagnostic","ts.chainDiagnosticMessages","ts.concatenateDiagnosticMessageChains","ts.flattenDiagnosticChain","ts.compareValues","ts.getDiagnosticFilename","ts.compareDiagnostics","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.escapeString","ts.Symbol","ts.Type","ts.Signature","ts.Node","ts.AssertionLevel","ts.Debug","ts.Debug.shouldAssert","ts.Debug.assert","ts.Debug.fail","ts.SyntaxKind","ts.NodeFlags","ts.ParserContextFlags","ts.EmitReturnStatus","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.lookupInUnicodeMap","ts.isUnicodeIdentifierStart","ts.isUnicodeIdentifierPart","ts.makeReverseMap","ts.tokenToString","ts.computeLineStarts","ts.getPositionFromLineAndCharacter","ts.getLineAndCharacterOfPosition","ts.positionToLineAndCharacter","ts.isWhiteSpace","ts.isLineBreak","ts.isDigit","ts.isOctalDigit","ts.skipTrivia","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.scanHexDigits","ts.createScanner.scanString","ts.createScanner.scanTemplateAndSetTokenValue","ts.createScanner.scanEscapeSequence","ts.createScanner.peekUnicodeEscape","ts.createScanner.scanIdentifierParts","ts.createScanner.getIdentifierToken","ts.createScanner.scan","ts.createScanner.reScanGreaterToken","ts.createScanner.reScanSlashToken","ts.createScanner.reScanTemplateToken","ts.createScanner.tryScan","ts.createScanner.setText","ts.createScanner.setTextPos","ts.getNodeConstructor","ts.createRootNode","ts.getSourceFileOfNode","ts.nodePosToString","ts.getStartPosOfNode","ts.getTokenPosOfNode","ts.getSourceTextOfNodeFromSourceFile","ts.getTextOfNodeFromSourceText","ts.getTextOfNode","ts.escapeIdentifier","ts.unescapeIdentifier","ts.declarationNameToString","ts.createDiagnosticForNode","ts.createDiagnosticForNodeFromMessageChain","ts.getErrorSpanForNode","ts.isExternalModule","ts.isDeclarationFile","ts.isConstEnumDeclaration","ts.isConst","ts.isLet","ts.isPrologueDirective","ts.isEvalOrArgumentsIdentifier","ts.isUseStrictPrologueDirective","ts.getLeadingCommentRangesOfNode","ts.getJsDocComments","ts.getJsDocComments.isJsDocComment","ts.forEachChild","ts.forEachChild.child","ts.forEachChild.children","ts.forEachReturnStatement","ts.forEachReturnStatement.traverse","ts.isAnyFunction","ts.getContainingFunction","ts.getThisContainer","ts.getSuperContainer","ts.getInvokedExpression","ts.isExpression","ts.hasRestParameters","ts.isLiteralKind","ts.isTextualLiteralKind","ts.isTemplateLiteralKind","ts.isInAmbientContext","ts.isDeclaration","ts.isStatement","ts.isDeclarationOrFunctionExpressionOrCatchVariableName","ts.tryResolveScriptReference","ts.getAncestor","ts.ParsingContext","ts.Tristate","ts.parsingContextErrors","ts.LookAheadMode","ts.getFileReferenceFromReferencePath","ts.isKeyword","ts.isTrivia","ts.isUnterminatedTemplateEnd","ts.isModifier","ts.modifierToFlag","ts.createSourceFile","ts.createSourceFile.setContextFlag","ts.createSourceFile.setStrictModeContext","ts.createSourceFile.setDisallowInContext","ts.createSourceFile.setYieldContext","ts.createSourceFile.setGeneratorParameterContext","ts.createSourceFile.allowInAnd","ts.createSourceFile.disallowInAnd","ts.createSourceFile.doInYieldContext","ts.createSourceFile.doOutsideOfYieldContext","ts.createSourceFile.inYieldContext","ts.createSourceFile.inStrictModeContext","ts.createSourceFile.inGeneratorParameterContext","ts.createSourceFile.inDisallowInContext","ts.createSourceFile.getLineStarts","ts.createSourceFile.getLineAndCharacterFromSourcePosition","ts.createSourceFile.getPositionFromSourceLineAndCharacter","ts.createSourceFile.error","ts.createSourceFile.errorAtPos","ts.createSourceFile.scanError","ts.createSourceFile.onComment","ts.createSourceFile.getNodePos","ts.createSourceFile.getNodeEnd","ts.createSourceFile.nextToken","ts.createSourceFile.getTokenPos","ts.createSourceFile.reScanGreaterToken","ts.createSourceFile.reScanSlashToken","ts.createSourceFile.reScanTemplateToken","ts.createSourceFile.lookAheadHelper","ts.createSourceFile.lookAhead","ts.createSourceFile.tryParse","ts.createSourceFile.isIdentifier","ts.createSourceFile.parseExpected","ts.createSourceFile.parseOptional","ts.createSourceFile.canParseSemicolon","ts.createSourceFile.parseSemicolon","ts.createSourceFile.createNode","ts.createSourceFile.finishNode","ts.createSourceFile.createMissingNode","ts.createSourceFile.internIdentifier","ts.createSourceFile.createIdentifier","ts.createSourceFile.parseIdentifier","ts.createSourceFile.parseIdentifierName","ts.createSourceFile.isPropertyName","ts.createSourceFile.parsePropertyName","ts.createSourceFile.parseContextualModifier","ts.createSourceFile.parseAnyContextualModifier","ts.createSourceFile.isListElement","ts.createSourceFile.isListTerminator","ts.createSourceFile.isVariableDeclaratorListTerminator","ts.createSourceFile.isInSomeParsingContext","ts.createSourceFile.parseList","ts.createSourceFile.parseDelimitedList","ts.createSourceFile.createMissingList","ts.createSourceFile.parseBracketedList","ts.createSourceFile.parseEntityName","ts.createSourceFile.parseTokenNode","ts.createSourceFile.parseTemplateExpression","ts.createSourceFile.parseTemplateSpan","ts.createSourceFile.parseLiteralNode","ts.createSourceFile.parseStringLiteral","ts.createSourceFile.parseTypeReference","ts.createSourceFile.parseTypeQuery","ts.createSourceFile.parseTypeParameter","ts.createSourceFile.parseTypeParameters","ts.createSourceFile.parseParameterType","ts.createSourceFile.isStartOfParameter","ts.createSourceFile.setModifiers","ts.createSourceFile.parseParameter","ts.createSourceFile.parseParameterInitializer","ts.createSourceFile.parseSignature","ts.createSourceFile.fillSignature","ts.createSourceFile.parseParameterList","ts.createSourceFile.parseSignatureMember","ts.createSourceFile.parseIndexSignatureMember","ts.createSourceFile.parsePropertyOrMethod","ts.createSourceFile.isStartOfTypeMember","ts.createSourceFile.parseTypeMember","ts.createSourceFile.parseTypeLiteral","ts.createSourceFile.parseObjectType","ts.createSourceFile.parseTupleType","ts.createSourceFile.parseParenType","ts.createSourceFile.parseFunctionType","ts.createSourceFile.parseKeywordAndNoDot","ts.createSourceFile.parseNonArrayType","ts.createSourceFile.isStartOfType","ts.createSourceFile.parsePrimaryType","ts.createSourceFile.parseUnionType","ts.createSourceFile.isStartOfFunctionType","ts.createSourceFile.parseType","ts.createSourceFile.parseTypeWorker","ts.createSourceFile.parseTypeAnnotation","ts.createSourceFile.isStartOfExpression","ts.createSourceFile.isStartOfExpressionStatement","ts.createSourceFile.parseExpression","ts.createSourceFile.parseInitializer","ts.createSourceFile.parseAssignmentExpression","ts.createSourceFile.isYieldExpression","ts.createSourceFile.parseYieldExpression","ts.createSourceFile.parseSimpleArrowFunctionExpression","ts.createSourceFile.tryParseParenthesizedArrowFunctionExpression","ts.createSourceFile.isParenthesizedArrowFunctionExpression","ts.createSourceFile.tryParseSignatureIfArrowOrBraceFollows","ts.createSourceFile.parseArrowExpressionTail","ts.createSourceFile.parseConditionalExpression","ts.createSourceFile.parseBinaryOperators","ts.createSourceFile.getOperatorPrecedence","ts.createSourceFile.makeBinaryExpression","ts.createSourceFile.parseUnaryExpression","ts.createSourceFile.parseTypeAssertion","ts.createSourceFile.makeUnaryExpression","ts.createSourceFile.parseCallAndAccess","ts.createSourceFile.parseTypeArgumentsAndOpenParen","ts.createSourceFile.parseTypeArguments","ts.createSourceFile.parseSingleTypeArgument","ts.createSourceFile.parsePrimaryExpression","ts.createSourceFile.parseParenExpression","ts.createSourceFile.parseAssignmentExpressionOrOmittedExpression","ts.createSourceFile.parseArrayLiteralElement","ts.createSourceFile.parseArgumentExpression","ts.createSourceFile.parseArrayLiteral","ts.createSourceFile.parsePropertyAssignment","ts.createSourceFile.parseObjectLiteralMember","ts.createSourceFile.parseObjectLiteral","ts.createSourceFile.parseFunctionExpression","ts.createSourceFile.parseOptionalIdentifier","ts.createSourceFile.makeFunctionExpression","ts.createSourceFile.parseNewExpression","ts.createSourceFile.parseBlock","ts.createSourceFile.parseFunctionBlock","ts.createSourceFile.parseEmptyStatement","ts.createSourceFile.parseIfStatement","ts.createSourceFile.parseDoStatement","ts.createSourceFile.parseWhileStatement","ts.createSourceFile.parseForOrForInStatement","ts.createSourceFile.parseBreakOrContinueStatement","ts.createSourceFile.parseReturnStatement","ts.createSourceFile.parseWithStatement","ts.createSourceFile.parseCaseClause","ts.createSourceFile.parseDefaultClause","ts.createSourceFile.parseCaseOrDefaultClause","ts.createSourceFile.parseSwitchStatement","ts.createSourceFile.parseThrowStatement","ts.createSourceFile.parseTryStatement","ts.createSourceFile.parseTokenAndBlock","ts.createSourceFile.parseCatchBlock","ts.createSourceFile.parseDebuggerStatement","ts.createSourceFile.isLabel","ts.createSourceFile.parseLabeledStatement","ts.createSourceFile.parseExpressionStatement","ts.createSourceFile.isStatement","ts.createSourceFile.parseStatement","ts.createSourceFile.parseFunctionBlockOrSemicolon","ts.createSourceFile.parseVariableDeclaration","ts.createSourceFile.setFlag","ts.createSourceFile.parseVariableDeclarationList","ts.createSourceFile.parseVariableStatement","ts.createSourceFile.parseFunctionDeclaration","ts.createSourceFile.parseConstructorDeclaration","ts.createSourceFile.parsePropertyMemberDeclaration","ts.createSourceFile.parseMemberAccessorDeclaration","ts.createSourceFile.isClassMemberStart","ts.createSourceFile.parseModifiers","ts.createSourceFile.parseClassMemberDeclaration","ts.createSourceFile.parseClassDeclaration","ts.createSourceFile.parseClassMembers","ts.createSourceFile.parseClassBaseType","ts.createSourceFile.parseInterfaceDeclaration","ts.createSourceFile.parseTypeAliasDeclaration","ts.createSourceFile.parseEnumMember","ts.createSourceFile.parseAndCheckEnumDeclaration","ts.createSourceFile.parseModuleBody","ts.createSourceFile.parseInternalModuleTail","ts.createSourceFile.parseAmbientExternalModuleDeclaration","ts.createSourceFile.parseModuleDeclaration","ts.createSourceFile.parseImportDeclaration","ts.createSourceFile.parseExportAssignmentTail","ts.createSourceFile.isDeclarationStart","ts.createSourceFile.parseDeclaration","ts.createSourceFile.isSourceElement","ts.createSourceFile.parseSourceElement","ts.createSourceFile.parseModuleElement","ts.createSourceFile.parseSourceElementOrModuleElement","ts.createSourceFile.processReferenceComments","ts.createSourceFile.getExternalModuleIndicator","ts.createSourceFile.getSyntacticDiagnostics","ts.isLeftHandSideExpression","ts.isAssignmentOperator","ts.checkGrammar","ts.checkGrammar.visitNode","ts.checkGrammar.checkNodeAndChildren","ts.checkGrammar.checkNode","ts.checkGrammar.grammarErrorOnFirstToken","ts.checkGrammar.grammarErrorOnNode","ts.checkGrammar.grammarErrorAtPos","ts.checkGrammar.reportInvalidUseInStrictMode","ts.checkGrammar.checkForStatementInAmbientContext","ts.checkGrammar.checkAnyParsedSignature","ts.checkGrammar.checkBinaryExpression","ts.checkGrammar.isIterationStatement","ts.checkGrammar.checkLabeledStatement","ts.checkGrammar.checkBreakOrContinueStatement","ts.checkGrammar.checkCallOrNewExpression","ts.checkGrammar.checkArguments","ts.checkGrammar.checkTypeArguments","ts.checkGrammar.checkForOmittedArgument","ts.checkGrammar.checkForMissingTypeArgument","ts.checkGrammar.checkForAtLeastOneTypeArgument","ts.checkGrammar.checkForDisallowedTrailingComma","ts.checkGrammar.checkCatchBlock","ts.checkGrammar.checkClassDeclaration","ts.checkGrammar.checkForAtLeastOneHeritageClause","ts.checkGrammar.checkConstructor","ts.checkGrammar.checkConstructorTypeParameters","ts.checkGrammar.checkConstructorTypeAnnotation","ts.checkGrammar.checkEnumDeclaration","ts.checkGrammar.isIntegerLiteral","ts.checkGrammar.isIntegerLiteral.isInteger","ts.checkGrammar.checkExportAssignment","ts.checkGrammar.checkForInStatement","ts.checkGrammar.checkForStatement","ts.checkGrammar.checkForMoreThanOneDeclaration","ts.checkGrammar.checkFunctionDeclaration","ts.checkGrammar.checkFunctionExpression","ts.checkGrammar.checkFunctionName","ts.checkGrammar.checkGetAccessor","ts.checkGrammar.checkIndexedAccess","ts.checkGrammar.checkIndexSignature","ts.checkGrammar.checkForIndexSignatureModifiers","ts.checkGrammar.checkIndexSignatureParameters","ts.checkGrammar.checkInterfaceDeclaration","ts.checkGrammar.checkMethod","ts.checkGrammar.checkForBodyInAmbientContext","ts.checkGrammar.checkModuleDeclaration","ts.checkGrammar.checkModuleDeclarationName","ts.checkGrammar.checkModuleDeclarationStatements","ts.checkGrammar.checkObjectLiteral","ts.checkGrammar.checkNumericLiteral","ts.checkGrammar.checkModifiers","ts.checkGrammar.checkParameter","ts.checkGrammar.checkTypeParameterList","ts.checkGrammar.checkParameterList","ts.checkGrammar.checkPostfixOperator","ts.checkGrammar.checkPrefixOperator","ts.checkGrammar.checkProperty","ts.checkGrammar.checkForInitializerInAmbientContext","ts.checkGrammar.checkPropertyAssignment","ts.checkGrammar.checkForInvalidQuestionMark","ts.checkGrammar.checkReturnStatement","ts.checkGrammar.checkSetAccessor","ts.checkGrammar.checkAccessor","ts.checkGrammar.checkSourceFile","ts.checkGrammar.checkTopLevelElementsForRequiredDeclareModifier","ts.checkGrammar.checkTopLevelElementForRequiredDeclareModifier","ts.checkGrammar.checkShorthandPropertyAssignment","ts.checkGrammar.checkSwitchStatement","ts.checkGrammar.checkTaggedTemplateExpression","ts.checkGrammar.checkTupleType","ts.checkGrammar.checkForAtLeastOneType","ts.checkGrammar.checkTypeParameter","ts.checkGrammar.checkTypeReference","ts.checkGrammar.checkVariableDeclaration","ts.checkGrammar.checkVariableDeclarations","ts.checkGrammar.checkVariableStatement","ts.checkGrammar.checkForDisallowedLetOrConstStatement","ts.checkGrammar.allowLetAndConstDeclarations","ts.checkGrammar.checkWithStatement","ts.checkGrammar.checkYieldExpression","ts.createProgram","ts.createProgram.getSourceFile","ts.createProgram.getDiagnostics","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.ModuleInstanceState","ts.getModuleInstanceState","ts.bindSourceFile","ts.bindSourceFile.createSymbol","ts.bindSourceFile.addDeclarationToSymbol","ts.bindSourceFile.getDeclarationName","ts.bindSourceFile.getDisplayName","ts.bindSourceFile.declareSymbol","ts.bindSourceFile.isAmbientContext","ts.bindSourceFile.declareModuleMember","ts.bindSourceFile.bindChildren","ts.bindSourceFile.bindDeclaration","ts.bindSourceFile.bindConstructorDeclaration","ts.bindSourceFile.bindModuleDeclaration","ts.bindSourceFile.bindFunctionOrConstructorType","ts.bindSourceFile.bindAnonymousDeclaration","ts.bindSourceFile.bindCatchVariableDeclaration","ts.bindSourceFile.bindBlockScopedVariableDeclaration","ts.bindSourceFile.bind","ts.getIndentString","ts.getIndentSize","ts.shouldEmitToOwnFile","ts.isExternalModuleOrDeclarationFile","ts.createTextWriter","ts.createTextWriter.write","ts.createTextWriter.rawWrite","ts.createTextWriter.writeLiteral","ts.createTextWriter.writeLine","ts.createTextWriter.writeTextOfNode","ts.getLineOfLocalPosition","ts.emitNewLineBeforeLeadingComments","ts.emitComments","ts.writeCommentRange","ts.writeCommentRange.writeTrimmedCurrentLine","ts.writeCommentRange.calculateIndent","ts.getFirstConstructorWithBody","ts.getAllAccessorDeclarations","ts.getSourceFilePathInNewDir","ts.getOwnEmitOutputFilePath","ts.writeFile","ts.emitDeclarations","ts.emitDeclarations.createAndSetNewTextWriterWithSymbolWriter","ts.emitDeclarations.setWriter","ts.emitDeclarations.writeAsychronousImportDeclarations","ts.emitDeclarations.handleSymbolAccessibilityError","ts.emitDeclarations.trackSymbol","ts.emitDeclarations.writeTypeAtLocation","ts.emitDeclarations.writeReturnTypeAtSignature","ts.emitDeclarations.emitLines","ts.emitDeclarations.emitSeparatedList","ts.emitDeclarations.emitCommaList","ts.emitDeclarations.writeJsDocComments","ts.emitDeclarations.emitTypeWithNewGetSymbolAccessibilityDiangostic","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.emitModuleElementDeclarationFlags","ts.emitDeclarations.emitClassMemberDeclarationFlags","ts.emitDeclarations.emitImportDeclaration","ts.emitDeclarations.writeImportDeclaration","ts.emitDeclarations.writeImportDeclaration.getImportEntityNameVisibilityError","ts.emitDeclarations.emitModuleDeclaration","ts.emitDeclarations.emitTypeAliasDeclaration","ts.emitDeclarations.emitTypeAliasDeclaration.getTypeAliasDeclarationVisibilityError","ts.emitDeclarations.emitEnumDeclaration","ts.emitDeclarations.emitEnumMemberDeclaration","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.emitClassDeclaration","ts.emitDeclarations.emitClassDeclaration.emitParameterProperties","ts.emitDeclarations.emitInterfaceDeclaration","ts.emitDeclarations.emitPropertyDeclaration","ts.emitDeclarations.emitVariableDeclaration","ts.emitDeclarations.emitVariableDeclaration.getVariableDeclarationTypeVisibilityError","ts.emitDeclarations.emitTypeOfVariableDeclarationFromTypeLiteral","ts.emitDeclarations.emitVariableStatement","ts.emitDeclarations.emitAccessorDeclaration","ts.emitDeclarations.emitAccessorDeclaration.getTypeAnnotationFromAccessor","ts.emitDeclarations.emitAccessorDeclaration.getAccessorDeclarationTypeVisibilityError","ts.emitDeclarations.emitFunctionDeclaration","ts.emitDeclarations.emitSignatureDeclarationWithJsDocComments","ts.emitDeclarations.emitSignatureDeclaration","ts.emitDeclarations.emitSignatureDeclaration.getReturnTypeVisibilityError","ts.emitDeclarations.emitParameterDeclaration","ts.emitDeclarations.emitParameterDeclaration.getParameterDeclarationTypeVisibilityError","ts.emitDeclarations.emitNode","ts.emitDeclarations.writeReferencePath","ts.getDeclarationDiagnostics","ts.emitFiles","ts.emitFiles.emitJavaScript","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.emitNodeWithMap","ts.emitFiles.emitJavaScript.writeJavaScriptFile","ts.emitFiles.emitJavaScript.emitTokenText","ts.emitFiles.emitJavaScript.emitOptional","ts.emitFiles.emitJavaScript.emitTrailingCommaIfPresent","ts.emitFiles.emitJavaScript.emitCommaList","ts.emitFiles.emitJavaScript.emitMultiLineList","ts.emitFiles.emitJavaScript.emitLines","ts.emitFiles.emitJavaScript.emitLinesStartingAt","ts.emitFiles.emitJavaScript.emitLiteral","ts.emitFiles.emitJavaScript.emitLiteral.getLiteralText","ts.emitFiles.emitJavaScript.getTemplateLiteralAsStringLiteral","ts.emitFiles.emitJavaScript.emitTemplateExpression","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.emitIdentifier","ts.emitFiles.emitJavaScript.emitThis","ts.emitFiles.emitJavaScript.emitSuper","ts.emitFiles.emitJavaScript.emitArrayLiteral","ts.emitFiles.emitJavaScript.emitObjectLiteral","ts.emitFiles.emitJavaScript.emitPropertyAssignment","ts.emitFiles.emitJavaScript.emitShortHandPropertyAssignment","ts.emitFiles.emitJavaScript.emitShortHandPropertyAssignment.emitAsNormalPropertyAssignment","ts.emitFiles.emitJavaScript.tryEmitConstantValue","ts.emitFiles.emitJavaScript.emitPropertyAccess","ts.emitFiles.emitJavaScript.emitIndexedAccess","ts.emitFiles.emitJavaScript.emitCallExpression","ts.emitFiles.emitJavaScript.emitNewExpression","ts.emitFiles.emitJavaScript.emitTaggedTemplateExpression","ts.emitFiles.emitJavaScript.emitParenExpression","ts.emitFiles.emitJavaScript.emitUnaryExpression","ts.emitFiles.emitJavaScript.emitBinaryExpression","ts.emitFiles.emitJavaScript.emitConditionalExpression","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.emitForStatement","ts.emitFiles.emitJavaScript.emitForInStatement","ts.emitFiles.emitJavaScript.emitBreakOrContinueStatement","ts.emitFiles.emitJavaScript.emitReturnStatement","ts.emitFiles.emitJavaScript.emitWithStatement","ts.emitFiles.emitJavaScript.emitSwitchStatement","ts.emitFiles.emitJavaScript.isOnSameLine","ts.emitFiles.emitJavaScript.emitCaseOrDefaultClause","ts.emitFiles.emitJavaScript.emitThrowStatement","ts.emitFiles.emitJavaScript.emitTryStatement","ts.emitFiles.emitJavaScript.emitCatchBlock","ts.emitFiles.emitJavaScript.emitDebuggerStatement","ts.emitFiles.emitJavaScript.emitLabelledStatement","ts.emitFiles.emitJavaScript.getContainingModule","ts.emitFiles.emitJavaScript.emitModuleMemberName","ts.emitFiles.emitJavaScript.emitVariableDeclaration","ts.emitFiles.emitJavaScript.emitVariableStatement","ts.emitFiles.emitJavaScript.emitParameter","ts.emitFiles.emitJavaScript.emitDefaultValueAssignments","ts.emitFiles.emitJavaScript.emitRestParameter","ts.emitFiles.emitJavaScript.emitAccessor","ts.emitFiles.emitJavaScript.emitFunctionDeclaration","ts.emitFiles.emitJavaScript.emitCaptureThisForNodeIfNecessary","ts.emitFiles.emitJavaScript.emitSignatureParameters","ts.emitFiles.emitJavaScript.emitSignatureAndBody","ts.emitFiles.emitJavaScript.findInitialSuperCall","ts.emitFiles.emitJavaScript.emitParameterPropertyAssignments","ts.emitFiles.emitJavaScript.emitMemberAccess","ts.emitFiles.emitJavaScript.emitMemberAssignments","ts.emitFiles.emitJavaScript.emitMemberFunctions","ts.emitFiles.emitJavaScript.emitClassDeclaration","ts.emitFiles.emitJavaScript.emitClassDeclaration.emitClassReturnStatement","ts.emitFiles.emitJavaScript.emitClassDeclaration.emitConstructorOfClass","ts.emitFiles.emitJavaScript.emitInterfaceDeclaration","ts.emitFiles.emitJavaScript.emitEnumDeclaration","ts.emitFiles.emitJavaScript.emitEnumDeclaration.emitEnumMemberDeclarations","ts.emitFiles.emitJavaScript.getInnerMostModuleDeclarationFromDottedModule","ts.emitFiles.emitJavaScript.emitModuleDeclaration","ts.emitFiles.emitJavaScript.emitImportDeclaration","ts.emitFiles.emitJavaScript.getExternalImportDeclarations","ts.emitFiles.emitJavaScript.getFirstExportAssignment","ts.emitFiles.emitJavaScript.emitAMDModule","ts.emitFiles.emitJavaScript.emitCommonJSModule","ts.emitFiles.emitJavaScript.emitDirectivePrologues","ts.emitFiles.emitJavaScript.emitSourceFile","ts.emitFiles.emitJavaScript.emitNode","ts.emitFiles.emitJavaScript.hasDetachedComments","ts.emitFiles.emitJavaScript.getLeadingCommentsWithoutDetachedComments","ts.emitFiles.emitJavaScript.getLeadingCommentsToEmit","ts.emitFiles.emitJavaScript.emitLeadingDeclarationComments","ts.emitFiles.emitJavaScript.emitTrailingDeclarationComments","ts.emitFiles.emitJavaScript.emitLeadingCommentsOfLocalPosition","ts.emitFiles.emitJavaScript.emitDetachedCommentsAtPosition","ts.emitFiles.emitJavaScript.emitPinnedOrTripleSlashCommentsOfNode","ts.emitFiles.emitJavaScript.emitPinnedOrTripleSlashCommentsOfNode.isPinnedOrTripleSlashComment","ts.emitFiles.writeDeclarationFile","ts.emitFiles.emitFile","ts.getDeclarationOfKind","ts.getSingleLineStringWriter","ts.createTypeChecker","ts.createTypeChecker.addDiagnostic","ts.createTypeChecker.error","ts.createTypeChecker.createSymbol","ts.createTypeChecker.getExcludedSymbolFlags","ts.createTypeChecker.recordMergedSymbol","ts.createTypeChecker.cloneSymbol","ts.createTypeChecker.extendSymbol","ts.createTypeChecker.cloneSymbolTable","ts.createTypeChecker.extendSymbolTable","ts.createTypeChecker.getSymbolLinks","ts.createTypeChecker.getNodeLinks","ts.createTypeChecker.getSourceFile","ts.createTypeChecker.isGlobalSourceFile","ts.createTypeChecker.getSymbol","ts.createTypeChecker.isDefinedBefore","ts.createTypeChecker.resolveName","ts.createTypeChecker.resolveImport","ts.createTypeChecker.getSymbolOfPartOfRightHandSideOfImport","ts.createTypeChecker.getFullyQualifiedName","ts.createTypeChecker.resolveEntityName","ts.createTypeChecker.isExternalModuleNameRelative","ts.createTypeChecker.resolveExternalModuleName","ts.createTypeChecker.getResolvedExportSymbol","ts.createTypeChecker.getExportAssignmentSymbol","ts.createTypeChecker.checkTypeOfExportAssignmentSymbol","ts.createTypeChecker.collectExportInformationForSourceFileOrModule","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.isOptionalProperty","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.releaseStringWriter","ts.createTypeChecker.writeKeyword","ts.createTypeChecker.writePunctuation","ts.createTypeChecker.writeOperator","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.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.getTypeOfPrototypeProperty","ts.createTypeChecker.getTypeOfVariableOrPropertyDeclaration","ts.createTypeChecker.getTypeOfVariableOrPropertyDeclaration.checkImplicitAny","ts.createTypeChecker.getTypeOfVariableOrParameterOrProperty","ts.createTypeChecker.getSetAccessorTypeAnnotationNode","ts.createTypeChecker.getAnnotatedAccessorType","ts.createTypeChecker.getTypeOfAccessors","ts.createTypeChecker.checkAndStoreTypeOfAccessors","ts.createTypeChecker.getTypeOfFuncClassEnumModule","ts.createTypeChecker.getTypeOfEnumMember","ts.createTypeChecker.getTypeOfImport","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.getDeclaredTypeOfImport","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.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.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.getGlobalSymbol","ts.createTypeChecker.getGlobalType","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.isContextSensitiveExpression","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.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.isTypeOfObjectLiteral","ts.createTypeChecker.isArrayType","ts.createTypeChecker.getInnermostTypeOfNestedArrayTypes","ts.createTypeChecker.getWidenedType","ts.createTypeChecker.getWidenedType.getWidenedTypeOfUnion","ts.createTypeChecker.getWidenedType.getWidenedTypeOfObjectLiteral","ts.createTypeChecker.getWidenedType.getWidenedTypeOfArrayLiteral","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.subtractPrimitiveTypes","ts.createTypeChecker.isVariableAssignedWithin","ts.createTypeChecker.isVariableAssignedWithin.isAssignedInBinaryExpression","ts.createTypeChecker.isVariableAssignedWithin.isAssignedInVariableDeclaration","ts.createTypeChecker.isVariableAssignedWithin.isAssignedIn","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.captureLexicalThis","ts.createTypeChecker.checkThisExpression","ts.createTypeChecker.getSuperContainer","ts.createTypeChecker.isInConstructorArgumentInitializer","ts.createTypeChecker.checkSuperExpression","ts.createTypeChecker.getContextuallyTypedParameterType","ts.createTypeChecker.getContextualTypeForInitializerExpression","ts.createTypeChecker.getContextualTypeForReturnExpression","ts.createTypeChecker.getContextualTypeForArgument","ts.createTypeChecker.getContextualTypeForBinaryOperand","ts.createTypeChecker.applyToContextualType","ts.createTypeChecker.getTypeOfPropertyOfContextualType","ts.createTypeChecker.getIndexTypeOfContextualType","ts.createTypeChecker.contextualTypeIsTupleType","ts.createTypeChecker.contextualTypeHasIndexSignature","ts.createTypeChecker.getContextualTypeForPropertyExpression","ts.createTypeChecker.getContextualTypeForElementExpression","ts.createTypeChecker.getContextualTypeForConditionalOperand","ts.createTypeChecker.getContextualType","ts.createTypeChecker.getNonGenericSignature","ts.createTypeChecker.getContextualSignature","ts.createTypeChecker.isInferentialContext","ts.createTypeChecker.checkArrayLiteral","ts.createTypeChecker.isNumericName","ts.createTypeChecker.checkObjectLiteral","ts.createTypeChecker.checkObjectLiteral.getIndexType","ts.createTypeChecker.getDeclarationKindFromSymbol","ts.createTypeChecker.getDeclarationFlagsFromSymbol","ts.createTypeChecker.checkClassPropertyAccess","ts.createTypeChecker.checkPropertyAccess","ts.createTypeChecker.isValidPropertyAccess","ts.createTypeChecker.checkIndexedAccess","ts.createTypeChecker.resolveUntypedCall","ts.createTypeChecker.resolveErrorCall","ts.createTypeChecker.hasCorrectArity","ts.createTypeChecker.hasCorrectArity.checkArity","ts.createTypeChecker.getSingleCallSignature","ts.createTypeChecker.instantiateSignatureInContextOf","ts.createTypeChecker.inferTypeArguments","ts.createTypeChecker.checkTypeArguments","ts.createTypeChecker.checkApplicableSignature","ts.createTypeChecker.getEffectiveCallArguments","ts.createTypeChecker.resolveCall","ts.createTypeChecker.resolveCall.chooseOverload","ts.createTypeChecker.resolveCall.collectCandidates","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.checkFunctionExpression","ts.createTypeChecker.checkFunctionExpressionBody","ts.createTypeChecker.checkArithmeticOperandType","ts.createTypeChecker.checkReferenceExpression","ts.createTypeChecker.checkReferenceExpression.findSymbol","ts.createTypeChecker.checkReferenceExpression.isReferenceOrErrorExpression","ts.createTypeChecker.checkReferenceExpression.isConstVariableReference","ts.createTypeChecker.checkPrefixExpression","ts.createTypeChecker.checkPostfixExpression","ts.createTypeChecker.isStructuredType","ts.createTypeChecker.isConstEnumObjectType","ts.createTypeChecker.isConstEnumSymbol","ts.createTypeChecker.checkInstanceOfExpression","ts.createTypeChecker.checkInExpression","ts.createTypeChecker.checkBinaryExpression","ts.createTypeChecker.checkBinaryExpression.getSuggestedBooleanOperator","ts.createTypeChecker.checkBinaryExpression.checkAssignmentOperator","ts.createTypeChecker.checkBinaryExpression.reportOperatorError","ts.createTypeChecker.checkConditionalExpression","ts.createTypeChecker.checkTemplateExpression","ts.createTypeChecker.checkExpressionWithContextualType","ts.createTypeChecker.checkAndMarkExpression","ts.createTypeChecker.checkExpression","ts.createTypeChecker.checkExpressionNode","ts.createTypeChecker.checkTypeParameter","ts.createTypeChecker.checkParameter","ts.createTypeChecker.checkParameter.checkReferencesInInitializer","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.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.checkFlagAgreementBetweenOverloads","ts.createTypeChecker.checkFunctionOrConstructorSymbol.reportImplementationExpectedError","ts.createTypeChecker.checkExportsOnMergedDeclarations","ts.createTypeChecker.checkExportsOnMergedDeclarations.getDeclarationSpaces","ts.createTypeChecker.checkFunctionDeclaration","ts.createTypeChecker.checkBlock","ts.createTypeChecker.checkCollisionWithArgumentsInGeneratedCode","ts.createTypeChecker.checkCollisionWithIndexVariableInGeneratedCode","ts.createTypeChecker.needCollisionCheckForIdentifier","ts.createTypeChecker.checkCollisionWithCapturedThisVariable","ts.createTypeChecker.checkIfThisIsCapturedInEnclosingScope","ts.createTypeChecker.checkCollisionWithCapturedSuperVariable","ts.createTypeChecker.checkCollisionWithRequireExportsInGeneratedCode","ts.createTypeChecker.checkCollisionWithConstDeclarations","ts.createTypeChecker.checkVariableDeclaration","ts.createTypeChecker.checkVariableStatement","ts.createTypeChecker.checkExpressionStatement","ts.createTypeChecker.checkIfStatement","ts.createTypeChecker.checkDoStatement","ts.createTypeChecker.checkWhileStatement","ts.createTypeChecker.checkForStatement","ts.createTypeChecker.checkForInStatement","ts.createTypeChecker.checkBreakOrContinueStatement","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.checkImportDeclaration","ts.createTypeChecker.checkExportAssignment","ts.createTypeChecker.checkSourceElement","ts.createTypeChecker.checkFunctionExpressionBodies","ts.createTypeChecker.checkBody","ts.createTypeChecker.checkSourceFile","ts.createTypeChecker.checkProgram","ts.createTypeChecker.getSortedDiagnostics","ts.createTypeChecker.getDiagnostics","ts.createTypeChecker.getDeclarationDiagnostics","ts.createTypeChecker.getGlobalDiagnostics","ts.createTypeChecker.getNodeAtPosition","ts.createTypeChecker.getNodeAtPosition.findChildAtPosition","ts.createTypeChecker.isInsideWithStatementBody","ts.createTypeChecker.getSymbolsInScope","ts.createTypeChecker.getSymbolsInScope.copySymbol","ts.createTypeChecker.getSymbolsInScope.copySymbols","ts.createTypeChecker.isTypeDeclarationName","ts.createTypeChecker.isTypeDeclaration","ts.createTypeChecker.isTypeReferenceIdentifier","ts.createTypeChecker.isTypeNode","ts.createTypeChecker.isInRightSideOfImportOrExportAssignment","ts.createTypeChecker.isRightSideOfQualifiedNameOrPropertyAccess","ts.createTypeChecker.getSymbolOfEntityName","ts.createTypeChecker.getSymbolInfo","ts.createTypeChecker.getShorthandAssignmentValueSymbol","ts.createTypeChecker.getTypeOfNode","ts.createTypeChecker.getTypeOfExpression","ts.createTypeChecker.getAugmentedPropertiesOfType","ts.createTypeChecker.getRootSymbols","ts.createTypeChecker.isExternalModuleSymbol","ts.createTypeChecker.isNodeDescendentOf","ts.createTypeChecker.isUniqueLocalName","ts.createTypeChecker.getLocalNameOfContainer","ts.createTypeChecker.getLocalNameForSymbol","ts.createTypeChecker.getExpressionNamePrefix","ts.createTypeChecker.getExportAssignmentName","ts.createTypeChecker.isTopLevelValueImportWithEntityName","ts.createTypeChecker.hasSemanticErrors","ts.createTypeChecker.isEmitBlocked","ts.createTypeChecker.hasEarlyErrors","ts.createTypeChecker.isImportResolvedToValue","ts.createTypeChecker.isConstEnumOrConstEnumOnlyModule","ts.createTypeChecker.isReferencedImportDeclaration","ts.createTypeChecker.isImplementationOfOverload","ts.createTypeChecker.getNodeCheckFlags","ts.createTypeChecker.getEnumMemberValue","ts.createTypeChecker.getConstantValue","ts.createTypeChecker.writeTypeAtLocation","ts.createTypeChecker.writeReturnTypeOfSignatureDeclaration","ts.createTypeChecker.createResolver","ts.createTypeChecker.invokeEmitter","ts.createTypeChecker.initializeTypeChecker","TypeScript.DiagnosticCategory","TypeScript.Errors","TypeScript.Errors.constructor","TypeScript.Errors.argument","TypeScript.Errors.argumentOutOfRange","TypeScript.Errors.argumentNull","TypeScript.Errors.abstract","TypeScript.Errors.notYetImplemented","TypeScript.Errors.invalidOperation","TypeScript.ArrayUtilities","TypeScript.ArrayUtilities.constructor","TypeScript.ArrayUtilities.sequenceEquals","TypeScript.ArrayUtilities.contains","TypeScript.ArrayUtilities.distinct","TypeScript.ArrayUtilities.last","TypeScript.ArrayUtilities.lastOrDefault","TypeScript.ArrayUtilities.firstOrDefault","TypeScript.ArrayUtilities.first","TypeScript.ArrayUtilities.sum","TypeScript.ArrayUtilities.select","TypeScript.ArrayUtilities.where","TypeScript.ArrayUtilities.any","TypeScript.ArrayUtilities.all","TypeScript.ArrayUtilities.binarySearch","TypeScript.ArrayUtilities.createArray","TypeScript.ArrayUtilities.grow","TypeScript.ArrayUtilities.copy","TypeScript.ArrayUtilities.indexOf","TypeScript.AssertionLevel","TypeScript.Debug","TypeScript.Debug.constructor","TypeScript.Debug.shouldAssert","TypeScript.Debug.assert","TypeScript.Debug.fail","TypeScript.Location","TypeScript.Location.constructor","TypeScript.Location.fileName","TypeScript.Location.lineMap","TypeScript.Location.line","TypeScript.Location.character","TypeScript.Location.start","TypeScript.Location.length","TypeScript.Location.equals","TypeScript.Diagnostic","TypeScript.Diagnostic.constructor","TypeScript.Diagnostic.toJSON","TypeScript.Diagnostic.diagnosticKey","TypeScript.Diagnostic.arguments","TypeScript.Diagnostic.text","TypeScript.Diagnostic.message","TypeScript.Diagnostic.additionalLocations","TypeScript.Diagnostic.equals","TypeScript.Diagnostic.info","TypeScript.newLine","TypeScript.getLargestIndex","TypeScript.getDiagnosticInfoFromKey","TypeScript.getLocalizedText","TypeScript.getDiagnosticMessage","TypeScript.IntegerUtilities","TypeScript.IntegerUtilities.integerDivide","TypeScript.IntegerUtilities.integerMultiplyLow32Bits","TypeScript.IntegerUtilities.isInteger","TypeScript.IntegerUtilities.isHexInteger","TypeScript.LineMap","TypeScript.LineMap.constructor","TypeScript.LineMap.toJSON","TypeScript.LineMap.equals","TypeScript.LineMap.lineStarts","TypeScript.LineMap.lineCount","TypeScript.LineMap.getPosition","TypeScript.LineMap.getLineNumberFromPosition","TypeScript.LineMap.getLineStartPosition","TypeScript.LineMap.fillLineAndCharacterFromPosition","TypeScript.LineMap.getLineAndCharacterFromPosition","TypeScript.LineAndCharacter","TypeScript.LineAndCharacter.constructor","TypeScript.LineAndCharacter.line","TypeScript.LineAndCharacter.character","TypeScript.StringUtilities","TypeScript.StringUtilities.constructor","TypeScript.StringUtilities.isString","TypeScript.StringUtilities.endsWith","TypeScript.StringUtilities.startsWith","TypeScript.StringUtilities.repeat","TypeScript.CharacterCodes","TypeScript.ScriptSnapshot","TypeScript.ScriptSnapshot.StringScriptSnapshot","TypeScript.ScriptSnapshot.StringScriptSnapshot.constructor","TypeScript.ScriptSnapshot.StringScriptSnapshot.getText","TypeScript.ScriptSnapshot.StringScriptSnapshot.getLength","TypeScript.ScriptSnapshot.StringScriptSnapshot.getLineStartPositions","TypeScript.ScriptSnapshot.StringScriptSnapshot.getChangeRange","TypeScript.ScriptSnapshot.fromString","TypeScript.LineMap1","TypeScript.LineMap1.fromSimpleText","TypeScript.LineMap1.fromScriptSnapshot","TypeScript.LineMap1.fromString","TypeScript.SimpleText","TypeScript.SimpleText.SimpleStringText","TypeScript.SimpleText.SimpleStringText.constructor","TypeScript.SimpleText.SimpleStringText.length","TypeScript.SimpleText.SimpleStringText.substr","TypeScript.SimpleText.SimpleStringText.charCodeAt","TypeScript.SimpleText.SimpleStringText.lineMap","TypeScript.SimpleText.SimpleScriptSnapshotText","TypeScript.SimpleText.SimpleScriptSnapshotText.constructor","TypeScript.SimpleText.SimpleScriptSnapshotText.charCodeAt","TypeScript.SimpleText.SimpleScriptSnapshotText.length","TypeScript.SimpleText.SimpleScriptSnapshotText.substr","TypeScript.SimpleText.SimpleScriptSnapshotText.lineMap","TypeScript.SimpleText.fromString","TypeScript.SimpleText.fromScriptSnapshot","TypeScript.TextUtilities","TypeScript.TextUtilities.parseLineStarts","TypeScript.TextUtilities.getLengthOfLineBreakSlow","TypeScript.TextUtilities.getLengthOfLineBreak","TypeScript.TextUtilities.isAnyLineBreakCharacter","TypeScript.TextSpan","TypeScript.TextSpan.constructor","TypeScript.TextSpan.toJSON","TypeScript.TextSpan.start","TypeScript.TextSpan.length","TypeScript.TextSpan.end","TypeScript.TextSpan.isEmpty","TypeScript.TextSpan.containsPosition","TypeScript.TextSpan.containsTextSpan","TypeScript.TextSpan.overlapsWith","TypeScript.TextSpan.overlap","TypeScript.TextSpan.intersectsWithTextSpan","TypeScript.TextSpan.intersectsWith","TypeScript.TextSpan.intersectsWithPosition","TypeScript.TextSpan.intersection","TypeScript.TextSpan.fromBounds","TypeScript.TextChangeRange","TypeScript.TextChangeRange.constructor","TypeScript.TextChangeRange.span","TypeScript.TextChangeRange.newLength","TypeScript.TextChangeRange.newSpan","TypeScript.TextChangeRange.isUnchanged","TypeScript.TextChangeRange.collapseChangesAcrossMultipleVersions","TypeScript.CharacterInfo","TypeScript.CharacterInfo.isDecimalDigit","TypeScript.CharacterInfo.isOctalDigit","TypeScript.CharacterInfo.isHexDigit","TypeScript.CharacterInfo.hexValue","TypeScript.CharacterInfo.isWhitespace","TypeScript.CharacterInfo.isLineTerminator","TypeScript.ParserContextFlags","TypeScript.SyntaxNodeConstants","TypeScript.FormattingOptions","TypeScript.FormattingOptions.constructor","TypeScript.SyntaxKind","TypeScript.SyntaxFacts","TypeScript.SyntaxFacts.getTokenKind","TypeScript.SyntaxFacts.getText","TypeScript.SyntaxFacts.isAnyKeyword","TypeScript.SyntaxFacts.isAnyPunctuation","TypeScript.SyntaxFacts.isPrefixUnaryExpressionOperatorToken","TypeScript.SyntaxFacts.isBinaryExpressionOperatorToken","TypeScript.SyntaxFacts.isAssignmentOperatorToken","TypeScript.SyntaxFacts.isType","TypeScript.ScannerUtilities","TypeScript.ScannerUtilities.identifierKind","TypeScript.Scanner","TypeScript.Scanner.ScannerConstants","TypeScript.Scanner.largeTokenPackData","TypeScript.Scanner.largeTokenUnpackFullWidth","TypeScript.Scanner.largeTokenUnpackLeadingTriviaInfo","TypeScript.Scanner.largeTokenUnpackHasLeadingTrivia","TypeScript.Scanner.hasComment","TypeScript.Scanner.hasNewLine","TypeScript.Scanner.largeTokenUnpackHasLeadingNewLine","TypeScript.Scanner.largeTokenUnpackHasLeadingComment","TypeScript.Scanner.isContextualToken","TypeScript.Scanner.fillSizeInfo","TypeScript.Scanner.fullText","TypeScript.Scanner.leadingTrivia","TypeScript.Scanner.leadingTriviaWidth","TypeScript.Scanner.tokenIsIncrementallyUnusable","TypeScript.Scanner.FixedWidthTokenWithNoTrivia","TypeScript.Scanner.FixedWidthTokenWithNoTrivia.constructor","TypeScript.Scanner.FixedWidthTokenWithNoTrivia.setFullStart","TypeScript.Scanner.FixedWidthTokenWithNoTrivia.childAt","TypeScript.Scanner.FixedWidthTokenWithNoTrivia.isIncrementallyUnusable","TypeScript.Scanner.FixedWidthTokenWithNoTrivia.isKeywordConvertedToIdentifier","TypeScript.Scanner.FixedWidthTokenWithNoTrivia.fullText","TypeScript.Scanner.FixedWidthTokenWithNoTrivia.text","TypeScript.Scanner.FixedWidthTokenWithNoTrivia.leadingTrivia","TypeScript.Scanner.FixedWidthTokenWithNoTrivia.leadingTriviaWidth","TypeScript.Scanner.FixedWidthTokenWithNoTrivia.fullWidth","TypeScript.Scanner.FixedWidthTokenWithNoTrivia.fullStart","TypeScript.Scanner.FixedWidthTokenWithNoTrivia.hasLeadingTrivia","TypeScript.Scanner.FixedWidthTokenWithNoTrivia.hasLeadingNewLine","TypeScript.Scanner.FixedWidthTokenWithNoTrivia.hasLeadingSkippedToken","TypeScript.Scanner.FixedWidthTokenWithNoTrivia.hasLeadingComment","TypeScript.Scanner.FixedWidthTokenWithNoTrivia.clone","TypeScript.Scanner.LargeScannerToken","TypeScript.Scanner.LargeScannerToken.constructor","TypeScript.Scanner.LargeScannerToken.setFullStart","TypeScript.Scanner.LargeScannerToken.childAt","TypeScript.Scanner.LargeScannerToken.syntaxTreeText","TypeScript.Scanner.LargeScannerToken.isIncrementallyUnusable","TypeScript.Scanner.LargeScannerToken.isKeywordConvertedToIdentifier","TypeScript.Scanner.LargeScannerToken.fullText","TypeScript.Scanner.LargeScannerToken.text","TypeScript.Scanner.LargeScannerToken.leadingTrivia","TypeScript.Scanner.LargeScannerToken.leadingTriviaWidth","TypeScript.Scanner.LargeScannerToken.fullWidth","TypeScript.Scanner.LargeScannerToken.fullStart","TypeScript.Scanner.LargeScannerToken.hasLeadingTrivia","TypeScript.Scanner.LargeScannerToken.hasLeadingNewLine","TypeScript.Scanner.LargeScannerToken.hasLeadingComment","TypeScript.Scanner.LargeScannerToken.hasLeadingSkippedToken","TypeScript.Scanner.LargeScannerToken.clone","TypeScript.Scanner.createScanner","TypeScript.Scanner.createScannerInternal","TypeScript.Scanner.createScannerInternal.setIndex","TypeScript.Scanner.createScannerInternal.reset","TypeScript.Scanner.createScannerInternal.scan","TypeScript.Scanner.createScannerInternal.scanTrivia","TypeScript.Scanner.createScannerInternal.scanTriviaInfo","TypeScript.Scanner.createScannerInternal.slowScanWhitespaceTriviaInfo","TypeScript.Scanner.createScannerInternal.isNewLineCharacter","TypeScript.Scanner.createScannerInternal.scanWhitespaceTrivia","TypeScript.Scanner.createScannerInternal.createTrivia","TypeScript.Scanner.createScannerInternal.scanSingleLineCommentTrivia","TypeScript.Scanner.createScannerInternal.skipSingleLineCommentTrivia","TypeScript.Scanner.createScannerInternal.scanMultiLineCommentTrivia","TypeScript.Scanner.createScannerInternal.skipMultiLineCommentTrivia","TypeScript.Scanner.createScannerInternal.scanLineTerminatorSequenceTrivia","TypeScript.Scanner.createScannerInternal.skipLineTerminatorSequence","TypeScript.Scanner.createScannerInternal.scanSyntaxKind","TypeScript.Scanner.createScannerInternal.isIdentifierStart","TypeScript.Scanner.createScannerInternal.isIdentifierPart","TypeScript.Scanner.createScannerInternal.tryFastScanIdentifierOrKeyword","TypeScript.Scanner.createScannerInternal.slowScanIdentifierOrKeyword","TypeScript.Scanner.createScannerInternal.scanNumericLiteral","TypeScript.Scanner.createScannerInternal.isOctalNumericLiteral","TypeScript.Scanner.createScannerInternal.scanOctalNumericLiteral","TypeScript.Scanner.createScannerInternal.scanDecimalDigits","TypeScript.Scanner.createScannerInternal.scanDecimalNumericLiteral","TypeScript.Scanner.createScannerInternal.scanDecimalNumericLiteralAfterDot","TypeScript.Scanner.createScannerInternal.scanHexNumericLiteral","TypeScript.Scanner.createScannerInternal.isHexNumericLiteral","TypeScript.Scanner.createScannerInternal.scanLessThanToken","TypeScript.Scanner.createScannerInternal.scanGreaterThanToken","TypeScript.Scanner.createScannerInternal.scanBarToken","TypeScript.Scanner.createScannerInternal.scanCaretToken","TypeScript.Scanner.createScannerInternal.scanCloseBraceToken","TypeScript.Scanner.createScannerInternal.scanTemplateToken","TypeScript.Scanner.createScannerInternal.scanAmpersandToken","TypeScript.Scanner.createScannerInternal.scanPercentToken","TypeScript.Scanner.createScannerInternal.scanMinusToken","TypeScript.Scanner.createScannerInternal.scanPlusToken","TypeScript.Scanner.createScannerInternal.scanAsteriskToken","TypeScript.Scanner.createScannerInternal.scanEqualsToken","TypeScript.Scanner.createScannerInternal.scanDotToken","TypeScript.Scanner.createScannerInternal.scanSlashToken","TypeScript.Scanner.createScannerInternal.scanRegularExpressionToken","TypeScript.Scanner.createScannerInternal.scanExclamationToken","TypeScript.Scanner.createScannerInternal.getErrorMessageText","TypeScript.Scanner.createScannerInternal.skipEscapeSequence","TypeScript.Scanner.createScannerInternal.scanStringLiteral","TypeScript.Scanner.createScannerInternal.isUnicodeEscape","TypeScript.Scanner.createScannerInternal.peekCharOrUnicodeEscape","TypeScript.Scanner.createScannerInternal.peekUnicodeOrHexEscape","TypeScript.Scanner.createScannerInternal.scanCharOrUnicodeEscape","TypeScript.Scanner.createScannerInternal.scanUnicodeOrHexEscape","TypeScript.Scanner.createScannerInternal.fillTokenInfo","TypeScript.Scanner.isValidIdentifier","TypeScript.Scanner.createParserSource","TypeScript.Scanner.createParserSource.release","TypeScript.Scanner.createParserSource.currentNode","TypeScript.Scanner.createParserSource.absolutePosition","TypeScript.Scanner.createParserSource.tokenDiagnostics","TypeScript.Scanner.createParserSource.getOrCreateRewindPoint","TypeScript.Scanner.createParserSource.getRewindPoint","TypeScript.Scanner.createParserSource.rewind","TypeScript.Scanner.createParserSource.releaseRewindPoint","TypeScript.Scanner.createParserSource.fetchNextItem","TypeScript.Scanner.createParserSource.peekToken","TypeScript.Scanner.createParserSource.consumeNodeOrToken","TypeScript.Scanner.createParserSource.currentToken","TypeScript.Scanner.createParserSource.removeDiagnosticsOnOrAfterPosition","TypeScript.Scanner.createParserSource.resetToPosition","TypeScript.Scanner.createParserSource.currentContextualToken","TypeScript.Scanner.fixedWidthTokenLength","TypeScript.SlidingWindow","TypeScript.SlidingWindow.constructor","TypeScript.SlidingWindow.addMoreItemsToWindow","TypeScript.SlidingWindow.tryShiftOrGrowWindow","TypeScript.SlidingWindow.absoluteIndex","TypeScript.SlidingWindow.isAtEndOfSource","TypeScript.SlidingWindow.getAndPinAbsoluteIndex","TypeScript.SlidingWindow.releaseAndUnpinAbsoluteIndex","TypeScript.SlidingWindow.rewindToPinnedIndex","TypeScript.SlidingWindow.currentItem","TypeScript.SlidingWindow.currentItemWithoutFetching","TypeScript.SlidingWindow.peekItemN","TypeScript.SlidingWindow.moveToNextItem","TypeScript.SlidingWindow.disgardAllItemsFromCurrentIndexOnwards","TypeScript.Syntax","TypeScript.Syntax.nodeHasSkippedOrMissingTokens","TypeScript.Syntax.isUnterminatedStringLiteral","TypeScript.Syntax.isUnterminatedMultilineCommentTrivia","TypeScript.Syntax.isEntirelyInsideCommentTrivia","TypeScript.Syntax.getAncestorOfKind","TypeScript.Syntax.hasAncestorOfKind","TypeScript.Syntax.isIntegerLiteral","TypeScript.Syntax.containingNode","TypeScript.Syntax.findTokenOnLeft","TypeScript.Syntax.findCompleteTokenOnLeft","TypeScript.syntaxTree","TypeScript.parserContextFlags","TypeScript.parsedInStrictModeContext","TypeScript.parsedInDisallowInContext","TypeScript.parsedInYieldContext","TypeScript.parsedInGeneratorParameterContext","TypeScript.parsedInAsyncContext","TypeScript.previousToken","TypeScript.findToken","TypeScript.findTokenWorker","TypeScript.findTokenInList","TypeScript.findTokenInNodeOrToken","TypeScript.tryGetEndOfFileAt","TypeScript.nextToken","TypeScript.isNode","TypeScript.isTokenKind","TypeScript.isToken","TypeScript.isList","TypeScript.syntaxID","TypeScript.collectTextElements","TypeScript.fullText","TypeScript.leadingTriviaWidth","TypeScript.firstToken","TypeScript.lastToken","TypeScript.fullStart","TypeScript.fullWidth","TypeScript.isIncrementallyUnusable","TypeScript.data","TypeScript.combineData","TypeScript.listComputeData","TypeScript.computeData","TypeScript.nodeOrTokenComputeData","TypeScript.start","TypeScript.width","TypeScript.fullEnd","TypeScript.existsNewLineBetweenTokens","TypeScript.SyntaxFacts.isDirectivePrologueElement","TypeScript.SyntaxFacts.isUseStrictDirective","TypeScript.SyntaxFacts.isIdentifierNameOrAnyKeyword","TypeScript.SyntaxFacts.isAccessibilityModifier","TypeScript.separatorCount","TypeScript.nonSeparatorCount","TypeScript.separatorAt","TypeScript.nonSeparatorAt","TypeScript.Syntax.addArrayPrototypeValue","TypeScript.Syntax.list","TypeScript.Syntax.separatedList","TypeScript.tokenValue","TypeScript.tokenValueText","TypeScript.massageTemplate","TypeScript.massageEscapes","TypeScript.regularExpressionValue","TypeScript.massageDisallowedIdentifiers","TypeScript.convertEscapes","TypeScript.hexValue","TypeScript.Syntax.realizeToken","TypeScript.Syntax.convertKeywordToIdentifier","TypeScript.Syntax.withLeadingTrivia","TypeScript.Syntax.emptyToken","TypeScript.Syntax.EmptyToken","TypeScript.Syntax.EmptyToken.constructor","TypeScript.Syntax.EmptyToken.setFullStart","TypeScript.Syntax.EmptyToken.childAt","TypeScript.Syntax.EmptyToken.clone","TypeScript.Syntax.EmptyToken.isIncrementallyUnusable","TypeScript.Syntax.EmptyToken.isKeywordConvertedToIdentifier","TypeScript.Syntax.EmptyToken.fullWidth","TypeScript.Syntax.EmptyToken.fullStart","TypeScript.Syntax.EmptyToken.text","TypeScript.Syntax.EmptyToken.fullText","TypeScript.Syntax.EmptyToken.hasLeadingTrivia","TypeScript.Syntax.EmptyToken.hasLeadingNewLine","TypeScript.Syntax.EmptyToken.hasLeadingComment","TypeScript.Syntax.EmptyToken.hasLeadingSkippedToken","TypeScript.Syntax.EmptyToken.leadingTriviaWidth","TypeScript.Syntax.EmptyToken.leadingTrivia","TypeScript.Syntax.RealizedToken","TypeScript.Syntax.RealizedToken.constructor","TypeScript.Syntax.RealizedToken.setFullStart","TypeScript.Syntax.RealizedToken.childAt","TypeScript.Syntax.RealizedToken.clone","TypeScript.Syntax.RealizedToken.isIncrementallyUnusable","TypeScript.Syntax.RealizedToken.isKeywordConvertedToIdentifier","TypeScript.Syntax.RealizedToken.fullStart","TypeScript.Syntax.RealizedToken.fullWidth","TypeScript.Syntax.RealizedToken.text","TypeScript.Syntax.RealizedToken.fullText","TypeScript.Syntax.RealizedToken.hasLeadingTrivia","TypeScript.Syntax.RealizedToken.hasLeadingNewLine","TypeScript.Syntax.RealizedToken.hasLeadingComment","TypeScript.Syntax.RealizedToken.hasLeadingSkippedToken","TypeScript.Syntax.RealizedToken.leadingTrivia","TypeScript.Syntax.RealizedToken.leadingTriviaWidth","TypeScript.Syntax.ConvertedKeywordToken","TypeScript.Syntax.ConvertedKeywordToken.constructor","TypeScript.Syntax.ConvertedKeywordToken.setFullStart","TypeScript.Syntax.ConvertedKeywordToken.childAt","TypeScript.Syntax.ConvertedKeywordToken.fullStart","TypeScript.Syntax.ConvertedKeywordToken.fullWidth","TypeScript.Syntax.ConvertedKeywordToken.text","TypeScript.Syntax.ConvertedKeywordToken.syntaxTreeText","TypeScript.Syntax.ConvertedKeywordToken.fullText","TypeScript.Syntax.ConvertedKeywordToken.hasLeadingTrivia","TypeScript.Syntax.ConvertedKeywordToken.hasLeadingNewLine","TypeScript.Syntax.ConvertedKeywordToken.hasLeadingComment","TypeScript.Syntax.ConvertedKeywordToken.hasLeadingSkippedToken","TypeScript.Syntax.ConvertedKeywordToken.leadingTrivia","TypeScript.Syntax.ConvertedKeywordToken.leadingTriviaWidth","TypeScript.Syntax.ConvertedKeywordToken.isKeywordConvertedToIdentifier","TypeScript.Syntax.ConvertedKeywordToken.isIncrementallyUnusable","TypeScript.Syntax.ConvertedKeywordToken.clone","TypeScript.Syntax.AbstractTrivia","TypeScript.Syntax.AbstractTrivia.constructor","TypeScript.Syntax.AbstractTrivia.clone","TypeScript.Syntax.AbstractTrivia.fullStart","TypeScript.Syntax.AbstractTrivia.fullWidth","TypeScript.Syntax.AbstractTrivia.fullText","TypeScript.Syntax.AbstractTrivia.skippedToken","TypeScript.Syntax.AbstractTrivia.isWhitespace","TypeScript.Syntax.AbstractTrivia.isComment","TypeScript.Syntax.AbstractTrivia.isNewLine","TypeScript.Syntax.AbstractTrivia.isSkippedToken","TypeScript.Syntax.SkippedTokenTrivia","TypeScript.Syntax.SkippedTokenTrivia.constructor","TypeScript.Syntax.SkippedTokenTrivia.clone","TypeScript.Syntax.SkippedTokenTrivia.fullStart","TypeScript.Syntax.SkippedTokenTrivia.fullWidth","TypeScript.Syntax.SkippedTokenTrivia.fullText","TypeScript.Syntax.SkippedTokenTrivia.skippedToken","TypeScript.Syntax.DeferredTrivia","TypeScript.Syntax.DeferredTrivia.constructor","TypeScript.Syntax.DeferredTrivia.clone","TypeScript.Syntax.DeferredTrivia.fullStart","TypeScript.Syntax.DeferredTrivia.fullWidth","TypeScript.Syntax.DeferredTrivia.fullText","TypeScript.Syntax.DeferredTrivia.skippedToken","TypeScript.Syntax.deferredTrivia","TypeScript.Syntax.skippedTokenTrivia","TypeScript.Syntax.splitMultiLineCommentTriviaIntoMultipleLines","TypeScript.Syntax.EmptyTriviaList","TypeScript.Syntax.EmptyTriviaList.constructor","TypeScript.Syntax.EmptyTriviaList.isShared","TypeScript.Syntax.EmptyTriviaList.count","TypeScript.Syntax.EmptyTriviaList.syntaxTriviaAt","TypeScript.Syntax.EmptyTriviaList.last","TypeScript.Syntax.EmptyTriviaList.fullWidth","TypeScript.Syntax.EmptyTriviaList.fullText","TypeScript.Syntax.EmptyTriviaList.hasComment","TypeScript.Syntax.EmptyTriviaList.hasNewLine","TypeScript.Syntax.EmptyTriviaList.hasSkippedToken","TypeScript.Syntax.EmptyTriviaList.toArray","TypeScript.Syntax.EmptyTriviaList.clone","TypeScript.Syntax.isComment","TypeScript.Syntax.SingletonSyntaxTriviaList","TypeScript.Syntax.SingletonSyntaxTriviaList.constructor","TypeScript.Syntax.SingletonSyntaxTriviaList.isShared","TypeScript.Syntax.SingletonSyntaxTriviaList.count","TypeScript.Syntax.SingletonSyntaxTriviaList.syntaxTriviaAt","TypeScript.Syntax.SingletonSyntaxTriviaList.last","TypeScript.Syntax.SingletonSyntaxTriviaList.fullWidth","TypeScript.Syntax.SingletonSyntaxTriviaList.fullText","TypeScript.Syntax.SingletonSyntaxTriviaList.hasComment","TypeScript.Syntax.SingletonSyntaxTriviaList.hasNewLine","TypeScript.Syntax.SingletonSyntaxTriviaList.hasSkippedToken","TypeScript.Syntax.SingletonSyntaxTriviaList.toArray","TypeScript.Syntax.SingletonSyntaxTriviaList.clone","TypeScript.Syntax.NormalSyntaxTriviaList","TypeScript.Syntax.NormalSyntaxTriviaList.constructor","TypeScript.Syntax.NormalSyntaxTriviaList.isShared","TypeScript.Syntax.NormalSyntaxTriviaList.count","TypeScript.Syntax.NormalSyntaxTriviaList.syntaxTriviaAt","TypeScript.Syntax.NormalSyntaxTriviaList.last","TypeScript.Syntax.NormalSyntaxTriviaList.fullWidth","TypeScript.Syntax.NormalSyntaxTriviaList.fullText","TypeScript.Syntax.NormalSyntaxTriviaList.hasComment","TypeScript.Syntax.NormalSyntaxTriviaList.hasNewLine","TypeScript.Syntax.NormalSyntaxTriviaList.hasSkippedToken","TypeScript.Syntax.NormalSyntaxTriviaList.toArray","TypeScript.Syntax.NormalSyntaxTriviaList.clone","TypeScript.Syntax.triviaList","TypeScript.childCount","TypeScript.childAt","TypeScript.SyntaxUtilities","TypeScript.SyntaxUtilities.isAnyFunctionExpressionOrDeclaration","TypeScript.SyntaxUtilities.isLastTokenOnLine","TypeScript.SyntaxUtilities.isLeftHandSizeExpression","TypeScript.SyntaxUtilities.isSwitchClause","TypeScript.SyntaxUtilities.isTypeMember","TypeScript.SyntaxUtilities.isClassElement","TypeScript.SyntaxUtilities.isModuleElement","TypeScript.SyntaxUtilities.isStatement","TypeScript.SyntaxUtilities.isAngleBracket","TypeScript.SyntaxUtilities.getToken","TypeScript.SyntaxUtilities.containsToken","TypeScript.SyntaxUtilities.hasExportKeyword","TypeScript.SyntaxUtilities.getExportKeyword","TypeScript.SyntaxUtilities.isAmbientDeclarationSyntax","TypeScript.visitNodeOrToken","TypeScript.SyntaxWalker","TypeScript.SyntaxWalker.constructor","TypeScript.SyntaxWalker.visitToken","TypeScript.SyntaxWalker.visitOptionalToken","TypeScript.SyntaxWalker.visitList","TypeScript.SyntaxWalker.visitSourceUnit","TypeScript.SyntaxWalker.visitQualifiedName","TypeScript.SyntaxWalker.visitObjectType","TypeScript.SyntaxWalker.visitFunctionType","TypeScript.SyntaxWalker.visitArrayType","TypeScript.SyntaxWalker.visitConstructorType","TypeScript.SyntaxWalker.visitGenericType","TypeScript.SyntaxWalker.visitTypeQuery","TypeScript.SyntaxWalker.visitTupleType","TypeScript.SyntaxWalker.visitUnionType","TypeScript.SyntaxWalker.visitParenthesizedType","TypeScript.SyntaxWalker.visitInterfaceDeclaration","TypeScript.SyntaxWalker.visitFunctionDeclaration","TypeScript.SyntaxWalker.visitModuleDeclaration","TypeScript.SyntaxWalker.visitClassDeclaration","TypeScript.SyntaxWalker.visitEnumDeclaration","TypeScript.SyntaxWalker.visitImportDeclaration","TypeScript.SyntaxWalker.visitExportAssignment","TypeScript.SyntaxWalker.visitMemberFunctionDeclaration","TypeScript.SyntaxWalker.visitMemberVariableDeclaration","TypeScript.SyntaxWalker.visitConstructorDeclaration","TypeScript.SyntaxWalker.visitIndexMemberDeclaration","TypeScript.SyntaxWalker.visitGetAccessor","TypeScript.SyntaxWalker.visitSetAccessor","TypeScript.SyntaxWalker.visitPropertySignature","TypeScript.SyntaxWalker.visitCallSignature","TypeScript.SyntaxWalker.visitConstructSignature","TypeScript.SyntaxWalker.visitIndexSignature","TypeScript.SyntaxWalker.visitMethodSignature","TypeScript.SyntaxWalker.visitBlock","TypeScript.SyntaxWalker.visitIfStatement","TypeScript.SyntaxWalker.visitVariableStatement","TypeScript.SyntaxWalker.visitExpressionStatement","TypeScript.SyntaxWalker.visitReturnStatement","TypeScript.SyntaxWalker.visitSwitchStatement","TypeScript.SyntaxWalker.visitBreakStatement","TypeScript.SyntaxWalker.visitContinueStatement","TypeScript.SyntaxWalker.visitForStatement","TypeScript.SyntaxWalker.visitForInStatement","TypeScript.SyntaxWalker.visitEmptyStatement","TypeScript.SyntaxWalker.visitThrowStatement","TypeScript.SyntaxWalker.visitWhileStatement","TypeScript.SyntaxWalker.visitTryStatement","TypeScript.SyntaxWalker.visitLabeledStatement","TypeScript.SyntaxWalker.visitDoStatement","TypeScript.SyntaxWalker.visitDebuggerStatement","TypeScript.SyntaxWalker.visitWithStatement","TypeScript.SyntaxWalker.visitPrefixUnaryExpression","TypeScript.SyntaxWalker.visitDeleteExpression","TypeScript.SyntaxWalker.visitTypeOfExpression","TypeScript.SyntaxWalker.visitVoidExpression","TypeScript.SyntaxWalker.visitConditionalExpression","TypeScript.SyntaxWalker.visitBinaryExpression","TypeScript.SyntaxWalker.visitPostfixUnaryExpression","TypeScript.SyntaxWalker.visitMemberAccessExpression","TypeScript.SyntaxWalker.visitInvocationExpression","TypeScript.SyntaxWalker.visitArrayLiteralExpression","TypeScript.SyntaxWalker.visitObjectLiteralExpression","TypeScript.SyntaxWalker.visitObjectCreationExpression","TypeScript.SyntaxWalker.visitParenthesizedExpression","TypeScript.SyntaxWalker.visitParenthesizedArrowFunctionExpression","TypeScript.SyntaxWalker.visitSimpleArrowFunctionExpression","TypeScript.SyntaxWalker.visitCastExpression","TypeScript.SyntaxWalker.visitElementAccessExpression","TypeScript.SyntaxWalker.visitFunctionExpression","TypeScript.SyntaxWalker.visitOmittedExpression","TypeScript.SyntaxWalker.visitTemplateExpression","TypeScript.SyntaxWalker.visitTemplateAccessExpression","TypeScript.SyntaxWalker.visitYieldExpression","TypeScript.SyntaxWalker.visitAwaitExpression","TypeScript.SyntaxWalker.visitVariableDeclaration","TypeScript.SyntaxWalker.visitVariableDeclarator","TypeScript.SyntaxWalker.visitArgumentList","TypeScript.SyntaxWalker.visitParameterList","TypeScript.SyntaxWalker.visitTypeArgumentList","TypeScript.SyntaxWalker.visitTypeParameterList","TypeScript.SyntaxWalker.visitHeritageClause","TypeScript.SyntaxWalker.visitEqualsValueClause","TypeScript.SyntaxWalker.visitCaseSwitchClause","TypeScript.SyntaxWalker.visitDefaultSwitchClause","TypeScript.SyntaxWalker.visitElseClause","TypeScript.SyntaxWalker.visitCatchClause","TypeScript.SyntaxWalker.visitFinallyClause","TypeScript.SyntaxWalker.visitTemplateClause","TypeScript.SyntaxWalker.visitTypeParameter","TypeScript.SyntaxWalker.visitConstraint","TypeScript.SyntaxWalker.visitParameter","TypeScript.SyntaxWalker.visitEnumElement","TypeScript.SyntaxWalker.visitTypeAnnotation","TypeScript.SyntaxWalker.visitExpressionBody","TypeScript.SyntaxWalker.visitComputedPropertyName","TypeScript.SyntaxWalker.visitPropertyAssignment","TypeScript.SyntaxWalker.visitExternalModuleReference","TypeScript.SyntaxWalker.visitModuleNameModuleReference","TypeScript.Parser","TypeScript.Parser.createParseSyntaxTree","TypeScript.Parser.createParseSyntaxTree.setContextFlag","TypeScript.Parser.createParseSyntaxTree.setStrictModeContext","TypeScript.Parser.createParseSyntaxTree.setDisallowInContext","TypeScript.Parser.createParseSyntaxTree.setYieldContext","TypeScript.Parser.createParseSyntaxTree.setGeneratorParameterContext","TypeScript.Parser.createParseSyntaxTree.setAsyncContext","TypeScript.Parser.createParseSyntaxTree.inStrictModeContext","TypeScript.Parser.createParseSyntaxTree.inDisallowInContext","TypeScript.Parser.createParseSyntaxTree.inYieldContext","TypeScript.Parser.createParseSyntaxTree.inGeneratorParameterContext","TypeScript.Parser.createParseSyntaxTree.inAsyncContext","TypeScript.Parser.createParseSyntaxTree.allowInAnd","TypeScript.Parser.createParseSyntaxTree.disallowInAnd","TypeScript.Parser.createParseSyntaxTree.doInsideYieldContext","TypeScript.Parser.createParseSyntaxTree.doOutsideYieldContext","TypeScript.Parser.createParseSyntaxTree.doInsideAsyncContext","TypeScript.Parser.createParseSyntaxTree.doOutsideAsyncContext","TypeScript.Parser.createParseSyntaxTree.parseSyntaxTree","TypeScript.Parser.createParseSyntaxTree.parseSyntaxTreeWorker","TypeScript.Parser.createParseSyntaxTree.getRewindPoint","TypeScript.Parser.createParseSyntaxTree.rewind","TypeScript.Parser.createParseSyntaxTree.releaseRewindPoint","TypeScript.Parser.createParseSyntaxTree.currentNode","TypeScript.Parser.createParseSyntaxTree.currentToken","TypeScript.Parser.createParseSyntaxTree.currentContextualToken","TypeScript.Parser.createParseSyntaxTree.peekToken","TypeScript.Parser.createParseSyntaxTree.skipToken","TypeScript.Parser.createParseSyntaxTree.consumeToken","TypeScript.Parser.createParseSyntaxTree.addSkippedTokensBeforeToken","TypeScript.Parser.createParseSyntaxTree.addSkippedTokenToTriviaArray","TypeScript.Parser.createParseSyntaxTree.addTriviaTo","TypeScript.Parser.createParseSyntaxTree.consumeNode","TypeScript.Parser.createParseSyntaxTree.eatToken","TypeScript.Parser.createParseSyntaxTree.tryEatToken","TypeScript.Parser.createParseSyntaxTree.isIdentifier","TypeScript.Parser.createParseSyntaxTree.eatIdentifierNameToken","TypeScript.Parser.createParseSyntaxTree.eatOptionalIdentifierToken","TypeScript.Parser.createParseSyntaxTree.eatIdentifierToken","TypeScript.Parser.createParseSyntaxTree.canEatAutomaticSemicolon","TypeScript.Parser.createParseSyntaxTree.canEatExplicitOrAutomaticSemicolon","TypeScript.Parser.createParseSyntaxTree.eatExplicitOrAutomaticSemicolon","TypeScript.Parser.createParseSyntaxTree.createEmptyToken","TypeScript.Parser.createParseSyntaxTree.createMissingToken","TypeScript.Parser.createParseSyntaxTree.getExpectedTokenDiagnostic","TypeScript.Parser.createParseSyntaxTree.getBinaryExpressionPrecedence","TypeScript.Parser.createParseSyntaxTree.parseSourceUnit","TypeScript.Parser.createParseSyntaxTree.isDirectivePrologueElement","TypeScript.Parser.createParseSyntaxTree.updateStrictModeState","TypeScript.Parser.createParseSyntaxTree.isModuleElement","TypeScript.Parser.createParseSyntaxTree.tryParseModuleElement","TypeScript.Parser.createParseSyntaxTree.parseImportDeclaration","TypeScript.Parser.createParseSyntaxTree.parseExportAssignment","TypeScript.Parser.createParseSyntaxTree.parseModuleReference","TypeScript.Parser.createParseSyntaxTree.isExternalModuleReference","TypeScript.Parser.createParseSyntaxTree.parseExternalModuleReference","TypeScript.Parser.createParseSyntaxTree.parseModuleNameModuleReference","TypeScript.Parser.createParseSyntaxTree.tryParseTypeArgumentList","TypeScript.Parser.createParseSyntaxTree.canFollowTypeArgumentListInExpression","TypeScript.Parser.createParseSyntaxTree.parseName","TypeScript.Parser.createParseSyntaxTree.eatRightSideOfName","TypeScript.Parser.createParseSyntaxTree.tryParseName","TypeScript.Parser.createParseSyntaxTree.parseEnumDeclaration","TypeScript.Parser.createParseSyntaxTree.isEnumElement","TypeScript.Parser.createParseSyntaxTree.tryParseEnumElementEqualsValueClause","TypeScript.Parser.createParseSyntaxTree.tryParseEnumElement","TypeScript.Parser.createParseSyntaxTree.isModifierKind","TypeScript.Parser.createParseSyntaxTree.isModifier","TypeScript.Parser.createParseSyntaxTree.isAtModifier","TypeScript.Parser.createParseSyntaxTree.modifierCount","TypeScript.Parser.createParseSyntaxTree.parseModifiers","TypeScript.Parser.createParseSyntaxTree.parseHeritageClauses","TypeScript.Parser.createParseSyntaxTree.parseHeritageClausesWorker","TypeScript.Parser.createParseSyntaxTree.tryParseHeritageClauseTypeName","TypeScript.Parser.createParseSyntaxTree.parseClassDeclaration","TypeScript.Parser.createParseSyntaxTree.parseClassElement","TypeScript.Parser.createParseSyntaxTree.parseClassElements","TypeScript.Parser.createParseSyntaxTree.isAccessor","TypeScript.Parser.createParseSyntaxTree.parseAccessor","TypeScript.Parser.createParseSyntaxTree.parseGetAccessor","TypeScript.Parser.createParseSyntaxTree.parseSetAccessor","TypeScript.Parser.createParseSyntaxTree.isClassElement","TypeScript.Parser.createParseSyntaxTree.isMemberVariableOrFunctionDeclaration","TypeScript.Parser.createParseSyntaxTree.tryParseClassElement","TypeScript.Parser.createParseSyntaxTree.isConstructorDeclaration","TypeScript.Parser.createParseSyntaxTree.parseConstructorDeclaration","TypeScript.Parser.createParseSyntaxTree.parseMemberFunctionDeclaration","TypeScript.Parser.createParseSyntaxTree.containsAsync","TypeScript.Parser.createParseSyntaxTree.parseMemberVariableDeclaration","TypeScript.Parser.createParseSyntaxTree.isIndexMemberDeclaration","TypeScript.Parser.createParseSyntaxTree.parseIndexMemberDeclaration","TypeScript.Parser.createParseSyntaxTree.isFunctionDeclaration","TypeScript.Parser.createParseSyntaxTree.parseFunctionDeclaration","TypeScript.Parser.createParseSyntaxTree.parseFunctionDeclarationWorker","TypeScript.Parser.createParseSyntaxTree.parseFunctionBody","TypeScript.Parser.createParseSyntaxTree.parseModuleName","TypeScript.Parser.createParseSyntaxTree.parseModuleDeclaration","TypeScript.Parser.createParseSyntaxTree.parseInterfaceDeclaration","TypeScript.Parser.createParseSyntaxTree.parseObjectType","TypeScript.Parser.createParseSyntaxTree.parseTupleType","TypeScript.Parser.createParseSyntaxTree.isTypeMember","TypeScript.Parser.createParseSyntaxTree.isMethodOrPropertySignature","TypeScript.Parser.createParseSyntaxTree.tryParseTypeMember","TypeScript.Parser.createParseSyntaxTree.parseConstructSignature","TypeScript.Parser.createParseSyntaxTree.parseIndexSignature","TypeScript.Parser.createParseSyntaxTree.parseMethodSignature","TypeScript.Parser.createParseSyntaxTree.parsePropertySignature","TypeScript.Parser.createParseSyntaxTree.isCallSignature","TypeScript.Parser.createParseSyntaxTree.isConstructSignature","TypeScript.Parser.createParseSyntaxTree.isIndexSignature","TypeScript.Parser.createParseSyntaxTree.isHeritageClause","TypeScript.Parser.createParseSyntaxTree.isNotHeritageClauseTypeName","TypeScript.Parser.createParseSyntaxTree.isHeritageClauseTypeName","TypeScript.Parser.createParseSyntaxTree.tryParseHeritageClause","TypeScript.Parser.createParseSyntaxTree.isInterfaceEnumClassModuleImportOrExport","TypeScript.Parser.createParseSyntaxTree.isStatement","TypeScript.Parser.createParseSyntaxTree.parseStatement","TypeScript.Parser.createParseSyntaxTree.tryParseStatement","TypeScript.Parser.createParseSyntaxTree.tryParseStatementWorker","TypeScript.Parser.createParseSyntaxTree.parseDebuggerStatement","TypeScript.Parser.createParseSyntaxTree.parseDoStatement","TypeScript.Parser.createParseSyntaxTree.isLabeledStatement","TypeScript.Parser.createParseSyntaxTree.parseLabeledStatement","TypeScript.Parser.createParseSyntaxTree.parseTryStatement","TypeScript.Parser.createParseSyntaxTree.parseCatchClauseBlock","TypeScript.Parser.createParseSyntaxTree.parseCatchClause","TypeScript.Parser.createParseSyntaxTree.parseFinallyClause","TypeScript.Parser.createParseSyntaxTree.parseWithStatement","TypeScript.Parser.createParseSyntaxTree.parseWhileStatement","TypeScript.Parser.createParseSyntaxTree.isEmptyStatement","TypeScript.Parser.createParseSyntaxTree.parseEmptyStatement","TypeScript.Parser.createParseSyntaxTree.parseForOrForInStatement","TypeScript.Parser.createParseSyntaxTree.tryParseForStatementCondition","TypeScript.Parser.createParseSyntaxTree.tryParseForStatementIncrementor","TypeScript.Parser.createParseSyntaxTree.tryEatBreakOrContinueLabel","TypeScript.Parser.createParseSyntaxTree.parseBreakStatement","TypeScript.Parser.createParseSyntaxTree.parseContinueStatement","TypeScript.Parser.createParseSyntaxTree.parseSwitchExpression","TypeScript.Parser.createParseSyntaxTree.parseSwitchStatement","TypeScript.Parser.createParseSyntaxTree.isSwitchClause","TypeScript.Parser.createParseSyntaxTree.tryParseSwitchClause","TypeScript.Parser.createParseSyntaxTree.parseCaseSwitchClause","TypeScript.Parser.createParseSyntaxTree.parseDefaultSwitchClause","TypeScript.Parser.createParseSyntaxTree.parseThrowStatement","TypeScript.Parser.createParseSyntaxTree.tryParseThrowStatementExpression","TypeScript.Parser.createParseSyntaxTree.parseReturnStatement","TypeScript.Parser.createParseSyntaxTree.tryParseReturnStatementExpression","TypeScript.Parser.createParseSyntaxTree.isExpressionStatement","TypeScript.Parser.createParseSyntaxTree.isAssignmentOrOmittedExpression","TypeScript.Parser.createParseSyntaxTree.tryParseAssignmentOrOmittedExpression","TypeScript.Parser.createParseSyntaxTree.isExpression","TypeScript.Parser.createParseSyntaxTree.parseExpressionStatement","TypeScript.Parser.createParseSyntaxTree.parseIfStatement","TypeScript.Parser.createParseSyntaxTree.parseOptionalElseClause","TypeScript.Parser.createParseSyntaxTree.parseElseClause","TypeScript.Parser.createParseSyntaxTree.isVariableStatement","TypeScript.Parser.createParseSyntaxTree.parseVariableStatement","TypeScript.Parser.createParseSyntaxTree.parseVariableDeclaration","TypeScript.Parser.createParseSyntaxTree.isVariableDeclarator","TypeScript.Parser.createParseSyntaxTree.canReuseVariableDeclaratorNode","TypeScript.Parser.createParseSyntaxTree.tryParseVariableDeclarator","TypeScript.Parser.createParseSyntaxTree.isEqualsValueClause","TypeScript.Parser.createParseSyntaxTree.parseEqualsValueClause","TypeScript.Parser.createParseSyntaxTree.parseExpression","TypeScript.Parser.createParseSyntaxTree.tryParseAssignmentExpressionOrHigher","TypeScript.Parser.createParseSyntaxTree.parseAssignmentExpressionOrHigher","TypeScript.Parser.createParseSyntaxTree.tryParseAssignmentExpressionOrHigherWorker","TypeScript.Parser.createParseSyntaxTree.parsePossibleAwaitExpression","TypeScript.Parser.createParseSyntaxTree.parseAwaitExpression","TypeScript.Parser.createParseSyntaxTree.isYieldExpression","TypeScript.Parser.createParseSyntaxTree.isUnambiguouslyYieldOrAwaitExpression","TypeScript.Parser.createParseSyntaxTree.parseYieldExpression","TypeScript.Parser.createParseSyntaxTree.tryParseAnyArrowFunctionExpression","TypeScript.Parser.createParseSyntaxTree.tryParseUnaryExpressionOrHigher","TypeScript.Parser.createParseSyntaxTree.tryParseBinaryExpressionOrHigher","TypeScript.Parser.createParseSyntaxTree.parseConditionalExpressionRest","TypeScript.Parser.createParseSyntaxTree.parseBinaryExpressionRest","TypeScript.Parser.createParseSyntaxTree.currentOperatorToken","TypeScript.Parser.createParseSyntaxTree.tryParseMemberExpressionOrHigher","TypeScript.Parser.createParseSyntaxTree.parseCallExpressionRest","TypeScript.Parser.createParseSyntaxTree.parseMemberExpressionRest","TypeScript.Parser.createParseSyntaxTree.tryParseLeftHandSideExpressionOrHigher","TypeScript.Parser.createParseSyntaxTree.parseSuperExpression","TypeScript.Parser.createParseSyntaxTree.tryParsePostfixExpressionOrHigher","TypeScript.Parser.createParseSyntaxTree.tryParseGenericArgumentList","TypeScript.Parser.createParseSyntaxTree.tryParseArgumentList","TypeScript.Parser.createParseSyntaxTree.parseArgumentList","TypeScript.Parser.createParseSyntaxTree.tryParseArgumentListExpression","TypeScript.Parser.createParseSyntaxTree.parseElementAccessArgumentExpression","TypeScript.Parser.createParseSyntaxTree.parseElementAccessExpression","TypeScript.Parser.createParseSyntaxTree.tryParsePrimaryExpression","TypeScript.Parser.createParseSyntaxTree.reparseDivideAsRegularExpression","TypeScript.Parser.createParseSyntaxTree.parseTypeOfExpression","TypeScript.Parser.createParseSyntaxTree.parseDeleteExpression","TypeScript.Parser.createParseSyntaxTree.parseVoidExpression","TypeScript.Parser.createParseSyntaxTree.parseFunctionExpression","TypeScript.Parser.createParseSyntaxTree.tryEatFunctionExpressionIdentifier","TypeScript.Parser.createParseSyntaxTree.parseObjectCreationExpression","TypeScript.Parser.createParseSyntaxTree.parseTemplateExpression","TypeScript.Parser.createParseSyntaxTree.parseTemplateClause","TypeScript.Parser.createParseSyntaxTree.parseCastExpression","TypeScript.Parser.createParseSyntaxTree.parseParenthesizedExpression","TypeScript.Parser.createParseSyntaxTree.tryParseParenthesizedArrowFunctionExpression","TypeScript.Parser.createParseSyntaxTree.tryParseParenthesizedArrowFunctionExpressionWorker","TypeScript.Parser.createParseSyntaxTree.parseArrowFunctionBody","TypeScript.Parser.createParseSyntaxTree.isSimpleArrowFunctionExpression","TypeScript.Parser.createParseSyntaxTree.parseSimpleArrowFunctionExpression","TypeScript.Parser.createParseSyntaxTree.isFunctionBlock","TypeScript.Parser.createParseSyntaxTree.isBlockOrArrow","TypeScript.Parser.createParseSyntaxTree.isDefinitelyArrowFunctionExpression","TypeScript.Parser.createParseSyntaxTree.isPossiblyArrowFunctionExpression","TypeScript.Parser.createParseSyntaxTree.parseObjectLiteralExpression","TypeScript.Parser.createParseSyntaxTree.tryParsePropertyAssignment","TypeScript.Parser.createParseSyntaxTree.isPropertyAssignment","TypeScript.Parser.createParseSyntaxTree.isPropertyName","TypeScript.Parser.createParseSyntaxTree.isPropertyNameToken","TypeScript.Parser.createParseSyntaxTree.isLiteralPropertyName","TypeScript.Parser.createParseSyntaxTree.parsePropertyName","TypeScript.Parser.createParseSyntaxTree.parseComputedPropertyName","TypeScript.Parser.createParseSyntaxTree.parseArrayLiteralExpression","TypeScript.Parser.createParseSyntaxTree.parseStatementBlock","TypeScript.Parser.createParseSyntaxTree.parseFunctionBlockOrExpressionBody","TypeScript.Parser.createParseSyntaxTree.parseFunctionBlock","TypeScript.Parser.createParseSyntaxTree.parseFunctionBlockStatements","TypeScript.Parser.createParseSyntaxTree.parseCallSignature","TypeScript.Parser.createParseSyntaxTree.tryParseTypeParameterList","TypeScript.Parser.createParseSyntaxTree.isTypeParameter","TypeScript.Parser.createParseSyntaxTree.tryParseTypeParameter","TypeScript.Parser.createParseSyntaxTree.tryParseConstraint","TypeScript.Parser.createParseSyntaxTree.parseParameterList","TypeScript.Parser.createParseSyntaxTree.parseOptionalTypeAnnotation","TypeScript.Parser.createParseSyntaxTree.parseTypeAnnotationType","TypeScript.Parser.createParseSyntaxTree.parseTypeAnnotation","TypeScript.Parser.createParseSyntaxTree.isType","TypeScript.Parser.createParseSyntaxTree.parseTypeOrExpression","TypeScript.Parser.createParseSyntaxTree.parseType","TypeScript.Parser.createParseSyntaxTree.tryParseType","TypeScript.Parser.createParseSyntaxTree.tryParseTypeWorker","TypeScript.Parser.createParseSyntaxTree.tryParseUnionTypeOrHigher","TypeScript.Parser.createParseSyntaxTree.parsePrimaryType","TypeScript.Parser.createParseSyntaxTree.tryParsePrimaryType","TypeScript.Parser.createParseSyntaxTree.parseTypeQuery","TypeScript.Parser.createParseSyntaxTree.tryParseNonArrayType","TypeScript.Parser.createParseSyntaxTree.parseParenthesizedType","TypeScript.Parser.createParseSyntaxTree.tryParseNameOrGenericType","TypeScript.Parser.createParseSyntaxTree.isFunctionType","TypeScript.Parser.createParseSyntaxTree.parseFunctionType","TypeScript.Parser.createParseSyntaxTree.parseConstructorType","TypeScript.Parser.createParseSyntaxTree.isParameter","TypeScript.Parser.createParseSyntaxTree.isParameterHelper","TypeScript.Parser.createParseSyntaxTree.eatSimpleParameter","TypeScript.Parser.createParseSyntaxTree.tryParseParameter","TypeScript.Parser.createParseSyntaxTree.parseSyntaxList","TypeScript.Parser.createParseSyntaxTree.parseSeparatedSyntaxList","TypeScript.Parser.createParseSyntaxTree.abortParsingListOrMoveToNextToken","TypeScript.Parser.createParseSyntaxTree.tryParseExpectedListItem","TypeScript.Parser.createParseSyntaxTree.listIsTerminated","TypeScript.Parser.createParseSyntaxTree.parseSyntaxListWorker","TypeScript.Parser.createParseSyntaxTree.parseSeparatedSyntaxListWorker","TypeScript.Parser.createParseSyntaxTree.reportUnexpectedTokenDiagnostic","TypeScript.Parser.createParseSyntaxTree.addDiagnostic","TypeScript.Parser.createParseSyntaxTree.isExpectedListTerminator","TypeScript.Parser.createParseSyntaxTree.isExpectedSourceUnit_ModuleElementsTerminator","TypeScript.Parser.createParseSyntaxTree.isExpectedEnumDeclaration_EnumElementsTerminator","TypeScript.Parser.createParseSyntaxTree.isExpectedModuleDeclaration_ModuleElementsTerminator","TypeScript.Parser.createParseSyntaxTree.isExpectedObjectType_TypeMembersTerminator","TypeScript.Parser.createParseSyntaxTree.isExpectedObjectLiteralExpression_PropertyAssignmentsTerminator","TypeScript.Parser.createParseSyntaxTree.isExpectedLiteralExpression_AssignmentExpressionsTerminator","TypeScript.Parser.createParseSyntaxTree.isExpectedTypeArgumentList_TypesTerminator","TypeScript.Parser.createParseSyntaxTree.isExpectedTupleType_TypesTerminator","TypeScript.Parser.createParseSyntaxTree.isExpectedTypeParameterList_TypeParametersTerminator","TypeScript.Parser.createParseSyntaxTree.isExpectedParameterList_ParametersTerminator","TypeScript.Parser.createParseSyntaxTree.isExpectedIndexSignature_ParametersTerminator","TypeScript.Parser.createParseSyntaxTree.isExpectedVariableDeclaration_VariableDeclaratorsTerminator","TypeScript.Parser.createParseSyntaxTree.isExpectedClassOrInterfaceDeclaration_HeritageClausesTerminator","TypeScript.Parser.createParseSyntaxTree.isExpectedHeritageClause_TypeNameListTerminator","TypeScript.Parser.createParseSyntaxTree.isExpectedArgumentList_AssignmentExpressionsTerminator","TypeScript.Parser.createParseSyntaxTree.isExpectedClassDeclaration_ClassElementsTerminator","TypeScript.Parser.createParseSyntaxTree.isExpectedSwitchStatement_SwitchClausesTerminator","TypeScript.Parser.createParseSyntaxTree.isExpectedSwitchClause_StatementsTerminator","TypeScript.Parser.createParseSyntaxTree.isExpectedBlock_StatementsTerminator","TypeScript.Parser.createParseSyntaxTree.isExpectedTryBlock_StatementsTerminator","TypeScript.Parser.createParseSyntaxTree.isExpectedCatchBlock_StatementsTerminator","TypeScript.Parser.createParseSyntaxTree.isExpectedListItem","TypeScript.Parser.createParseSyntaxTree.isExpectedArgumentList_AssignmentExpression","TypeScript.Parser.createParseSyntaxTree.tryParseExpectedListItemWorker","TypeScript.Parser.createParseSyntaxTree.getExpectedListElementType","TypeScript.Parser.BinaryExpressionPrecedence","TypeScript.Parser.ListParsingState","TypeScript.Parser.parse","TypeScript.Parser.parseSource","TypeScript.SyntaxTree","TypeScript.SyntaxTree.constructor","TypeScript.SyntaxTree.sourceUnit","TypeScript.SyntaxTree.isDeclaration","TypeScript.SyntaxTree.computeDiagnostics","TypeScript.SyntaxTree.diagnostics","TypeScript.SyntaxTree.fileName","TypeScript.SyntaxTree.lineMap","TypeScript.SyntaxTree.languageVersion","TypeScript.SyntaxTree.cacheSyntaxTreeInfo","TypeScript.SyntaxTree.getAmdDependency","TypeScript.SyntaxTree.isExternalModule","TypeScript.SyntaxTree.amdDependencies","TypeScript.GrammarCheckerWalker","TypeScript.GrammarCheckerWalker.constructor","TypeScript.GrammarCheckerWalker.pushDiagnostic","TypeScript.GrammarCheckerWalker.pushDiagnosticAt","TypeScript.GrammarCheckerWalker.visitCatchClause","TypeScript.GrammarCheckerWalker.checkForCatchClauseTypeAnnotation","TypeScript.GrammarCheckerWalker.checkParameterListOrder","TypeScript.GrammarCheckerWalker.checkParameterAccessibilityModifiers","TypeScript.GrammarCheckerWalker.checkParameterAccessibilityModifier","TypeScript.GrammarCheckerWalker.checkForTrailingComma","TypeScript.GrammarCheckerWalker.checkForAtLeastOneElement","TypeScript.GrammarCheckerWalker.visitParameterList","TypeScript.GrammarCheckerWalker.visitHeritageClause","TypeScript.GrammarCheckerWalker.visitArgumentList","TypeScript.GrammarCheckerWalker.visitVariableDeclaration","TypeScript.GrammarCheckerWalker.visitTypeArgumentList","TypeScript.GrammarCheckerWalker.visitTupleType","TypeScript.GrammarCheckerWalker.visitTypeParameterList","TypeScript.GrammarCheckerWalker.checkIndexSignatureParameter","TypeScript.GrammarCheckerWalker.visitIndexSignature","TypeScript.GrammarCheckerWalker.checkClassDeclarationHeritageClauses","TypeScript.GrammarCheckerWalker.checkForDisallowedDeclareModifier","TypeScript.GrammarCheckerWalker.checkForRequiredDeclareModifier","TypeScript.GrammarCheckerWalker.visitClassDeclaration","TypeScript.GrammarCheckerWalker.checkInterfaceDeclarationHeritageClauses","TypeScript.GrammarCheckerWalker.checkInterfaceModifiers","TypeScript.GrammarCheckerWalker.visitInterfaceDeclaration","TypeScript.GrammarCheckerWalker.checkClassElementModifiers","TypeScript.GrammarCheckerWalker.visitMemberVariableDeclaration","TypeScript.GrammarCheckerWalker.visitMethodSignature","TypeScript.GrammarCheckerWalker.visitPropertySignature","TypeScript.GrammarCheckerWalker.visitMemberFunctionDeclaration","TypeScript.GrammarCheckerWalker.checkForDisallowedObjectLiteralMethod","TypeScript.GrammarCheckerWalker.checkGetAccessorParameter","TypeScript.GrammarCheckerWalker.visitIndexMemberDeclaration","TypeScript.GrammarCheckerWalker.checkIndexMemberModifiers","TypeScript.GrammarCheckerWalker.checkEcmaScriptVersionIsAtLeast","TypeScript.GrammarCheckerWalker.visitObjectLiteralExpression","TypeScript.GrammarCheckerWalker.visitGetAccessor","TypeScript.GrammarCheckerWalker.checkForSemicolonInsteadOfBlock","TypeScript.GrammarCheckerWalker.checkForDisallowedSetAccessorTypeAnnotation","TypeScript.GrammarCheckerWalker.checkForDisallowedAccessorTypeParameters","TypeScript.GrammarCheckerWalker.checkForAccessorDeclarationInAmbientContext","TypeScript.GrammarCheckerWalker.checkSetAccessorParameter","TypeScript.GrammarCheckerWalker.visitSimpleArrowFunctionExpression","TypeScript.GrammarCheckerWalker.visitPropertyAssignment","TypeScript.GrammarCheckerWalker.visitSetAccessor","TypeScript.GrammarCheckerWalker.checkForDisallowedAsyncModifier","TypeScript.GrammarCheckerWalker.visitElementAccessExpression","TypeScript.GrammarCheckerWalker.checkForMissingArgumentExpression","TypeScript.GrammarCheckerWalker.visitEnumDeclaration","TypeScript.GrammarCheckerWalker.checkEnumElements","TypeScript.GrammarCheckerWalker.visitEnumElement","TypeScript.GrammarCheckerWalker.visitInvocationExpression","TypeScript.GrammarCheckerWalker.checkModuleElementModifiers","TypeScript.GrammarCheckerWalker.checkForDisallowedImportDeclaration","TypeScript.GrammarCheckerWalker.checkForDisallowedDeclareModifierOnImportDeclaration","TypeScript.GrammarCheckerWalker.visitImportDeclaration","TypeScript.GrammarCheckerWalker.visitModuleDeclaration","TypeScript.GrammarCheckerWalker.checkForDisallowedExportAssignment","TypeScript.GrammarCheckerWalker.visitBlock","TypeScript.GrammarCheckerWalker.checkForMalformedBlock","TypeScript.GrammarCheckerWalker.checkForBlockInAmbientContext","TypeScript.GrammarCheckerWalker.checkForStatementInAmbientContxt","TypeScript.GrammarCheckerWalker.visitExportAssignment","TypeScript.GrammarCheckerWalker.visitExpressionBody","TypeScript.GrammarCheckerWalker.visitBreakStatement","TypeScript.GrammarCheckerWalker.visitComputedPropertyName","TypeScript.GrammarCheckerWalker.visitContinueStatement","TypeScript.GrammarCheckerWalker.checkBreakStatementTarget","TypeScript.GrammarCheckerWalker.inSwitchStatement","TypeScript.GrammarCheckerWalker.isIterationStatement","TypeScript.GrammarCheckerWalker.inIterationStatement","TypeScript.GrammarCheckerWalker.getEnclosingLabels","TypeScript.GrammarCheckerWalker.labelIsOnContinuableConstruct","TypeScript.GrammarCheckerWalker.checkContinueStatementTarget","TypeScript.GrammarCheckerWalker.visitDebuggerStatement","TypeScript.GrammarCheckerWalker.visitDoStatement","TypeScript.GrammarCheckerWalker.visitEmptyStatement","TypeScript.GrammarCheckerWalker.visitExpressionStatement","TypeScript.GrammarCheckerWalker.visitForInStatement","TypeScript.GrammarCheckerWalker.checkForInLeftHandSideExpression","TypeScript.GrammarCheckerWalker.checkForInStatementVariableDeclaration","TypeScript.GrammarCheckerWalker.visitForStatement","TypeScript.GrammarCheckerWalker.visitIfStatement","TypeScript.GrammarCheckerWalker.visitLabeledStatement","TypeScript.GrammarCheckerWalker.checkForInvalidLabelIdentifier","TypeScript.GrammarCheckerWalker.visitReturnStatement","TypeScript.GrammarCheckerWalker.checkForReturnStatementNotInFunctionBody","TypeScript.GrammarCheckerWalker.visitSwitchStatement","TypeScript.GrammarCheckerWalker.visitThrowStatement","TypeScript.GrammarCheckerWalker.checkForMissingThrowStatementExpression","TypeScript.GrammarCheckerWalker.visitTryStatement","TypeScript.GrammarCheckerWalker.visitWhileStatement","TypeScript.GrammarCheckerWalker.visitWithStatement","TypeScript.GrammarCheckerWalker.checkForWithInStrictMode","TypeScript.GrammarCheckerWalker.checkForDisallowedModifiers","TypeScript.GrammarCheckerWalker.visitFunctionDeclaration","TypeScript.GrammarCheckerWalker.getAsyncModifier","TypeScript.GrammarCheckerWalker.checkForAsyncGenerator","TypeScript.GrammarCheckerWalker.visitFunctionExpression","TypeScript.GrammarCheckerWalker.visitVariableStatement","TypeScript.GrammarCheckerWalker.checkListSeparators","TypeScript.GrammarCheckerWalker.visitObjectType","TypeScript.GrammarCheckerWalker.visitArrayType","TypeScript.GrammarCheckerWalker.visitFunctionType","TypeScript.GrammarCheckerWalker.visitConstructorType","TypeScript.GrammarCheckerWalker.visitVariableDeclarator","TypeScript.GrammarCheckerWalker.checkForDisallowedTemplatePropertyName","TypeScript.GrammarCheckerWalker.checkForDisallowedComputedPropertyName","TypeScript.GrammarCheckerWalker.checkVariableDeclaratorIdentifier","TypeScript.GrammarCheckerWalker.checkVariableDeclaratorInitializer","TypeScript.GrammarCheckerWalker.visitConstructorDeclaration","TypeScript.GrammarCheckerWalker.checkConstructorModifiers","TypeScript.GrammarCheckerWalker.checkConstructorTypeParameterList","TypeScript.GrammarCheckerWalker.checkConstructorTypeAnnotation","TypeScript.GrammarCheckerWalker.visitBinaryExpression","TypeScript.GrammarCheckerWalker.visitPrefixUnaryExpression","TypeScript.GrammarCheckerWalker.visitPostfixUnaryExpression","TypeScript.GrammarCheckerWalker.visitParameter","TypeScript.GrammarCheckerWalker.checkForDisallowedEvalOrArguments","TypeScript.GrammarCheckerWalker.isPreIncrementOrDecrementExpression","TypeScript.GrammarCheckerWalker.visitDeleteExpression","TypeScript.GrammarCheckerWalker.visitYieldExpression","TypeScript.GrammarCheckerWalker.visitAwaitExpression","TypeScript.GrammarCheckerWalker.checkIllegalAssignment","TypeScript.GrammarCheckerWalker.getEvalOrArguments","TypeScript.GrammarCheckerWalker.isEvalOrArguments","TypeScript.GrammarCheckerWalker.visitConstraint","TypeScript.GrammarCheckerWalker.checkConstraintType","TypeScript.firstSyntaxTreeToken","TypeScript.externalModuleIndicatorSpan","TypeScript.externalModuleIndicatorSpanWorker","TypeScript.implicitImportSpan","TypeScript.implicitImportSpanWorker","TypeScript.topLevelImportOrExportSpan","TypeScript.Unicode","TypeScript.Unicode.constructor","TypeScript.Unicode.lookupInUnicodeMap","TypeScript.Unicode.isIdentifierStart","TypeScript.Unicode.isIdentifierPart","TypeScript.PrettyPrinter","TypeScript.PrettyPrinter.prettyPrint","TypeScript.PrettyPrinter.PrettyPrinterImpl","TypeScript.PrettyPrinter.PrettyPrinterImpl.constructor","TypeScript.PrettyPrinter.PrettyPrinterImpl.newLineCountBetweenModuleElements","TypeScript.PrettyPrinter.PrettyPrinterImpl.newLineCountBetweenClassElements","TypeScript.PrettyPrinter.PrettyPrinterImpl.newLineCountBetweenStatements","TypeScript.PrettyPrinter.PrettyPrinterImpl.newLineCountBetweenSwitchClauses","TypeScript.PrettyPrinter.PrettyPrinterImpl.ensureSpace","TypeScript.PrettyPrinter.PrettyPrinterImpl.ensureNewLine","TypeScript.PrettyPrinter.PrettyPrinterImpl.appendNewLines","TypeScript.PrettyPrinter.PrettyPrinterImpl.getIndentation","TypeScript.PrettyPrinter.PrettyPrinterImpl.appendIndentationIfAfterNewLine","TypeScript.PrettyPrinter.PrettyPrinterImpl.appendText","TypeScript.PrettyPrinter.PrettyPrinterImpl.appendElement","TypeScript.PrettyPrinter.PrettyPrinterImpl.appendNode","TypeScript.PrettyPrinter.PrettyPrinterImpl.appendToken","TypeScript.PrettyPrinter.PrettyPrinterImpl.visitToken","TypeScript.PrettyPrinter.PrettyPrinterImpl.appendSpaceList","TypeScript.PrettyPrinter.PrettyPrinterImpl.appendSeparatorSpaceList","TypeScript.PrettyPrinter.PrettyPrinterImpl.appendSeparatorNewLineList","TypeScript.PrettyPrinter.PrettyPrinterImpl.appendModuleElements","TypeScript.PrettyPrinter.PrettyPrinterImpl.visitSourceUnit","TypeScript.PrettyPrinter.PrettyPrinterImpl.visitExternalModuleReference","TypeScript.PrettyPrinter.PrettyPrinterImpl.visitModuleNameModuleReference","TypeScript.PrettyPrinter.PrettyPrinterImpl.visitImportDeclaration","TypeScript.PrettyPrinter.PrettyPrinterImpl.visitExportAssignment","TypeScript.PrettyPrinter.PrettyPrinterImpl.visitClassDeclaration","TypeScript.PrettyPrinter.PrettyPrinterImpl.visitInterfaceDeclaration","TypeScript.PrettyPrinter.PrettyPrinterImpl.appendObjectType","TypeScript.PrettyPrinter.PrettyPrinterImpl.visitHeritageClause","TypeScript.PrettyPrinter.PrettyPrinterImpl.visitModuleDeclaration","TypeScript.PrettyPrinter.PrettyPrinterImpl.appendBody","TypeScript.PrettyPrinter.PrettyPrinterImpl.visitExpressionBody","TypeScript.PrettyPrinter.PrettyPrinterImpl.visitFunctionDeclaration","TypeScript.PrettyPrinter.PrettyPrinterImpl.visitVariableStatement","TypeScript.PrettyPrinter.PrettyPrinterImpl.visitVariableDeclaration","TypeScript.PrettyPrinter.PrettyPrinterImpl.visitVariableDeclarator","TypeScript.PrettyPrinter.PrettyPrinterImpl.visitEqualsValueClause","TypeScript.PrettyPrinter.PrettyPrinterImpl.visitPrefixUnaryExpression","TypeScript.PrettyPrinter.PrettyPrinterImpl.visitArrayLiteralExpression","TypeScript.PrettyPrinter.PrettyPrinterImpl.visitOmittedExpression","TypeScript.PrettyPrinter.PrettyPrinterImpl.visitParenthesizedExpression","TypeScript.PrettyPrinter.PrettyPrinterImpl.visitSimpleArrowFunctionExpression","TypeScript.PrettyPrinter.PrettyPrinterImpl.visitParenthesizedArrowFunctionExpression","TypeScript.PrettyPrinter.PrettyPrinterImpl.visitQualifiedName","TypeScript.PrettyPrinter.PrettyPrinterImpl.visitTypeQuery","TypeScript.PrettyPrinter.PrettyPrinterImpl.visitTypeArgumentList","TypeScript.PrettyPrinter.PrettyPrinterImpl.visitTupleType","TypeScript.PrettyPrinter.PrettyPrinterImpl.visitParenthesizedType","TypeScript.PrettyPrinter.PrettyPrinterImpl.visitUnionType","TypeScript.PrettyPrinter.PrettyPrinterImpl.visitConstructorType","TypeScript.PrettyPrinter.PrettyPrinterImpl.visitFunctionType","TypeScript.PrettyPrinter.PrettyPrinterImpl.visitObjectType","TypeScript.PrettyPrinter.PrettyPrinterImpl.visitArrayType","TypeScript.PrettyPrinter.PrettyPrinterImpl.visitGenericType","TypeScript.PrettyPrinter.PrettyPrinterImpl.visitTypeAnnotation","TypeScript.PrettyPrinter.PrettyPrinterImpl.appendStatements","TypeScript.PrettyPrinter.PrettyPrinterImpl.visitBlock","TypeScript.PrettyPrinter.PrettyPrinterImpl.visitParameter","TypeScript.PrettyPrinter.PrettyPrinterImpl.visitMemberAccessExpression","TypeScript.PrettyPrinter.PrettyPrinterImpl.visitPostfixUnaryExpression","TypeScript.PrettyPrinter.PrettyPrinterImpl.visitElementAccessExpression","TypeScript.PrettyPrinter.PrettyPrinterImpl.visitInvocationExpression","TypeScript.PrettyPrinter.PrettyPrinterImpl.visitArgumentList","TypeScript.PrettyPrinter.PrettyPrinterImpl.visitBinaryExpression","TypeScript.PrettyPrinter.PrettyPrinterImpl.visitConditionalExpression","TypeScript.PrettyPrinter.PrettyPrinterImpl.visitConstructSignature","TypeScript.PrettyPrinter.PrettyPrinterImpl.visitMethodSignature","TypeScript.PrettyPrinter.PrettyPrinterImpl.visitIndexSignature","TypeScript.PrettyPrinter.PrettyPrinterImpl.visitPropertySignature","TypeScript.PrettyPrinter.PrettyPrinterImpl.visitParameterList","TypeScript.PrettyPrinter.PrettyPrinterImpl.visitCallSignature","TypeScript.PrettyPrinter.PrettyPrinterImpl.visitTypeParameterList","TypeScript.PrettyPrinter.PrettyPrinterImpl.visitTypeParameter","TypeScript.PrettyPrinter.PrettyPrinterImpl.visitConstraint","TypeScript.PrettyPrinter.PrettyPrinterImpl.appendBlockOrStatement","TypeScript.PrettyPrinter.PrettyPrinterImpl.visitIfStatement","TypeScript.PrettyPrinter.PrettyPrinterImpl.visitElseClause","TypeScript.PrettyPrinter.PrettyPrinterImpl.visitExpressionStatement","TypeScript.PrettyPrinter.PrettyPrinterImpl.visitConstructorDeclaration","TypeScript.PrettyPrinter.PrettyPrinterImpl.visitIndexMemberDeclaration","TypeScript.PrettyPrinter.PrettyPrinterImpl.visitMemberFunctionDeclaration","TypeScript.PrettyPrinter.PrettyPrinterImpl.visitGetAccessor","TypeScript.PrettyPrinter.PrettyPrinterImpl.visitSetAccessor","TypeScript.PrettyPrinter.PrettyPrinterImpl.visitMemberVariableDeclaration","TypeScript.PrettyPrinter.PrettyPrinterImpl.visitThrowStatement","TypeScript.PrettyPrinter.PrettyPrinterImpl.visitReturnStatement","TypeScript.PrettyPrinter.PrettyPrinterImpl.visitObjectCreationExpression","TypeScript.PrettyPrinter.PrettyPrinterImpl.visitSwitchStatement","TypeScript.PrettyPrinter.PrettyPrinterImpl.appendSwitchClauseStatements","TypeScript.PrettyPrinter.PrettyPrinterImpl.visitCaseSwitchClause","TypeScript.PrettyPrinter.PrettyPrinterImpl.visitDefaultSwitchClause","TypeScript.PrettyPrinter.PrettyPrinterImpl.visitBreakStatement","TypeScript.PrettyPrinter.PrettyPrinterImpl.visitContinueStatement","TypeScript.PrettyPrinter.PrettyPrinterImpl.visitForStatement","TypeScript.PrettyPrinter.PrettyPrinterImpl.visitForInStatement","TypeScript.PrettyPrinter.PrettyPrinterImpl.visitWhileStatement","TypeScript.PrettyPrinter.PrettyPrinterImpl.visitWithStatement","TypeScript.PrettyPrinter.PrettyPrinterImpl.visitEnumDeclaration","TypeScript.PrettyPrinter.PrettyPrinterImpl.visitEnumElement","TypeScript.PrettyPrinter.PrettyPrinterImpl.visitCastExpression","TypeScript.PrettyPrinter.PrettyPrinterImpl.visitObjectLiteralExpression","TypeScript.PrettyPrinter.PrettyPrinterImpl.visitComputedPropertyName","TypeScript.PrettyPrinter.PrettyPrinterImpl.visitPropertyAssignment","TypeScript.PrettyPrinter.PrettyPrinterImpl.visitFunctionExpression","TypeScript.PrettyPrinter.PrettyPrinterImpl.visitEmptyStatement","TypeScript.PrettyPrinter.PrettyPrinterImpl.visitTryStatement","TypeScript.PrettyPrinter.PrettyPrinterImpl.visitCatchClause","TypeScript.PrettyPrinter.PrettyPrinterImpl.visitFinallyClause","TypeScript.PrettyPrinter.PrettyPrinterImpl.visitLabeledStatement","TypeScript.PrettyPrinter.PrettyPrinterImpl.visitDoStatement","TypeScript.PrettyPrinter.PrettyPrinterImpl.visitTypeOfExpression","TypeScript.PrettyPrinter.PrettyPrinterImpl.visitDeleteExpression","TypeScript.PrettyPrinter.PrettyPrinterImpl.visitVoidExpression","TypeScript.PrettyPrinter.PrettyPrinterImpl.visitYieldExpression","TypeScript.PrettyPrinter.PrettyPrinterImpl.visitAwaitExpression","TypeScript.PrettyPrinter.PrettyPrinterImpl.visitDebuggerStatement","TypeScript.PrettyPrinter.PrettyPrinterImpl.visitTemplateExpression","TypeScript.PrettyPrinter.PrettyPrinterImpl.visitTemplateClause","TypeScript.PrettyPrinter.PrettyPrinterImpl.visitTemplateAccessExpression","TypeScript.SyntaxElementsCollector","TypeScript.SyntaxElementsCollector.constructor","TypeScript.SyntaxElementsCollector.collectElements","TypeScript.SyntaxElementsCollector.collect","TypeScript.withChange","TypeScript.withInsert","TypeScript.withDelete","TypeScript.compareTrees","TypeScript.IncrementalParserTests","TypeScript.IncrementalParserTests.constructor","TypeScript.IncrementalParserTests.runAllTests","TypeScript.IncrementalParserTests.reusedElements","TypeScript.IncrementalParserTests.testIncremental1","TypeScript.IncrementalParserTests.testIncremental2","TypeScript.IncrementalParserTests.testIncrementalRegex1","TypeScript.IncrementalParserTests.testIncrementalRegex2","TypeScript.IncrementalParserTests.testIncrementalComment1","TypeScript.IncrementalParserTests.testIncrementalComment2","TypeScript.IncrementalParserTests.testIncrementalComment3","TypeScript.IncrementalParserTests.testIncrementalComment4","TypeScript.IncrementalParserTests.testParameter1","TypeScript.IncrementalParserTests.testTypeMember1","TypeScript.IncrementalParserTests.testEnumElement1","TypeScript.IncrementalParserTests.testStrictMode1","TypeScript.IncrementalParserTests.testStrictMode2","TypeScript.IncrementalParserTests.testStrictMode3","TypeScript.IncrementalParserTests.testStrictMode4","TypeScript.IncrementalParserTests.testIncremental5","TypeScript.IncrementalParserTests.testIncremental6","TypeScript.IncrementalParserTests.testDelete1","TypeScript.IncrementalParserTests.testIncremental3","TypeScript.IncrementalParserTests.testIncremental4","TypeScript.IncrementalParserTests.testIncremental7","TypeScript.IncrementalParserTests.testIncremental8","TypeScript.IncrementalParserTests.testIncremental9","TypeScript.IncrementalParserTests.testIncremental10","TypeScript.IncrementalParserTests.testIncremental11","TypeScript.IncrementalParserTests.testGenerics1","TypeScript.IncrementalParserTests.testGenerics2","TypeScript.IncrementalParserTests.testGenerics3","TypeScript.IncrementalParserTests.testGenerics4","TypeScript.IncrementalParserTests.testGenerics5","TypeScript.IncrementalParserTests.testGenerics6","TypeScript.IncrementalParserTests.testGenerics7","TypeScript.IncrementalParserTests.testGenerics8","TypeScript.IncrementalParserTests.testParenthesizedExpressionToLambda","TypeScript.IncrementalParserTests.testLambdaToParenthesizedExpression","TypeScript.IncrementalParserTests.testGenericToArithmetic","TypeScript.IncrementalParserTests.testArithmeticToGeneric","TypeScript.IncrementalParserTests.testYield1","TypeScript.IncrementalParserTests.testYield2","TypeScript.IncrementalParserTests.textComplexEdits1","TypeScript.IncrementalParserTests.testSemicolonDelete1","TypeScript.IncrementalParserTests.testGenericError1","TypeScript.IncrementalParserTests.testParameterDeleteAfterComment1","TypeScript.IncrementalParserTests.testInsertModifierBeforeSetter1","TypeScript.IncrementalParserTests.testParameter2","TypeScript.IncrementalParserTests.testInsertAboveComment","TypeScript.IncrementalParserTests.testInsertDeclareAboveModule","TypeScript.IncrementalParserTests.testInsertFunctionAboveLambdaWithComment","TypeScript.IncrementalParserTests.testSlashToRegex1","TypeScript.IncrementalParserTests.testRegex1","TypeScript.IncrementalParserTests.testRegex2","TypeScript.IncrementalParserTests.testKeywordAsIdentifier1","TypeScript.IncrementalParserTests.testSkippedToken1","TypeScript.IncrementalParser","TypeScript.IncrementalParser.createParserSource","TypeScript.IncrementalParser.createParserSource.release","TypeScript.IncrementalParser.createParserSource.extendToAffectedRange","TypeScript.IncrementalParser.createParserSource.absolutePosition","TypeScript.IncrementalParser.createParserSource.tokenDiagnostics","TypeScript.IncrementalParser.createParserSource.getRewindPoint","TypeScript.IncrementalParser.createParserSource.rewind","TypeScript.IncrementalParser.createParserSource.releaseRewindPoint","TypeScript.IncrementalParser.createParserSource.isPinned","TypeScript.IncrementalParser.createParserSource.trySynchronizeCursorToPosition","TypeScript.IncrementalParser.createParserSource.currentNode","TypeScript.IncrementalParser.createParserSource.currentToken","TypeScript.IncrementalParser.createParserSource.currentContextualToken","TypeScript.IncrementalParser.createParserSource.tryGetNodeFromOldSourceUnit","TypeScript.IncrementalParser.createParserSource.canReuseTokenFromOldSourceUnit","TypeScript.IncrementalParser.createParserSource.tryGetTokenFromOldSourceUnit","TypeScript.IncrementalParser.createParserSource.peekToken","TypeScript.IncrementalParser.createParserSource.tryPeekTokenFromOldSourceUnit","TypeScript.IncrementalParser.createParserSource.tryPeekTokenFromOldSourceUnitWorker","TypeScript.IncrementalParser.createParserSource.consumeNodeOrToken","TypeScript.IncrementalParser.createSyntaxCursorPiece","TypeScript.IncrementalParser.returnSyntaxCursor","TypeScript.IncrementalParser.getSyntaxCursor","TypeScript.IncrementalParser.cloneSyntaxCursor","TypeScript.IncrementalParser.createSyntaxCursor","TypeScript.IncrementalParser.createSyntaxCursor.clean","TypeScript.IncrementalParser.createSyntaxCursor.deepCopyFrom","TypeScript.IncrementalParser.createSyntaxCursor.isFinished","TypeScript.IncrementalParser.createSyntaxCursor.currentNodeOrToken","TypeScript.IncrementalParser.createSyntaxCursor.currentNode","TypeScript.IncrementalParser.createSyntaxCursor.isEmptyList","TypeScript.IncrementalParser.createSyntaxCursor.moveToFirstChild","TypeScript.IncrementalParser.createSyntaxCursor.moveToNextSibling","TypeScript.IncrementalParser.createSyntaxCursor.moveToFirstChildIfList","TypeScript.IncrementalParser.createSyntaxCursor.pushElement","TypeScript.IncrementalParser.createSyntaxCursor.moveToFirstToken","TypeScript.IncrementalParser.createSyntaxCursor.currentToken","TypeScript.IncrementalParser.TokenCollectorWalker","TypeScript.IncrementalParser.TokenCollectorWalker.constructor","TypeScript.IncrementalParser.TokenCollectorWalker.visitToken","TypeScript.IncrementalParser.updateTokenPositionsAndMarkElements","TypeScript.IncrementalParser.forceUpdateTokenPositionsForElement","TypeScript.IncrementalParser.forceUpdateTokenPosition","TypeScript.IncrementalParser.forceUpdateTokenPositionForNodeOrToken","TypeScript.IncrementalParser.getTokens","TypeScript.IncrementalParser.parse","TypeScript.assertParent","TypeScript.nodeStructuralEquals","TypeScript.nodeOrTokenStructuralEquals","TypeScript.tokenStructuralEquals","TypeScript.triviaListStructuralEquals","TypeScript.triviaStructuralEquals","TypeScript.listStructuralEquals","TypeScript.elementStructuralEquals","TypeScript.treeStructuralEquals","isDTSFile","PositionValidatingWalker","PositionValidatingWalker.constructor","PositionValidatingWalker.visitToken","tokenToJSON","triviaListToJSON","triviaToJSON","getSyntaxKindEnum","nodeToJSON","elementToJSON","syntaxTreeToJSON","emptySourceUnit","Program","Program.constructor","Program.runAllTests","Program.reusedElements","Program.testIncrementalSpeed","Program.testIncrementalSpeedNoChange","Program.testIncrementalSpeedChange","Program.handleException","Program.runTests","Program.checkResult","Program.runEmitter","Program.runPrettyPrinter","Program.runParser","Program.runIncremental","Program.runFindToken","Program.runTrivia","Program.runScanner","Program.parseArguments","Program.run262"],"mappings":"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GA,GAAGA,OAAOA,CAACA,IAAIA,CAACA,GAAGA,CAACA,GAAGA,GAAGA,CAACA;oBACpCA,GAAGA,GAAGA,IAAIA,CAACA;oBACXA,MAAMA,CAACA,CAACA,CAACA;gBACbA,CAACA;gBAIDA,EAAEA,CAACA,CAACA,GAAGA,IAAIA,OAAOA,GAAGA,KAAKA,QAAQA,CAACA,CAACA,CAACA;oBACjCA,MAAMA,GAAGA,GAAGA,CAACA,MAAMA,CAACA;oBACpBA,GAAGA,CAACA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,MAAMA,EAAEA,CAACA,IAAIA,CAACA,EAAEA,CAACA;wBAC7BA,EAAEA,CAACA,CAACA,OAAOA,GAAGA,CAACA,CAACA,CAACA,KAAKA,QAAQA,CAACA,CAACA,CAACA;4BAC7BA,CAACA,GAAGA,GAAGA,CAACA,CAACA,CAACA,CAACA;4BACXA,CAACA,GAAGA,GAAGA,CAACA,CAACA,EAAEA,KAAKA,CAACA,CAACA;4BAClBA,EAAEA,CAACA,CAACA,CAACA,CAACA,CAACA,CAACA;gCACJA,OAAOA,CAACA,IAAIA,CAACA,KAAKA,CAACA,CAACA,CAACA,GAAGA,CAACA,GAAGA,GAAGA,IAAIA,GAAGA,GAAGA,CAACA,GAAGA,CAACA,CAACA,CAACA;4BACpDA,CAACA;wBACLA,CAACA;oBACLA,CAACA;gBACLA,CAACA;gBAACA,IAAIA,CAACA,CAACA;oBAIJA,GAAGA,CAACA,CAACA,CAACA,IAAIA,KAAKA,CAACA,CAACA,CAACA;wBACdA,EAAEA,CAACA,CAACA,MAAMA,CAACA,SAASA,CAACA,cAAcA,CAACA,IAAIA,CAACA,KAAKA,EAAEA,CAACA,CAACA,CAACA,CAACA,CAACA;4BACjDA,CAACA,GAAGA,GAAGA,CAACA,CAACA,EAAEA,KAAKA,CAACA,CAACA;4BAClBA,EAAEA,CAACA,CAACA,CAACA,CAACA,CAACA,CAACA;gCACJA,OAAOA,CAACA,IAAIA,CAACA,KAAKA,CAACA,CAACA,CAACA,GAAGA,CAACA,GAAGA,GAAGA,IAAIA,GAAGA,GAA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EA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,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,EA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YACjBA,CAACA,CAACA,CAACA;YAEHA,MAAMA,CAACA,MAAMA,CAACA;QAClBA,CAACA;QAED7B,SAASA,QAAQA,CAAIA,QAAiBA;YAClC8B,MAAMA,CAACA,OAAOA,CAACA,OAAOA,CAACA,cAAMA,OAAAA,eAAeA,CAACA,QAAQA,EAAwBA,KAAKA,CAACA,EAAtDA,CAAsDA,CAACA,CAACA;QACzFA,CAACA;QAED9B,SAASA,YAAYA;YACjB+B,EAAEA,CAACA,CAACA,KAAKA,KAAKA,mBAAqBA,CAACA,CAACA,CAACA;gBAClCA,MAAMA,CAACA,IAAIA,CAACA;YAChBA,CAACA;YAIDA,EAAEA,CAACA,CAACA,KAAKA,KAAKA,sBAAuBA,IAAIA,cAAcA,EAAEA,CAACA,CAACA,CAACA;gBACxDA,MAAMA,CAACA,KAAKA,CAACA;YACjBA,CAACA;YAEDA,MAAMA,CAACA,mBAAmBA,EAAEA,GAAGA,KAAKA,GAAGA,gCAAiCA,GAAGA,KAAKA,GAAGA,yBAA2BA,CAACA;QACnHA,CAACA;QAED/B,SAASA,aAAaA,CAACA,CAAaA;YAChCgC,EAAEA,CAACA,CAACA,KAAKA,KAAKA,CAACA,CAACA,CAACA,CAACA;gBACdA,SAASA,EAAEA,CAACA;gBACZA,MAAMA,CAACA,IAAIA,CAACA;YAChBA,CAACA;YACDA,KAAKA,CAACA,cAAWA,CAACA,WAAWA,EAAEA,gBAAaA,CAACA,CAACA,CAACA,CAACA,CAACA;YACjDA,MAAMA,CAACA,KAAKA,CAACA;QACjBA,CAACA;QAEDhC,SAASA,aAAaA,CAACA,CAAaA;YAChCiC,EAAEA,CAACA,CAACA,KAAKA,KAAKA,CAACA,CAACA,CAACA,CAACA;gBACdA,SAASA,EAAEA,CAACA;gBACZA,MAAMA,CAACA,IAAIA,CAACA;YAChBA,CAACA;YACDA,MAAMA,CAACA,KAAKA,CAACA;QACjBA,CAACA;QAEDjC,SAASA,iBAAiBA;YAEtBkC,EAAEA,CAACA,CAACA,KAAKA,KAAKA,uBAAyBA,CAACA,CAACA,CAACA;gBACtCA,MAAMA,CAACA,IAAIA,CAACA;YAChBA,CAACA;YAGDA,MAAMA,CAACA,KAAKA,KAAKA,wBAA0BA,IAAIA,KAAKA,KAAKA,sBAAyBA,IAAIA,OAAOA,CAACA,qBAAqBA,EAAEA,CAACA;QAC1HA,CAACA;QAEDlC,SAASA,cAAcA;YACnBmC,EAAEA,CAACA,CAACA,iBAAiBA,EAAEA,CAACA,CAACA,CAACA;gBACtBA,EAAEA,CAACA,CAACA,KAAKA,KAAKA,uBAAyBA,CAACA,CAACA,CAACA;oBAEtCA,SAASA,EAAEA,CAACA;gBAChBA,CAACA;YACLA,CAACA;YACDA,IAAIA,CAACA,CAACA;gBACFA,KAAKA,CAACA,cAAWA,CAACA,WAAWA,EAAEA,GAAGA,CAACA,CAACA;YACxCA,CAACA;QACLA,CAACA;QAEDnC,SAASA,UAAUA,CAACA,IAAgBA,EAAEA,GAAYA;YAC9CoC,SAASA,EAAEA,CAACA;YACZA,IAAIA,IAAIA,GAAGA,IAAIA,CAACA,gBAAgBA,CAACA,IAAIA,CAACA,IAAIA,CAACA,gBAAgBA,CAACA,IAAIA,CAACA,GAAGA,kBAAeA,CAACA,kBAAkBA,CAACA,IAAIA,CAACA,CAACA,CAACA,EAAEA,CAACA;YACjHA,EAAEA,CAACA,CAACA,CAACA,CAACA,GAAGA,IAAIA,CAACA,CAACA,CAACA,CAACA,CAACA;gBACdA,GAAGA,GAAGA,OAAOA,CAACA,WAAWA,EAAEA,CAACA;YAChCA,CAACA;YAEDA,IAAIA,CAACA,GAAGA,GAAGA,GAAGA,CAACA;YACfA,IAAIA,CAACA,GAAGA,GAAGA,GAAGA,CAACA;YACfA,MAAMA,CAACA,IAAIA,CAACA;QAChBA,CAACA;QAEDpC,SAASA,UAAUA,CAAiBA,IAAOA;YACvCqC,IAAIA,CAACA,GAAGA,GAAGA,OAAOA,CAACA,WAAWA,EAAEA,CAACA;YAEjCA,EAAEA,CAACA,CAACA,YAAYA,CAACA,CAACA,CAACA;gBACfA,IAAIA,CAACA,kBAAkBA,GAAGA,YAAYA,CAACA;YAC3CA,CAACA;YAEDA,MAAMA,CAACA,IAAIA,CAACA;QAChBA,CAACA;QAEDrC,SAASA,iBAAiBA,CAACA,GAAYA;YACnCsC,MAAMA,CAACA,UAAUA,CAACA,iBAAkBA,EAAEA,GAAGA,CAACA,CAACA;QAC/CA,CAACA;QAEDtC,SAASA,gBAAgBA,CAACA,IAAYA;YAClCuC,IAAIA,GAAGA,gBAAgBA,CAACA,IAAIA,CAACA,CAACA;YAC9BA,MAAMA,CAACA,cAAWA,CAACA,WAAWA,EAAEA,IAAIA,CAACA,GAAGA,WAAWA,CAACA,IAAIA,CAACA,GAAGA,CAACA,WAAWA,CAACA,IAAIA,CAACA,GAAGA,IAAIA,CAACA,CAACA;QAC3FA,CAACA;QAKDvC,SAASA,gBAAgBA,CAACA,YAAqBA;YAC3CwC,eAAeA,EAAEA,CAACA;YAClBA,EAAEA,CAACA,CAACA,YAAYA,CAACA,CAACA,CAACA;gBACfA,IAAIA,IAAIA,GAAeA,UAAUA,CAACA,mBAAqBA,CAACA,CAACA;gBACzDA,IAAIA,CAACA,IAAIA,GAAGA,gBAAgBA,CAACA,OAAOA,CAACA,aAAaA,EAAEA,CAACA,CAACA;gBACtDA,SAASA,EAAEA,CAACA;gBACZA,MAAMA,CAACA,UAAUA,CAACA,IAAIA,CAACA,CAACA;YAC5BA,CAACA;YACDA,KAAKA,CAACA,cAAWA,CAACA,mBAAmBA,CAACA,CAACA;YACvCA,IAAIA,IAAIA,GAAeA,iBAAiBA,EAAEA,CAACA;YAC3CA,IAAIA,CAACA,IAAIA,GAAGA,EAAEA,CAACA;YACfA,MAAMA,CAACA,IAAIA,CAACA;QAChBA,CAACA;QAEDxC,SAASA,eAAeA;YACpByC,MAAMA,CAACA,gBAAgBA,CAACA,YAAYA,EAAEA,CAACA,CAACA;QAC5CA,CAACA;QAEDzC,SAASA,mBAAmBA;YACxB0C,MAAMA,CAACA,gBAAgBA,CAACA,KAAKA,IAAIA,mBAAqBA,CAACA,CAACA;QAC5DA,CAACA;QAED1C,SAASA,cAAcA;YACnB2C,MAAMA,CAACA,KAAKA,IAAIA,mBAAqBA,IACjCA,KAAKA,KAAKA,qBAAwBA,IAClCA,KAAKA,KAAKA,sBAAyBA,CAACA;QAC5CA,CAACA;QAED3C,SAASA,iBAAiBA;YACtB4C,EAAEA,CAACA,CAACA,KAAKA,KAAKA,qBAAwBA,IAAIA,KAAKA,KAAKA,sBAAyBA,CAACA,CAACA,CAACA;gBAC5EA,MAAMA,CAACA,gBAAgBA,CAAiBA,IAAIA,CAACA,CAACA;YAClDA,CAACA;YACDA,MAAMA,CAACA,mBAAmBA,EAAEA,CAACA;QACjCA,CAACA;QAED5C,SAASA,uBAAuBA,CAACA,CAAaA;YAC1C6C,MAAMA,CAACA,KAAKA,KAAKA,CAACA,IAAIA,QAAQA,CAACA;gBAC3BA,SAASA,EAAEA,CAACA;gBACZA,MAAMA,CAACA,KAAKA,KAAKA,yBAA2BA,IAAIA,cAAcA,EAAEA,CAACA;YACrEA,CAACA,CAACA,CAACA;QACPA,CAACA;QAED7C,SAASA,0BAA0BA;YAC/B8C,MAAMA,CAACA,UAAUA,CAACA,KAAKA,CAACA,IAAIA,QAAQA,CAACA;gBACjCA,SAASA,EAAEA,CAACA;gBACZA,MAAMA,CAACA,KAAKA,KAAKA,yBAA2BA,IAAIA,KAAKA,KAAKA,sBAAwBA,IAAIA,cAAcA,EAAEA,CAACA;YAC3GA,CAACA,CAACA,CAACA;QACPA,CAACA;QAGD9C,SAASA,aAAaA,CAACA,IAAoBA,EAAEA,eAAwBA;YACjE+C,MAAMA,CAACA,CAACA,IAAIA,CAACA,CAACA,CAACA;gBACXA,KAAKA,sBAA6BA,CAACA;gBACnCA,KAAKA,sBAA6BA;oBAC9BA,MAAMA,CAACA,eAAeA,CAACA,eAAeA,CAACA,CAACA;gBAC5CA,KAAKA,uBAA8BA,CAACA;gBACpCA,KAAKA,8BAAqCA;oBACtCA,MAAMA,CAACA,WAAWA,CAACA,eAAeA,CAACA,CAACA;gBACxCA,KAAKA,qBAA4BA;oBAC7BA,MAAMA,CAACA,KAAKA,KAAKA,oBAAsBA,IAAIA,KAAKA,KAAKA,uBAAyBA,CAACA;gBACnFA,KAAKA,mBAA0BA;oBAC3BA,MAAMA,CAACA,mBAAmBA,EAAEA,CAACA;gBACjCA,KAAKA,oBAA2BA;oBAC5BA,MAAMA,CAACA,SAASA,CAACA,kBAAkBA,CAACA,CAACA;gBACzCA,KAAKA,mBAA0BA;oBAC3BA,MAAMA,CAACA,cAAcA,EAAEA,CAACA;gBAC5BA,KAAKA,6BAAmCA;oBACpCA,MAAMA,CAACA,KAAKA,KAAKA,sBAAwBA,IAAIA,cAAcA,EAAEA,CAACA;gBAClEA,KAAKA,0BAAiCA;oBAClCA,MAAMA,CAACA,YAAYA,EAAEA,IAAIA,CAACA,CAACA,KAAKA,KAAKA,uBAAyBA,IAAIA,KAAKA,KAAKA,2BAA4BA,CAACA,IAAIA,CAACA,SAASA,CAACA,cAAMA,QAACA,SAASA,EAAEA,EAAEA,YAAYA,EAAEA,CAACA,EAA7BA,CAA6BA,CAACA,CAACA,CAACA;gBAClKA,KAAKA,4BAAmCA,CAACA;gBACzCA,KAAKA,uBAA6BA;oBAC9BA,MAAMA,CAACA,YAAYA,EAAEA,CAACA;gBAC1BA,KAAKA,4BAAkCA;oBACnCA,MAAMA,CAACA,KAAKA,KAAKA,mBAAqBA,IAAIA,mBAAmBA,EAAEA,CAACA;gBACpEA,KAAKA,4BAAkCA;oBACnCA,MAAMA,CAACA,KAAKA,KAAKA,mBAAqBA,IAAIA,mBAAmBA,EAAEA,CAACA;gBACpEA,KAAKA,mBAAyBA;oBAC1BA,MAAMA,CAACA,kBAAkBA,EAAEA,CAACA;gBAChCA,KAAKA,sBAA4BA,CAACA;gBAClCA,KAAKA,0BAAgCA;oBACjCA,MAAMA,CAACA,KAAKA,KAAKA,mBAAqBA,IAAIA,aAAaA,EAAEA,CAACA;YAClEA,CAACA;YAEDA,QAAKA,CAACA,IAAIA,CAACA,yCAAyCA,CAACA,CAACA;QAC1DA,CAACA;QAGD/C,SAASA,gBAAgBA,CAACA,IAAoBA;YAC1CgD,EAAEA,CAACA,CAACA,KAAKA,KAAKA,sBAAyBA,CAACA,CAACA,CAACA;gBAEtCA,MAAMA,CAACA,IAAIA,CAACA;YAChBA,CAACA;YAEDA,MAAMA,CAACA,CAACA,IAAIA,CAACA,CAACA,CAACA;gBACXA,KAAKA,sBAA6BA,CAACA;gBACnCA,KAAKA,uBAA8BA,CAACA;gBACpCA,KAAKA,qBAA4BA,CAACA;gBAClCA,KAAKA,mBAA0BA,CAACA;gBAChCA,KAAKA,oBAA2BA,CAACA;gBACjCA,KAAKA,mBAA0BA,CAACA;gBAChCA,KAAKA,6BAAmCA;oBACpCA,MAAMA,CAACA,KAAKA,KAAKA,wBAA0BA,CAACA;gBAChDA,KAAKA,8BAAqCA;oBACtCA,MAAMA,CAACA,KAAKA,KAAKA,wBAA0BA,IAAIA,KAAKA,KAAKA,oBAAsBA,IAAIA,KAAKA,KAAKA,uBAAyBA,CAACA;gBAC3HA,KAAKA,0BAAiCA;oBAClCA,MAAMA,CAACA,KAAKA,KAAKA,uBAAyBA,IAAIA,KAAKA,KAAKA,uBAAyBA,IAAIA,KAAKA,KAAKA,2BAA4BA,CAACA;gBAChIA,KAAKA,4BAAmCA;oBACpCA,MAAMA,CAACA,kCAAkCA,EAAEA,CAACA;gBAChDA,KAAKA,uBAA6BA;oBAE9BA,MAAMA,CAACA,KAAKA,KAAKA,yBAA2BA,IAAIA,KAAKA,KAAKA,uBAAyBA,IAAIA,KAAKA,KAAKA,uBAAyBA,IAAIA,KAAKA,KAAKA,uBAAyBA,IAAIA,KAAKA,KAAKA,2BAA4BA,CAACA;gBAChNA,KAAKA,4BAAkCA;oBAEnCA,MAAMA,CAACA,KAAKA,KAAKA,wBAA0BA,IAAIA,KAAKA,KAAKA,uBAAyBA,CAACA;gBACvFA,KAAKA,4BAAkCA,CAACA;gBACxCA,KAAKA,0BAAgCA;oBACjCA,MAAMA,CAACA,KAAKA,KAAKA,0BAA4BA,CAACA;gBAClDA,KAAKA,mBAAyBA;oBAE1BA,MAAMA,CAACA,KAAKA,KAAKA,wBAA0BA,IAAIA,KAAKA,KAAKA,0BAA4BA,IAAIA,KAAKA,KAAKA,uBAAyBA,CAACA;gBACjIA,KAAKA,sBAA4BA;oBAE7BA,MAAMA,CAACA,KAAKA,KAAKA,yBAA2BA,IAAIA,KAAKA,KAAKA,uBAAyBA,CAACA;YAC5FA,CAACA;QACLA,CAACA;QAEDhD,SAASA,kCAAkCA;YAGvCiD,EAAEA,CAACA,CAACA,iBAAiBA,EAAEA,CAACA,CAACA,CAACA;gBACtBA,MAAMA,CAACA,IAAIA,CAACA;YAChBA,CAACA;YAIDA,EAAEA,CAACA,CAACA,KAAKA,KAAKA,kBAAoBA,CAACA,CAACA,CAACA;gBACjCA,MAAMA,CAACA,IAAIA,CAACA;YAChBA,CAACA;YAMDA,EAAEA,CAACA,CAACA,KAAKA,KAAKA,+BAAiCA,CAACA,CAACA,CAACA;gBAC9CA,MAAMA,CAACA,IAAIA,CAACA;YAChBA,CAACA;YAGDA,MAAMA,CAACA,KAAKA,CAACA;QACjBA,CAACA;QAGDjD,SAASA,sBAAsBA;YAC3BkD,GAAGA,CAACA,CAACA,GAAGA,CAACA,IAAIA,GAAGA,CAACA,EAAEA,IAAIA,GAAGA,cAAoBA,EAAEA,IAAIA,EAAEA,EAAEA,CAACA;gBACrDA,EAAEA,CAACA,CAACA,cAAcA,GAAGA,CAACA,CAACA,IAAIA,IAAIA,CAACA,CAACA,CAACA,CAACA;oBAC/BA,EAAEA,CAACA,CAACA,aAAaA,CAACA,IAAIA,EAAwBA,IAAIA,CAACA,IAAIA,gBAAgBA,CAACA,IAAIA,CAACA,CAACA,CAACA,CAACA;wBAC5EA,MAAMA,CAACA,IAAIA,CAACA;oBAChBA,CAACA;gBACLA,CAACA;YACLA,CAACA;YAEDA,MAAMA,CAACA,KAAKA,CAACA;QACjBA,CAACA;QAGDlD,SAASA,SAASA,CAAiBA,IAAoBA,EAAEA,kBAA2BA,EAAEA,YAAqBA;YACvGmD,IAAIA,kBAAkBA,GAAGA,cAAcA,CAACA;YACxCA,cAAcA,IAAIA,CAACA,IAAIA,IAAIA,CAACA;YAC5BA,IAAIA,MAAMA,GAAiBA,EAAEA,CAACA;YAC9BA,MAAMA,CAACA,GAAGA,GAAGA,UAAUA,EAAEA,CAACA;YAC1BA,IAAIA,sBAAsBA,GAAGA,mBAAmBA,EAAEA,CAACA;YACnDA,OAAOA,CAACA,gBAAgBA,CAACA,IAAIA,CAACA,EAAEA,CAACA;gBAC7BA,EAAEA,CAACA,CAACA,aAAaA,CAACA,IAAIA,EAAwBA,KAAKA,CAACA,CAACA,CAACA,CAACA;oBACnDA,IAAIA,OAAOA,GAAGA,YAAYA,EAAEA,CAACA;oBAC7BA,MAAMA,CAACA,IAAIA,CAACA,OAAOA,CAACA,CAACA;oBAErBA,EAAEA,CAACA,CAACA,CAACA,mBAAmBA,EAAEA,IAAIA,kBAAkBA,CAACA,CAACA,CAACA;wBAC/CA,EAAEA,CAACA,CAACA,mBAAmBA,CAACA,OAAOA,CAACA,CAACA,CAACA,CAACA;4BAC/BA,EAAEA,CAACA,CAACA,4BAA4BA,CAACA,OAAOA,CAACA,CAACA,CAACA,CAACA;gCACxCA,oBAAoBA,CAACA,IAAIA,CAACA,CAACA;gCAC3BA,kBAAkBA,GAAGA,KAAKA,CAACA;4BAC/BA,CAACA;wBACLA,CAACA;wBACDA,IAAIA,CAACA,CAACA;4BACFA,kBAAkBA,GAAGA,KAAKA,CAACA;wBAC/BA,CAACA;oBACLA,CAACA;gBACLA,CAACA;gBACDA,IAAIA,CAACA,CAACA;oBACFA,KAAKA,CAACA,oBAAoBA,CAACA,IAAIA,CAACA,CAACA,CAACA;oBAClCA,EAAEA,CAACA,CAACA,sBAAsBA,EAAEA,CAACA,CAACA,CAACA;wBAC3BA,KAAKA,CAACA;oBACVA,CAACA;oBACDA,SAASA,EAAEA,CAACA;gBAChBA,CAACA;YACLA,CAACA;YACDA,oBAAoBA,CAACA,sBAAsBA,CAACA,CAACA;YAC7CA,MAAMA,CAACA,GAAGA,GAAGA,UAAUA,EAAEA,CAACA;YAC1BA,cAAcA,GAAGA,kBAAkBA,CAACA;YACpCA,MAAMA,CAACA,MAAMA,CAACA;QAClBA,CAACA;QAGDnD,SAASA,kBAAkBA,CAAiBA,IAAoBA,EAAEA,YAAqBA;YACnFoD,IAAIA,kBAAkBA,GAAGA,cAAcA,CAACA;YACxCA,cAAcA,IAAIA,CAACA,IAAIA,IAAIA,CAACA;YAC5BA,IAAIA,MAAMA,GAAiBA,EAAEA,CAACA;YAC9BA,MAAMA,CAACA,GAAGA,GAAGA,UAAUA,EAAEA,CAACA;YAE1BA,IAAIA,UAAUA,GAAGA,CAACA,CAACA,CAACA;YACpBA,OAAOA,IAAIA,EAAEA,CAACA;gBACVA,EAAEA,CAACA,CAACA,aAAaA,CAACA,IAAIA,EAAwBA,KAAKA,CAACA,CAACA,CAACA,CAACA;oBACnDA,MAAMA,CAACA,IAAIA,CAACA,YAAYA,EAAEA,CAACA,CAACA;oBAC5BA,UAAUA,GAAGA,OAAOA,CAACA,WAAWA,EAAEA,CAACA;oBACnCA,EAAEA,CAACA,CAACA,aAAaA,CAACA,mBAAqBA,CAACA,CAACA,CAACA,CAACA;wBACvCA,QAAQA,CAACA;oBACbA,CAACA;oBACDA,UAAUA,GAAGA,CAACA,CAACA,CAACA;oBAChBA,EAAEA,CAACA,CAACA,gBAAgBA,CAACA,IAAIA,CAACA,CAACA,CAACA,CAACA;wBACzBA,KAAKA,CAACA;oBACVA,CAACA;oBACDA,KAAKA,CAACA,cAAWA,CAACA,WAAWA,EAAEA,GAAGA,CAACA,CAACA;gBACxCA,CAACA;gBACDA,IAAIA,CAACA,EAAEA,CAACA,CAACA,gBAAgBA,CAACA,IAAIA,CAACA,CAACA,CAACA,CAACA;oBAC9BA,KAAKA,CAACA;gBACVA,CAACA;gBACDA,IAAIA,CAACA,CAACA;oBACFA,KAAKA,CAACA,oBAAoBA,CAACA,IAAIA,CAACA,CAACA,CAACA;oBAClCA,EAAEA,CAACA,CAACA,sBAAsBA,EAAEA,CAACA,CAACA,CAACA;wBAC3BA,KAAKA,CAACA;oBACVA,CAACA;oBACDA,SAASA,EAAEA,CAACA;gBAChBA,CAACA;YACLA,CAACA;YAODA,EAAEA,CAACA,CAACA,UAAUA,IAAIA,CAACA,CAACA,CAACA,CAACA;gBAElBA,MAAMA,CAACA,gBAAgBA,GAAGA,IAAIA,CAACA;YACnCA,CAACA;YAEDA,MAAMA,CAACA,GAAGA,GAAGA,UAAUA,EAAEA,CAACA;YAC1BA,cAAcA,GAAGA,kBAAkBA,CAACA;YACpCA,MAAMA,CAACA,MAAMA,CAACA;QAClBA,CAACA;QAEDpD,SAASA,iBAAiBA;YACtBqD,IAAIA,GAAGA,GAAGA,UAAUA,EAAEA,CAACA;YACvBA,IAAIA,MAAMA,GAAiBA,EAAEA,CAACA;YAC9BA,MAAMA,CAACA,GAAGA,GAAGA,GAAGA,CAACA;YACjBA,MAAMA,CAACA,GAAGA,GAAGA,GAAGA,CAACA;YACjBA,MAAMA,CAACA,MAAMA,CAACA;QAClBA,CAACA;QAEDrD,SAASA,kBAAkBA,CAAiBA,IAAoBA,EAAEA,YAAqBA,EAAEA,IAAgBA,EAAEA,KAAiBA;YACxHsD,EAAEA,CAACA,CAACA,aAAaA,CAACA,IAAIA,CAACA,CAACA,CAACA,CAACA;gBACtBA,IAAIA,MAAMA,GAAGA,kBAAkBA,CAACA,IAAIA,EAAEA,YAAYA,CAACA,CAACA;gBACpDA,aAAaA,CAACA,KAAKA,CAACA,CAACA;gBACrBA,MAAMA,CAACA,MAAMA,CAACA;YAClBA,CAACA;YAEDA,MAAMA,CAACA,iBAAiBA,EAAKA,CAACA;QAClCA,CAACA;QAGDtD,SAASA,eAAeA,CAACA,kBAA2BA;YAChDuD,IAAIA,MAAMA,GAAeA,eAAeA,EAAEA,CAACA;YAC3CA,OAAOA,aAAaA,CAACA,iBAAmBA,CAACA,EAAEA,CAACA;gBACxCA,IAAIA,IAAIA,GAAkBA,UAAUA,CAACA,uBAAwBA,EAAEA,MAAMA,CAACA,GAAGA,CAACA,CAACA;gBAC3EA,IAAIA,CAACA,IAAIA,GAAGA,MAAMA,CAACA;gBACnBA,IAAIA,CAACA,KAAKA,GAAGA,kBAAkBA,GAAGA,mBAAmBA,EAAEA,GAAGA,eAAeA,EAAEA,CAACA;gBAC5EA,MAAMA,GAAGA,UAAUA,CAACA,IAAIA,CAACA,CAACA;YAC9BA,CAACA;YACDA,MAAMA,CAACA,MAAMA,CAACA;QAClBA,CAACA;QAEDvD,SAASA,cAAcA;YACnBwD,IAAIA,IAAIA,GAAGA,UAAUA,CAACA,KAAKA,CAACA,CAACA;YAC7BA,SAASA,EAAEA,CAACA;YACZA,MAAMA,CAACA,UAAUA,CAACA,IAAIA,CAACA,CAACA;QAC5BA,CAACA;QAEDxD,SAASA,uBAAuBA;YAC5ByD,IAAIA,QAAQA,GAAuBA,UAAUA,CAACA,4BAA6BA,CAACA,CAACA;YAE7EA,QAAQA,CAACA,IAAIA,GAAGA,gBAAgBA,EAAEA,CAACA;YACnCA,QAAKA,CAACA,MAAMA,CAACA,QAAQA,CAACA,IAAIA,CAACA,IAAIA,KAAKA,qBAAuBA,EAAEA,oCAAoCA,CAACA,CAACA;YAEnGA,IAAIA,aAAaA,GAA4BA,EAAEA,CAACA;YAChDA,aAAaA,CAACA,GAAGA,GAAGA,UAAUA,EAAEA,CAACA;YAEjCA,GAAGA,CAACA;gBACAA,aAAaA,CAACA,IAAIA,CAACA,iBAAiBA,EAAEA,CAACA,CAACA;YAC5CA,CAACA,QACMA,aAAaA,CAACA,aAAaA,CAACA,MAAMA,GAAGA,CAACA,CAACA,CAACA,OAAOA,CAACA,IAAIA,KAAKA,uBAAyBA,EAACA;YAE1FA,aAAaA,CAACA,GAAGA,GAAGA,UAAUA,EAAEA,CAACA;YACjCA,QAAQA,CAACA,aAAaA,GAAGA,aAAaA,CAACA;YAEvCA,MAAMA,CAACA,UAAUA,CAACA,QAAQA,CAACA,CAACA;QAChCA,CAACA;QAEDzD,SAASA,iBAAiBA;YACtB0D,IAAIA,IAAIA,GAAiBA,UAAUA,CAACA,sBAAuBA,CAACA,CAACA;YAC7DA,IAAIA,CAACA,UAAUA,GAAGA,UAAUA,CAACA,eAAeA,CAACA,CAACA;YAE9CA,IAAIA,OAA0BA,CAACA;YAE/BA,EAAEA,CAACA,CAACA,KAAKA,KAAKA,wBAA0BA,CAACA,CAACA,CAACA;gBACvCA,mBAAmBA,EAAEA,CAAAA;gBACrBA,OAAOA,GAAGA,gBAAgBA,EAAEA,CAACA;YACjCA,CAACA;YACDA,IAAIA,CAACA,CAACA;gBACFA,KAAKA,CAACA,cAAWA,CAACA,iCAAiCA,CAACA,CAACA;gBACrDA,OAAOA,GAAsBA,iBAAiBA,EAAEA,CAACA;gBACjDA,OAAOA,CAACA,IAAIA,GAAGA,EAAEA,CAACA;YACtBA,CAACA;YAEDA,IAAIA,CAACA,OAAOA,GAAGA,OAAOA,CAACA;YAEvBA,MAAMA,CAACA,UAAUA,CAACA,IAAIA,CAACA,CAACA;QAC5BA,CAACA;QAED1D,SAASA,gBAAgBA,CAACA,UAAoBA;YAC1C2D,IAAIA,IAAIA,GAAsBA,UAAUA,CAACA,KAAKA,CAACA,CAACA;YAChDA,IAAIA,IAAIA,GAAGA,OAAOA,CAACA,aAAaA,EAAEA,CAACA;YACnCA,IAAIA,CAACA,IAAIA,GAAGA,UAAUA,GAAGA,gBAAgBA,CAACA,IAAIA,CAACA,GAAGA,IAAIA,CAACA;YAEvDA,IAAIA,QAAQA,GAAGA,OAAOA,CAACA,WAAWA,EAAEA,CAACA;YACrCA,SAASA,EAAEA,CAACA;YACZA,UAAUA,CAACA,IAAIA,CAACA,CAACA;YAQjBA,EAAEA,CAACA,CAACA,IAAIA,CAACA,IAAIA,KAAKA,sBAAyBA,IACpCA,UAAUA,CAACA,UAAUA,CAACA,QAAQA,CAACA,KAAKA,WAAiBA,IACrDA,eAAYA,CAACA,UAAUA,CAACA,UAAUA,CAACA,QAAQA,GAAGA,CAACA,CAACA,CAACA,CAACA,CAACA,CAACA;gBAEvDA,IAAIA,CAACA,KAAKA,IAAIA,uBAAsBA,CAACA;YACzCA,CAACA;YAEDA,MAAMA,CAACA,IAAIA,CAACA;QAChBA,CAACA;QAED3D,SAASA,kBAAkBA;YACvB4D,EAAEA,CAACA,CAACA,KAAKA,KAAKA,qBAAwBA,CAACA,CAACA,CAACA;gBACrCA,MAAMA,CAACA,gBAAgBA,CAAiBA,IAAIA,CAACA,CAACA;YAClDA,CAACA;YACDA,KAAKA,CAACA,cAAWA,CAACA,uBAAuBA,CAACA,CAACA;YAC3CA,MAAMA,CAAoBA,iBAAiBA,EAAEA,CAACA;QAClDA,CAACA;QAID5D,SAASA,kBAAkBA;YACvB6D,IAAIA,IAAIA,GAAsBA,UAAUA,CAACA,uBAAwBA,CAACA,CAACA;YACnEA,IAAIA,CAACA,QAAQA,GAAGA,eAAeA,CAAwBA,KAAKA,CAACA,CAACA;YAC9DA,EAAEA,CAACA,CAACA,CAACA,OAAOA,CAACA,qBAAqBA,EAAEA,IAAIA,KAAKA,KAAKA,sBAAwBA,CAACA,CAACA,CAACA;gBACzEA,IAAIA,CAACA,aAAaA,GAAGA,kBAAkBA,EAAEA,CAACA;YAC9CA,CAACA;YACDA,MAAMA,CAACA,UAAUA,CAACA,IAAIA,CAACA,CAACA;QAC5BA,CAACA;QAED7D,SAASA,cAAcA;YACnB8D,IAAIA,IAAIA,GAAkBA,UAAUA,CAACA,mBAAoBA,CAACA,CAACA;YAC3DA,aAAaA,CAACA,sBAAwBA,CAACA,CAACA;YACxCA,IAAIA,CAACA,QAAQA,GAAGA,eAAeA,CAAwBA,IAAIA,CAACA,CAACA;YAC7DA,MAAMA,CAACA,UAAUA,CAACA,IAAIA,CAACA,CAACA;QAC5BA,CAACA;QAED9D,SAASA,kBAAkBA;YACvB+D,IAAIA,IAAIA,GAA6BA,UAAUA,CAACA,uBAAwBA,CAACA,CAACA;YAC1EA,IAAIA,CAACA,IAAIA,GAAGA,eAAeA,EAAEA,CAACA;YAC9BA,EAAEA,CAACA,CAACA,aAAaA,CAACA,uBAAyBA,CAACA,CAACA,CAACA,CAACA;gBAK3CA,EAAEA,CAACA,CAACA,aAAaA,EAAEA,IAAIA,CAACA,mBAAmBA,EAAEA,CAACA,CAACA,CAACA;oBAC5CA,IAAIA,CAACA,UAAUA,GAAGA,SAASA,EAAEA,CAACA;gBAClCA,CAACA;gBACDA,IAAIA,CAACA,CAACA;oBAQFA,IAAIA,CAACA,UAAUA,GAAGA,oBAAoBA,EAAEA,CAACA;gBAC7CA,CAACA;YACLA,CAACA;YAEDA,MAAMA,CAACA,UAAUA,CAACA,IAAIA,CAACA,CAACA;QAC5BA,CAACA;QAED/D,SAASA,mBAAmBA;YACxBgE,EAAEA,CAACA,CAACA,KAAKA,KAAKA,sBAAwBA,CAACA,CAACA,CAACA;gBACrCA,MAAMA,CAACA,kBAAkBA,CAACA,uBAA6BA,EAAEA,kBAAkBA,EAAEA,sBAAwBA,EAAEA,yBAA2BA,CAACA,CAACA;YACxIA,CAACA;QACLA,CAACA;QAEDhE,SAASA,kBAAkBA;YACvBiE,MAAMA,CAACA,aAAaA,CAACA,mBAAqBA,CAACA,GACrCA,KAAKA,KAAKA,qBAAwBA,GAC9BA,kBAAkBA,EAAEA,GACpBA,SAASA,EAAEA,GACfA,SAASA,CAACA;QACpBA,CAACA;QAEDjE,SAASA,kBAAkBA;YACvBkE,MAAMA,CAACA,KAAKA,KAAKA,uBAAyBA,IAAIA,YAAYA,EAAEA,IAAIA,UAAUA,CAACA,KAAKA,CAACA,CAACA;QACtFA,CAACA;QAEDlE,SAASA,YAAYA,CAACA,IAAUA,EAAEA,SAAyBA;YACvDmE,EAAEA,CAACA,CAACA,SAASA,CAACA,CAACA,CAACA;gBACZA,IAAIA,CAACA,KAAKA,IAAIA,SAASA,CAACA,KAAKA,CAACA;gBAC9BA,IAAIA,CAACA,SAASA,GAAGA,SAASA,CAACA;YAC/BA,CAACA;QACLA,CAACA;QAEDnE,SAASA,cAAcA;YACnBoE,IAAIA,IAAIA,GAAyBA,UAAUA,CAACA,mBAAoBA,CAACA,CAACA;YAClEA,IAAIA,SAASA,GAAGA,cAAcA,EAAEA,CAACA;YACjCA,YAAYA,CAACA,IAAIA,EAAEA,SAASA,CAACA,CAACA;YAC9BA,EAAEA,CAACA,CAACA,aAAaA,CAACA,uBAAyBA,CAACA,CAACA,CAACA,CAACA;gBAC3CA,IAAIA,CAACA,KAAKA,IAAIA,YAAcA,CAACA;YACjCA,CAACA;YAMDA,IAAIA,CAACA,IAAIA,GAAGA,2BAA2BA,EAAEA,GACnCA,gBAAgBA,CAACA,eAAeA,CAACA,GACjCA,eAAeA,EAAEA,CAACA;YAExBA,EAAEA,CAACA,CAACA,IAAIA,CAACA,IAAIA,CAACA,IAAIA,KAAKA,iBAAkBA,IAAIA,IAAIA,CAACA,KAAKA,KAAKA,CAACA,IAAIA,UAAUA,CAACA,KAAKA,CAACA,CAACA,CAACA,CAACA;gBASjFA,SAASA,EAAEA,CAACA;YAChBA,CAACA;YAEDA,EAAEA,CAACA,CAACA,aAAaA,CAACA,sBAAwBA,CAACA,CAACA,CAACA,CAACA;gBAC1CA,IAAIA,CAACA,KAAKA,IAAIA,oBAAsBA,CAACA;YACzCA,CAACA;YACDA,IAAIA,CAACA,IAAIA,GAAGA,kBAAkBA,EAAEA,CAACA;YACjCA,IAAIA,CAACA,WAAWA,GAAGA,2BAA2BA,EAAEA,GAC1CA,uBAAuBA,CAACA,yBAAyBA,CAACA,GAClDA,yBAAyBA,EAAEA,CAACA;YAUlCA,MAAMA,CAACA,UAAUA,CAACA,IAAIA,CAACA,CAACA;QAC5BA,CAACA;QAEDpE,SAASA,yBAAyBA;YAC9BqE,MAAMA,CAACA,gBAAgBA,CAAiBA,IAAIA,CAACA,CAACA;QAClDA,CAACA;QAEDrE,SAASA,cAAcA,CAACA,IAAgBA,EAAEA,WAAuBA,EAAEA,mBAA4BA,EAAEA,iCAA0CA;YACvIsE,IAAIA,SAASA,GAAoBA,EAAEA,CAACA;YACpCA,aAAaA,CAACA,IAAIA,EAAEA,WAAWA,EAAEA,mBAAmBA,EAAEA,iCAAiCA,EAAEA,SAASA,CAACA,CAACA;YACpGA,MAAMA,CAACA,SAASA,CAACA;QACrBA,CAACA;QAEDtE,SAASA,aAAaA,CACdA,IAAgBA,EAChBA,WAAuBA,EACvBA,mBAA4BA,EAC5BA,iCAA0CA,EAC1CA,SAA0BA;YAE9BuE,EAAEA,CAACA,CAACA,IAAIA,KAAKA,4BAA6BA,CAACA,CAACA,CAACA;gBACzCA,aAAaA,CAACA,mBAAqBA,CAACA,CAACA;YACzCA,CAACA;YACDA,SAASA,CAACA,cAAcA,GAAGA,mBAAmBA,EAAEA,CAACA;YACjDA,SAASA,CAACA,UAAUA,GAAGA,kBAAkBA,CAACA,iCAAiCA,CAACA,CAACA;YAE7EA,EAAEA,CAACA,CAACA,mBAAmBA,CAACA,CAACA,CAACA;gBACtBA,aAAaA,CAACA,WAAWA,CAACA,CAACA;gBAC3BA,SAASA,CAACA,IAAIA,GAAGA,SAASA,EAAEA,CAACA;YACjCA,CAACA;YACDA,IAAIA,CAACA,EAAEA,CAACA,CAACA,aAAaA,CAACA,WAAWA,CAACA,CAACA,CAACA,CAACA;gBAClCA,SAASA,CAACA,IAAIA,GAAGA,SAASA,EAAEA,CAACA;YACjCA,CAACA;QACLA,CAACA;QAMDvE,SAASA,kBAAkBA,CAACA,iCAA0CA;YAelEwE,EAAEA,CAACA,CAACA,aAAaA,CAACA,uBAAyBA,CAACA,CAACA,CAACA,CAACA;gBAC3CA,IAAIA,iBAAiBA,GAAGA,cAAcA,EAAEA,CAACA;gBACzCA,IAAIA,8BAA8BA,GAAGA,2BAA2BA,EAAEA,CAACA;gBAEnEA,eAAeA,CAACA,iCAAiCA,CAACA,CAACA;gBACnDA,4BAA4BA,CAACA,iCAAiCA,CAACA,CAACA;gBAEhEA,IAAIA,MAAMA,GAAGA,kBAAkBA,CAACA,mBAAyBA,EAAEA,cAAcA,CAACA,CAACA;gBAC3EA,aAAaA,CAACA,wBAA0BA,CAACA,CAACA;gBAE1CA,eAAeA,CAACA,iBAAiBA,CAACA,CAACA;gBACnCA,4BAA4BA,CAACA,8BAA8BA,CAACA,CAACA;gBAE7DA,MAAMA,CAACA,MAAMA,CAACA;YAClBA,CAACA;YAEDA,MAAMA,CAACA,iBAAiBA,EAAwBA,CAACA;QACrDA,CAACA;QAEDxE,SAASA,oBAAoBA,CAACA,IAAgBA,EAAEA,WAAuBA;YACnEyE,IAAIA,IAAIA,GAAyBA,UAAUA,CAACA,IAAIA,CAACA,CAACA;YAClDA,aAAaA,CAACA,IAAIA,EAAEA,WAAWA,EAA4BA,KAAKA,EAAyCA,KAAKA,EAAEA,IAAIA,CAACA,CAACA;YACtHA,cAAcA,EAAEA,CAACA;YACjBA,MAAMA,CAACA,UAAUA,CAACA,IAAIA,CAACA,CAACA;QAC5BA,CAACA;QAEDzE,SAASA,yBAAyBA,CAACA,SAAiBA,EAAEA,SAAyBA;YAC3E0E,IAAIA,IAAIA,GAAyBA,UAAUA,CAACA,wBAAyBA,EAAEA,SAASA,CAACA,CAACA;YAClFA,YAAYA,CAACA,IAAIA,EAAEA,SAASA,CAACA,CAACA;YAC9BA,IAAIA,CAACA,UAAUA,GAAGA,kBAAkBA,CAACA,mBAAyBA,EAAEA,cAAcA,EAAEA,yBAA2BA,EAAEA,0BAA4BA,CAACA,CAACA;YAC3IA,IAAIA,CAACA,IAAIA,GAAGA,mBAAmBA,EAAEA,CAACA;YAClCA,cAAcA,EAAEA,CAACA;YACjBA,MAAMA,CAACA,UAAUA,CAACA,IAAIA,CAACA,CAAAA;QAC3BA,CAACA;QAED1E,SAASA,qBAAqBA;YAC1B2E,IAAIA,SAASA,GAAGA,OAAOA,CAACA,WAAWA,EAAEA,CAACA;YACtCA,IAAIA,IAAIA,GAAGA,iBAAiBA,EAAEA,CAACA;YAC/BA,IAAIA,KAAKA,GAAGA,CAACA,CAACA;YACdA,EAAEA,CAACA,CAACA,aAAaA,CAACA,sBAAwBA,CAACA,CAACA,CAACA,CAACA;gBAC1CA,KAAKA,GAAGA,oBAAsBA,CAACA;YACnCA,CAACA;YAEDA,EAAEA,CAACA,CAACA,KAAKA,KAAKA,uBAAyBA,IAAIA,KAAKA,KAAKA,sBAAwBA,CAACA,CAACA,CAACA;gBAC5EA,IAAIA,MAAMA,GAAsBA,UAAUA,CAACA,gBAAiBA,EAAEA,SAASA,CAACA,CAACA;gBACzEA,MAAMA,CAACA,IAAIA,GAAGA,IAAIA,CAACA;gBACnBA,MAAMA,CAACA,KAAKA,GAAGA,KAAKA,CAACA;gBAIrBA,aAAaA,CAACA,uBAAwBA,EAAEA,mBAAqBA,EAA4BA,KAAKA,EAAyCA,KAAKA,EAAEA,MAAMA,CAACA,CAACA;gBAEtJA,cAAcA,EAAEA,CAACA;gBACjBA,MAAMA,CAACA,UAAUA,CAACA,MAAMA,CAACA,CAACA;YAC9BA,CAACA;YACDA,IAAIA,CAACA,CAACA;gBACFA,IAAIA,QAAQA,GAAwBA,UAAUA,CAACA,kBAAmBA,EAAEA,SAASA,CAACA,CAACA;gBAC/EA,QAAQA,CAACA,IAAIA,GAAGA,IAAIA,CAACA;gBACrBA,QAAQA,CAACA,KAAKA,GAAGA,KAAKA,CAACA;gBACvBA,QAAQA,CAACA,IAAIA,GAAGA,mBAAmBA,EAAEA,CAACA;gBACtCA,cAAcA,EAAEA,CAACA;gBACjBA,MAAMA,CAACA,UAAUA,CAACA,QAAQA,CAACA,CAACA;YAChCA,CAACA;QACLA,CAACA;QAED3E,SAASA,mBAAmBA;YACxB4E,MAAMA,CAACA,CAACA,KAAKA,CAACA,CAACA,CAACA;gBACZA,KAAKA,uBAAyBA,CAACA;gBAC/BA,KAAKA,sBAAwBA,CAACA;gBAC9BA,KAAKA,yBAA2BA;oBAC5BA,MAAMA,CAACA,IAAIA,CAACA;gBAChBA;oBACIA,MAAMA,CAACA,cAAcA,EAAEA,IAAIA,SAASA,CAACA,cAAMA,OAAAA,SAASA,EAAEA,KAAKA,uBAAyBA,IAAIA,KAAKA,KAAKA,sBAAwBA,IAAIA,KAAKA,KAAKA,sBAAwBA,IAC5JA,KAAKA,KAAKA,mBAAqBA,IAAIA,iBAAiBA,EAAEA,EADfA,CACeA,CAACA,CAACA;YACpEA,CAACA;QACLA,CAACA;QAED5E,SAASA,eAAeA;YACpB6E,MAAMA,CAACA,CAACA,KAAKA,CAACA,CAACA,CAACA;gBACZA,KAAKA,uBAAyBA,CAACA;gBAC/BA,KAAKA,sBAAwBA;oBACzBA,MAAMA,CAACA,oBAAoBA,CAACA,uBAAwBA,EAAEA,mBAAqBA,CAACA,CAACA;gBACjFA,KAAKA,yBAA2BA;oBAC5BA,MAAMA,CAACA,yBAAyBA,CAACA,OAAOA,CAACA,WAAWA,EAAEA,EAAiBA,SAASA,CAACA,CAACA;gBACtFA,KAAKA,mBAAqBA;oBACtBA,EAAEA,CAACA,CAACA,SAASA,CAACA,cAAMA,OAAAA,SAASA,EAAEA,KAAKA,uBAAyBA,IAAIA,KAAKA,KAAKA,sBAAwBA,EAA/EA,CAA+EA,CAACA,CAACA,CAACA,CAACA;wBACnGA,MAAMA,CAACA,oBAAoBA,CAACA,4BAA6BA,EAAEA,mBAAqBA,CAACA,CAACA;oBACtFA,CAACA;gBACLA,KAAKA,qBAAwBA,CAACA;gBAC9BA,KAAKA,sBAAyBA;oBAC1BA,MAAMA,CAACA,qBAAqBA,EAAEA,CAACA;gBACnCA;oBACIA,EAAEA,CAACA,CAACA,KAAKA,IAAIA,mBAAqBA,CAACA,CAACA,CAACA;wBACjCA,MAAMA,CAACA,qBAAqBA,EAAEA,CAACA;oBACnCA,CAACA;YACTA,CAACA;QACLA,CAACA;QAED7E,SAASA,gBAAgBA;YACrB8E,IAAIA,IAAIA,GAAoBA,UAAUA,CAACA,qBAAsBA,CAACA,CAACA;YAC/DA,IAAIA,CAACA,OAAOA,GAAGA,eAAeA,EAAEA,CAACA;YACjCA,MAAMA,CAACA,UAAUA,CAACA,IAAIA,CAACA,CAACA;QAC5BA,CAACA;QAED9E,SAASA,eAAeA;YACpB+E,IAAIA,OAA+BA,CAACA;YACpCA,EAAEA,CAACA,CAACA,aAAaA,CAACA,uBAAyBA,CAACA,CAACA,CAACA,CAACA;gBAC3CA,OAAOA,GAAGA,SAASA,CAACA,mBAA0BA,EAAyBA,KAAKA,EAAEA,eAAeA,CAACA,CAACA;gBAC/FA,aAAaA,CAACA,wBAA0BA,CAACA,CAACA;YAC9CA,CAACA;YACDA,IAAIA,CAACA,CAACA;gBACFA,OAAOA,GAAGA,iBAAiBA,EAAQA,CAACA;YACxCA,CAACA;YAEDA,MAAMA,CAACA,OAAOA,CAACA;QACnBA,CAACA;QAED/E,SAASA,cAAcA;YACnBgF,IAAIA,IAAIA,GAAkBA,UAAUA,CAACA,mBAAoBA,CAACA,CAACA;YAC3DA,IAAIA,CAACA,YAAYA,GAAGA,kBAAkBA,CAACA,0BAAgCA,EAAEA,SAASA,EAAEA,yBAA2BA,EAAEA,0BAA4BA,CAACA,CAACA;YAC/IA,MAAMA,CAACA,UAAUA,CAACA,IAAIA,CAACA,CAACA;QAC5BA,CAACA;QAEDhF,SAASA,cAAcA;YACnBiF,IAAIA,IAAIA,GAAkBA,UAAUA,CAACA,mBAAoBA,CAACA,CAACA;YAC3DA,aAAaA,CAACA,uBAAyBA,CAACA,CAACA;YACzCA,IAAIA,CAACA,IAAIA,GAAGA,SAASA,EAAEA,CAACA;YACxBA,aAAaA,CAACA,wBAA0BA,CAACA,CAACA;YAC1CA,MAAMA,CAACA,UAAUA,CAACA,IAAIA,CAACA,CAACA;QAC5BA,CAACA;QAEDjF,SAASA,iBAAiBA,CAACA,QAAoBA;YAC3CkF,IAAIA,IAAIA,GAAyBA,UAAUA,CAACA,QAAQA,CAACA,CAACA;YACtDA,aAAaA,CAACA,QAAQA,KAAKA,sBAAuBA,GAAGA,uBAAwBA,GAAGA,4BAA6BA,EACzGA,+BAAiCA,EAA4BA,IAAIA,EAAyCA,KAAKA,EAAEA,IAAIA,CAACA,CAACA;YAC3HA,MAAMA,CAACA,UAAUA,CAACA,IAAIA,CAACA,CAACA;QAC5BA,CAACA;QAEDlF,SAASA,oBAAoBA;YACzBmF,IAAIA,IAAIA,GAAGA,cAAcA,EAAEA,CAACA;YAC5BA,MAAMA,CAACA,KAAKA,KAAKA,iBAAmBA,GAAGA,SAASA,GAAGA,IAAIA,CAACA;QAC5DA,CAACA;QAEDnF,SAASA,iBAAiBA;YACtBoF,MAAMA,CAACA,CAACA,KAAKA,CAACA,CAACA,CAACA;gBACZA,KAAKA,oBAAqBA,CAACA;gBAC3BA,KAAKA,uBAAwBA,CAACA;gBAC9BA,KAAKA,uBAAwBA,CAACA;gBAC9BA,KAAKA,wBAAyBA,CAACA;gBAC/BA,KAAKA,oBAAsBA;oBACvBA,IAAIA,IAAIA,GAAGA,QAAQA,CAACA,oBAAoBA,CAACA,CAACA;oBAC1CA,MAAMA,CAACA,IAAIA,IAAIA,kBAAkBA,EAAEA,CAACA;gBACxCA,KAAKA,sBAAwBA;oBACzBA,MAAMA,CAACA,cAAcA,EAAEA,CAACA;gBAC5BA,KAAKA,uBAAyBA;oBAC1BA,MAAMA,CAACA,gBAAgBA,EAAEA,CAACA;gBAC9BA,KAAKA,yBAA2BA;oBAC5BA,MAAMA,CAACA,cAAcA,EAAEA,CAACA;gBAC5BA,KAAKA,uBAAyBA;oBAC1BA,MAAMA,CAACA,cAAcA,EAAEA,CAACA;gBAC5BA;oBACIA,EAAEA,CAACA,CAACA,YAAYA,EAAEA,CAACA,CAACA,CAACA;wBACjBA,MAAMA,CAACA,kBAAkBA,EAAEA,CAACA;oBAChCA,CAACA;YACTA,CAACA;YACDA,KAAKA,CAACA,cAAWA,CAACA,aAAaA,CAACA,CAACA;YACjCA,MAAMA,CAAWA,iBAAiBA,EAAEA,CAACA;QACzCA,CAACA;QAEDpF,SAASA,aAAaA;YAClBqF,MAAMA,CAACA,CAACA,KAAKA,CAACA,CAACA,CAACA;gBACZA,KAAKA,oBAAqBA,CAACA;gBAC3BA,KAAKA,uBAAwBA,CAACA;gBAC9BA,KAAKA,uBAAwBA,CAACA;gBAC9BA,KAAKA,wBAAyBA,CAACA;gBAC/BA,KAAKA,oBAAsBA,CAACA;gBAC5BA,KAAKA,sBAAwBA,CAACA;gBAC9BA,KAAKA,uBAAyBA,CAACA;gBAC/BA,KAAKA,yBAA2BA,CAACA;gBACjCA,KAAKA,sBAAwBA,CAACA;gBAC9BA,KAAKA,mBAAqBA;oBACtBA,MAAMA,CAACA,IAAIA,CAACA;gBAChBA,KAAKA,uBAAyBA;oBAG1BA,MAAMA,CAACA,SAASA,CAACA;wBACbA,SAASA,EAAEA,CAACA;wBACZA,MAAMA,CAACA,KAAKA,KAAKA,wBAA0BA,IAAIA,kBAAkBA,EAAEA,IAAIA,aAAaA,EAAEA,CAACA;oBAC3FA,CAACA,CAACA,CAACA;gBACPA;oBACIA,MAAMA,CAACA,YAAYA,EAAEA,CAACA;YAC9BA,CAACA;QACLA,CAACA;QAEDrF,SAASA,gBAAgBA;YACrBsF,IAAIA,IAAIA,GAAGA,iBAAiBA,EAAEA,CAACA;YAC/BA,OAAOA,CAACA,OAAOA,CAACA,qBAAqBA,EAAEA,IAAIA,aAAaA,CAACA,yBAA2BA,CAACA,EAAEA,CAACA;gBACpFA,aAAaA,CAACA,0BAA4BA,CAACA,CAACA;gBAC5CA,IAAIA,IAAIA,GAAkBA,UAAUA,CAACA,mBAAoBA,EAAEA,IAAIA,CAACA,GAAGA,CAACA,CAACA;gBACrEA,IAAIA,CAACA,WAAWA,GAAGA,IAAIA,CAACA;gBACxBA,IAAIA,GAAGA,UAAUA,CAACA,IAAIA,CAACA,CAACA;YAC5BA,CAACA;YACDA,MAAMA,CAACA,IAAIA,CAACA;QAChBA,CAACA;QAEDtF,SAASA,cAAcA;YACnBuF,IAAIA,IAAIA,GAAGA,gBAAgBA,EAAEA,CAACA;YAC9BA,EAAEA,CAACA,CAACA,KAAKA,KAAKA,iBAAmBA,CAACA,CAACA,CAACA;gBAChCA,IAAIA,KAAKA,GAAwBA,CAACA,IAAIA,CAACA,CAACA;gBACxCA,KAAKA,CAACA,GAAGA,GAAGA,IAAIA,CAACA,GAAGA,CAACA;gBACrBA,OAAOA,aAAaA,CAACA,iBAAmBA,CAACA,EAAEA,CAACA;oBACxCA,KAAKA,CAACA,IAAIA,CAACA,gBAAgBA,EAAEA,CAACA,CAACA;gBACnCA,CAACA;gBACDA,KAAKA,CAACA,GAAGA,GAAGA,UAAUA,EAAEA,CAACA;gBACzBA,IAAIA,IAAIA,GAAkBA,UAAUA,CAACA,mBAAoBA,EAAEA,IAAIA,CAACA,GAAGA,CAACA,CAACA;gBACrEA,IAAIA,CAACA,KAAKA,GAAGA,KAAKA,CAACA;gBACnBA,IAAIA,GAAGA,UAAUA,CAACA,IAAIA,CAACA,CAACA;YAC5BA,CAACA;YACDA,MAAMA,CAACA,IAAIA,CAACA;QAChBA,CAACA;QAEDvF,SAASA,qBAAqBA;YAC1BwF,MAAMA,CAACA,KAAKA,KAAKA,sBAAwBA,IAAIA,KAAKA,KAAKA,uBAAyBA,IAAIA,SAASA,CAACA;gBAC1FA,SAASA,EAAEA,CAACA;gBACZA,EAAEA,CAACA,CAACA,KAAKA,KAAKA,wBAA0BA,IAAIA,KAAKA,KAAKA,uBAAyBA,CAACA,CAACA,CAACA;oBAG9EA,MAAMA,CAACA,IAAIA,CAACA;gBAChBA,CAACA;gBACDA,EAAEA,CAACA,CAACA,YAAYA,EAAEA,IAAIA,UAAUA,CAACA,KAAKA,CAACA,CAACA,CAACA,CAACA;oBACtCA,SAASA,EAAEA,CAACA;oBACZA,EAAEA,CAACA,CAACA,KAAKA,KAAKA,mBAAqBA,IAAIA,KAAKA,KAAKA,mBAAqBA,IAClEA,KAAKA,KAAKA,sBAAwBA,IAAIA,KAAKA,KAAKA,oBAAsBA,IACtEA,YAAYA,EAAEA,IAAIA,UAAUA,CAACA,KAAKA,CAACA,CAACA,CAACA,CAACA;wBAMtCA,MAAMA,CAACA,IAAIA,CAACA;oBAChBA,CAACA;oBACDA,EAAEA,CAACA,CAACA,KAAKA,KAAKA,wBAA0BA,CAACA,CAACA,CAACA;wBACvCA,SAASA,EAAEA,CAACA;wBACZA,EAAEA,CAACA,CAACA,KAAKA,KAAKA,+BAAiCA,CAACA,CAACA,CAACA;4BAE9CA,MAAMA,CAACA,IAAIA,CAACA;wBAChBA,CAACA;oBACLA,CAACA;gBACLA,CAACA;gBACDA,MAAMA,CAACA,KAAKA,CAACA;YACjBA,CAACA,CAACA,CAACA;QACPA,CAACA;QAEDxF,SAASA,SAASA;YAGdyF,IAAIA,iBAAiBA,GAAGA,cAAcA,EAAEA,CAACA;YACzCA,IAAIA,8BAA8BA,GAAGA,2BAA2BA,EAAEA,CAACA;YAEnEA,eAAeA,CAACA,KAAKA,CAACA,CAACA;YACvBA,4BAA4BA,CAACA,KAAKA,CAACA,CAACA;YAEpCA,IAAIA,MAAMA,GAAGA,eAAeA,EAAEA,CAACA;YAE/BA,eAAeA,CAACA,iBAAiBA,CAACA,CAACA;YACnCA,4BAA4BA,CAACA,8BAA8BA,CAACA,CAACA;YAE7DA,MAAMA,CAACA,MAAMA,CAACA;QAClBA,CAACA;QAEDzF,SAASA,eAAeA;YACpB0F,EAAEA,CAACA,CAACA,qBAAqBA,EAAEA,CAACA,CAACA,CAACA;gBAC1BA,MAAMA,CAACA,iBAAiBA,CAACA,sBAAuBA,CAACA,CAACA;YACtDA,CAACA;YACDA,EAAEA,CAACA,CAACA,KAAKA,KAAKA,mBAAqBA,CAACA,CAACA,CAACA;gBAClCA,MAAMA,CAACA,iBAAiBA,CAACA,yBAA0BA,CAACA,CAACA;YACzDA,CAACA;YACDA,MAAMA,CAACA,cAAcA,EAAEA,CAACA;QAC5BA,CAACA;QAED1F,SAASA,mBAAmBA;YACxB2F,MAAMA,CAACA,aAAaA,CAACA,mBAAqBA,CAACA,GAAGA,SAASA,EAAEA,GAAGA,SAASA,CAACA;QAC1EA,CAACA;QAID3F,SAASA,mBAAmBA;YACxB4F,MAAMA,CAACA,CAACA,KAAKA,CAACA,CAACA,CAACA;gBACZA,KAAKA,oBAAsBA,CAACA;gBAC5BA,KAAKA,qBAAuBA,CAACA;gBAC7BA,KAAKA,oBAAsBA,CAACA;gBAC5BA,KAAKA,oBAAsBA,CAACA;gBAC5BA,KAAKA,qBAAuBA,CAACA;gBAC7BA,KAAKA,sBAAyBA,CAACA;gBAC/BA,KAAKA,qBAAwBA,CAACA;gBAC9BA,KAAKA,qCAAwCA,CAACA;gBAC9CA,KAAKA,qBAAuBA,CAACA;gBAC7BA,KAAKA,uBAAyBA,CAACA;gBAC/BA,KAAKA,yBAA2BA,CAACA;gBACjCA,KAAKA,uBAAyBA,CAACA;gBAC/BA,KAAKA,wBAA0BA,CAACA;gBAChCA,KAAKA,mBAAqBA,CAACA;gBAC3BA,KAAKA,mBAAqBA,CAACA;gBAC3BA,KAAKA,yBAA2BA,CAACA;gBACjCA,KAAKA,kBAAoBA,CAACA;gBAC1BA,KAAKA,mBAAqBA,CAACA;gBAC3BA,KAAKA,mBAAqBA,CAACA;gBAC3BA,KAAKA,yBAA2BA,CAACA;gBACjCA,KAAKA,sBAAwBA,CAACA;gBAC9BA,KAAKA,sBAAwBA,CAACA;gBAC9BA,KAAKA,oBAAsBA,CAACA;gBAC5BA,KAAKA,sBAAwBA,CAACA;gBAC9BA,KAAKA,wBAA0BA,CAACA;gBAChCA,KAAKA,sBAAwBA,CAACA;gBAC9BA,KAAKA,mBAAqBA,CAACA;gBAC3BA,KAAKA,sBAAuBA;oBAIxBA,MAAMA,CAACA,IAAIA,CAACA;gBAChBA;oBACIA,MAAMA,CAACA,YAAYA,EAAEA,CAACA;YAC9BA,CAACA;QACLA,CAACA;QAED5F,SAASA,4BAA4BA;YAEjC6F,MAAMA,CAACA,KAAKA,KAAKA,uBAAyBA,IAAIA,KAAKA,KAAKA,wBAA0BA,IAAIA,mBAAmBA,EAAEA,CAACA;QAChHA,CAACA;QAED7F,SAASA,eAAeA;YAKpB8F,IAAIA,IAAIA,GAAGA,yBAAyBA,EAAEA,CAACA;YACvCA,OAAOA,aAAaA,CAACA,mBAAqBA,CAACA,EAAEA,CAACA;gBAC1CA,IAAIA,GAAGA,oBAAoBA,CAACA,IAAIA,EAAEA,mBAAqBA,EAAEA,yBAAyBA,EAAEA,CAACA,CAACA;YAC1FA,CAACA;YACDA,MAAMA,CAACA,IAAIA,CAACA;QAChBA,CAACA;QAED9F,SAASA,gBAAgBA,CAACA,WAAoBA;YAC1C+F,EAAEA,CAACA,CAACA,KAAKA,KAAKA,oBAAsBA,CAACA,CAACA,CAACA;gBASnCA,EAAEA,CAACA,CAACA,OAAOA,CAACA,qBAAqBA,EAAEA,IAAIA,CAACA,WAAWA,IAAIA,KAAKA,KAAKA,uBAAyBA,CAACA,IAAIA,CAACA,mBAAmBA,EAAEA,CAACA,CAACA,CAACA;oBAGpHA,MAAMA,CAACA,SAASA,CAACA;gBACrBA,CAACA;YACLA,CAACA;YAKDA,aAAaA,CAACA,oBAAsBA,CAACA,CAACA;YACtCA,MAAMA,CAACA,yBAAyBA,EAAEA,CAACA;QACvCA,CAACA;QAED/F,SAASA,yBAAyBA;YAY9BgG,EAAEA,CAACA,CAACA,iBAAiBA,EAAEA,CAACA,CAACA,CAACA;gBACtBA,MAAMA,CAACA,oBAAoBA,EAAEA,CAACA;YAClCA,CAACA;YAMDA,IAAIA,eAAeA,GAAGA,4CAA4CA,EAAEA,CAACA;YACrEA,EAAEA,CAACA,CAACA,eAAeA,CAACA,CAACA,CAACA;gBAClBA,MAAMA,CAACA,eAAeA,CAACA;YAC3BA,CAACA;YAIDA,IAAIA,IAAIA,GAAGA,0BAA0BA,EAAEA,CAACA;YAKxCA,EAAEA,CAACA,CAACA,IAAIA,CAACA,IAAIA,KAAKA,mBAAqBA,IAAIA,KAAKA,KAAKA,+BAAiCA,CAACA,CAACA,CAACA;gBACrFA,MAAMA,CAACA,kCAAkCA,CAAaA,IAAIA,CAACA,CAACA;YAChEA,CAACA;YAKDA,EAAEA,CAACA,CAACA,wBAAwBA,CAACA,IAAIA,CAACA,IAAIA,oBAAoBA,CAACA,KAAKA,CAACA,CAACA,CAACA,CAACA;gBAChEA,IAAIA,QAAQA,GAAGA,KAAKA,CAACA;gBACrBA,SAASA,EAAEA,CAACA;gBACZA,MAAMA,CAACA,oBAAoBA,CAACA,IAAIA,EAAEA,QAAQA,EAAEA,yBAAyBA,EAAEA,CAACA,CAACA;YAC7EA,CAACA;YAGDA,MAAMA,CAACA,IAAIA,CAACA;QAChBA,CAACA;QAEDhG,SAASA,iBAAiBA;YACtBiG,EAAEA,CAACA,CAACA,KAAKA,KAAKA,sBAAuBA,CAACA,CAACA,CAACA;gBAGpCA,EAAEA,CAACA,CAACA,cAAcA,EAAEA,CAACA,CAACA,CAACA;oBACnBA,MAAMA,CAACA,IAAIA,CAACA;gBAChBA,CAACA;gBAEDA,EAAEA,CAACA,CAACA,mBAAmBA,EAAEA,CAACA,CAACA,CAACA;oBAGxBA,MAAMA,CAACA,IAAIA,CAACA;gBAChBA,CAACA;gBAgBDA,MAAMA,CAACA,SAASA,CAACA;oBACbA,SAASA,EAAEA,CAACA;oBACZA,MAAMA,CAACA,CAACA,OAAOA,CAACA,qBAAqBA,EAAEA,IAAIA,YAAYA,EAAEA,CAACA;gBAC9DA,CAACA,CAACA,CAACA;YACPA,CAACA;YAEDA,MAAMA,CAACA,KAAKA,CAACA;QACjBA,CAACA;QAEDjG,SAASA,oBAAoBA;YACzBkG,IAAIA,IAAIA,GAAoBA,UAAUA,CAACA,yBAA0BA,CAACA,CAACA;YAMnEA,SAASA,EAAEA,CAACA;YAEZA,EAAEA,CAACA,CAACA,CAACA,OAAOA,CAACA,qBAAqBA,EAAEA,IAChCA,CAACA,KAAKA,KAAKA,sBAAwBA,IAAIA,mBAAmBA,EAAEA,CAACA,CAACA,CAACA,CAACA;gBAChEA,EAAEA,CAACA,CAACA,aAAaA,CAACA,sBAAwBA,CAACA,CAACA,CAACA,CAACA;oBAC1CA,IAAIA,CAACA,KAAKA,GAAGA,qBAAmBA,CAACA;gBACrCA,CAACA;gBAEDA,IAAIA,CAACA,UAAUA,GAAGA,yBAAyBA,EAAEA,CAACA;gBAC9CA,MAAMA,CAACA,UAAUA,CAACA,IAAIA,CAACA,CAACA;YAC5BA,CAACA;YACDA,IAAIA,CAACA,CAACA;gBAGFA,MAAMA,CAACA,UAAUA,CAACA,IAAIA,CAACA,CAACA;YAC5BA,CAACA;QACLA,CAACA;QAEDlG,SAASA,kCAAkCA,CAACA,UAAsBA;YAC9DmG,QAAKA,CAACA,MAAMA,CAACA,KAAKA,KAAKA,+BAAiCA,EAAEA,gFAAgFA,CAACA,CAACA;YAC5IA,aAAaA,CAACA,+BAAiCA,CAACA,CAACA;YAEjDA,IAAIA,SAASA,GAAyBA,UAAUA,CAACA,mBAAoBA,EAAEA,UAAUA,CAACA,GAAGA,CAACA,CAACA;YACvFA,SAASA,CAACA,IAAIA,GAAGA,UAAUA,CAACA;YAC5BA,UAAUA,CAACA,SAASA,CAACA,CAACA;YAEtBA,IAAIA,UAAUA,GAAoCA,EAAEA,CAACA;YACrDA,UAAUA,CAACA,IAAIA,CAACA,SAASA,CAACA,CAACA;YAC3BA,UAAUA,CAACA,GAAGA,GAAGA,SAASA,CAACA,GAAGA,CAACA;YAC/BA,UAAUA,CAACA,GAAGA,GAAGA,SAASA,CAACA,GAAGA,CAACA;YAE/BA,IAAIA,SAASA,GAAqBA,EAAEA,UAAUA,EAAEA,UAAUA,EAAEA,CAACA;YAE7DA,MAAMA,CAACA,wBAAwBA,CAACA,UAAUA,CAACA,GAAGA,EAAEA,SAASA,CAACA,CAACA;QAC/DA,CAACA;QAEDnG,SAASA,4CAA4CA;YAEjDoG,IAAIA,QAAQA,GAAGA,sCAAsCA,EAAEA,CAACA;YAExDA,EAAEA,CAACA,CAACA,QAAQA,KAAKA,aAAcA,CAACA,CAACA,CAACA;gBAC9BA,MAAMA,CAACA,SAASA,CAACA;YACrBA,CAACA;YAEDA,IAAIA,GAAGA,GAAGA,UAAUA,EAAEA,CAACA;YAEvBA,EAAEA,CAACA,CAACA,QAAQA,KAAKA,YAAaA,CAACA,CAACA,CAACA;gBAE7BA,IAAIA,GAAGA,GAAGA,cAAcA,CAACA,uBAAwBA,EAAEA,mBAAqBA,EAA4BA,KAAKA,EAAyCA,KAAKA,CAACA,CAACA;gBAIzJA,EAAEA,CAACA,CAACA,aAAaA,CAACA,+BAAiCA,CAACA,IAAIA,KAAKA,KAAKA,uBAAyBA,CAACA,CAACA,CAACA;oBAC1FA,MAAMA,CAACA,wBAAwBA,CAACA,GAAGA,EAAEA,GAAGA,CAACA,CAACA;gBAC9CA,CAACA;gBACDA,IAAIA,CAACA,CAACA;oBAEFA,MAAMA,CAACA,sBAAsBA,CAACA,uBAAwBA,EAAEA,GAAGA,EAAaA,SAASA,EAAEA,GAAGA,EAAEA,iBAAiBA,EAAEA,CAACA,CAACA;gBACjHA,CAACA;YACLA,CAACA;YAIDA,IAAIA,GAAGA,GAAGA,sCAAsCA,EAAEA,CAACA;YACnDA,EAAEA,CAACA,CAACA,GAAGA,CAACA,CAACA,CAACA;gBACNA,aAAaA,CAACA,+BAAiCA,CAACA,CAACA;gBACjDA,MAAMA,CAACA,wBAAwBA,CAACA,GAAGA,EAAEA,GAAGA,CAACA,CAACA;YAC9CA,CAACA;YACDA,IAAIA,CAACA,CAACA;gBACFA,MAAMA,CAACA,SAASA,CAACA;YACrBA,CAACA;QACLA,CAACA;QAMDpG,SAASA,sCAAsCA;YAC3CqG,EAAEA,CAACA,CAACA,KAAKA,KAAKA,uBAAyBA,IAAIA,KAAKA,KAAKA,sBAAwBA,CAACA,CAACA,CAACA;gBAC5EA,MAAMA,CAACA,SAASA,CAACA;oBACbA,IAAIA,KAAKA,GAAGA,KAAKA,CAACA;oBAClBA,IAAIA,MAAMA,GAAGA,SAASA,EAAEA,CAACA;oBAEzBA,EAAEA,CAACA,CAACA,KAAKA,KAAKA,uBAAyBA,CAACA,CAACA,CAACA;wBACtCA,EAAEA,CAACA,CAACA,MAAMA,KAAKA,wBAA0BA,CAACA,CAACA,CAACA;4BAKxCA,IAAIA,KAAKA,GAAGA,SAASA,EAAEA,CAACA;4BACxBA,MAAMA,CAACA,CAACA,KAAKA,CAACA,CAACA,CAACA;gCACZA,KAAKA,+BAAiCA,CAACA;gCACvCA,KAAKA,mBAAqBA,CAACA;gCAC3BA,KAAKA,uBAAyBA;oCAC1BA,MAAMA,CAACA,YAAaA,CAACA;gCACzBA;oCACIA,MAAMA,CAACA,aAAcA,CAACA;4BAC9BA,CAACA;wBACLA,CAACA;wBAIDA,EAAEA,CAACA,CAACA,MAAMA,KAAKA,uBAAyBA,CAACA,CAACA,CAACA;4BACvCA,MAAMA,CAACA,YAAaA,CAACA;wBACzBA,CAACA;wBAODA,EAAEA,CAACA,CAACA,CAACA,YAAYA,EAAEA,CAACA,CAACA,CAACA;4BAClBA,MAAMA,CAACA,aAAcA,CAACA;wBAC1BA,CAACA;wBAIDA,EAAEA,CAACA,CAACA,SAASA,EAAEA,KAAKA,mBAAqBA,CAACA,CAACA,CAACA;4BACxCA,MAAMA,CAACA,YAAaA,CAACA;wBACzBA,CAACA;wBAIDA,MAAMA,CAACA,eAAgBA,CAACA;oBAC5BA,CAACA;oBACDA,IAAIA,CAACA,CAACA;wBACFA,QAAKA,CAACA,MAAMA,CAACA,KAAKA,KAAKA,sBAAwBA,CAACA,CAACA;wBAIjDA,EAAEA,CAACA,CAACA,CAACA,YAAYA,EAAEA,CAACA,CAACA,CAACA;4BAClBA,MAAMA,CAACA,aAAcA,CAACA;wBAC1BA,CAACA;wBAGDA,MAAMA,CAACA,eAAgBA,CAACA;oBAC5BA,CAACA;gBACLA,CAACA,CAACA,CAACA;YACPA,CAACA;YACDA,EAAEA,CAACA,CAACA,KAAKA,KAAKA,+BAAiCA,CAACA,CAACA,CAACA;gBAI9CA,MAAMA,CAACA,YAAaA,CAACA;YACzBA,CAACA;YAEDA,MAAMA,CAACA,aAAcA,CAACA;QAC1BA,CAACA;QAEDrG,SAASA,sCAAsCA;YAC3CsG,MAAMA,CAACA,QAAQA,CAACA;gBAEZA,IAAIA,GAAGA,GAAGA,cAAcA,CAACA,uBAAwBA,EAAEA,mBAAqBA,EAA4BA,KAAKA,EAAyCA,KAAKA,CAACA,CAACA;gBAUzJA,EAAEA,CAACA,CAACA,KAAKA,KAAKA,+BAAiCA,IAAIA,KAAKA,KAAKA,uBAAyBA,CAACA,CAACA,CAACA;oBACrFA,MAAMA,CAACA,GAAGA,CAACA;gBACfA,CAACA;gBAEDA,MAAMA,CAACA,SAASA,CAACA;YACrBA,CAACA,CAACA,CAACA;QACPA,CAACA;QAEDtG,SAASA,wBAAwBA,CAACA,GAAWA,EAAEA,GAAoBA;YAC/DuG,IAAIA,IAAUA,CAACA;YAEfA,EAAEA,CAACA,CAACA,KAAKA,KAAKA,uBAAyBA,CAACA,CAACA,CAACA;gBACtCA,IAAIA,GAAGA,kBAAkBA,CAAiBA,KAAKA,EAA+BA,KAAKA,CAACA,CAACA;YACzFA,CAACA;YACDA,IAAIA,CAACA,EAAEA,CAACA,CAACA,WAAWA,CAAuBA,IAAIA,CAACA,IAAIA,CAACA,4BAA4BA,EAAEA,IAAIA,KAAKA,KAAKA,wBAA0BA,CAACA,CAACA,CAACA;gBAe1HA,IAAIA,GAAGA,kBAAkBA,CAAiBA,KAAKA,EAA+BA,IAAIA,CAACA,CAACA;YACxFA,CAACA;YACDA,IAAIA,CAACA,CAACA;gBACFA,IAAIA,GAAGA,yBAAyBA,EAAEA,CAACA;YACvCA,CAACA;YAEDA,MAAMA,CAACA,sBAAsBA,CAACA,uBAAwBA,EAAEA,GAAGA,EAAaA,SAASA,EAAEA,GAAGA,EAAEA,IAAIA,CAACA,CAACA;QAClGA,CAACA;QAEDvG,SAASA,0BAA0BA;YAI/BwG,IAAIA,IAAIA,GAAGA,oBAAoBA,CAACA,oBAAoBA,EAAEA,EAAqBA,CAACA,CAACA,CAACA;YAC9EA,OAAOA,aAAaA,CAACA,sBAAwBA,CAACA,EAAEA,CAACA;gBAC7CA,IAAIA,IAAIA,GAA0BA,UAAUA,CAACA,+BAAgCA,EAAEA,IAAIA,CAACA,GAAGA,CAACA,CAACA;gBACzFA,IAAIA,CAACA,SAASA,GAAGA,IAAIA,CAACA;gBACtBA,IAAIA,CAACA,QAAQA,GAAGA,UAAUA,CAACA,yBAAyBA,CAACA,CAACA;gBACtDA,aAAaA,CAACA,mBAAqBA,CAACA,CAACA;gBACrCA,IAAIA,CAACA,SAASA,GAAGA,yBAAyBA,EAAEA,CAACA;gBAC7CA,IAAIA,GAAGA,UAAUA,CAACA,IAAIA,CAACA,CAACA;YAC5BA,CAACA;YACDA,MAAMA,CAACA,IAAIA,CAACA;QAChBA,CAACA;QAEDxG,SAASA,oBAAoBA,CAACA,IAAgBA,EAAEA,aAAqBA;YACjEyG,OAAOA,IAAIA,EAAEA,CAACA;gBACVA,kBAAkBA,EAAEA,CAACA;gBACrBA,IAAIA,UAAUA,GAAGA,qBAAqBA,EAAEA,CAACA;gBACzCA,EAAEA,CAACA,CAACA,UAAUA,IAAIA,UAAUA,GAAGA,aAAaA,IAAIA,CAACA,CAACA,mBAAmBA,EAAEA,IAAIA,KAAKA,KAAKA,kBAAoBA,CAACA,CAACA,CAACA,CAACA;oBACzGA,IAAIA,QAAQA,GAAGA,KAAKA,CAACA;oBACrBA,SAASA,EAAEA,CAACA;oBACZA,IAAIA,GAAGA,oBAAoBA,CAACA,IAAIA,EAAEA,QAAQA,EAAEA,oBAAoBA,CAACA,oBAAoBA,EAAEA,EAAEA,UAAUA,CAACA,CAACA,CAACA;oBACtGA,QAAQA,CAACA;gBACbA,CAACA;gBACDA,MAAMA,CAACA,IAAIA,CAACA;YAChBA,CAACA;QACLA,CAACA;QAEDzG,SAASA,qBAAqBA;YAC1B0G,MAAMA,CAACA,CAACA,KAAKA,CAACA,CAACA,CAACA;gBACZA,KAAKA,oBAAsBA;oBACvBA,MAAMA,CAACA,CAACA,CAACA;gBACbA,KAAKA,gCAAkCA;oBACnCA,MAAMA,CAACA,CAACA,CAACA;gBACbA,KAAKA,iBAAmBA;oBACpBA,MAAMA,CAACA,CAACA,CAACA;gBACbA,KAAKA,mBAAqBA;oBACtBA,MAAMA,CAACA,CAACA,CAACA;gBACbA,KAAKA,uBAAyBA;oBAC1BA,MAAMA,CAACA,CAACA,CAACA;gBACbA,KAAKA,0BAA4BA,CAACA;gBAClCA,KAAKA,+BAAiCA,CAACA;gBACvCA,KAAKA,gCAAkCA,CAACA;gBACxCA,KAAKA,qCAAuCA;oBACxCA,MAAMA,CAACA,CAACA,CAACA;gBACbA,KAAKA,sBAAwBA,CAACA;gBAC9BA,KAAKA,yBAA2BA,CAACA;gBACjCA,KAAKA,4BAA8BA,CAACA;gBACpCA,KAAKA,+BAAiCA,CAACA;gBACvCA,KAAKA,0BAA4BA,CAACA;gBAClCA,KAAKA,kBAAoBA;oBACrBA,MAAMA,CAACA,CAACA,CAACA;gBACbA,KAAKA,8BAAgCA,CAACA;gBACtCA,KAAKA,oCAAsCA,CAACA;gBAC5CA,KAAKA,+CAAiDA;oBAClDA,MAAMA,CAACA,CAACA,CAACA;gBACbA,KAAKA,kBAAoBA,CAACA;gBAC1BA,KAAKA,mBAAqBA;oBACtBA,MAAMA,CAACA,CAACA,CAACA;gBACbA,KAAKA,sBAAwBA,CAACA;gBAC9BA,KAAKA,mBAAqBA,CAACA;gBAC3BA,KAAKA,qBAAuBA;oBACxBA,MAAMA,CAACA,EAAEA,CAACA;YAClBA,CAACA;YACDA,MAAMA,CAACA,SAASA,CAACA;QACrBA,CAACA;QAED1G,SAASA,oBAAoBA,CAACA,IAAgBA,EAAEA,QAAoBA,EAAEA,KAAiBA;YACnF2G,IAAIA,IAAIA,GAAqBA,UAAUA,CAACA,0BAA2BA,EAAEA,IAAIA,CAACA,GAAGA,CAACA,CAACA;YAC/EA,IAAIA,CAACA,IAAIA,GAAGA,IAAIA,CAACA;YACjBA,IAAIA,CAACA,QAAQA,GAAGA,QAAQA,CAACA;YACzBA,IAAIA,CAACA,KAAKA,GAAGA,KAAKA,CAACA;YACnBA,MAAMA,CAACA,UAAUA,CAACA,IAAIA,CAACA,CAACA;QAC5BA,CAACA;QAED3G,SAASA,oBAAoBA;YACzB4G,IAAIA,GAAGA,GAAGA,UAAUA,EAAEA,CAACA;YACvBA,MAAMA,CAACA,CAACA,KAAKA,CAACA,CAACA,CAACA;gBACZA,KAAKA,kBAAoBA,CAACA;gBAC1BA,KAAKA,mBAAqBA,CAACA;gBAC3BA,KAAKA,mBAAqBA,CAACA;gBAC3BA,KAAKA,yBAA2BA,CAACA;gBACjCA,KAAKA,sBAAwBA,CAACA;gBAC9BA,KAAKA,sBAAwBA,CAACA;gBAC9BA,KAAKA,oBAAsBA,CAACA;gBAC5BA,KAAKA,sBAAwBA,CAACA;gBAC9BA,KAAKA,wBAA0BA;oBAC3BA,IAAIA,QAAQA,GAAGA,KAAKA,CAACA;oBACrBA,SAASA,EAAEA,CAACA;oBACZA,MAAMA,CAACA,mBAAmBA,CAACA,wBAAyBA,EAAEA,GAAGA,EAAEA,QAAQA,EAAEA,oBAAoBA,EAAEA,CAACA,CAACA;gBACjGA,KAAKA,sBAAwBA;oBACzBA,MAAMA,CAACA,kBAAkBA,EAAEA,CAACA;YACpCA,CAACA;YAEDA,IAAIA,iBAAiBA,GAAGA,sBAAsBA,EAAEA,CAACA;YAKjDA,IAAIA,0BAA0BA,GAC1BA,iBAAiBA,CAACA,IAAIA,KAAKA,qBAAuBA,IAAIA,KAAKA,KAAKA,uBAAyBA,IAAIA,KAAKA,KAAKA,iBAAmBA,CAACA;YAE/HA,EAAEA,CAACA,CAACA,0BAA0BA,CAACA,CAACA,CAACA;gBAC7BA,KAAKA,CAACA,cAAWA,CAACA,2DAA2DA,CAACA,CAACA;YACnFA,CAACA;YAEDA,IAAIA,IAAIA,GAAGA,kBAAkBA,CAACA,iBAAiBA,EAAwBA,KAAKA,CAACA,CAACA;YAE9EA,QAAKA,CAACA,MAAMA,CAACA,wBAAwBA,CAACA,IAAIA,CAACA,CAACA,CAACA;YAC7CA,EAAEA,CAACA,CAACA,CAACA,KAAKA,KAAKA,sBAAwBA,IAAIA,KAAKA,KAAKA,wBAA0BA,CAACA,IAAIA,CAACA,OAAOA,CAACA,qBAAqBA,EAAEA,CAACA,CAACA,CAACA;gBACnHA,IAAIA,QAAQA,GAAGA,KAAKA,CAACA;gBACrBA,SAASA,EAAEA,CAACA;gBACZA,IAAIA,GAAGA,mBAAmBA,CAACA,yBAA0BA,EAAEA,IAAIA,CAACA,GAAGA,EAAEA,QAAQA,EAAEA,IAAIA,CAACA,CAACA;YACrFA,CAACA;YAEDA,MAAMA,CAACA,IAAIA,CAACA;QAChBA,CAACA;QAED5G,SAASA,kBAAkBA;YACvB6G,IAAIA,IAAIA,GAAkBA,UAAUA,CAACA,uBAAwBA,CAACA,CAACA;YAC/DA,aAAaA,CAACA,sBAAwBA,CAACA,CAACA;YACxCA,IAAIA,CAACA,IAAIA,GAAGA,SAASA,EAAEA,CAACA;YACxBA,aAAaA,CAACA,yBAA2BA,CAACA,CAACA;YAC3CA,IAAIA,CAACA,OAAOA,GAAGA,oBAAoBA,EAAEA,CAACA;YACtCA,MAAMA,CAACA,UAAUA,CAACA,IAAIA,CAACA,CAACA;QAC5BA,CAACA;QAED7G,SAASA,mBAAmBA,CAACA,IAAgBA,EAAEA,GAAWA,EAAEA,QAAoBA,EAAEA,OAAmBA;YACjG8G,IAAIA,IAAIA,GAAoBA,UAAUA,CAACA,IAAIA,EAAEA,GAAGA,CAACA,CAACA;YAClDA,IAAIA,CAACA,QAAQA,GAAGA,QAAQA,CAACA;YACzBA,IAAIA,CAACA,OAAOA,GAAGA,OAAOA,CAACA;YACvBA,MAAMA,CAACA,UAAUA,CAACA,IAAIA,CAACA,CAACA;QAC5BA,CAACA;QAED9G,SAASA,kBAAkBA,CAACA,IAAgBA,EAAEA,eAAwBA;YAClE+G,OAAOA,IAAIA,EAAEA,CAACA;gBACVA,IAAIA,iBAAiBA,GAAGA,OAAOA,CAACA,WAAWA,EAAEA,CAACA;gBAC9CA,EAAEA,CAACA,CAACA,aAAaA,CAACA,iBAAmBA,CAACA,CAACA,CAACA,CAACA;oBACrCA,IAAIA,cAAcA,GAAmBA,UAAUA,CAACA,wBAAyBA,EAAEA,IAAIA,CAACA,GAAGA,CAACA,CAACA;oBAoBrFA,IAAIA,EAAcA,CAACA;oBACnBA,EAAEA,CAACA,CAACA,OAAOA,CAACA,qBAAqBA,EAAEA,IAAIA,OAAOA,CAACA,cAAcA,EAAEA,CAACA,CAACA,CAACA;wBAC9DA,IAAIA,cAAcA,GAAGA,SAASA,CAACA;4BAC3BA,SAASA,EAAEA,CAACA;4BACZA,MAAMA,CAACA,CAACA,OAAOA,CAACA,qBAAqBA,EAAEA,IAAIA,CAACA,OAAOA,CAACA,YAAYA,EAAEA,IAAIA,OAAOA,CAACA,cAAcA,CAACA,CAACA;wBAClGA,CAACA,CAACA,CAACA;wBAEHA,EAAEA,CAACA,CAACA,cAAcA,CAACA,CAACA,CAACA;4BACjBA,UAAUA,CAACA,iBAAiBA,GAAGA,CAACA,EAAEA,CAACA,EAAEA,cAAWA,CAACA,mBAAmBA,CAACA,CAACA;4BACtEA,EAAEA,GAAeA,iBAAiBA,EAAEA,CAACA;wBACzCA,CAACA;oBACLA,CAACA;oBAEDA,cAAcA,CAACA,IAAIA,GAAGA,IAAIA,CAACA;oBAC3BA,cAAcA,CAACA,KAAKA,GAAGA,EAAEA,IAAIA,mBAAmBA,EAAEA,CAACA;oBACnDA,IAAIA,GAAGA,UAAUA,CAACA,cAAcA,CAACA,CAACA;oBAClCA,QAAQA,CAACA;gBACbA,CAACA;gBAEDA,EAAEA,CAACA,CAACA,aAAaA,CAACA,yBAA2BA,CAACA,CAACA,CAACA,CAACA;oBAC7CA,IAAIA,aAAaA,GAAkBA,UAAUA,CAACA,uBAAwBA,EAAEA,IAAIA,CAACA,GAAGA,CAACA,CAACA;oBAClFA,aAAaA,CAACA,MAAMA,GAAGA,IAAIA,CAACA;oBAI5BA,EAAEA,CAACA,CAACA,eAAeA,IAAIA,aAAaA,CAACA,0BAA4BA,CAACA,CAACA,CAACA,CAACA;wBACjEA,aAAaA,CAACA,KAAKA,GAAGA,iBAAiBA,EAAEA,CAACA;oBAC9CA,CAACA;oBACDA,IAAIA,CAACA,CAACA;wBACFA,aAAaA,CAACA,KAAKA,GAAGA,UAAUA,CAACA,eAAeA,CAACA,CAACA;wBAClDA,EAAEA,CAACA,CAACA,aAAaA,CAACA,KAAKA,CAACA,IAAIA,KAAKA,qBAAwBA,IAAIA,aAAaA,CAACA,KAAKA,CAACA,IAAIA,KAAKA,sBAAyBA,CAACA,CAACA,CAACA;4BAClHA,IAAIA,OAAOA,GAAsBA,aAAaA,CAACA,KAAKA,CAACA;4BACrDA,OAAOA,CAACA,IAAIA,GAAGA,gBAAgBA,CAACA,OAAOA,CAACA,IAAIA,CAACA,CAACA;wBAClDA,CAACA;wBACDA,aAAaA,CAACA,0BAA4BA,CAACA,CAACA;oBAChDA,CAACA;oBAEDA,IAAIA,GAAGA,UAAUA,CAACA,aAAaA,CAACA,CAACA;oBACjCA,QAAQA,CAACA;gBACbA,CAACA;gBAKDA,EAAEA,CAACA,CAACA,CAACA,KAAKA,KAAKA,uBAAyBA,IAAIA,KAAKA,KAAKA,sBAAwBA,CAACA,IAAIA,CAACA,eAAeA,CAACA,CAACA,CAACA;oBAClGA,IAAIA,QAAQA,GAAmBA,UAAUA,CAACA,wBAAyBA,EAAEA,IAAIA,CAACA,GAAGA,CAACA,CAACA;oBAC/EA,QAAQA,CAACA,IAAIA,GAAGA,IAAIA,CAACA;oBACrBA,EAAEA,CAACA,CAACA,KAAKA,KAAKA,sBAAwBA,CAACA,CAACA,CAACA;wBACrCA,EAAEA,CAACA,CAACA,CAACA,CAACA,QAAQA,CAACA,aAAaA,GAAGA,QAAQA,CAACA,8BAA8BA,CAACA,CAACA,CAACA;4BAACA,MAAMA,CAACA,IAAIA,CAACA;oBAC1FA,CAACA;oBACDA,IAAIA,CAACA,CAACA;wBACFA,aAAaA,CAACA,uBAAyBA,CAACA,CAACA;oBAC7CA,CAACA;oBACDA,QAAQA,CAACA,SAASA,GAAGA,kBAAkBA,CAACA,4BAAkCA,EAAEA,uBAAuBA,CAACA,CAACA;oBACrGA,aAAaA,CAACA,wBAA0BA,CAACA,CAACA;oBAC1CA,IAAIA,GAAGA,UAAUA,CAACA,QAAQA,CAACA,CAACA;oBAC5BA,QAAQA,CAACA;gBACbA,CAACA;gBAEDA,EAAEA,CAACA,CAACA,KAAKA,KAAKA,qCAAwCA,IAAIA,KAAKA,KAAKA,qBAAuBA,CAACA,CAACA,CAACA;oBAC1FA,IAAIA,aAAaA,GAA6BA,UAAUA,CAACA,kCAAmCA,EAAEA,IAAIA,CAACA,GAAGA,CAACA,CAACA;oBACxGA,aAAaA,CAACA,GAAGA,GAAGA,IAAIA,CAACA;oBACzBA,aAAaA,CAACA,QAAQA,GAAGA,KAAKA,KAAKA,qCAAwCA,GACrEA,gBAAgBA,EAAEA,GAClBA,uBAAuBA,EAAEA,CAACA;oBAChCA,IAAIA,GAAGA,UAAUA,CAACA,aAAaA,CAACA,CAACA;oBACjCA,QAAQA,CAACA;gBACbA,CAACA;gBAEDA,MAAMA,CAACA,IAAIA,CAACA;YAChBA,CAACA;QACLA,CAACA;QAED/G,SAASA,8BAA8BA;YACnCgH,IAAIA,MAAMA,GAAGA,kBAAkBA,EAAEA,CAACA;YAClCA,aAAaA,CAACA,uBAAyBA,CAACA,CAACA;YACzCA,MAAMA,CAACA,MAAMA,CAACA;QAClBA,CAACA;QAEDhH,SAASA,kBAAkBA;YAMvBiH,MAAMA,CAACA,kBAAkBA,CAACA,sBAA4BA,EAAEA,uBAAuBA,EAAEA,sBAAwBA,EAAEA,yBAA2BA,CAACA,CAACA;QAC5IA,CAACA;QAEDjH,SAASA,uBAAuBA;YAK5BkH,EAAEA,CAACA,CAACA,KAAKA,KAAKA,mBAAqBA,CAACA,CAACA,CAACA;gBAClCA,MAAMA,CAACA,UAAUA,CAACA,iBAAkBA,CAACA,CAACA;YAC1CA,CAACA;YAEDA,MAAMA,CAACA,SAASA,EAAEA,CAACA;QACvBA,CAACA;QAEDlH,SAASA,sBAAsBA;YAC3BmH,MAAMA,CAACA,CAACA,KAAKA,CAACA,CAACA,CAACA;gBACZA,KAAKA,oBAAsBA,CAACA;gBAC5BA,KAAKA,qBAAuBA,CAACA;gBAC7BA,KAAKA,oBAAsBA,CAACA;gBAC5BA,KAAKA,oBAAsBA,CAACA;gBAC5BA,KAAKA,qBAAuBA;oBACxBA,MAAMA,CAACA,cAAcA,EAAEA,CAACA;gBAC5BA,KAAKA,sBAAyBA,CAACA;gBAC/BA,KAAKA,qBAAwBA,CAACA;gBAC9BA,KAAKA,qCAAwCA;oBACzCA,MAAMA,CAACA,gBAAgBA,EAAEA,CAACA;gBAC9BA,KAAKA,uBAAyBA;oBAC1BA,MAAMA,CAACA,oBAAoBA,EAAEA,CAACA;gBAClCA,KAAKA,yBAA2BA;oBAC5BA,MAAMA,CAACA,iBAAiBA,EAAEA,CAACA;gBAC/BA,KAAKA,uBAAyBA;oBAC1BA,MAAMA,CAACA,kBAAkBA,EAAEA,CAACA;gBAChCA,KAAKA,wBAA0BA;oBAC3BA,MAAMA,CAACA,uBAAuBA,EAAEA,CAACA;gBACrCA,KAAKA,mBAAqBA;oBACtBA,MAAMA,CAACA,kBAAkBA,EAAEA,CAACA;gBAChCA,KAAKA,mBAAqBA,CAACA;gBAC3BA,KAAKA,yBAA2BA;oBAC5BA,EAAEA,CAACA,CAACA,gBAAgBA,EAAEA,KAAKA,gCAAmCA,CAACA,CAACA,CAACA;wBAC7DA,MAAMA,CAACA,gBAAgBA,EAAEA,CAACA;oBAC9BA,CAACA;oBACDA,KAAKA,CAACA;gBACVA,KAAKA,qBAAuBA;oBACxBA,MAAMA,CAACA,uBAAuBA,EAAEA,CAACA;gBAErCA;oBACIA,EAAEA,CAACA,CAACA,YAAYA,EAAEA,CAACA,CAACA,CAACA;wBACjBA,MAAMA,CAACA,eAAeA,EAAEA,CAACA;oBAC7BA,CAACA;YACTA,CAACA;YACDA,KAAKA,CAACA,cAAWA,CAACA,mBAAmBA,CAACA,CAACA;YACvCA,MAAMA,CAAaA,iBAAiBA,EAAEA,CAACA;QAC3CA,CAACA;QAEDnH,SAASA,oBAAoBA;YACzBoH,IAAIA,IAAIA,GAAoBA,UAAUA,CAACA,yBAA0BA,CAACA,CAACA;YACnEA,aAAaA,CAACA,uBAAyBA,CAACA,CAACA;YACzCA,IAAIA,CAACA,UAAUA,GAAGA,UAAUA,CAACA,eAAeA,CAACA,CAACA;YAC9CA,aAAaA,CAACA,wBAA0BA,CAACA,CAACA;YAC1CA,MAAMA,CAACA,UAAUA,CAACA,IAAIA,CAACA,CAACA;QAC5BA,CAACA;QAEDpH,SAASA,4CAA4CA;YACjDqH,MAAMA,CAACA,KAAKA,KAAKA,mBAAqBA,GAChCA,UAAUA,CAACA,2BAA4BA,CAACA,GACxCA,yBAAyBA,EAAEA,CAACA;QACtCA,CAACA;QAEDrH,SAASA,wBAAwBA;YAC7BsH,MAAMA,CAACA,4CAA4CA,EAAEA,CAACA;QAC1DA,CAACA;QAEDtH,SAASA,uBAAuBA;YAC5BuH,MAAMA,CAACA,UAAUA,CAACA,4CAA4CA,CAACA,CAACA;QACpEA,CAACA;QAEDvH,SAASA,iBAAiBA;YACtBwH,IAAIA,IAAIA,GAAiBA,UAAUA,CAACA,sBAAuBA,CAACA,CAACA;YAC7DA,aAAaA,CAACA,yBAA2BA,CAACA,CAACA;YAC3CA,EAAEA,CAACA,CAACA,OAAOA,CAACA,qBAAqBA,EAAEA,CAACA;gBAACA,IAAIA,CAACA,KAAKA,IAAIA,mBAAmBA,CAACA;YACvEA,IAAIA,CAACA,QAAQA,GAAGA,kBAAkBA,CAACA,4BAAkCA,EAAEA,wBAAwBA,CAACA,CAACA;YACjGA,aAAaA,CAACA,0BAA4BA,CAACA,CAACA;YAC5CA,MAAMA,CAACA,UAAUA,CAACA,IAAIA,CAACA,CAACA;QAC5BA,CAACA;QAEDxH,SAASA,uBAAuBA;YAC5ByH,IAAIA,OAAOA,GAAGA,OAAOA,CAACA,WAAWA,EAAEA,CAACA;YACpCA,IAAIA,WAAWA,GAAGA,aAAaA,CAACA,sBAAwBA,CAACA,CAACA;YAC1DA,IAAIA,iBAAiBA,GAAGA,YAAYA,EAAEA,CAACA;YACvCA,IAAIA,SAASA,GAAGA,KAAKA,CAACA;YACtBA,IAAIA,YAAYA,GAAGA,iBAAiBA,EAAEA,CAACA;YACvCA,IAAIA,IAAiBA,CAACA;YACtBA,EAAEA,CAACA,CAACA,WAAWA,IAAIA,KAAKA,KAAKA,uBAAyBA,IAAIA,KAAKA,KAAKA,sBAAwBA,CAACA,CAACA,CAACA;gBAC3FA,IAAIA,GAAwBA,UAAUA,CAACA,4BAA6BA,EAAEA,OAAOA,CAACA,CAACA;gBAC/EA,IAAIA,CAACA,IAAIA,GAAGA,YAAYA,CAACA;gBACzBA,EAAEA,CAACA,CAACA,WAAWA,CAACA,CAACA,CAACA;oBACdA,IAAIA,CAACA,KAAKA,IAAIA,qBAAmBA,CAACA;gBACtCA,CAACA;gBACDA,IAAIA,GAAGA,GAAGA,cAAcA,CAACA,uBAAwBA,EAAEA,mBAAqBA,EAA4BA,KAAKA,EAAyCA,WAAWA,CAACA,CAACA;gBAE/JA,IAAIA,IAAIA,GAAGA,kBAAkBA,CAACA,WAAWA,EAA+BA,KAAKA,CAACA,CAACA;gBAMzDA,IAAKA,CAACA,WAAWA,GAAGA,sBAAsBA,CAACA,4BAA6BA,EAAEA,IAAIA,CAACA,GAAGA,EAAEA,SAASA,EAAEA,GAAGA,EAAEA,IAAIA,CAACA,CAACA;gBAChIA,MAAMA,CAACA,UAAUA,CAACA,IAAIA,CAACA,CAACA;YAC5BA,CAACA;YAEDA,IAAIA,KAAKA,GAAcA,CAACA,CAACA;YAGzBA,EAAEA,CAACA,CAACA,KAAKA,KAAKA,sBAAwBA,CAACA,CAACA,CAACA;gBACrCA,KAAKA,IAAIA,oBAAsBA,CAACA;gBAChCA,SAASA,EAAEA,CAACA;YAChBA,CAACA;YAGDA,EAAEA,CAACA,CAACA,CAACA,KAAKA,KAAKA,mBAAqBA,IAAIA,KAAKA,KAAKA,wBAA0BA,CAACA,IAAIA,iBAAiBA,CAACA,CAACA,CAACA;gBACjGA,IAAIA,GAAiCA,UAAUA,CAACA,qCAAsCA,EAAEA,OAAOA,CAACA,CAACA;gBACjGA,IAAIA,CAACA,IAAIA,GAAGA,YAAYA,CAACA;YAC7BA,CAACA;YACDA,IAAIA,CAACA,CAACA;gBACFA,IAAIA,GAAwBA,UAAUA,CAACA,4BAA6BA,EAAEA,OAAOA,CAACA,CAACA;gBAC/EA,IAAIA,CAACA,IAAIA,GAAGA,YAAYA,CAACA;gBACzBA,aAAaA,CAACA,mBAAqBA,CAACA,CAACA;gBACfA,IAAKA,CAACA,WAAWA,GAAGA,UAAUA,CAACA,yBAAyBA,CAACA,CAACA;YACpFA,CAACA;YAEDA,IAAIA,CAACA,KAAKA,GAAGA,KAAKA,CAACA;YACnBA,MAAMA,CAACA,UAAUA,CAACA,IAAIA,CAACA,CAACA;QAC5BA,CAACA;QAEDzH,SAASA,wBAAwBA;YAC7B0H,IAAIA,UAAUA,GAAGA,UAAUA,EAAEA,CAACA;YAC9BA,IAAIA,YAAYA,GAAGA,KAAKA,CAACA;YACzBA,EAAEA,CAACA,CAACA,uBAAuBA,CAACA,oBAAqBA,CAACA,IAAIA,uBAAuBA,CAACA,oBAAqBA,CAACA,CAACA,CAACA,CAACA;gBACnGA,IAAIA,IAAIA,GAAGA,YAAYA,KAAKA,oBAAqBA,GAAGA,qBAAsBA,GAAGA,qBAAsBA,CAACA;gBACpGA,MAAMA,CAACA,8BAA8BA,CAACA,IAAIA,EAAEA,UAAUA,EAAgBA,SAASA,CAACA,CAACA;YACrFA,CAACA;YACDA,MAAMA,CAACA,uBAAuBA,EAAEA,CAACA;QACrCA,CAACA;QAED1H,SAASA,kBAAkBA;YACvB2H,IAAIA,IAAIA,GAAkBA,UAAUA,CAACA,uBAAwBA,CAACA,CAACA;YAC/DA,aAAaA,CAACA,uBAAyBA,CAACA,CAACA;YACzCA,EAAEA,CAACA,CAACA,OAAOA,CAACA,qBAAqBA,EAAEA,CAACA,CAACA,CAACA;gBAClCA,IAAIA,CAACA,KAAKA,IAAIA,mBAAmBA,CAACA;YACtCA,CAACA;YAEDA,IAAIA,CAACA,UAAUA,GAAGA,kBAAkBA,CAACA,6BAAmCA,EAAEA,wBAAwBA,CAACA,CAACA;YACpGA,aAAaA,CAACA,wBAA0BA,CAACA,CAACA;YAC1CA,MAAMA,CAACA,UAAUA,CAACA,IAAIA,CAACA,CAACA;QAC5BA,CAACA;QAED3H,SAASA,uBAAuBA;YAM5B4H,IAAIA,GAAGA,GAAGA,UAAUA,EAAEA,CAACA;YACvBA,aAAaA,CAACA,wBAA0BA,CAACA,CAACA;YAC1CA,IAAIA,WAAWA,GAAGA,aAAaA,CAACA,sBAAwBA,CAACA,CAACA;YAC1DA,IAAIA,IAAIA,GAAGA,WAAWA,GAAGA,gBAAgBA,CAACA,uBAAuBA,CAACA,GAAGA,uBAAuBA,EAAEA,CAACA;YAC/FA,IAAIA,GAAGA,GAAGA,cAAcA,CAACA,uBAAwBA,EAAEA,mBAAqBA,EAA4BA,KAAKA,EAAyCA,WAAWA,CAACA,CAACA;YAE/JA,IAAIA,IAAIA,GAAGA,kBAAkBA,CAAiBA,WAAWA,EAA+BA,KAAKA,CAACA,CAACA;YAC/FA,MAAMA,CAACA,sBAAsBA,CAACA,4BAA6BA,EAAEA,GAAGA,EAAEA,IAAIA,EAAEA,GAAGA,EAAEA,IAAIA,EAAEA,WAAWA,GAAGA,qBAAmBA,GAAGA,SAASA,CAACA,CAACA;QACtIA,CAACA;QAED5H,SAASA,uBAAuBA;YAC5B6H,MAAMA,CAACA,YAAYA,EAAEA,GAAGA,eAAeA,EAAEA,GAAGA,SAASA,CAACA;QAC1DA,CAACA;QAED7H,SAASA,sBAAsBA,CAACA,IAAgBA,EAAEA,GAAWA,EAAEA,IAAgBA,EAAEA,GAAoBA,EAAEA,IAAUA,EAAEA,KAAiBA;YAChI8H,IAAIA,IAAIA,GAAuBA,UAAUA,CAACA,IAAIA,EAAEA,GAAGA,CAACA,CAACA;YACrDA,EAAEA,CAACA,CAACA,KAAKA,CAACA,CAACA,CAACA;gBACRA,IAAIA,CAACA,KAAKA,GAAGA,KAAKA,CAACA;YACvBA,CAACA;YAEDA,IAAIA,CAACA,IAAIA,GAAGA,IAAIA,CAACA;YACjBA,IAAIA,CAACA,cAAcA,GAAGA,GAAGA,CAACA,cAAcA,CAACA;YACzCA,IAAIA,CAACA,UAAUA,GAAGA,GAAGA,CAACA,UAAUA,CAACA;YACjCA,IAAIA,CAACA,IAAIA,GAAGA,GAAGA,CAACA,IAAIA,CAACA;YACrBA,IAAIA,CAACA,IAAIA,GAAGA,IAAIA,CAACA;YACjBA,MAAMA,CAACA,UAAUA,CAACA,IAAIA,CAACA,CAACA;QAC5BA,CAACA;QAED9H,SAASA,kBAAkBA;YACvB+H,IAAIA,IAAIA,GAAkBA,UAAUA,CAACA,uBAAwBA,CAACA,CAACA;YAC/DA,aAAaA,CAACA,mBAAqBA,CAACA,CAACA;YACrCA,IAAIA,CAACA,IAAIA,GAAGA,kBAAkBA,CAACA,sBAAsBA,EAAEA,EAAwBA,IAAIA,CAACA,CAACA;YACrFA,EAAEA,CAACA,CAACA,aAAaA,CAACA,uBAAyBA,CAACA,IAAIA,KAAKA,KAAKA,sBAAwBA,IAAIA,CAACA,IAAIA,CAACA,aAAaA,GAAGA,QAAQA,CAACA,8BAA8BA,CAACA,CAACA,CAACA,CAACA,CAACA;gBACpJA,IAAIA,CAACA,SAASA,GAAGA,kBAAkBA,CAACA,4BAAkCA,EAAEA,uBAAuBA,CAACA,CAACA;gBACjGA,aAAaA,CAACA,wBAA0BA,CAACA,CAACA;YAC9CA,CAACA;YACDA,MAAMA,CAACA,UAAUA,CAACA,IAAIA,CAACA,CAACA;QAC5BA,CAACA;QAGD/H,SAASA,UAAUA,CAACA,sBAA+BA,EAAEA,kBAA2BA;YAC5EgI,IAAIA,IAAIA,GAAUA,UAAUA,CAACA,eAAgBA,CAACA,CAACA;YAC/CA,EAAEA,CAACA,CAACA,aAAaA,CAACA,uBAAyBA,CAACA,IAAIA,sBAAsBA,CAACA,CAACA,CAACA;gBACrEA,IAAIA,CAACA,UAAUA,GAAGA,SAASA,CAACA,uBAA8BA,EAAEA,kBAAkBA,EAAEA,cAAcA,CAACA,CAACA;gBAChGA,aAAaA,CAACA,wBAA0BA,CAACA,CAACA;YAC9CA,CAACA;YACDA,IAAIA,CAACA,CAACA;gBACFA,IAAIA,CAACA,UAAUA,GAAGA,iBAAiBA,EAAaA,CAACA;YACrDA,CAACA;YACDA,MAAMA,CAACA,UAAUA,CAACA,IAAIA,CAACA,CAACA;QAC5BA,CAACA;QAEDhI,SAASA,kBAAkBA,CAACA,UAAmBA,EAAEA,sBAA+BA;YAC5EiI,IAAIA,iBAAiBA,GAAGA,cAAcA,EAAEA,CAACA;YACzCA,eAAeA,CAACA,UAAUA,CAACA,CAACA;YAE5BA,IAAIA,KAAKA,GAAGA,UAAUA,CAACA,sBAAsBA,EAAyBA,IAAIA,CAACA,CAACA;YAC5EA,KAAKA,CAACA,IAAIA,GAAGA,uBAAwBA,CAACA;YAEtCA,eAAeA,CAACA,iBAAiBA,CAACA,CAACA;YAEnCA,MAAMA,CAACA,KAAKA,CAACA;QACjBA,CAACA;QAEDjI,SAASA,mBAAmBA;YACxBkI,IAAIA,IAAIA,GAAcA,UAAUA,CAACA,wBAAyBA,CAACA,CAACA;YAC5DA,aAAaA,CAACA,uBAAyBA,CAACA,CAACA;YACzCA,MAAMA,CAACA,UAAUA,CAACA,IAAIA,CAACA,CAACA;QAC5BA,CAACA;QAEDlI,SAASA,gBAAgBA;YACrBmI,IAAIA,IAAIA,GAAgBA,UAAUA,CAACA,qBAAsBA,CAACA,CAACA;YAC3DA,aAAaA,CAACA,kBAAoBA,CAACA,CAACA;YACpCA,aAAaA,CAACA,uBAAyBA,CAACA,CAACA;YACzCA,IAAIA,CAACA,UAAUA,GAAGA,UAAUA,CAACA,eAAeA,CAACA,CAACA;YAC9CA,aAAaA,CAACA,wBAA0BA,CAACA,CAACA;YAC1CA,IAAIA,CAACA,aAAaA,GAAGA,cAAcA,EAAEA,CAACA;YACtCA,IAAIA,CAACA,aAAaA,GAAGA,aAAaA,CAACA,oBAAsBA,CAACA,GAAGA,cAAcA,EAAEA,GAAGA,SAASA,CAACA;YAC1FA,MAAMA,CAACA,UAAUA,CAACA,IAAIA,CAACA,CAACA;QAC5BA,CAACA;QAEDnI,SAASA,gBAAgBA;YACrBoI,IAAIA,IAAIA,GAAgBA,UAAUA,CAACA,qBAAsBA,CAACA,CAACA;YAC3DA,aAAaA,CAACA,kBAAoBA,CAACA,CAACA;YAEpCA,IAAIA,CAACA,SAASA,GAAGA,cAAcA,EAAEA,CAACA;YAElCA,aAAaA,CAACA,qBAAuBA,CAACA,CAACA;YACvCA,aAAaA,CAACA,uBAAyBA,CAACA,CAACA;YACzCA,IAAIA,CAACA,UAAUA,GAAGA,UAAUA,CAACA,eAAeA,CAACA,CAACA;YAC9CA,aAAaA,CAACA,wBAA0BA,CAACA,CAACA;YAM1CA,aAAaA,CAACA,uBAAyBA,CAACA,CAACA;YACzCA,MAAMA,CAACA,UAAUA,CAACA,IAAIA,CAACA,CAACA;QAC5BA,CAACA;QAEDpI,SAASA,mBAAmBA;YACxBqI,IAAIA,IAAIA,GAAmBA,UAAUA,CAACA,wBAAyBA,CAACA,CAACA;YACjEA,aAAaA,CAACA,qBAAuBA,CAACA,CAACA;YACvCA,aAAaA,CAACA,uBAAyBA,CAACA,CAACA;YACzCA,IAAIA,CAACA,UAAUA,GAAGA,UAAUA,CAACA,eAAeA,CAACA,CAACA;YAC9CA,aAAaA,CAACA,wBAA0BA,CAACA,CAACA;YAE1CA,IAAIA,CAACA,SAASA,GAAGA,cAAcA,EAAEA,CAACA;YAElCA,MAAMA,CAACA,UAAUA,CAACA,IAAIA,CAACA,CAACA;QAC5BA,CAACA;QAEDrI,SAASA,wBAAwBA;YAC7BsI,IAAIA,GAAGA,GAAGA,UAAUA,EAAEA,CAACA;YACvBA,aAAaA,CAACA,mBAAqBA,CAACA,CAACA;YACrCA,aAAaA,CAACA,uBAAyBA,CAACA,CAACA;YACzCA,EAAEA,CAACA,CAACA,KAAKA,KAAKA,uBAAyBA,CAACA,CAACA,CAACA;gBACtCA,EAAEA,CAACA,CAACA,aAAaA,CAACA,mBAAqBA,CAACA,CAACA,CAACA,CAACA;oBACvCA,IAAIA,YAAYA,GAAGA,aAAaA,CAACA,4BAA4BA,CAACA,CAACA;gBACnEA,CAACA;gBACDA,IAAIA,CAACA,EAAEA,CAACA,CAACA,aAAaA,CAACA,oBAAqBA,CAACA,CAACA,CAACA,CAACA;oBAC5CA,IAAIA,YAAYA,GAAGA,OAAOA,CAACA,aAAaA,CAACA,4BAA4BA,CAACA,EAAEA,cAAaA,CAACA,CAACA;gBAC3FA,CAACA;gBACDA,IAAIA,CAACA,EAAEA,CAACA,CAACA,aAAaA,CAACA,qBAAuBA,CAACA,CAACA,CAACA,CAACA;oBAC9CA,IAAIA,YAAYA,GAAGA,OAAOA,CAACA,aAAaA,CAACA,4BAA4BA,CAACA,EAAEA,gBAAeA,CAACA,CAACA;gBAC7FA,CAACA;gBACDA,IAAIA,CAACA,CAACA;oBACFA,IAAIA,SAASA,GAAGA,aAAaA,CAACA,eAAeA,CAACA,CAACA;gBACnDA,CAACA;YACLA,CAACA;YACDA,IAAIA,mBAAuCA,CAACA;YAC5CA,EAAEA,CAACA,CAACA,aAAaA,CAACA,kBAAoBA,CAACA,CAACA,CAACA,CAACA;gBACtCA,IAAIA,cAAcA,GAAmBA,UAAUA,CAACA,wBAAyBA,EAAEA,GAAGA,CAACA,CAACA;gBAChFA,EAAEA,CAACA,CAACA,YAAYA,CAACA,CAACA,CAACA;oBACfA,cAAcA,CAACA,YAAYA,GAAGA,YAAYA,CAACA;gBAC/CA,CAACA;gBACDA,IAAIA,CAACA,CAACA;oBACFA,cAAcA,CAACA,QAAQA,GAAGA,SAASA,CAACA;gBACxCA,CAACA;gBACDA,cAAcA,CAACA,UAAUA,GAAGA,UAAUA,CAACA,eAAeA,CAACA,CAACA;gBACxDA,aAAaA,CAACA,wBAA0BA,CAACA,CAACA;gBAC1CA,mBAAmBA,GAAGA,cAAcA,CAACA;YACzCA,CAACA;YACDA,IAAIA,CAACA,CAACA;gBACFA,IAAIA,YAAYA,GAAiBA,UAAUA,CAACA,sBAAuBA,EAAEA,GAAGA,CAACA,CAACA;gBAC1EA,EAAEA,CAACA,CAACA,YAAYA,CAACA,CAACA,CAACA;oBACfA,YAAYA,CAACA,YAAYA,GAAGA,YAAYA,CAACA;gBAC7CA,CAACA;gBACDA,EAAEA,CAACA,CAACA,SAASA,CAACA,CAACA,CAACA;oBACZA,YAAYA,CAACA,WAAWA,GAAGA,SAASA,CAACA;gBACzCA,CAACA;gBAEDA,aAAaA,CAACA,uBAAyBA,CAACA,CAACA;gBACzCA,EAAEA,CAACA,CAACA,KAAKA,KAAKA,uBAAyBA,IAAIA,KAAKA,KAAKA,wBAA0BA,CAACA,CAACA,CAACA;oBAC9EA,YAAYA,CAACA,SAASA,GAAGA,UAAUA,CAACA,eAAeA,CAACA,CAACA;gBACzDA,CAACA;gBACDA,aAAaA,CAACA,uBAAyBA,CAACA,CAACA;gBACzCA,EAAEA,CAACA,CAACA,KAAKA,KAAKA,wBAA0BA,CAACA,CAACA,CAACA;oBACvCA,YAAYA,CAACA,QAAQA,GAAGA,UAAUA,CAACA,eAAeA,CAACA,CAACA;gBACxDA,CAACA;gBACDA,aAAaA,CAACA,wBAA0BA,CAACA,CAACA;gBAC1CA,mBAAmBA,GAAGA,YAAYA,CAACA;YACvCA,CAACA;YAEDA,mBAAmBA,CAACA,SAASA,GAAGA,cAAcA,EAAEA,CAACA;YAEjDA,MAAMA,CAACA,UAAUA,CAACA,mBAAmBA,CAACA,CAACA;QAC3CA,CAACA;QAEDtI,SAASA,6BAA6BA,CAACA,IAAgBA;YACnDuI,IAAIA,IAAIA,GAA6BA,UAAUA,CAACA,IAAIA,CAACA,CAACA;YAEtDA,aAAaA,CAACA,IAAIA,KAAKA,wBAAyBA,GAAGA,qBAAuBA,GAAGA,wBAA0BA,CAACA,CAACA;YACzGA,EAAEA,CAACA,CAACA,CAACA,iBAAiBA,EAAEA,CAACA,CAACA,CAACA;gBACvBA,IAAIA,CAACA,KAAKA,GAAGA,eAAeA,EAAEA,CAACA;YACnCA,CAACA;YAEDA,cAAcA,EAAEA,CAACA;YACjBA,MAAMA,CAACA,UAAUA,CAACA,IAAIA,CAACA,CAACA;QAC5BA,CAACA;QAEDvI,SAASA,oBAAoBA;YACzBwI,IAAIA,IAAIA,GAAoBA,UAAUA,CAACA,yBAA0BA,CAACA,CAACA;YAEnEA,aAAaA,CAACA,sBAAwBA,CAACA,CAACA;YACxCA,EAAEA,CAACA,CAACA,CAACA,iBAAiBA,EAAEA,CAACA,CAACA,CAACA;gBACvBA,IAAIA,CAACA,UAAUA,GAAGA,UAAUA,CAACA,eAAeA,CAACA,CAACA;YAClDA,CAACA;YAEDA,cAAcA,EAAEA,CAACA;YACjBA,MAAMA,CAACA,UAAUA,CAACA,IAAIA,CAACA,CAACA;QAC5BA,CAACA;QAEDxI,SAASA,kBAAkBA;YACvByI,IAAIA,IAAIA,GAAkBA,UAAUA,CAACA,uBAAwBA,CAACA,CAACA;YAC/DA,aAAaA,CAACA,oBAAsBA,CAACA,CAACA;YACtCA,aAAaA,CAACA,uBAAyBA,CAACA,CAACA;YACzCA,IAAIA,CAACA,UAAUA,GAAGA,UAAUA,CAACA,eAAeA,CAACA,CAACA;YAC9CA,aAAaA,CAACA,wBAA0BA,CAACA,CAACA;YAC1CA,IAAIA,CAACA,SAASA,GAAGA,cAAcA,EAAEA,CAACA;YAClCA,MAAMA,CAACA,UAAUA,CAACA,IAAIA,CAACA,CAACA;QAC5BA,CAACA;QAEDzI,SAASA,eAAeA;YACpB0I,IAAIA,IAAIA,GAAwBA,UAAUA,CAACA,oBAAqBA,CAACA,CAACA;YAClEA,aAAaA,CAACA,oBAAsBA,CAACA,CAACA;YACtCA,IAAIA,CAACA,UAAUA,GAAGA,UAAUA,CAACA,eAAeA,CAACA,CAACA;YAC9CA,aAAaA,CAACA,mBAAqBA,CAACA,CAACA;YACrCA,IAAIA,CAACA,UAAUA,GAAGA,SAASA,CAACA,8BAAqCA,EAAyBA,KAAKA,EAAEA,cAAcA,CAACA,CAACA;YACjHA,MAAMA,CAACA,UAAUA,CAACA,IAAIA,CAACA,CAACA;QAC5BA,CAACA;QAED1I,SAASA,kBAAkBA;YACvB2I,IAAIA,IAAIA,GAAwBA,UAAUA,CAACA,uBAAwBA,CAACA,CAACA;YACrEA,aAAaA,CAACA,uBAAyBA,CAACA,CAACA;YACzCA,aAAaA,CAACA,mBAAqBA,CAACA,CAACA;YACrCA,IAAIA,CAACA,UAAUA,GAAGA,SAASA,CAACA,8BAAqCA,EAAyBA,KAAKA,EAAEA,cAAcA,CAACA,CAACA;YACjHA,MAAMA,CAACA,UAAUA,CAACA,IAAIA,CAACA,CAACA;QAC5BA,CAACA;QAED3I,SAASA,wBAAwBA;YAC7B4I,MAAMA,CAACA,KAAKA,KAAKA,oBAAsBA,GAAGA,eAAeA,EAAEA,GAAGA,kBAAkBA,EAAEA,CAACA;QACvFA,CAACA;QAED5I,SAASA,oBAAoBA;YACzB6I,IAAIA,IAAIA,GAAoBA,UAAUA,CAACA,yBAA0BA,CAACA,CAACA;YACnEA,aAAaA,CAACA,sBAAwBA,CAACA,CAACA;YACxCA,aAAaA,CAACA,uBAAyBA,CAACA,CAACA;YACzCA,IAAIA,CAACA,UAAUA,GAAGA,UAAUA,CAACA,eAAeA,CAACA,CAACA;YAC9CA,aAAaA,CAACA,wBAA0BA,CAACA,CAACA;YAC1CA,aAAaA,CAACA,uBAAyBA,CAACA,CAACA;YAEzCA,IAAIA,CAACA,OAAOA,GAAGA,SAASA,CAACA,qBAA4BA,EAAyBA,KAAKA,EAAEA,wBAAwBA,CAACA,CAACA;YAE/GA,aAAaA,CAACA,wBAA0BA,CAACA,CAACA;YAC1CA,MAAMA,CAACA,UAAUA,CAACA,IAAIA,CAACA,CAACA;QAC5BA,CAACA;QAED7I,SAASA,mBAAmBA;YACxB8I,IAAIA,IAAIA,GAAmBA,UAAUA,CAACA,wBAAyBA,CAACA,CAACA;YACjEA,aAAaA,CAACA,qBAAuBA,CAACA,CAACA;YACvCA,EAAEA,CAACA,CAACA,OAAOA,CAACA,qBAAqBA,EAAEA,CAACA,CAACA,CAACA;gBAClCA,KAAKA,CAACA,cAAWA,CAACA,6BAA6BA,CAACA,CAACA;YACrDA,CAACA;YACDA,IAAIA,CAACA,UAAUA,GAAGA,UAAUA,CAACA,eAAeA,CAACA,CAACA;YAC9CA,cAAcA,EAAEA,CAACA;YACjBA,MAAMA,CAACA,UAAUA,CAACA,IAAIA,CAACA,CAACA;QAC5BA,CAACA;QAGD9I,SAASA,iBAAiBA;YACtB+I,IAAIA,IAAIA,GAAiBA,UAAUA,CAACA,sBAAuBA,CAACA,CAACA;YAC7DA,IAAIA,CAACA,QAAQA,GAAGA,kBAAkBA,CAACA,mBAAqBA,EAAEA,kBAAmBA,CAACA,CAACA;YAC/EA,EAAEA,CAACA,CAACA,KAAKA,KAAKA,qBAAuBA,CAACA,CAACA,CAACA;gBACpCA,IAAIA,CAACA,UAAUA,GAAGA,eAAeA,EAAEA,CAACA;YACxCA,CAACA;YACDA,EAAEA,CAACA,CAACA,KAAKA,KAAKA,uBAAyBA,CAACA,CAACA,CAACA;gBACtCA,IAAIA,CAACA,YAAYA,GAAGA,kBAAkBA,CAACA,uBAAyBA,EAAEA,sBAAuBA,CAACA,CAACA;YAC/FA,CAACA;YACDA,EAAEA,CAACA,CAACA,CAACA,CAACA,IAAIA,CAACA,UAAUA,IAAIA,IAAIA,CAACA,YAAYA,CAACA,CAACA,CAACA,CAACA;gBAC1CA,KAAKA,CAACA,cAAWA,CAACA,yBAAyBA,CAACA,CAACA;YACjDA,CAACA;YACDA,MAAMA,CAACA,UAAUA,CAACA,IAAIA,CAACA,CAACA;QAC5BA,CAACA;QAED/I,SAASA,kBAAkBA,CAACA,KAAiBA,EAAEA,IAAgBA;YAC3DgJ,IAAIA,GAAGA,GAAGA,UAAUA,EAAEA,CAACA;YACvBA,aAAaA,CAACA,KAAKA,CAACA,CAACA;YACrBA,IAAIA,MAAMA,GAAGA,UAAUA,CAA8BA,KAAKA,EAAyBA,KAAKA,CAACA,CAACA;YAC1FA,MAAMA,CAACA,IAAIA,GAAGA,IAAIA,CAACA;YACnBA,MAAMA,CAACA,GAAGA,GAAGA,GAAGA,CAACA;YACjBA,MAAMA,CAACA,MAAMA,CAACA;QAClBA,CAACA;QAEDhJ,SAASA,eAAeA;YACpBiJ,IAAIA,GAAGA,GAAGA,UAAUA,EAAEA,CAACA;YACvBA,aAAaA,CAACA,qBAAuBA,CAACA,CAACA;YACvCA,aAAaA,CAACA,uBAAyBA,CAACA,CAACA;YACzCA,IAAIA,QAAQA,GAAGA,eAAeA,EAAEA,CAACA;YACjCA,IAAIA,cAAcA,GAAGA,mBAAmBA,EAAEA,CAACA;YAC3CA,aAAaA,CAACA,wBAA0BA,CAACA,CAACA;YAC1CA,IAAIA,MAAMA,GAAeA,UAAUA,CAA8BA,KAAKA,EAAyBA,KAAKA,CAACA,CAACA;YACtGA,MAAMA,CAACA,IAAIA,GAAGA,oBAAqBA,CAACA;YACpCA,MAAMA,CAACA,GAAGA,GAAGA,GAAGA,CAACA;YACjBA,MAAMA,CAACA,QAAQA,GAAGA,QAAQA,CAACA;YAC3BA,MAAMA,CAACA,IAAIA,GAAGA,cAAcA,CAACA;YAE7BA,MAAMA,CAACA,MAAMA,CAACA;QAClBA,CAACA;QAEDjJ,SAASA,sBAAsBA;YAC3BkJ,IAAIA,IAAIA,GAAcA,UAAUA,CAACA,2BAA4BA,CAACA,CAACA;YAC/DA,aAAaA,CAACA,wBAA0BA,CAACA,CAACA;YAC1CA,cAAcA,EAAEA,CAACA;YACjBA,MAAMA,CAACA,UAAUA,CAACA,IAAIA,CAACA,CAACA;QAC5BA,CAACA;QAEDlJ,SAASA,OAAOA;YACZmJ,MAAMA,CAACA,YAAYA,EAAEA,IAAIA,SAASA,CAACA,cAAMA,OAAAA,SAASA,EAAEA,KAAKA,mBAAqBA,EAArCA,CAAqCA,CAACA,CAACA;QACpFA,CAACA;QAEDnJ,SAASA,qBAAqBA;YAC1BoJ,IAAIA,IAAIA,GAAqBA,UAAUA,CAACA,0BAA2BA,CAACA,CAACA;YACrEA,IAAIA,CAACA,KAAKA,GAAGA,eAAeA,EAAEA,CAACA;YAC/BA,aAAaA,CAACA,mBAAqBA,CAACA,CAACA;YACrCA,IAAIA,CAACA,SAASA,GAAGA,cAAcA,EAAEA,CAACA;YAClCA,MAAMA,CAACA,UAAUA,CAACA,IAAIA,CAACA,CAACA;QAC5BA,CAACA;QAEDpJ,SAASA,wBAAwBA;YAC7BqJ,IAAIA,IAAIA,GAAwBA,UAAUA,CAACA,6BAA8BA,CAACA,CAACA;YAC3EA,IAAIA,CAACA,UAAUA,GAAGA,UAAUA,CAACA,eAAeA,CAACA,CAACA;YAC9CA,cAAcA,EAAEA,CAACA;YACjBA,MAAMA,CAACA,UAAUA,CAACA,IAAIA,CAACA,CAACA;QAC5BA,CAACA;QAEDrJ,SAASA,WAAWA,CAACA,eAAwBA;YACzCsJ,MAAMA,CAACA,CAACA,KAAKA,CAACA,CAACA,CAACA;gBACZA,KAAKA,uBAAyBA;oBAO1BA,MAAMA,CAACA,CAACA,eAAeA,CAACA;gBAC5BA,KAAKA,uBAAyBA,CAACA;gBAC/BA,KAAKA,mBAAqBA,CAACA;gBAC3BA,KAAKA,oBAAqBA,CAACA;gBAC3BA,KAAKA,wBAA0BA,CAACA;gBAChCA,KAAKA,kBAAoBA,CAACA;gBAC1BA,KAAKA,kBAAoBA,CAACA;gBAC1BA,KAAKA,qBAAuBA,CAACA;gBAC7BA,KAAKA,mBAAqBA,CAACA;gBAC3BA,KAAKA,wBAA0BA,CAACA;gBAChCA,KAAKA,qBAAuBA,CAACA;gBAC7BA,KAAKA,sBAAwBA,CAACA;gBAC9BA,KAAKA,oBAAsBA,CAACA;gBAC5BA,KAAKA,sBAAwBA,CAACA;gBAC9BA,KAAKA,qBAAuBA,CAACA;gBAC7BA,KAAKA,mBAAqBA,CAACA;gBAC3BA,KAAKA,wBAA0BA,CAACA;gBAGhCA,KAAKA,qBAAuBA,CAACA;gBAC7BA,KAAKA,uBAAyBA;oBAC1BA,MAAMA,CAACA,IAAIA,CAACA;gBAChBA,KAAKA,qBAAuBA;oBAIxBA,IAAIA,WAAWA,GAAGA,SAASA,CAACA,cAAMA,OAAAA,SAASA,EAAEA,KAAKA,oBAAsBA,EAAtCA,CAAsCA,CAACA,CAACA;oBAC1EA,MAAMA,CAACA,CAACA,WAAWA,CAACA;gBACxBA,KAAKA,0BAA2BA,CAACA;gBACjCA,KAAKA,qBAAuBA,CAACA;gBAC7BA,KAAKA,uBAAwBA,CAACA;gBAC9BA,KAAKA,oBAAsBA,CAACA;gBAC5BA,KAAKA,qBAAsBA;oBAGvBA,EAAEA,CAACA,CAACA,kBAAkBA,EAAEA,CAACA,CAACA,CAACA;wBACvBA,MAAMA,CAACA,KAAKA,CAACA;oBACjBA,CAACA;gBAELA,KAAKA,uBAAwBA,CAACA;gBAC9BA,KAAKA,wBAAyBA,CAACA;gBAC/BA,KAAKA,0BAA2BA,CAACA;gBACjCA,KAAKA,uBAAwBA;oBAGzBA,EAAEA,CAACA,CAACA,SAASA,CAACA,cAAMA,OAAAA,SAASA,EAAEA,IAAIA,mBAAqBA,EAApCA,CAAoCA,CAACA,CAACA,CAACA,CAACA;wBACxDA,MAAMA,CAACA,KAAKA,CAACA;oBACjBA,CAACA;gBACLA;oBACIA,MAAMA,CAACA,mBAAmBA,EAAEA,CAACA;YACrCA,CAACA;QACLA,CAACA;QAEDtJ,SAASA,cAAcA;YACnBuJ,MAAMA,CAACA,CAACA,KAAKA,CAACA,CAACA,CAACA;gBACZA,KAAKA,uBAAyBA;oBAC1BA,MAAMA,CAACA,UAAUA,CAA8BA,KAAKA,EAAyBA,KAAKA,CAACA,CAACA;gBACxFA,KAAKA,mBAAqBA,CAACA;gBAC3BA,KAAKA,oBAAqBA,CAACA;gBAC3BA,KAAKA,qBAAuBA;oBAExBA,MAAMA,CAACA,sBAAsBA,CAACA,OAAOA,CAACA,WAAWA,EAAEA,EAAiBA,SAASA,CAACA,CAACA;gBACnFA,KAAKA,wBAA0BA;oBAC3BA,MAAMA,CAACA,wBAAwBA,CAACA,OAAOA,CAACA,WAAWA,EAAEA,EAAiBA,SAASA,CAACA,CAACA;gBACrFA,KAAKA,uBAAyBA;oBAC1BA,MAAMA,CAACA,mBAAmBA,EAAEA,CAACA;gBACjCA,KAAKA,kBAAoBA;oBACrBA,MAAMA,CAACA,gBAAgBA,EAAEA,CAACA;gBAC9BA,KAAKA,kBAAoBA;oBACrBA,MAAMA,CAACA,gBAAgBA,EAAEA,CAACA;gBAC9BA,KAAKA,qBAAuBA;oBACxBA,MAAMA,CAACA,mBAAmBA,EAAEA,CAACA;gBACjCA,KAAKA,mBAAqBA;oBACtBA,MAAMA,CAACA,wBAAwBA,EAAEA,CAACA;gBACtCA,KAAKA,wBAA0BA;oBAC3BA,MAAMA,CAACA,6BAA6BA,CAACA,2BAA4BA,CAACA,CAACA;gBACvEA,KAAKA,qBAAuBA;oBACxBA,MAAMA,CAACA,6BAA6BA,CAACA,wBAAyBA,CAACA,CAACA;gBACpEA,KAAKA,sBAAwBA;oBACzBA,MAAMA,CAACA,oBAAoBA,EAAEA,CAACA;gBAClCA,KAAKA,oBAAsBA;oBACvBA,MAAMA,CAACA,kBAAkBA,EAAEA,CAACA;gBAChCA,KAAKA,sBAAwBA;oBACzBA,MAAMA,CAACA,oBAAoBA,EAAEA,CAACA;gBAClCA,KAAKA,qBAAuBA;oBACxBA,MAAMA,CAACA,mBAAmBA,EAAEA,CAACA;gBACjCA,KAAKA,mBAAqBA,CAACA;gBAE3BA,KAAKA,qBAAuBA,CAACA;gBAC7BA,KAAKA,uBAAyBA;oBAC1BA,MAAMA,CAACA,iBAAiBA,EAAEA,CAACA;gBAC/BA,KAAKA,wBAA0BA;oBAC3BA,MAAMA,CAACA,sBAAsBA,EAAEA,CAACA;gBACpCA;oBACIA,MAAMA,CAACA,OAAOA,EAAEA,GACVA,qBAAqBA,EAAEA,GACvBA,wBAAwBA,EAAEA,CAACA;YACzCA,CAACA;QACLA,CAACA;QAEDvJ,SAASA,6BAA6BA,CAACA,WAAoBA;YACvDwJ,EAAEA,CAACA,CAACA,KAAKA,KAAKA,uBAAyBA,CAACA,CAACA,CAACA;gBACtCA,MAAMA,CAACA,kBAAkBA,CAACA,WAAWA,EAA+BA,KAAKA,CAACA,CAACA;YAC/EA,CAACA;YAEDA,EAAEA,CAACA,CAACA,iBAAiBA,EAAEA,CAACA,CAACA,CAACA;gBACtBA,cAAcA,EAAEA,CAACA;gBACjBA,MAAMA,CAACA,SAASA,CAACA;YACrBA,CAACA;YAEDA,KAAKA,CAACA,cAAWA,CAACA,iBAAiBA,CAACA,CAACA;QACzCA,CAACA;QAIDxJ,SAASA,wBAAwBA;YAC7ByJ,IAAIA,IAAIA,GAAwBA,UAAUA,CAACA,6BAA8BA,CAACA,CAACA;YAC3EA,IAAIA,CAACA,IAAIA,GAAGA,eAAeA,EAAEA,CAACA;YAC9BA,IAAIA,CAACA,IAAIA,GAAGA,mBAAmBA,EAAEA,CAACA;YAClCA,IAAIA,CAACA,WAAWA,GAAGA,gBAAgBA,CAAiBA,KAAKA,CAACA,CAACA;YAC3DA,MAAMA,CAACA,UAAUA,CAACA,IAAIA,CAACA,CAACA;QAC5BA,CAACA;QAEDzJ,SAASA,OAAOA,CAACA,KAAqCA,EAAEA,IAAeA;YACnE0J,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,KAAKA,CAACA,MAAMA,EAAEA,CAACA,GAAGA,CAACA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;gBAC3CA,KAAKA,CAACA,CAACA,CAACA,CAACA,KAAKA,IAAIA,IAAIA,CAACA;YAC3BA,CAACA;YAEDA,MAAMA,CAACA,KAAKA,CAACA;QACjBA,CAACA;QAED1J,SAASA,4BAA4BA;YACjC2J,MAAMA,CAACA,kBAAkBA,CAACA,4BAAmCA,EAAEA,wBAAwBA,CAACA,CAACA;QAC7FA,CAACA;QAED3J,SAASA,sBAAsBA,CAACA,SAAiBA,EAAEA,SAAyBA;YACxE4J,IAAIA,IAAIA,GAAsBA,UAAUA,CAACA,2BAA4BA,EAAEA,SAASA,CAACA,CAACA;YAClFA,YAAYA,CAACA,IAAIA,EAAEA,SAASA,CAACA,CAACA;YAE9BA,EAAEA,CAACA,CAACA,KAAKA,KAAKA,oBAAqBA,CAACA,CAACA,CAACA;gBAClCA,IAAIA,CAACA,KAAKA,IAAIA,cAAaA,CAACA;YAChCA,CAACA;YACDA,IAAIA,CAACA,EAAEA,CAACA,CAACA,KAAKA,KAAKA,qBAAuBA,CAACA,CAACA,CAACA;gBACzCA,IAAIA,CAACA,KAAKA,IAAIA,gBAAeA,CAACA;YAClCA,CAACA;YACDA,IAAIA,CAACA,CAACA;gBACFA,QAAKA,CAACA,MAAMA,CAACA,KAAKA,KAAKA,mBAAqBA,CAACA,CAACA;YAClDA,CAACA;YAEDA,SAASA,EAAEA,CAACA;YACZA,IAAIA,CAACA,YAAYA,GAAGA,UAAUA,CAACA,4BAA4BA,CAACA,CAACA;YAC7DA,OAAOA,CAACA,IAAIA,CAACA,YAAYA,EAAEA,IAAIA,CAACA,KAAKA,CAACA,CAACA;YAEvCA,cAAcA,EAAEA,CAACA;YACjBA,MAAMA,CAACA,UAAUA,CAACA,IAAIA,CAACA,CAACA;QAC5BA,CAACA;QAED5J,SAASA,wBAAwBA,CAACA,SAAiBA,EAAEA,SAAyBA;YAC1E6J,IAAIA,IAAIA,GAA4BA,UAAUA,CAACA,6BAA8BA,EAAEA,SAASA,CAACA,CAACA;YAC1FA,YAAYA,CAACA,IAAIA,EAAEA,SAASA,CAACA,CAACA;YAC9BA,aAAaA,CAACA,wBAA0BA,CAACA,CAACA;YAC1CA,IAAIA,WAAWA,GAAGA,aAAaA,CAACA,sBAAwBA,CAACA,CAACA;YAC1DA,EAAEA,CAACA,CAACA,WAAWA,CAACA,CAACA,CAACA;gBACdA,IAAIA,CAACA,KAAKA,IAAIA,qBAAmBA,CAACA;YACtCA,CAACA;YAEDA,IAAIA,CAACA,IAAIA,GAAGA,eAAeA,EAAEA,CAACA;YAC9BA,aAAaA,CAACA,uBAAwBA,EAAEA,mBAAqBA,EAA4BA,KAAKA,EAAyCA,WAAWA,EAAEA,IAAIA,CAACA,CAACA;YAC1JA,IAAIA,CAACA,IAAIA,GAAGA,6BAA6BA,CAACA,WAAWA,CAACA,CAACA;YACvDA,MAAMA,CAACA,UAAUA,CAACA,IAAIA,CAACA,CAACA;QAC5BA,CAACA;QAED7J,SAASA,2BAA2BA,CAACA,GAAWA,EAAEA,SAAyBA;YACvE8J,IAAIA,IAAIA,GAA2BA,UAAUA,CAACA,qBAAsBA,EAAEA,GAAGA,CAACA,CAACA;YAC3EA,YAAYA,CAACA,IAAIA,EAAEA,SAASA,CAACA,CAACA;YAC9BA,aAAaA,CAACA,4BAA6BA,CAACA,CAACA;YAC7CA,aAAaA,CAACA,uBAAwBA,EAAEA,mBAAqBA,EAA4BA,KAAKA,EAAyCA,KAAKA,EAAEA,IAAIA,CAACA,CAACA;YACpJA,IAAIA,CAACA,IAAIA,GAAGA,6BAA6BA,CAAkBA,KAAKA,CAACA,CAACA;YAClEA,MAAMA,CAACA,UAAUA,CAACA,IAAIA,CAACA,CAACA;QAC5BA,CAACA;QAED9J,SAASA,8BAA8BA,CAACA,SAAiBA,EAAEA,SAAyBA;YAChF+J,IAAIA,KAAKA,GAAGA,SAASA,GAAGA,SAASA,CAACA,KAAKA,GAAGA,CAACA,CAACA;YAC5CA,IAAIA,WAAWA,GAAGA,aAAaA,CAACA,sBAAwBA,CAACA,CAACA;YAC1DA,EAAEA,CAACA,CAACA,WAAWA,CAACA,CAACA,CAACA;gBACdA,KAAKA,IAAIA,qBAAmBA,CAACA;YACjCA,CAACA;YAEDA,IAAIA,IAAIA,GAAGA,iBAAiBA,EAAEA,CAACA;YAC/BA,EAAEA,CAACA,CAACA,aAAaA,CAACA,sBAAwBA,CAACA,CAACA,CAACA,CAACA;gBAG1CA,KAAKA,IAAIA,oBAAsBA,CAACA;YACpCA,CAACA;YAEDA,EAAEA,CAACA,CAACA,WAAWA,IAAIA,KAAKA,KAAKA,uBAAyBA,IAAIA,KAAKA,KAAKA,sBAAwBA,CAACA,CAACA,CAACA;gBAC3FA,IAAIA,MAAMA,GAAsBA,UAAUA,CAACA,gBAAiBA,EAAEA,SAASA,CAACA,CAACA;gBACzEA,YAAYA,CAACA,MAAMA,EAAEA,SAASA,CAACA,CAACA;gBAChCA,EAAEA,CAACA,CAACA,KAAKA,CAACA,CAACA,CAACA;oBACRA,MAAMA,CAACA,KAAKA,GAAGA,KAAKA,CAACA;gBACzBA,CAACA;gBACDA,MAAMA,CAACA,IAAIA,GAAGA,IAAIA,CAACA;gBACnBA,aAAaA,CAACA,uBAAwBA,EAAEA,mBAAqBA,EAA4BA,KAAKA,EAAyCA,WAAWA,EAAEA,MAAMA,CAACA,CAACA;gBAC5JA,MAAMA,CAACA,IAAIA,GAAGA,6BAA6BA,CAACA,WAAWA,CAACA,CAACA;gBACzDA,MAAMA,CAACA,UAAUA,CAACA,MAAMA,CAACA,CAACA;YAC9BA,CAACA;YACDA,IAAIA,CAACA,CAACA;gBACFA,IAAIA,QAAQA,GAAwBA,UAAUA,CAACA,kBAAmBA,EAAEA,SAASA,CAACA,CAACA;gBAC/EA,YAAYA,CAACA,QAAQA,EAAEA,SAASA,CAACA,CAACA;gBAClCA,EAAEA,CAACA,CAACA,KAAKA,CAACA,CAACA,CAACA;oBACRA,QAAQA,CAACA,KAAKA,GAAGA,KAAKA,CAACA;gBAC3BA,CAACA;gBACDA,QAAQA,CAACA,IAAIA,GAAGA,IAAIA,CAACA;gBACrBA,QAAQA,CAACA,IAAIA,GAAGA,mBAAmBA,EAAEA,CAACA;gBACtCA,QAAQA,CAACA,WAAWA,GAAGA,UAAUA,CAACA,cAAMA,OAAAA,gBAAgBA,CAAiBA,KAAKA,CAACA,EAAvCA,CAAuCA,CAACA,CAACA;gBACjFA,cAAcA,EAAEA,CAACA;gBACjBA,MAAMA,CAACA,UAAUA,CAACA,QAAQA,CAACA,CAACA;YAChCA,CAACA;QACLA,CAACA;QAED/J,SAASA,8BAA8BA,CAACA,IAAgBA,EAAEA,SAAiBA,EAAEA,SAAyBA;YAClGgK,IAAIA,IAAIA,GAAsBA,UAAUA,CAACA,IAAIA,EAAEA,SAASA,CAACA,CAACA;YAC1DA,YAAYA,CAACA,IAAIA,EAAEA,SAASA,CAACA,CAACA;YAC9BA,IAAIA,CAACA,IAAIA,GAAGA,iBAAiBA,EAAEA,CAACA;YAChCA,aAAaA,CAACA,uBAAwBA,EAAEA,mBAAqBA,EAA4BA,KAAKA,EAAyCA,KAAKA,EAAEA,IAAIA,CAACA,CAACA;YACpJA,IAAIA,CAACA,IAAIA,GAAGA,6BAA6BA,CAAkBA,KAAKA,CAACA,CAACA;YAClEA,MAAMA,CAACA,UAAUA,CAACA,IAAIA,CAACA,CAACA;QAC5BA,CAACA;QAEDhK,SAASA,kBAAkBA;YACvBiK,IAAIA,OAAmBA,CAACA;YAGxBA,OAAOA,UAAUA,CAACA,KAAKA,CAACA,EAAEA,CAACA;gBACvBA,OAAOA,GAAGA,KAAKA,CAACA;gBAChBA,SAASA,EAAEA,CAACA;YAChBA,CAACA;YAEDA,EAAEA,CAACA,CAACA,KAAKA,KAAKA,sBAAwBA,CAACA,CAACA,CAACA;gBACrCA,MAAMA,CAACA,IAAIA,CAACA;YAChBA,CAACA;YAIDA,EAAEA,CAACA,CAACA,cAAcA,EAAEA,CAACA,CAACA,CAACA;gBACnBA,OAAOA,GAAGA,KAAKA,CAACA;gBAChBA,SAASA,EAAEA,CAACA;YAChBA,CAACA;YAGDA,EAAEA,CAACA,CAACA,KAAKA,KAAKA,yBAA2BA,CAACA,CAACA,CAACA;gBACxCA,MAAMA,CAACA,IAAIA,CAACA;YAChBA,CAACA;YAGDA,EAAEA,CAACA,CAACA,OAAOA,KAAKA,SAASA,CAACA,CAACA,CAACA;gBAExBA,EAAEA,CAACA,CAACA,CAACA,SAASA,CAACA,OAAOA,CAACA,IAAIA,OAAOA,KAAKA,oBAAqBA,IAAIA,OAAOA,KAAKA,oBAAqBA,CAACA,CAACA,CAACA;oBAChGA,MAAMA,CAACA,IAAIA,CAACA;gBAChBA,CAACA;gBAIDA,MAAMA,CAACA,CAACA,KAAKA,CAACA,CAACA,CAACA;oBACZA,KAAKA,uBAAyBA,CAACA;oBAC/BA,KAAKA,sBAAwBA,CAACA;oBAC9BA,KAAKA,mBAAqBA,CAACA;oBAC3BA,KAAKA,oBAAsBA,CAACA;oBAC5BA,KAAKA,sBAAwBA;wBACzBA,MAAMA,CAACA,IAAIA,CAACA;oBAChBA;wBAMIA,MAAMA,CAACA,iBAAiBA,EAAEA,CAACA;gBACnCA,CAACA;YACLA,CAACA;YAEDA,MAAMA,CAACA,KAAKA,CAACA;QACjBA,CAACA;QAEDjK,SAASA,cAAcA;YACnBkK,IAAIA,KAAKA,GAAGA,CAACA,CAACA;YACdA,IAAIA,SAAyBA,CAACA;YAC9BA,OAAOA,IAAIA,EAAEA,CAACA;gBACVA,IAAIA,aAAaA,GAAGA,OAAOA,CAACA,WAAWA,EAAEA,CAACA;gBAC1CA,IAAIA,YAAYA,GAAGA,KAAKA,CAACA;gBAEzBA,EAAEA,CAACA,CAACA,CAACA,0BAA0BA,EAAEA,CAACA,CAACA,CAACA;oBAChCA,KAAKA,CAACA;gBACVA,CAACA;gBAEDA,EAAEA,CAACA,CAACA,CAACA,SAASA,CAACA,CAACA,CAACA;oBACbA,SAASA,GAAmBA,EAAEA,CAACA;gBACnCA,CAACA;gBACDA,KAAKA,IAAIA,cAAcA,CAACA,YAAYA,CAACA,CAACA;gBACtCA,SAASA,CAACA,IAAIA,CAACA,UAAUA,CAACA,UAAUA,CAACA,YAAYA,EAAEA,aAAaA,CAACA,CAACA,CAACA,CAACA;YACxEA,CAACA;YACDA,EAAEA,CAACA,CAACA,SAASA,CAACA,CAACA,CAACA;gBACZA,SAASA,CAACA,KAAKA,GAAGA,KAAKA,CAACA;YAC5BA,CAACA;YACDA,MAAMA,CAACA,SAASA,CAACA;QACrBA,CAACA;QAEDlK,SAASA,2BAA2BA;YAChCmK,IAAIA,SAASA,GAAGA,UAAUA,EAAEA,CAACA;YAC7BA,IAAIA,SAASA,GAAGA,cAAcA,EAAEA,CAACA;YACjCA,EAAEA,CAACA,CAACA,uBAAuBA,CAACA,oBAAqBA,CAACA,CAACA,CAACA,CAACA;gBACjDA,MAAMA,CAACA,8BAA8BA,CAACA,qBAAsBA,EAAEA,SAASA,EAAEA,SAASA,CAACA,CAACA;YACxFA,CAACA;YACDA,EAAEA,CAACA,CAACA,uBAAuBA,CAACA,oBAAqBA,CAACA,CAACA,CAACA,CAACA;gBACjDA,MAAMA,CAACA,8BAA8BA,CAACA,qBAAsBA,EAAEA,SAASA,EAAEA,SAASA,CAACA,CAACA;YACxFA,CAACA;YACDA,EAAEA,CAACA,CAACA,KAAKA,KAAKA,4BAA6BA,CAACA,CAACA,CAACA;gBAC1CA,MAAMA,CAACA,2BAA2BA,CAACA,SAASA,EAAEA,SAASA,CAACA,CAACA;YAC7DA,CAACA;YACDA,EAAEA,CAACA,CAACA,KAAKA,IAAIA,mBAAqBA,IAAIA,KAAKA,KAAKA,qBAAwBA,IAAIA,KAAKA,KAAKA,sBAAyBA,IAAIA,KAAKA,KAAKA,sBAAwBA,CAACA,CAACA,CAACA;gBACpJA,MAAMA,CAACA,8BAA8BA,CAACA,SAASA,EAAEA,SAASA,CAACA,CAACA;YAChEA,CAACA;YACDA,EAAEA,CAACA,CAACA,KAAKA,KAAKA,yBAA2BA,CAACA,CAACA,CAACA;gBACxCA,MAAMA,CAACA,yBAAyBA,CAACA,SAASA,EAAEA,SAASA,CAACA,CAACA;YAC3DA,CAACA;YAGDA,QAAKA,CAACA,IAAIA,CAACA,8DAA8DA,CAACA,CAACA;QAC/EA,CAACA;QAEDnK,SAASA,qBAAqBA,CAACA,SAAiBA,EAAEA,SAAyBA;YACvEoK,IAAIA,IAAIA,GAAqBA,UAAUA,CAACA,0BAA2BA,EAAEA,SAASA,CAACA,CAACA;YAChFA,YAAYA,CAACA,IAAIA,EAAEA,SAASA,CAACA,CAACA;YAC9BA,aAAaA,CAACA,qBAAuBA,CAACA,CAACA;YACvCA,IAAIA,CAACA,IAAIA,GAAGA,eAAeA,EAAEA,CAACA;YAC9BA,IAAIA,CAACA,cAAcA,GAAGA,mBAAmBA,EAAEA,CAACA;YAQ5CA,IAAIA,CAACA,QAAQA,GAAGA,2BAA2BA,EAAEA,GACvCA,uBAAuBA,CAACA,kBAAkBA,CAACA,GAC3CA,kBAAkBA,EAAEA,CAACA;YAE3BA,EAAEA,CAACA,CAACA,aAAaA,CAACA,2BAA4BA,CAACA,CAACA,CAACA,CAACA;gBAC9CA,IAAIA,CAACA,gBAAgBA,GAAGA,kBAAkBA,CAACA,0BAAiCA,EAAEA,kBAAkBA,CAACA,CAACA;YACtGA,CAACA;YACDA,EAAEA,CAACA,CAACA,aAAaA,CAACA,uBAAyBA,CAACA,CAACA,CAACA,CAACA;gBAK3CA,IAAIA,CAACA,OAAOA,GAAGA,2BAA2BA,EAAEA,GACtCA,uBAAuBA,CAACA,iBAAiBA,CAACA,GAC1CA,iBAAiBA,EAAEA,CAACA;gBAC1BA,aAAaA,CAACA,wBAA0BA,CAACA,CAACA;YAC9CA,CAACA;YACDA,IAAIA,CAACA,CAACA;gBACFA,IAAIA,CAACA,OAAOA,GAAGA,iBAAiBA,EAAeA,CAACA;YACpDA,CAACA;YACDA,MAAMA,CAACA,UAAUA,CAACA,IAAIA,CAACA,CAACA;QAC5BA,CAACA;QAEDpK,SAASA,iBAAiBA;YACtBqK,MAAMA,CAACA,SAASA,CAACA,oBAA2BA,EAAyBA,KAAKA,EAAEA,2BAA2BA,CAACA,CAACA;QAC7GA,CAACA;QAEDrK,SAASA,kBAAkBA;YACvBsK,MAAMA,CAACA,aAAaA,CAACA,uBAAyBA,CAACA,GAAGA,kBAAkBA,EAAEA,GAAGA,SAASA,CAACA;QACvFA,CAACA;QAEDtK,SAASA,yBAAyBA,CAACA,SAAiBA,EAAEA,SAAyBA;YAC3EuK,IAAIA,IAAIA,GAAyBA,UAAUA,CAACA,8BAA+BA,EAAEA,SAASA,CAACA,CAACA;YACxFA,YAAYA,CAACA,IAAIA,EAAEA,SAASA,CAACA,CAACA;YAC9BA,aAAaA,CAACA,0BAA2BA,CAACA,CAACA;YAC3CA,IAAIA,CAACA,IAAIA,GAAGA,eAAeA,EAAEA,CAACA;YAC9BA,IAAIA,CAACA,cAAcA,GAAGA,mBAAmBA,EAAEA,CAACA;YAE5CA,EAAEA,CAACA,CAACA,aAAaA,CAACA,uBAAyBA,CAACA,CAACA,CAACA,CAACA;gBAC3CA,IAAIA,CAACA,SAASA,GAAGA,kBAAkBA,CAACA,0BAAiCA,EAAEA,kBAAkBA,CAACA,CAACA;YAC/FA,CAACA;YACDA,IAAIA,CAACA,OAAOA,GAAGA,eAAeA,EAAEA,CAACA;YACjCA,MAAMA,CAACA,UAAUA,CAACA,IAAIA,CAACA,CAACA;QAC5BA,CAACA;QAEDvK,SAASA,yBAAyBA,CAACA,SAAiBA,EAAEA,SAAyBA;YAC3EwK,IAAIA,IAAIA,GAAyBA,UAAUA,CAACA,8BAA+BA,EAAEA,SAASA,CAACA,CAACA;YACxFA,YAAYA,CAACA,IAAIA,EAAEA,SAASA,CAACA,CAACA;YAC9BA,aAAaA,CAACA,qBAAsBA,CAACA,CAACA;YACtCA,IAAIA,CAACA,IAAIA,GAAGA,eAAeA,EAAEA,CAACA;YAC9BA,aAAaA,CAACA,oBAAsBA,CAACA,CAACA;YACtCA,IAAIA,CAACA,IAAIA,GAAGA,SAASA,EAAEA,CAACA;YACxBA,cAAcA,EAAEA,CAACA;YACjBA,MAAMA,CAACA,UAAUA,CAACA,IAAIA,CAACA,CAACA;QAC5BA,CAACA;QAMDxK,SAASA,eAAeA;YACpByK,IAAIA,IAAIA,GAAeA,UAAUA,CAACA,oBAAqBA,EAAEA,OAAOA,CAACA,WAAWA,EAAEA,CAACA,CAACA;YAChFA,IAAIA,CAACA,IAAIA,GAAGA,iBAAiBA,EAAEA,CAACA;YAChCA,IAAIA,CAACA,WAAWA,GAAGA,UAAUA,CAACA,cAAMA,OAAAA,gBAAgBA,CAAiBA,KAAKA,CAACA,EAAvCA,CAAuCA,CAACA,CAACA;YAC7EA,MAAMA,CAACA,UAAUA,CAACA,IAAIA,CAACA,CAACA;QAC5BA,CAACA;QAEDzK,SAASA,4BAA4BA,CAACA,SAAiBA,EAAEA,KAAgBA;YACrE0K,IAAIA,IAAIA,GAAoBA,UAAUA,CAACA,yBAA0BA,EAAEA,SAASA,CAACA,CAACA;YAC9EA,IAAIA,CAACA,KAAKA,GAAGA,KAAKA,CAACA;YACnBA,EAAEA,CAACA,CAACA,KAAKA,GAAGA,gBAAeA,CAACA,CAACA,CAACA;gBAC1BA,aAAaA,CAACA,qBAAuBA,CAACA,CAACA;YAC3CA,CAACA;YACDA,aAAaA,CAACA,oBAAsBA,CAACA,CAACA;YACtCA,IAAIA,CAACA,IAAIA,GAAGA,eAAeA,EAAEA,CAACA;YAC9BA,EAAEA,CAACA,CAACA,aAAaA,CAACA,uBAAyBA,CAACA,CAACA,CAACA,CAACA;gBAC3CA,IAAIA,CAACA,OAAOA,GAAGA,kBAAkBA,CAACA,mBAA0BA,EAAEA,eAAeA,CAACA,CAACA;gBAC/EA,aAAaA,CAACA,wBAA0BA,CAACA,CAACA;YAC9CA,CAACA;YACDA,IAAIA,CAACA,CAACA;gBACFA,IAAIA,CAACA,OAAOA,GAAGA,iBAAiBA,EAAcA,CAACA;YACnDA,CAACA;YACDA,MAAMA,CAACA,UAAUA,CAACA,IAAIA,CAACA,CAACA;QAC5BA,CAACA;QAED1K,SAASA,eAAeA;YACpB2K,IAAIA,IAAIA,GAAUA,UAAUA,CAACA,qBAAsBA,EAAEA,OAAOA,CAACA,WAAWA,EAAEA,CAACA,CAACA;YAC5EA,EAAEA,CAACA,CAACA,aAAaA,CAACA,uBAAyBA,CAACA,CAACA,CAACA,CAACA;gBAC3CA,IAAIA,CAACA,UAAUA,GAAGA,SAASA,CAACA,sBAA6BA,EAAyBA,KAAKA,EAAEA,kBAAkBA,CAACA,CAACA;gBAC7GA,aAAaA,CAACA,wBAA0BA,CAACA,CAACA;YAC9CA,CAACA;YACDA,IAAIA,CAACA,CAACA;gBACFA,IAAIA,CAACA,UAAUA,GAAGA,iBAAiBA,EAAaA,CAACA;YACrDA,CAACA;YACDA,MAAMA,CAACA,UAAUA,CAACA,IAAIA,CAACA,CAACA;QAC5BA,CAACA;QAED3K,SAASA,uBAAuBA,CAACA,SAAiBA,EAAEA,KAAgBA;YAChE4K,IAAIA,IAAIA,GAAsBA,UAAUA,CAACA,2BAA4BA,EAAEA,SAASA,CAACA,CAACA;YAClFA,IAAIA,CAACA,KAAKA,GAAGA,KAAKA,CAACA;YACnBA,IAAIA,CAACA,IAAIA,GAAGA,eAAeA,EAAEA,CAACA;YAC9BA,IAAIA,CAACA,IAAIA,GAAGA,aAAaA,CAACA,iBAAmBA,CAACA,GACxCA,uBAAuBA,CAACA,UAAUA,EAAEA,EAAEA,cAAgBA,CAACA,GACvDA,eAAeA,EAAEA,CAACA;YACxBA,MAAMA,CAACA,UAAUA,CAACA,IAAIA,CAACA,CAACA;QAC5BA,CAACA;QAED5K,SAASA,qCAAqCA,CAACA,SAAiBA,EAAEA,KAAgBA;YAC9E6K,IAAIA,IAAIA,GAAsBA,UAAUA,CAACA,2BAA4BA,EAAEA,SAASA,CAACA,CAACA;YAClFA,IAAIA,CAACA,KAAKA,GAAGA,KAAKA,CAACA;YACnBA,IAAIA,CAACA,IAAIA,GAAGA,kBAAkBA,EAAEA,CAACA;YACjCA,IAAIA,CAACA,IAAIA,GAAGA,eAAeA,EAAEA,CAACA;YAC9BA,MAAMA,CAACA,UAAUA,CAACA,IAAIA,CAACA,CAACA;QAC5BA,CAACA;QAED7K,SAASA,sBAAsBA,CAACA,SAAiBA,EAAEA,KAAgBA;YAC/D8K,aAAaA,CAACA,uBAAwBA,CAACA,CAACA;YACxCA,MAAMA,CAACA,KAAKA,KAAKA,qBAAwBA,GACnCA,qCAAqCA,CAACA,SAASA,EAAEA,KAAKA,CAACA,GACvDA,uBAAuBA,CAACA,SAASA,EAAEA,KAAKA,CAACA,CAACA;QACpDA,CAACA;QAED9K,SAASA,sBAAsBA,CAACA,SAAiBA,EAAEA,SAAyBA;YACxE+K,IAAIA,IAAIA,GAAsBA,UAAUA,CAACA,2BAA4BA,EAAEA,SAASA,CAACA,CAACA;YAClFA,YAAYA,CAACA,IAAIA,EAAEA,SAASA,CAACA,CAACA;YAC9BA,aAAaA,CAACA,sBAAwBA,CAACA,CAACA;YACxCA,IAAIA,CAACA,IAAIA,GAAGA,eAAeA,EAAEA,CAACA;YAC9BA,aAAaA,CAACA,oBAAsBA,CAACA,CAACA;YACtCA,IAAIA,UAAUA,GAAGA,eAAeA,CAAwBA,KAAKA,CAACA,CAACA;YAC/DA,EAAEA,CAACA,CAACA,UAAUA,CAACA,IAAIA,KAAKA,mBAAqBA,IAAiBA,UAAWA,CAACA,IAAIA,KAAKA,SAASA,IAAIA,aAAaA,CAACA,uBAAyBA,CAACA,CAACA,CAACA,CAACA;gBACvIA,IAAIA,CAACA,kBAAkBA,GAAGA,kBAAkBA,EAAEA,CAACA;gBAC/CA,aAAaA,CAACA,wBAA0BA,CAACA,CAACA;YAC9CA,CAACA;YACDA,IAAIA,CAACA,CAACA;gBACFA,IAAIA,CAACA,UAAUA,GAAGA,UAAUA,CAACA;YACjCA,CAACA;YACDA,cAAcA,EAAEA,CAACA;YACjBA,MAAMA,CAACA,UAAUA,CAACA,IAAIA,CAACA,CAACA;QAC5BA,CAACA;QAED/K,SAASA,yBAAyBA,CAACA,SAAiBA,EAAEA,SAAyBA;YAC3EgL,IAAIA,IAAIA,GAAqBA,UAAUA,CAACA,0BAA2BA,EAAEA,SAASA,CAACA,CAACA;YAChFA,YAAYA,CAACA,IAAIA,EAAEA,SAASA,CAACA,CAACA;YAC9BA,IAAIA,CAACA,UAAUA,GAAGA,eAAeA,EAAEA,CAACA;YACpCA,cAAcA,EAAEA,CAACA;YACjBA,MAAMA,CAACA,UAAUA,CAACA,IAAIA,CAACA,CAACA;QAC5BA,CAACA;QAEDhL,SAASA,kBAAkBA;YACvBiL,MAAMA,CAACA,CAACA,KAAKA,CAACA,CAACA,CAACA;gBACZA,KAAKA,mBAAqBA,CAACA;gBAC3BA,KAAKA,oBAAqBA,CAACA;gBAC3BA,KAAKA,qBAAuBA,CAACA;gBAC7BA,KAAKA,wBAA0BA;oBAC3BA,MAAMA,CAACA,IAAIA,CAACA;gBAChBA,KAAKA,qBAAuBA,CAACA;gBAC7BA,KAAKA,0BAA2BA,CAACA;gBACjCA,KAAKA,oBAAsBA,CAACA;gBAC5BA,KAAKA,sBAAwBA,CAACA;gBAC9BA,KAAKA,qBAAsBA;oBAEvBA,MAAMA,CAACA,SAASA,CAACA,cAAMA,OAAAA,SAASA,EAAEA,IAAIA,mBAAqBA,EAApCA,CAAoCA,CAACA,CAACA;gBACjEA,KAAKA,uBAAwBA;oBAEzBA,MAAMA,CAACA,SAASA,CAACA,cAAMA,OAAAA,SAASA,EAAEA,IAAIA,mBAAqBA,IAAIA,KAAKA,KAAKA,qBAAwBA,EAA1EA,CAA0EA,CAACA,CAACA;gBACvGA,KAAKA,sBAAwBA;oBAEzBA,MAAMA,CAACA,SAASA,CAACA,cAAMA,OAAAA,SAASA,EAAEA,KAAKA,oBAAsBA,IAAIA,kBAAkBA,EAAEA,EAA9DA,CAA8DA,CAACA,CAACA;gBAC3FA,KAAKA,wBAAyBA,CAACA;gBAC/BA,KAAKA,uBAAwBA,CAACA;gBAC9BA,KAAKA,wBAAyBA,CAACA;gBAC/BA,KAAKA,0BAA2BA,CAACA;gBACjCA,KAAKA,uBAAwBA;oBAEzBA,MAAMA,CAACA,SAASA,CAACA;wBAAQA,SAASA,EAAEA,CAACA;wBAACA,MAAMA,CAACA,kBAAkBA,EAAEA,CAACA;oBAACA,CAACA,CAACA,CAACA;YAC9EA,CAACA;QACLA,CAACA;QAEDjL,SAASA,gBAAgBA;YACrBkL,IAAIA,SAASA,GAAGA,UAAUA,EAAEA,CAACA;YAC7BA,IAAIA,SAASA,GAAGA,cAAcA,EAAEA,CAACA;YACjCA,EAAEA,CAACA,CAACA,KAAKA,KAAKA,sBAAwBA,CAACA,CAACA,CAACA;gBACrCA,SAASA,EAAEA,CAACA;gBACZA,EAAEA,CAACA,CAACA,aAAaA,CAACA,oBAAsBA,CAACA,CAACA,CAACA,CAACA;oBACxCA,MAAMA,CAACA,yBAAyBA,CAACA,SAASA,EAAEA,SAASA,CAACA,CAACA;gBAC3DA,CAACA;YACLA,CAACA;YAEDA,IAAIA,KAAKA,GAAGA,SAASA,GAAGA,SAASA,CAACA,KAAKA,GAAGA,CAACA,CAACA;YAC5CA,IAAIA,MAAmBA,CAACA;YACxBA,MAAMA,CAACA,CAACA,KAAKA,CAACA,CAACA,CAACA;gBACZA,KAAKA,mBAAqBA,CAACA;gBAC3BA,KAAKA,oBAAqBA;oBACtBA,MAAMA,GAAGA,sBAAsBA,CAACA,SAASA,EAAEA,SAASA,CAACA,CAACA;oBACtDA,KAAKA,CAACA;gBACVA,KAAKA,qBAAuBA;oBACxBA,IAAIA,WAAWA,GAAGA,SAASA,CAACA,cAAMA,OAAAA,SAASA,EAAEA,KAAKA,oBAAsBA,EAAtCA,CAAsCA,CAACA,CAACA;oBAC1EA,EAAEA,CAACA,CAACA,WAAWA,CAACA,CAACA,CAACA;wBACdA,MAAMA,GAAGA,4BAA4BA,CAACA,SAASA,EAAEA,KAAKA,GAAGA,gBAAeA,CAACA,CAACA;oBAC9EA,CAACA;oBACDA,IAAIA,CAACA,CAACA;wBACFA,MAAMA,GAAGA,sBAAsBA,CAACA,SAASA,EAAEA,SAASA,CAACA,CAACA;oBAC1DA,CAACA;oBACDA,KAAKA,CAACA;gBACVA,KAAKA,wBAA0BA;oBAC3BA,MAAMA,GAAGA,wBAAwBA,CAACA,SAASA,EAAEA,SAASA,CAACA,CAACA;oBACxDA,KAAKA,CAACA;gBACVA,KAAKA,qBAAuBA;oBACxBA,MAAMA,GAAGA,qBAAqBA,CAACA,SAASA,EAAEA,SAASA,CAACA,CAACA;oBACrDA,KAAKA,CAACA;gBACVA,KAAKA,0BAA2BA;oBAC5BA,MAAMA,GAAGA,yBAAyBA,CAACA,SAASA,EAAEA,SAASA,CAACA,CAACA;oBACzDA,KAAKA,CAACA;gBACVA,KAAKA,qBAAsBA;oBACvBA,MAAMA,GAAGA,yBAAyBA,CAACA,SAASA,EAAEA,SAASA,CAACA,CAACA;oBACzDA,KAAKA,CAACA;gBACVA,KAAKA,oBAAsBA;oBACvBA,MAAMA,GAAGA,4BAA4BA,CAACA,SAASA,EAAEA,KAAKA,CAACA,CAACA;oBACxDA,KAAKA,CAACA;gBACVA,KAAKA,uBAAwBA;oBACzBA,MAAMA,GAAGA,sBAAsBA,CAACA,SAASA,EAAEA,KAAKA,CAACA,CAACA;oBAClDA,KAAKA,CAACA;gBACVA,KAAKA,sBAAwBA;oBACzBA,MAAMA,GAAGA,sBAAsBA,CAACA,SAASA,EAAEA,SAASA,CAACA,CAACA;oBACtDA,KAAKA,CAACA;gBACVA;oBACIA,KAAKA,CAACA,cAAWA,CAACA,oBAAoBA,CAACA,CAACA;YAChDA,CAACA;YAEDA,EAAEA,CAACA,CAACA,SAASA,CAACA,CAACA,CAACA;gBACZA,MAAMA,CAACA,SAASA,GAAGA,SAASA,CAACA;YACjCA,CAACA;YAEDA,MAAMA,CAACA,MAAMA,CAACA;QAClBA,CAACA;QAEDlL,SAASA,eAAeA,CAACA,eAAwBA;YAC7CmL,MAAMA,CAACA,kBAAkBA,EAAEA,IAAIA,WAAWA,CAACA,eAAeA,CAACA,CAACA;QAChEA,CAACA;QAEDnL,SAASA,kBAAkBA;YACvBoL,MAAMA,CAACA,iCAAiCA,EAAEA,CAACA;QAC/CA,CAACA;QAEDpL,SAASA,kBAAkBA;YACvBqL,MAAMA,CAACA,iCAAiCA,EAAEA,CAACA;QAC/CA,CAACA;QAEDrL,SAASA,iCAAiCA;YACtCsL,MAAMA,CAACA,kBAAkBA,EAAEA,GACrBA,gBAAgBA,EAAEA,GAClBA,cAAcA,EAAEA,CAACA;QAC3BA,CAACA;QAEDtL,SAASA,wBAAwBA;YAC7BuL,IAAIA,eAAeA,GAAoBA,EAAEA,CAACA;YAC1CA,IAAIA,eAAeA,GAAaA,EAAEA,CAACA;YACnCA,IAAIA,aAAqBA,CAACA;YAC1BA,aAAaA,GAAGA,EAAEA,CAACA;YACnBA,KAAKA,GAAGA,OAAOA,CAACA,IAAIA,EAAEA,CAACA;YAEvBA,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,aAAaA,CAACA,MAAMA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;gBAC5CA,IAAIA,KAAKA,GAAGA,aAAaA,CAACA,CAACA,CAACA,CAACA;gBAC7BA,IAAIA,OAAOA,GAAGA,UAAUA,CAACA,SAASA,CAACA,KAAKA,CAACA,GAAGA,EAAEA,KAAKA,CAACA,GAAGA,CAACA,CAACA;gBACzDA,IAAIA,wBAAwBA,GAAGA,iCAAiCA,CAACA,OAAOA,EAAEA,KAAKA,CAACA,CAACA;gBACjFA,EAAEA,CAACA,CAACA,wBAAwBA,CAACA,CAACA,CAACA;oBAC3BA,IAAIA,aAAaA,GAAGA,wBAAwBA,CAACA,aAAaA,CAACA;oBAC3DA,IAAIA,CAACA,eAAeA,GAAGA,wBAAwBA,CAACA,cAAcA,CAACA;oBAC/DA,IAAIA,UAAUA,GAAGA,wBAAwBA,CAACA,UAAUA,CAACA;oBACrDA,EAAEA,CAACA,CAACA,aAAaA,CAACA,CAACA,CAACA;wBAChBA,eAAeA,CAACA,IAAIA,CAACA,aAAaA,CAACA,CAACA;oBACxCA,CAACA;oBACDA,EAAEA,CAACA,CAACA,UAAUA,CAACA,CAACA,CAACA;wBACbA,UAAUA,CAACA,KAAKA,CAACA,GAAGA,EAAEA,KAAKA,CAACA,GAAGA,GAAGA,KAAKA,CAACA,GAAGA,EAAEA,UAAUA,CAACA,CAACA;oBAC7DA,CAACA;gBACLA,CAACA;gBACDA,IAAIA,CAACA,CAACA;oBACFA,IAAIA,kBAAkBA,GAAGA,oDAAoDA,CAACA;oBAC9EA,IAAIA,wBAAwBA,GAAGA,kBAAkBA,CAACA,IAAIA,CAACA,OAAOA,CAACA,CAACA;oBAChEA,EAAEA,CAAAA,CAACA,wBAAwBA,CAACA,CAACA,CAACA;wBAC1BA,EAAEA,CAAAA,CAACA,aAAaA,CAACA,CAACA,CAACA;4BACfA,UAAUA,CAACA,KAAKA,CAACA,GAAGA,EAAEA,KAAKA,CAACA,GAAGA,GAAGA,KAAKA,CAACA,GAAGA,EAAEA,cAAWA,CAACA,mDAAmDA,CAACA,CAACA;wBAClHA,CAACA;wBACDA,aAAaA,GAAGA,wBAAwBA,CAACA,CAACA,CAACA,CAACA;oBAChDA,CAACA;oBAEDA,IAAIA,kBAAkBA,GAAGA,wDAAwDA,CAACA;oBAClFA,IAAIA,wBAAwBA,GAAGA,kBAAkBA,CAACA,IAAIA,CAACA,OAAOA,CAACA,CAACA;oBAChEA,EAAEA,CAACA,CAACA,wBAAwBA,CAACA,CAACA,CAACA;wBAC3BA,eAAeA,CAACA,IAAIA,CAACA,wBAAwBA,CAACA,CAACA,CAACA,CAACA,CAACA;oBACtDA,CAACA;gBACLA,CAACA;YACLA,CAACA;YACDA,aAAaA,GAAGA,SAASA,CAACA;YAC1BA,MAAMA,CAACA;gBACHA,eAAeA,iBAAAA;gBACfA,eAAeA,iBAAAA;gBACfA,aAAaA,eAAAA;aAChBA,CAACA;QACNA,CAACA;QAEDvL,SAASA,0BAA0BA;YAC/BwL,MAAMA,CAACA,UAAOA,CAACA,IAAIA,CAACA,UAAUA,EAAEA,UAAAA,IAAOA,IACnCA,OAAAA,IAAIA,CAACA,KAAKA,GAAGA,cAAgBA,IAC1BA,IAAIA,CAACA,IAAIA,KAAKA,2BAA4BA,IAAwBA,IAAKA,CAACA,kBAAkBA,IAC1FA,IAAIA,CAACA,IAAIA,KAAKA,0BAA2BA,GAC1CA,IAAIA,GACJA,SAASA,EAJXA,CAIWA,CAACA,CAACA;QACrBA,CAACA;QAEDxL,IAAIA,oBAAkCA,CAACA;QACvCA,SAASA,uBAAuBA;YAC5ByL,EAAEA,CAACA,CAACA,oBAAoBA,KAAKA,SAASA,CAACA,CAACA,CAACA;gBACrCA,EAAEA,CAACA,CAACA,IAAIA,CAACA,gBAAgBA,CAACA,MAAMA,GAAGA,CAACA,CAACA,CAACA,CAACA;oBAGnCA,oBAAoBA,GAAGA,IAAIA,CAACA,gBAAgBA,CAACA;gBACjDA,CAACA;gBACDA,IAAIA,CAACA,CAACA;oBAEFA,oBAAoBA,GAAGA,IAAIA,CAACA,kBAAkBA,CAACA;oBAC/CA,YAAYA,CAACA,UAAUA,EAAEA,eAAeA,EAAEA,IAAIA,CAACA,CAACA;gBACpDA,CAACA;YACLA,CAACA;YAEDA,QAAKA,CAACA,MAAMA,CAACA,oBAAoBA,KAAKA,SAASA,CAACA,CAACA;YACjDA,MAAMA,CAACA,oBAAoBA,CAACA;QAChCA,CAACA;QAEDzL,OAAOA,GAAGA,gBAAaA,CAACA,eAAeA,EAAiBA,IAAIA,EAAEA,UAAUA,EAAEA,SAASA,EAAEA,SAASA,CAACA,CAACA;QAChGA,IAAIA,aAAaA,GAAcA,CAACA,CAACA;QACjCA,EAAEA,CAACA,CAACA,kBAAeA,CAACA,QAAQA,EAAEA,OAAOA,CAACA,CAACA,CAACA,CAACA;YACrCA,aAAaA,GAAGA,0BAAyBA,CAACA;QAC9CA,CAACA;QACDA,IAAIA,GAAeA,cAAcA,CAACA,oBAAqBA,EAAEA,CAACA,EAAEA,UAAUA,CAACA,MAAMA,EAAEA,aAAaA,CAACA,CAACA;QAC9FA,IAAIA,CAACA,QAAQA,GAAGA,gBAAaA,CAACA,QAAQA,CAACA,CAACA;QACxCA,IAAIA,CAACA,IAAIA,GAAGA,UAAUA,CAACA;QACvBA,IAAIA,CAACA,+BAA+BA,GAAGA,qCAAqCA,CAACA;QAC7EA,IAAIA,CAACA,+BAA+BA,GAAGA,qCAAqCA,CAACA;QAC7EA,IAAIA,CAACA,aAAaA,GAAGA,aAAaA,CAACA;QACnCA,IAAIA,CAACA,uBAAuBA,GAAGA,uBAAuBA,CAACA;QACvDA,IAAIA,CAACA,gBAAgBA,GAAGA,EAAEA,CAACA;QAC3BA,IAAIA,CAACA,kBAAkBA,GAAGA,EAAEA,CAACA;QAC7BA,IAAIA,CAACA,mBAAmBA,GAAGA,EAAEA,CAACA;QAC9BA,IAAIA,iBAAiBA,GAAGA,wBAAwBA,EAAEA,CAACA;QACnDA,IAAIA,CAACA,eAAeA,GAAGA,iBAAiBA,CAACA,eAAeA,CAACA;QACzDA,IAAIA,CAACA,eAAeA,GAAGA,iBAAiBA,CAACA,eAAeA,CAACA;QACzDA,IAAIA,CAACA,aAAaA,GAAGA,iBAAiBA,CAACA,aAAaA,CAACA;QAErDA,IAAIA,CAACA,UAAUA,GAAGA,SAASA,CAACA,sBAA6BA,EAAyBA,IAAIA,EAAEA,kBAAkBA,CAACA,CAACA;QAC5GA,IAAIA,CAACA,uBAAuBA,GAAGA,0BAA0BA,EAAEA,CAACA;QAE5DA,IAAIA,CAACA,SAASA,GAAGA,SAASA,CAACA;QAC3BA,IAAIA,CAACA,eAAeA,GAAGA,eAAeA,CAACA;QACvCA,IAAIA,CAACA,OAAOA,GAAGA,OAAOA,CAACA;QACvBA,IAAIA,CAACA,MAAMA,GAAGA,MAAMA,CAACA;QACrBA,IAAIA,CAACA,eAAeA,GAAGA,eAAeA,CAACA;QACvCA,IAAIA,CAACA,WAAWA,GAAGA,WAAWA,CAACA;QAC/BA,MAAMA,CAACA,IAAIA,CAACA;IAChBA,CAACA;IAn6Fe9K,mBAAgBA,GAAhBA,gBAm6FfA,CAAAA;IAEDA,SAASA,wBAAwBA,CAACA,IAAgBA;QAC9CwW,EAAEA,CAACA,CAACA,IAAIA,CAACA,CAACA,CAACA;YACPA,MAAMA,CAACA,CAACA,IAAIA,CAACA,IAAIA,CAACA,CAACA,CAACA;gBAChBA,KAAKA,wBAAyBA,CAACA;gBAC/BA,KAAKA,uBAAwBA,CAACA;gBAC9BA,KAAKA,uBAAwBA,CAACA;gBAC9BA,KAAKA,wBAAyBA,CAACA;gBAC/BA,KAAKA,kCAAmCA,CAACA;gBACzCA,KAAKA,sBAAuBA,CAACA;gBAC7BA,KAAKA,yBAA0BA,CAACA;gBAChCA,KAAKA,uBAAwBA,CAACA;gBAC9BA,KAAKA,4BAA6BA,CAACA;gBACnCA,KAAKA,mBAAqBA,CAACA;gBAC3BA,KAAKA,iBAAkBA,CAACA;gBACxBA,KAAKA,gCAAmCA,CAACA;gBACzCA,KAAKA,sBAAyBA,CAACA;gBAC/BA,KAAKA,qBAAwBA,CAACA;gBAC9BA,KAAKA,qCAAwCA,CAACA;gBAC9CA,KAAKA,4BAA6BA,CAACA;gBACnCA,KAAKA,qBAAuBA,CAACA;gBAC7BA,KAAKA,oBAAsBA,CAACA;gBAC5BA,KAAKA,oBAAsBA,CAACA;gBAC5BA,KAAKA,oBAAsBA,CAACA;gBAC5BA,KAAKA,qBAAuBA;oBACxBA,MAAMA,CAACA,IAAIA,CAACA;YACpBA,CAACA;QACLA,CAACA;QAEDA,MAAMA,CAACA,KAAKA,CAACA;IACjBA,CAACA;IAEDxW,SAASA,oBAAoBA,CAACA,KAAiBA;QAC3CyW,MAAMA,CAACA,KAAKA,IAAIA,wBAA0BA,IAAIA,KAAKA,IAAIA,uBAAyBA,CAACA;IACrFA,CAACA;IAEDzW,SAASA,YAAYA,CAACA,UAAkBA,EAAEA,eAA6BA,EAAEA,IAAgBA;QACrF0W,IAAIA,kBAAkBA,GAAGA,IAAIA,CAACA,kBAAkBA,CAACA;QAGjDA,IAAIA,OAAOA,GAAGA,gBAAaA,CAACA,eAAeA,EAAiBA,IAAIA,EAAEA,UAAUA,CAACA,CAACA;QAG9EA,IAAIA,gBAAgBA,GAAGA,kBAAeA,CAACA,IAAIA,CAACA,QAAQA,EAAEA,OAAOA,CAACA,CAACA;QAC/DA,IAAIA,eAAeA,GAAGA,KAAKA,CAACA;QAC5BA,IAAIA,MAAYA,CAACA;QACjBA,SAASA,CAACA,IAAIA,CAACA,CAACA;QAEhBA,SAASA,SAASA,CAACA,IAAUA;YAEzBC,IAAIA,WAAWA,GAAGA,MAAMA,CAACA;YACzBA,IAAIA,CAACA,MAAMA,GAAGA,MAAMA,CAACA;YACrBA,MAAMA,GAAGA,IAAIA,CAACA;YAEdA,EAAEA,CAACA,CAACA,CAACA,cAAcA,CAACA,IAAIA,CAACA,CAACA,CAACA,CAACA;gBACxBA,IAAIA,oBAAoBA,GAAGA,eAAeA,CAACA;gBAC3CA,EAAEA,CAACA,CAACA,IAAIA,CAACA,IAAIA,KAAKA,uBAAwBA,CAACA,CAACA,CAACA;oBACzCA,eAAeA,GAAGA,IAAIA,CAACA;gBAC3BA,CAACA;gBAEDA,IAAIA,qBAAqBA,GAAGA,gBAAgBA,CAAAA;gBAC5CA,EAAEA,CAACA,CAACA,IAAIA,CAACA,KAAKA,GAAGA,eAAiBA,CAACA,CAACA,CAACA;oBACjCA,gBAAgBA,GAAGA,IAAIA,CAACA;gBAC5BA,CAACA;gBAEDA,oBAAoBA,CAACA,IAAIA,CAACA,CAACA;gBAE3BA,gBAAgBA,GAAGA,qBAAqBA,CAACA;gBACzCA,eAAeA,GAAGA,oBAAoBA,CAACA;YAC3CA,CAACA;YAEDA,MAAMA,GAAGA,WAAWA,CAACA;QACzBA,CAACA;QAEDD,SAASA,oBAAoBA,CAACA,IAAUA;YACpCE,IAAIA,QAAQA,GAAGA,IAAIA,CAACA,IAAIA,CAACA;YAIzBA,EAAEA,CAACA,CAACA,gBAAgBA,IAAIA,iCAAiCA,CAACA,IAAIA,EAAEA,QAAQA,CAACA,CAACA,CAACA,CAACA;gBACxEA,MAAMA,CAACA;YACXA,CAACA;YAGDA,EAAEA,CAACA,CAACA,SAASA,CAACA,IAAIA,EAAEA,QAAQA,CAACA,CAACA,CAACA,CAACA;gBAC5BA,MAAMA,CAACA;YACXA,CAACA;YAGDA,YAAYA,CAACA,IAAIA,EAAEA,SAASA,CAACA,CAACA;QAClCA,CAACA;QAEDF,SAASA,SAASA,CAACA,IAAUA,EAAEA,QAAoBA;YAE/CG,MAAMA,CAACA,CAACA,QAAQA,CAACA,CAACA,CAACA;gBACfA,KAAKA,uBAAwBA,CAACA;gBAC9BA,KAAKA,uBAAwBA,CAACA;gBAC9BA,KAAKA,yBAA0BA,CAACA;gBAChCA,KAAKA,4BAA6BA,CAACA;gBACnCA,KAAKA,sBAAuBA;oBACxBA,MAAMA,CAACA,uBAAuBA,CAA0BA,IAAIA,CAACA,CAACA;gBAClEA,KAAKA,wBAAyBA,CAACA;gBAC/BA,KAAKA,2BAA4BA;oBAC7BA,MAAMA,CAACA,6BAA6BA,CAA2BA,IAAIA,CAACA,CAACA;gBACzEA,KAAKA,wBAAyBA,CAACA;gBAC/BA,KAAKA,uBAAwBA;oBACzBA,MAAMA,CAACA,wBAAwBA,CAAgBA,IAAIA,CAACA,CAACA;gBAEzDA,KAAKA,yBAA0BA,EAAiBA,MAAMA,CAACA,oBAAoBA,CAAkBA,IAAIA,CAACA,CAACA;gBACnGA,KAAKA,0BAA2BA,EAAgBA,MAAMA,CAACA,qBAAqBA,CAAmBA,IAAIA,CAACA,CAACA;gBACrGA,KAAKA,oBAAqBA,EAAsBA,MAAMA,CAACA,eAAeA,CAAaA,IAAIA,CAACA,CAACA;gBACzFA,KAAKA,0BAA2BA,EAAgBA,MAAMA,CAACA,qBAAqBA,CAAmBA,IAAIA,CAACA,CAACA;gBACrGA,KAAKA,qBAAsBA,EAAqBA,MAAMA,CAACA,gBAAgBA,CAAyBA,IAAIA,CAACA,CAACA;gBACtGA,KAAKA,0BAA2BA,EAAgBA,MAAMA,CAACA,qBAAqBA,CAAmBA,IAAIA,CAACA,CAACA;gBACrGA,KAAKA,wBAAyBA,EAAkBA,MAAMA,CAACA,mBAAmBA,CAAiBA,IAAIA,CAACA,CAACA;gBACjGA,KAAKA,sBAAuBA,EAAoBA,MAAMA,CAACA,iBAAiBA,CAAeA,IAAIA,CAACA,CAACA;gBAC7FA,KAAKA,6BAA8BA,EAAaA,MAAMA,CAACA,wBAAwBA,CAA0BA,IAAIA,CAACA,CAACA;gBAC/GA,KAAKA,4BAA6BA,EAAcA,MAAMA,CAACA,uBAAuBA,CAAqBA,IAAIA,CAACA,CAACA;gBACzGA,KAAKA,qBAAsBA,EAAqBA,MAAMA,CAACA,gBAAgBA,CAAoBA,IAAIA,CAACA,CAACA;gBACjGA,KAAKA,uBAAwBA,EAAmBA,MAAMA,CAACA,kBAAkBA,CAAgBA,IAAIA,CAACA,CAACA;gBAC/FA,KAAKA,wBAAyBA,EAAkBA,MAAMA,CAACA,mBAAmBA,CAAuBA,IAAIA,CAACA,CAACA;gBACvGA,KAAKA,8BAA+BA,EAAYA,MAAMA,CAACA,yBAAyBA,CAAuBA,IAAIA,CAACA,CAACA;gBAC7GA,KAAKA,0BAA2BA,EAAgBA,MAAMA,CAACA,qBAAqBA,CAAmBA,IAAIA,CAACA,CAACA;gBACrGA,KAAKA,gBAAiBA,EAA0BA,MAAMA,CAACA,WAAWA,CAAoBA,IAAIA,CAACA,CAACA;gBAC5FA,KAAKA,2BAA4BA,EAAeA,MAAMA,CAACA,sBAAsBA,CAAoBA,IAAIA,CAACA,CAACA;gBACvGA,KAAKA,uBAAwBA,EAAmBA,MAAMA,CAACA,kBAAkBA,CAAgBA,IAAIA,CAACA,CAACA;gBAC/FA,KAAKA,sBAAyBA,EAAkBA,MAAMA,CAACA,mBAAmBA,CAAoBA,IAAIA,CAACA,CAACA;gBACpGA,KAAKA,mBAAoBA,EAAuBA,MAAMA,CAACA,cAAcA,CAAuBA,IAAIA,CAACA,CAACA;gBAClGA,KAAKA,yBAA0BA,EAAiBA,MAAMA,CAACA,oBAAoBA,CAAkBA,IAAIA,CAACA,CAACA;gBACnGA,KAAKA,wBAAyBA,EAAkBA,MAAMA,CAACA,mBAAmBA,CAAkBA,IAAIA,CAACA,CAACA;gBAClGA,KAAKA,kBAAmBA,EAAwBA,MAAMA,CAACA,aAAaA,CAAsBA,IAAIA,CAACA,CAACA;gBAChGA,KAAKA,4BAA6BA,EAAcA,MAAMA,CAACA,uBAAuBA,CAAsBA,IAAIA,CAACA,CAACA;gBAC1GA,KAAKA,yBAA0BA,EAAiBA,MAAMA,CAACA,oBAAoBA,CAAkBA,IAAIA,CAACA,CAACA;gBACnGA,KAAKA,qBAAsBA,EAAqBA,MAAMA,CAACA,gBAAgBA,CAAoBA,IAAIA,CAACA,CAACA;gBACjGA,KAAKA,oBAAqBA,EAAsBA,MAAMA,CAACA,eAAeA,CAAaA,IAAIA,CAACA,CAACA;gBACzFA,KAAKA,qCAAsCA,EAAKA,MAAMA,CAACA,gCAAgCA,CAA+BA,IAAIA,CAACA,CAACA;gBAC5HA,KAAKA,yBAA0BA,EAAiBA,MAAMA,CAACA,oBAAoBA,CAAkBA,IAAIA,CAACA,CAACA;gBACnGA,KAAKA,kCAAmCA,EAAQA,MAAMA,CAACA,6BAA6BA,CAA2BA,IAAIA,CAACA,CAACA;gBACrHA,KAAKA,mBAAoBA,EAAuBA,MAAMA,CAACA,cAAcA,CAAgBA,IAAIA,CAACA,CAACA;gBAC3FA,KAAKA,uBAAwBA,EAAmBA,MAAMA,CAACA,kBAAkBA,CAA2BA,IAAIA,CAACA,CAACA;gBAC1GA,KAAKA,uBAAwBA,EAAmBA,MAAMA,CAACA,kBAAkBA,CAAoBA,IAAIA,CAACA,CAACA;gBACnGA,KAAKA,6BAA8BA,EAAaA,MAAMA,CAACA,wBAAwBA,CAAsBA,IAAIA,CAACA,CAACA;gBAC3GA,KAAKA,2BAA4BA,EAAeA,MAAMA,CAACA,sBAAsBA,CAAoBA,IAAIA,CAACA,CAACA;gBACvGA,KAAKA,uBAAwBA,EAAmBA,MAAMA,CAACA,kBAAkBA,CAAgBA,IAAIA,CAACA,CAACA;gBAC/FA,KAAKA,yBAA0BA,EAAiBA,MAAMA,CAACA,oBAAoBA,CAAkBA,IAAIA,CAACA,CAACA;YACvGA,CAACA;QACLA,CAACA;QAEDH,SAASA,wBAAwBA,CAACA,IAAUA,EAAEA,OAA0BA,EAAEA,IAAUA,EAAEA,IAAUA,EAAEA,IAAUA;YACxGI,IAAIA,KAAKA,GAAGA,aAAUA,CAACA,UAAUA,EAAEA,IAAIA,CAACA,GAAGA,CAACA,CAACA;YAC7CA,OAAOA,CAACA,UAAUA,CAACA,KAAKA,CAACA,CAACA;YAC1BA,OAAOA,CAACA,IAAIA,EAAEA,CAACA;YACfA,IAAIA,GAAGA,GAAGA,OAAOA,CAACA,UAAUA,EAAEA,CAACA;YAC/BA,kBAAkBA,CAACA,IAAIA,CAACA,uBAAoBA,CAACA,IAAIA,EAAEA,KAAKA,EAAEA,GAAGA,GAAGA,KAAKA,EAAEA,OAAOA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,CAACA,CAACA,CAACA;YACnGA,MAAMA,CAACA,IAAIA,CAACA;QAChBA,CAACA;QAEDJ,SAASA,kBAAkBA,CAACA,IAAUA,EAAEA,OAA0BA,EAAEA,IAAUA,EAAEA,IAAUA,EAAEA,IAAUA;YAClGK,IAAIA,IAAIA,GAAGA,mBAAmBA,CAACA,IAAIA,CAACA,CAACA;YACrCA,IAAIA,KAAKA,GAAGA,IAAIA,CAACA,GAAGA,GAAGA,IAAIA,CAACA,GAAGA,GAAGA,aAAUA,CAACA,IAAIA,CAACA,IAAIA,EAAEA,IAAIA,CAACA,GAAGA,CAACA,GAAGA,IAAIA,CAACA,GAAGA,CAACA;YAC7EA,IAAIA,MAAMA,GAAGA,IAAIA,CAACA,GAAGA,GAAGA,KAAKA,CAACA;YAE9BA,kBAAkBA,CAACA,IAAIA,CAACA,uBAAoBA,CAACA,IAAIA,EAAEA,KAAKA,EAAEA,MAAMA,EAAEA,OAAOA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,CAACA,CAACA,CAACA;YAC9FA,MAAMA,CAACA,IAAIA,CAACA;QAChBA,CAACA;QAEDL,SAASA,iBAAiBA,CAACA,KAAaA,EAAEA,MAAcA,EAAEA,OAA0BA,EAAEA,IAAUA,EAAEA,IAAUA,EAAEA,IAAUA;YACpHM,kBAAkBA,CAACA,IAAIA,CAACA,uBAAoBA,CAACA,IAAIA,EAAEA,KAAKA,EAAEA,MAAMA,EAAEA,OAAOA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,CAACA,CAACA,CAACA;YAC9FA,MAAMA,CAACA,IAAIA,CAACA;QAChBA,CAACA;QAEDN,SAASA,4BAA4BA,CAACA,IAAgBA;YAElDO,IAAIA,IAAIA,GAAGA,UAAUA,CAACA,SAASA,CAACA,aAAUA,CAACA,UAAUA,EAAEA,IAAIA,CAACA,GAAGA,CAACA,EAAEA,IAAIA,CAACA,GAAGA,CAACA,CAACA;YAC5EA,MAAMA,CAACA,kBAAkBA,CAACA,IAAIA,EAAEA,cAAWA,CAACA,+BAA+BA,EAAEA,IAAIA,CAACA,CAACA;QACvFA,CAACA;QAEDP,SAASA,iCAAiCA,CAACA,IAAUA,EAAEA,IAAgBA;YACnEQ,MAAMA,CAACA,CAACA,IAAIA,CAACA,CAACA,CAACA;gBACXA,KAAKA,eAAgBA,CAACA;gBACtBA,KAAKA,wBAAyBA,CAACA;gBAC/BA,KAAKA,qBAAsBA,CAACA;gBAC5BA,KAAKA,qBAAsBA,CAACA;gBAC5BA,KAAKA,wBAAyBA,CAACA;gBAC/BA,KAAKA,sBAAuBA,CAACA;gBAC7BA,KAAKA,wBAAyBA,CAACA;gBAC/BA,KAAKA,2BAA4BA,CAACA;gBAClCA,KAAKA,wBAAyBA,CAACA;gBAC/BA,KAAKA,yBAA0BA,CAACA;gBAChCA,KAAKA,uBAAwBA,CAACA;gBAC9BA,KAAKA,yBAA0BA,CAACA;gBAChCA,KAAKA,wBAAyBA,CAACA;gBAC/BA,KAAKA,sBAAuBA,CAACA;gBAC7BA,KAAKA,2BAA4BA,CAACA;gBAClCA,KAAKA,0BAA2BA,CAACA;gBACjCA,KAAKA,6BAA8BA;oBAC/BA,MAAMA,CAACA,wBAAwBA,CAACA,IAAIA,EAAEA,cAAWA,CAACA,8CAA8CA,CAACA,CAACA;YAC1GA,CAACA;QACLA,CAACA;QAEDR,SAASA,uBAAuBA,CAACA,IAAqBA;YAClDS,MAAMA,CAACA,sBAAsBA,CAACA,IAAIA,CAACA,cAAcA,CAACA,IAC9CA,kBAAkBA,CAACA,IAAIA,CAACA,UAAUA,CAACA,CAACA;QAC5CA,CAACA;QAEDT,SAASA,qBAAqBA,CAACA,IAAsBA;YACjDU,EAAEA,CAACA,CAACA,IAAIA,CAACA,kBAAkBA,GAAGA,kBAA6BA,CAACA,CAACA,CAACA;gBAC1DA,EAAEA,CAACA,CAACA,wBAAwBA,CAACA,IAAIA,CAACA,IAAIA,CAACA,IAAIA,oBAAoBA,CAACA,IAAIA,CAACA,QAAQA,CAACA,CAACA,CAACA,CAACA;oBAC7EA,EAAEA,CAACA,CAACA,2BAA2BA,CAACA,IAAIA,CAACA,IAAIA,CAACA,CAACA,CAACA,CAACA;wBAGzCA,MAAMA,CAACA,4BAA4BA,CAAaA,IAAIA,CAACA,IAAIA,CAACA,CAACA;oBAC/DA,CAACA;gBACLA,CAACA;YACLA,CAACA;QACLA,CAACA;QAEDV,SAASA,oBAAoBA,CAACA,IAAUA,EAAEA,uBAAgCA;YACtEW,MAAMA,CAACA,CAACA,IAAIA,CAACA,IAAIA,CAACA,CAACA,CAACA;gBAChBA,KAAKA,sBAAuBA,CAACA;gBAC7BA,KAAKA,wBAAyBA,CAACA;gBAC/BA,KAAKA,qBAAsBA,CAACA;gBAC5BA,KAAKA,wBAAyBA;oBAC1BA,MAAMA,CAACA,IAAIA,CAACA;gBAChBA,KAAKA,0BAA2BA;oBAC5BA,MAAMA,CAACA,uBAAuBA,IAAIA,oBAAoBA,CAAoBA,IAAKA,CAACA,SAASA,EAAEA,uBAAuBA,CAACA,CAACA;YAC5HA,CAACA;YAEDA,MAAMA,CAACA,KAAKA,CAACA;QACjBA,CAACA;QAEDX,SAASA,qBAAqBA,CAACA,IAAsBA;YAEjDY,IAAIA,OAAOA,GAAGA,IAAIA,CAACA,MAAMA,CAACA;YAC1BA,OAAOA,OAAOA,EAAEA,CAACA;gBACbA,EAAEA,CAACA,CAACA,aAAaA,CAACA,OAAOA,CAACA,CAACA,CAACA,CAACA;oBACzBA,KAAKA,CAACA;gBACVA,CAACA;gBACDA,EAAEA,CAACA,CAACA,OAAOA,CAACA,IAAIA,KAAKA,0BAA2BA,IAAuBA,OAAQA,CAACA,KAAKA,CAACA,IAAIA,KAAKA,IAAIA,CAACA,KAAKA,CAACA,IAAIA,CAACA,CAACA,CAACA;oBAC7GA,MAAMA,CAACA,kBAAkBA,CAACA,IAAIA,CAACA,KAAKA,EAAEA,cAAWA,CAACA,iBAAiBA,EAAEA,2BAA2BA,CAACA,UAAUA,EAAEA,IAAIA,CAACA,KAAKA,CAACA,CAACA,CAACA;gBAC9HA,CAACA;gBACDA,OAAOA,GAAGA,OAAOA,CAACA,MAAMA,CAACA;YAC7BA,CAACA;QACLA,CAACA;QAEDZ,SAASA,6BAA6BA,CAACA,IAA8BA;YACjEa,IAAIA,OAAOA,GAAGA,IAAIA,CAACA;YACnBA,OAAOA,OAAOA,EAAEA,CAACA;gBACbA,EAAEA,CAACA,CAACA,aAAaA,CAACA,OAAOA,CAACA,CAACA,CAACA,CAACA;oBACzBA,MAAMA,CAACA,kBAAkBA,CAACA,IAAIA,EAAEA,cAAWA,CAACA,0CAA0CA,CAACA,CAACA;gBAC5FA,CAACA;gBAEDA,MAAMA,CAACA,CAACA,OAAOA,CAACA,IAAIA,CAACA,CAACA,CAACA;oBACnBA,KAAKA,0BAA2BA;wBAC5BA,EAAEA,CAACA,CAACA,IAAIA,CAACA,KAAKA,IAAuBA,OAAQA,CAACA,KAAKA,CAACA,IAAIA,KAAKA,IAAIA,CAACA,KAAKA,CAACA,IAAIA,CAACA,CAACA,CAACA;4BAG3EA,IAAIA,wBAAwBA,GAAGA,IAAIA,CAACA,IAAIA,KAAKA,2BAA4BA,IAClEA,CAACA,oBAAoBA,CAAoBA,OAAQA,CAACA,SAASA,EAA6BA,IAAIA,CAACA,CAACA;4BAErGA,EAAEA,CAACA,CAACA,wBAAwBA,CAACA,CAACA,CAACA;gCAC3BA,MAAMA,CAACA,kBAAkBA,CAACA,IAAIA,EAAEA,cAAWA,CAACA,iFAAiFA,CAACA,CAACA;4BACnIA,CAACA;4BAEDA,MAAMA,CAACA,KAAKA,CAACA;wBACjBA,CAACA;wBACDA,KAAKA,CAACA;oBACVA,KAAKA,yBAA0BA;wBAC3BA,EAAEA,CAACA,CAACA,IAAIA,CAACA,IAAIA,KAAKA,wBAAyBA,IAAIA,CAACA,IAAIA,CAACA,KAAKA,CAACA,CAACA,CAACA;4BAEzDA,MAAMA,CAACA,KAAKA,CAACA;wBACjBA,CAACA;wBACDA,KAAKA,CAACA;oBACVA;wBACIA,EAAEA,CAACA,CAACA,oBAAoBA,CAACA,OAAOA,EAA6BA,KAAKA,CAACA,IAAIA,CAACA,IAAIA,CAACA,KAAKA,CAACA,CAACA,CAACA;4BAEjFA,MAAMA,CAACA,KAAKA,CAACA;wBACjBA,CAACA;wBACDA,KAAKA,CAACA;gBACdA,CAACA;gBAEDA,OAAOA,GAAGA,OAAOA,CAACA,MAAMA,CAACA;YAC7BA,CAACA;YAEDA,EAAEA,CAACA,CAACA,IAAIA,CAACA,KAAKA,CAACA,CAACA,CAACA;gBACbA,IAAIA,OAAOA,GAAGA,IAAIA,CAACA,IAAIA,KAAKA,wBAAyBA,GAC/CA,cAAWA,CAACA,oEAAoEA,GAChFA,cAAWA,CAACA,iFAAiFA,CAACA;gBAEpGA,MAAMA,CAACA,kBAAkBA,CAACA,IAAIA,EAAEA,OAAOA,CAACA,CAAAA;YAC5CA,CAACA;YACDA,IAAIA,CAACA,CAACA;gBACFA,IAAIA,OAAOA,GAAGA,IAAIA,CAACA,IAAIA,KAAKA,wBAAyBA,GAC/CA,cAAWA,CAACA,oFAAoFA,GAChGA,cAAWA,CAACA,6EAA6EA,CAACA;gBAChGA,MAAMA,CAACA,kBAAkBA,CAACA,IAAIA,EAAEA,OAAOA,CAACA,CAAAA;YAC5CA,CAACA;QACLA,CAACA;QAEDb,SAASA,wBAAwBA,CAACA,IAAoBA;YAClDc,MAAMA,CAACA,kBAAkBA,CAACA,IAAIA,CAACA,aAAaA,CAACA,IACzCA,cAAcA,CAACA,IAAIA,CAACA,SAASA,CAACA,CAACA;QACvCA,CAACA;QAEDd,SAASA,cAAcA,CAACA,SAAgCA;YACpDe,MAAMA,CAACA,+BAA+BA,CAACA,SAASA,CAACA,IAC7CA,uBAAuBA,CAACA,SAASA,CAACA,CAACA;QAC3CA,CAACA;QAEDf,SAASA,kBAAkBA,CAACA,aAAkCA;YAC1DgB,MAAMA,CAACA,+BAA+BA,CAACA,aAAaA,CAACA,IACjDA,8BAA8BA,CAACA,aAAaA,CAACA,IAC7CA,2BAA2BA,CAACA,aAAaA,CAACA,CAACA;QACnDA,CAACA;QAEDhB,SAASA,uBAAuBA,CAACA,SAAgCA;YAC7DiB,EAAEA,CAACA,CAACA,SAASA,CAACA,CAACA,CAACA;gBACZA,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,SAASA,CAACA,MAAMA,EAAEA,CAACA,GAAGA,CAACA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;oBAC/CA,IAAIA,GAAGA,GAAGA,SAASA,CAACA,CAACA,CAACA,CAACA;oBACvBA,EAAEA,CAACA,CAACA,GAAGA,CAACA,IAAIA,KAAKA,2BAA4BA,CAACA,CAACA,CAACA;wBAC5CA,MAAMA,CAACA,iBAAiBA,CAACA,GAAGA,CAACA,GAAGA,EAAEA,CAACA,EAAEA,cAAWA,CAACA,4BAA4BA,CAACA,CAACA;oBACnFA,CAACA;gBACLA,CAACA;YACLA,CAACA;QACLA,CAACA;QAEDjB,SAASA,2BAA2BA,CAACA,aAAkCA;YACnEkB,EAAEA,CAACA,CAACA,aAAaA,CAACA,CAACA,CAACA;gBAChBA,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,aAAaA,CAACA,MAAMA,EAAEA,CAACA,GAAGA,CAACA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;oBACnDA,IAAIA,GAAGA,GAAGA,aAAaA,CAACA,CAACA,CAACA,CAACA;oBAC3BA,EAAEA,CAACA,CAACA,GAAGA,CAACA,IAAIA,KAAKA,iBAAkBA,CAACA,CAACA,CAACA;wBAClCA,MAAMA,CAACA,iBAAiBA,CAACA,GAAGA,CAACA,GAAGA,EAAEA,CAACA,EAAEA,cAAWA,CAACA,aAAaA,CAACA,CAACA;oBACpEA,CAACA;gBACLA,CAACA;YACLA,CAACA;QACLA,CAACA;QAEDlB,SAASA,8BAA8BA,CAACA,aAAkCA;YACtEmB,EAAEA,CAACA,CAACA,aAAaA,IAAIA,aAAaA,CAACA,MAAMA,KAAKA,CAACA,CAACA,CAACA,CAACA;gBAC9CA,IAAIA,KAAKA,GAAGA,aAAaA,CAACA,GAAGA,GAAGA,GAAGA,CAACA,MAAMA,CAACA;gBAC3CA,IAAIA,GAAGA,GAAGA,aAAUA,CAACA,UAAUA,EAAEA,aAAaA,CAACA,GAAGA,CAACA,GAAGA,GAAGA,CAACA,MAAMA,CAACA;gBACjEA,MAAMA,CAACA,iBAAiBA,CAACA,KAAKA,EAAEA,GAAGA,GAAGA,KAAKA,EAAEA,cAAWA,CAACA,kCAAkCA,CAACA,CAACA;YACjGA,CAACA;QACLA,CAACA;QAEDnB,SAASA,+BAA+BA,CAACA,IAAqBA;YAC1DoB,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,MAAMA,CAACA,iBAAiBA,CAACA,KAAKA,EAAEA,GAAGA,GAAGA,KAAKA,EAAEA,cAAWA,CAACA,0BAA0BA,CAACA,CAACA;YACzFA,CAACA;QACLA,CAACA;QAEDpB,SAASA,eAAeA,CAACA,IAAgBA;YACrCqB,EAAEA,CAACA,CAACA,IAAIA,CAACA,IAAIA,CAACA,CAACA,CAACA;gBACZA,IAAIA,UAAUA,GAAGA,aAAUA,CAACA,UAAUA,EAAEA,IAAIA,CAACA,QAAQA,CAACA,GAAGA,CAACA,CAACA;gBAC3DA,MAAMA,CAACA,iBAAiBA,CAACA,UAAUA,EAAEA,GAAGA,CAACA,MAAMA,EAAEA,cAAWA,CAACA,oDAAoDA,CAACA,CAACA;YACvHA,CAACA;YACDA,EAAEA,CAACA,CAACA,IAAIA,CAACA,kBAAkBA,GAAGA,kBAA6BA,IAAIA,2BAA2BA,CAACA,IAAIA,CAACA,QAAQA,CAACA,CAACA,CAACA,CAACA;gBAGxGA,MAAMA,CAACA,4BAA4BA,CAACA,IAAIA,CAACA,QAAQA,CAACA,CAACA;YACvDA,CAACA;QACLA,CAACA;QAEDrB,SAASA,qBAAqBA,CAACA,IAAsBA;YACjDsB,MAAMA,CAACA,+BAA+BA,CAACA,IAAIA,CAACA,gBAAgBA,CAACA,IACzDA,gCAAgCA,CAACA,IAAIA,CAACA,gBAAgBA,EAAEA,YAAYA,CAACA,CAACA;QAC9EA,CAACA;QAEDtB,SAASA,gCAAgCA,CAACA,KAA0BA,EAAEA,QAAgBA;YAClFuB,EAAEA,CAACA,CAACA,KAAKA,IAAIA,KAAKA,CAACA,MAAMA,KAAKA,CAACA,CAACA,CAACA,CAACA;gBAC9BA,MAAMA,CAACA,iBAAiBA,CAACA,KAAKA,CAACA,GAAGA,EAAEA,CAACA,EAAEA,cAAWA,CAACA,uBAAuBA,EAAEA,QAAQA,CAACA,CAAAA;YACzFA,CAACA;QACLA,CAACA;QAEDvB,SAASA,gBAAgBA,CAACA,IAA4BA;YAClDwB,MAAMA,CAACA,uBAAuBA,CAACA,IAAIA,CAACA,IAChCA,8BAA8BA,CAACA,IAAIA,CAACA,IACpCA,8BAA8BA,CAACA,IAAIA,CAACA,IACpCA,4BAA4BA,CAACA,IAAIA,CAACA,IAAIA,EAAqBA,IAAIA,CAACA,CAACA;QACzEA,CAACA;QAEDxB,SAASA,8BAA8BA,CAACA,IAA4BA;YAChEyB,EAAEA,CAACA,CAACA,IAAIA,CAACA,cAAcA,CAACA,CAACA,CAACA;gBACtBA,MAAMA,CAACA,iBAAiBA,CAACA,IAAIA,CAACA,cAAcA,CAACA,GAAGA,EAAEA,IAAIA,CAACA,cAAcA,CAACA,GAAGA,GAAGA,IAAIA,CAACA,cAAcA,CAACA,GAAGA,EAAEA,cAAWA,CAACA,0DAA0DA,CAACA,CAACA;YACjLA,CAACA;QACLA,CAACA;QAEDzB,SAASA,8BAA8BA,CAACA,IAA4BA;YAChE0B,EAAEA,CAACA,CAACA,IAAIA,CAACA,IAAIA,CAACA,CAACA,CAACA;gBACZA,MAAMA,CAACA,kBAAkBA,CAACA,IAAIA,CAACA,IAAIA,EAAEA,cAAWA,CAACA,0DAA0DA,CAACA,CAACA;YACjHA,CAACA;QACLA,CAACA;QAED1B,SAASA,oBAAoBA,CAACA,QAAyBA;YACnD2B,IAAIA,WAAWA,GAAGA,CAACA,QAAQA,CAACA,KAAKA,GAAGA,gBAAeA,CAACA,KAAKA,CAACA,CAACA;YAE3DA,IAAIA,QAAQA,GAAGA,KAAKA,CAACA;YAGrBA,EAAEA,CAACA,CAACA,CAACA,WAAWA,CAACA,CAACA,CAACA;gBACfA,IAAIA,2BAA2BA,GAAGA,IAAIA,CAACA;gBACvCA,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,QAAQA,CAACA,OAAOA,CAACA,MAAMA,EAAEA,CAACA,GAAGA,CAACA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;oBACtDA,IAAIA,IAAIA,GAAGA,QAAQA,CAACA,OAAOA,CAACA,CAACA,CAACA,CAACA;oBAC/BA,EAAEA,CAACA,CAACA,gBAAgBA,CAACA,CAACA,CAACA;wBACnBA,EAAEA,CAACA,CAACA,IAAIA,CAACA,WAAWA,IAAIA,CAACA,gBAAgBA,CAACA,IAAIA,CAACA,WAAWA,CAACA,CAACA,CAACA,CAACA;4BAC1DA,QAAQA,GAAGA,kBAAkBA,CAACA,IAAIA,CAACA,IAAIA,EAAEA,cAAWA,CAACA,gEAAgEA,CAACA,IAAIA,QAAQA,CAACA;wBACvIA,CAACA;oBACLA,CAACA;oBACDA,IAAIA,CAACA,EAAEA,CAACA,CAACA,IAAIA,CAACA,WAAWA,CAACA,CAACA,CAACA;wBACxBA,2BAA2BA,GAAGA,gBAAgBA,CAACA,IAAIA,CAACA,WAAWA,CAACA,CAACA;oBACrEA,CAACA;oBACDA,IAAIA,CAACA,EAAEA,CAACA,CAACA,CAACA,2BAA2BA,CAACA,CAACA,CAACA;wBACpCA,QAAQA,GAAGA,kBAAkBA,CAACA,IAAIA,CAACA,IAAIA,EAAEA,cAAWA,CAACA,iCAAiCA,CAACA,IAAIA,QAAQA,CAACA;oBACxGA,CAACA;gBACLA,CAACA;YACLA,CAACA;YAEDA,MAAMA,CAACA,QAAQA,CAACA;QACpBA,CAACA;QAED3B,SAASA,gBAAgBA,CAACA,UAAsBA;YAC5C4B,SAASA,SAASA,CAACA,iBAAoCA;gBAMnDC,MAAMA,CAACA,0BAA0BA,CAACA,IAAIA,CAACA,iBAAiBA,CAACA,IAAIA,CAACA,CAACA;YACnEA,CAACA;YAEDD,EAAEA,CAACA,CAACA,UAAUA,CAACA,IAAIA,KAAKA,wBAAyBA,CAACA,CAACA,CAACA;gBAChDA,IAAIA,eAAeA,GAAoBA,UAAUA,CAACA;gBAClDA,EAAEA,CAACA,CAACA,eAAeA,CAACA,QAAQA,KAAKA,kBAAoBA,IAAIA,eAAeA,CAACA,QAAQA,KAAKA,mBAAqBA,CAACA,CAACA,CAACA;oBAC1GA,UAAUA,GAAGA,eAAeA,CAACA,OAAOA,CAACA;gBACzCA,CAACA;YACLA,CAACA;YACDA,EAAEA,CAACA,CAACA,UAAUA,CAACA,IAAIA,KAAKA,sBAAyBA,CAACA,CAACA,CAACA;gBAChDA,MAAMA,CAACA,SAASA,CAAoBA,UAAUA,CAACA,CAACA;YACpDA,CAACA;YAEDA,MAAMA,CAACA,KAAKA,CAACA;QACjBA,CAACA;QAED5B,SAASA,qBAAqBA,CAACA,IAAsBA;YACjD8B,EAAEA,CAACA,CAACA,IAAIA,CAACA,KAAKA,GAAGA,kBAAkBA,CAACA,CAACA,CAACA;gBAClCA,MAAMA,CAACA,wBAAwBA,CAACA,IAAIA,EAAEA,cAAWA,CAACA,0CAA0CA,CAACA,CAACA;YAClGA,CAACA;QACLA,CAACA;QAED9B,SAASA,mBAAmBA,CAACA,IAAoBA;YAC7C+B,MAAMA,CAACA,yBAAyBA,CAACA,IAAIA,CAACA,YAAYA,CAACA,IAC/CA,8BAA8BA,CAACA,IAAIA,CAACA,YAAYA,CAACA,CAACA;QAC1DA,CAACA;QAED/B,SAASA,iBAAiBA,CAACA,IAAkBA;YACzCgC,MAAMA,CAACA,yBAAyBA,CAACA,IAAIA,CAACA,YAAYA,CAACA,CAACA;QACxDA,CAACA;QAEDhC,SAASA,8BAA8BA,CAACA,YAA4CA;YAChFiC,EAAEA,CAACA,CAACA,YAAYA,IAAIA,YAAYA,CAACA,MAAMA,GAAGA,CAACA,CAACA,CAACA,CAACA;gBAC1CA,MAAMA,CAACA,wBAAwBA,CAACA,YAAYA,CAACA,CAACA,CAACA,EAAEA,cAAWA,CAACA,mEAAmEA,CAACA,CAACA;YACtIA,CAACA;QACLA,CAACA;QAEDjC,SAASA,wBAAwBA,CAACA,IAA6BA;YAC3DkC,MAAMA,CAACA,uBAAuBA,CAACA,IAAIA,CAACA,IAChCA,iBAAiBA,CAACA,IAAIA,CAACA,IAAIA,CAACA,IAC5BA,4BAA4BA,CAACA,IAAIA,CAACA,IAAIA,EAAqBA,KAAKA,CAACA,CAACA;QAC1EA,CAACA;QAEDlC,SAASA,uBAAuBA,CAACA,IAAwBA;YACrDmC,MAAMA,CAACA,uBAAuBA,CAACA,IAAIA,CAACA,IAChCA,iBAAiBA,CAACA,IAAIA,CAACA,IAAIA,CAACA,CAACA;QACrCA,CAACA;QAEDnC,SAASA,iBAAiBA,CAACA,IAAUA;YACjCoC,EAAEA,CAACA,CAACA,IAAIA,IAAIA,IAAIA,CAACA,kBAAkBA,GAAGA,kBAA6BA,IAAIA,2BAA2BA,CAACA,IAAIA,CAACA,CAACA,CAACA,CAACA;gBAGvGA,MAAMA,CAACA,4BAA4BA,CAAaA,IAAIA,CAACA,CAACA;YAC1DA,CAACA;QACLA,CAACA;QAEDpC,SAASA,gBAAgBA,CAACA,IAAuBA;YAC7CqC,MAAMA,CAACA,uBAAuBA,CAACA,IAAIA,CAACA,IAChCA,aAAaA,CAACA,IAAIA,CAACA,CAACA;QAC5BA,CAACA;QAEDrC,SAASA,kBAAkBA,CAACA,IAAmBA;YAC3CsC,EAAEA,CAACA,CAACA,IAAIA,CAACA,KAAKA,CAACA,IAAIA,KAAKA,iBAAkBA,IACtCA,IAAIA,CAACA,MAAMA,CAACA,IAAIA,KAAKA,uBAAwBA,IAC7BA,IAAIA,CAACA,MAAOA,CAACA,IAAIA,KAAKA,IAAIA,CAACA,CAACA,CAACA;gBAE7CA,IAAIA,KAAKA,GAAGA,aAAUA,CAACA,UAAUA,EAAEA,IAAIA,CAACA,MAAMA,CAACA,GAAGA,CAACA,CAACA;gBACpDA,IAAIA,GAAGA,GAAGA,IAAIA,CAACA,GAAGA,CAACA;gBACnBA,MAAMA,CAACA,iBAAiBA,CAACA,KAAKA,EAAEA,GAAGA,GAAGA,KAAKA,EAAEA,cAAWA,CAACA,+DAA+DA,CAACA,CAACA;YAC9HA,CAACA;QACLA,CAACA;QAEDtC,SAASA,mBAAmBA,CAACA,IAA0BA;YACnDuC,MAAMA,CAACA,6BAA6BA,CAACA,IAAIA,CAACA,IACtCA,+BAA+BA,CAACA,IAAIA,CAACA,CAACA;QAC9CA,CAACA;QAEDvC,SAASA,+BAA+BA,CAACA,IAA0BA;YAC/DwC,EAAEA,CAACA,CAACA,IAAIA,CAACA,KAAKA,GAAGA,kBAAkBA,CAACA,CAACA,CAACA;gBAClCA,MAAMA,CAACA,wBAAwBA,CAACA,IAAIA,EAAEA,cAAWA,CAACA,kDAAkDA,CAACA,CAACA;YAC1GA,CAACA;QACLA,CAACA;QAEDxC,SAASA,6BAA6BA,CAACA,IAA0BA;YAC7DyC,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,IAAIA,CAACA,EAAEA,CAACA,CAACA,SAASA,CAACA,KAAKA,GAAGA,YAAcA,CAACA,CAACA,CAACA;gBACxCA,MAAMA,CAACA,kBAAkBA,CAACA,SAASA,CAACA,IAAIA,EAAEA,cAAWA,CAACA,+CAA+CA,CAACA,CAACA;YAC3GA,CAACA;YACDA,IAAIA,CAACA,EAAEA,CAACA,CAACA,SAASA,CAACA,KAAKA,GAAGA,kBAAkBA,CAACA,CAACA,CAACA;gBAC5CA,MAAMA,CAACA,kBAAkBA,CAACA,SAASA,CAACA,IAAIA,EAAEA,cAAWA,CAACA,kEAAkEA,CAACA,CAACA;YAC9HA,CAACA;YACDA,IAAIA,CAACA,EAAEA,CAACA,CAACA,SAASA,CAACA,KAAKA,GAAGA,oBAAsBA,CAACA,CAACA,CAACA;gBAChDA,MAAMA,CAACA,kBAAkBA,CAACA,SAASA,CAACA,IAAIA,EAAEA,cAAWA,CAACA,wDAAwDA,CAACA,CAACA;YACpHA,CAACA;YACDA,IAAIA,CAACA,EAAEA,CAACA,CAACA,SAASA,CAACA,WAAWA,CAACA,CAACA,CAACA;gBAC7BA,MAAMA,CAACA,kBAAkBA,CAACA,SAASA,CAACA,IAAIA,EAAEA,cAAWA,CAACA,uDAAuDA,CAACA,CAACA;YACnHA,CAACA;YACDA,IAAIA,CAACA,EAAEA,CAACA,CAACA,CAACA,SAASA,CAACA,IAAIA,CAACA,CAACA,CAACA;gBACvBA,MAAMA,CAACA,kBAAkBA,CAACA,SAASA,CAACA,IAAIA,EAAEA,cAAWA,CAACA,wDAAwDA,CAACA,CAACA;YACpHA,CAACA;YACDA,IAAIA,CAACA,EAAEA,CAACA,CAACA,SAASA,CAACA,IAAIA,CAACA,IAAIA,KAAKA,uBAAwBA,IAAIA,SAASA,CAACA,IAAIA,CAACA,IAAIA,KAAKA,uBAAwBA,CAACA,CAACA,CAACA;gBAC5GA,MAAMA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UA,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,KAAKA,GAAGA,YAAcA,CAACA,CAACA,CAACA;oBACnCA,EAAEA,CAACA,CAACA,CAACA,KAAKA,CAACA,cAAcA,GAAGA,CAACA,CAACA,CAACA,CAACA,CAACA;wBAC7BA,MAAMA,CAACA,kBAAkBA,CAACA,SAASA,CAACA,IAAIA,EAAEA,cAAWA,CAACA,iDAAiDA,CAACA,CAACA;oBAC7GA,CAACA;oBAEDA,EAAEA,CAACA,CAACA,SAASA,CAACA,KAAKA,GAAGA,oBAAsBA,CAACA,CAACA,CAACA;wBAC3CA,MAAMA,CAACA,kBAAkBA,CAACA,SAASA,CAACA,IAAIA,EAAEA,cAAWA,CAACA,mCAAmCA,CAACA,CAACA;oBAC/FA,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,KAAKA,GAAGA,oBAAsBA,IAAIA,SAASA,CAACA,WAAWA,CAACA,CAACA,CAACA;oBACzEA,qBAAqBA,GAAGA,IAAIA,CAACA;oBAE7BA,EAAEA,CAACA,CAACA,SAASA,CAACA,KAAKA,GAAGA,oBAAsBA,IAAIA,SAASA,CAACA,WAAWA,CAACA,CAACA,CAACA;wBACpEA,MAAMA,CAACA,kBAAkBA,CAACA,SAASA,CAACA,IAAIA,EAAEA,cAAWA,CAACA,mDAAmDA,CAACA,CAACA;oBAC/GA,CAACA;gBACLA,CAACA;gBACDA,IAAIA,CAACA,CAACA;oBACFA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UA,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,KAAKA,GAAGA,YAAcA,CAACA,CAACA,CAACA;wBACnCA,MAAMA,CAACA,kBAAkBA,CAACA,QAAQA,CAACA,IAAIA,EAAEA,cAAWA,CAACA,yCAAyCA,CAACA,CAACA;oBACpGA,CAACA;oBACDA,IAAIA,CAACA,EAAEA,CAACA,CAACA,SAASA,CAACA,KAAKA,GAAGA,kBAAkBA,CAACA,CAACA,CAACA;wBAC5CA,MAAMA,CAACA,kBAAkBA,CAACA,QAAQA,CAACA,IAAIA,EAAEA,cAAWA,CAACA,oEAAoEA,CAACA,CAACA;oBAC/HA,CAACA;oBACDA,IAAIA,CAACA,EAAEA,CAACA,CAACA,SAASA,CAACA,KAAKA,GAAGA,oBAAsBA,CAACA,CAACA,CAACA;wBAChDA,MAAMA,CAACA,kBAAkBA,CAACA,QAAQA,CAACA,IAAIA,EAAEA,cAAWA,CAACA,gDAAgDA,CAACA,CAACA;oBAC3GA,CAACA;oBACDA,IAAIA,CAACA,EAAEA,CAACA,CAACA,SAASA,CAACA,WAAWA,CAACA,CAACA,CAACA;wBAC7BA,MAAMA,CAACA,kBAAkBA,CAACA,QAAQA,CAACA,IAAIA,EAAEA,cAAWA,CAACA,mDAAmDA,CAACA,CAACA;oBAC9GA,CAACA;gBACLA,CAACA;YACLA,CAACA;QACLA,CAACA;QAED9D,SAASA,eAAeA,CAACA,IAAgBA;YACrC+D,MAAMA,CAACA,gBAAgBA,IAAIA,+CAA+CA,CAACA,IAAIA,CAACA,CAACA;QACrFA,CAACA;QAED/D,SAASA,+CAA+CA,CAACA,IAAgBA;YACrEgE,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,IAAIA,CAACA,UAAUA,CAACA,MAAMA,EAAEA,CAACA,GAAGA,CAACA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;gBACrDA,IAAIA,IAAIA,GAAGA,IAAIA,CAACA,UAAUA,CAACA,CAACA,CAACA,CAACA;gBAC9BA,EAAEA,CAACA,CAACA,aAAaA,CAACA,IAAIA,CAACA,IAAIA,IAAIA,CAACA,IAAIA,KAAKA,2BAA4BA,CAACA,CAACA,CAACA;oBACpEA,EAAEA,CAACA,CAACA,8CAA8CA,CAACA,IAAIA,CAACA,CAACA,CAACA,CAACA;wBACvDA,MAAMA,CAACA,IAAIA,CAACA;oBAChBA,CAACA;gBACLA,CAACA;YACLA,CAACA;QACLA,CAACA;QAEDhE,SAASA,8CAA8CA,CAACA,IAAUA;YAW9DiE,EAAEA,CAACA,CAACA,IAAIA,CAACA,IAAIA,KAAKA,8BAA+BA,IAC7CA,IAAIA,CAACA,IAAIA,KAAKA,2BAA4BA,IAC1CA,IAAIA,CAACA,IAAIA,KAAKA,0BAA2BA,IACzCA,CAACA,IAAIA,CAACA,KAAKA,GAAGA,eAAiBA,CAACA,CAACA,CAACA,CAACA;gBAEnCA,MAAMA,CAACA,KAAKA,CAACA;YACjBA,CAACA;YAEDA,MAAMA,CAACA,wBAAwBA,CAACA,IAAIA,EAAEA,cAAWA,CAACA,yEAAyEA,CAACA,CAACA;QACjIA,CAACA;QAEDjE,SAASA,gCAAgCA,CAACA,IAAkCA;YACxEkE,MAAMA,CAACA,2BAA2BA,CAACA,IAAIA,EAAEA,cAAWA,CAACA,4CAA4CA,CAACA,CAACA;QACvGA,CAACA;QAEDlE,SAASA,oBAAoBA,CAACA,IAAqBA;YAC/CmE,IAAIA,kBAAuCA,CAACA;YAG5CA,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,IAAIA,CAACA,OAAOA,CAACA,MAAMA,EAAEA,CAACA,GAAGA,CAACA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;gBAClDA,IAAIA,MAAMA,GAAGA,IAAIA,CAACA,OAAOA,CAACA,CAACA,CAACA,CAACA;gBAC7BA,EAAEA,CAACA,CAACA,MAAMA,CAACA,IAAIA,KAAKA,uBAAwBA,CAACA,CAACA,CAACA;oBAC3CA,EAAEA,CAACA,CAACA,kBAAkBA,KAAKA,SAASA,CAACA,CAACA,CAACA;wBACnCA,kBAAkBA,GAAGA,MAAMA,CAACA;oBAChCA,CAACA;oBACDA,IAAIA,CAACA,CAACA;wBACFA,IAAIA,KAAKA,GAAGA,aAAUA,CAACA,IAAIA,CAACA,IAAIA,EAAEA,MAAMA,CAACA,GAAGA,CAACA,CAACA;wBAC9CA,IAAIA,GAAGA,GAAGA,MAAMA,CAACA,UAAUA,CAACA,MAAMA,GAAGA,CAACA,GAAGA,MAAMA,CAACA,UAAUA,CAACA,CAACA,CAACA,CAACA,GAAGA,GAAGA,MAAMA,CAACA,GAAGA,CAACA;wBAC/EA,MAAMA,CAACA,iBAAiBA,CAACA,KAAKA,EAAEA,GAAGA,GAAGA,KAAKA,EAAEA,cAAWA,CAACA,mEAAmEA,CAACA,CAACA;oBAClIA,CAACA;gBACLA,CAACA;YACLA,CAACA;QACLA,CAACA;QAEDnE,SAASA,6BAA6BA,CAACA,IAA8BA;YACjEoE,EAAEA,CAACA,CAACA,eAAeA,GAAGA,WAAgBA,CAACA,CAACA,CAACA;gBACrCA,MAAMA,CAACA,wBAAwBA,CAACA,IAAIA,CAACA,QAAQA,EAAEA,cAAWA,CAACA,0EAA0EA,CAACA,CAACA;YAC3IA,CAACA;QACLA,CAACA;QAEDpE,SAASA,cAAcA,CAACA,IAAmBA;YACvCqE,MAAMA,CAACA,+BAA+BA,CAACA,IAAIA,CAACA,YAAYA,CAACA,IACrDA,sBAAsBA,CAACA,IAAIA,CAACA,CAACA;QACrCA,CAACA;QAEDrE,SAASA,sBAAsBA,CAACA,IAAmBA;YAC/CsE,EAAEA,CAACA,CAACA,IAAIA,CAACA,YAAYA,CAACA,MAAMA,KAAKA,CAACA,CAACA,CAACA,CAACA;gBACjCA,MAAMA,CAACA,kBAAkBA,CAACA,IAAIA,EAAEA,cAAWA,CAACA,yCAAyCA,CAACA,CAAAA;YAC1FA,CAACA;QACLA,CAACA;QAEDtE,SAASA,kBAAkBA,CAACA,IAA8BA;YACtDuE,EAAEA,CAACA,CAACA,IAAIA,CAACA,UAAUA,CAACA,CAACA,CAACA;gBAClBA,MAAMA,CAACA,wBAAwBA,CAACA,IAAIA,CAACA,UAAUA,EAAEA,cAAWA,CAACA,aAAaA,CAACA,CAACA;YAChFA,CAACA;QACLA,CAACA;QAEDvE,SAASA,kBAAkBA,CAACA,IAAuBA;YAC/CwE,MAAMA,CAACA,kBAAkBA,CAACA,IAAIA,CAACA,aAAaA,CAACA,CAACA;QAClDA,CAACA;QAEDxE,SAASA,wBAAwBA,CAACA,IAAyBA;YACvDyE,EAAEA,CAACA,CAACA,gBAAgBA,IAAIA,IAAIA,CAACA,WAAWA,CAACA,CAACA,CAACA;gBACvCA,IAAIA,SAASA,GAAGA,IAAIA,CAACA,IAAIA,GAAGA,aAAUA,CAACA,UAAUA,EAAEA,IAAIA,CAACA,IAAIA,CAACA,GAAGA,CAACA,GAAGA,aAAUA,CAACA,UAAUA,EAAEA,IAAIA,CAACA,IAAIA,CAACA,GAAGA,CAACA,CAACA;gBAC1GA,MAAMA,CAACA,iBAAiBA,CAACA,SAASA,EAAEA,GAAGA,CAACA,MAAMA,EAAEA,cAAWA,CAACA,gDAAgDA,CAACA,CAACA;YAClHA,CAACA;YACDA,EAAEA,CAACA,CAACA,CAACA,gBAAgBA,IAAIA,CAACA,IAAIA,CAACA,WAAWA,IAAIA,OAAOA,CAACA,IAAIA,CAACA,CAACA,CAACA,CAACA;gBAC1DA,MAAMA,CAACA,kBAAkBA,CAACA,IAAIA,EAAEA,cAAWA,CAACA,sCAAsCA,CAACA,CAACA;YACxFA,CAACA;YACDA,EAAEA,CAACA,CAACA,IAAIA,CAACA,kBAAkBA,GAAGA,kBAA6BA,IAAIA,2BAA2BA,CAACA,IAAIA,CAACA,IAAIA,CAACA,CAACA,CAACA,CAACA;gBAGpGA,MAAMA,CAACA,4BAA4BA,CAACA,IAAIA,CAACA,IAAIA,CAACA,CAACA;YACnDA,CAACA;QACLA,CAACA;QAEDzE,SAASA,yBAAyBA,CAACA,YAA4CA;YAC3E0E,EAAEA,CAACA,CAACA,YAAYA,CAACA,CAACA,CAACA;gBACfA,EAAEA,CAACA,CAACA,+BAA+BA,CAACA,YAAYA,CAACA,CAACA,CAACA,CAACA;oBAChDA,MAAMA,CAACA,IAAIA,CAACA;gBAChBA,CAACA;gBAEDA,EAAEA,CAACA,CAACA,CAACA,YAAYA,CAACA,MAAMA,CAACA,CAACA,CAACA;oBACvBA,MAAMA,CAACA,iBAAiBA,CAACA,YAAYA,CAACA,GAAGA,EAAEA,YAAYA,CAACA,GAAGA,GAAGA,YAAYA,CAACA,GAAGA,EAAEA,cAAWA,CAACA,yCAAyCA,CAACA,CAACA;gBAC3IA,CAACA;gBAEDA,IAAIA,IAAIA,GAAGA,YAAYA,CAACA,CAACA,CAACA,CAACA;gBAC3BA,EAAEA,CAACA,CAACA,eAAeA,GAAGA,WAAgBA,CAACA,CAACA,CAACA;oBACrCA,EAAEA,CAACA,CAACA,KAAKA,CAACA,IAAIA,CAACA,CAACA,CAACA,CAACA;wBACdA,MAAMA,CAACA,wBAAwBA,CAACA,IAAIA,EAAEA,cAAWA,CAACA,0EAA0EA,CAACA,CAACA;oBAClIA,CAACA;oBACDA,IAAIA,CAACA,EAAEA,CAACA,CAACA,OAAOA,CAACA,IAAIA,CAACA,CAACA,CAACA,CAACA;wBACrBA,MAAMA,CAACA,wBAAwBA,CAACA,IAAIA,EAAEA,cAAWA,CAACA,4EAA4EA,CAACA,CAACA;oBACpIA,CAACA;gBACLA,CAACA;YACLA,CAACA;QACLA,CAACA;QAED1E,SAASA,sBAAsBA,CAACA,IAAuBA;YACnD2E,MAAMA,CAACA,yBAAyBA,CAACA,IAAIA,CAACA,YAAYA,CAACA,IAC/CA,qCAAqCA,CAACA,IAAIA,CAACA,CAACA;QACpDA,CAACA;QAED3E,SAASA,qCAAqCA,CAACA,IAAuBA;YAClE4E,EAAEA,CAACA,CAACA,CAACA,4BAA4BA,CAACA,IAAIA,CAACA,MAAMA,CAACA,CAACA,CAACA,CAACA;gBAC7CA,EAAEA,CAACA,CAACA,KAAKA,CAACA,IAAIA,CAACA,CAACA,CAACA,CAACA;oBACdA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AIA,OAAOA,GAAGA,CAACA,CAACA;QAEhBA,SAASA,KAAKA,CAACA,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,SAASA,QAAQA,CAACA,CAASA;YACvBE,EAAEA,CAACA,CAACA,CAACA,KAAKA,SAASA,CAACA,CAACA,CAACA;gBAClBA,EAAEA,CAACA,CAACA,SAASA,CAACA,CAACA,CAACA;oBACZA,SAASA,GAAGA,KAAKA,CAACA;gBACtBA,CAACA;gBACDA,MAAMA,IAAIA,CAACA,CAACA;YAChBA,CAACA;QACLA,CAACA;QAEDF,SAASA,YAAYA,CAACA,CAASA;YAC3BG,EAAEA,CAACA,CAACA,CAACA,IAAIA,CAACA,CAACA,MAAMA,CAACA,CAACA,CAACA;gBAChBA,KAAKA,CAACA,CAACA,CAACA,CAACA;gBACTA,IAAIA,aAAaA,GAAGA,oBAAiBA,CAACA,CAACA,CAACA,CAACA;gBACzCA,EAAEA,CAACA,CAACA,aAAaA,CAACA,MAAMA,GAAGA,CAACA,CAACA,CAACA,CAACA;oBAC3BA,SAASA,GAAGA,SAASA,GAAGA,aAAaA,CAACA,MAAMA,GAAGA,CAACA,CAACA;oBACjDA,OAAOA,GAAGA,MAAMA,CAACA,MAAMA,GAAGA,CAACA,CAACA,MAAMA,GAAGA,aAAaA,CAACA,aAAaA,CAACA,MAAMA,GAAGA,CAACA,CAACA,CAACA;gBACjFA,CAACA;YACLA,CAACA;QACLA,CAACA;QAEDH,SAASA,SAASA;YACdI,EAAEA,CAACA,CAACA,CAACA,SAASA,CAACA,CAACA,CAACA;gBACbA,MAAMA,IAAIA,OAAOA,CAACA;gBAClBA,SAASA,EAAEA,CA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iBA,EAAEA,EAAEA,CAACA;wBACxFA,cAAcA,EAAEA,CAACA;oBACrBA,CAACA;oBACDA,sBAAsBA,CAACA,YAAYA,CAACA,CAACA;oBACrCA,aAAaA,CAACA,kBAAkBA,GAAGA,MAAMA,CAACA,OAAOA,EAAEA,CAACA;gBACxDA,CAACA;YACLA,CAACA,CAACA,CAACA;YACHA,SAASA,CAACA,SAASA,CAACA,CAACA;QACzBA,CAACA;QAEDH,SAASA,8BAA8BA,CAACA,wBAAkDA;YACtFI,EAAEA,CAACA,CAACA,wBAAwBA,CAACA,aAAaA,KAAKA,kBAA8BA,CAACA,CAACA,CAACA;gBAE5EA,EAAEA,CAACA,CAACA,wBAAwBA,IAAIA,wBAAwBA,CAACA,oBAAoBA,CAACA,CAACA,CAACA;oBAC5EA,kCAAkCA,CAACA,wBAAwBA,CAACA,oBAAoBA,CAACA,CAACA;gBACtFA,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,EACxC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CAACA,GAAGA,CAACA,CAACA;YACXA,SAASA,EAAEA,CAACA;QAChBA,CAACA;QAEDxB,SAASA,iCAAiCA,CAACA,IAAiBA;YAExDyB,EAAEA,CAACA,CAACA,IAAIA,CAACA,MAAMA,KAAKA,iBAAiBA,CAACA,CAACA,CAACA;gBAEpCA,EAAEA,CAACA,CAACA,IAAIA,CAACA,KAAKA,GAAGA,cAAgBA,CAACA,CAACA,CAACA;oBAChCA,KAAKA,CAACA,SAASA,CAACA,CAACA;gBACrBA,CAACA;gBAEDA,EAAEA,CAACA,CAACA,IAAIA,CAACA,IAAIA,KAAKA,8BAA+BA,CAACA,CAACA,CAACA;oBAChDA,KAAKA,CAACA,UAAUA,CAACA,CAACA;gBACtBA,CAACA;YACLA,CAACA;QACLA,CAACA;QAEDzB,SAASA,+BAA+BA,CAACA,IAAiBA;YACtD0B,EAAEA,CAACA,CAACA,IAAIA,CAACA,KAAKA,GAAGA,gBAAiBA,CAACA,CAACA,CAACA;gBACjCA,KAAKA,CAACA,UAAUA,CAACA,CAACA;YACtBA,CAACA;YACDA,IAAIA,CAACA,EAAEA,CAACA,CAACA,IAAIA,CAACA,KAAKA,GAAGA,kBAAmBA,CAACA,CAACA,CAACA;gBACxCA,KAAKA,CAACA,YAAYA,CAACA,CAACA;YACxBA,CAACA;YAEDA,EAAEA,CAACA,CAACA,IAAIA,CAACA,KAAKA,GAAGA,gBAAgBA,CAACA,CAACA,CAACA;gBAChCA,KAAKA,CAACA,SAASA,CAACA,CAACA;YACrBA,CAACA;QACLA,CAACA;QAED1B,SAASA,qBAAqBA,CAACA,IAAuBA;YAClD2B,IAAIA,YAAYA,GAAGA;gBACfA,WAAWA,EAAEA,IAAIA;gBACjBA,SAASA,EAAEA,MAAMA,CAACA,UAAUA,EAAEA;gBAC9BA,MAAMA,EAAEA,MAAMA,CAACA,SAASA,EAAEA;gBAC1BA,UAAUA,EAAEA,QAAQA,CAACA,oBAAoBA,CAACA,IAAIA,CAACA;aAClDA,CAACA;YACFA,wBAAwBA,CAACA,IAAIA,CAACA,YAAYA,CAACA,CAACA;YAC5CA,EAAEA,CAACA,CAACA,YAAYA,CAACA,UAAUA,CAACA,CAACA,CAACA;gBAC1BA,sBAAsBA,CAACA,IAAIA,CAACA,CAACA;YACjCA,CAACA;QACLA,CAACA;QAED3B,SAASA,sBAAsBA,CAACA,IAAuBA;YAGnD4B,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,IAAIA,CAACA,UAAUA,CAACA,CAACA,CAACA;gBAClBA,+CAA+CA,CAACA,IAAIA,CAACA,UAAUA,EAAEA,kCAAkCA,CAACA,CAACA;gBACrGA,KAAKA,CAACA,GAAGA,CAACA,CAACA;YACfA,CAACA;YACDA,IAAIA,CAACA,CAACA;gBACFA,KAAKA,CAACA,UAAUA,CAACA,CAACA;gBAClBA,eAAeA,CAACA,iBAAiBA,EAAEA,IAAIA,CAACA,kBAAkBA,CAACA,CAACA;gBAC5DA,KAAKA,CAACA,IAAIA,CAACA,CAACA;YAChBA,CAACA;YACDA,MAAMA,CAACA,SAASA,EAAEA,CAACA;YAEnBA,SAASA,kCAAkCA,CAACA,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;QAED5B,SAASA,qBAAqBA,CAACA,IAAuBA;YAClD8B,EAAEA,CAACA,CAACA,QAAQA,CAACA,oBAAoBA,CAACA,IAAIA,CAACA,CAACA,CAACA,CAACA;gBACtCA,iBAAiBA,CAACA,IAAIA,CAACA,CAACA;gBACxBA,iCAAiCA,CAACA,IAAIA,CAACA,CAACA;gBACxCA,KAAKA,CAACA,SAASA,CAACA,CAACA;gBACjBA,eAAeA,CAACA,iBAAiBA,EAAEA,IAAIA,CAACA,IAAIA,CAACA,CAACA;gBAC9CA,OAAOA,IAAIA,CAACA,IAAIA,CAACA,IAAIA,KAAKA,qBAAsBA,EAAEA,CAACA;oBAC/CA,IAAIA,GAAsBA,IAAIA,CAACA,IAAIA,CAACA;oBACpCA,KAAKA,CAACA,GAAGA,CAACA,CAACA;oBACXA,eAAeA,CAACA,iBAAiBA,EAAEA,IAAIA,CAACA,IAAIA,CAACA,CAACA;gBAClDA,CAACA;gBACDA,IAAIA,wBAAwBA,GAAGA,oBAAoBA,CAACA;gBACpDA,oBAAoBA,GAAGA,IAAIA,CAACA;gBAC5BA,KAAKA,CAACA,IAAIA,CAACA,CAACA;gBACZA,SAASA,EAAEA,CAACA;gBACZA,cAAcA,EAAEA,CAACA;gBACjBA,SAASA,CAASA,IAAIA,CAACA,IAAKA,CAACA,UAAUA,CAACA,CAACA;gBACzCA,cAAcA,EAAEA,CAACA;gBACjBA,KAAKA,CAACA,GAAGA,CAACA,CAACA;gBACXA,SAASA,EAAEA,CAACA;gBACZA,oBAAoBA,GAAGA,wBAAwBA,CAACA;YACpDA,CAACA;QACLA,CAACA;QAED9B,SAASA,wBAAwBA,CAACA,IAA0BA;YACxD+B,EAAEA,CAACA,CAACA,QAAQA,CAACA,oBAAoBA,CAACA,IAAIA,CAACA,CAACA,CAACA,CAACA;gBACtCA,iBAAiBA,CAACA,IAAIA,CAACA,CAACA;gBACxBA,iCAAiCA,CAACA,IAAIA,CAACA,CAACA;gBACxCA,KAAKA,CAACA,OAAOA,CAACA,CAACA;gBACfA,eAAeA,CAACA,iBAAiBA,EAAEA,IAAIA,CAACA,IAAIA,CAACA,CAACA;gBAC9CA,KAAKA,CAACA,KAAKA,CAACA,CAACA;gBACbA,+CAA+CA,CAACA,IAAIA,CAACA,IAAIA,EAAEA,sCAAsCA,CAACA,CAACA;gBACnGA,KAAKA,CAACA,GAAGA,CAACA,CAACA;gBACXA,SAASA,EAAEA,CAACA;YAChBA,CAACA;YACDA,SAASA,sCAAsCA,CAACA,wBAAkDA;gBAC9FC,MAAMA,CAACA;oBACHA,iBAAiBA,EAAEA,cAAWA,CAACA,oDAAoDA;oBACnFA,SAASA,EAAEA,IAAIA,CAACA,IAAIA;oBACpBA,QAAQA,EAAEA,IAAIA,CAACA,IAAIA;iBACtBA,CAACA;YACNA,CAACA;QACLD,CAACA;QAED/B,SAASA,mBAAmBA,CAACA,IAAqBA;YAC9CiC,EAAEA,CAACA,CAACA,QAAQA,CAACA,oBAAoBA,CAACA,IAAIA,CAACA,CAACA,CAACA,CAACA;gBACtCA,iBAAiBA,CAACA,IAAIA,CAACA,CAACA;gBACxBA,iCAAiCA,CAACA,IAAIA,CAACA,CAACA;gBACxCA,EAAEA,CAACA,CAACA,UAAOA,CAACA,IAAIA,CAACA,CAACA,CAACA,CAACA;oBAChBA,KAAKA,CAACA,QAAQA,CAACA,CAAAA;gBACnBA,CAACA;gBACDA,KAAKA,CAACA,OAAOA,CAACA,CAACA;gBACfA,eAAeA,CAACA,iBAAiBA,EAAEA,IAAIA,CAACA,IAAIA,CAACA,CAACA;gBAC9CA,KAAKA,CAACA,IAAIA,CAACA,CAACA;gBACZA,SAASA,EAAEA,CAACA;gBACZA,cAAcA,EAAEA,CAACA;gBACjBA,SAASA,CAACA,IAAIA,CAACA,OAAOA,CAACA,CAACA;gBACxBA,cAAcA,EAAEA,CAACA;gBACjBA,KAAKA,CAACA,GAAGA,CAACA,CAACA;gBACXA,SAASA,EAAEA,CAACA;YAChBA,CAACA;QACLA,CAACA;QAEDjC,SAASA,yBAAyBA,CAACA,IAAgBA;YAC/CkC,iBAAiBA,CAACA,IAAIA,CAACA,CAACA;YACxBA,eAAeA,CAACA,iBAAiBA,EAAEA,IAAIA,CAACA,IAAIA,CAACA,CAACA;YAC9CA,IAAIA,eAAeA,GAAGA,QAAQA,CAACA,kBAAkBA,CAACA,IAAIA,CAACA,CAACA;YACxDA,EAAEA,CAACA,CAACA,eAAeA,KAAKA,SAASA,CAACA,CAACA,CAACA;gBAChCA,KAAKA,CAACA,KAAKA,CAACA,CAACA;gBACbA,KAAKA,C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CA;gBACjBA,KAAKA,CAACA,GAAGA,CAACA,CAACA;gBACXA,SAASA,EAAEA,CAACA;gBACZA,oBAAoBA,GAAGA,wBAAwBA,CAACA;YACpDA,CAACA;QACLA,CAACA;QAEDzC,SAASA,wBAAwBA,CAACA,IAA0BA;YACxD2C,EAAEA,CAACA,CAACA,QAAQA,CAACA,oBAAoBA,CAACA,IAAIA,CAACA,CAACA,CAACA,CAACA;gBACtCA,iBAAiBA,CAACA,IAAIA,CAACA,CAACA;gBACxBA,iCAAiCA,CAACA,IAAIA,CAACA,CAACA;gBACxCA,KAAKA,CAACA,YAAYA,CAACA,CAACA;gBACpBA,eAAeA,CAACA,iBAAiBA,EAAEA,IAAIA,CAACA,IAAIA,CAACA,CAACA;gBAC9CA,IAAIA,wBAAwBA,GAAGA,oBAAoBA,CAACA;gBACpDA,oBAAoBA,GAAGA,IAAIA,CAACA;gBAC5BA,kBAAkBA,CAACA,IAAIA,CAACA,cAAcA,CAACA,CAACA;gBACxCA,kBAAkBA,CAACA,IAAIA,CAACA,SAASA,EAAuBA,KAAKA,CAACA,CAACA;gBAC/DA,KAAKA,CAACA,IAAIA,CAACA,CAACA;gBACZA,SAASA,EAAEA,CAACA;gBACZA,cAAcA,EAAEA,CAACA;gBACjBA,SAASA,CAACA,IAAIA,CAACA,OAAOA,CAACA,CAACA;gBACxBA,cAAcA,EAAEA,CAACA;gBACjBA,KAAKA,CAACA,GAAGA,CAACA,CAACA;gBACXA,SAASA,EAAEA,CAACA;gBACZA,oBAAoBA,GAAGA,wBAAwBA,CAACA;YACpDA,CAACA;QACLA,CAACA;QAED3C,SAASA,uBAAuBA,CAACA,IAAyBA;YACtD4C,iBAAiBA,CAACA,IAAIA,CAACA,CAACA;YACxBA,+BAA+BA,CAACA,IAAIA,CAACA,CAACA;YACtCA,uBAAuBA,CAAsBA,IAAIA,CAACA,CAACA;YACnDA,KAAKA,CAACA,GAAGA,CAACA,CAACA;YACXA,SAASA,EAAEA,CAACA;QAChBA,CAACA;QAGD5C,SAASA,uBAAuBA,CAACA,IAAyBA;YAGtD6C,EAAEA,CAACA,CAACA,IAAIA,CAA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A,EAAEA,CAACA,CAACA,sBAAsBA,CAACA,CAACA,CAACA;gBACzBA,iBAAiBA,CAACA,IAAIA,CAACA,CAACA;gBACxBA,iCAAiCA,CAACA,IAAIA,CAACA,CAACA;gBACxCA,EAAEA,CAACA,CAACA,QAAKA,CAACA,IAAIA,CAACA,CAACA,CAACA,CAACA;oBACdA,KAAKA,CAACA,MAAMA,CAACA,CAACA;gBAClBA,CAACA;gBACDA,IAAIA,CAACA,EAAEA,CAACA,CAACA,UAAOA,CAACA,IAAIA,CAACA,CAACA,CAACA,CAACA;oBACrBA,KAAKA,CAACA,QAAQA,CAACA,CAACA;gBACpBA,CAACA;gBACDA,IAAIA,CAACA,CAACA;oBACFA,KAAKA,CAACA,MAAMA,CAACA,CAACA;gBAClBA,CAACA;gBACDA,aAAaA,CAACA,IAAIA,CAACA,YAAYA,EAAEA,uBAAuBA,CAACA,CAACA;gBAC1DA,KAAKA,CAACA,GAAGA,CAACA,CAACA;gBACXA,SAASA,EAAEA,CAACA;YAChBA,CAACA;QACLA,CAACA;QAEDhD,SAASA,uBAAuBA,CAACA,IAAyBA;YACtDiD,IAAIA,SAASA,GAAGA,0BAA0BA,CAAmBA,IAAIA,CAACA,MAAMA,EAAEA,IAAIA,CAACA,CAACA;YAChFA,EAAEA,CAACA,CAACA,IAAIA,KAAKA,SAASA,CAACA,aAAaA,CAACA,CAACA,CAACA;gBACnCA,iBAAiBA,CAACA,SAASA,CAACA,WAAWA,CAACA,CAACA;gBACzCA,iBAAiBA,CAACA,SAASA,CAACA,WAAWA,CAACA,CAACA;gBACzCA,+BAA+BA,CAACA,IAAIA,CAACA,CAACA;gBACtCA,eAAeA,CAACA,iBAAiBA,EAAEA,IAAIA,CAACA,IAAIA,CAACA,CAACA;gBAC9CA,EAAEA,CAACA,CAACA,CAACA,CAACA,IAAIA,CAACA,KAAKA,GAAGA,gBAAiBA,CAACA,CAACA,CAACA,CAACA;oBACpCA,IAAIA,0BAA0BA,GAAwBA,IAAIA,CAACA;oBAC3DA,IAAIA,IAAIA,GAAGA,6BAA6BA,CAACA,IAAIA,CAACA,CAACA;oBAC/C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BAC5CA,CAACA;gBACDA,IAAIA,CAACA,EAAEA,CAACA,CAACA,IAAIA,CAACA,IAAIA,KAAKA,gBAAiBA,CAACA,CAACA,CAACA;oBACvCA,+BAA+BA,CAACA,IAAIA,CAACA,CAACA;gBAC1CA,CAACA;gBACDA,EAAEA,CAACA,CAACA,IAAIA,CAACA,IAAIA,KAAKA,6BAA8BA,CAACA,CAACA,CAACA;oBAC/CA,KAAKA,CAACA,WAAWA,CAACA,CAACA;oBACnBA,eAAeA,CAACA,iBAAiBA,EAAEA,IAAIA,CAACA,IAAIA,CAACA,CAACA;gBAClDA,CAACA;gBACDA,IAAIA,CAACA,EAAEA,CAACA,CAACA,IAAIA,CAACA,IAAIA,KAAKA,qBAAsBA,CAACA,CAACA,CAACA;oBAC5CA,KAAKA,CAACA,aAAaA,CAACA,CAACA;gBACzBA,CAACA;gBACDA,IAAIA,CAACA,CAACA;oBACFA,eAAeA,CAACA,iBAAiBA,EAAEA,IAAIA,CAACA,IAAIA,CAACA,CAACA;oBAC9CA,EAAEA,CAACA,CAACA,IAAIA,CAACA,KAAKA,GAAGA,oBAAsBA,CAACA,CAACA,CAACA;wBACtCA,KAAKA,CAACA,GAAGA,CAACA,CAACA;oBACfA,CAACA;gBACLA,CAACA;gBACDA,wBAAwBA,CAACA,IAAIA,CAACA,CAACA;YACnCA,CAACA;QACLA,CAACA;QAEDpD,SAASA,yCAAyCA,CAACA,IAA0BA;YACzEqD,iBAAiBA,CAACA,IAAIA,CAACA,CAACA;YACxBA,wBAAwBA,CAACA,IAAIA,CAACA,CAACA;QACnCA,CAACA;QAEDrD,SAASA,wBAAwBA,CAACA,IAA0BA;YAExDsD,EAAEA,CAACA,CAACA,IAAIA,CAACA,IAAIA,KAAKA,4BAA6BA,IAAIA,IAAIA,CAACA,IAAIA,KAAKA,yBAA0BA,CAACA,CAACA,CAACA;gBAC1FA,KAAKA,CAACA,MAAMA,CAACA,CAACA;YAClBA,CAACA;YACDA,kBAAkBA,CAACA,IAAIA,CAACA,cAAcA,CAACA,CAACA;YACxCA,EAAEA,CAACA,CAACA,IAAIA,CAACA,IAAIA,KAAKA,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AACA,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;YAEDrB,SAASA,YAAYA,CAACA,MAAcA,EAAEA,IAAUA;gBAC5CsB,EAAEA,CAACA,CAACA,IAAIA,CAACA,CAACA,CAACA;oBACPA,KAAKA,CAACA,MAAMA,CAACA,CAACA;oBACdA,IAAIA,CAACA,IAAIA,CAACA,CAACA;gBACfA,CAACA;YACLA,CAACA;YAEDtB,SAASA,0BAA0BA,CAACA,QAAyBA,EAAEA,WAAoBA;gBAC/EuB,EAAEA,CAACA,CAACA,QAAQA,CAACA,gBAAgBA,CAACA,CAACA,CAACA;oBAC5BA,KAAKA,CAACA,GAAGA,CAACA,CAACA;oBACXA,EAAEA,CAACA,CAACA,WAAWA,CAACA,CAACA,CAACA;wBACdA,SAASA,EAAEA,CAACA;oBAChBA,CAACA;gBACLA,CAACA;YACLA,CAACA;YAEDvB,SAASA,aAAaA,CAACA,KAAsBA,EAAEA,oBAA6BA,EAAEA,KAAcA;gBACxFwB,EAAEA,CAACA,CAACA,CAACA,CAACA,KAAKA,IAAIA,CAACA,CAACA,CAACA,CAACA,CAACA;oBAChBA,KAAKA,GAAGA,KAAKA,CAACA,MAAMA,CAACA;gBACzBA,CAACA;gBACDA,EAAEA,CAACA,CAACA,KAAKA,CAACA,CAACA,CAACA;oBACRA,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,KAAKA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;wBAC7BA,EAAEA,CAACA,CAACA,CAACA,CAACA,CAACA,CAACA;4BACJA,KAAKA,CAACA,IAAIA,CAACA,CAACA;wBAChBA,CAACA;wBACDA,IAAIA,CAACA,KAAKA,CAACA,CAACA,CAACA,CAACA,CAACA;oBACnBA,CAACA;oBAEDA,EAAEA,CAACA,CAACA,oBAAoBA,CAACA,CAACA,CAACA;wBACvBA,0BAA0BA,CAACA,KAAKA,EAAkBA,KAAKA,CAACA,CAACA;oBAC7DA,CAACA;gBACLA,CAACA;YACLA,CAACA;YAEDxB,SAASA,iBAAiBA,CAACA,KAAsBA,EAAEA,oBAA6BA;gBAC5EyB,EAAEA,CAACA,CAACA,KAAKA,CAACA,CAACA,CAACA;oBACRA,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,KAAKA,CAACA,MAAMA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;wBACpCA,EAAEA,CAACA,CAACA,CAACA,CAACA,CAACA,CAACA;4BACJA,KAAKA,CAACA,GAAGA,CAACA,CAACA;wBACfA,CAACA;wBACDA,SAASA,EAAEA,CAACA;wBACZA,IAAIA,CAACA,KAAKA,CAACA,CAACA,CAACA,CAACA,CAACA;oBACnBA,CAACA;oBAEDA,EAAEA,CAACA,CAACA,oBAAoBA,CAACA,CAACA,CAACA;wBACvBA,0BAA0BA,CAACA,KAAKA,EAAkBA,IAAIA,CAACA,CAACA;oBAC5DA,CAACA;gBACLA,CAACA;YACLA,CAACA;YAEDzB,SAASA,SAASA,CAACA,KAAaA;gBAC5B0B,mBAAmBA,CAACA,KAAKA,EAAiBA,CAACA,CAACA,CAACA;YACjDA,CAACA;YAED1B,SAASA,mBAAmBA,CAACA,KAAaA,EAAEA,UAAkBA;gBAC1D2B,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,UAAUA,EAAEA,CAACA,GAAGA,KAAKA,CAACA,MAAMA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;oBAC7CA,SAASA,EAAEA,CAACA;oBACZA,IAAIA,CAACA,KAAKA,CAACA,CAACA,CAACA,CAACA,CAACA;gBACnBA,CAACA;YACLA,CAACA;YAED3B,SAASA,WAAWA,CAACA,IAAuBA;gBACxC4B,IAAIA,IAAIA,GAAGA,cAAcA,EAAEA,CAACA;gBAE5BA,EAAEA,CAACA,CAACA,eAAeA,CAACA,SAASA,IAAIA,CAACA,IAAIA,CAACA,IAAIA,KAAKA,qBAAwBA,IAAIA,wBAAqBA,CAACA,IAAIA,CAACA,IAAIA,CAACA,CAACA,CAACA,CAACA,CAACA;oBAC5GA,MAAMA,CAACA,YAAYA,CAACA,IAAIA,CAACA,CAACA;gBAC9BA,CAACA;gBACDA,IAAIA,CAACA,CAACA;oBACFA,KAAKA,CAACA,IAAIA,CAACA,CAACA;gBAChBA,CAACA;gBAEDA,SAASA,cAAcA;oBACnBC,EAAEA,CAACA,CAACA,eAAeA,CAACA,MAAMA,GAAGA,WAAgBA,IAAIA,wBAAqBA,CAACA,IAAIA,CAACA,IAAIA,CAACA,CAACA,CAACA,CAACA;wBAChFA,MAAMA,CAACA,iCAAiCA,CAACA,IAAIA,CAACA,CAAAA;oBAClDA,CAACA;oBAEDA,MAAMA,CAACA,oCAAiCA,CAACA,iBAAiBA,EAAEA,IAAIA,CAACA,CAACA;gBACtEA,CAACA;YACLD,CAACA;YAED5B,SAASA,iCAAiCA,CAACA,IAAuBA;gBAC9D8B,MAAMA,CAACA,GAAGA,GAAGA,eAAYA,CAACA,IAAIA,CAACA,IAAIA,CAACA,GAAGA,GAAGA,CAACA;YAC/CA,CAACA;YAED9B,SAASA,sBAAsBA,CAACA,IAAwBA;gBAGpD+B,EAAEA,CAACA,CAACA,eAAeA,CAACA,MAAMA,IAAIA,WAAgBA,CAACA,CAACA,CAACA;oBAC7CA,eAAYA,CAACA,IAAIA,EAAEA,IAAIA,CAACA,CAACA;oBACzBA,MAAMA,CAACA;gBACXA,CAACA;gBAEDA,QAAKA,CAACA,MAAMA,CAACA,IAAIA,CAACA,MAAMA,CAACA,IAAIA,KAAKA,kCAAmCA,CAACA,CAACA;gBAEvEA,IAAIA,eAAeA,GAAGA,eAAYA,CAACA,IAAIA,CAACA,MAAMA,CAACA,IACxCA,mBAAmBA,CAACA,IAAIA,EAAcA,IAAIA,CAACA,MAAMA,CAACA,CAACA;gBAE1DA,EAAEA,CAACA,CAACA,eAAeA,CAACA,CAACA,CAACA;oBAClBA,KAAKA,CAACA,GAAGA,CAACA,CAACA;gBACfA,CAACA;gBAEDA,WAAWA,CAACA,IAAIA,CAACA,IAAIA,CAACA,CAACA;gBAEvBA,UAAOA,CAACA,IAAIA,CAACA,aAAaA,EAAEA,UAAAA,YAAeA;oBAUvCA,IAAIA,WAAWA,GAAGA,YAAYA,CAACA,UAAUA,CAACA,IAAIA,KAAKA,yBAA0BA,IACtEA,6BAA6BA,CAACA,YAAYA,CAACA,UAAUA,CAACA,KAAKA,mBAAsBA,CAACA;oBAEzFA,KAAKA,CAACA,KAAKA,CAACA,CAACA;oBAEbA,EAAEA,CAACA,CAACA,WAAWA,CAACA,CAACA,CAACA;wBACdA,KAAKA,CAACA,GAAGA,CAACA,CAACA;oBACfA,CAACA;oBACDA,IAAIA,CAACA,YAAYA,CAACA,UAAUA,CAACA,CAACA;oBAC9BA,EAAEA,CAACA,CAACA,WAAWA,CAACA,CAACA,CAACA;wBACdA,KAAKA,CAACA,GAAGA,CAACA,CAACA;oBACfA,CAACA;oBAMDA,EAAEA,CAACA,CAACA,YAAYA,CAACA,OAAOA,CAACA,IAAIA,CAACA,MAAMA,KAAKA,CAACA,CAACA,CAACA,CAACA;wBACzCA,KAAKA,CAACA,KAAKA,CAACA,CAAAA;wBACZA,WAAWA,CAACA,YAAYA,CAACA,OAAOA,CAACA,CAACA;oBACtCA,CAACA;gBACLA,CAACA,CAACA,CAACA;gBAEHA,EAAEA,CAACA,CAACA,eAAeA,CAACA,CAACA,CAACA;oBAClBA,KAAKA,CAACA,GAAGA,CAACA,CAACA;gBACfA,CAACA;gBAEDA,SAASA,mBAAmBA,CAACA,QAA4BA,EAAEA,MAAkBA;oBACzEC,MAAMA,CAACA,CAACA,MAAMA,CAACA,IAAIA,CAACA,CAACA,CAACA;wBAClBA,KAAKA,wBAAyBA,CAACA;wBAC/BA,KAAKA,uBAAwBA;4BACzBA,MAAMA,CAAkBA,MAAOA,CAACA,IAAIA,KAAKA,QAAQA,CAACA;wBACtDA,KAAKA,yBAA0BA;4BAC3BA,MAAMA,CAACA,KAAKA,CAACA;wBACjBA,KAAKA,kCAAmCA;4BACpCA,QAAKA,CAACA,IAAIA,CAACA,qEAAqEA,CAACA,CAACA;wBACtFA;4BACIA,MAAMA,CAACA,6BAA6BA,CAACA,MAAMA,CAACA,KAAKA,iBAAmBA,CAACA;oBAC7EA,CAACA;gBACLA,CAACA;gBAMDD,SAASA,6BAA6BA,CAACA,UAAsBA;oBASzDE,QAAKA,CAACA,MAAMA,CAACA,eAAeA,CAACA,MAAMA,IAAIA,WAAgBA,CAACA,CAACA;oBACzDA,MAAMA,CAACA,CAACA,UAAUA,CAACA,IAAIA,CAACA,CAACA,CAACA;wBACtBA,KAAKA,0BAA2BA;4BAC5BA,MAAMA,CAACA,CAAoBA,UAAWA,CAACA,QAAQA,CAACA,CAACA,CAACA;gCAC9CA,KAAKA,sBAAwBA,CAACA;gCAC9BA,KAAKA,mBAAqBA,CAACA;gCAC3BA,KAAKA,qBAAuBA;oCACxBA,MAAMA,CAACA,mBAAsBA,CAACA;gCAClCA,KAAKA,kBAAoBA;oCACrBA,MAAMA,CAACA,eAAkBA,CAACA;gCAC9BA;oCACIA,MAAMA,CAACA,iBAAmBA,CAACA;4BACnCA,CAACA;wBACLA,KAAKA,+BAAgCA;4BACjCA,MAAMA,CAACA,iBAAmBA,CAACA;wBAC/BA;4BACIA,MAAMA,CAACA,mBAAsBA,CAACA;oBACtCA,CAACA;gBACLA,CAACA;YACLF,CAACA;YAED/B,SAASA,gBAAgBA,CAACA,IAAkBA;gBACxCkC,IAAIA,CAACA,IAAIA,CAACA,UAAUA,CAACA,CAACA;gBACtBA,IAAIA,CAACA,IAAIA,CAACA,OAAOA,CAACA,CAACA;YACvBA,CAACA;YAIDlC,SAASA,6BAA6BA,CAACA,IAAqBA;gBACxDmC,EAAEA,CAACA,CAACA,IAAIA,CAACA,IAAIA,KAAKA,qBAAwBA,CAACA,CAACA,CAACA;oBACzCA,WAAWA,CAAoBA,IAAIA,CAACA,CAACA;gBACzCA,CAACA;gBACDA,IAAIA,CAACA,CAACA;oBACFA,KAAKA,CAACA,IAAIA,CAACA,CAACA;oBAEZA,EAAEA,CAACA,CAACA,IAAIA,CAACA,IAAIA,KAAKA,sBAAyBA,CAACA,CAACA,CAACA;wBAC1CA,KAAKA,CAAqBA,IAAKA,CAACA,IAAIA,CAACA,CAACA;oBAC1CA,CAACA;oBACDA,IAAIA,CAACA,CAACA;wBACFA,eAAeA,CAACA,iBAAiBA,EAAEA,IAAIA,CAACA,CAACA;oBAC7CA,CAACA;oBAEDA,KAAKA,CAACA,IAAIA,CAACA,CAACA;gBAChBA,CAACA;YACLA,CAACA;YAEDnC,SAASA,yBAAyBA,CAACA,IAAgBA;gBAC/CoC,IAAIA,MAAMA,GAAGA,IAAIA,CAACA,MAAMA,CAACA;gBACzBA,MAAMA,CAACA,CAACA,MAAMA,CAACA,IAAIA,CAACA,CAACA,CAACA;oBAClBA,KAAKA,mBAAoBA,CAACA;oBAC1BA,KAAKA,6BAA8BA,CAACA;oBACpCA,KAAKA,kBAAmBA,CAACA;oBACzBA,KAAKA,4BAA6BA,CAACA;oBACnCA,KAAKA,qCAAsCA,CAACA;oBAC5CA,KAAKA,oBAAqBA,CAACA;oBAC3BA,KAAKA,gBAAiBA,CAACA;oBACvBA,KAAKA,6BAA8BA,CAACA;oBACpCA,KAAKA,qBAAsBA,CAACA;oBAC5BA,KAAKA,qBAAsBA,CAACA;oBAC5BA,KAAKA,4BAA6BA,CAACA;oBACnCA,KAAKA,0BAA2BA,CAACA;oBACjCA,KAAKA,8BAA+BA,CAACA;oBACrCA,KAAKA,yBAA0BA,CAACA;oBAChCA,KAAKA,2BAA4BA,CAACA;oBAClCA,KAAKA,2BAA4BA;wBAC7BA,MAAMA,CAAeA,MAAOA,CAACA,IAAIA,KAAKA,IAAIA,CAACA;oBAC/CA,KAAKA,wBAAyBA,CAACA;oBAC/BA,KAAKA,2BAA4BA,CAACA;oBAClCA,KAAKA,0BAA2BA;wBAC5BA,MAAMA,CAACA,KAAKA,CAACA;oBACjBA,KAAKA,0BAA2BA;wBAC5BA,MAAMA,CAAoBA,IAAIA,CAACA,MAAOA,CAACA,KAAKA,KAAKA,IAAIA,CAACA;oBAC1DA,KAAKA,oBAAqBA;wBACtBA,MAAMA,CAAcA,IAAIA,CAACA,MAAOA,CAACA,QAAQA,KAAKA,IAAIA,CAACA;gBAC3DA,CAACA;YACLA,CAACA;YAEDpC,SAASA,wBAAwBA,CAACA,IAAgBA;gBAC9CqC,IAAIA,MAAMA,GAAGA,QAAQA,CAACA,uBAAuBA,CAACA,IAAIA,CAACA,CAACA;gBACpDA,EAAEA,CAACA,CAACA,MAAMA,CAACA,CAACA,CAACA;oBACTA,KAAKA,CAACA,MAAMA,CAACA,CAACA;oBACdA,KAAKA,CAACA,GAAGA,CAACA,CAACA;gBACfA,CAACA;gBACDA,eAAeA,CAACA,iBAAiBA,EAAEA,IAAIA,CAACA,CAACA;YAC7CA,CAACA;YAEDrC,SAASA,cAAcA,CAACA,IAAgBA;gBACpCsC,EAAEA,CAACA,CAACA,CAACA,yBAAyBA,CAACA,IAAIA,CAACA,CAACA,CAACA,CAACA;oBACnCA,wBAAwBA,CAACA,IAAIA,CAACA,CAACA;gBACnCA,CAACA;gBACDA,IAAIA,CAACA,CAACA;oBACFA,eAAeA,CAACA,iBAAiBA,EAAEA,IAAIA,CAACA,CAACA;gBAC7CA,CAACA;YACLA,CAACA;YAEDtC,SAASA,QAAQA,CAACA,IAAUA;gBACxBuC,EAAEA,CAACA,CAACA,QAAQA,CAACA,iBAAiBA,CAACA,IAAIA,CAACA,GAAGA,mBAA0BA,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;YAEDvC,SAASA,SAASA,CAACA,IAAUA;gBACzBwC,IAAIA,KAAKA,GAAGA,QAAQA,CAACA,iBAAiBA,CAACA,IAAIA,CAACA,CAACA;gBAC7CA,EAAEA,CAACA,CAACA,KAAKA,GAAGA,sBAA4BA,CAACA,CAACA,CAACA;oBACvCA,KAAKA,CAACA,kBAAkBA,CAACA,CAACA;gBAC9BA,CAACA;gBACDA,IAAIA,CAACA,EAAEA,CAACA,CAACA,KAAKA,GAAGA,oBAA0BA,CAACA,CAACA,CAACA;oBAC1CA,KAAKA,CAACA,QAAQA,CAACA,CAACA;gBACpBA,CAACA;gBACDA,IAAIA,CAACA,CAACA;oBACFA,KAAKA,CAACA,OAAOA,CAACA,CAACA;gBACnBA,CAACA;YACLA,CAACA;YAEDxC,SAASA,gBAAgBA,CAACA,IAAkBA;gBACxCyC,EAAEA,CAACA,CAACA,IAAIA,CAACA,KAAKA,GAAGA,mBAAmBA,CAACA,CAACA,CAACA;oBACnCA,KAAKA,CAACA,GAAGA,CAACA,CAACA;oBACXA,cAAcA,EAAEA,CAACA;oBACjBA,iBAAiBA,CAACA,IAAIA,CAACA,QAAQA,EAA2BA,IAAIA,CAACA,CAACA;oBAChEA,cAAcA,EAAEA,CAACA;oBACjBA,SAASA,EAAEA,CAACA;oBACZA,KAAKA,CAACA,GAAGA,CAACA,CAACA;gBACfA,CAACA;gBACDA,IAAIA,CAACA,CAACA;oBACFA,KAAKA,CAACA,GAAGA,CAACA,CAACA;oBACXA,aAAaA,CAACA,IAAIA,CAACA,QAAQA,EAA2BA,IAAIA,CAACA,CAACA;oBAC5DA,KAAKA,CAACA,GAAGA,CAACA,CAACA;gBACfA,CAACA;YACLA,CAACA;YAEDzC,SAASA,iBAAiBA,CAACA,IAAmBA;gBAC1C0C,EAAEA,CAACA,CAACA,CAACA,IAAIA,CAACA,UAAUA,CAACA,MAAMA,CAACA,CAACA,CAACA;oBAC1BA,KAAKA,CAACA,IAAIA,CAACA,CAACA;gBAChBA,CAACA;gBACDA,IAAIA,CAACA,EAAEA,CAACA,CAACA,IAAIA,CAACA,KAAKA,GAAGA,mBAAmBA,CAACA,CAACA,CAACA;oBACxCA,KAAKA,CAACA,GAAGA,CAACA,CAACA;oBACXA,cAAcA,EAAEA,CAACA;oBACjBA,iBAAiBA,CAACA,IAAIA,CAACA,UAAUA,EAA2BA,eAAeA,CAACA,MAAMA,IAAIA,WAAgBA,CAACA,CAACA;oBACxGA,cAAcA,EAAEA,CAACA;oBACjBA,SAASA,EAAEA,CAACA;oBACZA,KAAKA,CAACA,GAAGA,CAACA,CAACA;gBACfA,CAACA;gBACDA,IAAIA,CAACA,CAACA;oBACFA,KAAKA,CAACA,IAAIA,CAACA,CAACA;oBACZA,aAAaA,CAACA,IAAIA,CAACA,UAAUA,EAA2BA,eAAeA,CAACA,MAAMA,IAAIA,WAAgBA,CAACA,CAACA;oBACpGA,KAAKA,CAACA,IAAIA,CAACA,CAACA;gBACh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CAACA,CAACA,CAACA;oBAC7CA,KAAKA,CAACA,QAAQA,CAACA,CAACA;oBAChBA,SAASA,GAAGA,IAAIA,CAACA;gBACrBA,CAACA;gBACDA,IAAIA,CAACA,CAACA;oBACFA,IAAIA,CAACA,IAAIA,CAACA,IAAIA,CAACA,CAACA;oBAChBA,SAASA,GAAGA,IAAIA,CAACA,IAAIA,CAACA,IAAIA,KAAKA,wBAAyBA,IAAqBA,IAAIA,CAACA,IAAKA,CAACA,IAAIA,CAACA,IAAIA,KAAKA,qBAAuBA,CAACA;gBAClIA,CAACA;gBACDA,EAAEA,CAACA,CAACA,SAASA,CAACA,CAACA,CAACA;oBACZA,KAAKA,CAACA,QAAQA,CAACA,CAACA;oBAChBA,QAAQA,CAACA,IAAIA,CAACA,IAAIA,CAACA,CAACA;oBACpBA,EAAEA,CAACA,CAACA,IAAIA,CAACA,SAASA,CAACA,MAAMA,CAACA,CAACA,CAACA;wBACxBA,KAAKA,CAACA,IAAIA,CAACA,CAACA;wBACZA,aAAaA,CAACA,IAAIA,CAACA,SAASA,EAA2BA,KAAKA,CAACA,CAACA;oBAClEA,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,EAA2BA,KAAKA,CAACA,CAACA;oBAC9DA,KAAKA,CAACA,GAAGA,CAACA,CAACA;gBACfA,CAACA;YACLA,CAACA;YAEDjD,SAASA,iBAAiBA,CAACA,IAAmBA;gBAC1CkD,KAAKA,CAACA,MAAMA,CAACA,CAACA;gBACdA,IAAIA,CAACA,IAAIA,CAACA,IAAIA,CAACA,CAACA;gBAChBA,EAAEA,CAACA,CAACA,IAAIA,CAACA,SAASA,CAACA,CAACA,CAACA;oBACjBA,KAAKA,CAACA,GAAGA,CAACA,CAACA;oBACXA,aAAaA,CAACA,IAAIA,CAACA,SAASA,EAA2BA,KAAKA,CAACA,CAACA;oBAC9DA,KAAKA,CAACA,GAAGA,CAACA,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IAAsBA;gBAChDsD,IAAIA,CAACA,IAAIA,CAACA,IAAIA,CAACA,CAACA;gBAChBA,EAAEA,CAACA,CAACA,IAAIA,CAACA,QAAQA,KAAKA,mBAAqBA,CAACA;oBAACA,KAAKA,CAACA,GAAGA,CAACA,CAACA;gBACxDA,KAAKA,CAACA,gBAAaA,CAACA,IAAIA,CAACA,QAAQA,CAACA,CAACA,CAACA;gBACpCA,KAAKA,CAACA,GAAGA,CAACA,CAACA;gBACXA,IAAIA,CAACA,IAAIA,CAACA,KAAKA,CAACA,CAACA;YACrBA,CAACA;YAEDtD,SAASA,yBAAyBA,CAACA,IAA2BA;gBAC1DuD,IAAIA,CAACA,IAAIA,CAACA,SAASA,CAACA,CAACA;gBACrBA,KAAKA,CAACA,KAAKA,CAACA,CAACA;gBACbA,IAAIA,CAACA,IAAIA,CAACA,QAAQA,CAACA,CAACA;gBACpBA,KAAKA,CAACA,KAAKA,CAACA,CAACA;gBACbA,IAAIA,CAACA,IAAIA,CAACA,SAASA,CAACA,CAACA;YACzBA,CAACA;YAEDvD,SAASA,SAASA,CAACA,IAAWA;gBAC1BwD,SAASA,CAACA,uBAAyBA,EAAEA,IAAIA,CAACA,GAAGA,CAACA,CAACA;gBAC/CA,cAAcA,EAAEA,CAACA;gBACjBA,cAAcA,CAACA,IAAIA,CAACA,MAAMA,CAACA,CAACA;gBAC5BA,EAAEA,CAACA,CAACA,IAAIA,CAACA,IAAIA,KAAKA,qBAAsBA,CAACA,CAACA,CAACA;oBACvCA,QAAKA,CAACA,MAAMA,CAACA,IAAIA,CAACA,MAAMA,CAACA,IAAIA,KAAKA,2BAA4BA,CAACA,CAACA;oBAChEA,iCAAiCA,CAACA,IAAIA,CAACA,MAAMA,CAACA,CAACA;gBACnDA,CAACA;gBACDA,SAASA,CAACA,IAAIA,CAACA,UAAUA,CAACA,CAACA;gBAC3BA,cAAcA,EAAEA,CAACA;gBACjBA,SAASA,EAAEA,CAACA;gBACZA,SAASA,CAACA,wBAA0BA,EAAEA,IAAIA,CAACA,UAAUA,CAACA,GAAGA,CAACA,CAACA;gBAC3DA,YAAYA,EAAEA,CAACA;YACnBA,CAACA;YAEDxD,SAASA,qBAAqBA,CAACA,IAAUA;gBACrCyD,EAAEA,CAACA,CAACA,IAAIA,CAACA,IAAIA,KAAKA,eAAgBA,CAACA,CAACA,CAACA;oBACjCA,KAAKA,CAACA,GAAGA,CAACA,CAACA;oBACXA,IAAIA,CAAQA,IAAIA,CAACA,CAACA;gBACtBA,CAACA;gBACDA,IAAIA,CAACA,CAACA;oBACFA,cAAcA,EAAEA,CAACA;oBACjBA,SAASA,EAAEA,CAACA;oBACZA,IAAIA,CAACA,IAAIA,CAACA,CAACA;oBACXA,cAAcA,EAAEA,CAACA;gBACrBA,CAACA;YACLA,CAACA;YAEDzD,SAASA,uBAAuBA,CAACA,IAAyBA;gBACtD0D,IAAIA,iBAAiBA,GAAGA,IAAIA,CAACA,UAAUA,CAACA,IAAIA,KAAKA,uBAAwBA,CAACA;gBAC1EA,mBAAmBA,CAACA,IAAIA,CAACA,CAACA;gBAC1BA,EAAEA,CAACA,CAACA,iBAAiBA,CAACA;oBAACA,KAAKA,CAACA,GAAGA,CAACA,CAACA;gBAClCA,IAAIA,CAACA,IAAIA,CAACA,UAAUA,CAACA,CAACA;gBACtBA,EAAEA,CAACA,CAACA,iBAAiBA,CAACA;oBAACA,KAAKA,CAACA,GAAGA,CAACA,CAACA;gBAClCA,KAAKA,CAACA,GAAGA,CAACA,CAACA;gBACXA,oBAAoBA,CAACA,IAAIA,CAACA,CAACA;YAC/BA,CAACA;YAED1D,SAASA,eAAeA,CAACA,IAAiBA;gBACtC2D,mBAAmBA,CAACA,IAAIA,CAACA,CAACA;gBAC1BA,IAAIA,MAAMA,GAAGA,SAASA,CAACA,kBAAoBA,EAAEA,IAAIA,CAACA,GAAGA,CAACA,CAACA;gBACvDA,KAAKA,CAACA,GAAGA,CAACA,CAACA;gBACXA,MAAMA,GAAGA,SAASA,CAACA,uBAAyBA,EAAEA,MAAMA,CAACA,CAACA;gBACtDA,IAAIA,CAACA,IAAIA,CAACA,UAAUA,CAACA,CAACA;gBACtBA,SAASA,CAACA,wBAA0BA,EAAEA,IAAIA,CAACA,UAAUA,CAACA,GAAGA,CAACA,CAACA;gBAC3DA,qBAAqBA,CAACA,IAAIA,CAACA,aAAaA,CAACA,CAACA;gBAC1CA,EAAEA,CAACA,CAACA,IAAIA,CAACA,aAAaA,CAACA,CAACA,CAACA;oBACrBA,SAASA,EAAEA,CAACA;oBACZA,SAASA,CAACA,oBAAsBA,EAAEA,IAAIA,CAACA,aAAaA,CAACA,GAAGA,CAACA,CAACA;oBAC1DA,EAAEA,CAACA,CAACA,IAAIA,CAACA,aAAaA,CAACA,IAAIA,KAAKA,qBAAsBA,CAACA,CAACA,CAACA;wBACrDA,KAAKA,CAACA,GAAGA,CAACA,CAACA;wBACXA,IAAIA,CAACA,IAAIA,CAACA,aAAaA,CAACA,CAACA;oBAC7BA,CAACA;oBACDA,IAAIA,CAACA,CAACA;wBACFA,qBAAqBA,CAACA,IAAIA,CAACA,aAAaA,CAACA,CAACA;oBAC9CA,CAACA;gBACLA,CAACA;gBACDA,oBAAoBA,CAACA,IAAIA,CAACA,CAACA;YAC/BA,CAACA;YAED3D,SAASA,eAAeA,CAACA,IAAiBA;gBACtC4D,KAAKA,CAACA,IAAIA,CAACA,CAACA;gBACZA,qBAAqBA,CAACA,IAAIA,CAACA,SAASA,CAACA,CAACA;gBACtCA,EAAEA,CAACA,CAACA,IAAIA,CAACA,SAASA,CAACA,IAAIA,KAAKA,eAAgBA,CAACA,CAACA,CAACA;oBAC3CA,KAAKA,CAACA,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;YAED5D,SAASA,kBAAkBA,CAACA,IAAoBA;gBAC5C6D,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;YAED7D,SAASA,gBAAgBA,CAACA,IAAkBA;gBACxC8D,IAAIA,MAAMA,GAAGA,SAASA,CAACA,mBAAqBA,EAAEA,IAAIA,CAACA,GAAGA,CAACA,CAACA;gBACxDA,KAAKA,CAACA,GAAGA,CAACA,CAACA;gBACXA,MAAMA,GAAGA,SAASA,CAACA,uBAAyBA,EAAEA,MAAMA,CAACA,CAACA;gBACtDA,EAAEA,CAACA,CAACA,IAAIA,CAACA,YAAYA,CAACA,CAACA,CAACA;oBACpBA,EAAEA,CAACA,CAACA,IAAIA,CAACA,YAAYA,CAACA,CAACA,CAACA,IAAIA,QAAKA,CAACA,IAAIA,CAACA,YAAYA,CAACA,CAACA,CAACA,CAACA,CAACA,CAACA,CAACA;wBACtDA,SAASA,CAACA,oBAAqBA,EAAEA,MAAMA,CAACA,CAACA;oBAC7CA,CAACA;oBACDA,IAAIA,CAACA,EAAEA,CAACA,CAACA,IAAIA,CAACA,YAAYA,CAACA,CAACA,CAACA,IAAIA,UAAOA,CAACA,IAAIA,CAACA,YAAYA,CAACA,CAACA,CAACA,CAACA,CAACA,CAACA,CAACA;wBAC7DA,SAASA,CAACA,qBAAuBA,EAAEA,MAAMA,CAACA,CAACA;oBAC/CA,CAACA;oBACDA,IAAIA,CAACA,CAACA;wBACFA,SAASA,CAACA,mBAAqBA,EAAEA,MAAMA,CAACA,CAACA;oBAC7CA,CAACA;oBACDA,KAAKA,CAACA,GAAGA,CAACA,CAACA;oBACXA,aAAaA,CAACA,IAAIA,CAACA,YAAYA,EAA2BA,KAAKA,CAACA,CAACA;gBACrEA,CAACA;gBACDA,EAAEA,CAACA,CAACA,IAAIA,CAACA,WAAWA,CAACA,CAACA,CAACA;oBACnBA,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;YAED9D,SAASA,kBAAkBA,CAACA,IAAoBA;gBAC5C+D,IAAIA,MAAMA,GAAGA,SAASA,CAACA,mBAAqBA,EAAEA,IAAIA,CAACA,GAAGA,CAACA,CAACA;gBACxDA,KAAKA,CAACA,GAAGA,CAACA,CAACA;gBACXA,MAAMA,GAAGA,SAASA,CAACA,uBAAyBA,EAAEA,MAAMA,CAACA,CAACA;gBACtDA,EAAEA,CAACA,CAACA,IAAIA,CAACA,YAAYA,CAACA,CAACA,CAACA;oBACpBA,EAAEA,CAACA,CAACA,IAAIA,CAACA,YAAYA,CAACA,MAAMA,IAAIA,CAACA,CAACA,CAACA,CAACA;wBAChCA,IAAIA,IAAIA,GAAGA,IAAIA,CAACA,YAAYA,CAACA,CAACA,CAACA,CAACA;wBAChCA,EAAEA,CAACA,CAACA,QAAKA,CAACA,IAAIA,CAACA,CAACA,CAACA,CAACA;4BACdA,SAASA,CAACA,oBAAqBA,EAAEA,MAAMA,CAACA,CAACA;wBAC7CA,CAACA;wBACDA,IAAIA,CAACA,CAACA;4BACFA,SAASA,CAACA,mBAAqBA,EAAEA,MAAMA,CAACA,CAACA;wBAC7CA,CAACA;wBACDA,KAAKA,CAACA,GAAGA,CAACA,CAACA;wBACXA,IAAIA,CAACA,IAAIA,CAACA,CAACA;oBACfA,CAACA;gBACLA,CAACA;gBACDA,IAAIA,CAACA,CAACA;oBACFA,IAAIA,CAACA,IAAIA,CAACA,QAAQA,CAACA,CAACA;gBACxBA,CAACA;gBACDA,KAAKA,CAACA,MAAMA,CAACA,CAACA;gBACdA,IAAIA,CAACA,IAAIA,CAACA,UAAUA,CAACA,CAACA;gBACtBA,SAASA,CAACA,wBAA0BA,EAAEA,IAAIA,CAACA,UAAUA,CAACA,GAAGA,CAACA,CAACA;gBAC3DA,q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AAcA,EAAEA,CAACA;oBACjBA,SAASA,CAACA,IAAIA,CAACA,UAAUA,CAACA,CAACA;oBAC3BA,cAAcA,EAAEA,CAACA;gBACrBA,CAACA;YACLA,CAACA;YAEDrE,SAASA,kBAAkBA,CAACA,IAAoBA;gBAC5CsE,KAAKA,CAACA,QAAQA,CAACA,CAACA;gBAChBA,IAAIA,CAACA,IAAIA,CAACA,UAAUA,CAACA,CAACA;gBACtBA,KAAKA,CAACA,GAAGA,CAACA,CAACA;YACfA,CAACA;YAEDtE,SAASA,gBAAgBA,CAACA,IAAkBA;gBACxCuE,KAAKA,CAACA,MAAMA,CAACA,CAACA;gBACdA,IAAIA,CAACA,IAAIA,CAACA,QAAQA,CAACA,CAACA;gBACpBA,IAAIA,CAACA,IAAIA,CAACA,UAAUA,CAACA,CAACA;gBACtBA,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;YAEDvE,SAASA,cAAcA,CAACA,IAAgBA;gBACpCwE,SAASA,EAAEA,CAACA;gBACZA,IAAIA,MAAMA,GAAGA,SAASA,CAACA,qBAAuBA,EAAEA,IAAIA,CAACA,GAAGA,CAACA,CAACA;gBAC1DA,KAAKA,CAACA,GAAGA,CAACA,CAACA;gBACXA,SAASA,CAACA,uBAAyBA,EAAEA,MAAMA,CAACA,CAACA;gBAC7CA,IAAIA,CAACA,IAAIA,CAACA,QAAQA,CAACA,CAACA;gBACpBA,SAASA,CAACA,wBAA0BA,EAAEA,IAAIA,CAACA,QAAQA,CAACA,GAAGA,CAACA,CAACA;gBACzDA,KAAKA,CAACA,GAAGA,CAACA,CAACA;gBACXA,SAASA,CAACA,IAAIA,CAACA,CAACA;YACpBA,CAACA;YAEDxE,SAASA,qBAAqBA,CAACA,IAAUA;gBACrCyE,SAASA,CAACA,wBAA0BA,EAAEA,IAAIA,CAACA,GAAGA,CAACA,CAACA;gBAChDA,KAAKA,CAACA,GAAGA,CAACA,CAACA;YACfA,CAACA;YAEDzE,SAASA,qBAAqBA,CAACA,IAAsBA;gBACjD0E,IAAIA,CAACA,IAAIA,CAACA,KAAKA,CAACA,CAACA;gBACjBA,KAAKA,CAACA,IAAIA,CAACA,CAACA;gBACZA,IAAIA,CAACA,IAAIA,CAACA,SAASA,CAACA,CAACA;YACzBA,CAACA;YAED1E,SAASA,mBAAmBA,CAACA,IAAUA;gBACnC2E,GAAGA,CAACA;oBACAA,IAAIA,GAAGA,IAAIA,CAACA,MAAMA,CAACA;gBACvBA,CAACA,QAAQA,IAAIA,IAAIA,IAAIA,CAACA,IAAIA,KAAKA,2BAA4BA,EAAEA;gBAC7DA,MAAMA,CAAoBA,IAAIA,CAACA;YACnCA,CAACA;YAED3E,SAASA,oBAAoBA,CAACA,IAAiBA;gBAC3C4E,SAASA,CAACA,IAAIA,CAACA,IAAIA,CAACA,CAACA;gBACrBA,EAAEA,CAACA,CAACA,IAAIA,CAACA,KAAKA,GAAGA,cAAgBA,CAACA,CAACA,CAACA;oBAChCA,IAAIA,SAASA,GAAGA,mBAAmBA,CAACA,IAAIA,CAACA,CAACA;oBAC1CA,KAAKA,CAACA,SAASA,GAAGA,QAAQA,CAACA,uBAAuBA,CAACA,SAASA,CAACA,GAAGA,SAASA,CAACA,CAACA;oBAC3EA,KAAKA,CAACA,GAAGA,CAACA,CAACA;gBACfA,CAACA;gBACDA,QAAQA,CAACA,IAAIA,CAACA,IAAIA,CAACA,CAACA;gBACpBA,OAAOA,CAACA,IAAIA,CAACA,IAAIA,CAACA,CAACA;YACvBA,CAACA;YAED5E,SAASA,uBAAuBA,CAACA,IAAyBA;gBACtD6E,mBAAmBA,CAACA,IAAIA,CAACA,CAACA;gBAC1BA,oBAAoBA,CAACA,IAAIA,CAACA,CAACA;gBAC3BA,YAAYA,CAACA,KAAKA,EAAEA,IAAIA,CAACA,WAAWA,CAACA,CAACA;gBACtCA,oBAAoBA,CAACA,IAAIA,CAACA,CAACA;YAC/BA,CAACA;YAED7E,SAASA,qBAAqBA,CAACA,IAAuBA;gBAClD8E,mBAAmBA,CAACA,IAAIA,CAACA,CAACA;gBAC1BA,EAAEA,CAACA,CAACA,CAACA,CAACA,IAAIA,CAACA,KAAKA,GAAGA,cAAgBA,CAACA,CAACA,CAACA,CAACA;oBACnCA,EAAEA,CAACA,CAACA,QAAKA,CAACA,IAAIA,CAACA,CAACA,CAACA,CAACA;wBACdA,KAAKA,CAACA,MAAMA,CAACA,CAACA;oBAClBA,CAACA;oBACDA,IAAIA,CAACA,EAAEA,CAACA,CAACA,UAAOA,CAACA,IAAIA,CAACA,CAACA,CAACA,CAACA;wBACrBA,KAAKA,CAACA,QAAQA,CAACA,CAACA;oBACpBA,CAACA;oBACDA,IAAIA,CAACA,CAACA;wBACFA,KAAKA,CAACA,MAAMA,CAACA,CAACA;oBAClBA,CAACA;gBACLA,CAACA;gBACDA,aAAaA,CAACA,IAAIA,CAACA,YAAYA,EAA2BA,KAAKA,CAACA,CAACA;gBACjEA,KAAKA,CAACA,GAAGA,CAACA,CAACA;gBACXA,oBAAoBA,CAACA,IAAIA,CAACA,CAACA;YAC/BA,CAACA;YAED9E,SAASA,aAAaA,CAACA,IAA0BA;gBAC7C+E,mBAAmBA,CAACA,IAAIA,CAACA,CAACA;gBAC1BA,IAAIA,CAACA,IAAIA,CAACA,IAAIA,CAACA,CAACA;gBAChBA,oBAAoBA,CAACA,IAAIA,CAACA,CAACA;YAC/BA,CAACA;YAED/E,SAASA,2BAA2BA,CAACA,IAA6BA;gBAC9DgF,UAAOA,CAACA,IAAIA,CAACA,UAAUA,EAAEA,UAAAA,KAAQA;oBAC7BA,EAAEA,CAACA,CAACA,KAAKA,CAACA,WAAWA,CAACA,CAACA,CAACA;wBACpBA,SAASA,EAAEA,CAACA;wBACZA,SAASA,CAACA,KAAKA,CAACA,CAACA;wBACjBA,KAAKA,CAACA,MAAMA,CAACA,CAACA;wBACdA,QAAQA,CAACA,KAAKA,CAACA,IAAIA,CAACA,CAACA;wBACrBA,KAAKA,CAACA,cAAcA,CAACA,CAACA;wBACtBA,OAAOA,CAACA,KAAKA,CAACA,CAACA;wBACfA,KAAKA,CAACA,KAAKA,CAACA,CAACA;wBACbA,SAASA,CAACA,KAAKA,CAACA,CAACA;wBACjBA,QAAQA,CAACA,KAAKA,CAACA,IAAIA,CAACA,CAACA;wBACrBA,KAAKA,CAACA,KAAKA,CAACA,CAACA;wBACbA,QAAQA,CAACA,KAAKA,CAACA,WAAWA,CAACA,CAACA;wBAC5BA,OAAOA,CAACA,KAAKA,CAACA,CAACA;wBACfA,KAAKA,CAACA,KAAKA,CAACA,CAACA;oBACjBA,CAACA;gBACLA,CAACA,CAACA,CAACA;YACPA,CAACA;YAEDhF,SAASA,iBAAiBA,CAACA,IAA6BA;gBACpDiF,EAAEA,CAACA,CAACA,oBAAiBA,CAACA,IAAIA,CAACA,CAACA,CAACA,CAACA;oBAC1BA,IAAIA,SAASA,GAAGA,IAAIA,CAACA,UAAUA,CAACA,MAAMA,GAAGA,CAACA,CAACA;oBAC3CA,IAAIA,SAASA,GAAGA,IAAIA,CAACA,UAAUA,CAACA,SAASA,CAACA,CAACA;oBAC3CA,SAASA,EAAEA,CAACA;oBACZA,mBAAmBA,CAACA,SAASA,CAACA,CAACA;oBAC/BA,SAASA,CAACA,SAASA,CAACA,CAACA;oBACrBA,KAAKA,CAACA,MAAMA,CAACA,CAACA;oBACdA,QAAQA,CAACA,SAASA,CAACA,IAAIA,CAACA,CAACA;oBACzBA,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,WAAWA,GAAGA,SAASA,GAAGA,GAAGA,CAACA,CAACA;oBACrCA,OAAOA,CAACA,SAASA,CAACA,CAACA;oBACnBA,KAAKA,CAACA,GAAGA,CAACA,CAACA;oBACXA,SAASA,CAACA,SAASA,CAACA,CAACA;oBACrBA,KAAKA,CAACA,wBAAwBA,CAACA,CAACA;oBAChCA,OAAOA,CAACA,SAASA,CAACA,CAACA;oBACnBA,KAAKA,CAACA,GAAGA,CAACA,CAACA;oBACXA,SAASA,CAACA,SAASA,CAACA,CAACA;oBACrBA,KAAKA,CAACA,MAAMA,CAACA,CAACA;oBACdA,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,QAAQA,CAACA,SAASA,CAACA,IAAIA,CAACA,CAACA;oBACzBA,KAAKA,CAACA,QAAQA,GAAGA,SAASA,GAAGA,oBAAoBA,CAACA,CAACA;oBACnDA,OAAOA,CAACA,SAASA,CAACA,CAACA;oBACnBA,cAAcA,EAAEA,CAACA;oBACjBA,SAASA,EAAEA,CAACA;oBACZA,KAAKA,CAACA,GAAGA,CAACA,CAACA;gBACfA,CAACA;YACLA,CAACA;YAEDjF,SAASA,YAAYA,CAACA,IAAyBA;gBAC3CkF,mBAAmBA,CAACA,IAAIA,CAACA,CAACA;gBAC1BA,KAAKA,CAACA,IAAIA,CAACA,IAAIA,KAAKA,qBAAsBA,GAAGA,MAAMA,GAAGA,MAAMA,CAACA,CAACA;gBAC9DA,IAAIA,CAACA,IAAIA,CAACA,IAAIA,CAACA,CAACA;gBAChBA,oBAAoBA,CAACA,IAAIA,CAACA,CAACA;gBAC3BA,oBAAoBA,CAACA,IAAIA,CAACA,CAACA;YAC/BA,CAACA;YAEDlF,SAASA,uBAAuBA,CAACA,IAA6BA;gBAC1DmF,EAAEA,CAACA,CAACA,CAACA,IAAIA,CAACA,IAAIA,CAACA,CAACA,CAACA;oBACbA,MAAMA,CAACA,+BAA+BA,CAACA,IAAIA,CAACA,CAACA;gBACjDA,CAACA;gBAEDA,EAAEA,CAACA,CAACA,IAAIA,CAACA,IAAIA,KAAKA,gBAAiBA,CAACA,CAACA,CAACA;oBAElCA,mBAAmBA,CAACA,IAAIA,CAACA,CAACA;gBAC9BA,CAACA;gBACDA,KAAKA,CAACA,WAAWA,CAACA,CAACA;gBAC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CA;oBACFA,EAAEA,CAACA,CAACA,IAAIA,CAACA,IAAIA,CAACA,IAAIA,KAAKA,uBAAwBA,CAACA,CAACA,CAACA;wBAC9CA,mBAAmBA,CAASA,IAAIA,CAACA,IAAKA,CAACA,UAAUA,EAAEA,UAAUA,CAACA,CAACA;oBACnEA,CAACA;oBACDA,IAAIA,CAACA,CAACA;wBACFA,SAASA,EAAEA,CAACA;wBACZA,mBAAmBA,CAACA,IAAIA,CAACA,IAAIA,CAACA,CAACA;wBAC/BA,KAAKA,CAACA,SAASA,CAACA,CAACA;wBACjBA,IAAIA,CAACA,IAAIA,CAACA,IAAIA,CAACA,CAACA;wBAChBA,KAAKA,CAACA,GAAGA,CAACA,CAACA;wBACXA,oBAAoBA,CAACA,IAAIA,CAACA,IAAIA,CAACA,CAACA;oBACpCA,CAACA;oBACDA,SAASA,EAAEA,CAACA;oBACZA,EAAEA,CAACA,CAACA,IAAIA,CAACA,IAAIA,CAACA,IAAIA,KAAKA,uBAAwBA,CAACA,CAACA,CAACA;wBAC9CA,6BAA6BA,CAASA,IAAIA,CAACA,IAAKA,CAACA,UAAUA,CAACA,GAAGA,CAACA,CAACA;wBACjEA,cAAcA,EAAEA,CAACA;wBACjBA,SAASA,CAACA,wBAA0BA,EAAUA,IAAIA,CAACA,IAAKA,CAACA,UAAUA,CAACA,GAAGA,CAACA,CAACA;oBAC7EA,CAACA;oBACDA,IAAIA,CAACA,CAACA;wBACFA,cAAcA,EAAEA,CAACA;wBACjBA,SAASA,CAACA,IAAIA,CAACA,IAAIA,CAACA,CAACA;wBACrBA,KAAKA,CAACA,GAAGA,CAACA,CAACA;wBACXA,OAAOA,CAACA,IAAIA,CAACA,IAAIA,CAACA,CAACA;oBACvBA,CAACA;gBACLA,CAACA;gBACDA,YAAYA,EAAEA,CAACA;gBACfA,EAAEA,CAACA,CAACA,IAAIA,CAACA,KAAKA,GAAGA,cAAgBA,CAACA,CAACA,CAACA;oBAChCA,SAASA,EAAEA,CAACA;oBACZA,SAASA,CAACA,IAAIA,CAACA,CAACA;oBAChBA,oBAAoBA,CAACA,IAAIA,CAACA,CAACA;oBAC3BA,KAAKA,CAACA,KAAKA,CAACA,CAACA;oBACbA,IAAIA,CAACA,IAAIA,CAACA,IAAIA,CAACA,CAACA;oBAChBA,OAAOA,CAACA,IAAIA,CAACA,CAACA;oBACdA,KAAKA,CAACA,GAAGA,CAACA,CAACA;gBACfA,CAACA;YACLA,CAACA;YAEDtF,SAASA,oBAAoBA,CAACA,IAA4BA;gBACtDuF,EAAEA,CAACA,CAACA,IAAIA,CAACA,IAAIA,CAACA,CAACA,CAACA;oBACZA,IAAIA,SAASA,GAAWA,IAAIA,CAACA,IAAKA,CAACA,UAAUA,CAACA,CAACA,CAACA,CAACA;oBACjDA,EAAEA,CAACA,CAACA,SAASA,IAAIA,SAASA,CAACA,IAAIA,KAAKA,6BAA8BA,CAACA,CAACA,CAACA;wBACjEA,IAAIA,IAAIA,GAAyBA,SAAUA,CAACA,UAAUA,CAACA;wBACvDA,EAAEA,CAACA,CAACA,IAAIA,IAAIA,IAAIA,CAACA,IAAIA,KAAKA,wBAAyBA,CAACA,CAACA,CAACA;4BAClDA,IAAIA,IAAIA,GAAoBA,IAAKA,CAACA,IAAIA,CAACA;4BACvCA,EAAEA,CAACA,CAACA,IAAIA,IAAIA,IAAIA,CAACA,IAAIA,KAAKA,qBAAuBA,CAACA,CAACA,CAACA;gCAChDA,MAAMA,CAAsBA,SAASA,CAACA;4BAC1CA,CAACA;wBACLA,CAACA;oBACLA,CAACA;gBACLA,CAACA;YACLA,CAACA;YAEDvF,SAASA,gCAAgCA,CAACA,IAA4BA;gBAClEwF,UAAOA,CAACA,IAAIA,CAACA,UAAUA,EAAEA,UAAAA,KAAQA;oBAC7BA,EAAEA,CAACA,CAACA,KAAKA,CAACA,KAAKA,GAAGA,+BAA+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,QAAQA,CAACA,KAAKA,CAACA,IAAIA,CAACA,CAACA;wBACrBA,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;YAGDxF,SAASA,gBAAgBA,CAACA,UAA2BA;gBACjDyF,EAAEA,CAACA,CAACA,UAAUA,CAACA,IAAIA,KAAKA,qBAAwBA,IAAIA,UAAUA,CAACA,IAAIA,KAAKA,sBAAyBA,CAACA,CAACA,CAACA;oBAChGA,KAAKA,CAACA,GAAGA,CAACA,CAACA;oBACXA,QAAQA,CAACA,UAAUA,CAACA,CAACA;oBACrBA,KAAKA,CAACA,GAAGA,CAACA,CAACA;gBACfA,CAACA;gBACDA,IAAIA,CAACA,CAACA;oBACFA,KAAKA,CAACA,GAAGA,CAACA,CAACA;oBACXA,QAAQA,CAACA,UAAUA,CAACA,CAACA;gBACzBA,CAACA;YACLA,CAACA;YAEDzF,SAASA,qBAAqBA,CAACA,IAAsBA,EAAEA,UAAqBA;gBACxE0F,UAAOA,CAACA,IAAIA,CAACA,OAAOA,EAAEA,UAAAA,MAASA;oBAC3BA,EAAEA,CAACA,CAACA,MAAMA,CAACA,IAAIA,KAAKA,kBAAmBA,IAAIA,CAACA,MAAMA,CAACA,KAAKA,GAAGA,gBAAgBA,CAACA,KAAKA,UAAUA,IAA0BA,MAAOA,CAACA,WAAWA,CAACA,CAACA,CAACA;wBACvIA,SAASA,EAAEA,CAACA;wBACZA,mBAAmBA,CAACA,MAAMA,CAACA,CAACA;wBAC5BA,SAASA,CAACA,MAAMA,CAACA,CAACA;wBAClBA,SAASA,CAAuBA,MAAOA,CAACA,IAAIA,CAACA,CAACA;wBAC9CA,EAAEA,CAACA,CAACA,UAAUA,CAACA,CAACA,CAACA;4BACbA,QAAQA,CAACA,IAAIA,CAACA,IAAIA,CAACA,CAACA;wBACxBA,CAACA;wBACDA,IAAIA,CAACA,CAACA;4BACFA,KAAKA,CAACA,MAAMA,CAACA,CAACA;wBAClBA,CAACA;wBACDA,gBAAgBA,CAAuBA,MAAOA,CAACA,IAAIA,CAACA,CAACA;wBACrDA,OAAOA,CAAuBA,MAAOA,CAACA,IAAIA,CAACA,CAACA;wBAC5CA,KAAKA,CAACA,KAAKA,CAACA,CAACA;wBACbA,IAAIA,CAAuBA,MAAOA,CAACA,WAAWA,CAACA,CAACA;wBAChDA,KAAKA,CAACA,GAAGA,CAACA,CAACA;wBACXA,OAAOA,CAACA,MAAMA,CAACA,CAACA;wBAChBA,oBAAoBA,CAACA,MAAMA,CAACA,CAACA;oBACjCA,CAACA;gBACLA,CAACA,CAACA,CAACA;YACPA,CAACA;YAED1F,SAASA,mBAAmBA,CAACA,IAAsBA;gBAC/C2F,UAAOA,CAACA,IAAIA,CAACA,OAAOA,EAAEA,UAAAA,MAASA;oBAC3BA,EAAEA,CAACA,CAACA,MAAMA,CAACA,IAAIA,KAAKA,gBAAiBA,CAACA,CAACA,CAACA;wBACpCA,EAAEA,CAACA,CAACA,CAAqBA,MAAOA,CAACA,IAAIA,CAACA,CAACA,CAACA;4BACpCA,MAAMA,CAACA,+BAA+BA,CAACA,MAAMA,CAACA,CAACA;wBACnDA,CAACA;wBAEDA,SAASA,EAAEA,CAACA;wBACZA,mBAAmBA,CAACA,MAAMA,CAACA,CAACA;wBAC5BA,SAASA,CAACA,MAAMA,CAACA,CAACA;wBAClBA,SAASA,CAAqBA,MAAOA,CAACA,IAAIA,CAACA,CAACA;wBAC5CA,QAAQA,CAACA,IAAIA,CAACA,IAAIA,CAACA,CAACA;wBACpBA,EAAEA,CAACA,CAACA,CAACA,CAACA,MAAMA,CAACA,KAAKA,GAAGA,gBAAgBA,CAACA,CAACA,CAACA,CAACA;4BACrCA,KAAKA,CAACA,YAAYA,CAACA,CAACA;wBACxBA,CAACA;wBACDA,gBAAgBA,CAAqBA,MAAOA,CAACA,IAAIA,CAACA,CAACA;wBACnDA,OAAOA,CAAqBA,MAAOA,CAACA,IAAIA,CAACA,CAACA;wBAC1CA,KAAKA,CAACA,KAAKA,CAACA,CAACA;wBACbA,SAASA,CAACA,MAAMA,CAACA,CAACA;wBAClBA,uBAAuBA,CAAoBA,MAAMA,CAACA,CAACA;wBACnDA,OAAOA,CAACA,MAAMA,CAACA,CAACA;wBAChBA,OAAOA,CAACA,MAAMA,CAACA,CAACA;wBAChBA,KAAKA,CAACA,GAAGA,CAACA,CAACA;wBACXA,oBAAoBA,CAACA,MAAMA,CAACA,CAACA;oBACjCA,CAACA;oBACDA,IAAIA,CAACA,EAAEA,CAACA,CAACA,MAAMA,CAACA,IAAIA,KAAKA,qBAAsBA,IAAIA,MAAMA,CAACA,IAAIA,KAAKA,qBAAsBA,CAACA,CAACA,CAACA;wBACxFA,IAAIA,SAASA,GAAGA,0BAA0BA,CAACA,IAAIA,EAAuBA,MAAMA,CAACA,CAACA;wBAC9EA,EAAEA,CAACA,CAACA,MAAMA,KAAKA,SAASA,CAACA,aAAaA,CAACA,CAACA,CAACA;4BACrCA,SAASA,EAAEA,CAACA;4BACZA,SAASA,CAACA,MAAMA,CAACA,CAACA;4BAClBA,KAAKA,CAACA,wBAAwBA,CAACA,CAACA;4BAChCA,SAASA,CAAuBA,MAAOA,CAACA,IAAIA,CAACA,CAACA;4BAC9CA,QAAQA,CAACA,IAAIA,CAACA,IAAIA,CAACA,CAACA;4BACpBA,EAAEA,CAACA,CAACA,CAACA,CAACA,MAAMA,CAACA,KAAKA,GAAGA,gBAAgBA,CAACA,CAACA,CAACA,CAACA;gCACrCA,KAAKA,CAACA,YAAYA,CAACA,CAACA;4BACxBA,CAACA;4BACDA,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,CAACA,CAACA;gCAC5CA,KAAKA,CAACA,GAAGA,CAACA,CAACA;4BACfA,CAACA;4BACDA,SAASA,EAAEA,CAACA;4BACZA,KAAKA,CAACA,mBAAmBA,CAACA,CAACA;4BAC3BA,SAASA,EAAEA,CAACA;4BACZA,KAAKA,CAACA,oBAAoBA,CAACA,CAACA;4BAC5BA,cAAcA,EAAEA,CAACA;4BACjBA,SAASA,EAAEA,CAACA;4BACZA,KAAKA,CAACA,KAAKA,CAACA,CAACA;4BACbA,OAAOA,CAACA,MAAMA,CAACA,CAACA;wBACpBA,CAACA;oBACLA,CAACA;gBACLA,CAACA,CAACA,CAACA;YACPA,CAACA;YAED3F,SAASA,oBAAoBA,CAACA,IAAsBA;gBAChD4F,mBAAmBA,CAACA,IAAIA,CAACA,CAACA;gBAC1BA,KAAKA,CAACA,MAAMA,CAACA,CAACA;gBACdA,IAAIA,CAACA,IAAIA,CAACA,IAAIA,CAACA,CAACA;gBAChBA,KAAKA,CAACA,gBAAgBA,CAACA,CAACA;gBACxBA,EAAEA,CAACA,CAACA,IAAIA,CAACA,QAAQA,CAACA,CAACA,CAACA;oBAChBA,KAAKA,CAACA,QAAQA,CAACA,CAACA;gBACpBA,CAACA;gBACDA,KAAKA,CAACA,KAAKA,CAACA,CAACA;gBACbA,cAAcA,EAAEA,CAACA;gBACjBA,cAAcA,CAACA,IAAIA,CAACA,CAACA;gBACrBA,EAAEA,CAACA,CAACA,IAAIA,CAACA,QAAQA,CAACA,CAACA,CAACA;oBAChBA,SAASA,EAAEA,CAACA;oBACZA,SAASA,CAACA,IAAIA,CAACA,QAAQA,CAACA,CAACA;oBACzBA,KAAKA,CAACA,YAAYA,CAACA,CAACA;oBACpBA,IAAIA,CAACA,IAAIA,CAACA,IAAIA,CAACA,CAACA;oBAChBA,KAAKA,CAACA,YAAYA,CAACA,CAACA;oBACpBA,OAAOA,CAACA,IAAIA,CAACA,QAAQA,CAACA,CAACA;gBAC3BA,CAACA;gBACDA,SAASA,EAAEA,CAACA;gBACZA,sBAAsBA,EAAEA,CAACA;gBACzBA,mBAAmBA,CAACA,IAAIA,CAACA,CAACA;gBAC1BA,qBAAqBA,CAACA,IAAIA,EAAEA,gBAAgBA,CAACA,CAACA;gBAC9CA,SAASA,EAAEA,CAACA;gBACZA,SAASA,wBAAwBA;oBAC7BC,KAAKA,CAACA,SAASA,CAACA,CAACA;oBACjBA,QAAQA,CAACA,IAAIA,CAACA,IAAIA,CAACA,CAACA;gBACxBA,CAACA;gBACDD,SAASA,CAACA,wBAA0BA,EAAEA,IAAIA,CAACA,OAAOA,CAACA,GAAGA,EAAEA,wBAAwBA,CAACA,CAACA;gBAClFA,KAAKA,CAACA,GAAGA,CAACA,CAACA;gBACXA,cAAcA,EAAEA,CAACA;gBACjBA,SAASA,EAAEA,CAACA;gBACZA,SAASA,CAACA,wBAA0BA,EAAEA,IAAIA,CAACA,OAAOA,CAACA,GAAGA,CAACA,CAACA;gBACxDA,YAAYA,EAAEA,CAACA;gBACfA,SAASA,CAACA,IAAIA,CAACA,CAACA;gBAChBA,KAAKA,CAACA,IAAIA,CAACA,CAACA;gBACZA,EAAEA,CAACA,CAACA,IAAIA,CAACA,QAAQA,CAACA,CAACA,CAACA;oBAChBA,IAAIA,CAACA,IAAIA,CAACA,QAAQA,CAACA,QAAQA,CAACA,CAACA;gBACjCA,CAACA;gBACDA,KAAKA,CAACA,IAAIA,CAACA,CAACA;gBACZA,OAAOA,CAACA,IAAIA,CAACA,CAACA;gBACdA,EAAEA,CAACA,CAACA,IAAIA,CAACA,KAAKA,GAAGA,cAAgBA,CAACA,CAACA,CAACA;oBAChCA,SAASA,EAAEA,CAACA;oBACZA,SAASA,CAACA,IAAIA,CAACA,CAACA;oBAChBA,oBAAoBA,CAACA,IAAIA,CAACA,CAACA;oBAC3BA,KAAKA,CAACA,KAAKA,CAACA,CAACA;oBACbA,IAAIA,CAACA,IAAIA,CAACA,IAAIA,CAACA,CAACA;oBAChBA,OAAOA,CAACA,IAAIA,CAACA,CAACA;oBACdA,KAAKA,CAACA,GAAGA,CAACA,CAACA;gBACfA,CAACA;gBACDA,oBAAoBA,CAACA,IAAIA,CAACA,CAACA;gBAE3BA,SAASA,sBAAsBA;oBAE3BE,UAAOA,CAACA,IAAIA,CAACA,OAAOA,EAAEA,UAAAA,MAASA;wBAC3BA,EAAEA,CAACA,CAACA,MAAMA,CAACA,IAAIA,KAAKA,qBAAsBA,IAAIA,CAA0BA,MAAOA,CAACA,IAAIA,CAACA,CAACA,CAACA;4BACnFA,+BAA+BA,CAACA,MAAMA,CAACA,CAACA;wBAC5CA,CAACA;oBACLA,CAACA,CAACA,CAACA;oBAEHA,IAAIA,IAAIA,GAAGA,2BAA2BA,CAACA,IAAIA,CAACA,CAACA;oBAC7CA,EAAEA,CAACA,CAACA,IAAIA,CAACA,CAACA,CAACA;wBACPA,mBAAmBA,CAACA,IAAIA,CAACA,CAACA;oBAC9BA,CAACA;oBACDA,SAASA,CAAOA,IAAIA,IAAIA,IAAIA,CAACA,CAACA;oBAC9BA,KAAKA,CAACA,WAAWA,CAACA,CAACA;oBACnBA,IAAIA,CAACA,IAAIA,CAACA,IAAIA,CAACA,CAACA;oBAChBA,uBAAuBA,CAACA,IAAIA,CAACA,CAACA;oBAC9BA,KAAKA,CAACA,IAAIA,CAACA,CAACA;oBACZA,cAAcA,CAACA,IAAIA,EAAEA,aAAaA,CAACA,CAACA;oBACpCA,cAAcA,EAAEA,CAACA;oBACjBA,EAAEA,CAACA,CAACA,IAAIA,CAACA,CAACA,CAACA;wBACPA,oBAAoBA,CAASA,IAAIA,CAACA,IAAKA,CAACA,UAAUA,CAACA,CAACA;oBACxDA,CAACA;oBACDA,iCAAiCA,CAACA,IAAIA,CAACA,CAACA;oBACxCA,EAAEA,CAACA,CAACA,IAAIA,CAACA,CAACA,CAACA;wBACPA,2BAA2BA,CAACA,IAAIA,CAACA,CAACA;wBAClCA,iBAAiBA,CAACA,IAAIA,CAACA,CAACA;wBACxBA,EAAEA,CAACA,CAACA,IAAIA,CAACA,QAAQA,CAACA,CAACA,CAACA;4BAChBA,IAAIA,SAASA,GAAGA,oBAAoBA,CAACA,IAAIA,CAACA,CAACA;4BAC3CA,EAAEA,CAACA,CAACA,SAASA,CAACA,CAACA,CAACA;gCACZA,SAASA,EAAEA,CAACA;gCACZA,IAAIA,CAACA,SAASA,CAACA,CAACA;4BACpBA,CAACA;wBACLA,CAACA;wBACDA,gCAAgCA,CAACA,IAAIA,CAACA,CAACA;oBAC3CA,CAACA;oBACDA,IAAIA,CAACA,CAACA;wBACFA,EAAEA,CAACA,CAACA,IAAIA,CAACA,QAAQA,CAACA,CAACA,CAACA;4BAChBA,SAASA,EAAEA,CAACA;4BACZA,SAASA,CAACA,IAAIA,CAACA,QAAQA,CAACA,CAACA;4BACzBA,KAAKA,CAACA,gCAAgCA,CAACA,CAACA;4BACxCA,OAAOA,CAACA,IAAIA,CAACA,QAAQA,CAACA,CAACA;wBAC3BA,CAACA;oBACLA,CAACA;oBACDA,qBAAqBA,CAACA,IAAIA,EAAeA,CAACA,CAACA,CAACA;oBAC5CA,EAAEA,CAACA,CAACA,IAAIA,CAACA,CAACA,CAACA;wBACPA,IAAIA,UAAUA,GAAmBA,IAAIA,CAACA,IAAKA,CAACA,UAAUA,CAACA;wBACvDA,EAAEA,CAACA,CAACA,SAASA,CAACA;4BAACA,UAAUA,GAAGA,UAAUA,CAACA,KAAKA,CAACA,CAACA,CAACA,CAACA;wBAChDA,SAASA,CAACA,UAAUA,CAACA,CAACA;oBAC1BA,CAACA;oBACDA,SAASA,EAAEA,CAACA;oBACZA,EAAEA,CAACA,CAACA,IAAIA,CAACA,CAACA,CAACA;wBACPA,6BAA6BA,CAASA,IAAIA,CAACA,IAAKA,CAACA,UAAUA,CAACA,GAAGA,CAACA,CAACA;oBACrEA,CAACA;oBACDA,cAAcA,EAAEA,CAACA;oBACjBA,SAASA,CAACA,wBAA0BA,EAAEA,IAAIA,GAAWA,IAAIA,CAACA,IAAKA,CAACA,UAAUA,CAACA,GAAGA,GAAGA,IAAIA,CAACA,OAAOA,CAACA,GAAGA,CAACA,CAACA;oBACnGA,YAAYA,EAAEA,CAACA;oBACfA,OAAOA,CAAOA,IAAIA,IAAIA,IAAIA,CAACA,CAACA;oBAC5BA,EAAEA,CAACA,CAACA,IAAIA,CAACA,CAACA,CAACA;wBACPA,oBAAoBA,CAACA,IAAIA,CAACA,CAACA;oBAC/BA,CAACA;gBACLA,CAACA;YACLF,CAACA;YAED5F,SAASA,wBAAwBA,CAACA,IAA0BA;gBACxD+F,+BAA+BA,CAACA,IAAIA,CAACA,CAACA;YAC1CA,CAACA;YAED/F,SAASA,mBAAmBA,CAACA,IAAqBA;gBAE9CgG,IAAIA,WAAWA,GAAGA,UAAOA,CAACA,IAAIA,CAACA,CAACA;gBAChCA,EAAEA,CAACA,CAACA,WAAWA,IAAIA,CAACA,eAAeA,CAACA,kBAAkBA,CAACA,CAACA,CAACA;oBACrDA,MAAMA,CAACA;gBACXA,CAACA;gBACDA,mBAAmBA,CAACA,IAAIA,CAACA,CAACA;gBAC1BA,EAAEA,CAACA,CAACA,CAACA,CAACA,IAAIA,CAACA,KAAKA,GAAGA,cAAgBA,CAACA,CAACA,CAACA,CAACA;oBACnCA,SAASA,CAACA,IAAIA,CAACA,CAACA;oBAChBA,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,QAAQA,CAACA,uBAAuBA,CAACA,IAAIA,CAACA,CAACA,CAACA;gBAC9CA,OAAOA,CAACA,IAAIA,CAACA,IAAIA,CAACA,CAACA;gBACnBA,KAAKA,CAACA,KAAKA,CAACA,CAACA;gBACbA,cAAcA,EAAEA,CAACA;gBACjBA,cAAcA,CAACA,IAAIA,CAACA,CAACA;gBACrBA,0BAA0BA,CAACA,WAAWA,CAACA,CAACA;gBACxCA,cAAcA,EAAEA,CAACA;gBACjBA,SAASA,EAAEA,CAACA;gBACZA,SAASA,CAACA,wBAA0BA,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,IAAIA,CAACA,KAAKA,GAAGA,cAAgBA,CAACA,CAACA,CAACA;oBAChCA,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,oBAAoBA,CAACA,IAAIA,CAACA,CAACA;gBAE3BA,SAASA,0BAA0BA,CAACA,WAAoBA;oBACpDC,UAAOA,CAACA,IAAIA,CAACA,OAAOA,EAAEA,UAAAA,MAASA;wBAC3BA,SAASA,EAAEA,CAACA;wBACZA,mBAAmBA,CAACA,MAAMA,CAACA,CAACA;wBAC5BA,SAASA,CAACA,MAAMA,CAACA,CAACA;wBAClBA,KAAKA,CAACA,QAAQA,CAACA,uBAAuBA,CAACA,IAAIA,CAACA,CAACA,CAACA;wBAC9CA,KAAKA,CAACA,GAAGA,CAACA,CAACA;wBACXA,KAAKA,CAACA,QAAQA,CAACA,uBAAuBA,CAACA,IAAIA,CAACA,CAACA,CAACA;wBAC9CA,KAAKA,CAACA,GAAGA,CAACA,CAACA;wBACXA,6BAA6BA,CAACA,MAAMA,CAACA,IAAIA,CAACA,CAACA;wBAC3CA,KAAKA,CAACA,MAAMA,CAACA,CAACA;wBACdA,EAAEA,CAACA,CAACA,MAAMA,CAACA,WAAWA,IAAIA,CAACA,WAAWA,CAACA,CAACA,CAACA;4BACrCA,IAAIA,CAACA,MAAMA,CAACA,WAAWA,CAACA,CAACA;wBAC7BA,CAACA;wBACDA,IAAIA,CAACA,CAACA;4BACFA,KAAKA,CAACA,QAAQA,CAACA,kBAAkBA,CAACA,MAAMA,CAACA,CAACA,QAAQA,EAAEA,CAACA,CAACA;wBAC1DA,CAACA;wBACDA,KAAKA,CAACA,MAAMA,CAACA,CAACA;wBACdA,6BAA6BA,CAACA,MAAMA,CAACA,IAAIA,CAACA,CAACA;wBAC3CA,OAAOA,CAACA,MAAMA,CAACA,CAACA;wBAChBA,KAAKA,CAACA,GAAGA,CAACA,CAACA;wBACXA,oBAAoBA,CAACA,MAAMA,CAACA,CAACA;oBACjCA,CAACA,CAACA,CAACA;gBACPA,CAACA;YACLD,CAACA;YAEDhG,SAASA,6CAA6CA,CAACA,iBAAoCA;gBACvFkG,EAAEA,CAACA,CAACA,iBAAiBA,CAACA,IAAIA,CAACA,IAAIA,KAAKA,2BAA4BA,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;YAEDlG,SAASA,qBAAqBA,CAACA,IAAuBA;gBAClDmG,IAAIA,UAAUA,GAAGA,yBAAsBA,CAACA,IAAIA,CAACA,KAAKA,oBAAgCA,IAC9EA,CAACA,yBAAsBA,CAACA,IAAIA,CAACA,KAAKA,qBAAiCA,IAAIA,eAAeA,CAACA,kBAAkBA,CAACA,CAACA;gBAE/GA,EAAEA,CAACA,CAACA,CAACA,UAAUA,CAACA,CAACA,CAACA;oBACdA,MAAMA,CAACA,+BAA+BA,CAACA,IAAIA,CAACA,CAACA;gBACjDA,CAACA;gBACDA,mBAAmBA,CAACA,IAAIA,CAACA,CAACA;gBAC1BA,SAASA,CAACA,IAAIA,CAACA,CAACA;gBAChBA,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,QAAQA,CAACA,uBAAuBA,CAACA,IAAIA,CAACA,CAACA,CAACA;gBAC9CA,OAAOA,CAACA,IAAIA,CAACA,IAAIA,CAACA,CAACA;gBACnBA,KAAKA,CAACA,IAAIA,CAACA,CAACA;gBACZA,EAAEA,CAACA,CAACA,IAAIA,CAACA,IAAIA,CAACA,IAAIA,KAAKA,qBAAsBA,CAACA,CAACA,CAACA;oBAC5CA,IAAIA,CAACA,IAAIA,CAACA,IAAIA,CAACA,CAACA;gBACpBA,CAACA;gBACDA,IAAIA,CAACA,CAACA;oBACFA,KAAKA,CAACA,GAAGA,CAACA,CAACA;oBACXA,cAAcA,EAAEA,CAACA;oBACjBA,cAAcA,CAACA,IAAIA,CAACA,CAACA;oBACrBA,iCAAiCA,CAACA,IAAIA,CAACA,CAACA;oBACxCA,SAASA,EAAEA,CAACA;oBACZA,IAAIA,CAACA,IAAIA,CAACA,IAAIA,CAACA,CAACA;oBAChBA,cAAcA,EAAEA,CAACA;oBACjBA,SAASA,EAAEA,CAACA;oBACZA,IAAIA,WAAWA,GAAUA,6CAA6CA,CAACA,IAAIA,CAACA,CAACA,IAAIA,CAACA;oBAClFA,SAASA,CAACA,wBAA0BA,EAAEA,WAAWA,CAACA,UAAUA,CAACA,GAAGA,CAACA,CAACA;oBAClEA,YAAYA,EAAEA,CAACA;gBACnBA,CAACA;gBACDA,KAAKA,CAACA,IAAIA,CAACA,CAACA;gBACZA,EAAEA,CAACA,CAACA,IAAIA,CAACA,KAAKA,GAAGA,cAAgBA,CAACA,CAACA,CAACA;oBAChCA,IAAIA,CAACA,IAAIA,CAACA,IAAIA,CAACA,CAACA;oBAChBA,KAAKA,CAACA,KAAKA,CAACA,CAACA;gBACjBA,CAACA;gBACDA,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,oBAAoBA,CAACA,IAAIA,CAACA,CAACA;YAC/BA,CAACA;YAEDnG,SAASA,qBAAqBA,CAACA,IAAuBA;gBAClDoG,IAAIA,qBAAqBA,GAAGA,QAAQA,CAACA,6BAA6BA,CAACA,IAAIA,CAACA,CAACA;gBAEzEA,EAAEA,CAACA,CAACA,CAACA,qBAAqBA,CAACA,CAACA,CAACA;oBAIzBA,qBAAqBA,GAAGA,CAACA,mBAAgBA,CAACA,iBAAiBA,CAACA,IAAIA,QAAQA,CAACA,mCAAmCA,CAACA,IAAIA,CAACA,CAACA;gBACvHA,CAACA;gBAEDA,EAAEA,CAACA,CAACA,qBAAqBA,CAACA,CAACA,CAACA;oBACxBA,EAAEA,CAACA,CAACA,IAAIA,CAACA,kBAAkBA,IAAIA,IAAIA,CAACA,MAAMA,CAACA,IAAIA,KAAKA,oBAAqBA,IAAIA,eAAeA,CAACA,MAAMA,KAAKA,WAAcA,CAACA,CAACA,CAACA;wBACrHA,EAAEA,CAACA,CAACA,IAAIA,CAACA,KAAKA,GAAGA,cAAgBA,CAACA,CAACA,CAACA;4BAChCA,SAASA,EAAEA,CAACA;4BACZA,mBAAmBA,CAACA,IAAIA,CAACA,CAACA;4BAC1BA,SAASA,CAACA,IAAIA,CAACA,CAACA;4BAChBA,oBAAoBA,CAACA,IAAIA,CAACA,CAACA;4BAC3BA,KAAKA,CAACA,KAAKA,CAACA,CAACA;4BACbA,IAAIA,CAACA,IAAIA,CAACA,IAAIA,CAACA,CAACA;4BAChBA,KAAKA,CAACA,GAAGA,CAACA,CAACA;4BACXA,OAAOA,CAACA,IAAIA,CAACA,CAACA;4BACdA,oBAAoBA,CAACA,IAAIA,CAACA,CAACA;wBAC/BA,CAACA;oBACLA,CAACA;oBACDA,IAAIA,CAACA,CAACA;wBACFA,SAASA,EAAEA,CAACA;wBACZA,mBAAmBA,CAACA,IAAIA,CAACA,CAACA;wBAC1BA,SAASA,CAACA,IAAIA,CAACA,CAACA;wBAChBA,EAAEA,CAACA,CAACA,CAACA,CAACA,IAAIA,CAACA,KAAKA,GAAGA,cAAgBA,CAACA,CAACA;4BAACA,KAAKA,CAACA,MAAMA,CAACA,CAACA;wBACpDA,oBAAoBA,CAACA,IAAIA,CAACA,CAACA;wBAC3BA,KAAKA,CAACA,KAAKA,CAACA,CAACA;wBACbA,EAAEA,CAACA,CAACA,IAAIA,CAACA,UAAUA,CAACA,CAAC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A,UAAUA,CAACA,CAACA,CAACA;oBACbA,SAASA,EAAEA,CAACA;oBACZA,IAAIA,iBAAiBA,GAAGA,wBAAwBA,CAACA,IAAIA,CAACA,CAACA;oBACvDA,SAASA,CAACA,iBAAiBA,CAACA,CAACA;oBAC7BA,KAAKA,CAACA,SAASA,CAACA,CAACA;oBACjBA,SAASA,CAACA,iBAAiBA,CAACA,UAAUA,CAACA,CAACA;oBACxCA,KAAKA,CAACA,UAAUA,CAACA,CAACA;oBAClBA,OAAOA,CAACA,iBAAiBA,CAACA,UAAUA,CAACA,CAACA;oBACtCA,KAAKA,CAACA,GAAGA,CAACA,CAACA;oBACXA,OAAOA,CAACA,iBAAiBA,CAACA,CAACA;gBAC/BA,CAACA;gBACDA,cAAcA,EAAEA,CAACA;gBACjBA,SAASA,EAAEA,CAACA;gBACZA,KAAKA,CAACA,KAAKA,CAACA,CAACA;YACjBA,CAACA;YAEDvG,SAASA,kBAAkBA,CAACA,IAAgBA,EAAEA,UAAkBA;gBAC5DwG,iCAAiCA,CAACA,IAAIA,CAACA,CAACA;gBACxCA,mBAAmBA,CAACA,IAAIA,CAACA,UAAUA,EAAEA,UAAUA,CAACA,CAACA;gBACjDA,IAAIA,UAAUA,GAAGA,QAAQA,CAACA,uBAAuBA,CAACA,IAAIA,CAACA,CAACA;gBACxDA,EAAEA,CAACA,CAACA,UAAUA,CAACA,CAACA,CAACA;oBACbA,SAASA,EAAEA,CAACA;oBACZA,IAAIA,iBAAiBA,GAAGA,wBAAwBA,CAACA,IAAIA,CAACA,CAACA;oBACvDA,SAASA,CAACA,iBAAiBA,CAACA,CAACA;oBAC7BA,KAAKA,CAACA,mBAAmBA,CAACA,CAACA;oBAC3BA,SAASA,CAACA,iBAAiBA,CAACA,UAAUA,CAACA,CAACA;oBACxCA,KAAKA,CAACA,UAAUA,CAACA,CAACA;oBAClBA,OAAOA,CAACA,iBAAiBA,CAACA,UAAUA,CAACA,CAACA;oBACtCA,KAAKA,CAACA,GAAGA,CAACA,CAACA;oBACXA,OAAOA,CAACA,iBAAiBA,CAACA,CAACA;gBAC/BA,CAACA;YACLA,CAACA;YAEDxG,SAASA,sBAAsBA,CAACA,UAAuBA,EAAEA,gBAAyBA;gBAC9EyG,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,UAAUA,CAACA,MAAMA,EAAEA,EAAEA,CAACA,EAAEA,CAACA;oBACzCA,EAAEA,CAACA,CAACA,sBAAmBA,CAACA,UAAUA,CAACA,CAACA,CAACA,CAACA,CAACA,CAACA,CAACA;wBACrCA,EAAEA,CAACA,CAACA,gBAAgBA,IAAIA,CAACA,GAAGA,CAACA,CAACA,CAACA,CAACA;4BAC5BA,SAASA,EAAEA,CAACA;wBAChBA,CAACA;wBACDA,IAAIA,CAACA,UAAUA,CAACA,CAACA,CAACA,CAACA,CAACA;oBACxBA,CAACA;oBACDA,IAAIA,CAACA,CAACA;wBAEFA,MAAMA,CAACA,CAACA,CAACA;oBACbA,CAACA;gBACLA,CAACA;gBACDA,MAAMA,CAACA,UAAUA,CAACA,MAAMA,CAACA;YAC7BA,CAACA;YAEDzG,SAASA,cAAcA,CAACA,IAAgBA;gBACpC0G,iBAAiBA,GAAGA,IAAIA,CAACA;gBAEzBA,SAASA,EAAEA,CAACA;gBACZA,oBAAoBA,CAACA,IAAIA,CAACA,CAACA;gBAE3BA,IAAIA,UAAUA,GAAGA,sBAAsBA,CAACA,IAAIA,CAACA,UAAUA,EAAuBA,KAAKA,CAACA,CAACA;gBACrFA,EAAEA,CAACA,CAACA,CAACA,cAAcA,IAAIA,QAAQA,CAACA,iBAAiBA,CAACA,IAAIA,CAACA,GAAGA,mBAA0BA,CAACA,CAACA,CAACA;oBACnFA,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,mBAAgBA,CAACA,IAAIA,CAACA,CAACA,CAACA,CAACA;oBACzBA,EAAEA,CAACA,CAACA,eAAeA,CAACA,MAAMA,KAAKA,WAAcA,CAACA,CAACA,CAACA;wBAC5CA,aAAaA,CAACA,IAAIA,EAAEA,UAAUA,CAACA,CAACA;oBACpCA,CAACA;oBACDA,IAAIA,CAACA,CAACA;wBACFA,kBAAkBA,CAACA,IAAIA,EAAEA,UAAUA,CAACA,CAACA;oBACzCA,CAACA;gBACLA,CAACA;gBACDA,IAAIA,CAACA,CAACA;oBACFA,iCAAiCA,CAACA,IAAIA,CAACA,CAACA;oBACxCA,mBAAmBA,CAACA,IAAIA,CAACA,UAAUA,EAAEA,UAAUA,CAACA,CAACA;gBACrDA,CAACA;YACLA,CAACA;YAED1G,SAASA,QAAQA,CAACA,IAAUA;gBACxB2G,EAAEA,CAACA,CAACA,CAACA,IAAIA,CAACA,CAACA,CAACA;oBACRA,MAAMA,CAACA;gBACXA,CAACA;gBAEDA,EAAEA,CAACA,CAACA,IAAIA,CAACA,KAAKA,GAAGA,eAAiBA,CAACA,CAACA,CAACA;oBACjCA,MAAMA,CAACA,+BAA+BA,CAACA,IAAIA,CAACA,CAACA;gBACjDA,CAACA;gBAEDA,MAAMA,CAACA,CAACA,IAAIA,CAACA,IAAIA,CAACA,CAACA,CAACA;oBAChBA,KAAKA,mBAAqBA;wBACtBA,MAAMA,CAACA,cAAcA,CAAaA,IAAIA,CAACA,CAACA;oBAC5CA,KAAKA,mBAAoBA;wBACrBA,MAAMA,CAACA,aAAaA,CAAuBA,IAAIA,CAACA,CAACA;oBACrDA,KAAKA,qBAAsBA,CAACA;oBAC5BA,KAAKA,qBAAsBA;wBACvBA,MAAMA,CAACA,Y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/BA,IAAIA,CAACA,GAAGA,eAAeA,CAACA,CAACA,CAACA,CAACA;wBAC3BA,EAAEA,CAACA,CAACA,CAACA,CAACA,KAAKA,GAAGA,CAACA,iBAAoBA,GAAGA,iBAAkBA,CAACA,IAAIA,CAACA,yBAAyBA,CAACA,CAACA,CAACA,CAACA,MAAMA,CAACA,CAACA,CAACA;4BAChGA,IAAIA,UAAUA,GAAGA,mBAAmBA,CAACA,CAACA,EAAEA,YAAkBA,CAACA,CAACA;4BAC5DA,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,UAAUA,CAACA,MAAMA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;gCACzCA,kBAAkBA,CAACA,CAACA,EAAEA,MAAMA,CAACA,CAACA;gCAC9BA,EAAEA,CAACA,CAACA,kBAAkBA,CAACA,CAACA,CAACA,CAACA,CAACA,CAACA;oCACxBA,gBAAgBA,CAACA,MAAMA,EAAEA,sBAAwBA,CAACA,CAACA;gCACvDA,CAACA;gCACDA,qBAAqBA,CAACA,UAAUA,CAACA,CAACA,CAACA,EAAEA,MAAMA,EAAEA,oBAAoBA,EAAEA,iBAAiBA,EAAEA,SAASA,CAACA,CAACA;gCACjGA,gBAAgBA,CAACA,MAAMA,EAAEA,uBAAyBA,CAACA,CAACA;gCACpDA,MAAMA,CAACA,SAASA,EAAEA,CAACA;4BACvBA,CAACA;wBACLA,CAACA;wBACDA,IAAIA,CAACA,CAACA;4BACFA,kBAAkBA,CAACA,CAACA,EAAEA,MAAMA,CAACA,CAACA;4BAC9BA,EAAEA,CAACA,CAACA,kBAAkBA,CAACA,CAACA,CAACA,CAACA,CAACA,CAACA;gCACxBA,gBAAgBA,CAACA,MAAMA,EAAEA,sBAAwBA,CAACA,CAACA;4BACvDA,CAACA;4BACDA,gBAAgBA,CAACA,MAAMA,EAAEA,mBAAqBA,CAACA,CAACA;4BAChDA,UAAUA,CAACA,MAAMA,CAACA,CAACA;4BACnBA,SAASA,CAACA,CAACA,EAAEA,YAAoBA,CAACA,CAACA;4BACnCA,gBAAgBA,CAACA,MAAMA,E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AIA,CAACA,CAACA,CAACA;gBAC7EA,CAACA;YACLA,CAACA;YACDA,MAAMA,CAACA,MAAMA,CAACA;QAClBA,CAACA;QAEDjJ,SAASA,wBAAwBA,CAACA,SAAoBA;YAClDkJ,EAAEA,CAACA,CAACA,CAACA,SAASA,CAACA,kBAAkBA,CAACA,CAACA,CAACA;gBAChCA,SAASA,CAACA,kBAAkBA,GAAGA,aAAaA,CAACA;gBAC7CA,EAAEA,CAACA,CAACA,SAASA,CAACA,MAAMA,CAACA,CAACA,CAACA;oBACnBA,IAAIA,IAAIA,GAAGA,eAAeA,CAACA,wBAAwBA,CAACA,SAASA,CAACA,MAAMA,CAACA,EAAEA,SAASA,CAACA,MAAMA,CAACA,CAACA;gBAC7FA,CAACA;gBACDA,IAAIA,CAACA,EAAEA,CAACA,CAACA,SAASA,CAACA,eAAeA,CAACA,CAACA,CAACA;oBACjCA,IAAIA,IAAIA,GAAGA,YAAYA,CAACA,MAAGA,CAACA,SAASA,CAACA,eAAeA,EAAEA,wBAAwBA,CAACA,CAACA,CAACA;gBACtFA,CAACA;gBACDA,IAAIA,CAACA,CAACA;oBACFA,IAAIA,IAAIA,GAAGA,qBAAqBA,CAA0BA,SAASA,CAACA,WAAWA,CAACA,CAACA;gBACrFA,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;QAEDlJ,SAASA,sBAAsBA,CAACA,SAAoBA;YAChDmJ,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,oBAAmBA,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;QAEDnJ,SAASA,yBAAyBA,CAACA,SAAoBA,EAAEA,aAAqBA;YAC1EoJ,MAAMA,CAACA,oBAAoBA,CAACA,SAASA,EAAEA,gBAAgBA,CAACA,SAASA,CAACA,cAAcA,EAAEA,aAAaA,CAACA,EAAEA,IAAIA,CAACA,CAACA;QAC5GA,CAACA;QAEDpJ,SAASA,kBAAkBA,CAACA,SAAoBA;YAC5CqJ,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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AKA,CAACA,KAAKA,CAACA,CAACA;YAC5DA,CAACA;YACDA,IAAIA,CAACA,CAACA;gBACFA,IAAIA,CAACA,GAAGA,CAACA,CAACA;gBACVA,IAAIA,EAAEA,GAAGA,IAAIA,CAACA,EAAEA,CAACA;gBACjBA,OAAOA,CAACA,GAAGA,SAASA,CAACA,MAAMA,IAAIA,SAASA,CAACA,CAACA,CAACA,CAACA,EAAEA,GAAGA,EAAEA,EAAEA,CAACA;oBAClDA,CAACA,EAAEA,CAACA;gBACRA,CAACA;gBACDA,EAAEA,CAACA,CAACA,CAACA,KAAKA,SAASA,CAACA,MAAMA,IAAIA,SAASA,CAACA,CAACA,CAACA,CAACA,EAAEA,KAAKA,EAAEA,CAACA,CAACA,CAACA;oBACnDA,SAASA,CAACA,MAAMA,CAACA,CAACA,EAAEA,CAACA,EAAEA,IAAIA,CAACA,CAACA;gBACjCA,CAACA;YACLA,CAACA;QACLA,CAACA;QAED1K,SAASA,mBAAmBA,CAACA,WAAmBA,EAAEA,KAAaA;YAC3D2K,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,kBAAkBA,CAACA,WAAWA,EAAEA,KAAKA,CAACA,CAACA,CAACA,CAACA,CAACA;YAC9CA,CAACA;QACLA,CAACA;QAED3K,SAASA,cAAcA,CAACA,SAAeA,EAAEA,KAAaA;YAClD4K,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,SAASA,KAAKA,KAAKA,CAACA,CAACA,CAACA,IAAIA,eAAeA,CAACA,SAASA,EAAEA,KAAKA,CAACA,CAACA,CAACA,CAACA,CAACA,CAACA,CAACA;oBACjEA,MAAMA,CAACA,IAAIA,CAACA;gBAChBA,CAACA;YACLA,CAACA;YACDA,MAAMA,CAACA,KAAKA,CAACA;QACjBA,CAACA;QAED5K,SAASA,cAAcA,CAACA,KAAaA;YACjC6K,IAAIA,CAACA,GAAGA,KAAKA,CAACA,MAAMA,CAACA;YACrBA,OAAOA,CAACA,GAAGA,CAACA,EAAEA,CAACA;gBACXA,CAACA,EAAEA,CAACA;gBACJA,EAAEA,CAACA,CAACA,cAAcA,CAACA,KAAKA,CAACA,CAACA,CAACA,EAAEA,KAAKA,CAACA,CAACA,CAACA,CAACA;oBAClCA,KAAKA,CAACA,MAAMA,CAACA,CAACA,EAAEA,CAACA,CAACA,CAACA;gBACvBA,CAACA;YACLA,CAACA;QACLA,CAACA;QAED7K,SAASA,eAAeA,CAACA,KAAaA;YAClC8K,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,KAAKA,CAACA,MAAMA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;gBACpCA,EAAEA,CAACA,CAACA,KAAKA,CAACA,CAACA,CAACA,CAACA,KAAKA,GAAGA,WAAaA,CAACA,CAACA,CAACA;oBACjCA,MAAMA,CAACA,IAAIA,CAACA;gBAChBA,CAACA;YACLA,CAACA;YACDA,MAAMA,CAACA,KAAKA,CAACA;QACjBA,CAACA;QAED9K,SAASA,gBAAgBA,CAACA,KAAaA,EAAEA,YAAkBA;YACvD+K,IAAIA,CAACA,GAAGA,KAAKA,CAACA,MAAMA,CAACA;YACrBA,OAAOA,CAACA,GAAGA,CAACA,IAAIA,KAAKA,CAACA,MAAMA,GAAGA,CAACA,EAAEA,CAACA;gBAC/BA,CAACA,EAAEA,CAACA;gBACJA,EAAEA,CAACA,CAACA,KAAKA,CAACA,CAACA,CAACA,KAAKA,YAAYA,CAACA,CAACA,CAACA;oBAC5BA,KAAKA,CAACA,MAAMA,CAACA,CAACA,EAAEA,CAACA,CAACA,CAACA;gBACvBA,CAACA;YACLA,CAACA;QACLA,CAACA;QAED/K,SAASA,YAAYA,CAACA,KAAaA,EAAEA,kBAA4BA;YAC7DgL,EAAEA,CAACA,CAACA,K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CA,GAAGA,OAAOA,CAACA,MAAMA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;oBACtCA,EAAEA,CAACA,CAACA,CAACA,KAAKA,OAAOA,CAACA,CAACA,CAACA,CAACA;wBAACA,MAAMA,CAACA,OAAOA,CAACA;gBACzCA,CAACA;gBACDA,MAAMA,CAACA,CAACA,CAACA;YACbA,CAACA,CAACA;QACNA,CAACA;QAED5L,SAASA,qBAAqBA,CAACA,OAAyBA;YACpD6L,MAAMA,CAACA,UAAAA,CAAIA;gBACPA,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,OAAOA,CAACA,cAAcA,CAACA,MAAMA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;oBACrDA,EAAEA,CAACA,CAACA,CAACA,KAAKA,OAAOA,CAACA,cAAcA,CAACA,CAACA,CAACA,CAACA,CAACA,CAACA;wBAClCA,MAAMA,CAACA,eAAeA,CAACA,OAAOA,EAAEA,CAACA,CAACA,CAACA;oBACvCA,CAACA;gBACLA,CAACA;gBACDA,MAAMA,CAACA,CAACA,CAACA;YACbA,CAACA,CAAAA;QACLA,CAACA;QAED7L,SAASA,cAAcA,CAACA,IAAUA;YAC9B8L,MAAMA,CAACA,IAAIA,CAACA;QAChBA,CAACA;QAED9L,SAASA,kBAAkBA,CAACA,OAAmBA,EAAEA,OAAmBA;YAChE+L,MAAMA,CAACA,UAAAA,CAAIA,IAACA,OAAAA,OAAOA,CAACA,OAAOA,CAACA,CAACA,CAACA,CAACA,EAAnBA,CAAmBA,CAACA;QACpCA,CAACA;QAED/L,SAASA,wBAAwBA,CAACA,aAA4BA,EAAEA,MAAkBA;YAC9EgM,IAAIA,MAAMA,GAAkBA,UAAUA,CAACA,uBAAuBA,CAACA,CAACA;YAChEA,MAAMA,CAACA,MAAMA,GAAGA,aAAaA,CAACA,MAAMA,CAACA;YACrCA,EAAEA,CAACA,CAACA,aAAaA,CAACA,UAAUA,CAACA,CAACA,CAACA;gBAC3BA,MAAMA,CAACA,UAAUA,GAAGA,eAAeA,CAACA,aAAaA,CAACA,UAAUA,EAAEA,MAAMA,CAACA,CAACA;YAC1EA,CAACA;YACDA,IAAIA,CAACA,CAACA;gBACFA,MAAMA,CAACA,MAAMA,GAAGA,aAAaA,CAACA;gBAC9BA,MAAMA,CAACA,MAAMA,GAAGA,MAAMA,CAACA;YAC3BA,CAACA;YACDA,MAAMA,CAACA,MAAMA,CAACA;QAClBA,CAACA;QAEDhM,SAASA,oBAAoBA,CAACA,SAAoBA,EAAEA,MAAkBA,EAAEA,mBAA6BA;YACjGiM,EAAEA,CAACA,CAACA,SAASA,CAACA,cAAcA,IAAIA,CAACA,mBAAmBA,CAACA,CAACA,CAACA;gBACnDA,IAAIA,mBAAmBA,GAAGA,eAAeA,CAACA,SAASA,CAACA,cAAcA,EAAEA,MAAMA,EAAEA,wBAAwBA,CAACA,CAACA;gBACtGA,MAAMA,GAAGA,kBAAkBA,CAACA,gBAAgBA,CAACA,SAASA,CAACA,cAAcA,EAAEA,mBAAmBA,CAACA,EAAEA,MAAMA,CAACA,CAACA;YACzGA,CAACA;YACDA,IAAIA,MAAMA,GAAGA,eAAeA,CAACA,SAASA,CAACA,WAAWA,EAAEA,mBAAmBA,EACnEA,eAAeA,CAACA,SAASA,CAACA,UAAUA,EAAEA,MAAMA,EAAEA,iBAAiBA,CAACA,EAChEA,SAASA,CAACA,kBAAkBA,GAAGA,eAAeA,CAACA,SAASA,CAACA,kBAAkBA,EAAEA,MAAMA,CAACA,GAAGA,SAASA,EAChGA,SAASA,CAACA,gBAAgBA,EAAEA,SAASA,CAACA,gBAAgBA,EAAEA,SAASA,CAACA,iBAAiBA,CAACA,CAACA;YACzFA,MAAMA,CAACA,MAAMA,GAAGA,SAASA,CAACA;YAC1BA,MAAMA,CAACA,MAAMA,GAAGA,MAAMA,CAACA;YACvBA,MAAMA,CAACA,MAAMA,CAACA;QAClBA,CAACA;QAEDjM,SAASA,iBAAiBA,CAACA,MAAcA,EAAEA,MAAkBA;YACzDkM,EAAEA,CAACA,CAACA,MAAMA,CAACA,KAAKA,GAAGA,2BAAwBA,CAACA,CAACA,CAACA;gBAC1CA,IAAIA,KAAKA,GAAGA,cAAcA,CAACA,MAAMA,CAACA,CAACA;gBAInCA,MAAMA,GAAGA,KAAKA,CAACA,MAAMA,CAACA;gBACtBA,MAAMA,GAAGA,kBAAkBA,CAACA,KAAKA,CAACA,MAAMA,EAAEA,MAAMA,CAACA,CAACA;YACtDA,CAACA;YAIDA,IAAIA,MAAMA,GAAoBA,YAAYA,CAACA,2BAAwBA,GAAGA,yBAAqBA,GAAGA,MAAMA,CAACA,KAAKA,EAAEA,MAAMA,CAACA,IAAIA,CAACA,CAACA;YACzHA,MAAMA,CAACA,YAAYA,GAAGA,MAAMA,CAACA,YAAYA,CAACA;YAC1CA,MAAMA,CAACA,MAAMA,GAAGA,MAAMA,CAACA,MAAMA,CAACA;YAC9BA,MAAMA,CAACA,MAAMA,GAAGA,MAAMA,CAACA;YACvBA,MAAMA,CAACA,MAAMA,GAAGA,MAAMA,CAACA;YACvBA,EAAEA,CAACA,CAACA,MAAMA,CAACA,gBAAgBA,CAACA,CAACA,CAACA;gBAC1BA,MAAMA,CAACA,gBAAgBA,GAAGA,MAAMA,CAACA,gBAAgBA,CAACA;YACtDA,CAACA;YAEDA,MAAMA,CAACA,MAAMA,CAACA;QAClBA,CAACA;QAEDlM,SAASA,wBAAwBA,CAACA,IAAgBA,EAAEA,MAAkBA;YAClEmM,IAAIA,MAAMA,GAAiBA,gBAAgBA,CAACA,qBAAmBA,EAAEA,IAAIA,CAACA,MAAMA,CAACA,CAACA;YAC9EA,MAAMA,CAACA,UAAUA,GAAGA,eAAeA,CAACA,yBAAyBA,CAACA,IAAIA,CAACA,EAAEA,MAAMA,EAAEA,iBAAiBA,CAACA,CAACA;YAChGA,MAAMA,CAACA,OAAOA,GAAGA,iBAAiBA,CAACA,MAAMA,CAACA,UAAUA,CAACA,CAACA;YACtDA,MAAMA,CAACA,cAAcA,GAAGA,eAAeA,CAACA,mBAAmBA,CAACA,IAAIA,EAAEA,YAAkBA,CAACA,EAAEA,MAAMA,EAAEA,oBAAoBA,CAACA,CAACA;YACrHA,MAAMA,CAACA,mBAAmBA,GAAGA,eAAeA,CAACA,mBAAmBA,CAACA,IAAIA,EAAEA,iBAAuBA,CAACA,EAAEA,MAAMA,EAAEA,oBAAoBA,CAACA,CAACA;YAC/HA,IAAIA,eAAeA,GAAGA,kBAAkBA,CAACA,IAAIA,EAAEA,cAAgBA,CAACA,CAACA;YACjEA,IAAIA,eAAeA,GAAGA,kBAAkBA,CAACA,IAAIA,EAAEA,cAAgBA,CAACA,CAACA;YACjEA,EAAEA,CAACA,CAACA,eAAeA,CAACA;gBAACA,MAAMA,CAACA,eAAeA,GAAGA,eAAeA,CAACA,eAAeA,EAAEA,MAAMA,CAACA,CAACA;YACvFA,EAAEA,CAACA,CAACA,eAAeA,CAACA;gBAACA,MAAMA,CAACA,eAAeA,GAAGA,eAAeA,CAACA,eAAeA,EAAEA,MAAMA,CAACA,CAACA;YACvFA,MAAMA,CAACA,MAAMA,CAACA;QAClBA,CAACA;QAEDnM,SAASA,eAAeA,CAACA,IAAUA,EAAEA,MAAkBA;YACnDoM,EAAEA,CAACA,CAACA,MAAMA,KAAKA,cAAcA,CAACA,CAACA,CAACA;gBAC5BA,EAAEA,CAACA,CAACA,IAAIA,CAACA,KAAKA,GAAGA,uBAAuBA,CAACA,CAACA,CAACA;oBACvCA,MAAMA,CAACA,MAAMA,CAACA,IAAIA,CAACA,CAACA;gBACxBA,CAACA;gBACDA,EAAEA,CAACA,CAACA,IAAIA,CAACA,KAAKA,GAAGA,qBAAmBA,CAACA,CAACA,CAACA;oBACnCA,MAAMA,CAACA,IAAIA,CAACA,MAAMA,IAAIA,IAAIA,CAACA,MAAMA,CAACA,KAAKA,GAAGA,CAACA,iBAAoBA,GAAGA,iBAAkBA,GAAGA,sBAAuBA,GAAGA,wBAAyBA,CAACA,GACvIA,wBAAwBA,CAAaA,IAAIA,EAAEA,MAAMA,CAACA,GAAGA,IAAIA,CAACA;gBAClEA,CAACA;gBACDA,EAAEA,CAACA,CAACA,IAAIA,CAACA,KAAKA,GAAGA,oBAAmBA,CAACA,CAACA,CAACA;oBACnCA,MAAMA,CAACA,mBAAmBA,CAAiBA,IAAKA,CAACA,MAAMA,EAAEA,eAAeA,CAAiBA,IAAKA,CAACA,aAAaA,EAAEA,MAAMA,EAAEA,eAAeA,CAACA,CAACA,CAACA;gBAC5IA,CAACA;gBACDA,EAAEA,CAACA,CAACA,IAAIA,CAACA,KAAKA,GAAGA,gBAAeA,CAACA,CAACA,CAACA;oBAC/BA,MAAMA,CAACA,eAAeA,CAACA,eAAeA,CAAaA,IAAKA,CAACA,YAAYA,EAAEA,MAAMA,EAAEA,eAAeA,CAACA,CAACA,CAACA;gBACrGA,CAACA;gBACDA,EAAEA,CAACA,CAACA,IAAIA,CAACA,KAAKA,GAAGA,iBAAeA,CAACA,CAACA,CAACA;oBAC/BA,MAAMA,CAACA,YAAYA,CAACA,eAAeA,CAAaA,IAAKA,CAACA,KAAKA,EAAEA,MAAMA,EAAEA,eAAeA,CAACA,EAAyBA,IAAIA,CAACA,CAACA;gBACxHA,CAACA;YACLA,CAACA;YACDA,MAAMA,CAACA,IAAIA,CAACA;QAChBA,CAACA;QAIDpM,SAASA,4BAA4BA,CAACA,IAAgBA;YAClDqM,MAAMA,CAACA,CAACA,IAAIA,CAACA,IAAIA,CAACA,CAACA,CAACA;gBAChBA,KAAKA,4BAA6BA,CAACA;gBACnCA,KAAKA,uBAAwBA;oBACzBA,MAAMA,CAACA,CAAsBA,IAAKA,CAACA,cAAcA,IAAIA,CAACA,UAAOA,CAAsBA,IAAKA,CAACA,UAAUA,EAAEA,UAAAA,CAAIA,IAACA,OAAAA,CAACA,CAACA,IAAIA,EAANA,CAAMA,CAACA,CAACA;gBACtHA,KAAKA,uBAAwBA;oBACzBA,MAAMA,CAACA,UAAOA,CAAiBA,IAAKA,CAACA,UAAUA,EAAEA,UAAAA,CAAIA,IACjDA,OAAAA,CAACA,CAACA,IAAIA,KAAKA,4BAA6BA,IAAIA,4BAA4BA,CAAuBA,CAAEA,CAACA,WAAWA,CAACA,EAA9GA,CAA8GA,CAACA,CAACA;gBACxHA,KAAKA,sBAAuBA;oBACxBA,MAAMA,CAACA,UAAOA,CAAgBA,IAAKA,CAACA,QAAQA,EAAEA,UAAAA,CAAIA,IAACA,OAAAA,4BAA4BA,CAACA,CAACA,CAACA,EAA/BA,CAA+BA,CAACA,CAACA;gBACxFA,KAAKA,+BAAgCA;oBACjCA,MAAMA,CAACA,4BAA4BA,CAAyBA,IAAKA,CAACA,QAAQA,CAACA,IACvEA,4BAA4BA,CAAyBA,IAAKA,CAACA,SAASA,CAACA,CAACA;gBAC9EA,KAAKA,0BAA2BA;oBAC5BA,MAAMA,CAAoBA,IAAKA,CAACA,QAAQA,KAAKA,oBAAsBA,IAC/DA,CAACA,4BAA4BA,CAAoBA,IAAKA,CAACA,IAAIA,CAACA,IAAIA,4BAA4BA,CAAoBA,IAAKA,CAACA,KAAKA,CAACA,CAACA,CAACA;YAC1IA,CAACA;YACDA,MAAMA,CAACA,KAAKA,CAACA;QACjBA,CAACA;QAEDrM,SAASA,0BAA0BA,CAACA,IAAUA;YAC1CsM,EAAEA,CAACA,CAACA,IAAIA,CAACA,KAAKA,GAAGA,sBAAoBA,CAACA,CAACA,CAACA;gBACpCA,IAAIA,QAAQA,GAAGA,+BAA+BA,CAAaA,IAAIA,CAACA,CAACA;gBACjEA,EAAEA,CAACA,CAACA,QAAQA,CAACA,mBAAmBA,CAACA,MAAMA,CAACA,CAACA,CAACA;oBACtCA,IAAIA,MAAMA,GAAiBA,gBAAgBA,CAACA,qBAAmBA,EAAEA,IAAIA,CAACA,MAAMA,CAACA,CAACA;oBAC9EA,MAAMA,CAACA,OAAOA,GAAGA,QAAQA,CAACA,OAAOA,CAACA;oBAClCA,MAAMA,CAACA,UAAUA,GAAGA,QAAQA,CAACA,UAAUA,CAACA;oBACxCA,MAAMA,CAACA,cAAcA,GAAGA,QAAQA,CAACA,cAAcA,CAACA;oBAChDA,MAAMA,CAACA,mBAAmBA,GAAGA,UAAUA,CAACA;oBACxCA,IAAIA,GAAGA,MAAMA,CAACA;gBAClBA,CAACA;YACLA,CAACA;YACDA,MAAMA,CAACA,IAAIA,CAACA;QAChBA,CAACA;QAIDtM,IAAIA,eAAeA,GAAiBA,EAAEA,CAACA;QACvCA,IAAIA,kBAAkBA,GAAiBA,EAAEA,CAACA;QAC1CA,IAAIA,gBAAgBA,GAAiBA,EAAEA,CAACA;QAExCA,SAASA,iBAAiBA,CAACA,MAAYA,EAAEA,MAAYA;YACjDuM,MAAMA,CAACA,kBAAkBA,CAACA,MAAMA,EAAEA,MAAMA,EAAEA,gBAAgBA,EAAgBA,SAASA,CAACA,CAACA;QACzFA,CAACA;QAEDvM,SAASA,YAAYA,CAACA,MAAYA,EAAEA,MAAYA;YAC5CwM,MAAMA,CAACA,kBAAkBA,CAACA,MAAMA,EAAEA,MAAMA,EAAEA,gBAAgBA,EAAgBA,SAASA,CAACA,GAAGA,aAAYA,GAAGA,aAAaA,CAACA;QACxHA,CAACA;QAEDxM,SAASA,eAAeA,CAACA,MAAYA,EAAEA,MAAYA;YAC/CyM,MAAMA,CAACA,kBAAkBA,CAACA,MAAMA,EAAEA,MAAMA,EAAgBA,SAASA,CAACA,CAACA;QACvEA,CAACA;QAEDzM,SAASA,kBAAkBA,CAACA,MAAYA,EAAEA,MAAYA;YAClD0M,MAAMA,CAACA,qBAAqBA,CAACA,MAAMA,EAAEA,MAAMA,EAAgBA,SAASA,CAACA,CAACA;QAC1EA,CAACA;QAED1M,SAASA,kBAAkBA,CAACA,MAAYA,EAAEA,MAAYA,EAAEA,SAAeA,EAAEA,WAA+BA,EAAEA,sBAA+CA;YACrJ2M,MAAMA,CAACA,kBAAkBA,CAACA,MAAMA,EAAEA,MAAMA,EAAEA,eAAeA,EAAEA,SAASA,EAAEA,WAAWA,EAAEA,sBAAsBA,CAACA,CAACA;QAC/GA,CAACA;QAED3M,SAASA,qBAAqBA,CAACA,MAAYA,EAAEA,MAAYA,EAAEA,SAAeA,EAAEA,WAA+BA;YACvG4M,MAAMA,CAACA,kBAAkBA,CAACA,MAAMA,EAAEA,MAAMA,EAAEA,kBAAkBA,EAAEA,SAASA,EAAEA,WAAWA,CAACA,CAACA;QAC1FA,CAACA;QAED5M,SAASA,uBAAuBA,CAACA,MAAiBA,EAAEA,MAAiBA;YACjE6M,IAAIA,UAAUA,GAAGA,4BAA4BA,CAACA,MAAMA,CAACA,CAACA;YACtDA,IAAIA,UAAUA,GAAGA,4BAA4BA,CAACA,MAAMA,CAACA,CAACA;YACtDA,MAAMA,CAACA,kBAAkBA,CAACA,UAAUA,EAAEA,UAAUA,EAAEA,kBAAkBA,EAAgBA,SAASA,CAACA,CAACA;QACnGA,CAACA;QAED7M,SAASA,kBAAkBA,CACvBA,MAAYA,EACZA,MAAYA,EACZA,QAAsBA,EACtBA,SAAeA,EACfA,WAA+BA,EAC/BA,sBAA+CA;YAE/C8M,IAAIA,SAAiCA,CAACA;YACtCA,IAAIA,WAAyBA,CAACA;YAC9BA,IAAIA,WAAyBA,CAACA;YAC9BA,IAAIA,UAA0BA,CAACA;YAC/BA,IAAIA,cAAsBA,CAACA;YAC3BA,IAAIA,KAAKA,GAAGA,CAACA,CAACA;YACdA,IAAIA,QAAQA,GAAGA,KAAKA,CAACA;YAErBA,QAAKA,CAACA,MAAMA,CAACA,QAAQA,KAAKA,gBAAgBA,IAAIA,CAACA,SAASA,EAAEA,yCAAyCA,CAACA,CAACA;YAErGA,IAAIA,MAAMA,GAAGA,WAAWA,CAACA,MAAMA,EAAEA,MAAMA,EAAEA,SAASA,KAAKA,SAASA,EAAEA,WAAWA,CAACA,CAACA;YAC/EA,EAAEA,CAACA,CAACA,QAAQA,CAACA,CAACA,CAACA;gBACXA,KAAKA,CAACA,SAASA,EAAEA,cAAWA,CAACA,6CAA6CA,EAAEA,YAAYA,CAACA,MAAMA,CAACA,EAAEA,YAAYA,CAACA,MAAMA,CAACA,CAACA,CAACA;YAC5HA,CAACA;YACDA,IAAIA,CAACA,EAAEA,CAACA,CAACA,SAASA,CAACA,CAACA,CAACA;gBACjBA,EAAEA,CAACA,CAACA,sBAAsBA,CAACA,CAACA,CAACA;oBACzBA,SAASA,GAAGA,qCAAkCA,CAACA,sBAAsBA,EAAEA,SAASA,CAACA,CAACA;gBACtFA,CAACA;gBACDA,aAAaA,CAACA,0CAAuCA,CAACA,SAASA,EAAEA,SAASA,EAAEA,OAAOA,CAACA,eAAeA,EAAEA,CAACA,UAAUA,EAAEA,CAACA,CAACA,CAACA;YACzHA,CAACA;YACDA,MAAMA,CAACA,MAAMA,KAAKA,aAAaA,CAACA;YAEhCA,SAASA,WAAWA,CAACA,OAA0BA,EAAEA,IAAaA,EAAEA,IAAaA,EAAEA,IAAaA;gBACxFC,SAASA,GAAGA,0BAAuBA,CAACA,SAASA,EAAEA,OAAOA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,CAACA,CAACA;YAC9EA,CAACA;YAMDD,SAASA,WAAWA,CAACA,MAAYA,EAAEA,MAAYA,EAAEA,YAAsBA,EAAEA,WAA+BA;gBACpGE,IAAIA,MAAeA,CAACA;gBACpBA,EAAEA,CAACA,CAACA,QAAQA,KAAKA,gBAAgBA,CAACA,CAACA,CAACA;oBAEhCA,EAAEA,CAACA,CAACA,MAAMA,KAAKA,MAAMA,CAACA;wBAACA,MAAMA,CAACA,aAAYA,CAACA;gBAC/CA,CAACA;gBACDA,IAAIA,CAACA,CAACA;oBACFA,EAAEA,CAACA,CAACA,MAAMA,KAAKA,MAAMA,CAACA;wBAACA,MAAMA,CAACA,aAAYA,CAACA;oBAC3CA,EAAEA,CAACA,CAACA,MAAMA,CAACA,KAAKA,GAAGA,WAAaA,CAACA;wBAACA,MAAMA,CAACA,aAAYA,CAACA;oBACtDA,EAAEA,CAACA,CAACA,MAAMA,KAAKA,aAAaA,CAACA;wBAACA,MAAMA,CAACA,aAAYA,CAACA;oBAClDA,EAAEA,CAACA,CAACA,MAAMA,KAAKA,QAAQA,IAAIA,MAAMA,KAAKA,aAAaA,CAACA;wBAACA,MAAMA,CAACA,aAAYA,CAACA;oBACzEA,EAAEA,CAACA,CAACA,MAAMA,CAACA,KAAKA,GAAGA,cAAcA,IAAIA,MAAMA,KAAKA,UAAUA,CAACA;wBAACA,MAAMA,CAACA,aAAYA,CAACA;oBAChFA,EAAEA,CAACA,CAACA,MAAMA,CAACA,KAAKA,GAAGA,uBAAuBA,IAAIA,MAAMA,KAAKA,UAAUA,CAACA;wBAACA,MAAMA,CAACA,aAAYA,CAACA;oBACzFA,EAAEA,CAACA,CAACA,QAAQA,KAAKA,kBAAkBA,CAACA,CAACA,CAACA;wBAClCA,EAAEA,CAACA,CAACA,MAAMA,CAACA,KAAKA,GAAGA,WAAaA,CAACA;4BAACA,MAAMA,CAACA,aAAYA,CAACA;wBACtDA,EAAEA,CAACA,CAACA,MAAMA,KAAKA,UAAUA,IAAIA,MAAMA,CAACA,KAAKA,GAAGA,cAAcA,CAACA;4BAACA,MAAMA,CAACA,aAAYA,CAACA;oBACpFA,CAACA;gBACLA,CAACA;gBACDA,EAAEA,CAACA,CAACA,MAAMA,CAACA,KAAKA,GAAGA,iBAAeA,CAACA,CAACA,CAACA;oBACjCA,EAAEA,CAACA,CAACA,MAAMA,GAAGA,sBAAsBA,CAAYA,MAAMA,EAAEA,MAAMA,EAAEA,YAAYA,CAACA,CAACA,CAACA,CAACA;wBAC3EA,MAAMA,CAACA,MAAMA,CAACA;oBAClBA,CAACA;gBACLA,CAACA;gBACDA,IAAIA,CAACA,EAAEA,CAACA,CAACA,MAAMA,CAACA,KAAKA,GAAGA,iBAAeA,CAACA,CAACA,CAACA;oBACtCA,EAAEA,CAACA,CAACA,MAAMA,GAAGA,sBAAsBA,CAACA,MAAMA,EAAaA,MAAMA,EAAEA,YAAYA,CAACA,CAACA,CAACA,CAACA;wBAC3EA,MAAMA,CAACA,MAAMA,CAACA;oBAClBA,CAACA;gBACLA,CAACA;gBACDA,IAAIA,CAACA,EAAEA,CAACA,CAACA,MAAMA,CAACA,KAAKA,GAAGA,uBAAuBA,IAAIA,MAAMA,CAACA,KAAKA,GAAGA,uBAAuBA,CAACA,CAACA,CAACA;oBACxFA,EAAEA,CAACA,CAACA,MAAMA,GAAGA,sBAAsBA,CAAgBA,MAAMA,EAAiBA,MAAMA,EAAEA,YAAYA,CAACA,CAACA,CAACA,CAACA;wBAC9FA,MAAMA,CAACA,MAAMA,CAACA;oBAClBA,CAACA;gBACLA,CAACA;gBACDA,IAAIA,CAACA,CAACA;oBACFA,IAAIA,aAAaA,GAAGA,SAASA,CAACA;oBAC9BA,EAAEA,CAACA,CAACA,MAAMA,CAACA,KAAKA,GAAGA,oBAAmBA,IAAIA,MAAMA,CAACA,KAAKA,GAAGA,oBAAmBA,IAAoBA,MAAOA,CAACA,MAAMA,KAAqBA,MAAOA,CAACA,MAAMA,CAACA,CAACA,CAACA;wBAEhJA,EAAEA,CAACA,CAACA,MAAMA,GAAGA,cAAcA,CAAiBA,MAAOA,CAACA,aAAaA,EAAkBA,MAAOA,CAACA,aAAaA,EAAEA,YAAYA,CAACA,CAACA,CAACA,CAACA;4BACtHA,MAAMA,CAACA,MAAMA,CAACA;wBAClBA,CAACA;oBACLA,CAACA;oBAGDA,IAAIA,sBAAsBA,GAAGA,YAAYA,IAAIA,SAASA,KAAKA,aAAaA,CAACA;oBAEzEA,IAAIA,oBAAoBA,GAAGA,QAAQA,KAAKA,gBAAgBA,GAAGA,MAAMA,GAAGA,eAAeA,CAACA,MAAMA,CAACA,CAACA;oBAC5FA,EAAEA,CAACA,CAACA,oBAAoBA,CAACA,KAAKA,GAAGA,sBAAoBA,IAAIA,MAAMA,CAACA,KAAKA,GAAGA,sBAAoBA,IACxFA,CAACA,MAAMA,GAAGA,mBAAmBA,CAACA,oBAAoBA,EAAcA,MAAMA,EAAEA,sBAAsBA,CAACA,CAACA,CAACA,CAACA,CAACA;wBACnGA,SAASA,GAAGA,aAAaA,CAACA;wBAC1BA,MAAMA,CAACA,MAAMA,CAACA;oBAClBA,CAACA;gBACLA,CAACA;gBACDA,EAAEA,CAACA,CAACA,YAAYA,CAACA,CAACA,CAACA;oBACfA,WAAWA,GAAGA,WAAWA,IAAIA,cAAWA,CAACA,kCAAkCA,CAACA;oBAC5EA,WAAWA,CAACA,WAAWA,EAAEA,YAAYA,CAACA,MAAMA,CAACA,EAAEA,YAAYA,CAACA,MAAMA,CAACA,CAACA,CAACA;gBACzEA,CAACA;gBACDA,MAAMA,CAACA,aAAaA,CAACA;YACzBA,CAACA;YAEDF,SAASA,sBAAsBA,CAACA,MAAYA,EAAEA,MAAiBA,EAAEA,YAAqBA;gBAClFG,IAAIA,WAAWA,GAAGA,MAAMA,CAACA,KAAKA,CAACA;gBAC/BA,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,GAAGA,GAAGA,WAAWA,CAACA,MAAMA,EAAEA,CAACA,GAAGA,GAAGA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;oBACrDA,IAAIA,OAAOA,GAAGA,WAAWA,CAACA,MAAMA,EAAEA,WAAWA,CAACA,CAACA,CAACA,EAAEA,YAAYA,IAAIA,CAACA,KAAKA,GAAGA,GAAGA,CAACA,CAACA,CAACA;oBACjFA,EAAEA,CAACA,CAACA,OAAOA,CAACA,CAACA,CAACA;wBACVA,MAAMA,CAACA,OAAOA,CAACA;oBACnBA,CAACA;gBACLA,CAACA;gBACDA,MAAMA,CAACA,aAAaA,CAACA;YACzBA,CAACA;YAEDH,SAASA,sBAAsBA,CAACA,MAAiBA,EAAEA,MAAYA,EAAEA,YAAqBA;gBAClFI,IAAIA,MAAMA,GAAGA,aAAYA,CAACA;gBAC1BA,IAAIA,WAAWA,GAAGA,MAAMA,CAACA,KAAKA,CAACA;gBAC/BA,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,GAAGA,GAAGA,WAAWA,CAACA,MAAMA,EAAEA,CAACA,GAAGA,GAAGA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;oBACrDA,IAAIA,OAAOA,GAAGA,WAAWA,CAACA,WAAWA,CAACA,CAACA,CAACA,EAAEA,MAAMA,EAAEA,YAAYA,CAACA,CAACA;oBAChEA,EAAEA,CAACA,CAACA,CAACA,OAAOA,CAACA,CAACA,CAACA;wBACXA,MAAMA,CAACA,aAAaA,CAACA;oBACzBA,CAACA;oBACDA,MAAMA,IAAIA,OAAOA,CAACA;gBACtBA,CAACA;gBACDA,MAAMA,CAACA,MAAMA,CAACA;YAClBA,CAACA;YAEDJ,SAASA,cAAcA,CAACA,OAAeA,EAAEA,OAAeA,EAAEA,YAAqBA;gBAC3EK,IAAIA,MAAMA,GAAGA,aAAYA,CAACA;gBAC1BA,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,GAAGA,GAAGA,OAAOA,CAACA,MAAMA,EAAEA,CAACA,GAAGA,GAAGA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;oBACjDA,IAAIA,OAAOA,GAAGA,WAAWA,CAACA,OAAOA,CAACA,CAACA,CAACA,EAAEA,OAAOA,CAACA,CAACA,CAACA,EAAEA,YAAYA,CAACA,CAACA;oBAChEA,EAAEA,CAACA,CAACA,CAACA,OAAOA,CAACA,CAACA,CAACA;wBACXA,MAAMA,CAACA,aAAaA,CAACA;oBACzBA,CAACA;oBACDA,MAAMA,IAAIA,OAAOA,CAACA;gBACtBA,CAACA;gBACDA,MAAMA,CAACA,MAAMA,CAACA;YAClBA,CAACA;YAEDL,SAASA,sBAAsBA,CAACA,MAAqBA,EAAEA,MAAqBA,EAAEA,YAAqBA;gBAC/FM,EAAEA,CAACA,CAACA,QAAQA,KAAKA,gBAAgBA,CAACA,CAACA,CAACA;oBAChCA,EAAEA,CAACA,CAACA,MAAMA,CAACA,MAAMA,CAACA,IAAIA,KAAKA,MAAMA,CAACA,MAAMA,CAACA,IAAIA,CAACA,CAACA,CAACA;wBAC5CA,MAAMA,CAACA,aAAaA,CAACA;oBACzBA,CAACA;oBAEDA,EAAEA,CAACA,CAACA,MAAMA,CAACA,UAAUA,KAAKA,MAAMA,CAACA,UAAUA,CAACA,CAACA,CAACA;wBAC1CA,MAAMA,CAACA,aAAYA,CAACA;oBACxBA,CAACA;oBACDA,EAAEA,CAACA,CAACA,MAAMA,CAACA,UAAUA,KAAKA,gBAAgBA,IAAIA,MAAMA,CAACA,UAAUA,KAAKA,gBAAgBA,CAACA,CAACA,CAACA;wBACnFA,MAAMA,CAACA,aAAaA,CAACA;oBACzBA,CAACA;oBACDA,MAAMA,CAACA,WAAWA,CAACA,MAAMA,CAACA,UAAUA,EAAEA,MAAMA,CAACA,UAAUA,EAAEA,YAAYA,CAACA,CAACA;gBAC3EA,CAACA;gBACDA,IAAIA,CAACA,CAACA;oBACFA,OAAOA,IAAIA,EAAEA,CAACA;wBACVA,IAAIA,UAAUA,GAAGA,4BAA4BA,CAACA,MAAMA,CAACA,CAACA;wBACtDA,EAAEA,CAACA,CAACA,UAAUA,KAAKA,MAAMA,CAACA;4BAACA,MAAMA,CAACA,aAAYA,CAACA;wBAC/CA,EAAEA,CAACA,CAACA,CAACA,CAACA,UAAUA,IAAIA,UAAUA,CAACA,KAAKA,GAAGA,uBAAuBA,CAACA,CAACA;4BAACA,KAAKA,CAACA;wBACvEA,MAAMA,GAAkBA,UAAUA,CAACA;oBACvCA,CAACA;oBACDA,MAAMA,CAACA,aAAaA,CAACA;gBACzBA,CAACA;YACLA,CAACA;YAODN,SAASA,mBAAmBA,CAACA,MAAkBA,EAAEA,MAAkBA,EAAEA,YAAqBA;gBACtFO,EAAEA,CAACA,CAACA,QAAQA,CAACA,CAACA,CAACA;oBACXA,MAAMA,CAACA,aAAaA,CAACA;gBACzBA,CAACA;gBACDA,IAAIA,EAAEA,GAAGA,MAAMA,CAACA,EAAEA,GAAGA,GAAGA,GAAGA,MAAMA,CAACA,EAAEA,CAACA;gBACrCA,IAAIA,OAAOA,GAAGA,QAAQA,CAACA,EAAEA,CAACA,CAACA;gBAC3BA,EAAEA,CAACA,CAACA,OAAOA,KAAKA,SAASA,CAACA,CAACA,CAACA;oBACxBA,MAAMA,CAACA,OAAOA,GAAGA,aAAYA,GAAGA,aAAaA,CAACA;gBAClDA,CAACA;gBACDA,EAAEA,CAACA,CAACA,KAAKA,GAAGA,CAACA,CAACA,CAACA,CAACA;oBACZA,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,KAAKA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;wBAE7BA,EAAEA,CAACA,CAACA,UAAUA,CAACA,CAACA,CAACA,CAACA,EAAEA,CAACA,CAACA,CAACA,CAACA;4BACpBA,MAAMA,CAACA,aAAaA,CAACA;wBACzBA,CAACA;oBACLA,CAACA;oBACDA,EAAEA,CAACA,CAACA,KAAKA,KAAKA,GAAGA,CAACA,CAACA,CAACA;wBAChBA,QAAQA,GAAGA,IAAIA,CAACA;wBAChBA,MAAMA,CAACA,aAAaA,CAACA;oBACzBA,CAACA;gBACLA,CAACA;gBACDA,IAAIA,CAACA,CAACA;oBACFA,WAAWA,GAAGA,EAAEA,CAACA;oBACjBA,WAAWA,GAAGA,EAAEA,CAACA;oBACjBA,UAAUA,GAAGA,EAAEA,CAACA;oBAChBA,cAAcA,GAAGA,CAACA,CAACA;gBACvBA,CAACA;gBACDA,WAAWA,CAACA,KAAKA,CAACA,GAAGA,MAAMA,CAACA;gBAC5BA,WAAWA,CAACA,KAAKA,CAACA,GAAGA,MAAMA,CAACA;gBAC5BA,UAAUA,CAACA,KAAKA,CAACA,GAAGA,EAAEA,CAACA;gBACvBA,UAAUA,CAACA,KAAKA,CAACA,CAACA,EAAEA,CAACA,GAAGA,IAAIA,CAACA;gBAC7BA,KAAKA,EAAEA,CAACA;gBACRA,IAAIA,kBAAkBA,GAAGA,cAAcA,CAACA;gBACxCA,EAAEA,CAACA,CAACA,CAACA,CAACA,cAAcA,GAAGA,CAACA,CAACA,IAAIA,qBAAqBA,CAACA,MAAMA,EAAEA,WAAWA,CAACA,CAACA;oBAACA,cAAcA,IAAIA,CAACA,CAACA;gBAC7FA,EAAEA,CAACA,CAACA,CAACA,CAACA,cAAcA,GAAGA,CAACA,CAACA,IAAIA,qBAAqBA,CAACA,MAAMA,EAAEA,WAAWA,CAACA,CAACA;oBAACA,cAAcA,IAAIA,CAACA,CAACA;gBAC7FA,EAAEA,CAACA,CAACA,cAAcA,KAAKA,CAACA,CAACA,CAACA,CAACA;oBACvBA,IAAIA,MAAMA,GAAGA,aAAaA,CAACA;gBAC/BA,CAACA;gBACDA,IAAIA,CAACA,CAACA;oBACFA,IAAIA,MAAMA,GAAGA,mBAAmBA,CAACA,MAAMA,EAAEA,MAAMA,EAAEA,YAAYA,CAACA,CAACA;oBAC/DA,EAAEA,CAACA,CAACA,MAAMA,CAACA,CAACA,CAACA;wBACTA,MAAMA,IAAIA,mBAAmBA,CAACA,MAAMA,EAAEA,MAAMA,EAAEA,YAAkBA,EAAEA,YAAYA,CAACA,CAACA;wBAChFA,EAAEA,CAACA,CAACA,MAAMA,CAACA,CAACA,CAACA;4BACTA,MAAMA,IAAIA,mBAAmBA,CAACA,MAAMA,EAAEA,MAAMA,EAAEA,iBAAuBA,EAAEA,YAAYA,CAACA,CAACA;4BACrFA,EAAEA,CAACA,CAACA,MAAMA,CAACA,CAACA,CAACA;gCACTA,MAAMA,IAAIA,yBAAyBA,CAACA,MAAMA,EAAEA,MAAMA,EAAEA,YAAYA,CAACA,CAACA;gCAClEA,EAAEA,CAACA,CAACA,MAAMA,CAACA,CAACA,CAACA;oCACTA,MAAMA,IAAIA,yBAAyBA,CAACA,MAAMA,EAAEA,MAAMA,EAAEA,YAAYA,CAACA,CAACA;gCACtEA,CAACA;4BACLA,CAACA;wBACLA,CAACA;oBACLA,CAACA;gBACLA,CAACA;gBACDA,cAAcA,GAAGA,kBAAkBA,CAACA;gBACpCA,KAAKA,EAAEA,CAACA;gBACRA,EAAEA,CAACA,CAACA,MAAMA,CAACA,CAACA,CAACA;oBACTA,IAAIA,UAAUA,GAAGA,UAAUA,CAACA,KAAKA,CAACA,CAACA;oBAEnCA,IAAIA,gBAAgBA,GAAGA,MAAMA,KAAKA,aAAYA,IAAIA,KAAKA,KAAKA,CAACA,GAAGA,QAAQA,GAAGA,UAAUA,CAACA,KAAKA,GAAGA,CAACA,CAACA,CAACA;oBACjGA,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,IAAIA,UAAUA,CAACA,CAACA,CAACA;wBACvBA,gBAAgBA,CAACA,CAACA,CAACA,GAAGA,UAAUA,CAACA,CAACA,CAACA,CAACA;oBACxCA,CAACA;gBACLA,CAACA;gBACDA,IAAIA,CAACA,CAACA;oBAGFA,QAAQA,CAACA,EAAEA,CAACA,GAAGA,KAAKA,CAACA;gBACzBA,CAACA;gBACDA,MAAMA,CAACA,MAAMA,CAACA;YAClBA,CAACA;YAODP,SAASA,qBAAqBA,CAACA,IAAgBA,EAAEA,KAAmBA;gBAChEQ,EAAEA,CAACA,CAACA,IAAIA,CAACA,KAAKA,GAAGA,oBAAmBA,IAAIA,KAAKA,IAAIA,EAAEA,CAACA,CAACA,CAACA;oBAClDA,IAAIA,MAAMA,GAAmBA,IAAKA,CAACA,MAAMA,CAACA;oBAC1CA,IAAIA,KAAKA,GAAGA,CAACA,CAACA;oBACdA,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,KAAKA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;wBAC7BA,IAAIA,CAACA,GAAGA,KAAKA,CAACA,CAACA,CAACA,CAACA;wBACjBA,EAAEA,CAACA,CAACA,CAACA,CAACA,KAAKA,GAAGA,oBAAmBA,IAAoBA,CAAEA,CAACA,MAAMA,KAAKA,MAAMA,CAACA,CAACA,CAACA;4BACxEA,KAAKA,EAAEA,CAACA;4BACRA,EAAEA,CAACA,CAACA,KAAKA,IAAIA,EAAEA,CAACA;gCAACA,MAAMA,CAACA,IAAIA,CAACA;wBACjCA,CAACA;oBACLA,CAACA;gBACLA,CAACA;gBACDA,MAAMA,CAACA,KAAKA,CAACA;YACjBA,CAACA;YAEDR,SAASA,mBAAmBA,CAACA,MAAkBA,EAAEA,MAAkBA,EAAEA,YAAqBA;gBACtFS,EAAEA,CAACA,CAACA,QAAQA,KAAKA,gBAAgBA,CAACA,CAACA,CAACA;oBAChCA,MAAMA,CAACA,qBAAqBA,CAACA,MAAMA,EAAEA,MAAMA,CAACA,CAACA;gBACjDA,CAACA;gBACDA,IAAIA,MAAMA,GAAGA,aAAYA,CAACA;gBAC1BA,IAAIA,UAAUA,GAAGA,yBAAyBA,CAACA,MAAMA,CAACA,CAACA;gBACnDA,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,UAAUA,CAACA,MAAMA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;oBACzCA,IAAIA,UAAUA,GAAGA,UAAUA,CAACA,CAACA,CAACA,CAACA;oBAC/BA,IAAIA,UAAUA,GAAGA,iBAAiBA,CAACA,MAAMA,EAAEA,UAAUA,CAACA,IAAIA,CAACA,CAACA;oBAC5DA,EAAEA,CAACA,CAACA,UAAUA,KAAKA,UAAUA,CAACA,CAACA,CAACA;wBAC5BA,EAAEA,CAACA,CAACA,CAACA,UAAUA,CAACA,CAACA,CAACA;4BACdA,EAAEA,CAACA,CAACA,QAAQA,KAAKA,eAAeA,IAAIA,CAACA,kBAAkBA,CAACA,UAAUA,CAACA,CAACA,CAACA,CAACA;gCAClEA,EAAEA,CAACA,CAACA,YAAYA,CAACA,CAACA,CAACA;oCACfA,WAAWA,CAACA,cAAWA,CAACA,+BAA+BA,EAAEA,cAAcA,CAACA,UAAUA,CAACA,EAAEA,YAAYA,CAACA,MAAMA,CAACA,CAACA,CAACA;gCAC/GA,CAACA;gCACDA,MAAMA,CAACA,aAAaA,CAACA;4BACzBA,CAACA;wBACLA,CAACA;wBACDA,IAAIA,CAACA,EAAEA,CAACA,CAACA,CAACA,CAACA,UAAUA,CAACA,KAAKA,GAAGA,yBAAqBA,CAACA,CAACA,CAACA,CAACA;4BACnDA,IAAIA,WAAWA,GAAGA,6BAA6BA,CAACA,UAAUA,CAACA,CAACA;4BAC5DA,IAAIA,WAAWA,GAAGA,6BAA6BA,CAACA,UAAUA,CAACA,CAACA;4BAC5DA,EAAEA,CAACA,CAACA,WAAWA,GAAGA,gBAAiBA,IAAIA,WAAWA,GAAGA,gBAAiBA,CAACA,CAACA,CAACA;gCACrEA,EAAEA,CAACA,CAACA,UAAUA,CAACA,gBAAgBA,KAAKA,UAAUA,CAACA,gBAAgBA,CAACA,CAACA,CAACA;oCAC9DA,EAAEA,CAACA,CAACA,YAAYA,CAACA,CAACA,CAACA;wCACfA,EAAEA,CAACA,CAACA,WAAWA,GAAGA,gBAAiBA,IAAIA,WAAWA,GAAGA,gBAAiBA,CAACA,CAACA,CAACA;4CACrEA,WAAWA,CAACA,cAAWA,CAACA,wDAAwDA,EAAEA,cAAcA,CAACA,UAAUA,CAACA,CAACA,CAACA;wCAClHA,CAACA;wCACDA,IAAIA,CAACA,CAACA;4CACFA,WAAWA,CAACA,cAAWA,CAACA,iDAAiDA,EAAEA,cAAcA,CAACA,UAAUA,CAACA,EACjGA,YAAYA,CAACA,WAAWA,GAAGA,gBAAiBA,GAAGA,MAAMA,GAAGA,MAAMA,CAACA,EAC/DA,YAAYA,CAACA,WAAWA,GAAGA,gBAAiBA,GAAGA,MAAMA,GAAGA,MAAMA,CAACA,CAACA,CAACA;wCACzEA,CAACA;oCACLA,CAACA;oCACDA,MAAMA,CAACA,aAAaA,CAACA;gCACzBA,CAACA;4BACLA,CAACA;4BACDA,IAAIA,CAACA,EAAEA,CAACA,CAACA,WAAWA,GAAGA,kBAAmBA,CAACA,CAACA,CAACA;gCACzCA,IAAIA,qBAAqBA,GAAGA,UAAUA,CAACA,MAAMA,IAAIA,UAAUA,CAACA,MAAMA,CAACA,KAAKA,GAAGA,cAAiBA,CAACA;gCAC7FA,IAAIA,WAAWA,GAAGA,qBAAqBA,GAAkBA,uBAAuBA,CAACA,UAAUA,CAACA,MAAMA,CAACA,GAAGA,SAASA,CAACA;gCAChHA,IAAIA,WAAWA,GAAkBA,uBAAuBA,CAACA,UAAUA,CAACA,MAAMA,CAACA,CAACA;gCAC5EA,EAAEA,CAACA,CAACA,CAACA,WAAWA,IAAIA,CAACA,WAAWA,CAACA,WAAWA,EAAEA,WAAWA,CAACA,CAACA,CAACA,CAACA;oCACzDA,EAAEA,CAACA,CAACA,YAAYA,CAACA,CAACA,CAACA;wCACfA,WAAWA,CAACA,cAAWA,CAACA,gEAAgEA,EACpFA,cAAcA,CAACA,UAAUA,CAACA,EAAEA,YAAYA,CAACA,WAAWA,IAAIA,MAAMA,CAACA,EAAEA,YAAYA,CAACA,WAAWA,CAACA,CAACA,CAACA;oCACpGA,CAACA;oCACDA,MAAMA,CAACA,aAAaA,CAACA;gCACzBA,CAACA;4BACLA,CAACA;4BACDA,IAAIA,CAACA,EAAEA,CAACA,CAACA,WAAWA,GAAGA,kBAAmBA,CAACA,CAACA,CAACA;gCACzCA,EAAEA,CAACA,CAACA,YAAYA,CAACA,CAACA,CAACA;oCACfA,WAAWA,CAACA,cAAWA,CAACA,sDAAsDA,EAC1EA,cAAcA,CAACA,UAAUA,CAACA,EAAEA,YAAYA,CAACA,MAAMA,CAACA,EAAEA,YAAYA,CAACA,MAAMA,CAACA,CAACA,CAACA;gCAChFA,CAACA;gCACDA,MAAMA,CAACA,aAAaA,CAACA;4BACzBA,CAACA;4BACDA,IAAIA,OAAOA,GAAGA,WAAWA,CAACA,eAAeA,CAACA,UAAUA,CAACA,EAAEA,eAAeA,CAACA,UAAUA,CAACA,EAAEA,YAAYA,CAACA,CAACA;4BAClGA,EAAEA,CAACA,CAACA,CAACA,OAAOA,CAACA,CAACA,CAACA;gCACXA,EAAEA,CAACA,CAACA,YAAYA,CAACA,CAACA,CAACA;oCACfA,WAAWA,CAACA,cAAWA,CAACA,oCAAoCA,EAAEA,cAAcA,CAACA,UAAUA,CAACA,CAACA,CAACA;gCAC9FA,CAACA;gCACDA,MAAMA,CAACA,aAAaA,CAACA;4BACzBA,CAACA;4BACDA,MAAMA,IAAIA,OAAOA,CAACA;4BAClBA,EAAEA,CAACA,CAACA,kBAAkBA,CAACA,UAAUA,CAACA,IAAIA,CAACA,kBAAkBA,CAACA,UAAUA,CAACA,CAACA,CAACA,CAACA;gCAQpEA,EAAEA,CAACA,CAACA,YAAYA,CAACA,CAACA,CAACA;oCACfA,WAAWA,CAACA,cAAWA,CAACA,uDAAuDA,EAC3EA,cAAcA,CAACA,UAAUA,CAACA,EAAEA,YAAYA,CAACA,MAAMA,CAACA,EAAEA,YAAYA,CAACA,MAAMA,CAACA,CAACA,CAACA;gCAChFA,CAACA;gCACDA,MAAMA,CA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gCACpDA,EAAEA,CAACA,CAACA,OAAOA,CAACA,CAACA,CAACA;oCACVA,MAAMA,IAAIA,OAAOA,CAACA;oCAClBA,SAASA,GAAGA,aAAaA,CAACA;oCAC1BA,QAAQA,CAACA,KAAKA,CAACA;gCACnBA,CAACA;gCAEDA,WAAWA,GAAGA,KAAKA,CAACA;4BACxBA,CAACA;wBACLA,CAACA;wBACDA,MAAMA,CAACA,aAAaA,CAACA;oBACzBA,CAACA;gBACLA,CAACA;gBACDA,MAAMA,CAACA,MAAMA,CAACA;YAClBA,CAACA;YAEDX,SAASA,kBAAkBA,CAACA,MAAiBA,EAAEA,MAAiBA,EAAEA,YAAqBA;gBACnFY,EAAEA,CAACA,CAACA,MAAMA,KAAKA,MAAMA,CAACA,CAACA,CAACA;oBACpBA,MAAMA,CAACA,aAAYA,CAACA;gBACxBA,CAACA;gBACDA,EAAEA,CAACA,CAACA,CAACA,MAAMA,CAACA,gBAAgBA,IAAIA,MAAMA,CAACA,gBAAgBA,GAAGA,MAAMA,CAACA,UAAUA,CAACA,MAAMA,CAACA,CAACA,CAACA;oBACjFA,MAAMA,CAACA,aAAaA,CAACA;gBACzBA,CAACA;gBACDA,IAAIA,SAASA,GAAGA,MAAMA,CAACA,UAAUA,CAACA,MAAMA,CAACA;gBACzCA,IAAIA,SAASA,GAAGA,MAAMA,CAACA,UAAUA,CAACA,MAAMA,CAACA;gBACzCA,IAAIA,UAAkBA,CAACA;gBACvBA,EAAEA,CAACA,CAACA,MAAMA,CAACA,gBAAgBA,IAAIA,MAAMA,CAACA,gBAAgBA,CAACA,CAACA,CAACA;oBACrDA,UAAUA,GAAGA,SAASA,GAAGA,SAASA,GAAGA,SAASA,GAAGA,SAASA,CAACA;oBAC3DA,SAASA,EAAEA,CAACA;oBACZA,SAASA,EAAEA,CAACA;gBAChBA,CAACA;gBACDA,IAAIA,CAACA,EAAEA,CAACA,CAACA,MAAMA,CAACA,gBAAgBA,CAACA,CAACA,CAACA;oBAC/BA,SAASA,EAAEA,CAACA;oBACZA,UAAUA,GAAGA,SAASA,CAACA;gBAC3BA,CAACA;gBACDA,IAAIA,CAACA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,MAAMA,CAACA,sBAAsBA,CAACA,IAAIA,CAACA,CAACA;YACxCA,CAACA;YACDA,IAAIA,aAA0BA,CAACA;YAC/BA,IAAIA,KAAKA,GAAeA,IAAKA,CAACA,KAAKA,CAACA;YACpCA,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,KAAKA,CAACA,MAAMA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;gBAGpCA,EAAEA,CAACA,CAACA,aAAaA,IACbA,gCAAgCA,CAACA,KAAKA,CAACA,CAACA,CAACA,EAAEA,YAAkBA,CAACA,CAACA,MAAMA,GAAGA,CAACA,CAACA,CAACA,CAACA;oBAC5EA,MAAMA,CAACA,SAASA,CAACA;gBACrBA,CAACA;gBAEDA,IAAIA,SAASA,GAAGA,sBAAsBA,CAACA,KAAKA,CAACA,CAACA,CAACA,CAACA,CAACA;gBACjDA,EAAEA,CAACA,CAACA,SAASA,CAACA,CAACA,CAACA;oBACZA,EAAEA,CAACA,CAACA,CAACA,aAAaA,CAACA,CAACA,CAACA;wBAEjBA,aAAaA,GAAGA,CAACA,SAASA,CAACA,CAACA;oBAChCA,CAACA;oBACDA,IAAIA,CAACA,EAAEA,CAACA,CAACA,CAACA,iBAAiBA,CAACA,aAAaA,CAACA,CAACA,CAACA,EAAEA,SAASA,EAAyBA,KAAKA,EAAEA,YAAYA,CAACA,CAACA,CAACA,CAACA;wBAEnGA,MAAMA,CAACA,SAASA,CAACA;oBACrBA,CAACA;oBACDA,IAAIA,CAACA,CAACA;wBAEFA,aAAaA,CAACA,IAAIA,CAACA,SAASA,CAACA,CAACA;oBAClCA,CAACA;gBACLA,CAACA;YACLA,CAACA;YAGDA,IAAIA,MAAiBA,CAACA;YACtBA,EAAEA,CAACA,CAACA,aAAaA,CAACA,CAACA,CAACA;gBAChBA,MAAMA,GAAGA,cAAcA,CAACA,aAAaA,CAACA,CAACA,CAACA,CAACA,CAACA;gBAE1CA,MAAMA,CAACA,kBAAkBA,GAAGA,SAASA,CAACA;gBACtCA,MAAMA,CAACA,eAAeA,GAAGA,aAAaA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A,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,eAAeA,CAACA;4BAC9CA,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;gBACLA,CAACA;gBAEDA,MAAMA,CAACA,SAASA,CAACA;YACrBA,CAACA;YASDD,SAASA,iBAAiBA;gBACtBE,IAAIA,MAAMA,GAAGA,UAAUA,CAACA;gBACxBA,IAAIA,UA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,CAACA,CAACA,CAACA;wBACjEA,EAAEA,CAACA,CAACA,4BAA4BA,CAACA,IAAIA,CAACA,CAACA,CAACA,CAACA;4BACrCA,8BAA8BA,CAACA,SAASA,EAAEA,mBAAmBA,EAAEA,gBAAgBA,IAAIA,cAAcA,CAACA,CAACA;wBACvGA,CAACA;wBACDA,EAAEA,CAACA,CAACA,CAACA,IAAIA,CAACA,IAAIA,CAACA,CAACA,CAACA;4BACbA,SAASA,CAACA,kBAAkBA,GAAGA,aAAaA,CAACA;4BAC7CA,IAAIA,UAAUA,GAAGA,qBAAqBA,CAACA,IAAIA,EAAEA,gBAAgBA,CAACA,CAACA;4BAC/DA,EAAEA,CAACA,CAACA,SAASA,CAACA,kBAAkBA,KAAKA,aAAaA,CAACA,CAACA,CAACA;gCACjDA,SAASA,CAACA,kBAAkBA,GAAGA,UAAUA,CAACA;4BAC9CA,CAACA;wBACLA,CAACA;oBACLA,CAACA;oBACDA,yBAAyBA,CAACA,IAAIA,CAACA,CAACA;gBACpCA,CAACA;YACLA,CAACA;YACDA,MAAMA,CAACA,IAAIA,CAACA;QAChBA,CAACA;QAEDnU,SAASA,2BAA2BA,CAACA,IAAwBA;YACzDoU,EAAEA,CAACA,CAACA,IAAIA,CAACA,IAAIA,CAACA,CAACA,CAACA;gBACZA,+DAA+DA,CAACA,IAAIA,EAAEA,mBAAmBA,CAACA,IAAIA,CAACA,IAAIA,CAACA,CAACA,CAACA;YAC1GA,CAACA;YACDA,EAAEA,CAACA,CAACA,IAAIA,CAACA,IAAIA,CAACA,IAAIA,KAAKA,uBAAwBA,CAACA,CAACA,CAACA;gBAC9CA,kBAAkBA,CAACA,IAAIA,CAACA,IAAIA,CAACA,CAACA;YAClCA,CAACA;YACDA,IAAIA,CAACA,CAACA;gBACFA,IAAIA,QAAQA,GAAGA,eAAeA,CAACA,IAAIA,CAACA,IAAIA,CAACA,CAACA;gBAC1CA,EAAEA,CAACA,CAACA,IAAIA,CAACA,IAAIA,CAACA,CAACA,CAACA;oBACZA,qBAAqBA,CAACA,QAAQA,EAAEA,mBAAmBA,CAACA,IAAIA,CAACA,IAAIA,CA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BACnCA,4BAA4BA,CAACA,oBAAoBA,CAACA,WAAWA,CAACA,CAACA;YACnEA,CAACA;QACLA,CAACA;QAED5V,SAASA,yBAAyBA,CAACA,IAA0BA;YACzD8V,mBAAmBA,CAACA,IAAIA,CAACA,cAAcA,CAACA,CAACA;YACzCA,UAAOA,CAACA,IAAIA,CAACA,UAAUA,EAAEA,cAAcA,CAACA,CAACA;YACzCA,EAAEA,CAACA,CAACA,IAAIA,CAACA,IAAIA,CAACA,CAACA,CAACA;gBACZA,kBAAkBA,CAACA,IAAIA,CAACA,IAAIA,CAACA,CAACA;YAClCA,CAACA;YACDA,EAAEA,CAACA,CAACA,aAAaA,CAACA,CAACA,CAACA;gBAChBA,uCAAuCA,CAACA,IAAIA,EAAEA,IAAIA,CAACA,IAAIA,CAACA,CAACA;gBACzDA,sCAAsCA,CAACA,IAAIA,EAAEA,IAAIA,CAACA,IAAIA,CAACA,CAACA;gBACxDA,+CAA+CA,CAACA,IAAIA,EAAEA,IAAIA,CAACA,IAAIA,CAACA,CAACA;gBACjEA,0CAA0CA,CAACA,IAAIA,CAACA,CAACA;gBACjDA,EAAEA,CAACA,CAACA,eAAeA,CAACA,aAAaA,IAAIA,CAACA,IAAIA,CAACA,IAAIA,CAACA,CAACA,CAACA;oBAC9CA,MAAMA,CAACA,CAACA,IAAIA,CAACA,IAAIA,CAACA,CAACA,CAACA;wBAChBA,KAAKA,4BAA6BA;4BAC9BA,KAAKA,CAACA,IAAIA,EAAEA,cAAWA,CAACA,wFAAwFA,CAACA,CAACA;4BAClHA,KAAKA,CAACA;wBACVA,KAAKA,uBAAwBA;4BACzBA,KAAKA,CAACA,IAAIA,EAAEA,cAAWA,CAACA,mFAAmFA,CAACA,CAACA;4BAC7GA,KAAKA,CAACA;oBACdA,CAACA;gBACLA,CAACA;YACLA,CAACA;YAEDA,oCAAoCA,CAACA,IAAIA,CAACA,CAACA;QAC/CA,CAACA;QAED9V,SAASA,oCAAoCA,CAACA,IAAUA;YACpD+V,EAAEA,CAACA,CAACA,IAAIA,CAACA,IAAIA,KAAKA,8BAA+BA,CAACA,CAACA,CAACA;gBAChDA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ACA,EAAEA,YAAYA,CAACA,IAAIA,CAACA,CAACA,CAACA;oBAC1OA,CAACA;gBACLA,CAACA;YACLA,CAACA;QACLA,CAACA;QAEDhY,SAASA,sBAAsBA,CAACA,IAAuBA;YACnDiY,UAAOA,CAACA,IAAIA,CAACA,YAAYA,EAAEA,wBAAwBA,CAACA,CAACA;QACzDA,CAACA;QAEDjY,SAASA,wBAAwBA,CAACA,IAAyBA;YACvDkY,eAAeA,CAACA,IAAIA,CAACA,UAAUA,CAACA,CAACA;QACrCA,CAACA;QAEDlY,SAASA,gBAAgBA,CAACA,IAAiBA;YACvCmY,eAAeA,CAACA,IAAIA,CAACA,UAAUA,CAACA,CAACA;YACjCA,kBAAkBA,CAACA,IAAIA,CAACA,aAAaA,CAACA,CAACA;YACvCA,kBAAkBA,CAACA,IAAIA,CAACA,aAAaA,CAACA,CAACA;QAC3CA,CAACA;QAEDnY,SAASA,gBAAgBA,CAACA,IAAiBA;YACvCoY,kBAAkBA,CAACA,IAAIA,CAACA,SAASA,CAACA,CAACA;YACnCA,eAAeA,CAACA,IAAIA,CAACA,UAAUA,CAACA,CAACA;QACrCA,CAACA;QAEDpY,SAASA,mBAAmBA,CAACA,IAAoBA;YAC7CqY,eAAeA,CAACA,IAAIA,CAACA,UAAUA,CAACA,CAACA;YACjCA,kBAAkBA,CAACA,IAAIA,CAACA,SAASA,CAACA,CAACA;QACvCA,CAACA;QAEDrY,SAASA,iBAAiBA,CAACA,IAAkBA;YACzCsY,EAAEA,CAACA,CAACA,IAAIA,CAACA,YAAYA,CAACA;gBAACA,UAAOA,CAACA,IAAIA,CAACA,YAAYA,EAAEA,wBAAwBA,CAACA,CAACA;YAC5EA,EAAEA,CAACA,CAACA,IAAIA,CAACA,WAAWA,CAACA;gBAACA,eAAeA,CAACA,IAAIA,CAACA,WAAWA,CAACA,CAACA;YACxDA,EAAEA,CAACA,CAACA,IAAIA,CAACA,SAASA,CAACA;gBAACA,eAAeA,CAACA,IAAIA,CAACA,SAASA,CAACA,CAACA;YACpDA,EAAEA,CAACA,CAACA,IAAIA,CAACA,QAAQA,CAACA;gBAACA,e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CA;4BAC1BA,EAAEA,CAACA,CAACA,WAAWA,CAACA,CAACA,CAACA;gCACdA,KAAKA,CAACA,WAAWA,EAAEA,cAAWA,CAACA,yEAAyEA,CAACA,CAACA;4BAC9GA,CAACA;4BACDA,IAAIA,CAACA,EAAEA,CAACA,CAACA,CAACA,OAAOA,CAACA,CAACA,CAACA;gCAKpBA,qBAAqBA,CAACA,eAAeA,CAACA,WAAWA,CAACA,EAAEA,QAAQA,EAAEA,WAAWA,EAAkBA,SAASA,CAACA,CAACA;4BACtGA,CAACA;wBACLA,CAACA;wBACDA,IAAIA,CAACA,EAAEA,CAACA,CAACA,WAAWA,CAACA,CAACA,CAACA;4BACnBA,EAAEA,CAACA,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,4BAAiCA,CAACA;YACzDA,CAACA;YAEDA,SAASA,wCAAwCA,CAACA,WAAuBA,EAAEA,WAAoBA;gBAC3FC,MAAMA,CAACA,YAAYA,CAACA,WAAWA,CAACA,CAACA;gBAEjCA,SAASA,YAAYA,CAACA,CAAOA;oBACzB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CAACA,CAACA;gBAClCA,EAAEA,CAACA,CAACA,CAACA,WAAWA,CAACA,IAAIA,KAAKA,0BAA2BA,IAAIA,CAACA,WAAWA,CAACA,IAAIA,KAAKA,6BAA8BA,IAA8BA,WAAYA,CAACA,IAAIA,CAACA,CAACA,IAAIA,CAACA,qBAAkBA,CAACA,WAAWA,CAACA,CAACA,CAACA,CAACA;oBACjMA,MAAMA,CAACA,WAAWA,CAACA;gBACvBA,CAACA;YACLA,CAACA;YACDA,MAAMA,CAACA,SAASA,CAACA;QACrBA,CAACA;QAED/Z,SAASA,sBAAsBA,CAACA,IAAuBA;YACnDga,EAAEA,CAACA,CAACA,aAAaA,CAACA,CAACA,CAACA;gBAChBA,sCAAsCA,CAACA,IAAIA,EAAEA,IAAIA,CAACA,IAAIA,CAACA,CAACA;gBACxDA,+CAA+CA,CAACA,IAAIA,EAAEA,IAAIA,CAACA,IAAIA,CAACA,CAACA;gBACjEA,gCAAgCA,CAACA,IAAIA,CAACA,CAACA;gBACvCA,IAAIA,MAAMA,GAAGA,eAAeA,CAACA,IAAIA,CAACA,CAACA;gBACnCA,EAAEA,CAACA,CAACA,MAAMA,CAACA,KAAKA,GAAGA,qBAAuBA,IAAIA,MAAMA,CAACA,YAAYA,CAACA,MAAMA,GAAGA,CAACA,IAAIA,CAACA,qBAAkBA,CAACA,IAAIA,CAACA,CAACA,CAACA,CAACA;oBACxGA,IAAIA,WAAWA,GAAGA,4CAA4CA,CAACA,MAAMA,CAACA,CAACA;oBACvEA,EAAEA,CAACA,CAACA,WAAWA,CAACA,CAACA,CAACA;wBACdA,EAAEA,CAACA,CAACA,sBAAmBA,CAACA,IAAIA,CAACA,KAAKA,sBAAmBA,CAACA,WAAWA,CAACA,CAACA,CAACA,CAACA;4BACjEA,KAAKA,CAACA,IAAIA,CAACA,IAAIA,EAAEA,cAAWA,CAACA,mGAAmGA,CAACA,CAACA;wBACtIA,CAACA;wBACDA,IAAIA,CAACA,EAAEA,CAACA,CAACA,IAAIA,CAACA,GAAGA,GAAGA,WAAWA,CAACA,GAAGA,CAACA,CAACA,CAACA;4BAClCA,KAAKA,CAACA,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AACA,EAAEA,CAACA,EAAEA,CAACA,EAAEA,CAACA,EAAEA,CAACA,EAAEA,CAACA,EAAEA,CAACA,EAAEA,CAACA,EAAEA,CAACA,EAAEA,EAAEA,EAAEA,CAACA,EAAEA,CAACA,EAAEA,CAACA,EAAEA,CAACA,EAAEA,CAACA,EAAEA,CAACA,EAAEA,CAACA,EAAEA,CAACA,EAAEA,CAACA,EAAEA,CAACA,EAAEA,CAACA,EAAEA,CAACA,EAAEA,CAACA,EAAEA,CAACA,EAAEA,CAACA,EAAEA,CAACA,EAAEA,CAACA,EAAEA,CAACA,EAAEA,CAACA,EAAEA,CAACA,EAAEA,EAAEA,EAAEA,CAACA,EAAEA,CAACA,EAAEA,CAACA,EAAEA,CAACA,EAAEA,CAACA,EAAEA,CAACA,EAAEA,CAACA,EAAEA,CAACA,EAAEA,CAACA,EAAEA,CAACA,EAAEA,CAACA,EAAEA,CAACA,EAAEA,EAAEA,EAAEA,CAACA,EAAEA,CAACA,EAAEA,CAACA,EAAEA,CAACA,EAAEA,CAACA,EAAEA,CAACA,EAAEA,CAACA,EAAEA,CAACA,EAAEA,CAACA,EAAEA,CAACA,EAAEA,CAACA,EAAEA,CAACA,EAAEA,CAACA,EAAEA,CAACA,EAAEA,CAACA,EAAEA,CAACA,EAAEA,CAACA,EAAEA,CAACA,EAAEA,CAACA,EAAEA,CAACA,EAAEA,CAACA,EAAEA,CAACA,EAAEA,CAACA,EAAEA,CAACA,EAAEA,CAACA,EAAEA,CAACA,EAAEA,CAACA,EAAEA,CAACA,EAAEA,CAACA,EAAEA,CAACA,EAAEA,CAACA,EAAEA,CAACA,EAAEA,CAACA,EAAEA,CAACA,EAAEA,CAACA,EAAEA,CAACA,EAAEA,CAACA,EAAEA,CAACA,EAAEA,CAACA,EAAEA,CAACA,EAAEA,CAACA,EAAEA,CAACA,EAAEA,CAACA,EAAEA,CAACA,EAAEA,CAACA,EAAEA,CAACA,EAAEA,CAACA,EAAEA,CAACA,EAAEA,CAACA,EAAEA,CAACA,EAAEA,CAACA,EAAEA,CAACA,EAAEA,CAACA,EAAEA,CAACA,EAAEA,CAACA,EAAEA,CAACA,EAAEA,C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AACA,EAAEA,CAACA,CAACA,GAAGA,KAAKA,iBAAuBA,CAACA,CAACA,CAACA;oBACvCA,KAAKA,EAAEA,CAACA;oBACRA,EAAEA,CAACA,CAACA,GAAGA,CAACA,UAAUA,CAACA,KAAKA,CAACA,KAAKA,eAAqBA,CAACA,CAACA,CAACA;wBAClDA,KAAKA,EAAEA,CAACA;wBACRA,MAAMA,CAACA,qCAAsCA,CAACA;oBAClDA,CAACA;oBACDA,IAAIA,CAACA,CAACA;wBACFA,MAAMA,CAACA,8BAAgCA,CAACA;oBAC5CA,CAACA;gBACLA,CAACA;gBACDA,IAAIA,CAACA,CAACA;oBACFA,MAAMA,CAACA,sBAAwBA,CAACA;gBACpCA,CAACA;YACLA,CAACA;YAED7B,SAASA,oBAAoBA,CAACA,oBAA6BA;gBACvD8B,EAAEA,CAACA,CAACA,oBAAoBA,CAACA,CAACA,CAACA;oBACvBA,IAAIA,GAAGA,GAAGA,GAAGA,CAACA,UAAUA,CAACA,KAAKA,CAACA,CAACA;oBAChCA,EAAEA,CAACA,CAACA,GAAGA,KAAKA,oBAA0BA,CAACA,CAACA,CAACA;wBAErCA,KAAKA,EAAEA,CAACA;wBACRA,IAAIA,GAAGA,GAAGA,GAAGA,CAACA,UAAUA,CAACA,KAAKA,CAACA,CAACA;wBAChCA,EAAEA,CAACA,CAACA,GAAGA,KAAKA,oBAA0BA,CAACA,CAACA,CAACA;4BAErCA,KAAKA,EAAEA,CAACA;4BACRA,IAAIA,GAAGA,GAAGA,GAAGA,CAACA,UAAUA,CAACA,KAAKA,CAACA,CAACA;4BAChCA,EAAEA,CAACA,CAACA,GAAGA,KAAKA,eAAqBA,CAACA,CAACA,CAACA;gCAEhCA,KAAKA,EAAEA,CAACA;gCACRA,MAAMA,CAACA,sDAAuDA,CAACA;4BACnEA,CAACA;4BACDA,IAAIA,CAACA,CAACA;gCACFA,MAAMA,CAACA,gDAAiDA,CAACA;4BAC7DA,CAACA;wBACLA,CAACA;wBACDA,IAAIA,CAACA,EAAEA,CAACA,CAACA,GAAGA,KAAKA,eAAqBA,CAACA,CAACA,CAACA;4BAErCA,KAAKA,EAAEA,CAACA;4BACRA,MAAMA,CAACA,2CAA4CA,CAACA;wBACxDA,CAACA;wBACDA,IAAIA,CAACA,CAACA;4BACFA,MAAMA,CAACA,qCAAsCA,CAACA;wBAClDA,CAACA;oBACLA,CAACA;oBACDA,IAAIA,CAACA,EAAEA,CAACA,CAACA,GAAGA,KAAKA,eAAqBA,CAACA,CAACA,CAACA;wBAErCA,KAAKA,EAAEA,CAACA;wBACRA,MAAMA,CAACA,+BAAiCA,CAACA;oBAC7CA,CAACA;gBACLA,CAACA;gBAEDA,MAAMA,CAACA,yBAA2BA,CAACA;YACvCA,CAACA;YAED9B,SAASA,YAAYA;gBACjB+B,IAAIA,EAAEA,GAAGA,GAAGA,CAACA,UAAUA,CAACA,KAAKA,CAACA,CAACA;gBAC/BA,EAAEA,CAACA,CAACA,EAAEA,KAAKA,eAAqBA,CAACA,CAACA,CAACA;oBAC/BA,KAAKA,EAAEA,CAACA;oBACRA,MAAMA,CAACA,wBAAyBA,CAACA;gBACrCA,CAACA;gBACDA,IAAIA,CAACA,EAAEA,CAACA,CAACA,EAAEA,KAAKA,aAAkBA,CAACA,CAACA,CAACA;oBACjCA,KAAKA,EAAEA,CAACA;oBACRA,MAAMA,CAACA,qBAAsBA,CAACA;gBAClCA,CAACA;gBACDA,IAAIA,CAACA,CAACA;oBACFA,MAAMA,CAACA,kBAAmBA,CAACA;gBAC/BA,CAACA;YACLA,CAACA;YAED/B,SAASA,cAAcA;gBACnBgC,EAAEA,CAACA,CAACA,GAAGA,CAACA,UAAUA,CAACA,KAAKA,CAACA,KAAKA,eAAqBA,CAACA,CAACA,CAACA;oBAClDA,KAAKA,EAAEA,CAACA;oBACRA,MAAMA,CAACA,0BAA2BA,CAACA;gBACvCA,CAACA;gBACDA,IAAIA,CAACA,CAACA;oBACFA,MAAMA,CAACA,oBAAqBA,CAACA;gBACjCA,CAACA;YACLA,CAACA;YAEDhC,SAASA,mBAAmBA,CAACA,oBAA6BA,EAAEA,SAAiBA;gBACzEiC,MAAMA,CAACA,oBAAoBA,GAAGA,iBAAiBA,CAACA,SAASA,CAACA,GAAGA,wBAA0BA,CAACA;YAC5FA,CAACA;YAEDjC,SAASA,iBAAiBA,CAACA,SAAiBA;gBACxCkC,IAAIA,mBAAmBA,GAAGA,SAASA,KAAKA,iBAAuBA,CAACA;gBAEhEA,OAAOA,IAAIA,EAAEA,CAACA;oBACVA,EAAEA,CAACA,CAACA,KAAKA,KAAKA,GAAGA,CAACA,CAACA,CAACA;wBAEhBA,gBAAgBA,CAACA,GAAGA,EAAEA,CAACA,EAAEA,yBAAcA,CAACA,6BAA6BA,CAACA,CAACA;wBACvEA,KAAKA,CAACA;oBACVA,CAACA;oBAEDA,IAAIA,EAAEA,GAAGA,GAAGA,CAACA,UAAUA,CAACA,KAAKA,CAACA,CAACA;oBAC/BA,KAAKA,EAAEA,CAACA;oBAERA,EAAEA,CAACA,CAACA,EAAEA,KAAKA,iBAAuBA,CAACA,CAACA,CAACA;wBACjCA,KAAKA,CAACA;oBACVA,CAACA;oBAEDA,EAAEA,CAACA,CAACA,EAAEA,KAAKA,UAAgBA,IACvBA,KAAKA,GAAGA,GAAGA,IACXA,GAAGA,CAACA,UAAUA,CAACA,KAAKA,CAACA,KAAKA,mBAAwBA,CAACA,CAACA,CAACA;wBAErDA,KAAKA,EAAEA,CAACA;wBACRA,MAAMA,CAACA,mBAAmBA,GAAGA,2BAA6BA,GAAGA,4BAA8BA,CAACA;oBAChGA,CAACA;gBACLA,CAACA;gBAEDA,MAAMA,CAACA,mBAAmBA,GAAGA,oCAAsCA,GAAGA,yBAA2BA,CAACA;YACtGA,CAACA;YAEDlC,SAASA,kBAAkBA;gBACvBmC,IAAIA,SAASA,GAAGA,GAAGA,CAACA,UAAUA,CAACA,KAAKA,CAACA,CAACA;gBACtCA,EAAEA,CAACA,CAACA,SAASA,KAAKA,eAAqBA,CAACA,CAACA,CAACA;oBACtCA,KAAKA,EAAEA,CAACA;oBACRA,MAAMA,CAACA,8BAA+BA,CAACA;gBAC3CA,CAACA;gBACDA,IAAIA,CAACA,EAAEA,CAACA,CAACA,SAASA,KAAKA,kBAAwBA,CAACA,CAACA,CAACA;oBAC9CA,KAAKA,EAAEA,CAACA;oBACRA,MAAMA,CAACA,iCAAkCA,CAACA;gBAC9CA,CAACA;gBACDA,IAAIA,CAACA,CAACA;oBACFA,MAAMA,CAACA,wBAAyBA,CAACA;gBACrCA,CAACA;YACLA,CAACA;YAEDnC,SAASA,gBAAgBA;gBACrBoC,EAAEA,CAACA,CAACA,GAAGA,CAACA,UAAUA,CAACA,KAAKA,CAACA,KAAKA,eAAqBA,CAACA,CAACA,CAACA;oBAClDA,KAAKA,EAAEA,CAACA;oBACRA,MAAMA,CAACA,4BAA6BA,CAACA;gBACzCA,CAACA;gBACDA,IAAIA,CAACA,CAACA;oBACFA,MAAMA,CAACA,qBAAuBA,CAACA;gBACnCA,CAACA;YACLA,CAACA;YAEDpC,SAASA,cAAcA;gBACnBqC,IAAIA,SAASA,GAAGA,GAAGA,CAACA,UAAUA,CAACA,KAAKA,CAACA,CAACA;gBAEtCA,EAAEA,CAACA,CAACA,SAASA,KAAKA,eAAqBA,CAACA,CAACA,CAACA;oBACtCA,KAAKA,EAAEA,CAACA;oBACRA,MAAMA,CAACA,0BAA2BA,CAACA;gBACvCA,CAACA;gBACDA,IAAIA,CAACA,EAAEA,CAACA,CAACA,SAASA,KAAKA,cAAoBA,CAACA,CAACA,CAACA;oBAC1CA,KAAKA,EAAEA,CAACA;oBACRA,MAAMA,CAACA,wBAA0BA,CAACA;gBACtCA,CAACA;gBACDA,IAAIA,CAACA,CAACA;oBACFA,MAAMA,CAACA,mBAAqBA,CAACA;gBACjCA,CAACA;YACLA,CAACA;YAEDrC,SAASA,aAAaA;gBAClBsC,IAAIA,SAASA,GAAGA,GAAGA,CAACA,UAAUA,CAACA,KAAKA,CAACA,CAACA;gBACtCA,EAAEA,CAACA,CAACA,SAASA,KAAKA,eAAqBA,CAACA,CAACA,CAACA;oBACtCA,KAAKA,EAAEA,CAACA;oBACRA,MAAMA,CAACA,yBAA0BA,CAACA;gBACtCA,CAACA;gBACDA,IAAIA,CAACA,EAAEA,CAACA,CAACA,SAASA,KAAKA,aAAmBA,CAACA,CAACA,CAACA;oBACzCA,KAAKA,EAAEA,CAACA;oBACRA,MAAMA,CAACA,sBAAwBA,CAACA;gBACpCA,CAACA;gBACDA,IAAIA,CAACA,CAACA;oBACFA,MAAMA,CAACA,kBAAoBA,CAACA;gBAChCA,CAACA;YACLA,CAACA;YAEDtC,SAASA,iBAAiBA;gBACtBuC,EAAEA,CAACA,CAACA,GAAGA,CAACA,UAAUA,CAACA,KAAKA,CAACA,KAAKA,eAAqBA,CAACA,CAACA,CAACA;oBAClDA,KAAKA,EAAEA,CAACA;oBACRA,MAAMA,CAACA,6BAA8BA,CAACA;gBAC1CA,CAACA;gBACDA,IAAIA,CAACA,CAACA;oBACFA,MAAMA,CAACA,sBAAwBA,CAACA;gBACpCA,CAACA;YACLA,CAACA;YAEDvC,SAASA,eAAeA;gBACpBwC,IAAIA,SAASA,GAAGA,GAAGA,CAACA,UAAUA,CAACA,KAAKA,CAACA,CAACA;gBACtCA,EAAEA,CAACA,CAACA,SAASA,KAAKA,eAAqBA,CAACA,CAACA,CAACA;oBACtCA,KAAKA,EAAEA,CAACA;oBAERA,EAAEA,CAACA,CAACA,GAAGA,CAACA,UAAUA,CAACA,KAAKA,CAACA,KAAKA,eAAqBA,CAACA,CAACA,CAACA;wBAClDA,KAAKA,EAAEA,CAACA;wBAERA,MAAMA,CAACA,gCAAkCA,CAACA;oBAC9CA,CAACA;oBACDA,IAAIA,CAACA,CAACA;wBACFA,MAAMA,CAACA,0BAA4BA,CAACA;oBACxCA,CAACA;gBACLA,CAACA;gBACDA,IAAIA,CAACA,EAAEA,CAACA,CAACA,SAASA,KAAKA,oBAA0BA,CAACA,CAACA,CAACA;oBAChDA,KAAKA,EAAEA,CAACA;oBACRA,MAAMA,CAACA,+BAAiCA,CAACA;gBAC7CA,CAACA;gBACDA,IAAIA,CAACA,CAACA;oBACFA,MAAMA,CAACA,qBAAsBA,CAACA;gBAClCA,CAACA;YACLA,CAACA;YAEDxC,SAASA,YAAYA;gBACjByC,IAAIA,QAAQA,GAAGA,GAAGA,CAACA,UAAUA,CAACA,KAAKA,CAACA,CAACA;gBACrCA,EAAEA,CAACA,CAACA,wBAAaA,CAACA,cAAcA,CAACA,QAAQA,CAACA,CAACA,CAACA,CAACA;oBACzCA,iCAAiCA,EAAEA,CAACA;o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,SAASA,EAAEA,CAACA;QAC9BA,EAAEA,CAACA,CAACA,KAAKA,KAAKA,CAACA,CAACA,CAACA,CAACA;YACdA,MAAMA,CAACA,SAASA,CAACA;QACrBA,CAACA;QAEDA,MAAMA,CAACA,SAASA,CAACA,UAAUA,CAACA,KAAKA,CAACA,CAACA,UAAUA,EAAEA,EAAEA,KAAKA,GAAGA,CAACA,CAACA,CAACA;IAChEA,CAACA;IAPex8C,wBAAaA,GAAbA,aAOfA,CAAAA;IAeDA,SAAgBA,SAASA,CAACA,UAA4BA,EAAEA,QAAgBA;QACpEy8C,EAAEA,CAACA,CAACA,QAAQA,GAAGA,CAACA,CAACA,CAACA,CAACA;YACfA,MAAMA,iBAAMA,CAACA,kBAAkBA,CAACA,UAAUA,CAACA,CAACA;QAChDA,CAACA;QAEDA,IAAIA,KAAKA,GAAGA,sBAAsBA,CAACA,UAAUA,EAAEA,CAACA,EAAEA,QAAQA,CAACA,CAACA;QAC5DA,EAAEA,CAACA,CAACA,KAAKA,CAACA,CAACA,CAACA;YACRA,gBAAKA,CAACA,MAAMA,CAACA,KAAKA,CAACA,SAASA,EAAEA,GAAGA,CAACA,CAACA,CAACA;YACpCA,MAAMA,CAACA,KAAKA,CAACA;QACjBA,CAACA;QAEDA,EAAEA,CAACA,CAACA,QAAQA,KAAKA,SAASA,CAACA,UAAUA,CAACA,CAACA,CAACA,CAACA;YACrCA,MAAMA,CAACA,UAAUA,CAACA,cAAcA,CAACA;QACrCA,CAACA;QAEDA,EAAEA,CAACA,CAACA,QAAQA,GAAGA,SAASA,CAACA,UAAUA,CAACA,CAACA,CAACA,CAACA;YACnCA,MAAMA,iBAAMA,CAACA,kBAAkBA,CAACA,UAAUA,CAACA,CAACA;QAChDA,CAACA;QAEDA,MAAMA,iBAAMA,CAACA,gBAAgBA,EAAEA,CAACA;IACpCA,CAACA;IApBez8C,oBAASA,GAATA,SAoBfA,CAAAA;IAEDA,SAASA,eAAeA,CAACA,OAAuBA,EAAEA,eAAuBA,EAAEA,QAAgBA;QACvF08C,EAAEA,CAACA,CAACA,MAAMA,CAACA,OAAOA,CAACA,CAACA,CAA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,CAACA,cAAcA,CAACA,CAACA;YACrCA,IAAIA,CAACA,SAASA,CAACA,IAAIA,CAACA,aAAaA,CAACA,CAACA;YACnCA,IAAIA,CAACA,UAAUA,CAACA,IAAIA,CAACA,eAAeA,CAACA,CAACA;QAC1CA,CAACA;QAEMnB,2CAAoBA,GAA3BA,UAA4BA,IAA2BA;YACnDoB,IAAIA,CAACA,SAASA,CAACA,IAAIA,CAACA,SAASA,CAACA,CAACA;YAC/BA,IAAIA,CAACA,UAAUA,CAACA,IAAIA,CAACA,WAAWA,CAACA,CAACA;YAClCA,IAAIA,CAACA,UAAUA,CAACA,IAAIA,CAACA,UAAUA,CAACA,CAACA;YACjCA,IAAIA,CAACA,UAAUA,CAACA,IAAIA,CAACA,cAAcA,CAACA,CAACA;YACrCA,IAAIA,CAACA,SAASA,CAACA,IAAIA,CAACA,YAAYA,CAACA,CAACA;YAClCA,IAAIA,CAACA,UAAUA,CAACA,IAAIA,CAACA,eAAeA,CAACA,CAACA;QAC1CA,CAACA;QAEMpB,6CAAsBA,GAA7BA,UAA8BA,IAA6BA;YACvDqB,IAAIA,CAACA,SAASA,CAACA,IAAIA,CAACA,SAASA,CAACA,CAACA;YAC/BA,IAAIA,CAACA,UAAUA,CAACA,IAAIA,CAACA,aAAaA,CAACA,CAACA;YACpCA,IAAIA,CAACA,UAAUA,CAACA,IAAIA,CAACA,UAAUA,CAACA,CAACA;YACjCA,IAAIA,CAACA,UAAUA,CAACA,IAAIA,CAACA,WAAWA,CAACA,CAACA;YAClCA,2BAAgBA,CAACA,IAAIA,EAAEA,IAAIA,CAACA,eAAeA,CAACA,CAACA;YAC7CA,IAAIA,CAACA,kBAAkBA,CAACA,IAAIA,CAACA,cAAcA,CAACA,CAACA;QACjDA,CAACA;QAEMrB,4CAAqBA,GAA5BA,UAA6BA,IAA4BA;YACrDsB,IAAIA,CAACA,SAASA,CAACA,IAAIA,CAACA,SAASA,CAACA,CAACA;YAC/BA,IAAIA,CAACA,UAAUA,CAACA,IAAIA,CAACA,aAAaA,CAACA,CAACA;YACpCA,IAAIA,CAACA,UAAUA,CAACA,IAAIA,CAACA,WA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,CAACA,eAAwBA;gBAClDmF,IAAIA,IAAIA,GAAGA,WAAWA,EAAEA,CAACA;gBACzBA,EAAEA,CAACA,CAACA,0BAAeA,CAACA,cAAcA,CAACA,IAAIA,CAACA,CAACA,CAACA,CAACA;oBACvCA,WAAWA,CAACA,IAAIA,CAACA,CAACA;oBAClBA,MAAMA,CAAsBA,IAAIA,CAACA;gBACrCA,CAACA;gBAIDA,IAAIA,SAASA,GAAGA,cAAcA,EAAEA,CAACA;gBACjCA,EAAEA,CAACA,CAACA,wBAAwBA,EAAEA,CAACA,CAACA,CAACA;oBAC7BA,MAAMA,CAACA,2BAA2BA,CAACA,SAASA,CAACA,CAACA;gBAClDA,CAACA;gBACDA,IAAIA,CAACA,EAAEA,CAACA,CAACA,wBAAwBA,EAAEA,CAACA,CAACA,CAACA;oBAClCA,MAAMA,CAACA,2BAA2BA,CAACA,SAASA,CAACA,CAACA;gBAClDA,CAACA;gBACDA,IAAIA,CAACA,EAAEA,CAACA,CAACA,UAAUA,CAACA,eAAeA,CAACA,CAACA,CAACA,CAACA;oBACnCA,MAAMA,CAACA,aAAaA,CAACA,SAASA,CAACA,CAACA;gBACpCA,CAACA;gBACDA,IAAIA,CAACA,EAAEA,CAACA,CAACA,SAASA,CAACA,MAAMA,GAAGA,CAACA,IAAIA,qCAAqCA,CAACA,eAAeA,CAACA,CAACA,CAACA,CAACA;oBACtFA,IAAIA,YAAYA,GAAGA,WAAWA,CAACA,sBAAwBA,CAACA,CAACA;oBACzDA,IAAIA,YAAYA,GAAGA,iBAAiBA,EAAEA,CAACA;oBAMvCA,EAAEA,CAACA,CAACA,YAAYA,IAAIA,eAAeA,CAAgBA,CAACA,CAACA,CAACA,CAACA,CAACA;wBACpDA,MAAMA,CAACA,8BAA8BA,CAACA,SAASA,EAAEA,YAAYA,EAAEA,YAAYA,CAACA,CAACA;oBACjFA,CAACA;oBACDA,IAAIA,CAACA,CAACA;wBACFA,MAAMA,CAACA,8BAA8BA,CAACA,SAASA,EAAEA,YAAYA,CAACA,CAACA;oBACnEA,CAACA;gBACLA,CAACA;gBACDA,IAAIA,CAACA,CAAC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AACA,gBAAgBA,CAACA,aAAaA,CAACA,CAACA;oBAClEA,KAAKA,mBAAqBA,EAAEA,MAAMA,CAACA,iBAAiBA,CAACA,aAAaA,CAACA,CAACA;oBACpEA,KAAKA,wBAA0BA,EAAEA,MAAMA,CAACA,sBAAsBA,CAACA,aAAaA,CAACA,CAACA;gBAClFA,CAACA;gBAMDA,EAAEA,CAACA,CAACA,wCAAwCA,CAACA,aAAaA,EAAEA,aAAaA,CAACA,CAACA,CAACA,CAACA;oBACzEA,MAAMA,CAACA,SAASA,CAACA;gBACrBA,CAACA;gBACDA,IAAIA,CAACA,EAAEA,CAACA,CAACA,mBAAmBA,CAACA,aAAaA,CAACA,CAACA,CAACA,CAACA;oBAC1CA,MAAMA,CAACA,sBAAsBA,EAAEA,CAACA;gBACpCA,CAACA;gBACDA,IAAIA,CAACA,EAAEA,CAACA,CAACA,kBAAkBA,CAACA,aAAaA,CAACA,CAACA,CAACA,CAACA;oBACzCA,MAAMA,CAACA,qBAAqBA,CAACA,aAAaA,CAACA,CAACA;gBAChDA,CAACA;gBACDA,IAAIA,CAACA,EAAEA,CAACA,CAACA,qBAAqBA,CAACA,aAAaA,CAACA,CAACA,CAACA,CAACA;oBAC5CA,MAAMA,CAACA,wBAAwBA,EAAEA,CAACA;gBACtCA,CAACA;gBACDA,IAAIA,CAACA,EAAEA,CAACA,CAACA,gBAAgBA,CAACA,aAAaA,EAAEA,eAAeA,CAACA,CAACA,CAACA,CAACA;oBACxDA,MAAMA,CAACA,mBAAmBA,CAACA,aAAaA,CAACA,CAACA;gBAC9CA,CAACA;gBACDA,IAAIA,CAACA,EAAEA,CAACA,CAACA,qBAAqBA,CAACA,aAAaA,CAACA,CAACA,CAACA,CAACA;oBAC5CA,MAAMA,CAACA,wBAAwBA,EAAEA,CAACA;gBACtCA,CAACA;gBACDA,IAAIA,CAACA,CAACA;oBACFA,MAAMA,CAACA,SAASA,CAACA;gBACrBA,CAACA;YACLA,CAACA;YAEDtH,SAASA,sBAAsBA,CAACA,eAA6BA;gBACzDuH,MAAMA,CAACA,IAAIA,kCAAuBA,CAACA,YAAYA,EAAEA,YAAYA,CAACA,eAAeA,CAACA,EAAEA,+BAA+BA,CAA0BA,KAAKA,CAACA,CAACA,CAACA;YACrJA,CAACA;YAEDvH,SAASA,gBAAgBA,CAACA,SAAuBA;gBAQ7CwH,MAAMA,CAACA,IAAIA,4BAAiBA,CAACA,YAAYA,EACrCA,YAAYA,CAACA,SAASA,CAACA,EAAEA,cAAcA,CAAsBA,KAAKA,CAACA,EAAEA,QAAQA,CAACA,qBAAuBA,CAACA,EAAEA,QAAQA,CAACA,uBAAyBA,CAACA,EAC3IA,UAAUA,CAACA,eAAeA,CAACA,EAAEA,QAAQA,CAACA,wBAA0BA,CAACA,EAAEA,+BAA+BA,CAA0BA,IAAIA,CAACA,CAACA,CAACA;YAC3IA,CAACA;YAEDxH,SAASA,kBAAkBA,CAACA,YAA0BA;gBAClDyH,MAAMA,CAACA,YAAYA,CAACA,YAAYA,CAACA,IAAIA,SAASA,CAACA,CAACA,CAACA,CAACA,IAAIA,KAAKA,oBAAqBA,CAACA;YACrFA,CAACA;YAEDzH,SAASA,qBAAqBA,CAACA,eAA6BA;gBACxD0H,MAAMA,CAACA,IAAIA,iCAAsBA,CAACA,YAAYA,EAC1CA,YAAYA,CAACA,eAAeA,CAACA,EAAEA,QAAQA,CAACA,oBAAqBA,CAACA,EAAEA,cAAcA,CAAsBA,KAAKA,CAACA,CAACA,CAACA;YACpHA,CAACA;YAED1H,SAASA,iBAAiBA,CAACA,UAAwBA;gBAC/C2H,IAAIA,UAAUA,GAAGA,YAAYA,CAACA,UAAUA,CAACA,CAACA;gBAE1CA,IAAIA,qBAAqBA,GAAGA,gBAAgBA,CAACA;gBAC7CA,gBAAgBA,IAAIA,CAACA,CAACA,IAAIA,2BAAoCA,CAACA,CAACA;gBAChEA,IAAIA,KAAKA,GAAGA,mBAAmBA,EAAEA,CAACA;gBAClCA,gBAAgBA,GAAGA,qBAAqBA,CAACA;gBAEzCA,IAAIA,WAAWA,GAAsBA,SAASA,CAACA;gBAC/CA,EAAEA,CAACA,CAACA,YAAYA,EAAEA,CAACA,IAAIA,KAAKA,qBAAuBA,CAACA,CAACA,CAACA;oBAClDA,WAAWA,GAAGA,gBAAgBA,EAAEA,CAACA;gBACrCA,CAACA;gBAIDA,IAAIA,aAAaA,GAAwBA,SAASA,CAACA;gBACnDA,EAAEA,CAACA,CAACA,CAACA,WAAWA,IAAIA,YAAYA,EAAEA,CAACA,IAAIA,KAAKA,uBAAyBA,CAACA,CAACA,CAACA;oBACpEA,aAAaA,GAAGA,kBAAkBA,EAAEA,CAACA;gBACzCA,CAACA;gBAEDA,MAAMA,CAACA,IAAIA,6BAAkBA,CAACA,YAAYA,EAAEA,UAAUA,EAAEA,KAAKA,EAAEA,WAAWA,EAAEA,aAAaA,CAACA,CAACA;YAC/FA,CAACA;YAED3H,SAASA,qBAAqBA;gBAC1B4H,IAAIA,qBAAqBA,GAAGA,gBAAgBA,CAACA;gBAC7CA,gBAAgBA,IAAIA,CAACA,CAACA,IAAIA,6BAAsCA,CAACA,CAACA;gBAClEA,IAAIA,KAAKA,GAAGA,mBAAmBA,EAAEA,CAACA;gBAClCA,gBAAgBA,GAAGA,qBAAqBA,CAACA;gBAEzCA,MAAMA,CAACA,KAAKA,CAACA;YACjBA,CAACA;YAED5H,SAASA,gBAAgBA;gBACrB6H,MAAMA,CAACA,IAAIA,4BAAiBA,CAACA,YAAYA,EACrCA,QAAQA,CAACA,qBAAuBA,CAACA,EAAEA,QAAQA,CAACA,uBAAyBA,CAACA,EAAEA,kBAAkBA,EAAEA,EAC5FA,2BAA2BA,CAAyBA,KAAKA,CAACA,EAAEA,QAAQA,CAACA,wBAA0BA,CAACA,EAAEA,qBAAqBA,EAAEA,CAACA,CAACA;YACnIA,CAACA;YAED7H,SAASA,kBAAkBA;gBACvB8H,MAAMA,CAACA,IAAIA,8BAAmBA,CAACA,YAAYA,EACvCA,QAAQA,CAACA,uBAAyBA,CAACA,EACnCA,mBAAmBA,EAAEA,CAACA,CAACA;YAC/BA,CAACA;YAED9H,SAASA,kBAAkBA,CAACA,WAAyBA;gBAIjD+H,MAAMA,CAACA,IAAIA,8BAAmBA,CAACA,YAAYA,EACvCA,YAAYA,CAACA,WAAWA,CAACA,EACzBA,QAAQA,CAACA,uBAAyBA,CAACA,EACnCA,UAAUA,CAACA,eAAeA,CAACA,EAC3BA,QAAQA,CAACA,wBAA0BA,CAACA,EACpCA,cAAcA,CAAsBA,KAAKA,CAACA,CAACA,CAACA;YACpDA,CAACA;YAED/H,SAASA,mBAAmBA,CAACA,YAA0BA;gBAInDgI,MAAMA,CAACA,IAAIA,+BAAoBA,CAACA,YAAYA,EACxCA,YAAYA,CAACA,YAAYA,CAACA,EAC1BA,QAAQA,CAACA,uBAAyBA,CAACA,EACnCA,UAAUA,CAACA,eAAeA,CAACA,EAC3BA,QAAQA,CAACA,wBAA0BA,CAACA,EACpCA,cAAcA,CAAsBA,KAAKA,CAACA,CAACA,CAACA;YACpDA,CAACA;YAEDhI,SAASA,gBAAgBA,CAACA,YAA0BA,EAAEA,eAAwBA;gBAO1EiI,EAAEA,CAACA,CAACA,eAAeA,CAACA,CAACA,CAACA;oBAClBA,MAAMA,CAACA,KAAKA,CAACA;gBACjBA,CAACA;gBAEDA,MAAMA,CAACA,YAAYA,CAACA,IAAIA,KAAKA,uBAAyBA,CAACA;YAC3DA,CAACA;YAEDjI,SAASA,mBAAmBA,CAACA,cAA4BA;gBACrDkI,MAAMA,CAACA,IAAIA,+BAAoBA,CAACA,YAAYA,EAAEA,YAAYA,CAACA,cAAcA,CAACA,CAACA,CAACA;YAChFA,CAACA;YAEDlI,SAASA,wBAAwBA,CAACA,UAAwBA;gBAGtDmI,UAAUA,GAAGA,YAAYA,CAACA,UAAUA,CAACA,CAACA;gBACtCA,IAAIA,cAAcA,GAAGA,QAAQA,CAACA,uBAAyBA,CAACA,CAACA;gBAEzDA,IAAIA,aAAaA,GAAGA,YAAYA,EAAEA,CAACA;gBACnCA,IAAIA,SAASA,GAAGA,aAAaA,CAACA,IAAIA,CAACA;gBAanCA,IAAIA,WAAWA,GAAGA,SAASA,KAAKA,uBAAyBA,GACnDA,SAASA,GACTA,SAASA,KAAKA,mBAAqBA,GAC/BA,aAAaA,CAACA,wBAAwBA,CAACA,GACvCA,aAAaA,CAACA,eAAeA,CAACA,CAAAA;gBAIxCA,EAAEA,CAACA,CAACA,WAAWA,KAAKA,SAASA,IAAIA,YAAYA,EAAEA,CAACA,IAAIA,KAAKA,kBAAoBA,CAACA,CAACA,CAACA;oBAK5EA,MAAMA,CAACA,IAAIA,+BAAoBA,CAACA,YAAYA,EACxCA,UAAUA,EAAEA,cAAcA,EAAEA,WAAWA,EAAEA,QAAQA,CAACA,kBAAoBA,CAACA,EACvEA,UAAUA,CAACA,eAAeA,CAACA,EAAEA,QAAQA,CAACA,wBAA0BA,CAACA,EAAEA,cAAcA,CAAsBA,KAAKA,CAACA,CAACA,CAACA;gBACvHA,CAACA;gBACDA,IAAIA,CAACA,CAACA;oBAOFA,MAAMA,CAACA,IAAIA,6BAAkBA,CAACA,YAAYA,EACtCA,UAAUA,EAAEA,cAAcA,EAAEA,WAAWA,EACvCA,QAAQA,CAACA,uBAAyBA,CAACA,EAAEA,6BAA6BA,EAAEA,EACpEA,QAAQA,CAACA,uBAAyBA,CAACA,EAAEA,+BAA+BA,EAAEA,EACtEA,QAAQA,CAACA,wBAA0BA,CAACA,EAAEA,cAAcA,CAAsBA,KAAKA,CAACA,CAACA,CAACA;gBAC1FA,CAACA;YACLA,CAACA;YAEDnI,SAASA,6BAA6BA;gBAGlCoI,IAAIA,SAASA,GAAGA,YAAYA,EAAEA,CAACA,IAAIA,CAACA;gBACpCA,EAAEA,CAACA,CAACA,SAASA,KAAKA,uBAAyBA,IACvCA,SAASA,KAAKA,wBAA0BA,IACxCA,SAASA,KAAKA,sBAAyBA,CAACA,CAACA,CAACA;oBAC1CA,MAAMA,CAACA,UAAUA,CAACA,eAAeA,CAACA,CAACA;gBACvCA,CAACA;gBAEDA,MAAMA,CAACA,SAASA,CAACA;YACrBA,CAACA;YAEDpI,SAASA,+BAA+BA;gBAEpCqI,IAAIA,SAASA,GAAGA,YAAYA,EAAEA,CAACA,IAAIA,CAACA;gBACpCA,EAAEA,CAACA,CAACA,SAASA,KAAKA,wBAA0BA,IACxCA,SAASA,KAAKA,sBAAyBA,CAACA,CAACA,CAACA;oBAC1CA,MAAMA,CAACA,UAAUA,CAACA,eAAeA,CAACA,CAACA;gBACvCA,CAACA;gBAEDA,MAAMA,CAACA,SAASA,CAACA;YACrBA,CAACA;YAEDrI,SAASA,0BAA0BA;gBAG/BsI,IAAIA,UAAUA,GAAiBA,SAASA,CAACA;gBACzCA,EAAEA,CAACA,CAACA,CAACA,kCAAkCA,CAA0BA,KAAKA,CAACA,CAACA,CAACA,CAACA;oBACtEA,EAAEA,CAACA,CAACA,YAAYA,CAACA,YAAYA,EAAEA,CAACA,CAACA,CAACA,CAACA;wBAC/BA,MAAMA,CAACA,kBAAkBA,EAAEA,CAACA;oBAChCA,CAACA;gBACLA,CAACA;gBAEDA,MAAMA,CAACA,SAASA,CAACA;YACrBA,CAACA;YAEDtI,SAASA,mBAAmBA,CAACA,YAA0BA;gBACnDuI,MAAMA,CAACA,IAAIA,+BAAoBA,CAACA,YAAYA,EACxCA,YAAYA,CAACA,YAAYA,CAACA,EAAEA,0BAA0BA,EAAEA,EAAEA,+BAA+BA,CAA0BA,KAAKA,CAACA,CAACA,CAACA;YACnIA,CAACA;YAEDvI,SAASA,sBAAsBA,CAACA,eAA6BA;gBACzDwI,MAAMA,CAACA,IAAIA,kCAAuBA,CAACA,YAAYA,EAC3CA,YAAYA,CAACA,eAAeA,CAACA,EAAEA,0BAA0BA,EAAEA,EAAEA,+BAA+BA,CAA0BA,KAAKA,CAACA,CAACA,CAACA;YACtIA,CAACA;YAEDxI,SAASA,qBAAqBA,CAACA,cAA4BA;gBAIvDyI,MAAMA,CAACA,cAAcA,CAACA,SAASA,EAAEA,KAAKA,CAACA,IAAIA,YAAYA,EAAEA,CAACA,IAAIA,KAAKA,uBAAyBA,GACtFA,kBAAkBA,EAAEA,GACpBA,UAAUA,CAACA,eAAeA,CAACA,CAACA;YACtCA,CAACA;YAEDzI,SAASA,oBAAoBA,CAACA,aAA2BA;gBAErD0I,IAAIA,cAA4BA,CAACA;gBACjCA,IAAIA,cAA4BA,CAACA;gBAEjCA,MAAMA,CAACA,IAAIA,gCAAqBA,CAACA,YAAYA,EACzCA,YAAYA,CAACA,aAAaA,CAACA,EAC3BA,cAAcA,GAAGA,QAAQA,CAACA,uBAAyBA,CAACA,EACpDA,qBAAqBA,CAACA,cAAcA,CAACA,EACrCA,QAAQA,CAACA,wBAA0BA,CAACA,EACpCA,cAAcA,GAAGA,QAAQA,CAACA,uBAAyBA,CAACA,EACpDA,cAAcA,CAACA,SAASA,EAAEA,GAAGA,CAACA,GAAGA,eAAeA,CAAsBA,qCAA8CA,CAACA,GAAGA,EAAEA,EAC1HA,QAAQA,CAACA,wBAA0BA,CAACA,CAACA,CAACA;YAC9CA,CAACA;YAED1I,SAASA,cAAcA;gBACnB2I,EAAEA,CAACA,CAACA,0BAAeA,CAACA,cAAcA,CAACA,WAAWA,EAAEA,CAACA,CAACA,CAACA,CAACA;oBAChDA,MAAMA,CAACA,IAAIA,CAACA;gBAChBA,CAACA;gBAEDA,IAAIA,gBAAgBA,GAAGA,YAAYA,EAAEA,CAACA,IAAIA,CAACA;gBAC3CA,MAAMA,CAACA,gBAAgBA,KAAKA,oBAAsBA,IAAIA,gBAAgBA,KAAKA,uBAAyBA,CAACA;YACzGA,CAACA;YAED3I,SAASA,oBAAoBA;gBAEzB4I,IAAIA,IAAIA,GAAGA,WAAWA,EAAEA,CAACA;gBACzBA,EAAEA,CAACA,CAACA,0BAAeA,CAACA,cAAcA,CAACA,IAAIA,CAACA,CAACA,CAACA,CAACA;oBACvCA,WAAWA,CAACA,IAAIA,CAACA,CAACA;oBAClBA,MAAMA,CAAmCA,IAAIA,CAACA;gBAClDA,CAACA;gBAEDA,IAAIA,aAAaA,GAAGA,YAAYA,EAAEA,CAACA;gBACnCA,IAAIA,IAAIA,GAAGA,aAAaA,CAACA,IAAIA,CAACA;gBAC9BA,EAAEA,CAACA,CAACA,IAAIA,KAAKA,oBAAsBA,CAACA,CAACA,CAACA;oBAClCA,MAAMA,CAACA,qBAAqBA,CAACA,aAAaA,CAACA,CAACA;gBAChDA,CAACA;gBACDA,IAAIA,CAACA,EAAEA,CAACA,CAACA,IAAIA,KAAKA,uBAAyBA,CAACA,CAACA,CAACA;oBAC1CA,MAAMA,CAACA,wBAAwBA,CAACA,aAAaA,CAACA,CAACA;gBACnDA,CAACA;gBACDA,IAAIA,CAACA,CAACA;oBACFA,MAAMA,CAACA,SAASA,CAACA;gBACrBA,CAACA;YACLA,CAACA;YAED5I,SAASA,qBAAqBA,CAACA,WAAyBA;gBAKpD6I,MAAMA,CAACA,IAAIA,iCAAsBA,CAACA,YAAYA,EAC1CA,YAAYA,CAACA,WAAWA,CAACA,EACzBA,UAAUA,CAACA,eAAeA,CAACA,EAC3BA,QAAQA,CAACA,oBAAqBA,CAACA,EAC/BA,eAAeA,CAAmBA,+BAAwCA,CAACA,CAACA,CAACA;YACrFA,CAACA;YAED7I,SAASA,wBAAwBA,CAACA,cAA4BA;gBAG1D8I,MAAMA,CAACA,IAAIA,oCAAyBA,CAACA,YAAYA,EAC7CA,YAAYA,CAACA,cAAcA,CAACA,EAC5BA,QAAQA,CAACA,oBAAqBA,CAACA,EAC/BA,eAAeA,CAAmBA,+BAAwCA,CAACA,CAACA,CAACA;YACrFA,CAACA;YAED9I,SAASA,mBAAmBA,CAACA,YAA0BA;gBACnD+I,MAAMA,CAACA,IAAIA,+BAAoBA,CAACA,YAAYA,EACxCA,YAAYA,CAACA,YAAYA,CAACA,EAAEA,gCAAgCA,EAAEA,EAAEA,+BAA+BA,CAA0BA,KAAKA,CAACA,CAACA,CAACA;YACzIA,CAACA;YAED/I,SAASA,gCAAgCA;gBASrCgJ,MAAMA,CAACA,kCAAkCA,CAA0BA,KAAKA,CAACA,GAAGA,SAASA,GAAGA,UAAUA,CAACA,eAAeA,CAACA,CAACA;YACxHA,CAACA;YAEDhJ,SAASA,oBAAoBA,CAACA,aAA2BA;gBACrDiJ,MAAMA,CAACA,IAAIA,gCAAqBA,CAACA,YAAYA,EACzCA,YAAYA,CAACA,aAAaA,CAACA,EAAEA,iCAAiCA,EAAEA,EAAEA,+BAA+BA,CAA0BA,KAAKA,CAACA,CAACA,CAACA;YAC3IA,CAACA;YAEDjJ,SAASA,iCAAiCA;gBAItCkJ,MAAMA,CAACA,kCAAkCA,CAA0BA,KAAKA,CAACA,GAAGA,SAASA,GAAGA,UAAUA,CAACA,eAAeA,CAACA,CAACA;YACxHA,CAACA;YAEDlJ,SAASA,qBAAqBA,CAACA,YAA0BA;gBAErDmJ,IAAIA,SAASA,GAAGA,YAAYA,CAACA,IAAIA,CAACA;gBAClCA,MAAMA,CAACA,SAASA,KAAKA,uBAAyBA,IAAIA,SAASA,KAAKA,wBAA0BA,IAAIA,YAAYA,CAACA,YAAYA,CAACA,CAACA;YAC7HA,CAACA;YAEDnJ,SAASA,+BAA+BA;gBACpCoJ,IAAIA,aAAaA,GAAGA,YAAYA,EAAEA,CAACA;gBACnCA,MAAMA,CAACA,aAAaA,CAACA,IAAIA,KAAKA,mBAAqBA,IAAIA,YAAYA,CAACA,aAAaA,CAACA,CAACA;YACvFA,CAACA;YAEDpJ,SAASA,qCAAqCA;gBAM1CqJ,EAAEA,CAACA,CAACA,YAAYA,EAAEA,CAACA,IAAIA,KAAKA,mBAAqBA,CAACA,CAACA,CAACA;oBAChDA,MAAMA,CAACA,IAAIA,kCAAuBA,CAACA,YAAYA,CAACA,CAACA;gBACrDA,CAACA;gBAEDA,MAAMA,CAACA,UAAUA,CAACA,oCAAoCA,CAACA,CAACA;YAC5DA,CAACA;YAEDrJ,SAASA,YAAYA,CAACA,YAA0BA;gBAC5CsJ,MAAMA,CAACA,CAACA,YAAYA,CAACA,IAAIA,CAACA,CAACA,CAACA;oBAExBA,KAAKA,uBAAyBA,CAACA;oBAC/BA,KAAKA,sBAAwBA,CAACA;oBAC9BA,KAAKA,iCAAmCA,CAACA;oBAGzCA,KAAKA,oCAAsCA,CAACA;oBAC5CA,KAAKA,2BAA6BA,CAACA;oBAGnCA,KAAKA,yBAA2BA,CAACA;oBAGjCA,KAAKA,uBAAyBA,CAACA;oBAG/BA,KAAKA,sBAAwBA,CAACA;oBAG9BA,KAAKA,sBAAwBA,CAACA;oBAC9BA,KAAKA,wBAA0BA,CAACA;oBAChCA,KAAKA,kBAAoBA,CAACA;oBAC1BA,KAAKA,mBAAqBA,CAACA;oBAC3BA,KAAKA,oBAAqBA,CAACA;oBAC3BA,KAAKA,0BAA2BA,CAACA;oBAGjCA,KAAKA,uBAAyBA,CAACA;oBAM/BA,KAAKA,+BAAiCA,CAACA;oBAEvCA,KAAKA,oBAAqBA,CAACA;oBAC3BA,KAAKA,0BAA2BA,CAACA;oBAMjCA,KAAKA,qBAAuBA,CAACA;oBAC7BA,KAAKA,oBAAsBA,CAACA;oBAC5BA,KAAKA,oBAAsBA,CAACA;oBAC5BA,KAAKA,qBAAuBA,CAACA;oBAC7BA,KAAKA,oBAAsBA,CAACA;oBAG5BA,KAAKA,mBAAqBA,CAACA;oBAG3BA,KAAKA,sBAAwBA,CAACA;oBAC9BA,KAAKA,oBAAsBA,CAACA;oBAC5BA,KAAKA,sBAAwBA,CAACA;oBAG9BA,KAAKA,wBAA0BA;wBAC3BA,MAAMA,CAACA,IAAIA,CAACA;oBAEhBA,KAAKA,qBAAuBA;wBAIxBA,MAAMA,CAACA,IAAIA,CAACA;oBAEhBA,KAAKA,qBAAuBA;wBAIxBA,MAAMA,CAACA,IAAIA,CAACA;oBAEhBA,KAAKA,qBAAuBA;wBAIxBA,MAAMA,CAACA,IAAIA,CAACA;gBACpBA,CAACA;gBAEDA,MAAMA,CAACA,YAAYA,CAACA,YAAYA,CAACA,CAACA;YACtCA,CAACA;YAEDtJ,SAASA,wBAAwBA;gBAI7BuJ,MAAMA,CAACA,IAAIA,oCAAyBA,CAACA,YAAYA,EAC7CA,UAAUA,CAACA,eAAeA,CAACA,EAC3BA,+BAA+BA,CAA0BA,KAAKA,CAACA,CAACA,CAACA;YACzEA,CAACA;YAEDvJ,SAASA,gBAAgBA,CAACA,SAAuBA;gBAK7CwJ,MAAMA,CAACA,IAAIA,4BAAiBA,CAACA,YAAYA,EACrCA,YAAYA,CAACA,SAASA,CAACA,EACvBA,QAAQA,CAACA,uBAAyBA,CAACA,EACnCA,UAAUA,CAACA,eAAeA,CAACA,EAC3BA,QAAQA,CAACA,wBAA0BA,CAACA,EACpCA,cAAcA,CAAsBA,KAAKA,CAACA,EAAEA,uBAAuBA,EAAEA,CAACA,CAACA;YAC/EA,CAACA;YAEDxJ,SAASA,uBAAuBA;gBAC5ByJ,MAAMA,CAACA,YAAYA,EAAEA,CAACA,IAAIA,KAAKA,oBAAsBA,GAAGA,eAAeA,EAAEA,GAAGA,SAASA,CAACA;YAC1FA,CAACA;YAEDzJ,SAASA,eAAeA;gBACpB0J,MAAMA,CAACA,IAAIA,2BAAgBA,CAACA,YAAYA,EAAEA,QAAQA,CAACA,oBAAsBA,CAACA,EAAEA,cAAcA,CAAsBA,KAAKA,CAACA,CAACA,CAACA;YAC5HA,CAACA;YAED1J,SAASA,mBAAmBA,CAACA,aAAqBA;gBAC9C2J,MAAMA,CAACA,SAASA,CAACA,aAAaA,CAACA,CAACA,IAAIA,KAAKA,mBAAqBA,CAACA;YACnEA,CAACA;YAED3J,SAASA,sBAAsBA;gBAI3B4J,MAAMA,CAACA,IAAIA,kCAAuBA,CAACA,YAAYA,EAC3CA,cAAcA,EAAEA,EAAEA,UAAUA,CAACA,wBAAwBA,CAACA,EAAEA,+BAA+BA,CAA0BA,KAAKA,CAACA,CAACA,CAACA;YACjIA,CAACA;YAED5J,SAASA,wBAAwBA;gBAG7B6J,MAAMA,CAACA,IAAIA,oCAAyBA,CAACA,YAAYA,EAC7CA,QAAQA,CAACA,mBAAqBA,CAACA,EAC/BA,wBAAwBA,CAA2BA,gDAAwDA,CAACA,CAACA,CAACA;YACtHA,CAACA;YAED7J,SAASA,oBAAoBA;gBACzB8J,IAAIA,IAAIA,GAAGA,WAAWA,EAAEA,CAACA;gBACzBA,EAAEA,CAACA,CAACA,IAAIA,IAAIA,IAAIA,CAACA,IAAIA,KAAKA,4BAA6BA,CAACA,CAACA,CAACA;oBACtDA,MAAMA,CAACA,IAAIA,CAACA;gBAChBA,CAACA;gBAEDA,MAAMA,CAACA,YAAYA,CAACA,YAAYA,EAAEA,CAACA,CAACA;YACxCA,CAACA;YAED9J,SAASA,8BAA8BA,CAACA,IAAiBA;gBACrD+J,EAAEA,CAACA,CAACA,CAACA,IAAIA,IAAIA,IAAIA,CAACA,IAAIA,KAAKA,4BAA6BA,CAACA,CAACA,CAACA;oBACvDA,MAAMA,CAACA,KAAKA,CAACA;gBACjBA,CAACA;gBAgBDA,IAAIA,kBAAkBA,GAA6BA,IAAIA,CAACA;gBACxDA,MAAMA,CAACA,kBAAkBA,CAACA,iBAAiBA,KAAKA,SAASA,CAACA;YAC9DA,CAACA;YAED/J,SAASA,0BAA0BA;gBAC/BgK,IAAIA,IAAIA,GAAGA,WAAWA,EAAEA,CAACA;gBACzBA,EAAEA,CAACA,CAACA,8BAA8BA,CAACA,IAAIA,CAACA,CAACA,CAACA,CAACA;oBACvCA,WAAWA,CAACA,IAAIA,CAACA,CAACA;oBAClBA,MAAMA,CAA2BA,IAAIA,CAACA;gBAC1CA,CAACA;gBAEDA,EAAEA,CAACA,CAACA,CAACA,YAAYA,CAACA,YAAYA,EAAEA,CAACA,CAACA,CAACA,CAACA;oBAChCA,MAAMA,CAACA,SAASA,CAACA;gBACrBA,CAACA;gBAEDA,IAAIA,YAAYA,GAAGA,kBAAkBA,EAAEA,CAACA;gBACxCA,IAAIA,iBAAiBA,GAA4BA,SAASA,CAACA;gBAC3DA,IAAIA,cAAcA,GAAyBA,SAASA,CAACA;gBAErDA,EAAEA,CAACA,CAACA,oBAASA,CAACA,YAAYA,CAACA,GAAGA,CAACA,CAACA,CAACA,CAACA;oBAC9BA,cAAcA,GAAGA,2BAA2BA,CAAyBA,KAAKA,CAACA,CAACA;oBAE5EA,EAAEA,CAACA,CAACA,mBAAmBA,CAAiBA,KAAKA,CAACA,CAACA,CAACA,CAACA;wBAC7CA,iBAAiBA,GAAGA,sBAAsBA,EAAEA,CAACA;oBACjDA,CAACA;gBACLA,CAACA;gBAEDA,MAAMA,CAACA,IAAIA,mCAAwBA,CAACA,YAAYA,EAAEA,YAAYA,EAAEA,cAAcA,EAAEA,iBAAiBA,CAACA,CAACA;YACvGA,CAACA;YAEDhK,SAASA,mBAAmBA,CAACA,WAAoBA;gBAC7CiK,IAAIA,MAAMA,GAAGA,YAAYA,EAAEA,CAACA;gBAC5BA,EAAEA,CAACA,CAACA,MAAMA,CAACA,IAAIA,KAAKA,qBAAsBA,CAACA,CAACA,CAACA;oBACzCA,MAAMA,CAACA,IAAIA,CAACA;gBAChBA,CAACA;gBAKDA,EAAEA,CAACA,CAACA,CAACA,MAAMA,CAACA,iBAAiBA,EAAEA,CAACA,CAACA,CAACA;oBAC9BA,IAAIA,SAASA,GAAGA,MAAMA,CAACA,IAAIA,CAACA;oBAO5BA,EAAEA,CAACA,CAACA,SAASA,KAAKA,+BAAiCA,CAACA,CAACA,CAACA;wBAClDA,MAAMA,CAACA,KAAKA,CAACA;oBACjBA,CAACA;oBAODA,EAAEA,CAACA,CAACA,SAASA,KAAKA,uBAAyBA,IACvCA,WAAWA,CAACA,CAACA,CAACA;wBACdA,MAAMA,CAACA,KAAKA,CAACA;oBACjBA,CAACA;oBAEDA,MAAMA,CAACA,YAAYA,CAACA,MAAMA,CAACA,CAACA;gBAChCA,CAACA;gBAEDA,MAAMA,CAACA,KAAKA,CAACA;YACjBA,CAACA;YAEDjK,SAASA,sBAAsBA;gBAI3BkK,MAAMA,CAACA,IAAIA,kCAAuBA,CAACA,YAAYA,EAC3CA,QAAQA,CAACA,qBAAsBA,CAACA,EAChCA,iCAAiCA,EAAEA,CAACA,CAACA;YAC7CA,CAACA;YAEDlK,SAASA,eAAeA;gBAKpBmK,IAAIA,WAAWA,GAAGA,iCAAiCA,EAAEA,CAACA;gBACtDA,OAAOA,IAAIA,EAAEA,CAACA;oBACVA,IAAIA,aAAaA,GAAGA,YAAYA,EAAEA,CAACA;oBACnCA,EAAEA,CAACA,CAACA,aAAaA,CAACA,IAAIA,KAAKA,mBAAqBA,CAACA,CAACA,CAACA;wBAC/CA,KAAKA,CAACA;oBACVA,CAACA;oBAEDA,WAAWA,GAAGA,IAAIA,iCAAsBA,CAACA,YAAYA,EACjDA,WAAWA,EACXA,YAAYA,CAACA,aAAaA,CAACA,EAC3BA,iCAAiCA,EAAEA,CAACA,CAACA;gBAC7CA,CAACA;gBAEDA,MAAMA,CAACA,WAAWA,CAACA;YACvBA,CAACA;YAEDnK,SAASA,oCAAoCA;gBACzCoK,MAAMA,CAACA,0CAA0CA,CAAYA,KAAKA,CAACA,CAACA;YACxEA,CAACA;YAEDpK,SAASA,iCAAiCA;gBACtCqK,MAAMA,CAACA,0CAA0CA,CAAYA,IAAIA,CAACA,CAACA;YACvEA,CAACA;YAMDrK,SAASA,0CAA0CA,CAACA,KAAcA;gBAe9DsK,IAAIA,aAAaA,GAAGA,YAAYA,EAAEA,CAACA;gBACnCA,EAAEA,CAACA,CAACA,iBAAiBA,CAACA,aAAaA,CAACA,CAACA,CAACA,CAACA;oBACnCA,MAAMA,CAACA,oBAAoBA,CAACA,aAAaA,CAACA,CAACA;gBAC/CA,CAACA;gBAEDA,IAAIA,aAAaA,GAAGA,kCAAkCA,CAACA,aAAaA,CAACA,CAACA;gBACtEA,EAAEA,CAACA,CAACA,aAAaA,CAACA,CAACA,CAACA;oBAChBA,MAAMA,CAACA,aAAaA,CAACA;gBACzBA,CAACA;gBAWDA,IAAIA,WAAWA,GAAGA,gCAAgCA,CAACA,aAAaA,EAAEA,KAAKA,EAAEA,cAAiCA,CAACA,CAACA;gBAC5GA,EAAEA,CAACA,CAACA,WAAWA,KAAKA,SAASA,CAACA,CAACA,CAACA;oBAC5BA,MAAMA,CAACA,SAASA,CAACA;gBACrBA,CAACA;gBAEDA,EAAEA,CAACA,CAACA,0BAAeA,CAACA,wBAAwBA,CAACA,WAAWA,CAACA,CAACA,CAACA,CAACA;oBAGxDA,IAAIA,aAAaA,GAAGA,oBAAoBA,EAAEA,CAACA;oBAG3CA,EAAEA,CAACA,CAACA,sBAAWA,CAACA,yBAAyBA,CAACA,aAAaA,CAACA,IAAIA,CAACA,CAACA,CAACA,CAACA;wBAC5DA,MAAMA,CAACA,IAAIA,iCAAsBA,CAACA,YAAYA,EAC1CA,WAAWA,EACXA,YAAYA,CAACA,aAAaA,CAACA,EAC3BA,iCAAiCA,EAAEA,CAACA,CAACA;oBAC7CA,CAACA;gBACLA,CAACA;gBAGDA,MAAMA,CAACA,8BAA8BA,CAACA,WAAWA,CAACA,CAACA;YACvDA,CAACA;YAEDtK,SAASA,4BAA4BA,CAACA,YAA0BA;gBAC5DuK,EAAEA,CAACA,CAACA,cAAcA,EAAEA,CAACA,CAACA,CAACA;oBAEnBA,MAAMA,CAACA,oBAAoBA,CAACA,YAAYA,CAACA,CAACA;gBAC9CA,CAACA;gBAEDA,EAAEA,CAACA,CAACA,qCAAqCA,EAAEA,CAACA,CAACA,CAACA;oBAC1CA,MAAMA,CAACA,oBAAoBA,CAACA,YAAYA,CAACA,CAACA;gBAC9CA,CAACA;gBAGDA,MAAMA,CAACA,iCAAiCA,CAACA,YAAYA,EAAaA,IAAIA,CAACA,CAACA;YAC5EA,CAACA;YAEDvK,SAASA,oBAAoBA,CAACA,YAA0BA;gBACpDwK,MAAMA,CAACA,IAAIA,gCAAqBA,CAACA,YAAYA,EACzCA,YAAYA,CAACA,YAAYA,CAACA,EAC1BA,iCAAiCA,EAAEA,CAACA,CAACA;YAC7CA,CAACA;YAEDxK,SAASA,iBAAiBA,CAACA,aAA2BA;gBAClDyK,EAAEA,CAACA,CAACA,aAAaA,CAACA,IAAIA,KAAKA,qBAAuBA,CAACA,CAACA,CAACA;oBAGjDA,EAAEA,CAACA,CAACA,cAAcA,EAAEA,CAACA,CAACA,CAACA;wBACnBA,MAAMA,CAACA,IAAIA,CAACA;oBAChBA,CAACA;oBAEDA,EAAEA,CAACA,CAACA,mBAAmBA,EAAEA,CAACA,CAACA,CAACA;wBAGxBA,MAAMA,CAACA,IAAIA,CAACA;oBAChBA,CAACA;oBAEDA,MAAMA,CAACA,qCAAqCA,EAAEA,CAACA;gBACnDA,CAACA;gBAEDA,MAAMA,CAACA,KAAKA,CAACA;YACjBA,CAACA;YAEDzK,SAASA,qCAAqCA;gBAS1C0K,IAAIA,MAAMA,GAAGA,SAASA,CAACA,CAACA,CAACA,CAACA;gBAE1BA,EAAEA,CAACA,CAACA,MAAMA,CAACA,iBAAiBA,EAAEA,CAACA,CAACA,CAACA;oBAG7BA,MAAMA,CAACA,KAAKA,CAACA;gBACjBA,CAACA;gBAGDA,EAAEA,CAACA,CAACA,YAAYA,CAACA,MAAMA,CAACA,CAACA,CAACA,CAACA;oBACvBA,MAAMA,CAACA,IAAIA,CAACA;gBAChBA,CAACA;gBAEDA,IAAIA,gBAAgBA,GAAGA,MAAMA,CAACA,IAAIA,CAACA;gBACnCA,MAAMA,CAACA,CAACA,gBAAgBA,CAACA,CAACA,CAACA;oBACvBA,KAAKA,oBAAsBA,CAACA;oBAC5BA,KAAKA,oBAAsBA,CAACA;oBAC5BA,KAAKA,qBAAuBA,CAACA;oBAC7BA,KAAKA,oBAAsBA,CAACA;oBAC5BA,KAAKA,uBAAyBA,CAACA;oBAC/BA,KAAKA,sBAAwBA,CAACA;oBAC9BA,KAAKA,wBAA0BA,CAACA;oBAChCA,KAAKA,uBAAyBA,CAACA;oBAC/BA,KAAKA,mBAAqBA;wBACtBA,MAAMA,CAACA,IAAIA,CAAAA;oBACfA,KAAKA,oCAAsCA,CAACA;oBAC5CA,KAAKA,2BAA6BA;wBAG9BA,MAAMA,CAACA,KAAKA,CAACA;oBACjBA,KAAKA,oBAAqBA,CAACA;oBAC3BA,KAAKA,0BAA2BA;wBAG5BA,MAAMA,CAACA,KAAKA,CAACA;oBACjBA,KAAKA,yBAA2BA;wBAG5BA,MAAMA,CAACA,KAAKA,CAACA;oBACjBA,KAAKA,uBAAyBA;wBAG1BA,MAAMA,CAACA,KAAKA,CAACA;oBACjBA;wBACIA,MAAMA,CAACA,KAAKA,CAACA;gBACrBA,CAACA;YACLA,CAACA;YAED1K,SAASA,oBAAoBA,CAACA,YAA0BA;gBAMpD2K,YAAYA,GAAGA,YAAYA,CAACA,YAAYA,CAACA,CAACA;gBAC1CA,IAAIA,aAAaA,GAAGA,YAAYA,EAAEA,CAACA;gBAEnCA,EAAEA,CAACA,CAACA,CAACA,aAAaA,CAACA,iBAAiBA,EAAEA,IAClCA,CAACA,aAAaA,CAACA,IAAIA,KAAKA,sBAAwBA,IAAIA,YAAYA,CAACA,aAAaA,CAACA,CAACA,CAACA,CAACA,CAACA;oBAEnFA,MAAMA,CAACA,IAAIA,gCAAqBA,CAACA,YAAYA,EAAEA,YAAYA,EAAEA,WAAWA,CAACA,sBAAwBA,CAACA,EAAEA,iCAAiCA,EAAEA,CAACA,CAACA;gBAC7IA,CAACA;gBACDA,IAAIA,CAACA,CAACA;oBAGFA,MAAMA,CAACA,IAAIA,gCAAqBA,CAACA,YAAYA,EAAEA,YAAYA,EAAoBA,SAASA,EAAkBA,SAASA,CAACA,CAACA;gBACzHA,CAACA;YACLA,CAACA;YAED3K,SAASA,kCAAkCA,CAACA,aAA2BA;gBACnE4K,MAAMA,CAACA,+BAA+BA,CAACA,aAAaA,CAACA,GAC/CA,kCAAkCA,EAAEA,GACpCA,4CAA4CA,EAAEA,CAACA;YACzDA,CAACA;YAED5K,SAASA,+BAA+BA,CAACA,aAA2BA,EAAEA,KAAcA;gBAChF6K,IAAIA,gBAAgBA,GAAGA,aAAaA,CAACA,IAAIA,CAACA;gBAE1CA,MAAMA,CAACA,CAACA,gBAAgBA,CAACA,CAACA,CAACA;oBACvBA,KAAKA,kBAAoBA,CAACA;oBAC1BA,KAAKA,mBAAqBA,CAACA;oBAC3BA,KAAKA,oBAAqBA,CAACA;oBAC3BA,KAAKA,0BAA2BA,CAACA;oBACjCA,KAAKA,sBAAwBA,CAACA;oBAC9BA,KAAKA,wBAA0BA;wBAC3BA,MAAMA,CAACA,IAAIA,sCAA2BA,CAACA,YAAYA,EAAEA,YAAYA,CAACA,aAAaA,CAACA,EAAEA,+BAA+BA,CAACA,YAAYA,EAAEA,EAAaA,IAAIA,CAACA,CAACA,CAACA;oBACxJA,KAAKA,sBAAwBA;wBACzBA,MAAMA,CAACA,qBAAqBA,CAACA,aAAaA,CAACA,CAACA;oBAChDA,KAAKA,oBAAsBA;wBACvBA,MAAMA,CAACA,mBAAmBA,CAACA,aAAaA,CAACA,CAACA;oBAC9CA,KAAKA,sBAAwBA;wBACzBA,MAAMA,CAACA,qBAAqBA,CAACA,aAAaA,CAACA,CAACA;oBAChDA,KAAKA,sBAAwBA;wBACzBA,MAAMA,CAACA,mBAAmBA,CAACA,aAAaA,CAACA,CAACA;oBAC9CA,KAAKA,qBAAuBA;wBACxBA,MAAMA,CAACA,4BAA4BA,CAACA,aAAaA,CAACA,CAACA;oBACvDA;wBACIA,MAAMA,CAACA,iCAAiCA,CAACA,aAAaA,EAAEA,KAAKA,CAACA,CAACA;gBACvEA,CAACA;YACLA,CAACA;YAED7K,SAASA,gCAAgCA,CAACA,aAA2BA,EAAEA,KAAcA,EAAEA,UAAsCA;gBAQzH8K,IAAIA,WAAWA,GAAGA,+BAA+BA,CAACA,aAAaA,EAAEA,KAAKA,CAACA,CAACA;gBACxEA,EAAEA,CAACA,CAACA,WAAWA,KAAKA,SAASA,CAACA,CAACA,CAACA;oBAC5BA,MAAMA,CAACA,SAASA,CAACA;gBACrBA,CAACA;gBAGDA,MAAMA,CAACA,yBAAyBA,CAACA,UAAUA,EAAEA,WAAWA,CAACA,CAACA;YAC9DA,CAACA;YAED9K,SAASA,8BAA8BA,CAACA,WAA8BA;gBAGlE+K,IAAIA,aAAaA,GAAGA,YAAYA,EAAEA,CAACA;gBAGnCA,EAAEA,CAACA,CAACA,aAAaA,CAACA,IAAIA,KAAKA,uBAAwBA,CAACA,CAACA,CAACA;oBAClDA,MAAMA,CAACA,WAAWA,CAACA;gBACvBA,CAACA;gBAKDA,MAAMA,CAACA,IAAIA,sCAA2BA,CAACA,YAAYA,EAC/CA,WAAWA,EACXA,YAAYA,CAACA,aAAaA,CAACA,EAC3BA,UAAUA,CAACA,iCAAiCA,CAACA,EAC7CA,QAAQA,CAACA,oBAAqBA,CAACA,EAC/BA,iCAAiCA,EAAEA,CAACA,CAACA;YAC7CA,CAACA;YAED/K,SAASA,yBAAyBA,CAACA,UAAsCA,EAAEA,WAA8BA;gBACrGgL,OAAOA,IAAIA,EAAEA,CAACA;oBAIVA,IAAIA,aAAaA,GAAGA,oBAAoBA,EAAEA,CAACA;oBAC3CA,IAAIA,SAASA,GAAGA,aAAaA,CAACA,IAAIA,CAACA;oBAKnCA,EAAEA,CAACA,CAACA,CAACA,sBAAWA,CAACA,+BAA+BA,CAACA,SAASA,CAACA,IACvDA,SAASA,KAAKA,mBAAqBA,IACnCA,sBAAWA,CAACA,yBAAyBA,CAACA,SAASA,CAACA,CAACA,CAACA,CAACA;wBAEnDA,KAAKA,CAACA;oBACVA,CAACA;oBAGDA,EAAEA,CAACA,CAACA,SAASA,KAAKA,kBAAoBA,IAAIA,mBAAmBA,EAAEA,CAACA,CAACA,CAACA;wBAC9DA,KAAKA,CAACA;oBACVA,CAACA;oBAEDA,IAAIA,aAAaA,GAAGA,6BAA6BA,CAACA,SAASA,CAACA,CAACA;oBAM7DA,EAAEA,CAACA,CAACA,aAAaA,IAAIA,UAAUA,CAACA,CAACA,CAACA;wBAC9BA,KAAKA,CAACA;oBACVA,CAACA;oBAKDA,WAAWA,GAAGA,IAAIA,iCAAsBA,CAACA,YAAYA,EAAEA,WAAWA,EAAEA,YAAYA,CAACA,aAAaA,CAACA,EAC3FA,gCAAgCA,CAACA,YAAYA,EAAEA,EAAaA,IAAIA,EAAEA,aAAaA,CAACA,CAACA,CAACA;gBAC1FA,CAACA;gBAEDA,MAAMA,CAACA,WAAWA,CAACA;YACvBA,CAACA;YAEDhL,SAASA,oBAAoBA;gBACzBiL,IAAIA,MAAMA,GAAGA,YAAYA,EAAEA,CAACA;gBAI5BA,EAAEA,CAACA,CAACA,MAAMA,CAACA,IAAIA,KAAKA,yBAA2BA,CAACA,CAACA,CAACA;oBAC9CA,MAAMA,CAACA,sBAAsBA,EAAEA,CAACA;gBAKpCA,CAACA;gBAEDA,MAAMA,CAACA,MAAMA,CAACA;YAClBA,CAACA;YAEDjL,SAASA,gCAAgCA,CAACA,aAA2BA,EAAEA,KAAcA;gBAgDjFkL,IAAIA,UAAUA,GAA4BA,yBAAyBA,CAACA,aAAaA,EAAEA,KAAKA,CAACA,CAACA;gBAC1FA,EAAEA,CAACA,CAACA,UAAUA,KAAKA,SAASA,CAACA,CAACA,CAACA;oBAC3BA,MAAMA,CAACA,SAASA,CAACA;gBACrBA,CAACA;gBAEDA,MAAMA,CAACA,yBAAyBA,CAACA,UAAUA,CAACA,CAACA;YACjDA,CAACA;YAEDlL,SAASA,uBAAuBA,CAACA,UAAyCA;gBACtEmL,OAAOA,IAAIA,EAAEA,CAACA;oBACVA,IAAIA,aAAaA,GAAGA,YAAYA,EAAEA,CAACA;oBACnCA,IAAIA,gBAAgBA,GAAGA,aAAaA,CAACA,IAAIA,CAACA;oBAE1CA,MAAMA,CAACA,CAACA,gBAAgBA,CAACA,CAACA,CAACA;wBACvBA,KAAKA,uBAAyBA;4BAC1BA,UAAUA,GAAGA,IAAIA,qCAA0BA,CAACA,YAAYA,EAAEA,UAAUA,EAAEA,iBAAiBA,CAAuBA,SAASA,EAAEA,aAAaA,CAACA,CAACA,CAACA;4BACzIA,QAAQA,CAACA;wBAEbA,KAAKA,sBAAwBA;4BAKzBA,IAAIA,YAAYA,GAAGA,oBAAoBA,EAAEA,CAACA;4BAC1CA,EAAEA,CAACA,CAACA,YAAYA,KAAKA,SAASA,CAACA,CAACA,CAACA;gCAC7BA,KAAKA,CAACA;4BACVA,CAACA;4BAEDA,UAAUA,GAAGA,IAAIA,qCAA0BA,CAACA,YAAYA,EAAEA,UAAUA,EAAEA,YAAYA,CAACA,CAACA;4BACpFA,QAAQA,CAACA;wBAEbA,KAAKA,yBAA2BA;4BAC5BA,UAAUA,GAAGA,4BAA4BA,CAACA,UAAUA,EAAEA,aAAaA,CAACA,CAACA;4BACrEA,QAAQA,CAACA;wBAEbA,KAAKA,iBAAmBA;4BACpBA,UAAUA,GAAGA,IAAIA,uCAA4BA,CAACA,YAAYA,EAAEA,UAAUA,EAAEA,YAAYA,CAACA,aAAaA,CAACA,EAAEA,sBAAsBA,EAAEA,CAACA,CAACA;4BAC/HA,QAAQA,CAACA;wBAEbA,KAAKA,oCAAsCA,CAACA;wBAC5CA,KAAKA,2BAA6BA;4BAC9BA,UAAUA,GAAGA,IAAIA,yCAA8BA,CAACA,YAAYA,EAAEA,UAAUA,EAAEA,uBAAuBA,CAACA,aAAaA,CAACA,CAACA,CAACA;4BAClHA,QAAQA,CAACA;oBACjBA,CAACA;oBAEDA,MAAMA,CAACA,UAAUA,CAACA;gBACtBA,CAACA;YACLA,CAACA;YAEDnL,SAASA,yBAAyBA,CAACA,UAAmCA;gBAClEoL,OAAOA,IAAIA,EAAEA,CAACA;oBACVA,IAAIA,aAAaA,GAAGA,YAAYA,EAAEA,CAACA;oBACnCA,IAAIA,gBAAgBA,GAAGA,aAAaA,CAACA,IAAIA,CAACA;oBAE1CA,MAAMA,CAACA,CAACA,gBAAgBA,CAACA,CAACA,CAACA;wBACvBA,KAAKA,yBAA2BA;4BAC5BA,UAAUA,GAAGA,4BAA4BA,CAACA,UAAUA,EAAEA,aAAaA,CAACA,CAACA;4BACrEA,QAAQA,CAACA;wBAEbA,KAAKA,iBAAmBA;4BACpBA,UAAUA,GAAGA,IAAIA,uCAA4BA,CAACA,YAAYA,EAAEA,UAAUA,EAAEA,YAAYA,CAACA,aAAaA,CAACA,EAAEA,sBAAsBA,EAAEA,CAACA,CAACA;4BAC/HA,QAAQA,CAACA;wBAEbA,KAAKA,oCAAsCA,CAACA;wBAC5CA,KAAKA,2BAA6BA;4BAC9BA,UAAUA,GAAGA,IAAIA,yCAA8BA,CAACA,YAAYA,EAAEA,UAAUA,EAAEA,uBAAuBA,CAACA,aAAaA,CAACA,CAACA,CAACA;4BAClHA,QAAQA,CAACA;oBACjBA,CAACA;oBAEDA,MAAMA,CAACA,UAAUA,CAACA;gBACtBA,CAACA;YACLA,CAACA;YAEDpL,SAASA,sCAAsCA,CAACA,aAA2BA,EAAEA,KAAcA;gBAgCvFqL,IAAIA,UAAUA,GAAkCA,SAASA,CAACA;gBAC1DA,EAAEA,CAACA,CAACA,aAAaA,CAACA,IAAIA,KAAKA,qBAAuBA,CAACA,CAACA,CAACA;oBACjDA,UAAUA,GAAGA,oBAAoBA,CAACA,aAAaA,CAACA,CAACA;gBACrDA,CAACA;gBACDA,IAAIA,CAACA,CAACA;oBACFA,UAAUA,GAAGA,gCAAgCA,CAACA,aAAaA,EAAEA,KAAKA,CAACA,CAACA;oBACpEA,EAAEA,CAACA,CAACA,UAAUA,KAAKA,SAASA,CAACA,CAACA,CAACA;wBAC3BA,MAAMA,CAACA,SAASA,CAACA;oBACrBA,CAACA;gBACLA,CAACA;gBAIDA,MAAMA,CAACA,uBAAuBA,CAACA,UAAUA,CAACA,CAACA;YAC/CA,CAACA;YAEDrL,SAASA,oBAAoBA,CAACA,UAAwBA;gBAClDsL,IAAIA,UAAUA,GAAGA,YAAYA,CAACA,UAAUA,CAACA,CAACA;gBAI1CA,IAAIA,gBAAgBA,GAAGA,YAAYA,EAAEA,CAACA,IAAIA,CAACA;gBAC3CA,MAAMA,CAACA,gBAAgBA,KAAKA,uBAAyBA,IAAIA,gBAAgBA,KAAKA,iBAAmBA,GAC3FA,UAAUA,GACVA,IAAIA,uCAA4BA,CAACA,YAAYA,EAAEA,UAAUA,EAAEA,QAAQA,CAACA,iBAAmBA,CAACA,EAAEA,sBAAsBA,EAAEA,CAACA,CAACA;YAC9HA,CAACA;YAEDtL,SAASA,iCAAiCA,CAACA,aAA2BA,EAAEA,KAAcA;gBAClFuL,IAAIA,UAAUA,GAAGA,sCAAsCA,CAACA,aAAaA,EAAEA,KAAKA,CAACA,CAACA;gBAC9EA,EAAEA,CAACA,CAACA,UAAUA,KAAKA,SAASA,CAACA,CAACA,CAACA;oBAC3BA,MAAMA,CAACA,SAASA,CAACA;gBACrBA,CAACA;gBAEDA,IAAIA,aAAaA,GAAGA,YAAYA,EAAEA,CAACA;gBACnCA,IAAIA,gBAAgBA,GAAGA,aAAaA,CAACA,IAAIA,CAACA;gBAE1CA,MAAMA,CAACA,CAACA,gBAAgBA,CAACA,CAACA,CAACA;oBACvBA,KAAKA,sBAAwBA,CAACA;oBAC9BA,KAAKA,wBAA0BA;wBAG3BA,EAAEA,CAACA,CAACA,aAAaA,CAACA,iBAAiBA,EAAEA,CAACA,CAACA,CAACA;4BACpCA,KAAKA,CAACA;wBACVA,CAACA;wBAEDA,MAAMA,CAACA,IAAIA,uCAA4BA,CAACA,YAAYA,EAAEA,UAAUA,EAAEA,YAAYA,CAACA,aAAaA,CAACA,CAACA,CAACA;gBACvGA,CAACA;gBAEDA,MAAMA,CAACA,UAAUA,CAACA;YACtBA,CAACA;YAEDvL,SAASA,2BAA2BA;gBAIhCwL,IAAIA,WAAWA,GAAGA,cAAcA,EAAEA,CAACA;gBAEnCA,IAAIA,gBAAgBA,GAAGA,wBAAwBA,CAAmBA,IAAIA,CAACA,CAACA;gBACxEA,IAAIA,MAAMA,GAAGA,YAAYA,EAAEA,CAACA;gBAC5BA,IAAIA,SAASA,GAAGA,MAAMA,CAACA,IAAIA,CAACA;gBAE5BA,IAAIA,WAAWA,GAAGA,SAASA,KAAKA,uBAAyBA,CAACA;gBAC1DA,IAAIA,KAAKA,GAAGA,SAASA,KAAKA,iBAAmBA,CAACA;gBAC9CA,IAAIA,gBAAgBA,GAAGA,WAAWA,IAAIA,KAAKA,CAACA;gBAE5CA,IAAIA,YAAYA,GAAuBA,SAASA,CAACA;gBACjDA,EAAEA,CAACA,CAACA,CAACA,gBAAgBA,IAAIA,CAACA,gBAAgBA,CAACA,CAACA,CAACA;oBAGzCA,MAAMA,CAACA,WAAWA,CAACA,CAACA;oBACpBA,kBAAkBA,CAACA,WAAWA,CAACA,CAACA;oBAChCA,MAAMA,CAACA,SAASA,CAACA;gBACrBA,CAACA;gBACDA,IAAIA,CAACA,CAACA;oBACFA,gBAAKA,CAACA,MAAMA,CAACA,gBAAgBA,IAAIA,gBAAgBA,CAACA,CAACA;oBAEnDA,kBAAkBA,CAACA,WAAWA,CAACA,CAACA;oBAOhCA,EAAEA,CAACA,CAACA,KAAKA,CAACA,CAACA,CAACA;wBACRA,MAAMA,CAACA,IAAIA,6BAAkBA,CAACA,YAAYA,EAAEA,gBAAgBA,EACxDA,kBAAkBA,CAACA,uBAAyBA,EAAEA,SAASA,EAAEA,yBAAcA,CAACA,kEAAkEA,CAACA,EACtIA,EAAEA,EACPA,QAAQA,CAACA,wBAA0BA,CAACA,CAACA,CAACA;oBAC9CA,CAACA;oBACDA,IAAIA,CAACA,CAACA;wBACFA,gBAAKA,CAACA,MAAMA,CAACA,MAAMA,CAACA,IAAIA,KAAKA,uBAAyBA,CAACA,CAACA;wBACxDA,MAAMA,CAACA,iBAAiBA,CAACA,gBAAgBA,EAAEA,MAAMA,CAACA,CAACA;oBACvDA,CAACA;gBACLA,CAACA;YACLA,CAACA;YAEDxL,SAASA,oBAAoBA;gBACzByL,IAAIA,aAAaA,GAAGA,YAAYA,EAAEA,CAACA;gBACnCA,IAAIA,SAASA,GAAGA,aAAaA,CAACA,IAAIA,CAACA;gBACnCA,EAAEA,CAACA,CAACA,SAASA,KAAKA,sBAAwBA,CAACA,CAACA,CAACA;oBACzCA,MAAMA,CAACA,2BAA2BA,EAAEA,CAACA;gBACzCA,CAACA;gBAEDA,EAAEA,CAACA,CAACA,SAASA,KAAKA,uBAAyBA,CAACA,CAACA,CAACA;oBAC1CA,MAAMA,CAACA,iBAAiBA,CAAuBA,SAASA,EAAsBA,aAAaA,CAACA,CAACA;gBACjGA,CAACA;gBAEDA,MAAMA,CAACA,SAASA,CAACA;YACrBA,CAACA;YAEDzL,SAASA,iBAAiBA,CAACA,gBAAwCA,EAAEA,cAA4BA;gBAC7F0L,gBAAKA,CAACA,MAAMA,CAACA,cAAcA,CAACA,IAAIA,KAAKA,uBAAyBA,IAAIA,cAAcA,CAACA,SAASA,EAAEA,GAAGA,CAACA,CAACA,CAACA;gBAElGA,MAAMA,CAACA,IAAIA,6BAAkBA,CAACA,YAAYA,EACtCA,gBAAgBA,EAChBA,YAAYA,CAACA,cAAcA,CAACA,EAC5BA,wBAAwBA,CAAoBA,2CAAmDA,CAACA,EAChGA,QAAQA,CAACA,wBAA0BA,CAACA,CAACA,CAACA;YAC9CA,CAACA;YAED1L,SAASA,8BAA8BA;gBAWnC2L,IAAIA,KAAKA,GAAGA,YAAYA,EAAEA,CAACA,IAAIA,KAAKA,mBAAqBA,CAACA;gBAC1DA,MAAMA,CAACA,UAAUA,CAACA,KAAKA,GAAGA,iCAAiCA,GAAGA,oCAAoCA,CAACA,CAACA;YACxGA,CAACA;YAED3L,SAASA,oCAAoCA,CAACA,gBAA8BA;gBAKxE4L,MAAMA,CAACA,YAAYA,EAAEA,CAACA,IAAIA,KAAKA,0BAA4BA,GAAGA,SAASA,GAAGA,UAAUA,CAACA,eAAeA,CAACA,CAACA;YAC1GA,CAACA;YAED5L,SAASA,4BAA4BA,CAACA,UAAyCA,EAAEA,gBAA8BA;gBAE3G6L,MAAMA,CAACA,IAAIA,wCAA6BA,CAACA,YAAYA,EAAEA,UAAUA,EAAEA,YAAYA,CAACA,gBAAgBA,CAACA,EAC7FA,oCAAoCA,CAACA,gBAAgBA,CAACA,EAAEA,QAAQA,CAACA,0BAA4BA,CAACA,CAACA,CAACA;YACxGA,CAACA;YAED7L,SAASA,yBAAyBA,CAACA,aAA2BA,EAAEA,KAAcA;gBAG1E8L,EAAEA,CAACA,CAACA,aAAaA,CAACA,IAAIA,KAAKA,qBAAuBA,CAACA,CAACA,CAACA;oBACjDA,IAAIA,MAAMA,GAAGA,SAASA,CAACA,CAACA,CAACA,CAACA;oBAC1BA,EAAEA,CAACA,CAACA,CAACA,MAAMA,CAACA,iBAAiBA,EAAEA,IAAIA,MAAMA,CAACA,IAAIA,KAAKA,wBAA0BA,CAACA,CAACA,CAACA;wBAC5EA,MAAMA,CAACA,uBAAuBA,EAAEA,CAACA;oBACrCA,CAACA;gBACLA,CAACA;gBAEDA,EAAEA,CAACA,CAACA,YAAYA,CAACA,aAAaA,CAACA,CAACA,CAACA,CAACA;oBAC9BA,MAAMA,CAACA,kBAAkBA,EAAEA,CAACA;gBAChCA,CAACA;gBAEDA,IAAIA,gBAAgBA,GAAGA,aAAaA,CAACA,IAAIA,CAACA;gBAC1CA,MAAMA,CAACA,CAACA,gBAAgBA,CAACA,CAACA,CAACA;oBACvBA,KAAKA,oBAAsBA,CAACA;oBAC5BA,KAAKA,oBAAsBA,CAACA;oBAC5BA,KAAKA,qBAAuBA,CAACA;oBAC7BA,KAAKA,oBAAsBA,CAACA;oBAC5BA,KAAKA,uBAAyBA,CAACA;oBAC/BA,KAAKA,iCAAmCA,CAACA;oBACzCA,KAAKA,sBAAwBA;wBACzBA,MAAMA,CAACA,YAAYA,CAACA,aAAaA,CAACA,CAACA;oBACvCA,KAAKA,wBAA0BA;wBAC3BA,MAAMA,CAACA,uBAAuBA,EAAEA,CAACA;oBACrCA,KAAKA,yBAA2BA;wBAC5BA,MAAMA,CAACA,2BAA2BA,CAACA,aAAaA,CAACA,CAACA;oBACtDA,KAAKA,uBAAyBA;wBAC1BA,MAAMA,CAACA,4BAA4BA,CAACA,aAAaA,CAACA,CAACA;oBACvDA,KAAKA,uBAAyBA;wBAC1BA,MAAMA,CAACA,4BAA4BA,CAACA,aAAaA,CAACA,CAACA;oBACvDA,KAAKA,mBAAqBA;wBACtBA,MAAMA,CAACA,6BAA6BA,CAACA,aAAaA,CAACA,CAACA;oBACxDA,KAAKA,oCAAsCA,CAACA;oBAC5CA,KAAKA,2BAA6BA;wBAC9BA,MAAMA,CAACA,uBAAuBA,CAACA,aAAaA,CAACA,CAACA;oBAClDA,KAAKA,oBAAqBA,CAACA;oBAC3BA,KAAKA,0BAA2BA;wBAG5BA,MAAMA,CAACA,gCAAgCA,EAAEA,CAACA;gBAClDA,CAACA;gBAEDA,EAAEA,CAACA,CAACA,CAACA,KAAKA,CAACA,CAACA,CAACA;oBACTA,MAAMA,CAACA,SAASA,CAACA;gBACrBA,CAACA;gBAGDA,MAAMA,CAACA,kBAAkBA,CAACA,yBAAcA,CAACA,mBAAmBA,CAACA,CAACA;YAClEA,CAACA;YAED9L,SAASA,gCAAgCA;gBAUrC+L,IAAIA,YAAYA,GAAGA,sBAAsBA,EAAEA,CAACA;gBAM5CA,IAAIA,SAASA,GAAGA,YAAYA,CAACA,IAAIA,CAACA;gBAClCA,gBAAKA,CAACA,MAAMA,CAACA,SAASA,KAAKA,iCAAmCA,CAACA,CAACA;gBAEhEA,MAAMA,CAACA,YAAYA,CAACA,YAAYA,CAACA,CAACA;YACtCA,CAACA;YAED/L,SAASA,qBAAqBA,CAACA,aAA2BA;gBACtDgM,MAAMA,CAACA,IAAIA,iCAAsBA,CAACA,YAAYA,EAAEA,YAAYA,CAACA,aAAaA,CAACA,EAAEA,+BAA+BA,CAACA,YAAYA,EAAEA,EAAaA,IAAIA,CAACA,CAACA,CAACA;YACnJA,CAACA;YAEDhM,SAASA,qBAAqBA,CAACA,aAA2BA;gBACtDiM,MAAMA,CAACA,IAAIA,iCAAsBA,CAACA,YAAYA,EAAEA,YAAYA,CAACA,aAAaA,CAACA,EAAEA,+BAA+BA,CAACA,YAAYA,EAAEA,EAAaA,IAAIA,CAACA,CAACA,CAACA;YACnJA,CAACA;YAEDjM,SAASA,mBAAmBA,CAACA,WAAyBA;gBAClDkM,MAAMA,CAACA,IAAIA,+BAAoBA,CAACA,YAAYA,EAAEA,YAAYA,CAACA,WAAWA,CAACA,EAAEA,+BAA+BA,CAACA,YAAYA,EAAEA,EAAaA,IAAIA,CAACA,CAACA,CAACA;YAC/IA,CAACA;YAEDlM,SAASA,uBAAuBA;gBAM5BmM,IAAIA,YAA0BA,CAACA;gBAC/BA,IAAIA,aAA2BA,CAACA;gBAChCA,MAAMA,CAACA,IAAIA,mCAAwBA,CAACA,YAAYA,EAC5CA,YAAYA,GAAGA,WAAWA,CAACA,qBAAuBA,CAACA,EACnDA,QAAQA,CAACA,wBAA0BA,CAACA,EACpCA,aAAaA,GAAGA,WAAWA,CAACA,sBAAwBA,CAACA,EACrDA,kCAAkCA,CAACA,CAACA,CAACA,aAAaA,EAAEA,CAACA,CAACA,YAAYA,CAACA,EACnEA,kBAAkBA,CAAuCA,KAAKA,EAAyCA,CAACA,CAACA,aAAaA,EAAoBA,CAACA,CAACA,YAAYA,CAACA,EACzJA,iBAAiBA,CAACA,CAACA,CAACA,aAAaA,EAAEA,CAACA,CAACA,YAAYA,CAACA,CAACA,CAACA;YAC5DA,CAACA;YAEDnM,SAASA,kCAAkCA,CAACA,YAAqBA,EAAEA,YAAqBA;gBACpFoM,IAAIA,iBAAiBA,GAAGA,cAAcA,EAAEA,CAACA;gBACzCA,IAAIA,iBAAiBA,GAAGA,cAAcA,EAAEA,CAACA;gBAEzCA,eAAeA,CAACA,YAAYA,CAACA,CAACA;gBAC9BA,eAAeA,CAACA,YAAYA,CAACA,CAACA;gBAE9BA,IAAIA,MAAMA,GAAGA,0BAA0BA,EAAEA,CAACA;gBAE1CA,eAAeA,CAACA,iBAAiBA,CAACA,CAACA;gBACnCA,eAAeA,CAACA,iBAAiBA,CAACA,CAACA;gBAEnCA,MAAMA,CAACA,MAAMA,CAACA;YAClBA,CAACA;YAEDpM,SAASA,6BAA6BA,CAACA,UAAwBA;gBAU3DqM,MAAMA,CAACA,IAAIA,yCAA8BA,CAACA,YAAYA,EAClDA,YAAYA,CAACA,UAAUA,CAACA,EAAEA,gCAAgCA,CAACA,YAAYA,EAAEA,EAAaA,IAAIA,CAACA,EAAEA,oBAAoBA,EAAEA,CAACA,CAACA;YAC7HA,CAACA;YAEDrM,SAASA,uBAAuBA,CAACA,UAAwBA;gBACrDsM,UAAUA,GAAGA,YAAYA,CAACA,UAAUA,CAACA,CAACA;gBAEtCA,EAAEA,CAACA,CAACA,UAAUA,CAACA,IAAIA,KAAKA,oCAAsCA,CAACA,CAACA,CAACA;oBAC7DA,MAAMA,CAACA,UAAUA,CAACA;gBACtBA,CAACA;gBAEDA,IAAIA,eAAeA,GAA2BA,EAAEA,CAACA;gBAEjDA,GAAGA,CAACA;oBAGAA,eAAeA,CAACA,IAAIA,CAACA,mBAAmBA,EAAEA,CAACA,CAACA;gBAChDA,CAACA,QACMA,eAAeA,CAACA,eAAeA,CAACA,MAAMA,GAAGA,CAACA,CAACA,CAACA,wBAAwBA,CAACA,IAAIA,KAAKA,4BAA8BA,EAAEA;gBAErHA,MAAMA,CAACA,IAAIA,mCAAwBA,CAACA,YAAYA,EAAEA,UAAUA,EAAEA,iBAAMA,CAACA,IAAIA,CAACA,eAAeA,CAACA,CAACA,CAACA;YAChGA,CAACA;YAEDtM,SAASA,mBAAmBA;gBAMxBuM,IAAIA,UAAUA,GAAGA,UAAUA,CAACA,eAAeA,CAACA,CAACA;gBAC7CA,IAAIA,KAAKA,GAAGA,YAAYA,EAAEA,CAACA;gBAE3BA,EAAEA,CAACA,CAACA,KAAKA,CAACA,IAAIA,KAAKA,wBAA0BA,CAACA,CAACA,CAACA;oBAC5CA,KAAKA,GAAGA,sBAAsBA,EAAEA,CAACA;oBACjCA,gBAAKA,CAACA,MAAMA,CAACA,KAAKA,CAACA,IAAIA,KAAKA,4BAA8BA,IAAIA,KAAKA,CAACA,IAAIA,KAAKA,yBAA2BA,CAACA,CAACA;oBAC1GA,KAAKA,GAAGA,YAAYA,CAACA,KAAKA,CAACA,CAACA;gBAChCA,CAACA;gBACDA,IAAIA,CAACA,CAACA;oBACFA,KAAKA,GAAGA,kBAAkBA,CAACA,yBAA2BA,EAAEA,SAASA,EAAEA,yBAAcA,CAACA,WAAWA,EAAEA,CAACA,GAAGA,CAACA,CAACA,CAACA;gBAC1GA,CAACA;gBAEDA,MAAMA,CAACA,IAAIA,+BAAoBA,CAACA,YAAYA,EAAEA,UAAUA,EAAEA,KAAKA,CAACA,CAACA;YACrEA,CAACA;YAEDvM,SAASA,mBAAmBA,CAACA,aAA2BA;gBACpDwM,MAAMA,CAACA,IAAIA,+BAAoBA,CAACA,YAAYA,EACxCA,YAAYA,CAACA,aAAaA,CAACA,EAAEA,SAASA,EAAEA,EAAEA,QAAQA,CAACA,yBAA2BA,CAACA,EAAEA,+BAA+BA,CAACA,YAAYA,EAAEA,EAAaA,IAAIA,CAACA,CAACA,CAACA;YAC3JA,CAACA;YAEDxM,SAASA,4BAA4BA,CAACA,cAA4BA;gBAG9DyM,MAAMA,CAACA,IAAIA,wCAA6BA,CAACA,YAAYA,EACjDA,YAAYA,CAACA,cAAcA,CAACA,EAC5BA,UAAUA,CAACA,eAAeA,CAACA,EAC3BA,QAAQA,CAACA,wBAA0BA,CAACA,CAACA,CAACA;YAC9CA,CAACA;YAEDzM,SAASA,4CAA4CA;gBACjD0M,IAAIA,SAASA,GAAGA,YAAYA,EAAEA,CAACA,IAAIA,CAACA;gBACpCA,EAAEA,CAACA,CAACA,SAASA,KAAKA,qBAAuBA,IAAIA,SAASA,KAAKA,uBAAyBA,IAAIA,SAASA,KAAKA,sBAAwBA,CAACA,CAACA,CAACA;oBAC7HA,MAAMA,CAACA,SAASA,CAACA;gBACrBA,CAACA;gBAWDA,EAAEA,CAACA,CAACA,mCAAmCA,EAAEA,CAACA,CAACA,CAACA;oBAGxCA,MAAMA,CAACA,kDAAkDA,CAAoBA,KAAKA,CAACA,CAACA;gBACxFA,CAACA;gBAIDA,EAAEA,CAACA,CAACA,CAACA,iCAAiCA,EAAEA,CAACA,CAACA,CAACA;oBACvCA,MAAMA,CAACA,SAASA,CAACA;gBACrBA,CAACA;gBAGDA,IAAIA,WAAWA,GAAGA,cAAcA,EAAEA,CAACA;gBAEnCA,IAAIA,aAAaA,GAAGA,kDAAkDA,CAAoBA,IAAIA,CAACA,CAACA;gBAChGA,EAAEA,CAACA,CAACA,aAAaA,KAAKA,SAASA,CAACA,CAACA,CAACA;oBAC9BA,MAAMA,CAACA,WAAWA,CAACA,CAACA;gBACxBA,CAACA;gBAEDA,kBAAkBA,CAACA,WAAWA,CAACA,CAACA;gBAChCA,MAAMA,CAACA,aAAaA,CAACA;YACzBA,CAACA;YAED1M,SAASA,kDAAkDA,CAACA,YAAqBA;gBAC7E2M,IAAIA,YAAYA,GAAGA,WAAWA,CAACA,qBAAuBA,CAACA,CAACA;gBASxDA,IAAIA,aAAaA,GAAGA,kBAAkBA,CAAuCA,IAAIA,EAAyCA,cAAcA,EAAEA,EAAoBA,CAACA,CAACA,YAAYA,CAACA,CAACA;gBAE9KA,EAAEA,CAACA,CAACA,YAAYA,IAAIA,YAAYA,EAAEA,CAACA,IAAIA,KAAKA,+BAAiCA,CAACA,CAACA,CAACA;oBAC5EA,MAAMA,CAACA,SAASA,CAACA;gBACrBA,CAACA;gBAEDA,MAAMA,CAACA,IAAIA,qDAA0CA,CAACA,YAAYA,EAC9DA,YAAYA,EACZA,aAAaA,EACbA,QAAQA,CAACA,+BAAiCA,CAACA,EAC3CA,sBAAsBA,CAACA,CAACA,CAACA,YAAYA,CAACA,CAACA,CAACA;YAChDA,CAACA;YAED3M,SAASA,sBAAsBA,CAACA,YAAqBA;gBAKjD4M,EAAEA,CAACA,CAACA,YAAYA,EAAEA,CAACA,IAAIA,KAAKA,uBAAyBA,CAACA,CAACA,CAACA;oBAEpDA,MAAMA,CAACA,kBAAkBA,CAAmBA,KAAKA,EAAoBA,YAAYA,EAA8BA,SAASA,CAACA,CAACA;gBAC9HA,CAACA;gBAYDA,IAAIA,cAAcA,GAAGA,aAAaA,EAAEA,CAACA;gBACrCA,EAAEA,CAACA,CAACA,WAAWA,CAACA,cAAcA,EAAuBA,KAAKA,CAACA,IACvDA,CAACA,YAAYA,CAACA,YAAYA,EAAEA,CAACA,CAACA,CAACA,CAACA;oBAIhCA,MAAMA,CAACA,IAAIA,sBAAWA,CAACA,YAAYA,EACJA,SAASA,EACpCA,QAAQA,CAACA,uBAAyBA,CAACA,EACnCA,4BAA4BA,CAAmBA,KAAKA,EAAEA,YAAYA,CAACA,EACnEA,QAAQA,CAACA,wBAA0BA,CAACA,CAACA,CAACA;gBAC9CA,CAACA;gBAEDA,MAAMA,CAACA,YAAYA,GAAGA,oBAAoBA,CAACA,iCAAiCA,CAACA,GAAGA,qBAAqBA,CAACA,iCAAiCA,CAACA,CAACA;YAC7IA,CAACA;YAED5M,SAASA,+BAA+BA,CAACA,aAA2BA;gBAIhE6M,EAAEA,CAACA,CAACA,aAAaA,CAACA,IAAIA,KAAKA,+BAAiCA,CAACA,CAACA,CAACA;oBAC3DA,MAAMA,CAACA,IAAIA,CAACA;gBAChBA,CAACA;gBAGDA,EAAEA,CAACA,CAACA,aAAaA,CAACA,IAAIA,KAAKA,qBAAuBA,CAACA,CAACA,CAACA;oBACjDA,IAAIA,MAAMA,GAAGA,SAASA,CAACA,CAACA,CAACA,CAACA;oBAC1BA,EAAEA,CAACA,CAACA,CAACA,MAAMA,CAACA,iBAAiBA,EAAEA,IAAIA,YAAYA,CAACA,SAASA,CAACA,CAACA,CAACA,CAACA,CAACA,CAACA,CAACA;wBAC5DA,MAAMA,CAACA,IAAIA,CAACA;oBAChBA,CAACA;gBACLA,CAACA;gBAEDA,MAAMA,CAACA,YAAYA,CAACA,aAAaA,CAACA,IAC3BA,SAASA,CAACA,CAACA,CAACA,CAACA,IAAIA,KAAKA,+BAAiCA,CAACA;YACnEA,CAACA;YAED7M,SAASA,kCAAkCA;gBACvC8M,IAAIA,YAA0BA,CAACA;gBAC/BA,MAAMA,CAACA,IAAIA,8CAAmCA,CAACA,YAAYA,EACvDA,YAAYA,GAAGA,WAAWA,CAACA,qBAAuBA,CAACA,EACnDA,YAAYA,GAAGA,oBAAoBA,CAACA,kBAAkBA,CAACA,GAAGA,qBAAqBA,CAACA,kBAAkBA,CAACA,EACnGA,QAAQA,CAACA,+BAAiCA,CAACA,EAC3CA,sBAAsBA,CAAmBA,CAACA,CAACA,YAAYA,CAACA,CAACA,CAACA;YAClEA,CAACA;YAED9M,SAASA,eAAeA;gBACpB+M,IAAIA,gBAAgBA,GAAGA,YAAYA,EAAEA,CAACA,IAAIA,CAACA;gBAC3CA,MAAMA,CAACA,gBAAgBA,KAAKA,uBAAyBA,IAAIA,gBAAgBA,KAAKA,+BAAiCA,CAACA;YACpHA,CAACA;YAED/M,SAASA,cAAcA;gBACnBgN,IAAIA,aAAaA,GAAGA,YAAYA,EAAEA,CAACA;gBACnCA,MAAMA,CAACA,aAAaA,CAACA,IAAIA,KAAKA,uBAAyBA,IAAIA,aAAaA,CAACA,IAAIA,KAAKA,+BAAiCA,CAACA;YACxHA,CAACA;YAEDhN,SAASA,mCAAmCA;gBACxCiN,IAAIA,SAASA,GAAGA,CAACA,CAACA;gBAClBA,EAAEA,CAACA,CAACA,YAAYA,EAAEA,CAACA,IAAIA,KAAKA,qBAAuBA,CAACA,CAACA,CAACA;oBAClDA,EAAEA,CAACA,CAACA,SAASA,CAACA,CAACA,CAACA,CAACA,iBAAiBA,EAAEA,CAACA,CAACA,CAACA;wBACnCA,MAAMA,CAACA,KAAKA,CAACA;oBACjBA,CAACA;oBAGDA,SAASA,EAAEA,CAACA;gBAChBA,CAACA;gBAEDA,IAAIA,MAAMA,GAAGA,SAASA,CAACA,SAASA,CAACA,CAACA;gBAClCA,EAAEA,CAACA,CAACA,MAAMA,CAACA,IAAIA,KAAKA,uBAAyBA,CAACA,CAACA,CAACA;oBAG5CA,MAAMA,CAACA,KAAKA,CAACA;gBACjBA,CAACA;gBAEDA,IAAIA,MAAMA,GAAGA,SAASA,CAACA,SAASA,GAAGA,CAACA,CAACA,CAACA;gBACtCA,IAAIA,UAAUA,GAAGA,MAAMA,CAACA,IAAIA,CAACA;gBAE7BA,IAAIA,MAAoBA,CAACA;gBAEzBA,EAAEA,CAACA,CAACA,UAAUA,KAAKA,wBAA0BA,CAACA,CAACA,CAACA;oBAQ5CA,MAAMA,GAAGA,SAASA,CAACA,SAASA,GAAGA,CAACA,CAACA,CAACA;oBAClCA,IAAIA,UAAUA,GAAGA,MAAMA,CAACA,IAAIA,CAACA;oBAC7BA,MAAMA,CAACA,UAAUA,KAAKA,oBAAqBA,IACpCA,UAAUA,KAAKA,+BAAiCA,IAChDA,UAAUA,KAAKA,uBAAyBA,CAACA;gBACpDA,CAACA;gBAEDA,EAAEA,CAACA,CAACA,UAAUA,KAAKA,uBAAyBA,CAACA,CAACA,CAACA;oBAG3CA,MAAMA,CAACA,IAAIA,CAACA;gBAChBA,CAACA;gBAEDA,MAAMA,GAAGA,SAASA,CAACA,SAASA,GAAGA,CAACA,CAACA,CAACA;gBAClCA,UAAUA,GAAGA,MAAMA,CAACA,IAAIA,CAACA;gBAEzBA,EAAEA,CAACA,CAACA,sBAAWA,CAACA,uBAAuBA,CAACA,UAAUA,CAACA,CAACA,CAACA,CAACA;oBAClDA,EAAEA,CAACA,CAACA,YAAYA,CAACA,MAAMA,CAACA,CAACA,CAACA,CAACA;wBAKvBA,MAAMA,CAACA,IAAIA,CAACA;oBAChBA,CAACA;gBACLA,CAACA;gBAEDA,EAAEA,CAACA,CAACA,CAACA,YAAYA,CAACA,MAAMA,CAACA,CAACA,CAACA,CAACA;oBAGxBA,MAAMA,CAACA,KAAKA,CAACA;gBACjBA,CAACA;gBAMDA,EAAEA,CAACA,CAACA,UAAUA,KAAKA,oBAAqBA,CAACA,CAACA,CAACA;oBAGvCA,MAAMA,CAACA,IAAIA,CAACA;gBAChBA,CAACA;gBAEDA,IAAIA,MAAMA,GAAGA,SAASA,CAACA,SAASA,GAAGA,CAACA,CAACA,CAACA;gBACtCA,IAAIA,UAAUA,GAAGA,MAAMA,CAACA,IAAIA,CAACA;gBAC7BA,EAAEA,CAACA,CAACA,UAAUA,KAAKA,uBAAwBA,CAACA,CAACA,CAACA;oBAK1CA,EAAEA,CAACA,CAACA,UAAUA,KAAKA,oBAAqBA,IACpCA,UAAUA,KAAKA,wBAA0BA,IACzCA,UAAUA,KAAKA,mBAAqBA,CAACA,CAACA,CAACA;wBAMvCA,MAAMA,CAACA,IAAIA,CAACA;oBAChBA,CAACA;gBACLA,CAACA;gBAEDA,EAAEA,CAACA,CAACA,UAAUA,KAAKA,wBAA0BA,CAACA,CAACA,CAACA;oBAI5CA,EAAEA,CAACA,CAACA,UAAUA,KAAKA,+BAAiCA,CAACA,CAACA,CAACA;wBAGnDA,MAAMA,CAACA,IAAIA,CAACA;oBAChBA,CAACA;gBAKLA,CAACA;gBAODA,MAAMA,CAACA,KAAKA,CAACA;YACjBA,CAACA;YAEDjN,SAASA,iCAAiCA;gBACtCkN,IAAIA,SAASA,GAAGA,CAACA,CAACA;gBAClBA,EAAEA,CAACA,CAACA,YAAYA,EAAEA,CAACA,IAAIA,KAAKA,qBAAuBA,CAACA,CAACA,CAACA;oBAClDA,EAAEA,CAACA,CAACA,SAASA,CAACA,CAACA,CAACA,CAACA,iBAAiBA,EAAEA,CAACA,CAACA,CAACA;wBACnCA,MAAMA,CAACA,KAAKA,CAACA;oBACjBA,CAACA;oBAEDA,SAASA,EAAEA,CAACA;gBAChBA,CAACA;gBAEDA,IAAIA,MAAMA,GAAGA,SAASA,CAACA,SAASA,CAACA,CAACA;gBAClCA,EAAEA,CAACA,CAACA,MAAMA,CAACA,IAAIA,KAAKA,uBAAyBA,CAACA,CAACA,CAACA;oBAG5CA,MAAMA,CAACA,IAAIA,CAACA;gBAChBA,CAACA;gBAEDA,IAAIA,MAAMA,GAAGA,SAASA,CAACA,SAASA,GAAGA,CAACA,CAACA,CAACA;gBAEtCA,EAAEA,CAACA,CAACA,CAACA,YAAYA,CAACA,MAAMA,CAACA,CAACA,CAACA,CAACA;oBAGxBA,MAAMA,CAACA,KAAKA,CAACA;gBACjBA,CAACA;gBAEDA,IAAIA,MAAMA,GAAGA,SAASA,CAACA,SAASA,GAAGA,CAACA,CAACA,CAACA;gBACtCA,IAAIA,UAAUA,GAAGA,MAAMA,CAACA,IAAIA,CAACA;gBAC7BA,EAAEA,CAACA,CAACA,UAAUA,KAAKA,qBAAsBA,CAACA,CAACA,CAACA;oBAMxCA,MAAMA,CAACA,IAAIA,CAACA;gBAChBA,CAACA;gBAEDA,EAAEA,CAACA,CAACA,UAAUA,KAAKA,mBAAqBA,CAACA,CAACA,CAACA;oBAMvCA,MAAMA,CAACA,IAAIA,CAACA;gBAChBA,CAACA;gBAEDA,EAAEA,CAACA,CAACA,UAAUA,KAAKA,wBAA0BA,CAACA,CAACA,CAACA;oBAG5CA,IAAIA,MAAMA,GAAGA,SAASA,CAACA,SAASA,GAAGA,CAACA,CAACA,CAACA;oBACtCA,EAAEA,CAACA,CAACA,MAAMA,CAACA,IAAIA,KAAKA,oBAAqBA,CAACA,CAACA,CAACA;wBAMxCA,MAAMA,CAACA,IAAIA,CAACA;oBAChBA,CAACA;gBACLA,CAACA;gBAGDA,MAAMA,CAACA,KAAKA,CAACA;YACjBA,CAACA;YAEDlN,SAASA,4BAA4BA,CAACA,cAA4BA;gBAE9DmN,MAAMA,CAACA,IAAIA,wCAA6BA,CAACA,YAAYA,EACjDA,YAAYA,CAACA,cAAcA,CAACA,EAC5BA,wBAAwBA,CAA4BA,oDAA4DA,CAACA,EACjHA,QAAQA,CAACA,wBAA0BA,CAACA,CAACA,CAACA;YAC9CA,CAACA;YAEDnN,SAASA,0BAA0BA,CAACA,eAAwBA;gBAGxDoN,IAAIA,SAASA,GAAGA,cAAcA,EAAEA,CAACA;gBACjCA,EAAEA,CAACA,CAACA,UAAUA,CAACA,eAAeA,CAACA,CAACA,CAACA,CAACA;oBAC9BA,MAAMA,CAACA,aAAaA,CAACA,SAASA,CAACA,CAACA;gBACpCA,CAACA;gBAMDA,IAAIA,aAAaA,GAAGA,YAAYA,EAAEA,CAACA;gBACnCA,EAAEA,CAACA,CAACA,SAASA,CAACA,MAAMA,KAAKA,CAACA,CAACA,CAACA,CAACA;oBACzBA,EAAEA,CAACA,CAACA,YAAYA,CAACA,aAAaA,CAACA,CAACA,CAACA,CAACA;wBAC9BA,IAAIA,MAAMA,GAAGA,SAASA,CAACA,CAACA,CAACA,CAACA;wBAC1BA,EAAEA,CAACA,CAACA,MAAMA,CAACA,IAAIA,KAAKA,oBAAqBA,IACrCA,MAAMA,CAACA,IAAIA,KAAKA,uBAAyBA,IACzCA,MAAMA,CAACA,IAAIA,KAAKA,sBAAwBA,CAACA,CAACA,CAACA;4BAU3CA,MAAMA,CAACA,kBAAkBA,EAAEA,CAACA;wBAChCA,CAACA;oBACLA,CAACA;gBACLA,CAACA;gBAYDA,EAAEA,CAACA,CAACA,SAASA,CAACA,MAAMA,GAAGA,CAACA,IAAIA,aAAaA,CAACA,IAAIA,KAAKA,sBAAwBA,IAAIA,cAAcA,CAAgBA,CAACA,EAAEA,eAAeA,CAACA,CAACA,CAACA,CAACA;oBAC/HA,IAAIA,YAAYA,GAAGA,WAAWA,CAACA,sBAAwBA,CAACA,CAACA;oBACzDA,IAAIA,YAAYA,GAAGA,iBAAiBA,EAAEA,CAACA;oBAEvCA,EAAEA,CAACA,CAACA,SAASA,CAACA,MAAMA,GAAGA,CAACA,IAAIA,YAAYA,KAAKA,SAASA,IAAIA,eAAeA,CAAgBA,CAACA,CAACA,CAACA,CAACA,CAACA;wBAC1FA,MAAMA,CAACA,8BAA8BA,CAACA,SAASA,EAAEA,YAAYA,EAAEA,YAAYA,CAACA,CAACA;oBACjFA,CAACA;oBACDA,IAAIA,CAACA,CAACA;wBASFA,MAAMA,CAACA,IAAIA,mCAAwBA,CAACA,YAAYA,EAC5CA,YAAYA,EACZA,QAAQA,CAACA,oBAAqBA,CAACA,EAC/BA,UAAUA,CAACA,iCAAiCA,CAACA,CAACA,CAACA;oBACvDA,CAACA;gBACLA,CAACA;gBAEDA,MAAMA,CAACA,SAASA,CAACA;YACrBA,CAACA;YAEDpN,SAASA,oBAAoBA,CAACA,eAAwBA;gBAClDqN,MAAMA,CAACA,YAAYA,EAAEA,IACdA,UAAUA,CAACA,eAAeA,CAACA,IAC3BA,YAAYA,EAAEA,CAACA,IAAIA,KAAKA,sBAAwBA,IAChDA,cAAcA,CAAgBA,CAACA,EAAEA,eAAeA,CAACA,CAACA;YAC7DA,CAACA;YAEDrN,SAASA,cAAcA,CAACA,SAAiBA,EAAEA,eAAwBA;gBAC/DsN,IAAIA,KAAKA,GAAGA,SAASA,CAACA,SAASA,CAACA,CAACA;gBACjCA,EAAEA,CAACA,CAACA,KAAKA,CAACA,IAAIA,KAAKA,yBAA2BA,CAACA,CAACA,CAACA;oBAG7CA,MAAMA,CAACA,CAACA,gBAAgBA,CAACA,SAASA,CAACA,CAACA;gBACxCA,CAACA;gBAEDA,MAAMA,CAACA,mBAAmBA,CAACA,KAAKA,EAAEA,eAAeA,CAACA,CAACA;YACvDA,CAACA;YAEDtN,SAASA,mBAAmBA,CAACA,KAAmBA,EAAEA,eAAwBA;gBAGtEuN,EAAEA,CAACA,CAACA,sBAAWA,CAACA,4BAA4BA,CAACA,KAAKA,CAACA,CAACA,CAACA,CAACA;oBAQlDA,EAAEA,CAACA,CAACA,eAAeA,CAACA,CAACA,CAACA;wBAClBA,MAAMA,CAACA,YAAYA,CAACA,KAAKA,CAACA,CAACA;oBAC/BA,CAACA;oBACDA,IAAIA,CAACA,CAACA;wBACFA,MAAMA,CAACA,IAAIA,CAACA;oBAChBA,CAACA;gBACLA,CAACA;gBAEDA,MAAMA,CAACA,qBAAqBA,CAACA,KAAKA,CAACA,CAACA;YACxCA,CAACA;YAEDvN,SAASA,qBAAqBA,CAACA,KAAmBA;gBAG9CwN,IAAIA,IAAIA,GAAGA,KAAKA,CAACA,IAAIA,CAACA;gBACtBA,MAAMA,CAACA,IAAIA,KAAKA,sBAAwBA,IAAIA,IAAIA,KAAKA,uBAAyBA,IAAIA,IAAIA,KAAKA,oCAAsCA,CAACA;YACtIA,CAACA;YAEDxN,SAASA,iBAAiBA;gBAMtByN,IAAIA,aAAaA,GAAGA,YAAYA,EAAEA,CAACA;gBACnCA,EAAEA,CAACA,CAACA,aAAaA,CAACA,IAAIA,KAAKA,yBAA2BA,CAACA,CAACA,CAACA;oBACrDA,MAAMA,CAACA,2BAA2BA,EAAEA,GAC9BA,qBAAqBA,CAACA,yBAAyBA,CAACA,GAChDA,yBAAyBA,EAAEA,CAACA;gBACtCA,CAACA;gBACDA,IAAIA,CAACA,EAAEA,CAACA,CAACA,sBAAWA,CAACA,4BAA4BA,CAACA,aAAaA,CAACA,CAACA,CAACA,CAACA;oBAE/DA,MAAMA,CAACA,sBAAsBA,EAAEA,CAACA;gBACpCA,CAACA;gBACDA,IAAIA,CAACA,EAAEA,CAACA,CAACA,qBAAqBA,CAACA,aAAaA,CAACA,CAACA,CAACA,CAACA;oBAE5CA,MAAMA,CAACA,YAAYA,CAACA,aAAaA,CAACA,CAACA;gBACvCA,CAACA;gBACDA,IAAIA,CAACA,CAACA;oBACFA,MAAMA,CAACA,kBAAkBA,EAAEA,CAACA;gBAChCA,CAACA;YACLA,CAACA;YAEDzN,SAASA,yBAAyBA;gBAM9B0N,MAAMA,CAACA,IAAIA,qCAA0BA,CAACA,YAAYA,EAC9CA,QAAQA,CAACA,yBAA2BA,CAACA,EACrCA,UAAUA,CAACA,eAAeA,CAACA,EAC3BA,QAAQA,CAACA,0BAA4BA,CAACA,CAACA,CAACA;YAChDA,CAACA;YAED1N,SAASA,2BAA2BA,CAACA,gBAA8BA;gBAE/D2N,MAAMA,CAACA,IAAIA,uCAA4BA,CAACA,YAAYA,EAChDA,YAAYA,CAACA,gBAAgBA,CAACA,EAC9BA,wBAAwBA,CAAoBA,qDAA6DA,CAACA,EAC1GA,QAAQA,CAACA,0BAA4BA,CAACA,CAACA,CAACA;YAChDA,CAACA;YAED3N,SAASA,mBAAmBA;gBAGxB4N,IAAIA,cAA4BA,CAACA;gBACjCA,MAAMA,CAACA,IAAIA,sBAAWA,CAACA,YAAYA,EAC/BA,WAAWA,CAACA,+BAAiCA,CAACA,EAC9CA,cAAcA,GAAGA,QAAQA,CAACA,uBAAyBA,CAACA,EACpDA,cAAcA,CAACA,SAASA,EAAEA,GAAGA,CAACA,GAAGA,eAAeA,CAAmBA,wBAAiCA,CAACA,GAAGA,EAAEA,EAC1GA,QAAQA,CAACA,wBAA0BA,CAACA,CAACA,CAACA;YAC9CA,CAACA;YAED5N,SAASA,kCAAkCA,CAACA,YAAqBA,EAAEA,YAAqBA;gBAIpF6N,IAAIA,sBAAsBA,GAAGA,WAAWA,CAACA,+BAAiCA,CAACA,CAACA;gBAC5EA,EAAEA,CAACA,CAACA,sBAAsBA,CAACA,CAACA,CAACA;oBAGzBA,EAAEA,CAACA,CAACA,YAAYA,CAACA,YAAYA,EAAEA,CAACA,CAACA,CAACA,CAACA;wBAC/BA,MAAMA,CAACA,IAAIA,yBAAcA,CAACA,YAAYA,EAAEA,sBAAsBA,EAAEA,eAAeA,EAAEA,CAACA,CAACA;oBACvFA,CAACA;gBACLA,CAACA;gBAEDA,MAAMA,CAACA,kBAAkBA,CAACA,YAAYA,EAAEA,YAAYA,EAAEA,sBAAsBA,CAACA,CAACA;YAClFA,CAACA;YAED7N,SAASA,kBAAkBA,CAACA,YAAqBA,EAAEA,YAAqBA,EAAEA,sBAAoCA;gBAC1G8N,IAAIA,cAA4BA,CAACA;gBACjCA,MAAMA,CAACA,IAAIA,sBAAWA,CAACA,YAAYA,EAC/BA,sBAAsBA,EACtBA,cAAcA,GAAGA,QAAQA,CAACA,uBAAyBA,CAACA,EACpDA,sBAAsBA,IAAIA,cAAcA,CAACA,SAASA,EAAEA,GAAGA,CAACA,GAAGA,4BAA4BA,CAACA,YAAYA,EAAEA,YAAYA,CAACA,GAAGA,EAAEA,EACxHA,QAAQA,CAACA,wBAA0BA,CAACA,CAACA,CAACA;YAC9CA,CAACA;YAED9N,SAASA,4BAA4BA,CAACA,YAAqBA,EAAEA,YAAqBA;gBAC9E+N,IAAIA,sBAAsBA,GAAGA,mBAAmBA,EAAEA,CAACA;gBACnDA,IAAIA,iBAAiBA,GAAGA,cAAcA,EAAEA,CAACA;gBACzCA,IAAIA,iBAAiBA,GAAGA,cAAcA,EAAEA,CAACA;gBAEzCA,eAAeA,CAACA,YAAYA,CAACA,CAACA;gBAC9BA,eAAeA,CAACA,YAAYA,CAACA,CAACA;gBAE9BA,IAAIA,UAAUA,GAAGA,eAAeA,CAAmBA,wBAAiCA,EAAEA,qBAAqBA,CAACA,CAACA;gBAE7GA,oBAAoBA,CAACA,sBAAsBA,CAACA,CAACA;gBAC7CA,eAAeA,CAACA,iBAAiBA,CAACA,CAACA;gBACnCA,eAAeA,CAACA,iBAAiBA,CAACA,CAACA;gBAEnCA,MAAMA,CAACA,UAAUA,CAACA;YACtBA,CAACA;YAED/N,SAASA,kBAAkBA,CAACA,gCAAyCA,EAAEA,iCAA0CA,EAAEA,YAAqBA;gBACpIgO,MAAMA,CAACA,IAAIA,8BAAmBA,CAACA,YAAYA,EACvCA,yBAAyBA,CAACA,gCAAgCA,CAACA,EAC3DA,kBAAkBA,CAACA,iCAAiCA,EAAEA,YAAYA,CAACA,EACnEA,2BAA2BA,CAAyBA,KAAKA,CAACA,CAACA,CAACA;YACpEA,CAACA;YAEDhO,SAASA,yBAAyBA,CAACA,gCAAyCA;gBACxEiO,IAAIA,aAAaA,GAAGA,YAAYA,EAAEA,CAACA;gBACnCA,EAAEA,CAACA,CAACA,aAAaA,CAACA,IAAIA,KAAKA,sBAAwBA,CAACA,CAACA,CAACA;oBAClDA,MAAMA,CAACA,SAASA,CAACA;gBACrBA,CAACA;gBAEDA,IAAIA,WAAWA,GAAGA,cAAcA,EAAEA,CAACA;gBAEnCA,IAAIA,aAAaA,GAAGA,YAAYA,CAACA,aAAaA,CAACA,CAACA;gBAChDA,IAAIA,cAAcA,GAAGA,wBAAwBA,CAAsBA,yCAAiDA,CAACA,CAACA;gBAEtHA,IAAIA,gBAAgBA,GAAGA,QAAQA,CAACA,yBAA2BA,CAACA,CAACA;gBAG7DA,EAAEA,CAACA,CAACA,gCAAgCA,IAAIA,gBAAgBA,CAACA,SAASA,EAAEA,KAAKA,CAACA,CAACA,CAACA,CAACA;oBACzEA,MAAMA,CAACA,WAAWA,CAACA,CAACA;oBACpBA,kBAAkBA,CAACA,WAAWA,CAACA,CAACA;oBAChCA,MAAMA,CAACA,SAASA,CAACA;gBACrBA,CAACA;gBACDA,IAAIA,CAACA,CAACA;oBACFA,kBAAkBA,CAACA,WAAWA,CAACA,CAACA;oBAChCA,MAAMA,CAACA,IAAIA,kCAAuBA,CAACA,YAAYA,EAAEA,aAAaA,EAAEA,cAAcA,EAAEA,gBAAgBA,CAACA,CAACA;gBACtGA,CAACA;YACLA,CAACA;YAEDjO,SAASA,eAAeA;gBACpBkO,MAAMA,CAACA,YAAYA,CAACA,YAAYA,EAAEA,CAACA,CAACA;YACxCA,CAACA;YAEDlO,SAASA,qBAAqBA;gBAE1BmO,EAAEA,CAACA,CAACA,CAACA,YAAYA,CAACA,YAAYA,EAAEA,CAACA,CAACA,CAACA,CAACA;oBAChCA,MAAMA,CAACA,SAASA,CAACA;gBACrBA,CAACA;gBAEDA,MAAMA,CAACA,IAAIA,8BAAmBA,CAACA,YAAYA,EAAEA,kBAAkBA,EAAEA,EAAEA,kBAAkBA,EAAEA,CAACA,CAACA;YAC7FA,CAACA;YAEDnO,SAASA,kBAAkBA;gBACvBoO,EAAEA,CAACA,CAACA,YAAYA,EAAEA,CAACA,IAAIA,KAAKA,uBAAyBA,CAACA,CAACA,CAACA;oBACpDA,MAAMA,CAACA,SAASA,CAACA;gBACrBA,CAACA;gBAEDA,MAAMA,CAACA,IAAIA,2BAAgBA,CAACA,YAAYA,EAAEA,QAAQA,CAACA,uBAAyBA,CAACA,EAAEA,qBAAqBA,EAAEA,CAACA,CAACA;YAC5GA,CAACA;YAMDpO,SAASA,kBAAkBA,CAACA,iCAA0CA,EAAEA,YAAqBA;gBAiBzFqO,IAAIA,iBAAiBA,GAAGA,cAAcA,EAAEA,CAACA;gBACzCA,IAAIA,8BAA8BA,GAAGA,2BAA2BA,EAAEA,CAACA;gBACnEA,IAAIA,iBAAiBA,GAAGA,cAAcA,EAAEA,CAACA;gBAEzCA,eAAeA,CAACA,iCAAiCA,CAACA,CAACA;gBACnDA,4BAA4BA,CAACA,iCAAiCA,CAACA,CAACA;gBAChEA,eAAeA,CAACA,YAAYA,CAACA,CAACA;gBAE9BA,IAAIA,cAA4BA,CAACA;gBACjCA,IAAIA,MAAMA,GAAGA,IAAIA,8BAAmBA,CAACA,YAAYA,EAC7CA,cAAcA,GAAGA,QAAQA,CAACA,uBAAyBA,CAACA,EACpDA,cAAcA,CAACA,SAASA,EAAEA,GAAGA,CAACA,GAAGA,wBAAwBA,CAAkBA,iCAAyCA,CAACA,GAAGA,EAAEA,EAC1HA,QAAQA,CAACA,wBAA0BA,CAACA,CAACA,CAACA;gBAE1CA,eAAeA,CAACA,iBAAiBA,CAACA,CAACA;gBACnCA,4BAA4BA,CAACA,8BAA8BA,CAACA,CAACA;gBAC7DA,eAAeA,CAACA,iBAAiBA,CAACA,CAACA;gBAEnCA,MAAMA,CAACA,MAAMA,CAACA;YAClBA,CAACA;YAEDrO,SAASA,2BAA2BA,CAACA,kBAA2BA;gBAC5DsO,MAAMA,CAACA,YAAYA,EAAEA,CAACA,IAAIA,KAAKA,oBAAqBA,GAAGA,mBAAmBA,CAACA,kBAAkBA,CAACA,GAAGA,SAASA,CAACA;YAC/GA,CAACA;YAEDtO,SAASA,uBAAuBA,CAACA,kBAA2BA;gBACxDuO,EAAEA,CAACA,CAACA,kBAAkBA,CAACA,CAACA,CAACA;oBACrBA,IAAIA,aAAaA,GAAGA,YAAYA,EAAEA,CAACA;oBACnCA,EAAEA,CAACA,CAACA,aAAaA,CAACA,IAAIA,KAAKA,sBAAwBA,CAACA,CAACA,CAACA;wBAClDA,MAAMA,CAACA,YAAYA,CAACA,aAAaA,CAACA,CAACA;oBACvCA,CAACA;gBACLA,CAACA;gBAEDA,MAAMA,CAACA,SAASA,EAAEA,CAACA;YACvBA,CAACA;YAEDvO,SAASA,mBAAmBA,CAACA,kBAA2BA;gBACpDwO,MAAMA,CAACA,IAAIA,+BAAoBA,CAACA,YAAYA,EAAEA,YAAYA,CAACA,YAAYA,EAAEA,CAACA,EAAEA,uBAAuBA,CAACA,kBAAkBA,CAACA,CAACA,CAACA;YAC7HA,CAACA;YAEDxO,SAASA,MAAMA;gBACXyO,IAAIA,aAAaA,GAAGA,YAAYA,EAAEA,CAACA;gBAEnCA,MAAMA,CAACA,CAACA,aAAaA,CAACA,IAAIA,CAACA,CAACA,CAACA;oBACzBA,KAAKA,sBAAwBA,CAACA;oBAC9BA,KAAKA,mBAAqBA,CAACA;oBAC3BA,KAAKA,sBAAwBA,CAACA;oBAC9BA,KAAKA,uBAAyBA,CAACA;oBAC/BA,KAAKA,sBAAwBA,CAACA;oBAC9BA,KAAKA,oBAAsBA,CAACA;oBAC5BA,KAAKA,uBAAyBA,CAACA;oBAC/BA,KAAKA,uBAAyBA,CAACA;oBAC/BA,KAAKA,sBAAwBA,CAACA;oBAC9BA,KAAKA,mBAAqBA;wBACtBA,MAAMA,CAACA,IAAIA,CAACA;oBAChBA;wBACIA,MAAMA,CAACA,YAAYA,CAACA,aAAaA,CAACA,CAACA;gBAC3CA,CAACA;YACLA,CAACA;YAEDzO,SAASA,qBAAqBA;gBAC1B0O,IAAIA,MAAMA,GAAuBA,YAAYA,EAAEA,CAACA;gBAChDA,EAAEA,CAACA,CAACA,MAAMA,CAACA,CAACA,CAACA;oBACTA,MAAMA,CAACA,MAAMA,CAACA;gBAClBA,CAACA;gBAEDA,IAAIA,aAAaA,GAAGA,YAAYA,EAAEA,CAACA;gBACnCA,EAAEA,CAACA,CAACA,YAAYA,CAACA,aAAaA,CAACA,CAACA,CAACA,CAACA;oBAS9BA,MAAMA,CAACA,+BAA+BA,CAACA,aAAaA,EAAaA,IAAIA,CAACA,CAACA;gBAC3EA,CAACA;gBAEDA,MAAMA,CAACA,kBAAkBA,CAACA,yBAAcA,CAACA,aAAaA,CAACA,CAACA;YAC5DA,CAACA;YAED1O,SAASA,SAASA;gBACd2O,MAAMA,CAACA,YAAYA,EAAEA,IAAIA,kBAAkBA,CAACA,yBAAcA,CAACA,aAAaA,CAACA,CAACA;YAC9EA,CAACA;YAED3O,SAASA,YAAYA;gBAGjB4O,IAAIA,iBAAiBA,GAAGA,cAAcA,EAAEA,CAACA;gBACzCA,IAAIA,8BAA8BA,GAAGA,2BAA2BA,EAAEA,CAACA;gBAEnEA,eAAeA,CAACA,KAAKA,CAACA,CAACA;gBACvBA,4BAA4BA,CAACA,KAAKA,CAACA,CAACA;gBAEpCA,IAAIA,MAAMA,GAAGA,kBAAkBA,EAAEA,CAACA;gBAElCA,eAAeA,CAACA,iBAAiBA,CAACA,CAACA;gBACnCA,4BAA4BA,CAACA,8BAA8BA,CAACA,CAACA;gBAE7DA,MAAMA,CAACA,MAAMA,CAACA;YAClBA,CAACA;YAED5O,SAASA,kBAAkBA;gBACvB6O,EAAEA,CAACA,CAACA,cAAcA,EAAEA,CAACA,CAACA,CAACA;oBACnBA,MAAMA,CAACA,iBAAiBA,EAAEA,CAACA;gBAC/BA,CAACA;gBAEDA,EAAEA,CAACA,CAACA,YAAYA,EAAEA,CAACA,IAAIA,KAAKA,mBAAqBA,CAACA,CAACA,CAACA;oBAChDA,MAAMA,CAACA,oBAAoBA,EAAEA,CAACA;gBAClCA,CAACA;gBAEDA,MAAMA,CAACA,yBAAyBA,EAAEA,CAACA;YACvCA,CAACA;YAED7O,SAASA,yBAAyBA;gBAC9B8O,IAAIA,IAAIA,GAAGA,mBAAmBA,EAAEA,CAACA;gBAEjCA,EAAEA,CAACA,CAACA,IAAIA,CAACA,CAACA,CAACA;oBACPA,IAAIA,QAAsBA,CAACA;oBAC3BA,OAAOA,CAACA,QAAQA,GAAGA,YAAYA,EAAEA,CAACA,CAACA,IAAIA,KAAKA,kBAAmBA,EAAEA,CAACA;wBAC9DA,IAAIA,GAAGA,IAAIA,0BAAeA,CAACA,YAAYA,EAAEA,IAAIA,EAAEA,YAAYA,CAACA,QAAQA,CAACA,EAAEA,gBAAgBA,EAAEA,CAACA,CAACA;oBAC/FA,CAACA;gBACLA,CAACA;gBAEDA,MAAMA,CAACA,IAAIA,CAACA;YAChBA,CAACA;YAED9O,SAASA,gBAAgBA;gBACrB+O,MAAMA,CAACA,mBAAmBA,EAAEA,IAAIA,kBAAkBA,CAACA,yBAAcA,CAACA,aAAaA,CAACA,CAACA;YACrFA,CAACA;YAED/O,SAASA,mBAAmBA;gBAExBgP,IAAIA,IAAIA,GAAGA,oBAAoBA,EAAEA,CAACA;gBAOlCA,OAAOA,IAAIA,EAAEA,CAACA;oBACVA,IAAIA,aAAaA,GAAGA,YAAYA,EAAEA,CAACA;oBAEnCA,EAAEA,CAACA,CAACA,aAAaA,CAACA,iBAAiBA,EAAEA,IACjCA,aAAaA,CAACA,IAAIA,KAAKA,yBAA2BA,CAACA,CAACA,CAACA;wBACrDA,KAAKA,CAACA;oBACVA,CAACA;oBAEDA,IAAIA,GAAGA,IAAIA,0BAAeA,CAACA,YAAYA,EAAEA,IAAIA,EAAEA,YAAYA,CAACA,aAAaA,CAACA,EAAEA,QAAQA,CAACA,0BAA4BA,CAACA,CAACA,CAACA;gBACxHA,CAACA;gBAEDA,MAAMA,CAACA,IAAIA,CAACA;YAChBA,CAACA;YAEDhP,SAASA,cAAcA,CAACA,aAA2BA;gBAC/CiP,MAAMA,CAACA,IAAIA,0BAAeA,CAACA,YAAYA,EAAEA,YAAYA,CAACA,aAAaA,CAACA,EAAEA,SAASA,CAA2BA,IAAIA,CAACA,CAACA,CAACA;YACrHA,CAACA;YAEDjP,SAASA,oBAAoBA;gBACzBkP,IAAIA,aAAaA,GAAGA,YAAYA,EAAEA,CAACA;gBACnCA,MAAMA,CAACA,CAACA,aAAaA,CAACA,IAAIA,CAACA,CAACA,CAACA;oBACzBA,KAAKA,mBAAqBA,CAACA;oBAC3BA,KAAKA,sBAAwBA,CAACA;oBAC9BA,KAAKA,uBAAyBA,CAACA;oBAC/BA,KAAKA,sBAAwBA;wBAGzBA,EAAEA,CAACA,CAACA,SAASA,CAACA,CAACA,CAACA,CAACA,IAAIA,KAAKA,iBAAmBA,CAACA,CAACA,CAACA;4BAC5CA,KAAKA,CAACA;wBACVA,CAACA;wBAEDA,MAAMA,CAACA,YAAYA,CAACA,aAAaA,CAACA,CAACA;oBACvCA,KAAKA,oBAAsBA,EAAOA,MAAMA,CAACA,YAAYA,CAACA,aAAaA,CAACA,CAACA;oBACrEA,KAAKA,uBAAyBA,EAAIA,MAAMA,CAACA,sBAAsBA,CAACA,aAAaA,CAACA,CAACA;oBAC/EA,KAAKA,uBAAyBA,EAAIA,MAAMA,CAACA,eAAeA,EAAEA,CAACA;oBAC3DA,KAAKA,sBAAwBA,EAAKA,MAAMA,CAACA,cAAcA,CAACA,aAAaA,CAACA,CAACA;oBACvEA,KAAKA,yBAA2BA,EAAEA,MAAMA,CAACA,cAAcA,CAACA,aAAaA,CAACA,CAACA;gBAC3EA,CAACA;gBAEDA,MAAMA,CAACA,yBAAyBA,EAAEA,CAACA;YACvCA,CAACA;YAEDlP,SAASA,sBAAsBA,CAACA,cAA4BA;gBACxDmP,MAAMA,CAACA,IAAIA,kCAAuBA,CAACA,YAAYA,EAAEA,YAAYA,CAACA,cAAcA,CAACA,EAAEA,SAASA,EAAEA,EAAEA,QAAQA,CAACA,wBAA0BA,CAACA,CAACA,CAACA;YACtIA,CAACA;YAEDnP,SAASA,yBAAyBA;gBAC9BoP,IAAIA,IAAIA,GAAGA,YAAYA,CAA0BA,KAAKA,CAACA,CAACA;gBACxDA,EAAEA,CAACA,CAACA,IAAIA,KAAKA,SAASA,CAACA,CAACA,CAACA;oBACrBA,MAAMA,CAACA,SAASA,CAACA;gBACrBA,CAACA;gBAMDA,EAAEA,CAACA,CAACA,YAAYA,EAAEA,CAACA,iBAAiBA,EAAEA,CAACA,CAACA,CAACA;oBACrCA,MAAMA,CAACA,IAAIA,CAACA;gBAChBA,CAACA;gBAEDA,IAAIA,gBAAgBA,GAAGA,wBAAwBA,CAAmBA,KAAKA,CAACA,CAACA;gBACzEA,MAAMA,CAACA,CAACA,gBAAgBA,GAClBA,IAAIA,GACJA,IAAIA,4BAAiBA,CAACA,YAAYA,EAAEA,IAAIA,EAAEA,gBAAgBA,CAACA,CAACA;YACtEA,CAACA;YAEDpP,SAASA,cAAcA;gBACnBqP,IAAIA,MAAMA,GAAGA,YAAYA,EAAEA,CAACA;gBAC5BA,IAAIA,UAAUA,GAAGA,MAAMA,CAACA,IAAIA,CAACA;gBAG7BA,EAAEA,CAACA,CAACA,UAAUA,KAAKA,sBAAwBA,CAACA,CAACA,CAACA;oBAC1CA,MAAMA,CAACA,IAAIA,CAACA;gBAChBA,CAACA;gBAODA,EAAEA,CAACA,CAACA,UAAUA,KAAKA,uBAAyBA,CAACA,CAACA,CAACA;oBAC3CA,IAAIA,MAAMA,GAAGA,SAASA,CAACA,CAACA,CAACA,CAACA;oBAC1BA,IAAIA,UAAUA,GAAGA,MAAMA,CAACA,IAAIA,CAACA;oBAE7BA,EAAEA,CAACA,CAACA,UAAUA,KAAKA,wBAA0BA,IAAIA,UAAUA,KAAKA,uBAAyBA,CAACA,CAACA,CAACA;wBAKxFA,MAAMA,CAACA,IAAIA,CAACA;oBAChBA,CAACA;oBAEDA,EAAEA,CAACA,CAACA,cAAcA,CAACA,UAAUA,CAACA,IAAIA,YAAYA,CAACA,MAAMA,CAACA,CAACA,CAACA,CAACA;wBAIrDA,IAAIA,MAAMA,GAAGA,SAASA,CAACA,CAACA,CAACA,CAACA;wBAC1BA,IAAIA,UAAUA,GAAGA,MAAMA,CAACA,IAAIA,CAACA;wBAE7BA,EAAEA,CAACA,CAACA,UAAUA,KAAKA,oBAAqBA,IACpCA,UAAUA,KAAKA,mBAAqBA,IACpCA,UAAUA,KAAKA,uBAAwBA,IACvCA,UAAUA,KAAKA,qBAAsBA,IACrCA,YAAYA,CAACA,MAAMA,CAACA,IACpBA,cAAcA,CAACA,UAAUA,CAACA,CAACA,CAACA,CAACA;4BAQ7BA,MAAMA,CAACA,IAAIA,CAACA;wBAChBA,CAACA;wBAEDA,EAAEA,CAACA,CAACA,UAAUA,KAAKA,wBAA0BA,CAACA,CAACA,CAACA;4BAI5CA,MAAMA,CAACA,SAASA,CAACA,CAACA,CAACA,CAACA,IAAIA,KAAKA,+BAAiCA,CAACA;wBACnEA,CAACA;oBACLA,CAACA;gBACLA,CAACA;gBAGDA,MAAMA,CAACA,KAAKA,CAACA;YACjBA,CAACA;YAEDrP,SAASA,iBAAiBA;gBAGtBsP,MAAMA,CAACA,IAAIA,6BAAkBA,CAACA,YAAYA,EACtCA,yBAAyBA,CAAuCA,KAAKA,CAACA,EACtEA,kBAAkBA,CAAwCA,KAAKA,EAAoBA,KAAKA,CAACA,EACzFA,QAAQA,CAACA,+BAAiCA,CAACA,EAAEA,SAASA,EAAEA,CAACA,CAACA;YAClEA,CAACA;YAEDtP,SAASA,oBAAoBA;gBAGzBuP,MAAMA,CAACA,IAAIA,gCAAqBA,CAACA,YAAYA,EACzCA,QAAQA,CAACA,mBAAqBA,CAACA,EAC/BA,yBAAyBA,CAAuCA,KAAKA,CAACA,EACtEA,kBAAkBA,CAAwCA,KAAKA,EAAoBA,KAAKA,CAACA,EACzFA,QAAQA,CAACA,+BAAiCA,CAACA,EAAEA,SAASA,EAAEA,CAACA,CAACA;YAClEA,CAACA;YAEDvP,SAASA,WAAWA;gBAChBwP,EAAEA,CAACA,CAACA,WAAWA,EAAEA,IAAIA,WAAWA,EAAEA,CAACA,IAAIA,KAAKA,mBAAoBA,CAACA,CAACA,CAACA;oBAC/DA,MAAMA,CAACA,IAAIA,CAACA;gBAChBA,CAACA;gBAEDA,MAAMA,CAACA,iBAAiBA,CAACA,YAAYA,EAAEA,CAACA,CAACA;YAC7CA,CAACA;YAEDxP,SAASA,iBAAiBA,CAACA,KAAmBA;gBAC1CyP,IAAIA,SAASA,GAAGA,KAAKA,CAACA,IAAIA,CAACA;gBAC3BA,MAAMA,CAACA,SAASA,KAAKA,uBAAyBA,IACvCA,cAAcA,CAACA,SAASA,CAACA,IACzBA,YAAYA,CAACA,KAAKA,CAACA,CAACA;YAC/BA,CAACA;YAEDzP,SAASA,kBAAkBA;gBACvB0P,MAAMA,CAACA,IAAIA,0BAAeA,CAACA,YAAYA,EACfA,SAASA,EAAiBA,EAAEA,EAAEA,kBAAkBA,EAAEA,EACnDA,SAASA,EAAsBA,SAASA,EAAyBA,SAASA,CAACA,CAACA;YACvGA,CAACA;YAED1P,SAASA,iBAAiBA;gBACtB2P,IAAIA,IAAIA,GAAGA,WAAWA,EAAEA,CAACA;gBACzBA,EAAEA,CAACA,CAACA,IAAIA,IAAIA,IAAIA,CAACA,IAAIA,KAAKA,mBAAoBA,CAACA,CAACA,CAACA;oBAC7CA,WAAWA,CAACA,IAAIA,CAACA,CAACA;oBAClBA,MAAMA,CAAkBA,IAAIA,CAACA;gBACjCA,CAACA;gBAEDA,IAAIA,cAAcA,GAAGA,WAAWA,CAACA,uBAAyBA,CAACA,CAACA;gBAC5DA,IAAIA,SAASA,GAAGA,cAAcA,EAAEA,CAACA;gBAIjCA,IAAIA,aAAaA,GAAGA,YAAYA,EAAEA,CAACA;gBACnCA,EAAEA,CAACA,CAACA,CAACA,YAAYA,CAACA,aAAaA,CAACA,IAAIA,CAACA,cAAcA,IAAIA,SAASA,CAACA,MAAMA,KAAKA,CAACA,CAACA,CAACA,CAACA;oBAK5EA,EAAEA,CAACA,CAACA,cAAcA,CAACA,aAAaA,CAACA,IAAIA,CAACA,CAACA,CAACA,CAACA;wBACrCA,SAASA,GAAGA,iBAAMA,CAACA,IAAIA,CAACA,CAACA,YAAYA,CAACA,aAAaA,CAACA,CAACA,CAACA,CAACA;oBAC3DA,CAACA;oBACDA,IAAIA,CAACA,CAACA;wBACFA,MAAMA,CAACA,SAASA,CAACA;oBACrBA,CAACA;gBACLA,CAACA;gBAMDA,IAAIA,UAAUA,GAAGA,2BAA2BA,EAAEA,GACxCA,oBAAoBA,CAACA,kBAAkBA,CAACA,GACxCA,kBAAkBA,EAAEA,CAACA;gBAE3BA,IAAIA,aAAaA,GAAGA,WAAWA,CAACA,uBAAwBA,CAACA,CAACA;gBAC1DA,IAAIA,cAAcA,GAAGA,2BAA2BA,CAAyBA,IAAIA,CAACA,CAACA;gBAE/EA,IAAIA,iBAAiBA,GAA4BA,SAASA,CAACA;gBAC3DA,EAAEA,CAACA,CAACA,mBAAmBA,CAAiBA,IAAIA,CAACA,CAACA,CAACA,CAACA;oBAC5CA,iBAAiBA,GAAGA,2BAA2BA,EAAEA,GAC3CA,qBAAqBA,CAACA,sBAAsBA,CAACA,GAC7CA,sBAAsBA,EAAEA,CAACA;gBACnCA,CAACA;gBAEDA,MAAMA,CAACA,IAAIA,0BAAeA,CAACA,YAAYA,EAAEA,cAAcA,EAAEA,SAASA,EAAEA,UAAUA,EAAEA,aAAaA,EAAEA,cAAcA,EAAEA,iBAAiBA,CAACA,CAACA;YACtIA,CAACA;YAED3P,SAASA,eAAeA,CAA+BA,eAAiCA,EAAEA,YAAqCA;gBAC3H4P,IAAIA,qBAAqBA,GAAGA,gBAAgBA,CAACA;gBAC7CA,gBAAgBA,IAAIA,CAACA,CAACA,IAAIA,eAAeA,CAACA,CAACA;gBAE3CA,IAAIA,MAAMA,GAAGA,qBAAqBA,CAAIA,eAAeA,EAAEA,YAAYA,CAACA,CAACA;gBAErEA,gBAAgBA,GAAGA,qBAAqBA,CAACA;gBAEzCA,MAAMA,CAACA,MAAMA,CAACA;YAClBA,CAACA;YAED5P,SAASA,wBAAwBA,CAA+BA,eAAiCA;gBAC7F6P,IAAIA,qBAAqBA,GAAGA,gBAAgBA,CAACA;gBAC7CA,gBAAgBA,IAAIA,CAACA,CAACA,IAAIA,eAAeA,CAACA,CAACA;gBAE3CA,IAAIA,MAAMA,GAAGA,8BAA8BA,CAAIA,eAAeA,CAACA,CAACA;gBAEhEA,gBAAgBA,GAAGA,qBAAqBA,CAACA;gBAEzCA,MAAMA,CAACA,MAAMA,CAACA;YAClBA,CAACA;YAGD7P,SAASA,iCAAiCA,CAA+BA,eAAiCA;gBAGtG8P,+BAA+BA,CAACA,eAAeA,CAACA,CAACA;gBAMjDA,GAAGA,CAACA,CAACA,GAAGA,CAACA,KAAKA,GAAGA,gBAAgBA,CAACA,oBAAoBA,EAAEA,KAAKA,IAAIA,gBAAgBA,CAACA,qBAAqBA,EAAEA,KAAKA,EAAEA,EAAEA,CAACA;oBAC/GA,EAAEA,CAACA,CAACA,CAACA,gBAAgBA,GAAGA,CAACA,CAACA,IAAIA,KAAKA,CAACA,CAACA,KAAKA,CAACA,CAACA,CAACA,CAACA;wBAC1CA,EAAEA,CAACA,CAACA,wBAAwBA,CAACA,KAAKA,CAACA,IAAIA,kBAAkBA,CAACA,KAAKA,EAAuBA,IAAIA,CAACA,CAACA,CAACA,CAACA;4BAE1FA,MAAMA,CAACA,IAAIA,CAACA;wBAChBA,CAACA;oBACLA,CAACA;gBACLA,CAACA;gBAIDA,SAASA,CAACA,YAAYA,EAAEA,CAACA,CAACA;gBAG1BA,MAAMA,CAACA,KAAKA,CAACA;YACjBA,CAACA;YAED9P,SAASA,wBAAwBA,CACzBA,eAAiCA,EACjCA,eAAwBA,EACxBA,KAAUA,EACVA,YAAmDA;gBACvD+P,IAAIA,IAAIA,GAAMA,8BAA8BA,CAACA,eAAeA,EAAEA,eAAeA,CAACA,CAACA;gBAE/EA,EAAEA,CAACA,CAACA,IAAIA,KAAKA,SAASA,CAACA,CAACA,CAACA;oBAGrBA,KAAKA,CAACA,IAAIA,CAACA,IAAIA,CAACA,CAACA;oBAEjBA,EAAEA,CAACA,CAACA,YAAYA,CAACA,CAACA,CAACA;wBACfA,YAAYA,CAACA,KAAKA,CAACA,CAACA;oBACxBA,CAACA;gBACLA,CAACA;YACLA,CAACA;YAED/P,SAASA,gBAAgBA,CAACA,eAAiCA;gBACvDgQ,MAAMA,CAACA,wBAAwBA,CAACA,eAAeA,CAACA,IACzCA,YAAYA,EAAEA,CAACA,IAAIA,KAAKA,sBAAyBA,CAACA;YAC7DA,CAACA;YAEDhQ,SAASA,qBAAqBA,CAA+BA,eAAiCA,EAAEA,YAAmDA;gBAC/IiQ,IAAIA,KAAKA,GAAQA,EAAEA,CAACA;gBAEpBA,OAAOA,IAAIA,EAAEA,CAACA;oBAGVA,IAAIA,cAAcA,GAAGA,KAAKA,CAACA,MAAMA,CAACA;oBAClCA,wBAAwBA,CAACA,eAAeA,EAAuBA,KAAKA,EAAEA,KAAKA,EAAEA,YAAYA,CAACA,CAACA;oBAE3FA,EAAEA,CAACA,CAACA,KAAKA,CAACA,MAAMA,KAAKA,cAAcA,CAACA,CAACA,CAACA;wBAKlCA,EAAEA,CAACA,CAACA,gBAAgBA,CAACA,eAAeA,CAACA,CAACA,CAACA,CAACA;4BACpCA,KAAKA,CAACA;wBACVA,CAACA;wBAIDA,IAAIA,KAAKA,GAAGA,iCAAiCA,CAACA,eAAeA,CAACA,CAACA;wBAC/DA,EAAEA,CAACA,CAACA,KAAKA,CAACA,CAACA,CAACA;4BACRA,KAAKA,CAACA;wBACVA,CAACA;oBACLA,CAACA;gBAILA,CAACA;gBAEDA,MAAMA,CAACA,iBAAMA,CAACA,IAAIA,CAAIA,KAAKA,CAACA,CAACA;YACjCA,CAACA;YAEDjQ,SAASA,8BAA8BA,CAA+BA,eAAiCA;gBACnGkQ,IAAIA,kBAAkBA,GAAyBA,EAAEA,CAACA;gBASlDA,IAAIA,cAAcA,GAAGA,eAAeA,KAAKA,8BAAuCA,GAAGA,uBAAyBA,GAAGA,mBAAqBA,CAACA;gBACrIA,IAAIA,gCAAgCA,GAAGA,cAAcA,KAAKA,uBAAyBA,CAACA;gBAEpFA,IAAIA,eAAeA,GAAGA,KAAKA,CAACA;gBAC5BA,OAAOA,IAAIA,EAAEA,CAACA;oBAKVA,IAAIA,cAAcA,GAAGA,kBAAkBA,CAACA,MAAMA,CAACA;oBAC/CA,wBAAwBA,CAACA,eAAeA,EAAEA,eAAeA,EAAEA,kBAAkBA,EAAoBA,SAASA,CAACA,CAACA;oBAE5GA,EAAEA,CAACA,CAACA,kBAAkBA,CAACA,MAAMA,KAAKA,cAAcA,CAACA,CAACA,CAACA;wBAM/CA,EAAEA,CAACA,CAACA,gBAAgBA,CAACA,eAAeA,CAACA,CAACA,CAACA,CAACA;4BACpCA,KAAKA,CAACA;wBACVA,CAACA;wBAIDA,IAAIA,KAAKA,GAAGA,iCAAiCA,CAACA,eAAeA,CAACA,CAACA;wBAC/DA,EAAEA,CAACA,CAACA,KAAKA,CAACA,CAACA,CAACA;4BACRA,KAAKA,CAACA;wBACVA,CAACA;wBACDA,IAAIA,CAACA,CAACA;4BAEFA,eAAeA,GAAGA,IAAIA,CAACA;4BACvBA,QAAQA,CAACA;wBACbA,CAACA;oBACLA,CAACA;oBAMDA,eAAeA,GAAGA,KAAKA,CAACA;oBAMxBA,IAAIA,aAAaA,GAAGA,YAAYA,EAAEA,CAACA;oBACnCA,IAAIA,SAASA,GAAGA,aAAaA,CAACA,IAAIA,CAACA;oBACnCA,EAAEA,CAACA,CAACA,SAASA,KAAKA,cAAcA,IAAIA,SAASA,KAAKA,mBAAqBA,CAACA,CAACA,CAACA;wBAEtEA,kBAAkBA,CAACA,IAAIA,CAACA,YAAYA,CAACA,aAAaA,CAACA,CAACA,CAACA;wBACrDA,QAAQA,CAACA;oBACbA,CAACA;oBAKDA,EAAEA,CAACA,CAACA,gBAAgBA,CAACA,eAAeA,CAACA,CAACA,CAACA,CAACA;wBACpCA,KAAKA,CAACA;oBACVA,CAACA;oBAiBDA,EAAEA,CAACA,CAACA,gCAAgCA,IAAIA,wBAAwBA,CAA0BA,KAAKA,CAACA,CAACA,CAACA,CAACA;wBAC/FA,IAAIA,cAAcA,GAAGA,+BAA+BA,CAA0BA,KAAKA,CAACA,IAAIA,gBAAgBA,CAACA,uBAAyBA,CAACA,CAACA;wBACpIA,kBAAkBA,CAACA,IAAIA,CAACA,cAAcA,CAACA,CAACA;wBAExCA,QAAQA,CAACA;oBACbA,CAACA;oBAODA,kBAAkBA,CAACA,IAAIA,CAACA,QAAQA,CAACA,cAAcA,CAACA,CAACA,CAACA;oBAalDA,eAAeA,GAAGA,IAAIA,CAACA;gBAC3BA,CAACA;gBAEDA,MAAMA,CAACA,iBAAMA,CAACA,aAAaA,CAAIA,kBAAkBA,CAACA,CAACA;YACvDA,CAACA;YAEDlQ,SAASA,+BAA+BA,CAACA,QAA0BA;gBAC/DmQ,IAAIA,KAAKA,GAAGA,YAAYA,EAAEA,CAACA;gBAE3BA,IAAIA,UAAUA,GAAGA,IAAIA,qBAAUA,CAACA,QAAQA,EAAEA,MAAMA,CAACA,IAAIA,CAACA,OAAOA,EAAEA,EAC3DA,gBAAKA,CAACA,KAAKA,EAAEA,MAAMA,CAACA,IAAIA,CAACA,EAAEA,gBAAKA,CAACA,KAAKA,CAACA,EAAEA,yBAAcA,CAACA,2BAA2BA,EAAEA,CAACA,0BAA0BA,CAACA,QAAQA,CAACA,CAACA,CAACA,CAACA;gBACjIA,aAAaA,CAACA,UAAUA,CAACA,CAACA;YAC9BA,CAACA;YAEDnQ,SAASA,aAAaA,CAACA,UAAsBA;gBAEzCoQ,EAAEA,CAACA,CAACA,WAAWA,CAACA,MAAMA,GAAGA,CAACA,IACtBA,WAAWA,CAACA,WAAWA,CAACA,MAAMA,GAAGA,CAACA,CAACA,CAACA,KAAKA,EAAEA,KAAKA,UAAUA,CAACA,KAAKA,EAAEA,CAACA,CAACA,CAACA;oBACrEA,MAAMA,CAACA;gBACXA,CAACA;gBAEDA,WAAWA,CAACA,IAAIA,CAACA,UAAUA,CAACA,CAACA;YACjCA,CAACA;YAEDpQ,SAASA,wBAAwBA,CAACA,eAAiCA;gBAC/DqQ,MAAMA,CAACA,CAACA,eAAeA,CAACA,CAACA,CAACA;oBACtBA,KAAKA,iCAA0CA,EAA6BA,MAAMA,CAACA,6CAA6CA,EAAEA,CAACA;oBACnIA,KAAKA,sCAA+CA,EAAwBA,MAAMA,CAACA,kDAAkDA,EAAEA,CAACA;oBACxIA,KAAKA,wCAAiDA,EAAsBA,MAAMA,CAACA,oDAAoDA,EAAEA,CAACA;oBAC1IA,KAAKA,qCAA8CA,EAAyBA,MAAMA,CAACA,iDAAiDA,EAAEA,CAACA;oBACvIA,KAAKA,+BAAwCA,EAA+BA,MAAMA,CAACA,2CAA2CA,EAAEA,CAACA;oBACjIA,KAAKA,wBAAiCA,EAAsCA,MAAMA,CAACA,oCAAoCA,EAAEA,CAACA;oBAC1HA,KAAKA,2BAAoCA,EAAmCA,MAAMA,CAACA,uCAAuCA,EAAEA,CAACA;oBAC7HA,KAAKA,6BAAsCA,EAAiCA,MAAMA,CAACA,yCAAyCA,EAAEA,CAACA;oBAC/HA,KAAKA,oCAA6CA,EAA0BA,MAAMA,CAACA,gDAAgDA,EAAEA,CAACA;oBACtIA,KAAKA,8BAAuCA,EAAgCA,MAAMA,CAACA,0CAA0CA,EAAEA,CAACA;oBAChIA,KAAKA,oDAA4DA,EAAWA,MAAMA,CAACA,+DAA+DA,EAAEA,CAACA;oBACrJA,KAAKA,oCAA4CA,EAA2BA,MAAMA,CAACA,+CAA+CA,EAAEA,CAACA;oBACrIA,KAAKA,gDAAwDA,EAAeA,MAAMA,CAACA,2DAA2DA,EAAEA,CAACA;oBACjJA,KAAKA,2CAAmDA,EAAoBA,MAAMA,CAACA,sDAAsDA,EAAEA,CAACA;oBAC5IA,KAAKA,oDAA4DA,EAAWA,MAAMA,CAACA,+DAA+DA,EAAEA,CAACA;oBACrJA,KAAKA,qDAA6DA,EAAUA,MAAMA,CAACA,2DAA2DA,EAAEA,CAACA;oBACjJA,KAAKA,iCAAyCA,EAA8BA,MAAMA,CAACA,4CAA4CA,EAAEA,CAACA;oBAClIA,KAAKA,kCAA0CA,EAA6BA,MAAMA,CAACA,6CAA6CA,EAAEA,CAACA;oBACnIA,KAAKA,+BAAuCA,EAAgCA,MAAMA,CAACA,0CAA0CA,EAAEA,CAACA;oBAChIA,KAAKA,yCAAiDA,EAAsBA,MAAMA,CAACA,oDAAoDA,EAAEA,CAACA;oBAC1IA,KAAKA,wBAAgCA,EAAuCA,MAAMA,CAACA,mCAAmCA,EAAEA,CAACA;oBACzHA;wBACIA,MAAMA,iBAAMA,CAACA,gBAAgBA,EAAEA,CAACA;gBACxCA,CAACA;YACLA,CAACA;YAEDrQ,SAASA,6CAA6CA;gBAClDsQ,MAAMA,CAACA,YAAYA,EAAEA,CAACA,IAAIA,KAAKA,sBAAyBA,CAACA;YAC7DA,CAACA;YAEDtQ,SAASA,gDAAgDA;gBACrDuQ,MAAMA,CAACA,YAAYA,EAAEA,CAACA,IAAIA,KAAKA,wBAA0BA,CAACA;YAC9DA,CAACA;YAEDvQ,SAASA,oDAAoDA;gBACzDwQ,MAAMA,CAACA,YAAYA,EAAEA,CAACA,IAAIA,KAAKA,wBAA0BA,CAACA;YAC9DA,CAACA;YAEDxQ,SAASA,0CAA0CA;gBAC/CyQ,MAAMA,CAACA,YAAYA,EAAEA,CAACA,IAAIA,KAAKA,wBAA0BA,CAACA;YAC9DA,CAACA;YAEDzQ,SAASA,+DAA+DA;gBACpE0Q,MAAMA,CAACA,YAAYA,EAAEA,CAACA,IAAIA,KAAKA,wBAA0BA,CAACA;YAC9DA,CAACA;YAED1Q,SAASA,2DAA2DA;gBAChE2Q,MAAMA,CAACA,YAAYA,EAAEA,CAACA,IAAIA,KAAKA,0BAA4BA,CAACA;YAChEA,CAACA;YAED3Q,SAASA,0CAA0CA;gBAC/C4Q,IAAIA,KAAKA,GAAGA,YAAYA,EAAEA,CAACA;gBAC3BA,IAAIA,SAASA,GAAGA,KAAKA,CAACA,IAAIA,CAACA;gBAC3BA,EAAEA,CAACA,CAACA,SAASA,KAAKA,yBAA2BA,CAACA,CAACA,CAACA;oBAC5CA,MAAMA,CAACA,IAAIA,CAACA;gBAChBA,CAACA;gBAIDA,EAAEA,CAACA,CAACA,qCAAqCA,CAACA,SAASA,CAACA,CAACA,CAACA,CAACA;oBACnDA,MAAMA,CAACA,IAAIA,CAACA;gBAChBA,CAACA;gBAGDA,MAAMA,CAACA,KAAKA,CAACA;YACjBA,CAACA;YAED5Q,SAASA,mCAAmCA;gBACxC6Q,IAAIA,KAAKA,GAAGA,YAAYA,EAAEA,CAACA;gBAC3BA,IAAIA,SAASA,GAAGA,KAAKA,CAACA,IAAIA,CAACA;gBAC3BA,EAAEA,CAACA,CAACA,SAASA,KAAKA,0BAA4BA,CAACA,CAACA,CAACA;oBAC7CA,MAAMA,CAACA,IAAIA,CAACA;gBAChBA,CAACA;gBAGDA,MAAMA,CAACA,KAAKA,CAACA;YACjBA,CAACA;YAED7Q,SAASA,oDAAoDA;gBACzD8Q,IAAIA,SAASA,GAAGA,YAAYA,EAAEA,CAACA,IAAIA,CAACA;gBACpCA,EAAEA,CAACA,CAACA,SAASA,KAAKA,yBAA2BA,CAACA,CAACA,CAACA;oBAC5CA,MAAMA,CAACA,IAAIA,CAACA;gBAChBA,CAACA;gBAGDA,EAAEA,CAACA,CAACA,SAASA,KAAKA,uBAAyBA,IACvCA,SAASA,KAAKA,uBAAyBA,IACvCA,SAASA,KAAKA,uBAAyBA,IACvCA,SAASA,KAAKA,0BAA4BA,CAACA,CAACA,CAACA;oBAC7CA,MAAMA,CAACA,IAAIA,CAACA;gBAChBA,CAACA;gBAGDA,MAAMA,CAACA,KAAKA,CAACA;YACjBA,CAACA;YAED9Q,SAASA,4CAA4CA;gBACjD+Q,IAAIA,SAASA,GAAGA,YAAYA,EAAEA,CAACA,IAAIA,CAACA;gBACpCA,EAAEA,CAACA,CAACA,SAASA,KAAKA,wBAA0BA,CAACA,CAACA,CAACA;oBAC3CA,MAAMA,CAACA,IAAIA,CAACA;gBAChBA,CAACA;gBAIDA,EAAEA,CAACA,CAACA,SAASA,KAAKA,uBAAyBA,CAACA,CAACA,CAACA;oBAC1CA,MAAMA,CAACA,IAAIA,CAACA;gBAChBA,CAACA;gBAIDA,EAAEA,CAACA,CAACA,SAASA,KAAKA,+BAAiCA,CAACA,CAACA,CAACA;oBAClDA,MAAMA,CAACA,IAAIA,CAACA;gBAChBA,CAACA;gBAEDA,MAAMA,CAACA,KAAKA,CAACA;YACjBA,CAACA;YAED/Q,SAASA,6CAA6CA;gBAClDgR,IAAIA,SAASA,GAAGA,YAAYA,EAAEA,CAACA,IAAIA,CAACA;gBACpCA,EAAEA,CAACA,CAACA,SAASA,KAAKA,0BAA4BA,CAACA,CAACA,CAACA;oBAC7CA,MAAMA,CAACA,IAAIA,CAACA;gBAChBA,CAACA;gBAIDA,EAAEA,CAACA,CAACA,SAASA,KAAKA,uBAAyBA,CAACA,CAACA,CAACA;oBAC1CA,MAAMA,CAACA,IAAIA,CAACA;gBAChBA,CAACA;gBAEDA,MAAMA,CAACA,KAAKA,CAACA;YACjBA,CAACA;YAEDhR,SAASA,2DAA2DA;gBAChEiR,EAAEA,CAACA,CAACA,mBAAmBA,EAAEA,CAACA,CAACA,CAACA;oBAExBA,IAAIA,SAASA,GAAGA,YAAYA,EAAEA,CAACA,IAAIA,CAACA;oBAEpCA,EAAEA,CAACA,CAACA,SAASA,KAAKA,uBAAyBA,IACvCA,SAASA,KAAKA,wBAA0BA,CAACA,CAACA,CAACA;wBAC3CA,MAAMA,CAACA,IAAIA,CAACA;oBAChBA,CAACA;oBAEDA,EAAEA,CAACA,CAACA,SAASA,KAAKA,kBAAoBA,CAACA,CAACA,CAACA;wBACrCA,MAAMA,CAACA,IAAIA,CAACA;oBAChBA,CAACA;oBAEDA,MAAMA,CAACA,KAAKA,CAACA;gBACjBA,CAACA;gBACDA,IAAIA,CAACA,CAACA;oBAOFA,EAAEA,CAACA,CAACA,YAAYA,EAAEA,CAACA,IAAIA,KAAKA,+BAAiCA,CAACA,CAACA,CAACA;wBAC5DA,MAAMA,CAACA,IAAIA,CAACA;oBAChBA,CAACA;oBAGDA,MAAMA,CAACA,kCAAkCA,CAA0BA,KAAKA,CAACA,CAACA;gBAC9EA,CAACA;YACLA,CAACA;YAEDjR,SAASA,+DAA+DA;gBACpEkR,IAAIA,SAASA,GAAGA,YAAYA,EAAEA,CAACA,IAAIA,CAACA;gBACpCA,EAAEA,CAACA,CAACA,SAASA,KAAKA,uBAAyBA,IAAIA,SAASA,KAAKA,wBAA0BA,CAACA,CAACA,CAACA;oBACtFA,MAAMA,CAACA,IAAIA,CAACA;gBAChBA,CAACA;gBAEDA,MAAMA,CAACA,KAAKA,CAACA;YACjBA,CAACA;YAEDlR,SAASA,+CAA+CA;gBACpDmR,IAAIA,SAASA,GAAGA,YAAYA,EAAEA,CAACA,IAAIA,CAACA;gBACpCA,EAAEA,CAACA,CAACA,SAASA,KAAKA,uBAAyBA,IAAIA,SAASA,KAAKA,0BAA4BA,CAACA,CAACA,CAACA;oBACxFA,MAAMA,CAACA,IAAIA,CAACA;gBAChBA,CAACA;gBAEDA,EAAEA,CAACA,CAACA,+DAA+DA,EAAEA,CAACA,CAACA,CAACA;oBACpEA,MAAMA,CAACA,IAAIA,CAACA;gBAChBA,CAACA;gBAEDA,MAAMA,CAACA,KAAKA,CAACA;YACjBA,CAACA;YAEDnR,SAASA,sDAAsDA;gBAC3DoR,IAAIA,MAAMA,GAAGA,YAAYA,EAAEA,CAACA;gBAC5BA,IAAIA,SAASA,GAAGA,MAAMA,CAACA,IAAIA,CAACA;gBAC5BA,MAAMA,CAACA,SAASA,KAAKA,wBAA0BA,IACxCA,SAASA,KAAKA,uBAAyBA,CAACA;YACnDA,CAACA;YAEDpR,SAASA,kDAAkDA;gBACvDqR,MAAMA,CAACA,YAAYA,EAAEA,CAACA,IAAIA,KAAKA,wBAA0BA,CAACA;YAC9DA,CAACA;YAEDrR,SAASA,iDAAiDA;gBACtDsR,MAAMA,CAACA,YAAYA,EAAEA,CAACA,IAAIA,KAAKA,wBAA0BA,CAACA;YAC9DA,CAACA;YAEDtR,SAASA,2CAA2CA;gBAChDuR,MAAMA,CAACA,YAAYA,EAAEA,CAACA,IAAIA,KAAKA,wBAA0BA,IAClDA,cAAcA,EAAEA,CAACA;YAC5BA,CAACA;YAEDvR,SAASA,oCAAoCA;gBACzCwR,MAAMA,CAACA,YAAYA,EAAEA,CAACA,IAAIA,KAAKA,wBAA0BA,CAACA;YAC9DA,CAACA;YAEDxR,SAASA,uCAAuCA;gBAC5CyR,IAAIA,SAASA,GAAGA,YAAYA,EAAEA,CAACA,IAAIA,CAACA;gBACpCA,MAAMA,CAACA,SAASA,KAAKA,qBAAuBA,IACpCA,SAASA,KAAKA,uBAAyBA,CAACA;YACpDA,CAACA;YAEDzR,SAASA,yCAAyCA;gBAC9C0R,MAAMA,CAACA,YAAYA,EAAEA,CAACA,IAAIA,KAAKA,uBAAyBA,CAACA;YAC7DA,CAACA;YAED1R,SAASA,kBAAkBA,CAACA,eAAiCA,EAAEA,eAAwBA;gBACnF2R,MAAMA,CAACA,CAACA,eAAeA,CAACA,CAACA,CAACA;oBACtBA,KAAKA,iCAA0CA,EAA6BA,MAAMA,CAACA,eAAeA,CAACA,eAAeA,CAACA,CAACA;oBACpHA,KAAKA,sCAA+CA,EAAwBA,MAAMA,CAACA,cAAcA,CAACA,eAAeA,CAACA,CAACA;oBACnHA,KAAKA,wCAAiDA,EAAsBA,MAAMA,CAACA,eAAeA,CAACA,eAAeA,CAACA,CAACA;oBACpHA,KAAKA,qCAA8CA,EAAyBA,MAAMA,CAACA,cAAcA,EAAEA,CAACA;oBACpGA,KAAKA,+BAAwCA,EAA+BA,MAAMA,CAACA,WAAWA,CAACA,aAAaA,EAAEA,EAAEA,eAAeA,CAACA,CAACA;oBACjIA,KAAKA,wBAAiCA,EAAsCA,MAAMA,CAACA,WAAWA,CAACA,aAAaA,EAAEA,EAAEA,eAAeA,CAACA,CAACA;oBAKjIA,KAAKA,2BAAoCA,EAA2BA,MAAMA,CAACA,KAAKA,CAACA;oBACjFA,KAAKA,6BAAsCA,EAAyBA,MAAMA,CAACA,KAAKA,CAACA;oBACjFA,KAAKA,oCAA6CA,EAAkBA,MAAMA,CAACA,aAAaA,CAACA,eAAeA,CAACA,CAACA;oBAC1GA,KAAKA,8BAAuCA,EAAwBA,MAAMA,CAACA,YAAYA,CAACA,eAAeA,CAACA,CAACA;oBACzGA,KAAKA,oDAA4DA,EAAGA,MAAMA,CAACA,gBAAgBA,EAAEA,CAACA;oBAC9FA,KAAKA,oCAA4CA,EAAmBA,MAAMA,CAACA,wBAAwBA,EAAEA,CAACA;oBACtGA,KAAKA,gDAAwDA,EAAOA,MAAMA,CAACA,oBAAoBA,EAAEA,CAACA;oBAClGA,KAAKA,2CAAmDA,EAAYA,MAAMA,CAACA,2CAA2CA,EAAEA,CAACA;oBACzHA,KAAKA,oDAA4DA,EAAGA,MAAMA,CAACA,oBAAoBA,CAACA,eAAeA,CAACA,CAACA;oBACjHA,KAAKA,qDAA6DA,EAAEA,MAAMA,CAACA,+BAA+BA,EAAEA,CAACA;oBAC7GA,KAAKA,iCAAyCA,EAAsBA,MAAMA,CAACA,WAAWA,EAAEA,CAACA;oBACzFA,KAAKA,kCAA0CA,EAAqBA,MAAMA,CAACA,WAAWA,EAAEA,CAACA;oBACzFA,KAAKA,+BAAuCA,EAAwBA,MAAMA,CAACA,MAAMA,EAAEA,CAACA;oBACpFA,KAAKA,yCAAiDA,EAAcA,MAAMA,CAACA,eAAeA,EAAEA,CAACA;oBAC7FA,KAAKA,wBAAgCA,EAA+BA,MAAMA,CAACA,MAAMA,EAAEA,CAACA;oBACpFA,SAASA,MAAMA,iBAAMA,CAACA,gBAAgBA,EAAEA,CAACA;gBAC7CA,CAACA;YACLA,CAACA;YAED3R,SAASA,2CAA2CA;gBAChD4R,IAAIA,aAAaA,GAAGA,YAAYA,EAAEA,CAACA;gBACnCA,EAAEA,CAACA,CAACA,YAAYA,CAACA,aAAaA,CAACA,CAACA,CAACA,CAACA;oBAC9BA,MAAMA,CAACA,IAAIA,CAACA;gBAChBA,CAACA;gBAKDA,EAAEA,CAACA,CAACA,aAAaA,CAACA,IAAIA,KAAKA,mBAAqBA,CAACA,CAACA,CAACA;oBAC/CA,MAAMA,CAACA,IAAIA,CAACA;gBAChBA,CAACA;gBAEDA,MAAMA,CAACA,KAAKA,CAACA;YACjBA,CAACA;YAED5R,SAASA,8BAA8BA,CAACA,eAAiCA,EAAEA,eAAwBA;gBAC/F6R,MAAMA,CAACA,CAACA,eAAeA,CAACA,CAACA,CAACA;oBACtBA,KAAKA,iCAA0CA,EAAqBA,MAAMA,CAACA,qBAAqBA,CAACA,eAAeA,CAACA,CAACA;oBAClHA,KAAKA,sCAA+CA,EAAgBA,MAAMA,CAACA,oBAAoBA,CAACA,eAAeA,CAACA,CAACA;oBACjHA,KAAKA,wCAAiDA,EAAcA,MAAMA,CAACA,qBAAqBA,CAACA,eAAeA,CAACA,CAACA;oBAClHA,KAAKA,qCAA8CA,EAAiBA,MAAMA,CAACA,oBAAoBA,EAAEA,CAACA;oBAClGA,KAAKA,+BAAwCA,EAAuBA,MAAMA,CAACA,iBAAiBA,CAACA,eAAeA,CAACA,CAACA;oBAC9GA,KAAKA,wBAAiCA,EAA8BA,MAAMA,CAACA,iBAAiBA,CAACA,eAAeA,CAACA,CAACA;oBAC9GA,KAAKA,2BAAoCA,EAA2BA,MAAMA,CAACA,iBAAiBA,CAACA,eAAeA,CAACA,CAACA;oBAC9GA,KAAKA,6BAAsCA,EAAyBA,MAAMA,CAACA,iBAAiBA,CAACA,eAAeA,CAACA,CAACA;oBAC9GA,KAAKA,oCAA6CA,EAAkBA,MAAMA,CAACA,mBAAmBA,CAACA,eAAeA,CAACA,CAACA;oBAChHA,KAAKA,8BAAuCA,EAAwBA,MAAMA,CAACA,kBAAkBA,CAACA,eAAeA,CAACA,CAACA;oBAC/GA,KAAKA,oDAA4DA,EAAGA,MAAMA,CAACA,sBAAsBA,EAAEA,CAACA;oBACpGA,KAAKA,oCAA4CA,EAAmBA,MAAMA,CAACA,8BAA8BA,EAAEA,CAACA;oBAC5GA,KAAKA,gDAAwDA,EAAOA,MAAMA,CAACA,0BAA0BA,EAAEA,CAACA;oBACxGA,KAAKA,2CAAmDA,EAAYA,MAAMA,CAACA,8BAA8BA,EAAEA,CAACA;oBAC5GA,KAAKA,oDAA4DA,EAAGA,MAAMA,CAACA,0BAA0BA,CAACA,eAAeA,CAACA,CAACA;oBACvHA,KAAKA,qDAA6DA,EAAEA,MAAMA,CAACA,qCAAqCA,EAAEA,CAACA;oBACnHA,KAAKA,iCAAyCA,EAAsBA,MAAMA,CAACA,iBAAiBA,EAAEA,CAACA;oBAC/FA,KAAKA,kCAA0CA,EAAqBA,MAAMA,CAACA,iBAAiBA,EAAEA,CAACA;oBAC/FA,KAAKA,+BAAuCA,EAAwBA,MAAMA,CAACA,YAAYA,EAAEA,CAACA;oBAC1FA,KAAKA,yCAAiDA,EAAcA,MAAMA,CAACA,qBAAqBA,EAAEA,CAACA;oBACnGA,KAAKA,wBAAgCA,EAA+BA,MAAMA,CAACA,YAAYA,EAAEA,CAACA;oBAC1FA,SAASA,MAAMA,iBAAMA,CAACA,gBAAgBA,EAAEA,CAACA;gBAC7CA,CAACA;YACLA,CAACA;YAED7R,SAASA,0BAA0BA,CAACA,eAAiCA;gBACjE8R,MAAMA,CAACA,CAACA,eAAeA,CAACA,CAACA,CAACA;oBACtBA,KAAKA,iCAA0CA,EAAqBA,MAAMA,CAACA,2BAAgBA,CAACA,yBAAcA,CAACA,+CAA+CA,EAAEA,SAASA,CAACA,CAACA;oBACvKA,KAAKA,oDAA4DA,EAAGA,MAAMA,CAACA,GAAGA,CAACA;oBAC/EA,KAAKA,sCAA+CA,EAAgBA,MAAMA,CAACA,2BAAgBA,CAACA,yBAAcA,CAACA,yCAAyCA,EAAEA,SAASA,CAACA,CAACA;oBACjKA,KAAKA,wCAAiDA,EAAcA,MAAMA,CAACA,2BAAgBA,CAACA,yBAAcA,CAACA,+CAA+CA,EAAEA,SAASA,CAACA,CAACA;oBACvKA,KAAKA,qCAA8CA,EAAiBA,MAAMA,CAACA,2BAAgBA,CAACA,yBAAcA,CAACA,sBAAsBA,EAAEA,SAASA,CAACA,CAACA;oBAC9IA,KAAKA,+BAAwCA,EAAuBA,MAAMA,CAACA,2BAAgBA,CAACA,yBAAcA,CAACA,SAASA,EAAEA,SAASA,CAACA,CAACA;oBACjIA,KAAKA,wBAAiCA,EAA8BA,MAAMA,CAACA,2BAAgBA,CAACA,yBAAcA,CAACA,SAASA,EAAEA,SAASA,CAACA,CAACA;oBACjIA,KAAKA,gDAAwDA,EAAOA,MAAMA,CAACA,2BAAgBA,CAACA,yBAAcA,CAACA,UAAUA,EAAEA,SAASA,CAACA,CAACA;oBAClIA,KAAKA,oCAA6CA,EAAkBA,MAAMA,CAACA,2BAAgBA,CAACA,yBAAcA,CAACA,UAAUA,EAAEA,SAASA,CAACA,CAACA;oBAClIA,KAAKA,8BAAuCA,EAAwBA,MAAMA,CAACA,2BAAgBA,CAACA,yBAAcA,CAACA,mDAAmDA,EAAEA,SAASA,CAACA,CAACA;oBAC3KA,KAAKA,2CAAmDA,EAAYA,MAAMA,CAACA,2BAAgBA,CAACA,yBAAcA,CAACA,UAAUA,EAAEA,SAASA,CAACA,CAACA;oBAClIA,KAAKA,oCAA4CA,EAAmBA,MAAMA,CAACA,2BAAgBA,CAACA,yBAAcA,CAACA,SAASA,EAAEA,SAASA,CAACA,CAACA;oBACjIA,KAAKA,oDAA4DA,EAAGA,MAAMA,CAACA,2BAAgBA,CAACA,yBAAcA,CAACA,oBAAoBA,EAAEA,SAASA,CAACA,CAACA;oBAC5IA,KAAKA,iCAAyCA,EAAsBA,MAAMA,CAACA,2BAAgBA,CAACA,yBAAcA,CAACA,SAASA,EAAEA,SAASA,CAACA,CAACA;oBACjIA,KAAKA,kCAA0CA,EAAqBA,MAAMA,CAACA,2BAAgBA,CAACA,yBAAcA,CAACA,SAASA,EAAEA,SAASA,CAACA,CAACA;oBACjIA,KAAKA,+BAAuCA,EAAwBA,MAAMA,CAACA,2BAAgBA,CAACA,yBAAcA,CAACA,IAAIA,EAAEA,SAASA,CAACA,CAACA;oBAC5HA,KAAKA,yCAAiDA,EAAcA,MAAMA,CAACA,2BAAgBA,CAACA,yBAAcA,CAACA,cAAcA,EAAEA,SAASA,CAACA,CAACA;oBACtIA,KAAKA,wBAAgCA,EAA+BA,MAAMA,CAACA,2BAAgBA,CAACA,yBAAcA,CAACA,IAAIA,EAAEA,SAASA,CAACA,CAACA;oBAC5HA,KAAKA,qDAA6DA,EAAEA,MAAMA,CAACA,2BAAgBA,CAACA,yBAAcA,CAACA,UAAUA,EAAEA,SAASA,CAACA,CAACA;oBAClIA,SAAoEA,MAAMA,iBAAMA,CAACA,gBAAgBA,EAAEA,CAACA;gBACxGA,CAACA;YACLA,CAACA;YAED9R,MAAMA,CAACA,eAAeA,CAACA;QAC3BA,CAACA;QA2CDD,IAAWA,0BAoBVA;QApBDA,WAAWA,0BAA0BA;YACjCgS,+EAAUA;YAIVA,6HAAiCA;YACjCA,+HAAkCA;YAClCA,6HAAiCA;YACjCA,+IAA0CA;YAC1CA,+HAAkCA;YAClCA,2HAAgCA;YAChCA,+HAAkCA;YAClCA,mHAA4BA;YAC5BA,4HAAiCA;YAMjCA,wIAAuCA;QAC3CA,CAACA,EApBUhS,0BAA0BA,KAA1BA,0BAA0BA,QAoBpCA;QA+BDA,IAAKA,gBAyBJA;QAzBDA,WAAKA,gBAAgBA;YACjBiS,iGAAyBA;YACzBA,2GAA8BA;YAC9BA,+GAAgCA;YAChCA,yGAA6BA;YAC7BA,6FAAuBA;YACvBA,+EAAgBA;YAChBA,qFAAmBA;YACnBA,yFAAqBA;YACrBA,uGAA4BA;YAC5BA,2FAAsBA;YACtBA,sIAA2CA;YAC3CA,sGAA2BA;YAC3BA,8HAAuCA;YACvCA,oHAAkCA;YAClCA,sIAA2CA;YAC3CA,wIAA4CA;YAC5CA,gGAAwBA;YACxBA,kGAAyBA;YACzBA,4FAAsBA;YACtBA,gHAAgCA;YAChCA,8EAAeA;YAEfA,6DAAwBA,0CAAyBA,2BAAAA;YACjDA,4DAAuBA,gCAAeA,0BAAAA;QAC1CA,CAACA,EAzBIjS,gBAAgBA,KAAhBA,gBAAgBA,QAyBpBA;QAGDA,gBAAKA,CAACA,MAAMA,CAACA,gBAAgBA,CAACA,oBAAoBA,IAAIA,EAAEA,CAACA,CAACA;QAK1DA,IAAIA,eAAeA,GAAGA,qBAAqBA,EAAEA,CAACA;QAE9CA,SAAgBA,KAAKA,CAACA,QAAgBA,EAAEA,IAAiBA,EAAEA,eAAgCA,EAAEA,aAAsBA;YAC/GkS,MAAMA,CAACA,WAAWA,CAACA,kBAAOA,CAACA,kBAAkBA,CAACA,QAAQA,EAAEA,IAAIA,EAAEA,eAAeA,CAACA,EAAEA,aAAaA,CAACA,CAACA;QACnGA,CAACA;QAFelS,YAAKA,GAALA,KAEfA,CAAAA;QAEDA,SAAgBA,WAAWA,CAACA,MAAqBA,EAAEA,aAAsBA;YACrEmS,MAAMA,CAACA,eAAeA,CAACA,MAAMA,EAAEA,aAAaA,CAACA,CAACA;QAClDA,CAACA;QAFenS,kBAAWA,GAAXA,WAEfA,CAAAA;IACLA,CAACA,EA10JiB1uD,MAAMA,GAANA,iBAAMA,KAANA,iBAAMA,QA00JvBA;AAADA,CAACA,EA10JM,UAAU,KAAV,UAAU,QA00JhB;AE10JD,IAAO,UAAU,CAg4DhB;AAh4DD,WAAO,UAAU,EAAC,CAAC;IACJA,2BAAgBA,GAA+BA,UAASA,IAAYA,EAAEA,cAAsCA,EAAEA,cAA4BA;QACjJ,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;YAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QAAC,CAAC;QACjC,IAAI,CAAC,cAAc,GAAG,cAAc,EACpC,IAAI,CAAC,cAAc,GAAG,cAAc,EACpC,cAAc,CAAC,MAAM,GAAG,IAAI,EAC5B,cAAc,CAAC,MAAM,GAAG,IAAI,CAAC;IACjC,CAAC,CAACA;IACFA,2BAAgBA,CAACA,SAASA,CAACA,IAAIA,GAAGA,oBAAqBA,CAACA;IACxDA,2BAAgBA,CAACA,SAASA,CAACA,UAAUA,GAAGA,CAACA,CAACA;IAC1CA,2BAAgBA,CAACA,SAASA,CAACA,OAAOA,GAAGA,UAASA,KAAaA;QACvD,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;YACZ,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC;YACnC,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC;QACvC,CAAC;IACL,CAAC,CAAAA;IAEUA,8BAAmBA,GAAkCA,UAASA,IAAYA,EAAEA,IAAiBA,EAAEA,QAAsBA,EAAEA,KAAmBA;QACjJ,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;YAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QAAC,CAAC;QACjC,IAAI,CAAC,IAAI,GAAG,IAAI,EAChB,IAAI,CAAC,QAAQ,GAAG,QAAQ,EACxB,IAAI,CAAC,KAAK,GAAG,KAAK,EAClB,IAAI,CAAC,MAAM,GAAG,IAAI,EAClB,QAAQ,CAAC,MAAM,GAAG,IAAI,EACtB,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC;IACxB,CAAC,CAACA;IACFA,8BAAmBA,CAACA,SAASA,CAACA,IAAIA,GAAGA,uBAAwBA,CAACA;IAC9DA,8BAAmBA,CAACA,SAASA,CAACA,UAAUA,GAAGA,CAACA,CAACA;IAC7CA,8BAAmBA,CAACA,SAASA,CAACA,OAAOA,GAAGA,UAASA,KAAaA;QAC1D,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;YACZ,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;YACzB,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC;YAC7B,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;QAC9B,CAAC;IACL,CAAC,CAAAA;IAEUA,2BAAgBA,GAA+BA,UAASA,IAAYA,EAAEA,cAA4BA,EAAEA,WAAoDA,EAAEA,eAA6BA;QAC9L,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;YAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QAAC,CAAC;QACjC,IAAI,CAAC,cAAc,GAAG,cAAc,EACpC,IAAI,CAAC,WAAW,GAAG,WAAW,EAC9B,IAAI,CAAC,eAAe,GAAG,eAAe,EACtC,cAAc,CAAC,MAAM,GAAG,IAAI,EAC5B,WAAW,CAAC,MAAM,GAAG,IAAI,EACzB,eAAe,CAAC,MAAM,GAAG,IAAI,CAAC;IAClC,CAAC,CAACA;IACFA,2BAAgBA,CAACA,SAASA,CAACA,IAAIA,GAAGA,oBAAqBA,CAACA;IACxDA,2BAAgBA,CAACA,SAASA,CAACA,UAAUA,GAAGA,CAACA,CAACA;IAC1CA,2BAAgBA,CAACA,SAASA,CAACA,OAAOA,GAAGA,UAASA,KAAaA;QACvD,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;YACZ,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC;YACnC,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC;YAChC,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC;QACxC,CAAC;IACL,CAAC,CAAAA;IAEUA,6BAAkBA,GAAiCA,UAASA,IAAYA,EAAEA,iBAA0CA,EAAEA,aAAkCA,EAAEA,sBAAoCA,EAAEA,IAAiBA;QACxN,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;YAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QAAC,CAAC;QACjC,IAAI,CAAC,iBAAiB,GAAG,iBAAiB,EAC1C,IAAI,CAAC,aAAa,GAAG,aAAa,EAClC,IAAI,CAAC,sBAAsB,GAAG,sBAAsB,EACpD,IAAI,CAAC,IAAI,GAAG,IAAI,EAChB,iBAAiB,IAAI,CAAC,iBAAiB,CAAC,MAAM,GAAG,IAAI,CAAC,EACtD,aAAa,CAAC,MAAM,GAAG,IAAI,EAC3B,sBAAsB,CAAC,MAAM,GAAG,IAAI,EACpC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;IACvB,CAAC,CAACA;IACFA,6BAAkBA,CAACA,SAASA,CAACA,IAAIA,GAAGA,sBAAuBA,CAACA;IAC5DA,6BAAkBA,CAACA,SAASA,CAACA,UAAUA,GAAGA,CAACA,CAACA;IAC5CA,6BAAkBA,CAACA,SAASA,CAACA,OAAOA,GAAGA,UAASA,KAAaA;QACzD,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;YACZ,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC;YACtC,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC;YAClC,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,sBAAsB,CAAC;YAC3C,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;QAC7B,CAAC;IACL,CAAC,CAAAA;IAEUA,0BAAeA,GAA8BA,UAASA,IAAYA,EAAEA,IAAiBA,EAAEA,gBAA8BA,EAAEA,iBAA+BA;QAC7J,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;YAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QAAC,CAAC;QACjC,IAAI,CAAC,IAAI,GAAG,IAAI,EAChB,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,EACxC,IAAI,CAAC,iBAAiB,GAAG,iBAAiB,EAC1C,IAAI,CAAC,MAAM,GAAG,IAAI,EAClB,gBAAgB,CAAC,MAAM,GAAG,IAAI,EAC9B,iBAAiB,CAAC,MAAM,GAAG,IAAI,CAAC;IACpC,CAAC,CAACA;IACFA,0BAAeA,CAACA,SAASA,CAACA,IAAIA,GAAGA,mBAAoBA,CAACA;IACtDA,0BAAeA,CAACA,SAASA,CAACA,UAAUA,GAAGA,CAACA,CAACA;IACzCA,0BAAeA,CAACA,SAASA,CAACA,OAAOA,GAAGA,UAASA,KAAaA;QACtD,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;YACZ,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;YACzB,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC;YACrC,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC;QAC1C,CAAC;IACL,CAAC,CAAAA;IAEUA,gCAAqBA,GAAoCA,UAASA,IAAYA,EAAEA,UAAwBA,EAAEA,iBAA0CA,EAAEA,aAAkCA,EAAEA,sBAAoCA,EAAEA,IAAiBA;QACxP,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;YAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QAAC,CAAC;QACjC,IAAI,CAAC,UAAU,GAAG,UAAU,EAC5B,IAAI,CAAC,iBAAiB,GAAG,iBAAiB,EAC1C,IAAI,CAAC,aAAa,GAAG,aAAa,EAClC,IAAI,CAAC,sBAAsB,GAAG,sBAAsB,EACpD,IAAI,CAAC,IAAI,GAAG,IAAI,EAChB,UAAU,CAAC,MAAM,GAAG,IAAI,EACxB,iBAAiB,IAAI,CAAC,iBAAiB,CAAC,MAAM,GAAG,IAAI,CAAC,EACtD,aAAa,CAAC,MAAM,GAAG,IAAI,EAC3B,sBAAsB,CAAC,MAAM,GAAG,IAAI,EACpC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;IACvB,CAAC,CAACA;IACFA,gCAAqBA,CAACA,SAASA,CAACA,IAAIA,GAAGA,yBAA0BA,CAACA;IAClEA,gCAAqBA,CAACA,SAASA,CAACA,UAAUA,GAAGA,CAACA,CAACA;IAC/CA,gCAAqBA,CAACA,SAASA,CAACA,OAAOA,GAAGA,UAASA,KAAaA;QAC5D,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;YACZ,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC;YAC/B,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC;YACtC,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC;YAClC,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,sBAAsB,CAAC;YAC3C,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;QAC7B,CAAC;IACL,CAAC,CAAAA;IAEUA,4BAAiBA,GAAgCA,UAASA,IAAYA,EAAEA,IAAiBA,EAAEA,gBAAwCA;QAC1I,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;YAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QAAC,CAAC;QACjC,IAAI,CAAC,IAAI,GAAG,IAAI,EAChB,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,EACxC,IAAI,CAAC,MAAM,GAAG,IAAI,EAClB,gBAAgB,CAAC,MAAM,GAAG,IAAI,CAAC;IACnC,CAAC,CAACA;IACFA,4BAAiBA,CAACA,SAASA,CAACA,IAAIA,GAAGA,qBAAsBA,CAACA;IAC1DA,4BAAiBA,CAACA,SAASA,CAACA,UAAUA,GAAGA,CAACA,CAACA;IAC3CA,4BAAiBA,CAACA,SAASA,CAACA,OAAOA,GAAGA,UAASA,KAAaA;QACxD,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;YACZ,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;YACzB,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC;QACzC,CAAC;IACL,CAAC,CAAAA;IAEUA,0BAAeA,GAA8BA,UAASA,IAAYA,EAAEA,aAA2BA,EAAEA,IAAiBA;QACzH,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;YAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QAAC,CAAC;QACjC,IAAI,CAAC,aAAa,GAAG,aAAa,EAClC,IAAI,CAAC,IAAI,GAAG,IAAI,EAChB,aAAa,CAAC,MAAM,GAAG,IAAI,EAC3B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;IACvB,CAAC,CAACA;IACFA,0BAAeA,CAACA,SAASA,CAACA,IAAIA,GAAGA,mBAAoBA,CAACA;IACtDA,0BAAeA,CAACA,SAASA,CAACA,UAAUA,GAAGA,CAACA,CAACA;IACzCA,0BAAeA,CAACA,SAASA,CAACA,OAAOA,GAAGA,UAASA,KAAaA;QACtD,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;YACZ,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC;YAClC,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;QAC7B,CAAC;IACL,CAAC,CAAAA;IAEUA,0BAAeA,GAA8BA,UAASA,IAAYA,EAAEA,gBAA8BA,EAAEA,KAAwCA,EAAEA,iBAA+BA;QACpL,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;YAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QAAC,CAAC;QACjC,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,EACxC,IAAI,CAAC,KAAK,GAAG,KAAK,EAClB,IAAI,CAAC,iBAAiB,GAAG,iBAAiB,EAC1C,gBAAgB,CAAC,MAAM,GAAG,IAAI,EAC9B,KAAK,CAAC,MAAM,GAAG,IAAI,EACnB,iBAAiB,CAAC,MAAM,GAAG,IAAI,CAAC;IACpC,CAAC,CAACA;IACFA,0BAAeA,CAACA,SAASA,CAACA,IAAIA,GAAGA,mBAAoBA,CAACA;IACtDA,0BAAeA,CAACA,SAASA,CAACA,UAAUA,GAAGA,CAACA,CAACA;IACzCA,0BAAeA,CAACA,SAASA,CAACA,OAAOA,GAAGA,UAASA,KAAaA;QACtD,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;YACZ,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC;YACrC,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;YAC1B,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC;QAC1C,CAAC;IACL,CAAC,CAAAA;IAEUA,0BAAeA,GAA8BA,UAASA,IAAYA,EAAEA,IAAiBA,EAAEA,QAAsBA,EAAEA,KAAkBA;QACxI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;YAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QAAC,CAAC;QACjC,IAAI,CAAC,IAAI,GAAG,IAAI,EAChB,IAAI,CAAC,QAAQ,GAAG,QAAQ,EACxB,IAAI,CAAC,KAAK,GAAG,KAAK,EAClB,IAAI,CAAC,MAAM,GAAG,IAAI,EAClB,QAAQ,CAAC,MAAM,GAAG,IAAI,EACtB,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC;IACxB,CAAC,CAACA;IACFA,0BAAeA,CAACA,SAASA,CAACA,IAAIA,GAAGA,mBAAoBA,CAACA;IACtDA,0BAAeA,CAACA,SAASA,CAACA,UAAUA,GAAGA,CAACA,CAACA;IACzCA,0BAAeA,CAACA,SAASA,CAACA,OAAOA,GAAGA,UAASA,KAAaA;QACtD,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;YACZ,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;YACzB,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC;YAC7B,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;QAC9B,CAAC;IACL,CAAC,CAAAA;IAEUA,kCAAuBA,GAAsCA,UAASA,IAAYA,EAAEA,cAA4BA,EAAEA,IAAiBA,EAAEA,eAA6BA;QACzK,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;YAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QAAC,CAAC;QACjC,IAAI,CAAC,cAAc,GAAG,cAAc,EACpC,IAAI,CAAC,IAAI,GAAG,IAAI,EAChB,IAAI,CAAC,eAAe,GAAG,eAAe,EACtC,cAAc,CAAC,MAAM,GAAG,IAAI,EAC5B,IAAI,CAAC,MAAM,GAAG,IAAI,EAClB,eAAe,CAAC,MAAM,GAAG,IAAI,CAAC;IAClC,CAAC,CAACA;IACFA,kCAAuBA,CAACA,SAASA,CAACA,IAAIA,GAAGA,2BAA4BA,CAACA;IACtEA,kCAAuBA,CAACA,SAASA,CAACA,UAAUA,GAAGA,CAACA,CAACA;IACjDA,kCAAuBA,CAACA,SAASA,CAACA,OAAOA,GAAGA,UAASA,KAAaA;QAC9D,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;YACZ,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC;YACnC,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;YACzB,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC;QACxC,CAAC;IACL,CAAC,CAAAA;IAEUA,qCAA0BA,GAAyCA,UAASA,IAAYA,EAAEA,SAAyBA,EAAEA,gBAA8BA,EAAEA,UAAwBA,EAAEA,iBAA0CA,EAAEA,eAAuCA,EAAEA,IAAsBA;QACjS,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;YAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QAAC,CAAC;QACjC,IAAI,CAAC,SAAS,GAAG,SAAS,EAC1B,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,EACxC,IAAI,CAAC,UAAU,GAAG,UAAU,EAC5B,IAAI,CAAC,iBAAiB,GAAG,iBAAiB,EAC1C,IAAI,CAAC,eAAe,GAAG,eAAe,EACtC,IAAI,CAAC,IAAI,GAAG,IAAI,EAChB,SAAS,CAAC,MAAM,GAAG,IAAI,EACvB,gBAAgB,CAAC,MAAM,GAAG,IAAI,EAC9B,UAAU,CAAC,MAAM,GAAG,IAAI,EACxB,iBAAiB,IAAI,CAAC,iBAAiB,CAAC,MAAM,GAAG,IAAI,CAAC,EACtD,eAAe,CAAC,MAAM,GAAG,IAAI,EAC7B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;IACvB,CAAC,CAACA;IACFA,qCAA0BA,CAACA,SAASA,CAACA,IAAIA,GAAGA,8BAA+BA,CAACA;IAC5EA,qCAA0BA,CAACA,SAASA,CAACA,UAAUA,GAAGA,CAACA,CAACA;IACpDA,qCAA0BA,CAACA,SAASA,CAACA,OAAOA,GAAGA,UAASA,KAAaA;QACjE,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;YACZ,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC;YAC9B,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC;YACrC,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC;YAC/B,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC;YACtC,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC;YACpC,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;QAC7B,CAAC;IACL,CAAC,CAAAA;IAEUA,oCAAyBA,GAAwCA,UAASA,IAAYA,EAAEA,SAAyBA,EAAEA,eAA6BA,EAAEA,YAA0BA,EAAEA,UAAwBA,EAAEA,aAAkCA,EAAEA,IAAiDA;QACpS,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;YAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QAAC,CAAC;QACjC,IAAI,CAAC,SAAS,GAAG,SAAS,EAC1B,IAAI,CAAC,eAAe,GAAG,eAAe,EACtC,IAAI,CAAC,YAAY,GAAG,YAAY,EAChC,IAAI,CAAC,UAAU,GAAG,UAAU,EAC5B,IAAI,CAAC,aAAa,GAAG,aAAa,EAClC,IAAI,CAAC,IAAI,GAAG,IAAI,EAChB,SAAS,CAAC,MAAM,GAAG,IAAI,EACvB,eAAe,CAAC,MAAM,GAAG,IAAI,EAC7B,YAAY,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,IAAI,CAAC,EAC5C,UAAU,CAAC,MAAM,GAAG,IAAI,EACxB,aAAa,CAAC,MAAM,GAAG,IAAI,EAC3B,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACjC,CAAC,CAACA;IACFA,oCAAyBA,CAACA,SAASA,CAACA,IAAIA,GAAGA,6BAA8BA,CAACA;IAC1EA,oCAAyBA,CAACA,SAASA,CAACA,UAAUA,GAAGA,CAACA,CAACA;IACnDA,oCAAyBA,CAACA,SAASA,CAACA,OAAOA,GAAGA,UAASA,KAAaA;QAChE,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;YACZ,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC;YAC9B,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC;YACpC,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC;YACjC,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC;YAC/B,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC;YAClC,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;QAC7B,CAAC;IACL,CAAC,CAAAA;IAEUA,kCAAuBA,GAAsCA,UAASA,IAAYA,EAAEA,SAAyBA,EAAEA,aAA2BA,EAAEA,IAAiBA,EAAEA,cAA4BA,EAAEA,cAAsCA,EAAEA,eAA6BA;QACzQ,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;YAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QAAC,CAAC;QACjC,IAAI,CAAC,SAAS,GAAG,SAAS,EAC1B,IAAI,CAAC,aAAa,GAAG,aAAa,EAClC,IAAI,CAAC,IAAI,GAAG,IAAI,EAChB,IAAI,CAAC,cAAc,GAAG,cAAc,EACpC,IAAI,CAAC,cAAc,GAAG,cAAc,EACpC,IAAI,CAAC,eAAe,GAAG,eAAe,EACtC,SAAS,CAAC,MAAM,GAAG,IAAI,EACvB,aAAa,CAAC,MAAM,GAAG,IAAI,EAC3B,IAAI,CAAC,MAAM,GAAG,IAAI,EAClB,cAAc,CAAC,MAAM,GAAG,IAAI,EAC5B,cAAc,CAAC,MAAM,GAAG,IAAI,EAC5B,eAAe,CAAC,MAAM,GAAG,IAAI,CAAC;IAClC,CAAC,CAACA;IACFA,kCAAuBA,CAACA,SAASA,CAACA,IAAIA,GAAGA,2BAA4BA,CAACA;IACtEA,kCAAuBA,CAACA,SAASA,CAACA,UAAUA,GAAGA,CAACA,CAACA;IACjDA,kCAAuBA,CAACA,SAASA,CAACA,OAAOA,GAAGA,UAASA,KAAaA;QAC9D,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;YACZ,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC;YAC9B,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC;YAClC,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;YACzB,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC;YACnC,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC;YACnC,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC;QACxC,CAAC;IACL,CAAC,CAAAA;IAEUA,iCAAsBA,GAAqCA,UAASA,IAAYA,EAAEA,SAAyBA,EAAEA,YAA0BA,EAAEA,UAAwBA,EAAEA,iBAA0CA,EAAEA,eAAuCA,EAAEA,cAA4BA,EAAEA,aAAoCA,EAAEA,eAA6BA;QAChW,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;YAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QAAC,CAAC;QACjC,IAAI,CAAC,SAAS,GAAG,SAAS,EAC1B,IAAI,CAAC,YAAY,GAAG,YAAY,EAChC,IAAI,CAAC,UAAU,GAAG,UAAU,EAC5B,IAAI,CAAC,iBAAiB,GAAG,iBAAiB,EAC1C,IAAI,CAAC,eAAe,GAAG,eAAe,EACtC,IAAI,CAAC,cAAc,GAAG,cAAc,EACpC,IAAI,CAAC,aAAa,GAAG,aAAa,EAClC,IAAI,CAAC,eAAe,GAAG,eAAe,EACtC,SAAS,CAAC,MAAM,GAAG,IAAI,EACvB,YAAY,CAAC,MAAM,GAAG,IAAI,EAC1B,UAAU,CAAC,MAAM,GAAG,IAAI,EACxB,iBAAiB,IAAI,CAAC,iBAAiB,CAAC,MAAM,GAAG,IAAI,CAAC,EACtD,eAAe,CAAC,MAAM,GAAG,IAAI,EAC7B,cAAc,CAAC,MAAM,GAAG,IAAI,EAC5B,aAAa,CAAC,MAAM,GAAG,IAAI,EAC3B,eAAe,CAAC,MAAM,GAAG,IAAI,CAAC;IAClC,CAAC,CAACA;IACFA,iCAAsBA,CAACA,SAASA,CAACA,IAAIA,GAAGA,0BAA2BA,CAACA;IACpEA,iCAAsBA,CAACA,SAASA,CAACA,UAAUA,GAAGA,CAACA,CAACA;IAChDA,iCAAsBA,CAACA,SAASA,CAACA,OAAOA,GAAGA,UAASA,KAAaA;QAC7D,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;YACZ,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC;YAC9B,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC;YACjC,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC;YAC/B,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC;YACtC,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC;YACpC,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC;YACnC,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC;YAClC,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC;QACxC,CAAC;IACL,CAAC,CAAAA;IAEUA,gCAAqBA,GAAoCA,UAASA,IAAYA,EAAEA,SAAyBA,EAAEA,WAAyBA,EAAEA,UAAwBA,EAAEA,cAA4BA,EAAEA,YAAqDA,EAAEA,eAA6BA;QACzR,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;YAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QAAC,CAAC;QACjC,IAAI,CAAC,SAAS,GAAG,SAAS,EAC1B,IAAI,CAAC,WAAW,GAAG,WAAW,EAC9B,IAAI,CAAC,UAAU,GAAG,UAAU,EAC5B,IAAI,CAAC,cAAc,GAAG,cAAc,EACpC,IAAI,CAAC,YAAY,GAAG,YAAY,EAChC,IAAI,CAAC,eAAe,GAAG,eAAe,EACtC,SAAS,CAAC,MAAM,GAAG,IAAI,EACvB,WAAW,CAAC,MAAM,GAAG,IAAI,EACzB,UAAU,CAAC,MAAM,GAAG,IAAI,EACxB,cAAc,CAAC,MAAM,GAAG,IAAI,EAC5B,YAAY,CAAC,MAAM,GAAG,IAAI,EAC1B,eAAe,CAAC,MAAM,GAAG,IAAI,CAAC;IAClC,CAAC,CAACA;IACFA,gCAAqBA,CAACA,SAASA,CAACA,IAAIA,GAAGA,yBAA0BA,CAACA;IAClEA,gCAAqBA,CAACA,SAASA,CAACA,UAAUA,GAAGA,CAACA,CAACA;IAC/CA,gCAAqBA,CAACA,SAASA,CAACA,OAAOA,GAAGA,UAASA,KAAaA;QAC5D,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;YACZ,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC;YAC9B,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC;YAChC,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC;YAC/B,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC;YACnC,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC;YACjC,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC;QACxC,CAAC;IACL,CAAC,CAAAA;IAEUA,kCAAuBA,GAAsCA,UAASA,IAAYA,EAAEA,SAAyBA,EAAEA,aAA2BA,EAAEA,UAAwBA,EAAEA,WAAyBA,EAAEA,eAAuCA,EAAEA,cAA4BA;QAC7Q,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;YAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QAAC,CAAC;QACjC,IAAI,CAAC,SAAS,GAAG,SAAS,EAC1B,IAAI,CAAC,aAAa,GAAG,aAAa,EAClC,IAAI,CAAC,UAAU,GAAG,UAAU,EAC5B,IAAI,CAAC,WAAW,GAAG,WAAW,EAC9B,IAAI,CAAC,eAAe,GAAG,eAAe,EACtC,IAAI,CAAC,cAAc,GAAG,cAAc,EACpC,SAAS,CAAC,MAAM,GAAG,IAAI,EACvB,aAAa,CAAC,MAAM,GAAG,IAAI,EAC3B,UAAU,CAAC,MAAM,GAAG,IAAI,EACxB,WAAW,CAAC,MAAM,GAAG,IAAI,EACzB,eAAe,CAAC,MAAM,GAAG,IAAI,EAC7B,cAAc,IAAI,CAAC,cAAc,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACrD,CAAC,CAACA;IACFA,kCAAuBA,CAACA,SAASA,CAACA,IAAIA,GAAGA,2BAA4BA,CAACA;IACtEA,kCAAuBA,CAACA,SAASA,CAACA,UAAUA,GAAGA,CAACA,CAACA;IACjDA,kCAAuBA,CAACA,SAASA,CAACA,OAAOA,GAAGA,UAASA,KAAaA;QAC9D,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;YACZ,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC;YAC9B,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC;YAClC,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC;YAC/B,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC;YAChC,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC;YACpC,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC;QACvC,CAAC;IACL,CAAC,CAAAA;IAEUA,iCAAsBA,GAAqCA,UAASA,IAAYA,EAAEA,SAAyBA,EAAEA,aAA2BA,EAAEA,WAAyBA,EAAEA,UAAwBA,EAAEA,cAA4BA;QAClO,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;YAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QAAC,CAAC;QACjC,IAAI,CAAC,SAAS,GAAG,SAAS,EAC1B,IAAI,CAAC,aAAa,GAAG,aAAa,EAClC,IAAI,CAAC,WAAW,GAAG,WAAW,EAC9B,IAAI,CAAC,UAAU,GAAG,UAAU,EAC5B,IAAI,CAAC,cAAc,GAAG,cAAc,EACpC,SAAS,CAAC,MAAM,GAAG,IAAI,EACvB,aAAa,CAAC,MAAM,GAAG,IAAI,EAC3B,WAAW,CAAC,MAAM,GAAG,IAAI,EACzB,UAAU,CAAC,MAAM,GAAG,IAAI,EACxB,cAAc,IAAI,CAAC,cAAc,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACrD,CAAC,CAACA;IACFA,iCAAsBA,CAACA,SAASA,CAACA,IAAIA,GAAGA,0BAA2BA,CAACA;IACpEA,iCAAsBA,CAACA,SAASA,CAACA,UAAUA,GAAGA,CAACA,CAACA;IAChDA,iCAAsBA,CAACA,SAASA,CAACA,OAAOA,GAAGA,UAASA,KAAaA;QAC7D,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;YACZ,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC;YAC9B,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC;YAClC,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC;YAChC,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC;YAC/B,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC;QACvC,CAAC;IACL,CAAC,CAAAA;IAEUA,0CAA+BA,GAA8CA,UAASA,IAAYA,EAAEA,SAAyBA,EAAEA,YAA0BA,EAAEA,YAAiCA,EAAEA,aAAkCA,EAAEA,IAAiDA;QAC1R,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;YAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QAAC,CAAC;QACjC,IAAI,CAAC,SAAS,GAAG,SAAS,EAC1B,IAAI,CAAC,YAAY,GAAG,YAAY,EAChC,IAAI,CAAC,YAAY,GAAG,YAAY,EAChC,IAAI,CAAC,aAAa,GAAG,aAAa,EAClC,IAAI,CAAC,IAAI,GAAG,IAAI,EAChB,SAAS,CAAC,MAAM,GAAG,IAAI,EACvB,YAAY,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,IAAI,CAAC,EAC5C,YAAY,CAAC,MAAM,GAAG,IAAI,EAC1B,aAAa,CAAC,MAAM,GAAG,IAAI,EAC3B,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACjC,CAAC,CAACA;IACFA,0CAA+BA,CAACA,SAASA,CAACA,IAAIA,GAAGA,mCAAoCA,CAACA;IACtFA,0CAA+BA,CAACA,SAASA,CAACA,UAAUA,GAAGA,CAACA,CAACA;IACzDA,0CAA+BA,CAACA,SAASA,CAACA,OAAOA,GAAGA,UAASA,KAAaA;QACtE,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;YACZ,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC;YAC9B,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC;YACjC,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC;YACjC,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC;YAClC,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;QAC7B,CAAC;IACL,CAAC,CAAAA;IAEUA,0CAA+BA,GAA8CA,UAASA,IAAYA,EAAEA,SAAyBA,EAAEA,kBAA4CA,EAAEA,cAA4BA;QAChN,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;YAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QAAC,CAAC;QACjC,IAAI,CAAC,SAAS,GAAG,SAAS,EAC1B,IAAI,CAAC,kBAAkB,GAAG,kBAAkB,EAC5C,IAAI,CAAC,cAAc,GAAG,cAAc,EACpC,SAAS,CAAC,MAAM,GAAG,IAAI,EACvB,kBAAkB,CAAC,MAAM,GAAG,IAAI,EAChC,cAAc,IAAI,CAAC,cAAc,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACrD,CAAC,CAACA;IACFA,0CAA+BA,CAACA,SAASA,CAACA,IAAIA,GAAGA,mCAAoCA,CAACA;IACtFA,0CAA+BA,CAACA,SAASA,CAACA,UAAUA,GAAGA,CAACA,CAACA;IACzDA,0CAA+BA,CAACA,SAASA,CAACA,OAAOA,GAAGA,UAASA,KAAaA;QACtE,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;YACZ,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC;YAC9B,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC;YACvC,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC;QACvC,CAAC;IACL,CAAC,CAAAA;IAEUA,uCAA4BA,GAA2CA,UAASA,IAAYA,EAAEA,SAAyBA,EAAEA,kBAAgCA,EAAEA,aAAkCA,EAAEA,IAAiDA;QACvP,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;YAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QAAC,CAAC;QACjC,IAAI,CAAC,SAAS,GAAG,SAAS,EAC1B,IAAI,CAAC,kBAAkB,GAAG,kBAAkB,EAC5C,IAAI,CAAC,aAAa,GAAG,aAAa,EAClC,IAAI,CAAC,IAAI,GAAG,IAAI,EAChB,SAAS,CAAC,MAAM,GAAG,IAAI,EACvB,kBAAkB,CAAC,MAAM,GAAG,IAAI,EAChC,aAAa,CAAC,MAAM,GAAG,IAAI,EAC3B,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACjC,CAAC,CAACA;IACFA,uCAA4BA,CAACA,SAASA,CAACA,IAAIA,GAAGA,gCAAiCA,CAACA;IAChFA,uCAA4BA,CAACA,SAASA,CAACA,UAAUA,GAAGA,CAACA,CAACA;IACtDA,uCAA4BA,CAACA,SAASA,CAACA,OAAOA,GAAGA,UAASA,KAAaA;QACnE,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;YACZ,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC;YAC9B,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC;YACvC,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC;YAClC,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;QAC7B,CAAC;IACL,CAAC,CAAAA;IAEUA,uCAA4BA,GAA2CA,UAASA,IAAYA,EAAEA,SAAyBA,EAAEA,cAAoCA,EAAEA,cAA4BA;QAClM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;YAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QAAC,CAAC;QACjC,IAAI,CAAC,SAAS,GAAG,SAAS,EAC1B,IAAI,CAAC,cAAc,GAAG,cAAc,EACpC,IAAI,CAAC,cAAc,GAAG,cAAc,EACpC,SAAS,CAAC,MAAM,GAAG,IAAI,EACvB,cAAc,CAAC,MAAM,GAAG,IAAI,EAC5B,cAAc,IAAI,CAAC,cAAc,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACrD,CAAC,CAACA;IACFA,uCAA4BA,CAACA,SAASA,CAACA,IAAIA,GAAGA,gCAAiCA,CAACA;IAChFA,uCAA4BA,CAACA,SAASA,CAACA,UAAUA,GAAGA,CAACA,CAACA;IACtDA,uCAA4BA,CAACA,SAASA,CAACA,OAAOA,GAAGA,UAASA,KAAaA;QACnE,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;YACZ,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC;YAC9B,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC;YACnC,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC;QACvC,CAAC;IACL,CAAC,CAAAA;IAEUA,4BAAiBA,GAAgCA,UAASA,IAAYA,EAAEA,SAAyBA,EAAEA,UAAwBA,EAAEA,YAAiCA,EAAEA,aAAkCA,EAAEA,IAAiDA;QAC5P,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;YAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QAAC,CAAC;QACjC,IAAI,CAAC,SAAS,GAAG,SAAS,EAC1B,IAAI,CAAC,UAAU,GAAG,UAAU,EAC5B,IAAI,CAAC,YAAY,GAAG,YAAY,EAChC,IAAI,CAAC,aAAa,GAAG,aAAa,EAClC,IAAI,CAAC,IAAI,GAAG,IAAI,EAChB,SAAS,CAAC,MAAM,GAAG,IAAI,EACvB,UAAU,CAAC,MAAM,GAAG,IAAI,EACxB,YAAY,CAAC,MAAM,GAAG,IAAI,EAC1B,aAAa,CAAC,MAAM,GAAG,IAAI,EAC3B,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACjC,CAAC,CAACA;IACFA,4BAAiBA,CAACA,SAASA,CAACA,IAAIA,GAAGA,qBAAsBA,CAACA;IAC1DA,4BAAiBA,CAACA,SAASA,CAACA,UAAUA,GAAGA,CAACA,CAACA;IAC3CA,4BAAiBA,CAACA,SAASA,CAACA,OAAOA,GAAGA,UAASA,KAAaA;QACxD,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;YACZ,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC;YAC9B,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC;YAC/B,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC;YACjC,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC;YAClC,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;QAC7B,CAAC;IACL,CAAC,CAAAA;IAEUA,4BAAiBA,GAAgCA,UAASA,IAAYA,EAAEA,SAAyBA,EAAEA,UAAwBA,EAAEA,YAAiCA,EAAEA,aAAkCA,EAAEA,IAAiDA;QAC5P,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;YAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QAAC,CAAC;QACjC,IAAI,CAAC,SAAS,GAAG,SAAS,EAC1B,IAAI,CAAC,UAAU,GAAG,UAAU,EAC5B,IAAI,CAAC,YAAY,GAAG,YAAY,EAChC,IAAI,CAAC,aAAa,GAAG,aAAa,EAClC,IAAI,CAAC,IAAI,GAAG,IAAI,EAChB,SAAS,CAAC,MAAM,GAAG,IAAI,EACvB,UAAU,CAAC,MAAM,GAAG,IAAI,EACxB,YAAY,CAAC,MAAM,GAAG,IAAI,EAC1B,aAAa,CAAC,MAAM,GAAG,IAAI,EAC3B,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACjC,CAAC,CAACA;IACFA,4BAAiBA,CAACA,SAASA,CAACA,IAAIA,GAAGA,qBAAsBA,CAACA;IAC1DA,4BAAiBA,CAACA,SAASA,CAACA,UAAUA,GAAGA,CAACA,CAACA;IAC3CA,4BAAiBA,CAACA,SAASA,CAACA,OAAOA,GAAGA,UAASA,KAAaA;QACxD,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;YACZ,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC;YAC9B,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC;YAC/B,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC;YACjC,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC;YAClC,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;QAC7B,CAAC;IACL,CAAC,CAAAA;IAEUA,kCAAuBA,GAAsCA,UAASA,IAAYA,EAAEA,YAAiCA,EAAEA,aAA2BA,EAAEA,cAAoCA;QAC/L,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;YAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QAAC,CAAC;QACjC,IAAI,CAAC,YAAY,GAAG,YAAY,EAChC,IAAI,CAAC,aAAa,GAAG,aAAa,EAClC,IAAI,CAAC,cAAc,GAAG,cAAc,EACpC,YAAY,CAAC,MAAM,GAAG,IAAI,EAC1B,aAAa,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,IAAI,CAAC,EAC9C,cAAc,IAAI,CAAC,cAAc,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACrD,CAAC,CAACA;IACFA,kCAAuBA,CAACA,SAASA,CAACA,IAAIA,GAAGA,2BAA4BA,CAACA;IACtEA,kCAAuBA,CAACA,SAASA,CAACA,UAAUA,GAAGA,CAACA,CAACA;IACjDA,kCAAuBA,CAACA,SAASA,CAACA,OAAOA,GAAGA,UAASA,KAAaA;QAC9D,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;YACZ,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC;YACjC,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC;YAClC,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC;QACvC,CAAC;IACL,CAAC,CAAAA;IAEUA,8BAAmBA,GAAkCA,UAASA,IAAYA,EAAEA,iBAA0CA,EAAEA,aAAkCA,EAAEA,cAAoCA;QACvM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;YAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QAAC,CAAC;QACjC,IAAI,CAAC,iBAAiB,GAAG,iBAAiB,EAC1C,IAAI,CAAC,aAAa,GAAG,aAAa,EAClC,IAAI,CAAC,cAAc,GAAG,cAAc,EACpC,iBAAiB,IAAI,CAAC,iBAAiB,CAAC,MAAM,GAAG,IAAI,CAAC,EACtD,aAAa,CAAC,MAAM,GAAG,IAAI,EAC3B,cAAc,IAAI,CAAC,cAAc,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACrD,CAAC,CAACA;IACFA,8BAAmBA,CAACA,SAASA,CAACA,IAAIA,GAAGA,uBAAwBA,CAACA;IAC9DA,8BAAmBA,CAACA,SAASA,CAACA,UAAUA,GAAGA,CAACA,CAACA;IAC7CA,8BAAmBA,CAACA,SAASA,CAACA,OAAOA,GAAGA,UAASA,KAAaA;QAC1D,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;YACZ,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC;YACtC,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC;YAClC,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC;QACvC,CAAC;IACL,CAAC,CAAAA;IAEUA,mCAAwBA,GAAuCA,UAASA,IAAYA,EAAEA,UAAwBA,EAAEA,aAAkCA;QACzJ,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;YAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QAAC,CAAC;QACjC,IAAI,CAAC,UAAU,GAAG,UAAU,EAC5B,IAAI,CAAC,aAAa,GAAG,aAAa,EAClC,UAAU,CAAC,MAAM,GAAG,IAAI,EACxB,aAAa,CAAC,MAAM,GAAG,IAAI,CAAC;IAChC,CAAC,CAACA;IACFA,mCAAwBA,CAACA,SAASA,CAACA,IAAIA,GAAGA,4BAA6BA,CAACA;IACxEA,mCAAwBA,CAACA,SAASA,CAACA,UAAUA,GAAGA,CAACA,CAACA;IAClDA,mCAAwBA,CAACA,SAASA,CAACA,OAAOA,GAAGA,UAASA,KAAaA;QAC/D,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;YACZ,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC;YAC/B,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC;QACtC,CAAC;IACL,CAAC,CAAAA;IAEUA,+BAAoBA,GAAmCA,UAASA,IAAYA,EAAEA,gBAA8BA,EAAEA,UAAiDA,EAAEA,iBAA+BA,EAAEA,cAAoCA;QAC7O,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;YAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QAAC,CAAC;QACjC,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,EACxC,IAAI,CAAC,UAAU,GAAG,UAAU,EAC5B,IAAI,CAAC,iBAAiB,GAAG,iBAAiB,EAC1C,IAAI,CAAC,cAAc,GAAG,cAAc,EACpC,gBAAgB,CAAC,MAAM,GAAG,IAAI,EAC9B,UAAU,CAAC,MAAM,GAAG,IAAI,EACxB,iBAAiB,CAAC,MAAM,GAAG,IAAI,EAC/B,cAAc,IAAI,CAAC,cAAc,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACrD,CAAC,CAACA;IACFA,+BAAoBA,CAACA,SAASA,CAACA,IAAIA,GAAGA,wBAAyBA,CAACA;IAChEA,+BAAoBA,CAACA,SAASA,CAACA,UAAUA,GAAGA,CAACA,CAACA;IAC9CA,+BAAoBA,CAACA,SAASA,CAACA,OAAOA,GAAGA,UAASA,KAAaA;QAC3D,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;YACZ,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC;YACrC,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC;YAC/B,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC;YACtC,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC;QACvC,CAAC;IACL,CAAC,CAAAA;IAEUA,gCAAqBA,GAAoCA,UAASA,IAAYA,EAAEA,YAAiCA,EAAEA,aAA2BA,EAAEA,aAAkCA;QACzL,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;YAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QAAC,CAAC;QACjC,IAAI,CAAC,YAAY,GAAG,YAAY,EAChC,IAAI,CAAC,aAAa,GAAG,aAAa,EAClC,IAAI,CAAC,aAAa,GAAG,aAAa,EAClC,YAAY,CAAC,MAAM,GAAG,IAAI,EAC1B,aAAa,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,IAAI,CAAC,EAC9C,aAAa,CAAC,MAAM,GAAG,IAAI,CAAC;IAChC,CAAC,CAACA;IACFA,gCAAqBA,CAACA,SAASA,CAACA,IAAIA,GAAGA,yBAA0BA,CAACA;IAClEA,gCAAqBA,CAACA,SAASA,CAACA,UAAUA,GAAGA,CAACA,CAACA;IAC/CA,gCAAqBA,CAACA,SAASA,CAACA,OAAOA,GAAGA,UAASA,KAAaA;QAC5D,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;YACZ,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC;YACjC,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC;YAClC,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC;QACtC,CAAC;IACL,CAAC,CAAAA;IAEUA,sBAAWA,GAA0BA,UAASA,IAAYA,EAAEA,sBAAoCA,EAAEA,cAA4BA,EAAEA,UAA8BA,EAAEA,eAA6BA;QACpM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;YAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QAAC,CAAC;QACjC,IAAI,CAAC,sBAAsB,GAAG,sBAAsB,EACpD,IAAI,CAAC,cAAc,GAAG,cAAc,EACpC,IAAI,CAAC,UAAU,GAAG,UAAU,EAC5B,IAAI,CAAC,eAAe,GAAG,eAAe,EACtC,sBAAsB,IAAI,CAAC,sBAAsB,CAAC,MAAM,GAAG,IAAI,CAAC,EAChE,cAAc,CAAC,MAAM,GAAG,IAAI,EAC5B,UAAU,CAAC,MAAM,GAAG,IAAI,EACxB,eAAe,CAAC,MAAM,GAAG,IAAI,CAAC;IAClC,CAAC,CAACA;IACFA,sBAAWA,CAACA,SAASA,CAACA,IAAIA,GAAGA,eAAgBA,CAACA;IAC9CA,sBAAWA,CAACA,SAASA,CAACA,UAAUA,GAAGA,CAACA,CAACA;IACrCA,sBAAWA,CAACA,SAASA,CAACA,OAAOA,GAAGA,UAASA,KAAaA;QAClD,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;YACZ,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,sBAAsB,CAAC;YAC3C,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC;YACnC,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC;YAC/B,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC;QACxC,CAAC;IACL,CAAC,CAAAA;IAEUA,4BAAiBA,GAAgCA,UAASA,IAAYA,EAAEA,SAAuBA,EAAEA,cAA4BA,EAAEA,SAA4BA,EAAEA,eAA6BA,EAAEA,SAA2BA,EAAEA,UAA4BA;QAC5P,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;YAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QAAC,CAAC;QACjC,IAAI,CAAC,SAAS,GAAG,SAAS,EAC1B,IAAI,CAAC,cAAc,GAAG,cAAc,EACpC,IAAI,CAAC,SAAS,GAAG,SAAS,EAC1B,IAAI,CAAC,eAAe,GAAG,eAAe,EACtC,IAAI,CAAC,SAAS,GAAG,SAAS,EAC1B,IAAI,CAAC,UAAU,GAAG,UAAU,EAC5B,SAAS,CAAC,MAAM,GAAG,IAAI,EACvB,cAAc,CAAC,MAAM,GAAG,IAAI,EAC5B,SAAS,CAAC,MAAM,GAAG,IAAI,EACvB,eAAe,CAAC,MAAM,GAAG,IAAI,EAC7B,SAAS,CAAC,MAAM,GAAG,IAAI,EACvB,UAAU,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAC7C,CAAC,CAACA;IACFA,4BAAiBA,CAACA,SAASA,CAACA,IAAIA,GAAGA,qBAAsBA,CAACA;IAC1DA,4BAAiBA,CAACA,SAASA,CAACA,UAAUA,GAAGA,CAACA,CAACA;IAC3CA,4BAAiBA,CAACA,SAASA,CAACA,OAAOA,GAAGA,UAASA,KAAaA;QACxD,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;YACZ,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC;YAC9B,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC;YACnC,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC;YAC9B,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC;YACpC,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC;YAC9B,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC;QACnC,CAAC;IACL,CAAC,CAAAA;IAEUA,kCAAuBA,GAAsCA,UAASA,IAAYA,EAAEA,SAAyBA,EAAEA,mBAA8CA,EAAEA,cAA4BA;QAClM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;YAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QAAC,CAAC;QACjC,IAAI,CAAC,SAAS,GAAG,SAAS,EAC1B,IAAI,CAAC,mBAAmB,GAAG,mBAAmB,EAC9C,IAAI,CAAC,cAAc,GAAG,cAAc,EACpC,SAAS,CAAC,MAAM,GAAG,IAAI,EACvB,mBAAmB,CAAC,MAAM,GAAG,IAAI,EACjC,cAAc,IAAI,CAAC,cAAc,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACrD,CAAC,CAACA;IACFA,kCAAuBA,CAACA,SAASA,CAACA,IAAIA,GAAGA,2BAA4BA,CAACA;IACtEA,kCAAuBA,CAACA,SAASA,CAACA,UAAUA,GAAGA,CAACA,CAACA;IACjDA,kCAAuBA,CAACA,SAASA,CAACA,OAAOA,GAAGA,UAASA,KAAaA;QAC9D,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;YACZ,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC;YAC9B,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC;YACxC,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC;QACvC,CAAC;IACL,CAAC,CAAAA;IAEUA,oCAAyBA,GAAwCA,UAASA,IAAYA,EAAEA,UAA6BA,EAAEA,cAA4BA;QAC1J,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;YAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QAAC,CAAC;QACjC,IAAI,CAAC,UAAU,GAAG,UAAU,EAC5B,IAAI,CAAC,cAAc,GAAG,cAAc,EACpC,UAAU,CAAC,MAAM,GAAG,IAAI,EACxB,cAAc,IAAI,CAAC,cAAc,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACrD,CAAC,CAACA;IACFA,oCAAyBA,CAACA,SAASA,CAACA,IAAIA,GAAGA,6BAA8BA,CAACA;IAC1EA,oCAAyBA,CAACA,SAASA,CAACA,UAAUA,GAAGA,CAACA,CAACA;IACnDA,oCAAyBA,CAACA,SAASA,CAACA,OAAOA,GAAGA,UAASA,KAAaA;QAChE,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;YACZ,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC;YAC/B,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC;QACvC,CAAC;IACL,CAAC,CAAAA;IAEUA,gCAAqBA,GAAoCA,UAASA,IAAYA,EAAEA,aAA2BA,EAAEA,UAA6BA,EAAEA,cAA4BA;QAC/K,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;YAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QAAC,CAAC;QACjC,IAAI,CAAC,aAAa,GAAG,aAAa,EAClC,IAAI,CAAC,UAAU,GAAG,UAAU,EAC5B,IAAI,CAAC,cAAc,GAAG,cAAc,EACpC,aAAa,CAAC,MAAM,GAAG,IAAI,EAC3B,UAAU,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,IAAI,CAAC,EACxC,cAAc,IAAI,CAAC,cAAc,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACrD,CAAC,CAACA;IACFA,gCAAqBA,CAACA,SAASA,CAACA,IAAIA,GAAGA,yBAA0BA,CAACA;IAClEA,gCAAqBA,CAACA,SAASA,CAACA,UAAUA,GAAGA,CAACA,CAACA;IAC/CA,gCAAqBA,CAACA,SAASA,CAACA,OAAOA,GAAGA,UAASA,KAAaA;QAC5D,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;YACZ,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC;YAClC,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC;YAC/B,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC;QACvC,CAAC;IACL,CAAC,CAAAA;IAEUA,gCAAqBA,GAAoCA,UAASA,IAAYA,EAAEA,aAA2BA,EAAEA,cAA4BA,EAAEA,UAA6BA,EAAEA,eAA6BA,EAAEA,cAA4BA,EAAEA,aAAoCA,EAAEA,eAA6BA;QACjT,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;YAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QAAC,CAAC;QACjC,IAAI,CAAC,aAAa,GAAG,aAAa,EAClC,IAAI,CAAC,cAAc,GAAG,cAAc,EACpC,IAAI,CAAC,UAAU,GAAG,UAAU,EAC5B,IAAI,CAAC,eAAe,GAAG,eAAe,EACtC,IAAI,CAAC,cAAc,GAAG,cAAc,EACpC,IAAI,CAAC,aAAa,GAAG,aAAa,EAClC,IAAI,CAAC,eAAe,GAAG,eAAe,EACtC,aAAa,CAAC,MAAM,GAAG,IAAI,EAC3B,cAAc,CAAC,MAAM,GAAG,IAAI,EAC5B,UAAU,CAAC,MAAM,GAAG,IAAI,EACxB,eAAe,CAAC,MAAM,GAAG,IAAI,EAC7B,cAAc,CAAC,MAAM,GAAG,IAAI,EAC5B,aAAa,CAAC,MAAM,GAAG,IAAI,EAC3B,eAAe,CAAC,MAAM,GAAG,IAAI,CAAC;IAClC,CAAC,CAACA;IACFA,gCAAqBA,CAACA,SAASA,CAACA,IAAIA,GAAGA,yBAA0BA,CAACA;IAClEA,gCAAqBA,CAACA,SAASA,CAACA,UAAUA,GAAGA,CAACA,CAACA;IAC/CA,gCAAqBA,CAACA,SAASA,CAACA,OAAOA,GAAGA,UAASA,KAAaA;QAC5D,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;YACZ,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC;YAClC,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC;YACnC,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC;YAC/B,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC;YACpC,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC;YACnC,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC;YAClC,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC;QACxC,CAAC;IACL,CAAC,CAAAA;IAEUA,+BAAoBA,GAAmCA,UAASA,IAAYA,EAAEA,YAA0BA,EAAEA,UAAwBA,EAAEA,cAA4BA;QACvK,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;YAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QAAC,CAAC;QACjC,IAAI,CAAC,YAAY,GAAG,YAAY,EAChC,IAAI,CAAC,UAAU,GAAG,UAAU,EAC5B,IAAI,CAAC,cAAc,GAAG,cAAc,EACpC,YAAY,CAAC,MAAM,GAAG,IAAI,EAC1B,UAAU,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,IAAI,CAAC,EACxC,cAAc,IAAI,CAAC,cAAc,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACrD,CAAC,CAACA;IACFA,+BAAoBA,CAACA,SAASA,CAACA,IAAIA,GAAGA,wBAAyBA,CAACA;IAChEA,+BAAoBA,CAACA,SAASA,CAACA,UAAUA,GAAGA,CAACA,CAACA;IAC9CA,+BAAoBA,CAACA,SAASA,CAACA,OAAOA,GAAGA,UAASA,KAAaA;QAC3D,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;YACZ,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC;YACjC,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC;YAC/B,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC;QACvC,CAAC;IACL,CAAC,CAAAA;IAEUA,kCAAuBA,GAAsCA,UAASA,IAAYA,EAAEA,eAA6BA,EAAEA,UAAwBA,EAAEA,cAA4BA;QAChL,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;YAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QAAC,CAAC;QACjC,IAAI,CAAC,eAAe,GAAG,eAAe,EACtC,IAAI,CAAC,UAAU,GAAG,UAAU,EAC5B,IAAI,CAAC,cAAc,GAAG,cAAc,EACpC,eAAe,CAAC,MAAM,GAAG,IAAI,EAC7B,UAAU,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,IAAI,CAAC,EACxC,cAAc,IAAI,CAAC,cAAc,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACrD,CAAC,CAACA;IACFA,kCAAuBA,CAACA,SAASA,CAACA,IAAIA,GAAGA,2BAA4BA,CAACA;IACtEA,kCAAuBA,CAACA,SAASA,CAACA,UAAUA,GAAGA,CAACA,CAACA;IACjDA,kCAAuBA,CAACA,SAASA,CAACA,OAAOA,GAAGA,UAASA,KAAaA;QAC9D,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;YACZ,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC;YACpC,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC;YAC/B,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC;QACvC,CAAC;IACL,CAAC,CAAAA;IAEUA,6BAAkBA,GAAiCA,UAASA,IAAYA,EAAEA,UAAwBA,EAAEA,cAA4BA,EAAEA,WAA0DA,EAAEA,mBAAiCA,EAAEA,SAA4BA,EAAEA,oBAAkCA,EAAEA,WAA8BA,EAAEA,eAA6BA,EAAEA,SAA2BA;QACpY,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;YAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QAAC,CAAC;QACjC,IAAI,CAAC,UAAU,GAAG,UAAU,EAC5B,IAAI,CAAC,cAAc,GAAG,cAAc,EACpC,IAAI,CAAC,WAAW,GAAG,WAAW,EAC9B,IAAI,CAAC,mBAAmB,GAAG,mBAAmB,EAC9C,IAAI,CAAC,SAAS,GAAG,SAAS,EAC1B,IAAI,CAAC,oBAAoB,GAAG,oBAAoB,EAChD,IAAI,CAAC,WAAW,GAAG,WAAW,EAC9B,IAAI,CAAC,eAAe,GAAG,eAAe,EACtC,IAAI,CAAC,SAAS,GAAG,SAAS,EAC1B,UAAU,CAAC,MAAM,GAAG,IAAI,EACxB,cAAc,CAAC,MAAM,GAAG,IAAI,EAC5B,WAAW,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,IAAI,CAAC,EAC1C,mBAAmB,CAAC,MAAM,GAAG,IAAI,EACjC,SAAS,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,IAAI,CAAC,EACtC,oBAAoB,CAAC,MAAM,GAAG,IAAI,EAClC,WAAW,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,IAAI,CAAC,EAC1C,eAAe,CAAC,MAAM,GAAG,IAAI,EAC7B,SAAS,CAAC,MAAM,GAAG,IAAI,CAAC;IAC5B,CAAC,CAACA;IACFA,6BAAkBA,CAACA,SAASA,CAACA,IAAIA,GAAGA,sBAAuBA,CAACA;IAC5DA,6BAAkBA,CAACA,SAASA,CAACA,UAAUA,GAAGA,CAACA,CAACA;IAC5CA,6BAAkBA,CAACA,SAASA,CAACA,OAAOA,GAAGA,UAASA,KAAaA;QACzD,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;YACZ,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC;YAC/B,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC;YACnC,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC;YAChC,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC;YACxC,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC;YAC9B,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,oBAAoB,CAAC;YACzC,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC;YAChC,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC;YACpC,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC;QAClC,CAAC;IACL,CAAC,CAAAA;IAEUA,+BAAoBA,GAAmCA,UAASA,IAAYA,EAAEA,UAAwBA,EAAEA,cAA4BA,EAAEA,IAAmDA,EAAEA,SAAuBA,EAAEA,KAAwBA,EAAEA,eAA6BA,EAAEA,SAA2BA;QAC/S,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;YAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QAAC,CAAC;QACjC,IAAI,CAAC,UAAU,GAAG,UAAU,EAC5B,IAAI,CAAC,cAAc,GAAG,cAAc,EACpC,IAAI,CAAC,IAAI,GAAG,IAAI,EAChB,IAAI,CAAC,SAAS,GAAG,SAAS,EAC1B,IAAI,CAAC,KAAK,GAAG,KAAK,EAClB,IAAI,CAAC,eAAe,GAAG,eAAe,EACtC,IAAI,CAAC,SAAS,GAAG,SAAS,EAC1B,UAAU,CAAC,MAAM,GAAG,IAAI,EACxB,cAAc,CAAC,MAAM,GAAG,IAAI,EAC5B,IAAI,CAAC,MAAM,GAAG,IAAI,EAClB,SAAS,CAAC,MAAM,GAAG,IAAI,EACvB,KAAK,CAAC,MAAM,GAAG,IAAI,EACnB,eAAe,CAAC,MAAM,GAAG,IAAI,EAC7B,SAAS,CAAC,MAAM,GAAG,IAAI,CAAC;IAC5B,CAAC,CAACA;IACFA,+BAAoBA,CAACA,SAASA,CAACA,IAAIA,GAAGA,wBAAyBA,CAACA;IAChEA,+BAAoBA,CAACA,SAASA,CAACA,UAAUA,GAAGA,CAACA,CAACA;IAC9CA,+BAAoBA,CAACA,SAASA,CAACA,OAAOA,GAAGA,UAASA,KAAaA;QAC3D,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;YACZ,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC;YAC/B,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC;YACnC,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;YACzB,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC;YAC9B,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;YAC1B,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC;YACpC,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC;QAClC,CAAC;IACL,CAAC,CAAAA;IAEUA,+BAAoBA,GAAmCA,UAASA,IAAYA,EAAEA,cAA4BA;QACjH,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;YAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QAAC,CAAC;QACjC,IAAI,CAAC,cAAc,GAAG,cAAc,EACpC,cAAc,CAAC,MAAM,GAAG,IAAI,CAAC;IACjC,CAAC,CAACA;IACFA,+BAAoBA,CAACA,SAASA,CAACA,IAAIA,GAAGA,wBAAyBA,CAACA;IAChEA,+BAAoBA,CAACA,SAASA,CAACA,UAAUA,GAAGA,CAACA,CAACA;IAC9CA,+BAAoBA,CAACA,SAASA,CAACA,OAAOA,GAAGA,UAASA,KAAaA;QAC3D,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;YACZ,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC;QACvC,CAAC;IACL,CAAC,CAAAA;IAEUA,+BAAoBA,GAAmCA,UAASA,IAAYA,EAAEA,YAA0BA,EAAEA,UAA6BA,EAAEA,cAA4BA;QAC5K,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;YAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QAAC,CAAC;QACjC,IAAI,CAAC,YAAY,GAAG,YAAY,EAChC,IAAI,CAAC,UAAU,GAAG,UAAU,EAC5B,IAAI,CAAC,cAAc,GAAG,cAAc,EACpC,YAAY,CAAC,MAAM,GAAG,IAAI,EAC1B,UAAU,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,IAAI,CAAC,EACxC,cAAc,IAAI,CAAC,cAAc,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACrD,CAAC,CAACA;IACFA,+BAAoBA,CAACA,SAASA,CAACA,IAAIA,GAAGA,wBAAyBA,CAACA;IAChEA,+BAAoBA,CAACA,SAASA,CAACA,UAAUA,GAAGA,CAACA,CAACA;IAC9CA,+BAAoBA,CAACA,SAASA,CAACA,OAAOA,GAAGA,UAASA,KAAaA;QAC3D,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;YACZ,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC;YACjC,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC;YAC/B,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC;QACvC,CAAC;IACL,CAAC,CAAAA;IAEUA,+BAAoBA,GAAmCA,UAASA,IAAYA,EAAEA,YAA0BA,EAAEA,cAA4BA,EAAEA,SAA4BA,EAAEA,eAA6BA,EAAEA,SAA2BA;QACvO,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;YAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QAAC,CAAC;QACjC,IAAI,CAAC,YAAY,GAAG,YAAY,EAChC,IAAI,CAAC,cAAc,GAAG,cAAc,EACpC,IAAI,CAAC,SAAS,GAAG,SAAS,EAC1B,IAAI,CAAC,eAAe,GAAG,eAAe,EACtC,IAAI,CAAC,SAAS,GAAG,SAAS,EAC1B,YAAY,CAAC,MAAM,GAAG,IAAI,EAC1B,cAAc,CAAC,MAAM,GAAG,IAAI,EAC5B,SAAS,CAAC,MAAM,GAAG,IAAI,EACvB,eAAe,CAAC,MAAM,GAAG,IAAI,EAC7B,SAAS,CAAC,MAAM,GAAG,IAAI,CAAC;IAC5B,CAAC,CAACA;IACFA,+BAAoBA,CAACA,SAASA,CAACA,IAAIA,GAAGA,wBAAyBA,CAACA;IAChEA,+BAAoBA,CAACA,SAASA,CAACA,UAAUA,GAAGA,CAACA,CAACA;IAC9CA,+BAAoBA,CAACA,SAASA,CAACA,OAAOA,GAAGA,UAASA,KAAaA;QAC3D,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;YACZ,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC;YACjC,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC;YACnC,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC;YAC9B,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC;YACpC,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC;QAClC,CAAC;IACL,CAAC,CAAAA;IAEUA,6BAAkBA,GAAiCA,UAASA,IAAYA,EAAEA,UAAwBA,EAAEA,KAAkBA,EAAEA,WAA8BA,EAAEA,aAAkCA;QACjM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;YAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QAAC,CAAC;QACjC,IAAI,CAAC,UAAU,GAAG,UAAU,EAC5B,IAAI,CAAC,KAAK,GAAG,KAAK,EAClB,IAAI,CAAC,WAAW,GAAG,WAAW,EAC9B,IAAI,CAAC,aAAa,GAAG,aAAa,EAClC,UAAU,CAAC,MAAM,GAAG,IAAI,EACxB,KAAK,CAAC,MAAM,GAAG,IAAI,EACnB,WAAW,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,IAAI,CAAC,EAC1C,aAAa,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACnD,CAAC,CAACA;IACFA,6BAAkBA,CAACA,SAASA,CAACA,IAAIA,GAAGA,sBAAuBA,CAACA;IAC5DA,6BAAkBA,CAACA,SAASA,CAACA,UAAUA,GAAGA,CAACA,CAACA;IAC5CA,6BAAkBA,CAACA,SAASA,CAACA,OAAOA,GAAGA,UAASA,KAAaA;QACzD,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;YACZ,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC;YAC/B,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;YAC1B,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC;YAChC,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC;QACtC,CAAC;IACL,CAAC,CAAAA;IAEUA,iCAAsBA,GAAqCA,UAASA,IAAYA,EAAEA,UAAwBA,EAAEA,UAAwBA,EAAEA,SAA2BA;QACxK,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;YAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QAAC,CAAC;QACjC,IAAI,CAAC,UAAU,GAAG,UAAU,EAC5B,IAAI,CAAC,UAAU,GAAG,UAAU,EAC5B,IAAI,CAAC,SAAS,GAAG,SAAS,EAC1B,UAAU,CAAC,MAAM,GAAG,IAAI,EACxB,UAAU,CAAC,MAAM,GAAG,IAAI,EACxB,SAAS,CAAC,MAAM,GAAG,IAAI,CAAC;IAC5B,CAAC,CAACA;IACFA,iCAAsBA,CAACA,SAASA,CAACA,IAAIA,GAAGA,0BAA2BA,CAACA;IACpEA,iCAAsBA,CAACA,SAASA,CAACA,UAAUA,GAAGA,CAACA,CAACA;IAChDA,iCAAsBA,CAACA,SAASA,CAACA,OAAOA,GAAGA,UAASA,KAAaA;QAC7D,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;YACZ,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC;YAC/B,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC;YAC/B,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC;QAClC,CAAC;IACL,CAAC,CAAAA;IAEUA,4BAAiBA,GAAgCA,UAASA,IAAYA,EAAEA,SAAuBA,EAAEA,SAA2BA,EAAEA,YAA0BA,EAAEA,cAA4BA,EAAEA,SAA4BA,EAAEA,eAA6BA,EAAEA,cAA4BA;QACxR,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;YAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QAAC,CAAC;QACjC,IAAI,CAAC,SAAS,GAAG,SAAS,EAC1B,IAAI,CAAC,SAAS,GAAG,SAAS,EAC1B,IAAI,CAAC,YAAY,GAAG,YAAY,EAChC,IAAI,CAAC,cAAc,GAAG,cAAc,EACpC,IAAI,CAAC,SAAS,GAAG,SAAS,EAC1B,IAAI,CAAC,eAAe,GAAG,eAAe,EACtC,IAAI,CAAC,cAAc,GAAG,cAAc,EACpC,SAAS,CAAC,MAAM,GAAG,IAAI,EACvB,SAAS,CAAC,MAAM,GAAG,IAAI,EACvB,YAAY,CAAC,MAAM,GAAG,IAAI,EAC1B,cAAc,CAAC,MAAM,GAAG,IAAI,EAC5B,SAAS,CAAC,MAAM,GAAG,IAAI,EACvB,eAAe,CAAC,MAAM,GAAG,IAAI,EAC7B,cAAc,IAAI,CAAC,cAAc,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACrD,CAAC,CAACA;IACFA,4BAAiBA,CAACA,SAASA,CAACA,IAAIA,GAAGA,qBAAsBA,CAACA;IAC1DA,4BAAiBA,CAACA,SAASA,CAACA,UAAUA,GAAGA,CAACA,CAACA;IAC3CA,4BAAiBA,CAACA,SAASA,CAACA,OAAOA,GAAGA,UAASA,KAAaA;QACxD,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;YACZ,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC;YAC9B,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC;YAC9B,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC;YACjC,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC;YACnC,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC;YAC9B,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC;YACpC,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC;QACvC,CAAC;IACL,CAAC,CAAAA;IAEUA,kCAAuBA,GAAsCA,UAASA,IAAYA,EAAEA,eAA6BA,EAAEA,cAA4BA;QACtJ,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;YAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QAAC,CAAC;QACjC,IAAI,CAAC,eAAe,GAAG,eAAe,EACtC,IAAI,CAAC,cAAc,GAAG,cAAc,EACpC,eAAe,CAAC,MAAM,GAAG,IAAI,EAC7B,cAAc,IAAI,CAAC,cAAc,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACrD,CAAC,CAACA;IACFA,kCAAuBA,CAACA,SAASA,CAACA,IAAIA,GAAGA,2BAA4BA,CAACA;IACtEA,kCAAuBA,CAACA,SAASA,CAACA,UAAUA,GAAGA,CAACA,CAACA;IACjDA,kCAAuBA,CAACA,SAASA,CAACA,OAAOA,GAAGA,UAASA,KAAaA;QAC9D,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;YACZ,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC;YACpC,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC;QACvC,CAAC;IACL,CAAC,CAAAA;IAEUA,8BAAmBA,GAAkCA,UAASA,IAAYA,EAAEA,WAAyBA,EAAEA,cAA4BA,EAAEA,SAA4BA,EAAEA,eAA6BA,EAAEA,SAA2BA;QACpO,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;YAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QAAC,CAAC;QACjC,IAAI,CAAC,WAAW,GAAG,WAAW,EAC9B,IAAI,CAAC,cAAc,GAAG,cAAc,EACpC,IAAI,CAAC,SAAS,GAAG,SAAS,EAC1B,IAAI,CAAC,eAAe,GAAG,eAAe,EACtC,IAAI,CAAC,SAAS,GAAG,SAAS,EAC1B,WAAW,CAAC,MAAM,GAAG,IAAI,EACzB,cAAc,CAAC,MAAM,GAAG,IAAI,EAC5B,SAAS,CAAC,MAAM,GAAG,IAAI,EACvB,eAAe,CAAC,MAAM,GAAG,IAAI,EAC7B,SAAS,CAAC,MAAM,GAAG,IAAI,CAAC;IAC5B,CAAC,CAACA;IACFA,8BAAmBA,CAACA,SAASA,CAACA,IAAIA,GAAGA,uBAAwBA,CAACA;IAC9DA,8BAAmBA,CAACA,SAASA,CAACA,UAAUA,GAAGA,CAACA,CAACA;IAC7CA,8BAAmBA,CAACA,SAASA,CAACA,OAAOA,GAAGA,UAASA,KAAaA;QAC1D,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;YACZ,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC;YAChC,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC;YACnC,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC;YAC9B,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC;YACpC,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC;QAClC,CAAC;IACL,CAAC,CAAAA;IAEUA,sCAA2BA,GAA0CA,UAASA,IAAYA,EAAEA,aAA2BA,EAAEA,OAA+BA;QAC/J,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;YAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QAAC,CAAC;QACjC,IAAI,CAAC,aAAa,GAAG,aAAa,EAClC,IAAI,CAAC,OAAO,GAAG,OAAO,EACtB,aAAa,CAAC,MAAM,GAAG,IAAI,EAC3B,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAC1B,CAAC,CAACA;IACFA,sCAA2BA,CAACA,SAASA,CAACA,IAAIA,GAAGA,+BAAgCA,CAACA;IAC9EA,sCAA2BA,CAACA,SAASA,CAACA,UAAUA,GAAGA,CAACA,CAACA;IACrDA,sCAA2BA,CAACA,SAASA,CAACA,OAAOA,GAAGA,UAASA,KAAaA;QAClE,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;YACZ,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC;YAClC,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC;QAChC,CAAC;IACL,CAAC,CAAAA;IAEUA,iCAAsBA,GAAqCA,UAASA,IAAYA,EAAEA,aAA2BA,EAAEA,UAAkCA;QACxJ,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;YAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QAAC,CAAC;QACjC,IAAI,CAAC,aAAa,GAAG,aAAa,EAClC,IAAI,CAAC,UAAU,GAAG,UAAU,EAC5B,aAAa,CAAC,MAAM,GAAG,IAAI,EAC3B,UAAU,CAAC,MAAM,GAAG,IAAI,CAAC;IAC7B,CAAC,CAACA;IACFA,iCAAsBA,CAACA,SAASA,CAACA,IAAIA,GAAGA,0BAA2BA,CAACA;IACpEA,iCAAsBA,CAACA,SAASA,CAACA,UAAUA,GAAGA,CAACA,CAACA;IAChDA,iCAAsBA,CAACA,SAASA,CAACA,OAAOA,GAAGA,UAASA,KAAaA;QAC7D,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;YACZ,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC;YAClC,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC;QACnC,CAAC;IACL,CAAC,CAAAA;IAEUA,iCAAsBA,GAAqCA,UAASA,IAAYA,EAAEA,aAA2BA,EAAEA,UAAkCA;QACxJ,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;YAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QAAC,CAAC;QACjC,IAAI,CAAC,aAAa,GAAG,aAAa,EAClC,IAAI,CAAC,UAAU,GAAG,UAAU,EAC5B,aAAa,CAAC,MAAM,GAAG,IAAI,EAC3B,UAAU,CAAC,MAAM,GAAG,IAAI,CAAC;IAC7B,CAAC,CAACA;IACFA,iCAAsBA,CAACA,SAASA,CAACA,IAAIA,GAAGA,0BAA2BA,CAACA;IACpEA,iCAAsBA,CAACA,SAASA,CAACA,UAAUA,GAAGA,CAACA,CAACA;IAChDA,iCAAsBA,CAACA,SAASA,CAACA,OAAOA,GAAGA,UAASA,KAAaA;QAC7D,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;YACZ,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC;YAClC,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC;QACnC,CAAC;IACL,CAAC,CAAAA;IAEUA,+BAAoBA,GAAmCA,UAASA,IAAYA,EAAEA,WAAyBA,EAAEA,UAAkCA;QAClJ,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;YAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QAAC,CAAC;QACjC,IAAI,CAAC,WAAW,GAAG,WAAW,EAC9B,IAAI,CAAC,UAAU,GAAG,UAAU,EAC5B,WAAW,CAAC,MAAM,GAAG,IAAI,EACzB,UAAU,CAAC,MAAM,GAAG,IAAI,CAAC;IAC7B,CAAC,CAACA;IACFA,+BAAoBA,CAACA,SAASA,CAACA,IAAIA,GAAGA,wBAAyBA,CAACA;IAChEA,+BAAoBA,CAACA,SAASA,CAACA,UAAUA,GAAGA,CAACA,CAACA;IAC9CA,+BAAoBA,CAACA,SAASA,CAACA,OAAOA,GAAGA,UAASA,KAAaA;QAC3D,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;YACZ,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC;YAChC,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC;QACnC,CAAC;IACL,CAAC,CAAAA;IAEUA,sCAA2BA,GAA0CA,UAASA,IAAYA,EAAEA,SAA4BA,EAAEA,aAA2BA,EAAEA,QAA2BA,EAAEA,UAAwBA,EAAEA,SAA4BA;QACjP,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;YAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QAAC,CAAC;QACjC,IAAI,CAAC,SAAS,GAAG,SAAS,EAC1B,IAAI,CAAC,aAAa,GAAG,aAAa,EAClC,IAAI,CAAC,QAAQ,GAAG,QAAQ,EACxB,IAAI,CAAC,UAAU,GAAG,UAAU,EAC5B,IAAI,CAAC,SAAS,GAAG,SAAS,EAC1B,SAAS,CAAC,MAAM,GAAG,IAAI,EACvB,aAAa,CAAC,MAAM,GAAG,IAAI,EAC3B,QAAQ,CAAC,MAAM,GAAG,IAAI,EACtB,UAAU,CAAC,MAAM,GAAG,IAAI,EACxB,SAAS,CAAC,MAAM,GAAG,IAAI,CAAC;IAC5B,CAAC,CAACA;IACFA,sCAA2BA,CAACA,SAASA,CAACA,IAAIA,GAAGA,+BAAgCA,CAACA;IAC9EA,sCAA2BA,CAACA,SAASA,CAACA,UAAUA,GAAGA,CAACA,CAACA;IACrDA,sCAA2BA,CAACA,SAASA,CAACA,OAAOA,GAAGA,UAASA,KAAaA;QAClE,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;YACZ,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC;YAC9B,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC;YAClC,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC;YAC7B,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC;YAC/B,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC;QAClC,CAAC;IACL,CAAC,CAAAA;IAEUA,iCAAsBA,GAAqCA,UAASA,IAAYA,EAAEA,IAAuBA,EAAEA,aAA2BA,EAAEA,KAAwBA;QACvK,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;YAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QAAC,CAAC;QACjC,IAAI,CAAC,IAAI,GAAG,IAAI,EAChB,IAAI,CAAC,aAAa,GAAG,aAAa,EAClC,IAAI,CAAC,KAAK,GAAG,KAAK,EAClB,IAAI,CAAC,MAAM,GAAG,IAAI,EAClB,aAAa,CAAC,MAAM,GAAG,IAAI,EAC3B,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC;IACxB,CAAC,CAACA;IACFA,iCAAsBA,CAACA,SAASA,CAACA,IAAIA,GAAGA,0BAA2BA,CAACA;IACpEA,iCAAsBA,CAACA,SAASA,CAACA,UAAUA,GAAGA,CAACA,CAACA;IAChDA,iCAAsBA,CAACA,SAASA,CAACA,OAAOA,GAAGA,UAASA,KAAaA;QAC7D,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;YACZ,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;YACzB,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC;YAClC,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;QAC9B,CAAC;IACL,CAAC,CAAAA;IAEUA,uCAA4BA,GAA2CA,UAASA,IAAYA,EAAEA,OAAsCA,EAAEA,aAA2BA;QACxK,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;YAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QAAC,CAAC;QACjC,IAAI,CAAC,OAAO,GAAG,OAAO,EACtB,IAAI,CAAC,aAAa,GAAG,aAAa,EAClC,OAAO,CAAC,MAAM,GAAG,IAAI,EACrB,aAAa,CAAC,MAAM,GAAG,IAAI,CAAC;IAChC,CAAC,CAACA;IACFA,uCAA4BA,CAACA,SAASA,CAACA,IAAIA,GAAGA,gCAAiCA,CAACA;IAChFA,uCAA4BA,CAACA,SAASA,CAACA,UAAUA,GAAGA,CAACA,CAACA;IACtDA,uCAA4BA,CAACA,SAASA,CAACA,OAAOA,GAAGA,UAASA,KAAaA;QACnE,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;YACZ,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC;YAC5B,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC;QACtC,CAAC;IACL,CAAC,CAAAA;IAEUA,uCAA4BA,GAA2CA,UAASA,IAAYA,EAAEA,UAAyCA,EAAEA,QAAsBA,EAAEA,IAAkBA;QAC1L,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;YAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QAAC,CAAC;QACjC,IAAI,CAAC,UAAU,GAAG,UAAU,EAC5B,IAAI,CAAC,QAAQ,GAAG,QAAQ,EACxB,IAAI,CAAC,IAAI,GAAG,IAAI,EAChB,UAAU,CAAC,MAAM,GAAG,IAAI,EACxB,QAAQ,CAAC,MAAM,GAAG,IAAI,EACtB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;IACvB,CAAC,CAACA;IACFA,uCAA4BA,CAACA,SAASA,CAACA,IAAIA,GAAGA,gCAAiCA,CAACA;IAChFA,uCAA4BA,CAACA,SAASA,CAACA,UAAUA,GAAGA,CAACA,CAACA;IACtDA,uCAA4BA,CAACA,SAASA,CAACA,OAAOA,GAAGA,UAASA,KAAaA;QACnE,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;YACZ,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC;YAC/B,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC;YAC7B,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;QAC7B,CAAC;IACL,CAAC,CAAAA;IAEUA,qCAA0BA,GAAyCA,UAASA,IAAYA,EAAEA,UAAyCA,EAAEA,YAAgCA;QAC5K,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;YAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QAAC,CAAC;QACjC,IAAI,CAAC,UAAU,GAAG,UAAU,EAC5B,IAAI,CAAC,YAAY,GAAG,YAAY,EAChC,UAAU,CAAC,MAAM,GAAG,IAAI,EACxB,YAAY,CAAC,MAAM,GAAG,IAAI,CAAC;IAC/B,CAAC,CAACA;IACFA,qCAA0BA,CAACA,SAASA,CAACA,IAAIA,GAAGA,8BAA+BA,CAACA;IAC5EA,qCAA0BA,CAACA,SAASA,CAACA,UAAUA,GAAGA,CAACA,CAACA;IACpDA,qCAA0BA,CAACA,SAASA,CAACA,OAAOA,GAAGA,UAASA,KAAaA;QACjE,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;YACZ,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC;YAC/B,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC;QACrC,CAAC;IACL,CAAC,CAAAA;IAEUA,uCAA4BA,GAA2CA,UAASA,IAAYA,EAAEA,gBAA8BA,EAAEA,WAAoDA,EAAEA,iBAA+BA;QAC1N,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;YAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QAAC,CAAC;QACjC,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,EACxC,IAAI,CAAC,WAAW,GAAG,WAAW,EAC9B,IAAI,CAAC,iBAAiB,GAAG,iBAAiB,EAC1C,gBAAgB,CAAC,MAAM,GAAG,IAAI,EAC9B,WAAW,CAAC,MAAM,GAAG,IAAI,EACzB,iBAAiB,CAAC,MAAM,GAAG,IAAI,CAAC;IACpC,CAAC,CAACA;IACFA,uCAA4BA,CAACA,SAASA,CAACA,IAAIA,GAAGA,gCAAiCA,CAACA;IAChFA,uCAA4BA,CAACA,SAASA,CAACA,UAAUA,GAAGA,CAACA,CAACA;IACtDA,uCAA4BA,CAACA,SAASA,CAACA,OAAOA,GAAGA,UAASA,KAAaA;QACnE,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;YACZ,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC;YACrC,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC;YAChC,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC;QAC1C,CAAC;IACL,CAAC,CAAAA;IAEUA,wCAA6BA,GAA4CA,UAASA,IAAYA,EAAEA,cAA4BA,EAAEA,mBAAoEA,EAAEA,eAA6BA;QACxO,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;YAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QAAC,CAAC;QACjC,IAAI,CAAC,cAAc,GAAG,cAAc,EACpC,IAAI,CAAC,mBAAmB,GAAG,mBAAmB,EAC9C,IAAI,CAAC,eAAe,GAAG,eAAe,EACtC,cAAc,CAAC,MAAM,GAAG,IAAI,EAC5B,mBAAmB,CAAC,MAAM,GAAG,IAAI,EACjC,eAAe,CAAC,MAAM,GAAG,IAAI,CAAC;IAClC,CAAC,CAACA;IACFA,wCAA6BA,CAACA,SAASA,CAACA,IAAIA,GAAGA,iCAAkCA,CAACA;IAClFA,wCAA6BA,CAACA,SAASA,CAACA,UAAUA,GAAGA,CAACA,CAACA;IACvDA,wCAA6BA,CAACA,SAASA,CAACA,OAAOA,GAAGA,UAASA,KAAaA;QACpE,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;YACZ,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC;YACnC,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC;YACxC,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC;QACxC,CAAC;IACL,CAAC,CAAAA;IAEUA,yCAA8BA,GAA6CA,UAASA,IAAYA,EAAEA,UAAwBA,EAAEA,UAAmCA,EAAEA,YAAgCA;QACxM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;YAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QAAC,CAAC;QACjC,IAAI,CAAC,UAAU,GAAG,UAAU,EAC5B,IAAI,CAAC,UAAU,GAAG,UAAU,EAC5B,IAAI,CAAC,YAAY,GAAG,YAAY,EAChC,UAAU,CAAC,MAAM,GAAG,IAAI,EACxB,UAAU,CAAC,MAAM,GAAG,IAAI,EACxB,YAAY,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACjD,CAAC,CAACA;IACFA,yCAA8BA,CAACA,SAASA,CAACA,IAAIA,GAAGA,kCAAmCA,CAACA;IACpFA,yCAA8BA,CAACA,SAASA,CAACA,UAAUA,GAAGA,CAACA,CAACA;IACxDA,yCAA8BA,CAACA,SAASA,CAACA,OAAOA,GAAGA,UAASA,KAAaA;QACrE,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;YACZ,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC;YAC/B,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC;YAC/B,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC;QACrC,CAAC;IACL,CAAC,CAAAA;IAEUA,wCAA6BA,GAA4CA,UAASA,IAAYA,EAAEA,cAA4BA,EAAEA,UAA6BA,EAAEA,eAA6BA;QACjM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;YAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QAAC,CAAC;QACjC,IAAI,CAAC,cAAc,GAAG,cAAc,EACpC,IAAI,CAAC,UAAU,GAAG,UAAU,EAC5B,IAAI,CAAC,eAAe,GAAG,eAAe,EACtC,cAAc,CAAC,MAAM,GAAG,IAAI,EAC5B,UAAU,CAAC,MAAM,GAAG,IAAI,EACxB,eAAe,CAAC,MAAM,GAAG,IAAI,CAAC;IAClC,CAAC,CAACA;IACFA,wCAA6BA,CAACA,SAASA,CAACA,IAAIA,GAAGA,iCAAkCA,CAACA;IAClFA,wCAA6BA,CAACA,SAASA,CAACA,UAAUA,GAAGA,CAACA,CAACA;IACvDA,wCAA6BA,CAACA,SAASA,CAACA,OAAOA,GAAGA,UAASA,KAAaA;QACpE,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;YACZ,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC;YACnC,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC;YAC/B,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC;QACxC,CAAC;IACL,CAAC,CAAAA;IAEUA,qDAA0CA,GAAyDA,UAASA,IAAYA,EAAEA,YAA0BA,EAAEA,aAAkCA,EAAEA,sBAAoCA,EAAEA,IAAqCA;QAC5Q,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;YAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QAAC,CAAC;QACjC,IAAI,CAAC,YAAY,GAAG,YAAY,EAChC,IAAI,CAAC,aAAa,GAAG,aAAa,EAClC,IAAI,CAAC,sBAAsB,GAAG,sBAAsB,EACpD,IAAI,CAAC,IAAI,GAAG,IAAI,EAChB,YAAY,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,IAAI,CAAC,EAC5C,aAAa,CAAC,MAAM,GAAG,IAAI,EAC3B,sBAAsB,CAAC,MAAM,GAAG,IAAI,EACpC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;IACvB,CAAC,CAACA;IACFA,qDAA0CA,CAACA,SAASA,CAACA,IAAIA,GAAGA,8CAA+CA,CAACA;IAC5GA,qDAA0CA,CAACA,SAASA,CAACA,UAAUA,GAAGA,CAACA,CAACA;IACpEA,qDAA0CA,CAACA,SAASA,CAACA,OAAOA,GAAGA,UAASA,KAAaA;QACjF,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;YACZ,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC;YACjC,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC;YAClC,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,sBAAsB,CAAC;YAC3C,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;QAC7B,CAAC;IACL,CAAC,CAAAA;IAEUA,8CAAmCA,GAAkDA,UAASA,IAAYA,EAAEA,YAA0BA,EAAEA,SAA0BA,EAAEA,sBAAoCA,EAAEA,IAAqCA;QACtP,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;YAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QAAC,CAAC;QACjC,IAAI,CAAC,YAAY,GAAG,YAAY,EAChC,IAAI,CAAC,SAAS,GAAG,SAAS,EAC1B,IAAI,CAAC,sBAAsB,GAAG,sBAAsB,EACpD,IAAI,CAAC,IAAI,GAAG,IAAI,EAChB,YAAY,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,IAAI,CAAC,EAC5C,SAAS,CAAC,MAAM,GAAG,IAAI,EACvB,sBAAsB,CAAC,MAAM,GAAG,IAAI,EACpC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;IACvB,CAAC,CAACA;IACFA,8CAAmCA,CAACA,SAASA,CAACA,IAAIA,GAAGA,uCAAwCA,CAACA;IAC9FA,8CAAmCA,CAACA,SAASA,CAACA,UAAUA,GAAGA,CAACA,CAACA;IAC7DA,8CAAmCA,CAACA,SAASA,CAACA,OAAOA,GAAGA,UAASA,KAAaA;QAC1E,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;YACZ,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC;YACjC,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC;YAC9B,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,sBAAsB,CAAC;YAC3C,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;QAC7B,CAAC;IACL,CAAC,CAAAA;IAEUA,+BAAoBA,GAAmCA,UAASA,IAAYA,EAAEA,aAA2BA,EAAEA,IAAiBA,EAAEA,gBAA8BA,EAAEA,UAAkCA;QACvM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;YAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QAAC,CAAC;QACjC,IAAI,CAAC,aAAa,GAAG,aAAa,EAClC,IAAI,CAAC,IAAI,GAAG,IAAI,EAChB,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,EACxC,IAAI,CAAC,UAAU,GAAG,UAAU,EAC5B,aAAa,CAAC,MAAM,GAAG,IAAI,EAC3B,IAAI,CAAC,MAAM,GAAG,IAAI,EAClB,gBAAgB,CAAC,MAAM,GAAG,IAAI,EAC9B,UAAU,CAAC,MAAM,GAAG,IAAI,CAAC;IAC7B,CAAC,CAACA;IACFA,+BAAoBA,CAACA,SAASA,CAACA,IAAIA,GAAGA,wBAAyBA,CAACA;IAChEA,+BAAoBA,CAACA,SAASA,CAACA,UAAUA,GAAGA,CAACA,CAACA;IAC9CA,+BAAoBA,CAACA,SAASA,CAACA,OAAOA,GAAGA,UAASA,KAAaA;QAC3D,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;YACZ,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC;YAClC,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;YACzB,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC;YACrC,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC;QACnC,CAAC;IACL,CAAC,CAAAA;IAEUA,wCAA6BA,GAA4CA,UAASA,IAAYA,EAAEA,UAAyCA,EAAEA,gBAA8BA,EAAEA,kBAAqCA,EAAEA,iBAA+BA;QACxP,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;YAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QAAC,CAAC;QACjC,IAAI,CAAC,UAAU,GAAG,UAAU,EAC5B,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,EACxC,IAAI,CAAC,kBAAkB,GAAG,kBAAkB,EAC5C,IAAI,CAAC,iBAAiB,GAAG,iBAAiB,EAC1C,UAAU,CAAC,MAAM,GAAG,IAAI,EACxB,gBAAgB,CAAC,MAAM,GAAG,IAAI,EAC9B,kBAAkB,IAAI,CAAC,kBAAkB,CAAC,MAAM,GAAG,IAAI,CAAC,EACxD,iBAAiB,CAAC,MAAM,GAAG,IAAI,CAAC;IACpC,CAAC,CAACA;IACFA,wCAA6BA,CAACA,SAASA,CAACA,IAAIA,GAAGA,iCAAkCA,CAACA;IAClFA,wCAA6BA,CAACA,SAASA,CAACA,UAAUA,GAAGA,CAACA,CAACA;IACvDA,wCAA6BA,CAACA,SAASA,CAACA,OAAOA,GAAGA,UAASA,KAAaA;QACpE,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;YACZ,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC;YAC/B,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC;YACrC,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC;YACvC,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC;QAC1C,CAAC;IACL,CAAC,CAAAA;IAEUA,mCAAwBA,GAAuCA,UAASA,IAAYA,EAAEA,YAA0BA,EAAEA,eAA6BA,EAAEA,YAA0BA,EAAEA,UAAwBA,EAAEA,aAAkCA,EAAEA,IAAiDA;QACnS,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;YAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QAAC,CAAC;QACjC,IAAI,CAAC,YAAY,GAAG,YAAY,EAChC,IAAI,CAAC,eAAe,GAAG,eAAe,EACtC,IAAI,CAAC,YAAY,GAAG,YAAY,EAChC,IAAI,CAAC,UAAU,GAAG,UAAU,EAC5B,IAAI,CAAC,aAAa,GAAG,aAAa,EAClC,IAAI,CAAC,IAAI,GAAG,IAAI,EAChB,YAAY,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,IAAI,CAAC,EAC5C,eAAe,CAAC,MAAM,GAAG,IAAI,EAC7B,YAAY,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,IAAI,CAAC,EAC5C,UAAU,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,IAAI,CAAC,EACxC,aAAa,CAAC,MAAM,GAAG,IAAI,EAC3B,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACjC,CAAC,CAACA;IACFA,mCAAwBA,CAACA,SAASA,CAACA,IAAIA,GAAGA,4BAA6BA,CAACA;IACxEA,mCAAwBA,CAACA,SAASA,CAACA,UAAUA,GAAGA,CAACA,CAACA;IAClDA,mCAAwBA,CAACA,SAASA,CAACA,OAAOA,GAAGA,UAASA,KAAaA;QAC/D,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;YACZ,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC;YACjC,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC;YACpC,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC;YACjC,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC;YAC/B,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC;YAClC,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;QAC7B,CAAC;IACL,CAAC,CAAAA;IAEUA,kCAAuBA,GAAsCA,UAASA,IAAYA;QACzF,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;YAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QAAC,CAAC;IACrC,CAAC,CAACA;IACFA,kCAAuBA,CAACA,SAASA,CAACA,IAAIA,GAAGA,2BAA4BA,CAACA;IACtEA,kCAAuBA,CAACA,SAASA,CAACA,UAAUA,GAAGA,CAACA,CAACA;IACjDA,kCAAuBA,CAACA,SAASA,CAACA,OAAOA,GAAGA,UAASA,KAAaA;QAC9D,MAAM,iBAAM,CAAC,gBAAgB,EAAE,CAAC;IACpC,CAAC,CAAAA;IAEUA,mCAAwBA,GAAuCA,UAASA,IAAYA,EAAEA,kBAAgCA,EAAEA,eAAuCA;QACtK,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;YAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QAAC,CAAC;QACjC,IAAI,CAAC,kBAAkB,GAAG,kBAAkB,EAC5C,IAAI,CAAC,eAAe,GAAG,eAAe,EACtC,kBAAkB,CAAC,MAAM,GAAG,IAAI,EAChC,eAAe,CAAC,MAAM,GAAG,IAAI,CAAC;IAClC,CAAC,CAACA;IACFA,mCAAwBA,CAACA,SAASA,CAACA,IAAIA,GAAGA,4BAA6BA,CAACA;IACxEA,mCAAwBA,CAACA,SAASA,CAACA,UAAUA,GAAGA,CAACA,CAACA;IAClDA,mCAAwBA,CAACA,SAASA,CAACA,OAAOA,GAAGA,UAASA,KAAaA;QAC/D,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;YACZ,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC;YACvC,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC;QACxC,CAAC;IACL,CAAC,CAAAA;IAEUA,yCAA8BA,GAA6CA,UAASA,IAAYA,EAAEA,UAAyCA,EAAEA,kBAA4CA;QAChM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;YAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QAAC,CAAC;QACjC,IAAI,CAAC,UAAU,GAAG,UAAU,EAC5B,IAAI,CAAC,kBAAkB,GAAG,kBAAkB,EAC5C,UAAU,CAAC,MAAM,GAAG,IAAI,EACxB,kBAAkB,CAAC,MAAM,GAAG,IAAI,CAAC;IACrC,CAAC,CAACA;IACFA,yCAA8BA,CAACA,SAASA,CAACA,IAAIA,GAAGA,kCAAmCA,CAACA;IACpFA,yCAA8BA,CAACA,SAASA,CAACA,UAAUA,GAAGA,CAACA,CAACA;IACxDA,yCAA8BA,CAACA,SAASA,CAACA,OAAOA,GAAGA,UAASA,KAAaA;QACrE,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;YACZ,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC;YAC/B,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC;QAC3C,CAAC;IACL,CAAC,CAAAA;IAEUA,gCAAqBA,GAAoCA,UAASA,IAAYA,EAAEA,YAA0BA,EAAEA,YAA0BA,EAAEA,UAA6BA;QAC5K,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;YAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QAAC,CAAC;QACjC,IAAI,CAAC,YAAY,GAAG,YAAY,EAChC,IAAI,CAAC,YAAY,GAAG,YAAY,EAChC,IAAI,CAAC,UAAU,GAAG,UAAU,EAC5B,YAAY,CAAC,MAAM,GAAG,IAAI,EAC1B,YAAY,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,IAAI,CAAC,EAC5C,UAAU,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAC7C,CAAC,CAACA;IACFA,gCAAqBA,CAACA,SAASA,CAACA,IAAIA,GAAGA,yBAA0BA,CAACA;IAClEA,gCAAqBA,CAACA,SAASA,CAACA,UAAUA,GAAGA,CAACA,CAACA;IAC/CA,gCAAqBA,CAACA,SAASA,CAACA,OAAOA,GAAGA,UAASA,KAAaA;QAC5D,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;YACZ,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC;YACjC,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC;YACjC,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC;QACnC,CAAC;IACL,CAAC,CAAAA;IAEUA,gCAAqBA,GAAoCA,UAASA,IAAYA,EAAEA,YAA0BA,EAAEA,UAA6BA;QAChJ,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;YAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QAAC,CAAC;QACjC,IAAI,CAAC,YAAY,GAAG,YAAY,EAChC,IAAI,CAAC,UAAU,GAAG,UAAU,EAC5B,YAAY,CAAC,MAAM,GAAG,IAAI,EAC1B,UAAU,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAC7C,CAAC,CAACA;IACFA,gCAAqBA,CAACA,SAASA,CAACA,IAAIA,GAAGA,yBAA0BA,CAACA;IAClEA,gCAAqBA,CAACA,SAASA,CAACA,UAAUA,GAAGA,CAACA,CAACA;IAC/CA,gCAAqBA,CAACA,SAASA,CAACA,OAAOA,GAAGA,UAASA,KAAaA;QAC5D,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;YACZ,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC;YACjC,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC;QACnC,CAAC;IACL,CAAC,CAAAA;IAEUA,oCAAyBA,GAAwCA,UAASA,IAAYA,EAAEA,UAAwBA,EAAEA,mBAAmEA;QAC5L,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;YAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QAAC,CAAC;QACjC,IAAI,CAAC,UAAU,GAAG,UAAU,EAC5B,IAAI,CAAC,mBAAmB,GAAG,mBAAmB,EAC9C,UAAU,CAAC,MAAM,GAAG,IAAI,EACxB,mBAAmB,CAAC,MAAM,GAAG,IAAI,CAAC;IACtC,CAAC,CAACA;IACFA,oCAAyBA,CAACA,SAASA,CAACA,IAAIA,GAAGA,6BAA8BA,CAACA;IAC1EA,oCAAyBA,CAACA,SAASA,CAACA,UAAUA,GAAGA,CAACA,CAACA;IACnDA,oCAAyBA,CAACA,SAASA,CAACA,OAAOA,GAAGA,UAASA,KAAaA;QAChE,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;YACZ,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC;YAC/B,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC;QAC5C,CAAC;IACL,CAAC,CAAAA;IAEUA,mCAAwBA,GAAuCA,UAASA,IAAYA,EAAEA,YAAiCA,EAAEA,cAAoCA,EAAEA,iBAA0CA;QAChN,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;YAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QAAC,CAAC;QACjC,IAAI,CAAC,YAAY,GAAG,YAAY,EAChC,IAAI,CAAC,cAAc,GAAG,cAAc,EACpC,IAAI,CAAC,iBAAiB,GAAG,iBAAiB,EAC1C,YAAY,CAAC,MAAM,GAAG,IAAI,EAC1B,cAAc,IAAI,CAAC,cAAc,CAAC,MAAM,GAAG,IAAI,CAAC,EAChD,iBAAiB,IAAI,CAAC,iBAAiB,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAC3D,CAAC,CAACA;IACFA,mCAAwBA,CAACA,SAASA,CAACA,IAAIA,GAAGA,4BAA6BA,CAACA;IACxEA,mCAAwBA,CAACA,SAASA,CAACA,UAAUA,GAAGA,CAACA,CAACA;IAClDA,mCAAwBA,CAACA,SAASA,CAACA,OAAOA,GAAGA,UAASA,KAAaA;QAC/D,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;YACZ,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC;YACjC,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC;YACnC,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC;QAC1C,CAAC;IACL,CAAC,CAAAA;IAEUA,6BAAkBA,GAAiCA,UAASA,IAAYA,EAAEA,gBAAwCA,EAAEA,cAA4BA,EAAEA,UAAmDA,EAAEA,eAA6BA;QAC3O,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;YAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QAAC,CAAC;QACjC,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,EACxC,IAAI,CAAC,cAAc,GAAG,cAAc,EACpC,IAAI,CAAC,SAAS,GAAG,UAAU,EAC3B,IAAI,CAAC,eAAe,GAAG,eAAe,EACtC,gBAAgB,IAAI,CAAC,gBAAgB,CAAC,MAAM,GAAG,IAAI,CAAC,EACpD,cAAc,CAAC,MAAM,GAAG,IAAI,EAC5B,UAAU,CAAC,MAAM,GAAG,IAAI,EACxB,eAAe,CAAC,MAAM,GAAG,IAAI,CAAC;IAClC,CAAC,CAACA;IACFA,6BAAkBA,CAACA,SAASA,CAACA,IAAIA,GAAGA,sBAAuBA,CAACA;IAC5DA,6BAAkBA,CAACA,SAASA,CAACA,UAAUA,GAAGA,CAACA,CAACA;IAC5CA,6BAAkBA,CAACA,SAASA,CAACA,OAAOA,GAAGA,UAASA,KAAaA;QACzD,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;YACZ,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC;YACrC,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC;YACnC,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC;YAC9B,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC;QACxC,CAAC;IACL,CAAC,CAAAA;IAEUA,8BAAmBA,GAAkCA,UAASA,IAAYA,EAAEA,cAA4BA,EAAEA,UAAiDA,EAAEA,eAA6BA;QACjM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;YAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QAAC,CAAC;QACjC,IAAI,CAAC,cAAc,GAAG,cAAc,EACpC,IAAI,CAAC,UAAU,GAAG,UAAU,EAC5B,IAAI,CAAC,eAAe,GAAG,eAAe,EACtC,cAAc,CAAC,MAAM,GAAG,IAAI,EAC5B,UAAU,CAAC,MAAM,GAAG,IAAI,EACxB,eAAe,CAAC,MAAM,GAAG,IAAI,CAAC;IAClC,CAAC,CAACA;IACFA,8BAAmBA,CAACA,SAASA,CAACA,IAAIA,GAAGA,uBAAwBA,CAACA;IAC9DA,8BAAmBA,CAACA,SAASA,CAACA,UAAUA,GAAGA,CAACA,CAACA;IAC7CA,8BAAmBA,CAACA,SAASA,CAACA,OAAOA,GAAGA,UAASA,KAAaA;QAC1D,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;YACZ,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC;YACnC,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC;YAC/B,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC;QACxC,CAAC;IACL,CAAC,CAAAA;IAEUA,iCAAsBA,GAAqCA,UAASA,IAAYA,EAAEA,aAA2BA,EAAEA,aAAgDA,EAAEA,gBAA8BA;QACtM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;YAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QAAC,CAAC;QACjC,IAAI,CAAC,aAAa,GAAG,aAAa,EAClC,IAAI,CAAC,aAAa,GAAG,aAAa,EAClC,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,EACxC,aAAa,CAAC,MAAM,GAAG,IAAI,EAC3B,aAAa,CAAC,MAAM,GAAG,IAAI,EAC3B,gBAAgB,CAAC,MAAM,GAAG,IAAI,CAAC;IACnC,CAAC,CAACA;IACFA,iCAAsBA,CAACA,SAASA,CAACA,IAAIA,GAAGA,0BAA2BA,CAACA;IACpEA,iCAAsBA,CAACA,SAASA,CAACA,UAAUA,GAAGA,CAACA,CAACA;IAChDA,iCAAsBA,CAACA,SAASA,CAACA,OAAOA,GAAGA,UAASA,KAAaA;QAC7D,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;YACZ,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC;YAClC,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC;YAClC,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC;QACzC,CAAC;IACL,CAAC,CAAAA;IAEUA,kCAAuBA,GAAsCA,UAASA,IAAYA,EAAEA,aAA2BA,EAAEA,cAAyDA,EAAEA,gBAA8BA;QACjN,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;YAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QAAC,CAAC;QACjC,IAAI,CAAC,aAAa,GAAG,aAAa,EAClC,IAAI,CAAC,cAAc,GAAG,cAAc,EACpC,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,EACxC,aAAa,CAAC,MAAM,GAAG,IAAI,EAC3B,cAAc,CAAC,MAAM,GAAG,IAAI,EAC5B,gBAAgB,CAAC,MAAM,GAAG,IAAI,CAAC;IACnC,CAAC,CAACA;IACFA,kCAAuBA,CAACA,SAASA,CAACA,IAAIA,GAAGA,2BAA4BA,CAACA;IACtEA,kCAAuBA,CAACA,SAASA,CAACA,UAAUA,GAAGA,CAACA,CAACA;IACjDA,kCAAuBA,CAACA,SAASA,CAACA,OAAOA,GAAGA,UAASA,KAAaA;QAC9D,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;YACZ,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC;YAClC,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC;YACnC,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC;QACzC,CAAC;IACL,CAAC,CAAAA;IAEUA,+BAAoBA,GAAmCA,UAASA,IAAYA,EAAEA,0BAAwCA,EAAEA,SAA4CA;QAC3K,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;YAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QAAC,CAAC;QACjC,IAAI,CAAC,0BAA0B,GAAG,0BAA0B,EAC5D,IAAI,CAAC,SAAS,GAAG,SAAS,EAC1B,0BAA0B,CAAC,MAAM,GAAG,IAAI,EACxC,SAAS,CAAC,MAAM,GAAG,IAAI,CAAC;IAC5B,CAAC,CAACA;IACFA,+BAAoBA,CAACA,SAASA,CAACA,IAAIA,GAAGA,wBAAyBA,CAACA;IAChEA,+BAAoBA,CAACA,SAASA,CAACA,UAAUA,GAAGA,CAACA,CAACA;IAC9CA,+BAAoBA,CAACA,SAASA,CAACA,OAAOA,GAAGA,UAASA,KAAaA;QAC3D,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;YACZ,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,0BAA0B,CAAC;YAC/C,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC;QAClC,CAAC;IACL,CAAC,CAAAA;IAEUA,kCAAuBA,GAAsCA,UAASA,IAAYA,EAAEA,WAAyBA,EAAEA,KAAwBA;QAC9I,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;YAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QAAC,CAAC;QACjC,IAAI,CAAC,WAAW,GAAG,WAAW,EAC9B,IAAI,CAAC,KAAK,GAAG,KAAK,EAClB,WAAW,CAAC,MAAM,GAAG,IAAI,EACzB,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC;IACxB,CAAC,CAACA;IACFA,kCAAuBA,CAACA,SAASA,CAACA,IAAIA,GAAGA,2BAA4BA,CAACA;IACtEA,kCAAuBA,CAACA,SAASA,CAACA,UAAUA,GAAGA,CAACA,CAACA;IACjDA,kCAAuBA,CAACA,SAASA,CAACA,OAAOA,GAAGA,UAASA,KAAaA;QAC9D,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;YACZ,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC;YAChC,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;QAC9B,CAAC;IACL,CAAC,CAAAA;IAEUA,iCAAsBA,GAAqCA,UAASA,IAAYA,EAAEA,WAAyBA,EAAEA,UAA6BA,EAAEA,UAAwBA,EAAEA,UAA8BA;QAC3M,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;YAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QAAC,CAAC;QACjC,IAAI,CAAC,WAAW,GAAG,WAAW,EAC9B,IAAI,CAAC,UAAU,GAAG,UAAU,EAC5B,IAAI,CAAC,UAAU,GAAG,UAAU,EAC5B,IAAI,CAAC,UAAU,GAAG,UAAU,EAC5B,WAAW,CAAC,MAAM,GAAG,IAAI,EACzB,UAAU,CAAC,MAAM,GAAG,IAAI,EACxB,UAAU,CAAC,MAAM,GAAG,IAAI,EACxB,UAAU,CAAC,MAAM,GAAG,IAAI,CAAC;IAC7B,CAAC,CAACA;IACFA,iCAAsBA,CAACA,SAASA,CAACA,IAAIA,GAAGA,0BAA2BA,CAACA;IACpEA,iCAAsBA,CAACA,SAASA,CAACA,UAAUA,GAAGA,CAACA,CAACA;IAChDA,iCAAsBA,CAACA,SAASA,CAACA,OAAOA,GAAGA,UAASA,KAAaA;QAC7D,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;YACZ,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC;YAChC,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC;YAC/B,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC;YAC/B,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC;QACnC,CAAC;IACL,CAAC,CAAAA;IAEUA,oCAAyBA,GAAwCA,UAASA,IAAYA,EAAEA,cAA4BA,EAAEA,UAAwBA,EAAEA,UAA8BA;QACrL,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;YAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QAAC,CAAC;QACjC,IAAI,CAAC,cAAc,GAAG,cAAc,EACpC,IAAI,CAAC,UAAU,GAAG,UAAU,EAC5B,IAAI,CAAC,UAAU,GAAG,UAAU,EAC5B,cAAc,CAAC,MAAM,GAAG,IAAI,EAC5B,UAAU,CAAC,MAAM,GAAG,IAAI,EACxB,UAAU,CAAC,MAAM,GAAG,IAAI,CAAC;IAC7B,CAAC,CAACA;IACFA,oCAAyBA,CAACA,SAASA,CAACA,IAAIA,GAAGA,6BAA8BA,CAACA;IAC1EA,oCAAyBA,CAACA,SAASA,CAACA,UAAUA,GAAGA,CAACA,CAACA;IACnDA,oCAAyBA,CAACA,SAASA,CAACA,OAAOA,GAAGA,UAASA,KAAaA;QAChE,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;YACZ,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC;YACnC,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC;YAC/B,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC;QACnC,CAAC;IACL,CAAC,CAAAA;IAEUA,2BAAgBA,GAA+BA,UAASA,IAAYA,EAAEA,WAAyBA,EAAEA,SAA2BA;QACnI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;YAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QAAC,CAAC;QACjC,IAAI,CAAC,WAAW,GAAG,WAAW,EAC9B,IAAI,CAAC,SAAS,GAAG,SAAS,EAC1B,WAAW,CAAC,MAAM,GAAG,IAAI,EACzB,SAAS,CAAC,MAAM,GAAG,IAAI,CAAC;IAC5B,CAAC,CAACA;IACFA,2BAAgBA,CAACA,SAASA,CAACA,IAAIA,GAAGA,oBAAqBA,CAACA;IACxDA,2BAAgBA,CAACA,SAASA,CAACA,UAAUA,GAAGA,CAACA,CAACA;IAC1CA,2BAAgBA,CAACA,SAASA,CAACA,OAAOA,GAAGA,UAASA,KAAaA;QACvD,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;YACZ,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC;YAChC,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC;QAClC,CAAC;IACL,CAAC,CAAAA;IAEUA,4BAAiBA,GAAgCA,UAASA,IAAYA,EAAEA,YAA0BA,EAAEA,cAA4BA,EAAEA,UAAwBA,EAAEA,cAAoCA,EAAEA,eAA6BA,EAAEA,KAAkBA;QAC1P,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;YAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QAAC,CAAC;QACjC,IAAI,CAAC,YAAY,GAAG,YAAY,EAChC,IAAI,CAAC,cAAc,GAAG,cAAc,EACpC,IAAI,CAAC,UAAU,GAAG,UAAU,EAC5B,IAAI,CAAC,cAAc,GAAG,cAAc,EACpC,IAAI,CAAC,eAAe,GAAG,eAAe,EACtC,IAAI,CAAC,KAAK,GAAG,KAAK,EAClB,YAAY,CAAC,MAAM,GAAG,IAAI,EAC1B,cAAc,CAAC,MAAM,GAAG,IAAI,EAC5B,UAAU,CAAC,MAAM,GAAG,IAAI,EACxB,cAAc,IAAI,CAAC,cAAc,CAAC,MAAM,GAAG,IAAI,CAAC,EAChD,eAAe,CAAC,MAAM,GAAG,IAAI,EAC7B,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC;IACxB,CAAC,CAACA;IACFA,4BAAiBA,CAACA,SAASA,CAACA,IAAIA,GAAGA,qBAAsBA,CAACA;IAC1DA,4BAAiBA,CAACA,SAASA,CAACA,UAAUA,GAAGA,CAACA,CAACA;IAC3CA,4BAAiBA,CAACA,SAASA,CAACA,OAAOA,GAAGA,UAASA,KAAaA;QACxD,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;YACZ,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC;YACjC,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC;YACnC,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC;YAC/B,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC;YACnC,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC;YACpC,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;QAC9B,CAAC;IACL,CAAC,CAAAA;IAEUA,8BAAmBA,GAAkCA,UAASA,IAAYA,EAAEA,cAA4BA,EAAEA,KAAkBA;QACnI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;YAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QAAC,CAAC;QACjC,IAAI,CAAC,cAAc,GAAG,cAAc,EACpC,IAAI,CAAC,KAAK,GAAG,KAAK,EAClB,cAAc,CAAC,MAAM,GAAG,IAAI,EAC5B,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC;IACxB,CAAC,CAACA;IACFA,8BAAmBA,CAACA,SAASA,CAACA,IAAIA,GAAGA,uBAAwBA,CAACA;IAC9DA,8BAAmBA,CAACA,SAASA,CAACA,UAAUA,GAAGA,CAACA,CAACA;IAC7CA,8BAAmBA,CAACA,SAASA,CAACA,OAAOA,GAAGA,UAASA,KAAaA;QAC1D,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;YACZ,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC;YACnC,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;QAC9B,CAAC;IACL,CAAC,CAAAA;IAEUA,+BAAoBA,GAAmCA,UAASA,IAAYA,EAAEA,UAA6BA,EAAEA,wBAAsCA;QAC1J,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;YAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QAAC,CAAC;QACjC,IAAI,CAAC,UAAU,GAAG,UAAU,EAC5B,IAAI,CAAC,wBAAwB,GAAG,wBAAwB,EACxD,UAAU,CAAC,MAAM,GAAG,IAAI,EACxB,wBAAwB,CAAC,MAAM,GAAG,IAAI,CAAC;IAC3C,CAAC,CAACA;IACFA,+BAAoBA,CAACA,SAASA,CAACA,IAAIA,GAAGA,wBAAyBA,CAACA;IAChEA,+BAAoBA,CAACA,SAASA,CAACA,UAAUA,GAAGA,CAACA,CAACA;IAC9CA,+BAAoBA,CAACA,SAASA,CAACA,OAAOA,GAAGA,UAASA,KAAaA;QAC3D,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;YACZ,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC;YAC/B,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,wBAAwB,CAAC;QACjD,CAAC;IACL,CAAC,CAAAA;IAEUA,8BAAmBA,GAAkCA,UAASA,IAAYA,EAAEA,UAAwBA,EAAEA,UAA4BA;QACzI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;YAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QAAC,CAAC;QACjC,IAAI,CAAC,UAAU,GAAG,UAAU,EAC5B,IAAI,CAAC,UAAU,GAAG,UAAU,EAC5B,UAAU,CAAC,MAAM,GAAG,IAAI,EACxB,UAAU,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAC7C,CAAC,CAACA;IACFA,8BAAmBA,CAACA,SAASA,CAACA,IAAIA,GAAGA,uBAAwBA,CAACA;IAC9DA,8BAAmBA,CAACA,SAASA,CAACA,UAAUA,GAAGA,CAACA,CAACA;IAC7CA,8BAAmBA,CAACA,SAASA,CAACA,OAAOA,GAAGA,UAASA,KAAaA;QAC1D,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;YACZ,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC;YAC/B,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC;QACnC,CAAC;IACL,CAAC,CAAAA;IAEUA,2BAAgBA,GAA+BA,UAASA,IAAYA,EAAEA,cAA4BA,EAAEA,gBAAoCA;QAC/I,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;YAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QAAC,CAAC;QACjC,IAAI,CAAC,cAAc,GAAG,cAAc,EACpC,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,EACxC,cAAc,CAAC,MAAM,GAAG,IAAI,EAC5B,gBAAgB,CAAC,MAAM,GAAG,IAAI,CAAC;IACnC,CAAC,CAACA;IACFA,2BAAgBA,CAACA,SAASA,CAACA,IAAIA,GAAGA,oBAAqBA,CAACA;IACxDA,2BAAgBA,CAACA,SAASA,CAACA,UAAUA,GAAGA,CAACA,CAACA;IAC1CA,2BAAgBA,CAACA,SAASA,CAACA,OAAOA,GAAGA,UAASA,KAAaA;QACvD,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;YACZ,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC;YACnC,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC;QACzC,CAAC;IACL,CAAC,CAAAA;IAEUA,0BAAeA,GAA8BA,UAASA,IAAYA,EAAEA,cAA4BA,EAAEA,SAAyBA,EAAEA,UAAwBA,EAAEA,aAA2BA,EAAEA,cAAoCA,EAAEA,iBAA0CA;QAC3Q,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;YAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QAAC,CAAC;QACjC,IAAI,CAAC,cAAc,GAAG,cAAc,EACpC,IAAI,CAAC,SAAS,GAAG,SAAS,EAC1B,IAAI,CAAC,UAAU,GAAG,UAAU,EAC5B,IAAI,CAAC,aAAa,GAAG,aAAa,EAClC,IAAI,CAAC,cAAc,GAAG,cAAc,EACpC,IAAI,CAAC,iBAAiB,GAAG,iBAAiB,EAC1C,cAAc,IAAI,CAAC,cAAc,CAAC,MAAM,GAAG,IAAI,CAAC,EAChD,SAAS,CAAC,MAAM,GAAG,IAAI,EACvB,UAAU,CAAC,MAAM,GAAG,IAAI,EACxB,aAAa,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,IAAI,CAAC,EAC9C,cAAc,IAAI,CAAC,cAAc,CAAC,MAAM,GAAG,IAAI,CAAC,EAChD,iBAAiB,IAAI,CAAC,iBAAiB,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAC3D,CAAC,CAACA;IACFA,0BAAeA,CAACA,SAASA,CAACA,IAAIA,GAAGA,mBAAoBA,CAACA;IACtDA,0BAAeA,CAACA,SAASA,CAACA,UAAUA,GAAGA,CAACA,CAACA;IACzCA,0BAAeA,CAACA,SAASA,CAACA,OAAOA,GAAGA,UAASA,KAAaA;QACtD,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;YACZ,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC;YACnC,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC;YAC9B,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC;YAC/B,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC;YAClC,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC;YACnC,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC;QAC1C,CAAC;IACL,CAAC,CAAAA;IAEUA,4BAAiBA,GAAgCA,UAASA,IAAYA,EAAEA,YAAiCA,EAAEA,iBAA0CA;QAC5J,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;YAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QAAC,CAAC;QACjC,IAAI,CAAC,YAAY,GAAG,YAAY,EAChC,IAAI,CAAC,iBAAiB,GAAG,iBAAiB,EAC1C,YAAY,CAAC,MAAM,GAAG,IAAI,EAC1B,iBAAiB,IAAI,CAAC,iBAAiB,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAC3D,CAAC,CAACA;IACFA,4BAAiBA,CAACA,SAASA,CAACA,IAAIA,GAAGA,qBAAsBA,CAACA;IAC1DA,4BAAiBA,CAACA,SAASA,CAACA,UAAUA,GAAGA,CAACA,CAACA;IAC3CA,4BAAiBA,CAACA,SAASA,CAACA,OAAOA,GAAGA,UAASA,KAAaA;QACxD,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;YACZ,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC;YACjC,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC;QAC1C,CAAC;IACL,CAAC,CAAAA;IAEUA,+BAAoBA,GAAmCA,UAASA,IAAYA,EAAEA,UAAwBA,EAAEA,IAAiBA;QAChI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;YAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QAAC,CAAC;QACjC,IAAI,CAAC,UAAU,GAAG,UAAU,EAC5B,IAAI,CAAC,IAAI,GAAG,IAAI,EAChB,UAAU,CAAC,MAAM,GAAG,IAAI,EACxB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;IACvB,CAAC,CAACA;IACFA,+BAAoBA,CAACA,SAASA,CAACA,IAAIA,GAAGA,wBAAyBA,CAACA;IAChEA,+BAAoBA,CAACA,SAASA,CAACA,UAAUA,GAAGA,CAACA,CAACA;IAC9CA,+BAAoBA,CAACA,SAASA,CAACA,OAAOA,GAAGA,UAASA,KAAaA;QAC3D,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;YACZ,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC;YAC/B,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;QAC7B,CAAC;IACL,CAAC,CAAAA;IAEUA,yBAAcA,GAAmCA,UAASA,IAAYA,EAAEA,sBAAoCA,EAAEA,UAA6BA;QAClJ,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;YAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QAAC,CAAC;QACjC,IAAI,CAAC,sBAAsB,GAAG,sBAAsB,EACpD,IAAI,CAAC,UAAU,GAAG,UAAU,EAC5B,sBAAsB,CAAC,MAAM,GAAG,IAAI,EACpC,UAAU,CAAC,MAAM,GAAG,IAAI,CAAC;IAC7B,CAAC,CAACA;IACFA,yBAAcA,CAACA,SAASA,CAACA,IAAIA,GAAGA,wBAAyBA,CAACA;IAC1DA,yBAAcA,CAACA,SAASA,CAACA,UAAUA,GAAGA,CAACA,CAACA;IACxCA,yBAAcA,CAACA,SAASA,CAACA,OAAOA,GAAGA,UAASA,KAAaA;QACrD,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;YACZ,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,sBAAsB,CAAC;YAC3C,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC;QACnC,CAAC;IACL,CAAC,CAAAA;IAEUA,qCAA0BA,GAAyCA,UAASA,IAAYA,EAAEA,gBAA8BA,EAAEA,UAA6BA,EAAEA,iBAA+BA;QAC/L,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;YAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QAAC,CAAC;QACjC,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,EACxC,IAAI,CAAC,UAAU,GAAG,UAAU,EAC5B,IAAI,CAAC,iBAAiB,GAAG,iBAAiB,EAC1C,gBAAgB,CAAC,MAAM,GAAG,IAAI,EAC9B,UAAU,CAAC,MAAM,GAAG,IAAI,EACxB,iBAAiB,CAAC,MAAM,GAAG,IAAI,CAAC;IACpC,CAAC,CAACA;IACFA,qCAA0BA,CAACA,SAASA,CAACA,IAAIA,GAAGA,8BAA+BA,CAACA;IAC5EA,qCAA0BA,CAACA,SAASA,CAACA,UAAUA,GAAGA,CAACA,CAACA;IACpDA,qCAA0BA,CAACA,SAASA,CAACA,OAAOA,GAAGA,UAASA,KAAaA;QACjE,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;YACZ,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC;YACrC,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC;YAC/B,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC;QAC1C,CAAC;IACL,CAAC,CAAAA;IAEUA,mCAAwBA,GAAuCA,UAASA,IAAYA,EAAEA,YAAiCA,EAAEA,UAAwBA,EAAEA,UAA6BA;QACvL,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;YAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QAAC,CAAC;QACjC,IAAI,CAAC,YAAY,GAAG,YAAY,EAChC,IAAI,CAAC,UAAU,GAAG,UAAU,EAC5B,IAAI,CAAC,UAAU,GAAG,UAAU,EAC5B,YAAY,CAAC,MAAM,GAAG,IAAI,EAC1B,UAAU,CAAC,MAAM,GAAG,IAAI,EACxB,UAAU,CAAC,MAAM,GAAG,IAAI,CAAC;IAC7B,CAAC,CAACA;IACFA,mCAAwBA,CAACA,SAASA,CAACA,IAAIA,GAAGA,4BAA6BA,CAACA;IACxEA,mCAAwBA,CAACA,SAASA,CAACA,UAAUA,GAAGA,CAACA,CAACA;IAClDA,mCAAwBA,CAACA,SAASA,CAACA,OAAOA,GAAGA,UAASA,KAAaA;QAC/D,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;YACZ,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC;YACjC,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC;YAC/B,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC;QACnC,CAAC;IACL,CAAC,CAAAA;IAEUA,wCAA6BA,GAA4CA,UAASA,IAAYA,EAAEA,cAA4BA,EAAEA,cAA4BA,EAAEA,aAA2BA,EAAEA,eAA6BA;QAC7N,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;YAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QAAC,CAAC;QACjC,IAAI,CAAC,cAAc,GAAG,cAAc,EACpC,IAAI,CAAC,cAAc,GAAG,cAAc,EACpC,IAAI,CAAC,aAAa,GAAG,aAAa,EAClC,IAAI,CAAC,eAAe,GAAG,eAAe,EACtC,cAAc,CAAC,MAAM,GAAG,IAAI,EAC5B,cAAc,CAAC,MAAM,GAAG,IAAI,EAC5B,aAAa,CAAC,MAAM,GAAG,IAAI,EAC3B,eAAe,CAAC,MAAM,GAAG,IAAI,CAAC;IAClC,CAAC,CAACA;IACFA,wCAA6BA,CAACA,SAASA,CAACA,IAAIA,GAAGA,iCAAkCA,CAACA;IAClFA,wCAA6BA,CAACA,SAASA,CAACA,UAAUA,GAAGA,CAACA,CAACA;IACvDA,wCAA6BA,CAACA,SAASA,CAACA,OAAOA,GAAGA,UAASA,KAAaA;QACpE,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;YACZ,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC;YACnC,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC;YACnC,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC;YAClC,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC;QACxC,CAAC;IACL,CAAC,CAAAA;IAEUA,0CAA+BA,GAA8CA,UAASA,IAAYA,EAAEA,UAAuBA;QAClI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;YAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QAAC,CAAC;QACjC,IAAI,CAAC,UAAU,GAAG,UAAU,EAC5B,UAAU,CAAC,MAAM,GAAG,IAAI,CAAC;IAC7B,CAAC,CAACA;IACFA,0CAA+BA,CAACA,SAASA,CAACA,IAAIA,GAAGA,mCAAoCA,CAACA;IACtFA,0CAA+BA,CAACA,SAASA,CAACA,UAAUA,GAAGA,CAACA,CAACA;IACzDA,0CAA+BA,CAACA,SAASA,CAACA,OAAOA,GAAGA,UAASA,KAAaA;QACtE,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;YACZ,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC;QACnC,CAAC;IACL,CAAC,CAAAA;AACLA,CAACA,EAh4DM,UAAU,KAAV,UAAU,QAg4DhB;ACh4DD,IAAO,UAAU,CAgwDhB;AAhwDD,WAAO,UAAU,EAAC,CAAC;IACJA,gCAAqBA,GAAWA,CAACA,CAACA;IAE7CA,IAAaA,UAAUA;QAanB8gE,SAbSA,UAAUA,CAaPA,UAA4BA,EAC5BA,aAAsBA,EACtBA,WAAyBA,EACzBA,QAAgBA,EACTA,IAAiBA,EACxBA,eAAgCA;YADzBC,SAAIA,GAAJA,IAAIA,CAAaA;YAb5BA,oBAAeA,GAAiBA,SAASA,CAACA;YAe9CA,IAAIA,CAACA,WAAWA,GAAGA,UAAUA,CAACA;YAC9BA,IAAIA,CAACA,cAAcA,GAAGA,aAAaA,CAACA;YACpCA,IAAIA,CAACA,kBAAkBA,GAAGA,WAAWA,CAACA;YACtCA,IAAIA,CAACA,SAASA,GAAGA,QAAQA,CAACA;YAC1BA,IAAIA,CAACA,QAAQA,GAAGA,IAAIA,CAACA,OAAOA,EAAEA,CAACA;YAC/BA,IAAIA,CAACA,gBAAgBA,GAAGA,eAAeA,CAACA;YAExCA,UAAUA,CAACA,UAAUA,GAAGA,IAAIA,CAACA;QACjCA,CAACA;QAEMD,+BAAUA,GAAjBA;YACIE,MAAMA,CAACA,IAAIA,CAACA,WAAWA,CAACA;QAC5BA,CAACA;QAEMF,kCAAaA,GAApBA;YACIG,MAAMA,CAACA,IAAIA,CAACA,cAAcA,CAACA;QAC/BA,CAACA;QAEOH,uCAAkBA,GAA1BA;YACII,EAAEA,CAACA,CAACA,IAAIA,CAACA,kBAAkBA,CAACA,MAAMA,GAAGA,CAACA,CAACA,CAACA,CAACA;gBACrCA,MAAMA,CAACA,IAAIA,CAACA,kBAAkBA,CAACA;YACnCA,CAACA;YAGDA,IAAIA,WAAWA,GAAiBA,EAAEA,CAACA;YACnCA,2BAAgBA,CAACA,IAAIA,oBAAoBA,CAACA,IAAIA,EAAEA,WAAWA,CAACA,EAAEA,IAAIA,CAACA,UAAUA,EAAEA,CAACA,CAACA;YAEjFA,MAAMA,CAACA,WAAWA,CAACA;QACvBA,CAACA;QAEMJ,gCAAWA,GAAlBA;YACIK,EAAEA,CAACA,CAACA,CAACA,IAAIA,CAACA,eAAeA,CAACA,CAACA,CAACA;gBACxBA,IAAIA,KAAKA,GAAGA,IAAIA,IAAIA,EAAEA,CAACA,OAAOA,EAAEA,CAACA;gBACjCA,IAAIA,CAACA,eAAeA,GAAGA,IAAIA,CAACA,kBAAkBA,EAAEA,CAACA;gBACjDA,gCAAqBA,IAAIA,IAAIA,IAAIA,EAAEA,CAACA,OAAOA,EAAEA,GAAGA,KAAKA,CAACA;YAC1DA,CAACA;YAEDA,MAAMA,CAACA,IAAIA,CAACA,eAAeA,CAACA;QAChCA,CAACA;QAEML,6BAAQA,GAAfA;YACIM,MAAMA,CAACA,IAAIA,CAACA,SAASA,CAACA;QAC1BA,CAACA;QAEMN,4BAAOA,GAAdA;YACIO,MAAMA,CAACA,IAAIA,CAACA,QAAQA,CAACA;QACzBA,CAACA;QAEMP,oCAAeA,GAAtBA;YACIQ,MAAMA,CAACA,IAAIA,CAACA,gBAAgBA,CAACA;QACjCA,CAACA;QAEOR,wCAAmBA,GAA3BA;YAGIS,IAAIA,UAAUA,GAAGA,oBAAoBA,CAACA,IAAIA,CAACA,CAACA;YAC5CA,IAAIA,aAAaA,GAAGA,UAAUA,CAACA,aAAaA,CAACA,IAAIA,CAACA,IAAIA,CAACA,CAACA;YAExDA,IAAIA,CAACA,iBAAiBA,GAAGA,CAACA,CAACA,iCAAiCA,CAACA,IAAIA,EAAEA,UAAUA,CAACA,CAACA;YAE/EA,IAAIA,eAAeA,GAAaA,EAAEA,CAACA;YACnCA,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,aAAaA,CAACA,KAAKA,EAAEA,EAAEA,CAACA,GAAGA,CAACA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;gBACpDA,IAAIA,MAAMA,GAAGA,aAAaA,CAACA,cAAcA,CAACA,CAACA,CAACA,CAACA;gBAC7CA,EAAEA,CAACA,CAACA,MAAMA,CAACA,SAASA,EAAEA,CAACA,CAACA,CAACA;oBACrBA,IAAIA,aAAaA,GAAGA,IAAIA,CAACA,gBAAgBA,CAACA,MAAMA,CAACA,QAAQA,EAAEA,CAACA,CAACA;oBAC7DA,EAAEA,CAACA,CAACA,aAAaA,CAACA,CAACA,CAACA;wBAChBA,eAAeA,CAACA,IAAIA,CAACA,aAAaA,CAACA,CAACA;oBACxCA,CAACA;gBACLA,CAACA;YACLA,CAACA;YAEDA,IAAIA,CAACA,gBAAgBA,GAAGA,eAAeA,CAACA;QAC5CA,CAACA;QAEOT,qCAAgBA,GAAxBA,UAAyBA,OAAeA;YACpCU,IAAIA,kBAAkBA,GAAGA,kDAAkDA,CAACA;YAC5EA,IAAIA,KAAKA,GAAGA,kBAAkBA,CAACA,IAAIA,CAACA,OAAOA,CAACA,CAACA;YAC7CA,MAAMA,CAACA,KAAKA,GAAGA,KAAKA,CAACA,CAACA,CAACA,GAAGA,SAASA,CAACA;QACxCA,CAACA;QAEMV,qCAAgBA,GAAvBA;YAIIW,EAAEA,CAACA,CAACA,IAAIA,CAACA,iBAAiBA,KAAKA,SAASA,CAACA,CAACA,CAACA;gBAEvCA,IAAIA,CAACA,mBAAmBA,EAAEA,CAACA;gBAC3BA,gBAAKA,CAACA,MAAMA,CAACA,IAAIA,CAACA,iBAAiBA,KAAKA,SAASA,CAACA,CAACA;YACvDA,CAACA;YAEDA,MAAMA,CAACA,IAAIA,CAACA,iBAAiBA,CAACA;QAClCA,CAACA;QAEMX,oCAAeA,GAAtBA;YACIY,EAAEA,CAACA,CAACA,IAAIA,CAACA,gBAAgBA,KAAKA,SAASA,CAACA,CAACA,CAACA;gBACtCA,IAAIA,CAACA,mBAAmBA,EAAEA,CAACA;gBAC3BA,gBAAKA,CAACA,MAAMA,CAACA,IAAIA,CAACA,gBAAgBA,KAAKA,SAASA,CAACA,CAACA;YACtDA,CAACA;YAEDA,MAAMA,CAACA,IAAIA,CAACA,gBAAgBA,CAACA;QACjCA,CAACA;QACLZ,iBAACA;IAADA,CAACA,AAxHD9gE,IAwHCA;IAxHYA,qBAAUA,GAAVA,UAwHZA,CAAAA;IAEDA,IAAMA,oBAAoBA;QAAS2hE,UAA7BA,oBAAoBA,UAAqBA;QAM3CA,SANEA,oBAAoBA,CAMFA,UAAsBA,EACtBA,WAAyBA;YACzCC,iBAAOA,CAACA;YAFQA,eAAUA,GAAVA,UAAUA,CAAYA;YACtBA,gBAAWA,GAAXA,WAAWA,CAAcA;YANrCA,yBAAoBA,GAAYA,KAAKA,CAACA;YACtCA,YAAOA,GAAYA,KAAKA,CAACA;YACzBA,8BAAyBA,GAAYA,KAAKA,CAACA;YAM/CA,IAAIA,CAACA,IAAIA,GAAGA,UAAUA,CAACA,IAAIA,CAACA;QAChCA,CAACA;QAEOD,6CAAcA,GAAtBA,UAAuBA,OAAuBA,EAAEA,aAAqBA,EAAEA,IAAYA;YAC/EE,MAAMA,CAACA,IAAIA,CAACA,gBAAgBA,CAACA,gBAAKA,CAACA,OAAOA,EAAEA,IAAIA,CAACA,IAAIA,CAACA,EAAEA,gBAAKA,CAACA,OAAOA,CAACA,EAAEA,aAAaA,EAAEA,IAAIA,CAACA,CAACA;QACjGA,CAACA;QAEOF,+CAAgBA,GAAxBA,UAAyBA,KAAaA,EAAEA,MAAcA,EAAEA,aAAqBA,EAAEA,IAAYA;YACvFG,IAAIA,CAACA,WAAWA,CAACA,IAAIA,CAACA,IAAIA,qBAAUA,CAChCA,IAAIA,CAACA,UAAUA,CAACA,QAAQA,EAAEA,EAAEA,IAAIA,CAACA,UAAUA,CAACA,OAAOA,EAAEA,EAAEA,KAAKA,EAAEA,MAAMA,EAAEA,aAAaA,EAAEA,IAAIA,CAACA,CAACA,CAACA;YAChGA,MAAMA,CAACA,IAAIA,CAACA;QAChBA,CAACA;QAEMH,+CAAgBA,GAAvBA,UAAwBA,IAAuBA;YAC3CI,EAAEA,CAACA,CAACA,IAAIA,CAACA,iCAAiCA,CAACA,IAAIA,CAACA,IAC5CA,IAAIA,CAACA,iCAAiCA,CAACA,IAAIA,EAAEA,IAAIA,CAACA,UAAUA,CAACA,CAACA,CAACA,CAACA;gBAChEA,MAAMA,CAACA;YACXA,CAACA;YAEDA,gBAAKA,CAACA,gBAAgBA,YAACA,IAAIA,CAACA,CAACA;QACjCA,CAACA;QAEOJ,gEAAiCA,GAAzCA,UAA0CA,IAAuBA;YAC7DK,EAAEA,CAACA,CAACA,IAAIA,CAACA,cAAcA,CAACA,CAACA,CAACA;gBACtBA,MAAMA,CAACA,IAAIA,CAACA,cAAcA,CAACA,IAAIA,CAACA,cAAcA,CAACA,UAAUA,EAAEA,yBAAcA,CAACA,oDAAoDA,CAACA,CAACA;YACpIA,CAACA;YAEDA,MAAMA,CAACA,KAAKA,CAACA;QACjBA,CAACA;QAEOL,sDAAuBA,GAA/BA,UAAgCA,IAAyBA;YACrDM,IAAIA,qBAAqBA,GAAGA,KAAKA,CAACA;YAClCA,IAAIA,cAAcA,GAAGA,4BAAiBA,CAACA,IAAIA,CAACA,UAAUA,CAACA,CAACA;YAExDA,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,cAAcA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;gBACtCA,IAAIA,SAASA,GAAGA,yBAAcA,CAACA,IAAIA,CAACA,UAAUA,EAAEA,CAACA,CAACA,CAACA;gBAEnDA,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,IAAIA,CAACA,cAAcA,CAACA,SAASA,EAAEA,yBAAcA,CAACA,iDAAiDA,CAACA,CAACA;oBAC5GA,CAACA;oBAEDA,EAAEA,CAACA,CAACA,SAASA,CAACA,aAAaA,CAACA,CAACA,CAACA;wBAC1BA,MAAMA,CAACA,IAAIA,CAACA,cAAcA,CAACA,SAASA,EAAEA,yBAAcA,CAACA,mCAAmCA,CAACA,CAACA;oBAC9FA,CAACA;oBAEDA,EAAEA,CAACA,CAACA,SAASA,CAACA,iBAAiBA,CAACA,CAACA,CAACA;wBAC9BA,MAAMA,CAACA,IAAIA,CAACA,cAAcA,CAACA,SAASA,EAAEA,yBAAcA,CAACA,2CAA2CA,CAACA,CAACA;oBACtGA,CAACA;gBACLA,CAACA;gBACDA,IAAIA,CAACA,EAAEA,CAACA,CAACA,SAASA,CAACA,aAAaA,IAAIA,SAASA,CAACA,iBAAiBA,CAACA,CAACA,CAACA;oBAC9DA,qBAAqBA,GAAGA,IAAIA,CAACA;oBAE7BA,EAAEA,CAACA,CAACA,SAASA,CAACA,aAAaA,IAAIA,SAASA,CAACA,iBAAiBA,CAACA,CAACA,CAACA;wBACzDA,MAAMA,CAACA,IAAIA,CAACA,cAAcA,CAACA,SAASA,EAAEA,yBAAcA,CAACA,mDAAmDA,CAACA,CAACA;oBAC9GA,CAACA;gBACLA,CAACA;gBACDA,IAAIA,CAACA,CAACA;oBACFA,EAAEA,CAACA,CAACA,qBAAqBA,CAACA,CAACA,CAACA;wBACxBA,MAAMA,CAACA,IAAIA,CAACA,cAAcA,CAACA,SAASA,EAAEA,yBAAcA,CAACA,wDAAwDA,CAACA,CAACA;oBACnHA,CAACA;gBACLA,CAACA;YACLA,CAACA;YAEDA,MAAMA,CAACA,KAAKA,CAACA;QACjBA,CAACA;QAEON,mEAAoCA,GAA5CA,UAA6CA,SAA0BA;YACnEO,EAAEA,CAACA,CAACA,SAASA,CAACA,SAASA,CAACA,MAAMA,GAAGA,CAACA,CAACA,CAACA,CAACA;gBACjCA,IAAIA,SAASA,GAAGA,SAASA,CAACA,SAASA,CAACA;gBAEpCA,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,SAASA,CAACA,MAAMA,EAAEA,CAACA,GAAGA,CAACA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;oBAC/CA,IAAIA,QAAQA,GAAGA,SAASA,CAACA,CAACA,CAACA,CAACA;oBAE5BA,EAAEA,CAACA,CAACA,IAAIA,CAACA,mCAAmCA,CAACA,QAAQA,EAAEA,CAACA,CAACA,CAACA,CAACA,CAACA;wBACxDA,MAAMA,CAACA,IAAIA,CAACA;oBAChBA,CAACA;gBACLA,CAACA;YACLA,CAACA;YAEDA,MAAMA,CAACA,KAAKA,CAACA;QACjBA,CAACA;QAEOP,kEAAmCA,GAA3CA,UAA4CA,QAAsBA,EAAEA,aAAqBA;YACrFQ,EAAEA,CAACA,CAACA,CAACA,sBAAWA,CAACA,uBAAuBA,CAACA,QAAQA,CAACA,IAAIA,CAACA,CAACA,CAACA,CAACA;gBACtDA,MAAMA,CAACA,IAAIA,CAACA,cAAcA,CAACA,QAAQA,EAAEA,yBAAcA,CAACA,wCAAwCA,EAAEA,CA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ACA,UAAUA,EAAEA,CAACA,CAACA,CAACA;YAEnDA,EAAEA,CAACA,CAACA,SAASA,CAACA,cAAcA,CAACA,CAACA,CAACA;gBAC3BA,MAAMA,CAACA,IAAIA,CAACA,cAAcA,CAACA,SAASA,EAAEA,yBAAcA,CAACA,4CAA4CA,CAACA,CAACA;YACvGA,CAACA;YACDA,IAAIA,CAACA,EAAEA,CAACA,CAACA,SAASA,CAACA,SAASA,CAACA,MAAMA,GAAGA,CAACA,CAACA,CAACA,CAACA;gBACtCA,MAAMA,CAACA,IAAIA,CAACA,cAAcA,CAACA,SAASA,EAAEA,yBAAcA,CAACA,+CAA+CA,CAACA,CAACA;YAC1GA,CAACA;YACDA,IAAIA,CAACA,EAAEA,CAACA,CAACA,SAASA,CAACA,aAAaA,CAACA,CAACA,CAACA;gBAC/BA,MAAMA,CAACA,IAAIA,CAACA,cAAcA,CAACA,SAASA,EAAEA,yBAAcA,CAACA,qDAAqDA,CAACA,CAACA;YAChHA,CAACA;YACDA,IAAIA,CAACA,EAAEA,CAACA,CAACA,SAASA,CAACA,iBAAiBA,CAACA,CAACA,CAACA;gBACnCA,MAAMA,CAACA,IAAIA,CAACA,cAAcA,CAACA,SAASA,EAAEA,yBAAcA,CAACA,oDAAoDA,CAACA,CAACA;YAC/GA,CAACA;YACDA,IAAIA,CAACA,EAAEA,CAACA,CAACA,CAACA,SAASA,CAACA,cAAcA,CAACA,CAACA,CAACA;gBACjCA,MAAMA,CAACA,IAAIA,CAACA,cAAcA,CAACA,SAASA,EAAEA,yBAAcA,CAACA,qDAAqDA,CAACA,CAACA;YAChHA,CAACA;YACDA,IAAIA,CAACA,EAAEA,CAACA,CAACA,SAASA,CAACA,cAAcA,CAACA,IAAIA,CAACA,IAAIA,KAAKA,sBAAwBA,IAC/DA,SAASA,CAACA,cAAcA,CAACA,IAAIA,CAACA,IAAIA,KAAKA,sBAAwBA,CAACA,CAACA,CAACA;gBACvEA,MAAMA,CAACA,IAAIA,CAACA,cAAcA,CAACA,SAASA,EAAEA,yBAAcA,CAACA,uDAAuDA,CAACA,CAACA;YAClHA,CAACA;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,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAIA,CAACA;QACtkGA,gCAAwBA,GAAIA,CAACA,GAAGA,EAACA,GAAGA,EAAGA,GAAGA,EAACA,GAAGA,EAAGA,GAAGA,EAACA,GAAGA,EAAGA,GAAGA,EAACA,GAAGA,EAAGA,GAAGA,EAACA,GAAGA,EAAGA,GAAGA,EAACA,GAAGA,EAAGA,GAAGA,EAACA,GAAGA,EAAGA,GAAGA,EAACA,GAAGA,EAAGA,GAAGA,EAACA,GAAGA,EAAGA,GAAGA,EAACA,GAAGA,EAAGA,GAAGA,EAACA,GAAGA,EAAGA,GAAGA,EAACA,GAAGA,EAAGA,GAAGA,EAACA,GAAGA,EAAGA,GAAGA,EAACA,GAAGA,EAAGA,GAAGA,EAACA,GAAGA,EAAGA,GAAGA,EAACA,GAAGA,EAAGA,GAAGA,EAACA,GAAGA,EAAGA,GAAGA,EAACA,GAAGA,EAAGA,GAAGA,EAACA,GAAGA,EAAGA,GAAGA,EAACA,GAAGA,EAAGA,GAAGA,EAACA,GAAGA,EAAGA,GAAGA,EAACA,GAAGA,EAAGA,GAAGA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAIA,CAACA;QAwBllIA,iCAAyBA,GAAGA,CAACA,GAAGA,EAACA,GAAGA,EAAGA,GAAGA,EAACA,GAAGA,EAAGA,GAAGA,EAACA,GAAGA,EAAGA,GAAGA,EAACA,GAAGA,EAAGA,GAAGA,EAACA,GAAGA,EAAGA,GAAGA,EAACA,GAAGA,EAAGA,GAAGA,EAACA,GAAGA,EAAGA,GAAGA,EAACA,GAAGA,EAAGA,GAAGA,EAACA,GAAGA,EAAGA,GAAGA,EAACA,GAAGA,EAAGA,GAAGA,EAACA,GAAGA,EAAGA,GAAGA,EAACA,GAAGA,EAAGA,GAAGA,EAACA,GAAGA,EAAGA,GAAGA,EAACA,GAAGA,EAAGA,GAAGA,EAACA,GAAGA,EAAGA,GAAGA,EAACA,GAAGA,EAAGA,GAAGA,EAACA,GAAGA,EAAGA,GAAGA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAIA,CAACA;QAC5iJA,gCAAwBA,GAAIA,CAACA,GAAGA,EAACA,GAAGA,EAAGA,GAAGA,EAACA,GAAGA,EAAGA,GAAGA,EAACA,GAAGA,EAAGA,GAAGA,EAACA,GAAGA,EAAGA,GAAGA,EAACA,GAAGA,EAAGA,GAAGA,EAACA,GAAGA,EAAGA,GAAGA,EAACA,GAAGA,EAAGA,GAAGA,EAACA,GAAGA,EAAGA,GAAGA,EAACA,GAAGA,EAAGA,GAAGA,EAACA,GAAGA,EAAGA,GAAGA,EAACA,GAAGA,EAAGA,GAAGA,EAACA,GAAGA,EAAGA,GAAGA,EAACA,GAAGA,EAAGA,GAAGA,EAACA,GAAGA,EAAGA,GAAGA,EAACA,GAAGA,EAAGA,GAAGA,EAACA,GAAGA,EAAGA,GAAGA,EAACA,GAAGA,EAAGA,GAAGA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,IAAIA,EAACA,IAAIA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAGA,KAAKA,EAACA,KAAKA,EAAIA,CAACA;QAuDjvKA,cAACA;IAADA,CAACA,AAtGDnqE,IAsGCA;IAtGYA,kBAAOA,GAAPA,OAsGZA,CAAAA;AACLA,CAACA,EAxGM,UAAU,KAAV,UAAU,QAwGhB;AExGD,IAAO,UAAU,CA8hChB;AA9hCD,WAAO,UAAU;IAACA,IAAAA,aAAaA,CA8hC9BA;IA9hCiBA,WAAAA,aAAaA,EAACA,CAACA;QAC7BwqE,SAAgBA,WAAWA,CAACA,IAAiBA,EAAEA,gBAAiCA;YAAjCC,gCAAiCA,GAAjCA,yBAAiCA;YAC5EA,IAAIA,IAAIA,GAAGA,IAAIA,iBAAiBA,CAACA,gBAAgBA,CAACA,CAACA;YACnDA,2BAAgBA,CAACA,IAAIA,EAAEA,IAAIA,CAACA,CAACA;YAC7BA,MAAMA,CAACA,IAAIA,CAACA,MAAMA,CAACA,IAAIA,CAACA,EAAEA,CAACA,CAACA;QAChCA,CAACA;QAJeD,yBAAWA,GAAXA,WAIfA,CAAAA;QAEDA,IAAMA,iBAAiBA;YAKnBE,SALEA,iBAAiBA,CAKCA,gBAAwBA;gBAAxBC,qBAAgBA,GAAhBA,gBAAgBA,CAAQA;gBAJrCA,WAAMA,GAAaA,EAAEA,CAACA;gBACrBA,iBAAYA,GAAaA,EAAEA,CAACA;gBAC5BA,gBAAWA,GAAWA,CAACA,CAACA;YAGhCA,CAACA;YAEOD,6DAAiCA,GAAzCA,UAA0CA,QAA8BA,EAAEA,QAA8BA;gBACpGE,EAAEA,CAACA,CAACA,CAACA,QAAQA,IAAIA,CAACA,QAAQA,CAACA,CAACA,CAACA;oBACzBA,MAAMA,CAACA,CAACA,CAACA;gBACbA,CAACA;gBAEDA,EAAEA,CAACA,CAACA,oBAASA,CAACA,QAAQA,CAACA,CAACA,IAAIA,KAAKA,wBAA0BA,CAACA,CAACA,CAACA;oBAC1DA,MAAMA,CAACA,CAACA,CAACA;gBACbA,CAACA;gBAEDA,MAAMA,CAACA,CAACA,CAACA;YACbA,CAACA;YAEOF,4DAAgCA,GAAxCA,UAAyCA,QAA6BA,EAAEA,QAA6BA;gBACjGG,EAAEA,CAACA,CAACA,CAACA,QAAQA,IAAIA,CAACA,QAAQA,CAACA,CAACA,CAACA;oBACzBA,MAAMA,CAACA,CAACA,CAACA;gBACbA,CAACA;gBAEDA,MAAMA,CAACA,CAACA,CAACA;YACbA,CAACA;YAEOH,yDAA6BA,GAArCA,UAAsCA,QAA0BA,EAAEA,QAA0BA;gBACxFI,EAAEA,CAACA,CAACA,CAACA,QAAQA,IAAIA,CAACA,QAAQA,CAACA,CAACA,CAACA;oBACzBA,MAAMA,CAACA,CAACA,CAACA;gBACbA,CAACA;gBAEDA,EAAEA,CAACA,CAACA,oBAASA,CAACA,QAAQA,CAACA,CAACA,IAAIA,KAAKA,wBAA0BA,CAACA,CAACA,CAACA;oBAC1DA,MAAMA,CAACA,CAACA,CAACA;gBACbA,CAACA;gBAEDA,MAAMA,CAACA,CAACA,CAACA;YACbA,CAACA;YAEOJ,4DAAgCA,GAAxCA,UAAyCA,QAA6BA,EAAEA,QAA6BA;gBACjGK,EAAEA,CAACA,CAACA,CAACA,QAAQA,IAAIA,CAACA,QAAQA,CAACA,CAACA,CAACA;oBACzBA,MAAMA,CAACA,CAACA,CAACA;gBACbA,CAACA;gBAEDA,EAAEA,CAACA,CAACA,qBAAUA,CAACA,QAAQA,CAACA,UAAUA,CAACA,KAAKA,CAACA,CAACA,CAACA,CAACA;oBACxCA,MAAMA,CAACA,CAACA,CAACA;gBACbA,CAACA;gBAEDA,MAAMA,CAACA,CAACA,CAACA;YACbA,CAACA;YAEOL,uCAAWA,GAAnBA;gBACIM,EAAEA,CAACA,CAACA,IAAIA,CAACA,MAAMA,CAACA,MAAMA,GAAGA,CAACA,CAACA,CAACA,CAACA;oBACzBA,IAAIA,IAAIA,GAAGA,yBAAcA,CAACA,IAAIA,CAACA,IAAIA,CAACA,MAAMA,CAA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B,oBAAoB,EAAE,IAAI;IAC1B,mBAAmB,EAAE,IAAI;IACzB,oBAAoB,EAAE,IAAI;IAC1B,oBAAoB,EAAE,IAAI;IAC1B,oBAAoB,EAAE,IAAI;IAC1B,oBAAoB,EAAE,IAAI;IAC1B,oBAAoB,EAAE,IAAI;IAC1B,oBAAoB,EAAE,IAAI;IAC1B,oBAAoB,EAAE,IAAI;IAC1B,oBAAoB,EAAE,IAAI;IAC1B,oBAAoB,EAAE,IAAI;IAC1B,oBAAoB,EAAE,IAAI;IAC1B,mBAAmB,EAAE,IAAI;IACzB,oBAAoB,EAAE,IAAI;IAC1B,oBAAoB,EAAE,IAAI;IAC1B,oBAAoB,EAAE,IAAI;IAC1B,oBAAoB,EAAE,IAAI;IAC1B,oBAAoB,EAAE,IAAI;IAC1B,oBAAoB,EAAE,IAAI;IAC1B,oBAAoB,EAAE,IAAI;IAC1B,oBAAoB,EAAE,IAAI;IAC1B,oBAAoB,EAAE,IAAI;IAC1B,oBAAoB,EAAE,IAAI;IAC1B,mBAAmB,EAAE,IAAI;IACzB,oBAAoB,EAAE,IAAI;IAC1B,oBAAoB,EAAE,IAAI;IAC1B,oBAAoB,EAAE,IAAI;IAC1B,oBAAoB,EAAE,IAAI;IAC1B,oBAAoB,EAAE,IAAI;IAC1B,oBAAoB,EAAE,IAAI;IAC1B,oBAAoB,EAAE,IAAI;IAC1B,oBAAoB,EAAE,IAAI;IAC1B,oBAAoB,EAAE,IAAI;IAC1B,oBAAoB,EAAE,IAAI;IAC1B,mBAAmB,EAAE,IAAI;IACzB,oBAAoB,EAAE,IAAI;IAC1B,oBAAoB,EAAE,IAAI;IAC1B,oBAAoB,EAAE,IAAI;IAC1B,oBAAoB,EAAE,IAAI;IAC1B,oBAAoB,EAAE,IAAI;IAC1B,oBAAoB,EAAE,IAAI;IAC1B,oBAAoB,EAAE,IAAI;IAC1B,oBAAoB,EAAE,IAAI;IAC1B,oBAAoB,EAAE,IAAI;IAC1B,oBAAoB,EAAE,IAAI;IAC1B,mBAAmB,EAAE,IAAI;IACzB,oBAAoB,EAAE,IAAI;IAC1B,oBAAoB,EAAE,IAAI;IAC1B,oBAAoB,EAAE,IAAI;IAC1B,oBAAoB,EAAE,IAAI;IAC1B,oBAAoB,EAAE,IAAI;IAC1B,mBAAmB,EAAE,IAAI;IACzB,mB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CA,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,UAAUA,CAACA,UAAUA,CAACA,IAAIA,CAACA,EAAEA,CAACA,GAAGA,CAACA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;QAC1DA,IAAIA,KAAKA,GAAGA,UAAUA,CAACA,OAAOA,CAACA,IAAIA,EAAEA,CAACA,CAACA,CAACA;QAExCA,EAAEA,CAACA,CAACA,KAAKA,CAACA,CAACA,CAACA;YACRA,GAAGA,CAACA,CAACA,GAAGA,CAACA,IAAIA,IAAIA,IAAIA,CAACA,CAACA,CAACA;gBACpBA,EAAEA,CAACA,CAACA,SAASA,CAACA,IAAIA,CAACA,KAAKA,SAASA,IAAIA,KAAKA,KAAKA,eAAeA,CAACA,IAAIA,CAACA,CAACA,CAACA,CAACA;oBACnEA,MAAMA,CAACA,IAAIA,CAACA,GAAGA,aAAaA,CAACA,KAAKA,EAAEA,IAAIA,CAACA,CAACA;oBAC1CA,SAASA,CAACA,IAAIA,CAACA,GAAGA,IAAIA,CAACA;oBACvBA,KAAKA,CAACA;gBACVA,CAACA;YACLA,CAACA;QACLA,CAACA;IACLA,CAACA;IAEDA,MAAMA,CAACA,MAAMA,CAACA;AAClBA,CAACA;AAED,SAAS,aAAa,CAAC,OAAkC,EAAE,IAA4B;IACnFC,EAAEA,CAACA,CAACA,OAAOA,KAAKA,SAASA,CAACA,CAACA,CAACA;QACxBA,EAAEA,CAACA,CAACA,UAAUA,CAACA,OAAOA,CAACA,OAAOA,CAACA,CAACA,CAACA,CAACA;YAC9BA,MAAMA,CAACA,WAAWA,CAA0BA,OAAOA,EAAEA,IAAIA,EAAiBA,IAAIA,CAACA,CAACA;QACpFA,CAACA;QACDA,IAAIA,CAACA,EAAEA,CAACA,CAACA,UAAUA,CAACA,MAAMA,CAACA,OAAOA,CAACA,CAACA,CAACA,CAACA;YAClCA,EAAEA,CAACA,CAACA,UAAUA,CAACA,UAAUA,CAACA,OAAOA,CAACA,GAAGA,CAACA,CAACA,CAACA,CAACA;gBACrCA,IAAIA,MAAMA,GAAUA,EAAEA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,OAAQA,CAACA,OAAOA,CAACA,QAAQA,CAACA,GAAGA,CAACA,CAACA,CAACA,CAACA;YAC5CA,UAAUA,CAACA,WAAWA,CAACA,WAAWA,CAACA,SAASA,CAACA,aAAaA,GAAGA,QAAQA,GAAGA,IAAIA,GAAGA,CAACA,CAACA,OAAOA,CAACA,CAACA;QAC9FA,CAACA;QACDA,IAAIA,CAACA,CAACA;YACFA,UAAUA,CAACA,WAAWA,CAACA,WAAWA,CAACA,SAASA,CAACA,CAACA,CAACA,OAAOA,CAACA,CAACA;QAC5DA,CAACA;IACLA,CAACA;IAEOP,0BAAQA,GAAhBA,UACIA,IAAYA,EACZA,MAAkCA;QAFtCQ,iBA4BCA;QAxBGA,IAAIA,SAASA,GAAGA,UAAUA,CAACA,WAAWA,CAACA,SAASA,CAACA,IAAIA,EAAEA,SAASA,EAAEA,EAAEA,SAASA,EAAEA,IAAIA,EAAEA,CAACA,CAACA;QACvFA,IAAIA,QAAQA,GAAGA,CAACA,CAACA;QAEjBA,SAASA,CAACA,OAAOA,CAACA,UAAAA,QAAWA;YACzBA,EAAEA,CAACA,CAACA,YAAYA,KAAKA,SAASA,IAAIA,QAAQA,CAACA,OAAOA,CAACA,YAAYA,CAACA,GAAGA,CAACA,CAACA,CAACA,CAACA;gBACnEA,MAAMA,CAACA;YACXA,CAACA;YAEDA,EAAEA,CAACA,CAACA,QAAQA,GAAGA,GAAGA,KAAKA,CAACA,CAACA,CAACA,CAACA;gBACvBA,UAAUA,CAACA,WAAWA,CAACA,WAAWA,CAACA,KAAKA,CAACA,GAAGA,CAACA,CAACA;YAClDA,CAACA;YAGDA,IAAAA,CAACA;gBACGA,MAAMA,CAACA,QAAQA,CAACA,CAACA;YACrBA,CACAA;YAAAA,KAAKA,CAACA,CAACA,CAACA,CAACA,CAATA,CAACA;gBACGA,KAAIA,CAACA,eAAeA,CAACA,QAAQA,EAAEA,CAACA,CAACA,CAACA;YACtCA,CAACA;YAEDA,QAAQA,EAAEA,CAACA;QACfA,CAACA,CAACA,CAACA;QAEHA,UAAUA,CAACA,WAAWA,CAACA,WAAWA,CAACA,SAASA,CAACA,EAAEA,CAACA,CAACA;IACrDA,CAACA;IAEOR,6BAAWA,GAAnBA,UAAoBA,QAAgBA,EAAEA,MAAWA,EAAEA,OAAwBA,EAAEA,MAAeA,EAAEA,gBAAyBA,EAAEA,QAAiBA;QACtIS,IAAIA,YAAoBA,CAACA;QAEzBA,IAAIA,YAAYA,GAAGA,QAAQA,GAAGA,WAAWA,CAACA;QAC1CA,IAAIA,UAAUA,GAAGA,QAAQA,GAAGA,SAASA,CAACA;QAEtCA,EAAEA,CAACA,CAACA,gBAAgBA,CAACA,CAACA,CAACA;YACnBA,YAAYA,GAAGA,QAAQA,GAAGA,MAAMA,GAAGA,IAAIA,CAACA,SAASA,CAACA,OAAOA,CAACA,MAAMA,CAACA,EAAEA,SAASA,EAAEA,CAACA,CAACA,CAACA;YACjFA,YAAYA,GAAGA,QAAQA,GAAGA,WAAWA,CAACA;YAGtCA,UAAUA,CAACA,WAAWA,CAACA,SAASA,CAACA,YAAYA,EAAEA,YAAYA,EAA0BA,KAAKA,CAACA,CAACA;YAE5FA,EAAEA,CAACA,CAACA,UAAUA,CAACA,WAAWA,CAACA,UAAUA,CAACA,UAAUA,CAACA,CAACA,CAACA,CAACA;gBAChDA,UAAUA,CAACA,WAAWA,CAACA,UAAUA,CAACA,UAAUA,CAACA,CAACA;YAClDA,CAACA;QACLA,CAACA;QACDA,IAAIA,CAACA,EAAEA,CAACA,CAACA,MAAMA,CAACA,CAACA,CAACA;YACdA,YAAYA,GAAGA,QAAQA,GAAGA,MAAMA,GAAGA,IAAIA,CAACA,SAASA,CAACA,OAAOA,CAACA,MAAMA,CAACA,EAAEA,SAASA,EAAEA,CAACA,CAACA,CAACA;YAEjFA,IAAIA,cAAcA,GAAWA,SAASA,CAACA;YACvCA,EAAEA,CAACA,CAACA,CAACA,UAAUA,CAACA,WAAWA,CAACA,UAAUA,CAACA,YAAYA,CAACA,CAACA,CAACA,CAACA;gBACnDA,UAAUA,CAACA,WAAWA,CAACA,SAASA,CAACA,YAAYA,EAAEA,EAAEA,EAAEA,KAAKA,CAACA,CAACA;YAC9DA,CAACA;YACDA,IAAIA,CAACA,CAACA;gBACFA,cAAcA,GAAGA,UAAUA,CAACA,WAAWA,CAACA,QAAQA,CAACA,YAAYA,EAAeA,SAASA,CAACA,CAACA,QAAQA,CAACA;YACpGA,CAACA;YAEDA,EAAEA,CAACA,CAACA,cAAcA,KAAKA,YAAYA,CAACA,CAACA,CAACA;gBAClCA,UAAUA,CAACA,WAAWA,CAACA,WAAWA,CAACA,SAASA,CAACA,WAAWA,GAAGA,UAAUA,CAACA,CAACA;gBACvEA,UAAUA,CAACA,WAAWA,CAACA,SAASA,CAACA,UAAUA,EAAEA,YAAYA,EAA0BA,KAAKA,CAACA,CAACA;YAC9FA,CAACA;YACDA,IAAIA,CAACA,CAACA;gBACFA,EAAEA,CAACA,CAACA,UAAUA,CAACA,WAAWA,CAACA,UAAUA,CAACA,UAAUA,CAACA,CAACA,CAACA,CAACA;oBAChDA,UAAUA,CAACA,WAAWA,CAACA,UAAUA,CAACA,UAAUA,CAACA,CAACA;gBAClDA,CAACA;YACLA,CAACA;QACLA,CAACA;IACLA,CAACA;IAEDT,4BAAUA,GAAVA,UAAWA,QAAgBA,EACvBA,eAAgCA,EACzBA,MAAeA,EACfA,gBAAyBA,EACzBA,QAAiBA;QACxBU,EAAEA,CAACA,CAACA,IAAIA,CAACA,CAACA,CAACA;YACPA,MAAMA,CAACA;QACXA,CAACA;QAEDA,EAAEA,CAACA,CAACA,CAACA,UAAUA,CAACA,eAAeA,CAACA,QAAQA,CAACA,QAAQA,EAAEA,KAAKA,CAACA,IAAIA,CAACA,UAAUA,CAACA,eAAeA,CAACA,QAAQA,CAACA,QAAQA,EAAEA,KAAKA,CAACA,CAACA,CAACA,CAACA;YACjHA,MAAMA,CAACA;QACXA,CAACA;QAEDA,EAAEA,CAACA,CAACA,QAAQA,CAACA,OAAOA,CAACA,YAAYA,CAACA,IAAIA,CAACA,CAACA,CAACA,CAACA;YACtCA,MAAMA,CAACA;QACXA,CAACA;QAEDA,IAAIA,QAAQA,GAAGA,UAAUA,CAACA,WAAWA,CAACA,QAAQA,CAACA,QAAQA,EAAeA,SAASA,CAACA,CAACA,QAAQA,CAACA;QAG1FA,SAASA,IAAIA,QAAQA,CAACA,MAAMA,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"} \ No newline at end of file From 5f2da4afc8219091b3e191cfe5334aebb25a8437 Mon Sep 17 00:00:00 2001 From: Cyrus Najmabadi Date: Wed, 26 Nov 2014 12:06:07 -0800 Subject: [PATCH 102/195] Don't use bitwise operations on this nmber. It may be more than 32 bits. --- src/services/syntax/syntaxElement.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/services/syntax/syntaxElement.ts b/src/services/syntax/syntaxElement.ts index adb30b4d9cc..2a86d2ff959 100644 --- a/src/services/syntax/syntaxElement.ts +++ b/src/services/syntax/syntaxElement.ts @@ -300,7 +300,7 @@ module TypeScript { } if ((info & SyntaxNodeConstants.DataComputed) === 0) { - info |= computeData(element); + info += computeData(element); dataElement.__data = info; } From 65b5d47217718c8a1aeb2be620084c0c6a6fcefc Mon Sep 17 00:00:00 2001 From: Cyrus Najmabadi Date: Thu, 27 Nov 2014 12:41:37 -0800 Subject: [PATCH 103/195] Removing duplication in the parser. --- src/services/syntax/parser.ts | 106 ++++++++++++++++++---------------- 1 file changed, 55 insertions(+), 51 deletions(-) diff --git a/src/services/syntax/parser.ts b/src/services/syntax/parser.ts index ebd1e5eb599..49643fa3e6d 100644 --- a/src/services/syntax/parser.ts +++ b/src/services/syntax/parser.ts @@ -1736,32 +1736,64 @@ module TypeScript.Parser { return false; } + function isDefinitelyNotStatement() { + var _currentToken = currentToken(); + var currentTokenKind = _currentToken.kind; + + // 'async' is a modifier, but can start a statement. So we skip further checks if we + // see it. + if (currentTokenKind !== SyntaxKind.AsyncKeyword) { + switch (currentTokenKind) { + case SyntaxKind.PublicKeyword: + case SyntaxKind.PrivateKeyword: + case SyntaxKind.ProtectedKeyword: + case SyntaxKind.StaticKeyword: + + //if (isModifierKind(currentTokenKind)) { + // ERROR RECOVERY + // None of the modifiers are actually keywords. And they might show up in a real + // statement (i.e. "public();"). However, if we see 'public ' then + // that can't possibly be a statement (and instead will be a class element), + // and we should not parse it out here. Note: if there is a newline between the + // elements, then we should not do this. That's because asi might take effect. i.e.: + // + // public + // foo + // + // Are two legal statements in JS. + // + // Also: 'async a' can start an statement, so we want to check for that as well. + var token1 = peekToken(1); + if (!token1.hasLeadingNewLine() && SyntaxFacts.isIdentifierNameOrAnyKeyword(token1)) { + return true; + } + } + + // Check for common things that might appear where we expect a statement, but which we + // do not want to consume. This can happen when the user does not terminate their + // existing block properly. We don't want to accidently consume these as expression + // below. + if (isInterfaceEnumClassModuleImportOrExport(modifierCount(), _currentToken)) { + return true; + } + } + + return false; + } + function isStatement(modifierCount: number, inErrorRecovery: boolean): boolean { if (SyntaxUtilities.isStatement(currentNode())) { return true; } + if (isDefinitelyNotStatement()) { + return false; + } + var _currentToken = currentToken(); var currentTokenKind = _currentToken.kind; + switch (currentTokenKind) { - // ERROR RECOVERY - case SyntaxKind.PublicKeyword: - case SyntaxKind.PrivateKeyword: - case SyntaxKind.ProtectedKeyword: - case SyntaxKind.StaticKeyword: - // None of the above are actually keywords. And they might show up in a real - // statement (i.e. "public();"). However, if we see 'public ' then - // that can't possibly be a statement (and instead will be a class element), - // and we should not parse it out here. - var token1 = peekToken(1); - if (SyntaxFacts.isIdentifierNameOrAnyKeyword(token1)) { - // Definitely not a statement. - return false; - } - - // Handle this below in 'isExpressionStatement()' - break; - // Common cases that we can immediately assume are statements. case SyntaxKind.IfKeyword: case SyntaxKind.OpenBraceToken: @@ -1779,14 +1811,6 @@ module TypeScript.Parser { return true; } - // Check for common things that might appear where we expect a statement, but which we - // do not want to consume. This can happen when the user does not terminate their - // existing block properly. We don't want to accidently consume these as expression - // below. - if (isInterfaceEnumClassModuleImportOrExport(modifierCount, _currentToken)) { - return false; - } - // More complicated cases. return isLabeledStatement(_currentToken) || isVariableStatement(modifierCount) || @@ -1812,24 +1836,11 @@ module TypeScript.Parser { } function tryParseStatementWorker(_currentToken: ISyntaxToken, currentTokenKind: SyntaxKind, modifierCount: number, inErrorRecovery: boolean): IStatementSyntax { - switch (currentTokenKind) { - // ERROR RECOVERY - case SyntaxKind.PublicKeyword: - case SyntaxKind.PrivateKeyword: - case SyntaxKind.ProtectedKeyword: - case SyntaxKind.StaticKeyword: - // None of the above are actually keywords. And they might show up in a real - // statement (i.e. "public();"). However, if we see 'public ' then - // that can't possibly be a statement (and instead will be a class element), - // and we should not parse it out here. - if (SyntaxFacts.isIdentifierNameOrAnyKeyword(peekToken(1))) { - // Definitely not a statement. - return undefined; - } - else { - break; - } + if (isDefinitelyNotStatement()) { + return undefined; + } + switch (currentTokenKind) { case SyntaxKind.IfKeyword: return parseIfStatement(_currentToken); case SyntaxKind.OpenBraceToken: return parseStatementBlock(); case SyntaxKind.ReturnKeyword: return parseReturnStatement(_currentToken); @@ -1845,14 +1856,7 @@ module TypeScript.Parser { case SyntaxKind.DebuggerKeyword: return parseDebuggerStatement(_currentToken); } - // Check for common things that might appear where we expect a statement, but which we - // do not want to consume. This can happen when the user does not terminate their - // existing block properly. We don't want to accidently consume these as expression - // below. - if (isInterfaceEnumClassModuleImportOrExport(modifierCount, _currentToken)) { - return undefined; - } - else if (isVariableStatement(modifierCount)) { + if (isVariableStatement(modifierCount)) { return parseVariableStatement(); } else if (isLabeledStatement(_currentToken)) { From 2de7beb24c7b30b65541bcf431bab70654e57635 Mon Sep 17 00:00:00 2001 From: Cyrus Najmabadi Date: Thu, 27 Nov 2014 14:18:23 -0800 Subject: [PATCH 104/195] Add support for parsing type aliases. Conflicts: src/services/syntax/SyntaxGenerator.js.map --- src/services/syntax/SyntaxGenerator.js | 553 +++++++++--------- src/services/syntax/SyntaxGenerator.js.map | 4 + src/services/syntax/parser.ts | 32 +- src/services/syntax/prettyPrinter.ts | 14 + .../syntax/scannerUtilities.generated.ts | 7 +- src/services/syntax/syntaxFacts.ts | 1 + src/services/syntax/syntaxGenerator.ts | 14 + .../syntax/syntaxInterfaces.generated.ts | 10 + src/services/syntax/syntaxKind.ts | 2 + .../syntax/syntaxNodes.concrete.generated.ts | 28 + src/services/syntax/syntaxTree.ts | 150 +++-- .../syntax/syntaxVisitor.generated.ts | 2 + src/services/syntax/syntaxWalker.generated.ts | 9 + 13 files changed, 501 insertions(+), 325 deletions(-) diff --git a/src/services/syntax/SyntaxGenerator.js b/src/services/syntax/SyntaxGenerator.js index d0aeab916f1..a3c35229fec 100644 --- a/src/services/syntax/SyntaxGenerator.js +++ b/src/services/syntax/SyntaxGenerator.js @@ -482,151 +482,153 @@ var TypeScript; SyntaxKind[SyntaxKind["RequireKeyword"] = 70] = "RequireKeyword"; SyntaxKind[SyntaxKind["NumberKeyword"] = 71] = "NumberKeyword"; SyntaxKind[SyntaxKind["SetKeyword"] = 72] = "SetKeyword"; - SyntaxKind[SyntaxKind["StringKeyword"] = 73] = "StringKeyword"; - SyntaxKind[SyntaxKind["OpenBraceToken"] = 74] = "OpenBraceToken"; - SyntaxKind[SyntaxKind["CloseBraceToken"] = 75] = "CloseBraceToken"; - SyntaxKind[SyntaxKind["OpenParenToken"] = 76] = "OpenParenToken"; - SyntaxKind[SyntaxKind["CloseParenToken"] = 77] = "CloseParenToken"; - SyntaxKind[SyntaxKind["OpenBracketToken"] = 78] = "OpenBracketToken"; - SyntaxKind[SyntaxKind["CloseBracketToken"] = 79] = "CloseBracketToken"; - SyntaxKind[SyntaxKind["DotToken"] = 80] = "DotToken"; - SyntaxKind[SyntaxKind["DotDotDotToken"] = 81] = "DotDotDotToken"; - SyntaxKind[SyntaxKind["SemicolonToken"] = 82] = "SemicolonToken"; - SyntaxKind[SyntaxKind["CommaToken"] = 83] = "CommaToken"; - SyntaxKind[SyntaxKind["LessThanToken"] = 84] = "LessThanToken"; - SyntaxKind[SyntaxKind["GreaterThanToken"] = 85] = "GreaterThanToken"; - SyntaxKind[SyntaxKind["LessThanEqualsToken"] = 86] = "LessThanEqualsToken"; - SyntaxKind[SyntaxKind["GreaterThanEqualsToken"] = 87] = "GreaterThanEqualsToken"; - SyntaxKind[SyntaxKind["EqualsEqualsToken"] = 88] = "EqualsEqualsToken"; - SyntaxKind[SyntaxKind["EqualsGreaterThanToken"] = 89] = "EqualsGreaterThanToken"; - SyntaxKind[SyntaxKind["ExclamationEqualsToken"] = 90] = "ExclamationEqualsToken"; - SyntaxKind[SyntaxKind["EqualsEqualsEqualsToken"] = 91] = "EqualsEqualsEqualsToken"; - SyntaxKind[SyntaxKind["ExclamationEqualsEqualsToken"] = 92] = "ExclamationEqualsEqualsToken"; - SyntaxKind[SyntaxKind["PlusToken"] = 93] = "PlusToken"; - SyntaxKind[SyntaxKind["MinusToken"] = 94] = "MinusToken"; - SyntaxKind[SyntaxKind["AsteriskToken"] = 95] = "AsteriskToken"; - SyntaxKind[SyntaxKind["PercentToken"] = 96] = "PercentToken"; - SyntaxKind[SyntaxKind["PlusPlusToken"] = 97] = "PlusPlusToken"; - SyntaxKind[SyntaxKind["MinusMinusToken"] = 98] = "MinusMinusToken"; - SyntaxKind[SyntaxKind["LessThanLessThanToken"] = 99] = "LessThanLessThanToken"; - SyntaxKind[SyntaxKind["GreaterThanGreaterThanToken"] = 100] = "GreaterThanGreaterThanToken"; - SyntaxKind[SyntaxKind["GreaterThanGreaterThanGreaterThanToken"] = 101] = "GreaterThanGreaterThanGreaterThanToken"; - SyntaxKind[SyntaxKind["AmpersandToken"] = 102] = "AmpersandToken"; - SyntaxKind[SyntaxKind["BarToken"] = 103] = "BarToken"; - SyntaxKind[SyntaxKind["CaretToken"] = 104] = "CaretToken"; - SyntaxKind[SyntaxKind["ExclamationToken"] = 105] = "ExclamationToken"; - SyntaxKind[SyntaxKind["TildeToken"] = 106] = "TildeToken"; - SyntaxKind[SyntaxKind["AmpersandAmpersandToken"] = 107] = "AmpersandAmpersandToken"; - SyntaxKind[SyntaxKind["BarBarToken"] = 108] = "BarBarToken"; - SyntaxKind[SyntaxKind["QuestionToken"] = 109] = "QuestionToken"; - SyntaxKind[SyntaxKind["ColonToken"] = 110] = "ColonToken"; - SyntaxKind[SyntaxKind["EqualsToken"] = 111] = "EqualsToken"; - SyntaxKind[SyntaxKind["PlusEqualsToken"] = 112] = "PlusEqualsToken"; - SyntaxKind[SyntaxKind["MinusEqualsToken"] = 113] = "MinusEqualsToken"; - SyntaxKind[SyntaxKind["AsteriskEqualsToken"] = 114] = "AsteriskEqualsToken"; - SyntaxKind[SyntaxKind["PercentEqualsToken"] = 115] = "PercentEqualsToken"; - SyntaxKind[SyntaxKind["LessThanLessThanEqualsToken"] = 116] = "LessThanLessThanEqualsToken"; - SyntaxKind[SyntaxKind["GreaterThanGreaterThanEqualsToken"] = 117] = "GreaterThanGreaterThanEqualsToken"; - SyntaxKind[SyntaxKind["GreaterThanGreaterThanGreaterThanEqualsToken"] = 118] = "GreaterThanGreaterThanGreaterThanEqualsToken"; - SyntaxKind[SyntaxKind["AmpersandEqualsToken"] = 119] = "AmpersandEqualsToken"; - SyntaxKind[SyntaxKind["BarEqualsToken"] = 120] = "BarEqualsToken"; - SyntaxKind[SyntaxKind["CaretEqualsToken"] = 121] = "CaretEqualsToken"; - SyntaxKind[SyntaxKind["SlashToken"] = 122] = "SlashToken"; - SyntaxKind[SyntaxKind["SlashEqualsToken"] = 123] = "SlashEqualsToken"; - SyntaxKind[SyntaxKind["SourceUnit"] = 124] = "SourceUnit"; - SyntaxKind[SyntaxKind["QualifiedName"] = 125] = "QualifiedName"; - SyntaxKind[SyntaxKind["ObjectType"] = 126] = "ObjectType"; - SyntaxKind[SyntaxKind["FunctionType"] = 127] = "FunctionType"; - SyntaxKind[SyntaxKind["ArrayType"] = 128] = "ArrayType"; - SyntaxKind[SyntaxKind["ConstructorType"] = 129] = "ConstructorType"; - SyntaxKind[SyntaxKind["GenericType"] = 130] = "GenericType"; - SyntaxKind[SyntaxKind["TypeQuery"] = 131] = "TypeQuery"; - SyntaxKind[SyntaxKind["TupleType"] = 132] = "TupleType"; - SyntaxKind[SyntaxKind["UnionType"] = 133] = "UnionType"; - SyntaxKind[SyntaxKind["ParenthesizedType"] = 134] = "ParenthesizedType"; - SyntaxKind[SyntaxKind["InterfaceDeclaration"] = 135] = "InterfaceDeclaration"; - SyntaxKind[SyntaxKind["FunctionDeclaration"] = 136] = "FunctionDeclaration"; - SyntaxKind[SyntaxKind["ModuleDeclaration"] = 137] = "ModuleDeclaration"; - SyntaxKind[SyntaxKind["ClassDeclaration"] = 138] = "ClassDeclaration"; - SyntaxKind[SyntaxKind["EnumDeclaration"] = 139] = "EnumDeclaration"; - SyntaxKind[SyntaxKind["ImportDeclaration"] = 140] = "ImportDeclaration"; - SyntaxKind[SyntaxKind["ExportAssignment"] = 141] = "ExportAssignment"; - SyntaxKind[SyntaxKind["MemberFunctionDeclaration"] = 142] = "MemberFunctionDeclaration"; - SyntaxKind[SyntaxKind["MemberVariableDeclaration"] = 143] = "MemberVariableDeclaration"; - SyntaxKind[SyntaxKind["ConstructorDeclaration"] = 144] = "ConstructorDeclaration"; - SyntaxKind[SyntaxKind["IndexMemberDeclaration"] = 145] = "IndexMemberDeclaration"; - SyntaxKind[SyntaxKind["GetAccessor"] = 146] = "GetAccessor"; - SyntaxKind[SyntaxKind["SetAccessor"] = 147] = "SetAccessor"; - SyntaxKind[SyntaxKind["PropertySignature"] = 148] = "PropertySignature"; - SyntaxKind[SyntaxKind["CallSignature"] = 149] = "CallSignature"; - SyntaxKind[SyntaxKind["ConstructSignature"] = 150] = "ConstructSignature"; - SyntaxKind[SyntaxKind["IndexSignature"] = 151] = "IndexSignature"; - SyntaxKind[SyntaxKind["MethodSignature"] = 152] = "MethodSignature"; - SyntaxKind[SyntaxKind["Block"] = 153] = "Block"; - SyntaxKind[SyntaxKind["IfStatement"] = 154] = "IfStatement"; - SyntaxKind[SyntaxKind["VariableStatement"] = 155] = "VariableStatement"; - SyntaxKind[SyntaxKind["ExpressionStatement"] = 156] = "ExpressionStatement"; - SyntaxKind[SyntaxKind["ReturnStatement"] = 157] = "ReturnStatement"; - SyntaxKind[SyntaxKind["SwitchStatement"] = 158] = "SwitchStatement"; - SyntaxKind[SyntaxKind["BreakStatement"] = 159] = "BreakStatement"; - SyntaxKind[SyntaxKind["ContinueStatement"] = 160] = "ContinueStatement"; - SyntaxKind[SyntaxKind["ForStatement"] = 161] = "ForStatement"; - SyntaxKind[SyntaxKind["ForInStatement"] = 162] = "ForInStatement"; - SyntaxKind[SyntaxKind["EmptyStatement"] = 163] = "EmptyStatement"; - SyntaxKind[SyntaxKind["ThrowStatement"] = 164] = "ThrowStatement"; - SyntaxKind[SyntaxKind["WhileStatement"] = 165] = "WhileStatement"; - SyntaxKind[SyntaxKind["TryStatement"] = 166] = "TryStatement"; - SyntaxKind[SyntaxKind["LabeledStatement"] = 167] = "LabeledStatement"; - SyntaxKind[SyntaxKind["DoStatement"] = 168] = "DoStatement"; - SyntaxKind[SyntaxKind["DebuggerStatement"] = 169] = "DebuggerStatement"; - SyntaxKind[SyntaxKind["WithStatement"] = 170] = "WithStatement"; - SyntaxKind[SyntaxKind["PrefixUnaryExpression"] = 171] = "PrefixUnaryExpression"; - SyntaxKind[SyntaxKind["DeleteExpression"] = 172] = "DeleteExpression"; - SyntaxKind[SyntaxKind["TypeOfExpression"] = 173] = "TypeOfExpression"; - SyntaxKind[SyntaxKind["VoidExpression"] = 174] = "VoidExpression"; - SyntaxKind[SyntaxKind["ConditionalExpression"] = 175] = "ConditionalExpression"; - SyntaxKind[SyntaxKind["BinaryExpression"] = 176] = "BinaryExpression"; - SyntaxKind[SyntaxKind["PostfixUnaryExpression"] = 177] = "PostfixUnaryExpression"; - SyntaxKind[SyntaxKind["MemberAccessExpression"] = 178] = "MemberAccessExpression"; - SyntaxKind[SyntaxKind["InvocationExpression"] = 179] = "InvocationExpression"; - SyntaxKind[SyntaxKind["ArrayLiteralExpression"] = 180] = "ArrayLiteralExpression"; - SyntaxKind[SyntaxKind["ObjectLiteralExpression"] = 181] = "ObjectLiteralExpression"; - SyntaxKind[SyntaxKind["ObjectCreationExpression"] = 182] = "ObjectCreationExpression"; - SyntaxKind[SyntaxKind["ParenthesizedExpression"] = 183] = "ParenthesizedExpression"; - SyntaxKind[SyntaxKind["ParenthesizedArrowFunctionExpression"] = 184] = "ParenthesizedArrowFunctionExpression"; - SyntaxKind[SyntaxKind["SimpleArrowFunctionExpression"] = 185] = "SimpleArrowFunctionExpression"; - SyntaxKind[SyntaxKind["CastExpression"] = 186] = "CastExpression"; - SyntaxKind[SyntaxKind["ElementAccessExpression"] = 187] = "ElementAccessExpression"; - SyntaxKind[SyntaxKind["FunctionExpression"] = 188] = "FunctionExpression"; - SyntaxKind[SyntaxKind["OmittedExpression"] = 189] = "OmittedExpression"; - SyntaxKind[SyntaxKind["TemplateExpression"] = 190] = "TemplateExpression"; - SyntaxKind[SyntaxKind["TemplateAccessExpression"] = 191] = "TemplateAccessExpression"; - SyntaxKind[SyntaxKind["YieldExpression"] = 192] = "YieldExpression"; - SyntaxKind[SyntaxKind["AwaitExpression"] = 193] = "AwaitExpression"; - SyntaxKind[SyntaxKind["VariableDeclaration"] = 194] = "VariableDeclaration"; - SyntaxKind[SyntaxKind["VariableDeclarator"] = 195] = "VariableDeclarator"; - SyntaxKind[SyntaxKind["ArgumentList"] = 196] = "ArgumentList"; - SyntaxKind[SyntaxKind["ParameterList"] = 197] = "ParameterList"; - SyntaxKind[SyntaxKind["TypeArgumentList"] = 198] = "TypeArgumentList"; - SyntaxKind[SyntaxKind["TypeParameterList"] = 199] = "TypeParameterList"; - SyntaxKind[SyntaxKind["HeritageClause"] = 200] = "HeritageClause"; - SyntaxKind[SyntaxKind["EqualsValueClause"] = 201] = "EqualsValueClause"; - SyntaxKind[SyntaxKind["CaseSwitchClause"] = 202] = "CaseSwitchClause"; - SyntaxKind[SyntaxKind["DefaultSwitchClause"] = 203] = "DefaultSwitchClause"; - SyntaxKind[SyntaxKind["ElseClause"] = 204] = "ElseClause"; - SyntaxKind[SyntaxKind["CatchClause"] = 205] = "CatchClause"; - SyntaxKind[SyntaxKind["FinallyClause"] = 206] = "FinallyClause"; - SyntaxKind[SyntaxKind["TemplateClause"] = 207] = "TemplateClause"; - SyntaxKind[SyntaxKind["TypeParameter"] = 208] = "TypeParameter"; - SyntaxKind[SyntaxKind["Constraint"] = 209] = "Constraint"; - SyntaxKind[SyntaxKind["Parameter"] = 210] = "Parameter"; - SyntaxKind[SyntaxKind["EnumElement"] = 211] = "EnumElement"; - SyntaxKind[SyntaxKind["TypeAnnotation"] = 212] = "TypeAnnotation"; - SyntaxKind[SyntaxKind["ExpressionBody"] = 213] = "ExpressionBody"; - SyntaxKind[SyntaxKind["ComputedPropertyName"] = 214] = "ComputedPropertyName"; - SyntaxKind[SyntaxKind["PropertyAssignment"] = 215] = "PropertyAssignment"; - SyntaxKind[SyntaxKind["ExternalModuleReference"] = 216] = "ExternalModuleReference"; - SyntaxKind[SyntaxKind["ModuleNameModuleReference"] = 217] = "ModuleNameModuleReference"; + SyntaxKind[SyntaxKind["TypeKeyword"] = 73] = "TypeKeyword"; + SyntaxKind[SyntaxKind["StringKeyword"] = 74] = "StringKeyword"; + SyntaxKind[SyntaxKind["OpenBraceToken"] = 75] = "OpenBraceToken"; + SyntaxKind[SyntaxKind["CloseBraceToken"] = 76] = "CloseBraceToken"; + SyntaxKind[SyntaxKind["OpenParenToken"] = 77] = "OpenParenToken"; + SyntaxKind[SyntaxKind["CloseParenToken"] = 78] = "CloseParenToken"; + SyntaxKind[SyntaxKind["OpenBracketToken"] = 79] = "OpenBracketToken"; + SyntaxKind[SyntaxKind["CloseBracketToken"] = 80] = "CloseBracketToken"; + SyntaxKind[SyntaxKind["DotToken"] = 81] = "DotToken"; + SyntaxKind[SyntaxKind["DotDotDotToken"] = 82] = "DotDotDotToken"; + SyntaxKind[SyntaxKind["SemicolonToken"] = 83] = "SemicolonToken"; + SyntaxKind[SyntaxKind["CommaToken"] = 84] = "CommaToken"; + SyntaxKind[SyntaxKind["LessThanToken"] = 85] = "LessThanToken"; + SyntaxKind[SyntaxKind["GreaterThanToken"] = 86] = "GreaterThanToken"; + SyntaxKind[SyntaxKind["LessThanEqualsToken"] = 87] = "LessThanEqualsToken"; + SyntaxKind[SyntaxKind["GreaterThanEqualsToken"] = 88] = "GreaterThanEqualsToken"; + SyntaxKind[SyntaxKind["EqualsEqualsToken"] = 89] = "EqualsEqualsToken"; + SyntaxKind[SyntaxKind["EqualsGreaterThanToken"] = 90] = "EqualsGreaterThanToken"; + SyntaxKind[SyntaxKind["ExclamationEqualsToken"] = 91] = "ExclamationEqualsToken"; + SyntaxKind[SyntaxKind["EqualsEqualsEqualsToken"] = 92] = "EqualsEqualsEqualsToken"; + SyntaxKind[SyntaxKind["ExclamationEqualsEqualsToken"] = 93] = "ExclamationEqualsEqualsToken"; + SyntaxKind[SyntaxKind["PlusToken"] = 94] = "PlusToken"; + SyntaxKind[SyntaxKind["MinusToken"] = 95] = "MinusToken"; + SyntaxKind[SyntaxKind["AsteriskToken"] = 96] = "AsteriskToken"; + SyntaxKind[SyntaxKind["PercentToken"] = 97] = "PercentToken"; + SyntaxKind[SyntaxKind["PlusPlusToken"] = 98] = "PlusPlusToken"; + SyntaxKind[SyntaxKind["MinusMinusToken"] = 99] = "MinusMinusToken"; + SyntaxKind[SyntaxKind["LessThanLessThanToken"] = 100] = "LessThanLessThanToken"; + SyntaxKind[SyntaxKind["GreaterThanGreaterThanToken"] = 101] = "GreaterThanGreaterThanToken"; + SyntaxKind[SyntaxKind["GreaterThanGreaterThanGreaterThanToken"] = 102] = "GreaterThanGreaterThanGreaterThanToken"; + SyntaxKind[SyntaxKind["AmpersandToken"] = 103] = "AmpersandToken"; + SyntaxKind[SyntaxKind["BarToken"] = 104] = "BarToken"; + SyntaxKind[SyntaxKind["CaretToken"] = 105] = "CaretToken"; + SyntaxKind[SyntaxKind["ExclamationToken"] = 106] = "ExclamationToken"; + SyntaxKind[SyntaxKind["TildeToken"] = 107] = "TildeToken"; + SyntaxKind[SyntaxKind["AmpersandAmpersandToken"] = 108] = "AmpersandAmpersandToken"; + SyntaxKind[SyntaxKind["BarBarToken"] = 109] = "BarBarToken"; + SyntaxKind[SyntaxKind["QuestionToken"] = 110] = "QuestionToken"; + SyntaxKind[SyntaxKind["ColonToken"] = 111] = "ColonToken"; + SyntaxKind[SyntaxKind["EqualsToken"] = 112] = "EqualsToken"; + SyntaxKind[SyntaxKind["PlusEqualsToken"] = 113] = "PlusEqualsToken"; + SyntaxKind[SyntaxKind["MinusEqualsToken"] = 114] = "MinusEqualsToken"; + SyntaxKind[SyntaxKind["AsteriskEqualsToken"] = 115] = "AsteriskEqualsToken"; + SyntaxKind[SyntaxKind["PercentEqualsToken"] = 116] = "PercentEqualsToken"; + SyntaxKind[SyntaxKind["LessThanLessThanEqualsToken"] = 117] = "LessThanLessThanEqualsToken"; + SyntaxKind[SyntaxKind["GreaterThanGreaterThanEqualsToken"] = 118] = "GreaterThanGreaterThanEqualsToken"; + SyntaxKind[SyntaxKind["GreaterThanGreaterThanGreaterThanEqualsToken"] = 119] = "GreaterThanGreaterThanGreaterThanEqualsToken"; + SyntaxKind[SyntaxKind["AmpersandEqualsToken"] = 120] = "AmpersandEqualsToken"; + SyntaxKind[SyntaxKind["BarEqualsToken"] = 121] = "BarEqualsToken"; + SyntaxKind[SyntaxKind["CaretEqualsToken"] = 122] = "CaretEqualsToken"; + SyntaxKind[SyntaxKind["SlashToken"] = 123] = "SlashToken"; + SyntaxKind[SyntaxKind["SlashEqualsToken"] = 124] = "SlashEqualsToken"; + SyntaxKind[SyntaxKind["SourceUnit"] = 125] = "SourceUnit"; + SyntaxKind[SyntaxKind["QualifiedName"] = 126] = "QualifiedName"; + SyntaxKind[SyntaxKind["ObjectType"] = 127] = "ObjectType"; + SyntaxKind[SyntaxKind["FunctionType"] = 128] = "FunctionType"; + SyntaxKind[SyntaxKind["ArrayType"] = 129] = "ArrayType"; + SyntaxKind[SyntaxKind["ConstructorType"] = 130] = "ConstructorType"; + SyntaxKind[SyntaxKind["GenericType"] = 131] = "GenericType"; + SyntaxKind[SyntaxKind["TypeQuery"] = 132] = "TypeQuery"; + SyntaxKind[SyntaxKind["TupleType"] = 133] = "TupleType"; + SyntaxKind[SyntaxKind["UnionType"] = 134] = "UnionType"; + SyntaxKind[SyntaxKind["ParenthesizedType"] = 135] = "ParenthesizedType"; + SyntaxKind[SyntaxKind["InterfaceDeclaration"] = 136] = "InterfaceDeclaration"; + SyntaxKind[SyntaxKind["FunctionDeclaration"] = 137] = "FunctionDeclaration"; + SyntaxKind[SyntaxKind["ModuleDeclaration"] = 138] = "ModuleDeclaration"; + SyntaxKind[SyntaxKind["ClassDeclaration"] = 139] = "ClassDeclaration"; + SyntaxKind[SyntaxKind["EnumDeclaration"] = 140] = "EnumDeclaration"; + SyntaxKind[SyntaxKind["ImportDeclaration"] = 141] = "ImportDeclaration"; + SyntaxKind[SyntaxKind["ExportAssignment"] = 142] = "ExportAssignment"; + SyntaxKind[SyntaxKind["MemberFunctionDeclaration"] = 143] = "MemberFunctionDeclaration"; + SyntaxKind[SyntaxKind["MemberVariableDeclaration"] = 144] = "MemberVariableDeclaration"; + SyntaxKind[SyntaxKind["ConstructorDeclaration"] = 145] = "ConstructorDeclaration"; + SyntaxKind[SyntaxKind["IndexMemberDeclaration"] = 146] = "IndexMemberDeclaration"; + SyntaxKind[SyntaxKind["GetAccessor"] = 147] = "GetAccessor"; + SyntaxKind[SyntaxKind["SetAccessor"] = 148] = "SetAccessor"; + SyntaxKind[SyntaxKind["PropertySignature"] = 149] = "PropertySignature"; + SyntaxKind[SyntaxKind["CallSignature"] = 150] = "CallSignature"; + SyntaxKind[SyntaxKind["ConstructSignature"] = 151] = "ConstructSignature"; + SyntaxKind[SyntaxKind["IndexSignature"] = 152] = "IndexSignature"; + SyntaxKind[SyntaxKind["MethodSignature"] = 153] = "MethodSignature"; + SyntaxKind[SyntaxKind["Block"] = 154] = "Block"; + SyntaxKind[SyntaxKind["IfStatement"] = 155] = "IfStatement"; + SyntaxKind[SyntaxKind["VariableStatement"] = 156] = "VariableStatement"; + SyntaxKind[SyntaxKind["ExpressionStatement"] = 157] = "ExpressionStatement"; + SyntaxKind[SyntaxKind["ReturnStatement"] = 158] = "ReturnStatement"; + SyntaxKind[SyntaxKind["SwitchStatement"] = 159] = "SwitchStatement"; + SyntaxKind[SyntaxKind["BreakStatement"] = 160] = "BreakStatement"; + SyntaxKind[SyntaxKind["ContinueStatement"] = 161] = "ContinueStatement"; + SyntaxKind[SyntaxKind["ForStatement"] = 162] = "ForStatement"; + SyntaxKind[SyntaxKind["ForInStatement"] = 163] = "ForInStatement"; + SyntaxKind[SyntaxKind["EmptyStatement"] = 164] = "EmptyStatement"; + SyntaxKind[SyntaxKind["ThrowStatement"] = 165] = "ThrowStatement"; + SyntaxKind[SyntaxKind["WhileStatement"] = 166] = "WhileStatement"; + SyntaxKind[SyntaxKind["TryStatement"] = 167] = "TryStatement"; + SyntaxKind[SyntaxKind["LabeledStatement"] = 168] = "LabeledStatement"; + SyntaxKind[SyntaxKind["DoStatement"] = 169] = "DoStatement"; + SyntaxKind[SyntaxKind["DebuggerStatement"] = 170] = "DebuggerStatement"; + SyntaxKind[SyntaxKind["WithStatement"] = 171] = "WithStatement"; + SyntaxKind[SyntaxKind["PrefixUnaryExpression"] = 172] = "PrefixUnaryExpression"; + SyntaxKind[SyntaxKind["DeleteExpression"] = 173] = "DeleteExpression"; + SyntaxKind[SyntaxKind["TypeOfExpression"] = 174] = "TypeOfExpression"; + SyntaxKind[SyntaxKind["VoidExpression"] = 175] = "VoidExpression"; + SyntaxKind[SyntaxKind["ConditionalExpression"] = 176] = "ConditionalExpression"; + SyntaxKind[SyntaxKind["BinaryExpression"] = 177] = "BinaryExpression"; + SyntaxKind[SyntaxKind["PostfixUnaryExpression"] = 178] = "PostfixUnaryExpression"; + SyntaxKind[SyntaxKind["MemberAccessExpression"] = 179] = "MemberAccessExpression"; + SyntaxKind[SyntaxKind["InvocationExpression"] = 180] = "InvocationExpression"; + SyntaxKind[SyntaxKind["ArrayLiteralExpression"] = 181] = "ArrayLiteralExpression"; + SyntaxKind[SyntaxKind["ObjectLiteralExpression"] = 182] = "ObjectLiteralExpression"; + SyntaxKind[SyntaxKind["ObjectCreationExpression"] = 183] = "ObjectCreationExpression"; + SyntaxKind[SyntaxKind["ParenthesizedExpression"] = 184] = "ParenthesizedExpression"; + SyntaxKind[SyntaxKind["ParenthesizedArrowFunctionExpression"] = 185] = "ParenthesizedArrowFunctionExpression"; + SyntaxKind[SyntaxKind["SimpleArrowFunctionExpression"] = 186] = "SimpleArrowFunctionExpression"; + SyntaxKind[SyntaxKind["CastExpression"] = 187] = "CastExpression"; + SyntaxKind[SyntaxKind["ElementAccessExpression"] = 188] = "ElementAccessExpression"; + SyntaxKind[SyntaxKind["FunctionExpression"] = 189] = "FunctionExpression"; + SyntaxKind[SyntaxKind["OmittedExpression"] = 190] = "OmittedExpression"; + SyntaxKind[SyntaxKind["TemplateExpression"] = 191] = "TemplateExpression"; + SyntaxKind[SyntaxKind["TemplateAccessExpression"] = 192] = "TemplateAccessExpression"; + SyntaxKind[SyntaxKind["YieldExpression"] = 193] = "YieldExpression"; + SyntaxKind[SyntaxKind["AwaitExpression"] = 194] = "AwaitExpression"; + SyntaxKind[SyntaxKind["VariableDeclaration"] = 195] = "VariableDeclaration"; + SyntaxKind[SyntaxKind["VariableDeclarator"] = 196] = "VariableDeclarator"; + SyntaxKind[SyntaxKind["ArgumentList"] = 197] = "ArgumentList"; + SyntaxKind[SyntaxKind["ParameterList"] = 198] = "ParameterList"; + SyntaxKind[SyntaxKind["TypeArgumentList"] = 199] = "TypeArgumentList"; + SyntaxKind[SyntaxKind["TypeParameterList"] = 200] = "TypeParameterList"; + SyntaxKind[SyntaxKind["HeritageClause"] = 201] = "HeritageClause"; + SyntaxKind[SyntaxKind["EqualsValueClause"] = 202] = "EqualsValueClause"; + SyntaxKind[SyntaxKind["CaseSwitchClause"] = 203] = "CaseSwitchClause"; + SyntaxKind[SyntaxKind["DefaultSwitchClause"] = 204] = "DefaultSwitchClause"; + SyntaxKind[SyntaxKind["ElseClause"] = 205] = "ElseClause"; + SyntaxKind[SyntaxKind["CatchClause"] = 206] = "CatchClause"; + SyntaxKind[SyntaxKind["FinallyClause"] = 207] = "FinallyClause"; + SyntaxKind[SyntaxKind["TemplateClause"] = 208] = "TemplateClause"; + SyntaxKind[SyntaxKind["TypeParameter"] = 209] = "TypeParameter"; + SyntaxKind[SyntaxKind["Constraint"] = 210] = "Constraint"; + SyntaxKind[SyntaxKind["Parameter"] = 211] = "Parameter"; + SyntaxKind[SyntaxKind["EnumElement"] = 212] = "EnumElement"; + SyntaxKind[SyntaxKind["TypeAnnotation"] = 213] = "TypeAnnotation"; + SyntaxKind[SyntaxKind["ExpressionBody"] = 214] = "ExpressionBody"; + SyntaxKind[SyntaxKind["ComputedPropertyName"] = 215] = "ComputedPropertyName"; + SyntaxKind[SyntaxKind["PropertyAssignment"] = 216] = "PropertyAssignment"; + SyntaxKind[SyntaxKind["TypeAlias"] = 217] = "TypeAlias"; + SyntaxKind[SyntaxKind["ExternalModuleReference"] = 218] = "ExternalModuleReference"; + SyntaxKind[SyntaxKind["ModuleNameModuleReference"] = 219] = "ModuleNameModuleReference"; SyntaxKind[SyntaxKind["FirstStandardKeyword"] = 17] = "FirstStandardKeyword"; SyntaxKind[SyntaxKind["LastStandardKeyword"] = 45] = "LastStandardKeyword"; SyntaxKind[SyntaxKind["FirstFutureReservedKeyword"] = 46] = "FirstFutureReservedKeyword"; @@ -634,19 +636,19 @@ var TypeScript; SyntaxKind[SyntaxKind["FirstFutureReservedStrictKeyword"] = 53] = "FirstFutureReservedStrictKeyword"; SyntaxKind[SyntaxKind["LastFutureReservedStrictKeyword"] = 61] = "LastFutureReservedStrictKeyword"; SyntaxKind[SyntaxKind["FirstTypeScriptKeyword"] = 62] = "FirstTypeScriptKeyword"; - SyntaxKind[SyntaxKind["LastTypeScriptKeyword"] = 73] = "LastTypeScriptKeyword"; + SyntaxKind[SyntaxKind["LastTypeScriptKeyword"] = 74] = "LastTypeScriptKeyword"; SyntaxKind[SyntaxKind["FirstKeyword"] = 17] = "FirstKeyword"; - SyntaxKind[SyntaxKind["LastKeyword"] = 73] = "LastKeyword"; + SyntaxKind[SyntaxKind["LastKeyword"] = 74] = "LastKeyword"; SyntaxKind[SyntaxKind["FirstToken"] = 7] = "FirstToken"; - SyntaxKind[SyntaxKind["LastToken"] = 123] = "LastToken"; - SyntaxKind[SyntaxKind["FirstPunctuation"] = 74] = "FirstPunctuation"; - SyntaxKind[SyntaxKind["LastPunctuation"] = 123] = "LastPunctuation"; + SyntaxKind[SyntaxKind["LastToken"] = 124] = "LastToken"; + SyntaxKind[SyntaxKind["FirstPunctuation"] = 75] = "FirstPunctuation"; + SyntaxKind[SyntaxKind["LastPunctuation"] = 124] = "LastPunctuation"; SyntaxKind[SyntaxKind["FirstFixedWidth"] = 17] = "FirstFixedWidth"; - SyntaxKind[SyntaxKind["LastFixedWidth"] = 123] = "LastFixedWidth"; + SyntaxKind[SyntaxKind["LastFixedWidth"] = 124] = "LastFixedWidth"; SyntaxKind[SyntaxKind["FirstTrivia"] = 2] = "FirstTrivia"; SyntaxKind[SyntaxKind["LastTrivia"] = 6] = "LastTrivia"; - SyntaxKind[SyntaxKind["FirstNode"] = 124] = "FirstNode"; - SyntaxKind[SyntaxKind["LastNode"] = 217] = "LastNode"; + SyntaxKind[SyntaxKind["FirstNode"] = 125] = "FirstNode"; + SyntaxKind[SyntaxKind["LastNode"] = 219] = "LastNode"; })(TypeScript.SyntaxKind || (TypeScript.SyntaxKind = {})); var SyntaxKind = TypeScript.SyntaxKind; })(TypeScript || (TypeScript = {})); @@ -699,69 +701,70 @@ var TypeScript; "return": 35 /* ReturnKeyword */, "set": 72 /* SetKeyword */, "static": 60 /* StaticKeyword */, - "string": 73 /* StringKeyword */, + "string": 74 /* StringKeyword */, "super": 52 /* SuperKeyword */, "switch": 36 /* SwitchKeyword */, "this": 37 /* ThisKeyword */, "throw": 38 /* ThrowKeyword */, "true": 39 /* TrueKeyword */, "try": 40 /* TryKeyword */, + "type": 73 /* TypeKeyword */, "typeof": 41 /* TypeOfKeyword */, "var": 42 /* VarKeyword */, "void": 43 /* VoidKeyword */, "while": 44 /* WhileKeyword */, "with": 45 /* WithKeyword */, "yield": 61 /* YieldKeyword */, - "{": 74 /* OpenBraceToken */, - "}": 75 /* CloseBraceToken */, - "(": 76 /* OpenParenToken */, - ")": 77 /* CloseParenToken */, - "[": 78 /* OpenBracketToken */, - "]": 79 /* CloseBracketToken */, - ".": 80 /* DotToken */, - "...": 81 /* DotDotDotToken */, - ";": 82 /* SemicolonToken */, - ",": 83 /* CommaToken */, - "<": 84 /* LessThanToken */, - ">": 85 /* GreaterThanToken */, - "<=": 86 /* LessThanEqualsToken */, - ">=": 87 /* GreaterThanEqualsToken */, - "==": 88 /* EqualsEqualsToken */, - "=>": 89 /* EqualsGreaterThanToken */, - "!=": 90 /* ExclamationEqualsToken */, - "===": 91 /* EqualsEqualsEqualsToken */, - "!==": 92 /* ExclamationEqualsEqualsToken */, - "+": 93 /* PlusToken */, - "-": 94 /* MinusToken */, - "*": 95 /* AsteriskToken */, - "%": 96 /* PercentToken */, - "++": 97 /* PlusPlusToken */, - "--": 98 /* MinusMinusToken */, - "<<": 99 /* LessThanLessThanToken */, - ">>": 100 /* GreaterThanGreaterThanToken */, - ">>>": 101 /* GreaterThanGreaterThanGreaterThanToken */, - "&": 102 /* AmpersandToken */, - "|": 103 /* BarToken */, - "^": 104 /* CaretToken */, - "!": 105 /* ExclamationToken */, - "~": 106 /* TildeToken */, - "&&": 107 /* AmpersandAmpersandToken */, - "||": 108 /* BarBarToken */, - "?": 109 /* QuestionToken */, - ":": 110 /* ColonToken */, - "=": 111 /* EqualsToken */, - "+=": 112 /* PlusEqualsToken */, - "-=": 113 /* MinusEqualsToken */, - "*=": 114 /* AsteriskEqualsToken */, - "%=": 115 /* PercentEqualsToken */, - "<<=": 116 /* LessThanLessThanEqualsToken */, - ">>=": 117 /* GreaterThanGreaterThanEqualsToken */, - ">>>=": 118 /* GreaterThanGreaterThanGreaterThanEqualsToken */, - "&=": 119 /* AmpersandEqualsToken */, - "|=": 120 /* BarEqualsToken */, - "^=": 121 /* CaretEqualsToken */, - "/": 122 /* SlashToken */, - "/=": 123 /* SlashEqualsToken */ + "{": 75 /* OpenBraceToken */, + "}": 76 /* CloseBraceToken */, + "(": 77 /* OpenParenToken */, + ")": 78 /* CloseParenToken */, + "[": 79 /* OpenBracketToken */, + "]": 80 /* CloseBracketToken */, + ".": 81 /* DotToken */, + "...": 82 /* DotDotDotToken */, + ";": 83 /* SemicolonToken */, + ",": 84 /* CommaToken */, + "<": 85 /* LessThanToken */, + ">": 86 /* GreaterThanToken */, + "<=": 87 /* LessThanEqualsToken */, + ">=": 88 /* GreaterThanEqualsToken */, + "==": 89 /* EqualsEqualsToken */, + "=>": 90 /* EqualsGreaterThanToken */, + "!=": 91 /* ExclamationEqualsToken */, + "===": 92 /* EqualsEqualsEqualsToken */, + "!==": 93 /* ExclamationEqualsEqualsToken */, + "+": 94 /* PlusToken */, + "-": 95 /* MinusToken */, + "*": 96 /* AsteriskToken */, + "%": 97 /* PercentToken */, + "++": 98 /* PlusPlusToken */, + "--": 99 /* MinusMinusToken */, + "<<": 100 /* LessThanLessThanToken */, + ">>": 101 /* GreaterThanGreaterThanToken */, + ">>>": 102 /* GreaterThanGreaterThanGreaterThanToken */, + "&": 103 /* AmpersandToken */, + "|": 104 /* BarToken */, + "^": 105 /* CaretToken */, + "!": 106 /* ExclamationToken */, + "~": 107 /* TildeToken */, + "&&": 108 /* AmpersandAmpersandToken */, + "||": 109 /* BarBarToken */, + "?": 110 /* QuestionToken */, + ":": 111 /* ColonToken */, + "=": 112 /* EqualsToken */, + "+=": 113 /* PlusEqualsToken */, + "-=": 114 /* MinusEqualsToken */, + "*=": 115 /* AsteriskEqualsToken */, + "%=": 116 /* PercentEqualsToken */, + "<<=": 117 /* LessThanLessThanEqualsToken */, + ">>=": 118 /* GreaterThanGreaterThanEqualsToken */, + ">>>=": 119 /* GreaterThanGreaterThanGreaterThanEqualsToken */, + "&=": 120 /* AmpersandEqualsToken */, + "|=": 121 /* BarEqualsToken */, + "^=": 122 /* CaretEqualsToken */, + "/": 123 /* SlashToken */, + "/=": 124 /* SlashEqualsToken */ }; var kindToText = new Array(); for (var name in textToKeywordKind) { @@ -783,21 +786,21 @@ var TypeScript; } SyntaxFacts.getText = getText; function isAnyKeyword(kind) { - return kind >= 17 /* FirstKeyword */ && kind <= 73 /* LastKeyword */; + return kind >= 17 /* FirstKeyword */ && kind <= 74 /* LastKeyword */; } SyntaxFacts.isAnyKeyword = isAnyKeyword; function isAnyPunctuation(kind) { - return kind >= 74 /* FirstPunctuation */ && kind <= 123 /* LastPunctuation */; + return kind >= 75 /* FirstPunctuation */ && kind <= 124 /* LastPunctuation */; } SyntaxFacts.isAnyPunctuation = isAnyPunctuation; function isPrefixUnaryExpressionOperatorToken(tokenKind) { switch (tokenKind) { - case 93 /* PlusToken */: - case 94 /* MinusToken */: - case 106 /* TildeToken */: - case 105 /* ExclamationToken */: - case 97 /* PlusPlusToken */: - case 98 /* MinusMinusToken */: + case 94 /* PlusToken */: + case 95 /* MinusToken */: + case 107 /* TildeToken */: + case 106 /* ExclamationToken */: + case 98 /* PlusPlusToken */: + case 99 /* MinusMinusToken */: return true; default: return false; @@ -806,42 +809,42 @@ var TypeScript; SyntaxFacts.isPrefixUnaryExpressionOperatorToken = isPrefixUnaryExpressionOperatorToken; function isBinaryExpressionOperatorToken(tokenKind) { switch (tokenKind) { - case 95 /* AsteriskToken */: - case 122 /* SlashToken */: - case 96 /* PercentToken */: - case 93 /* PlusToken */: - case 94 /* MinusToken */: - case 99 /* LessThanLessThanToken */: - case 100 /* GreaterThanGreaterThanToken */: - case 101 /* GreaterThanGreaterThanGreaterThanToken */: - case 84 /* LessThanToken */: - case 85 /* GreaterThanToken */: - case 86 /* LessThanEqualsToken */: - case 87 /* GreaterThanEqualsToken */: + case 96 /* AsteriskToken */: + case 123 /* SlashToken */: + case 97 /* PercentToken */: + case 94 /* PlusToken */: + case 95 /* MinusToken */: + case 100 /* LessThanLessThanToken */: + case 101 /* GreaterThanGreaterThanToken */: + case 102 /* GreaterThanGreaterThanGreaterThanToken */: + case 85 /* LessThanToken */: + case 86 /* GreaterThanToken */: + case 87 /* LessThanEqualsToken */: + case 88 /* GreaterThanEqualsToken */: case 32 /* InstanceOfKeyword */: case 31 /* InKeyword */: - case 88 /* EqualsEqualsToken */: - case 90 /* ExclamationEqualsToken */: - case 91 /* EqualsEqualsEqualsToken */: - case 92 /* ExclamationEqualsEqualsToken */: - case 102 /* AmpersandToken */: - case 104 /* CaretToken */: - case 103 /* BarToken */: - case 107 /* AmpersandAmpersandToken */: - case 108 /* BarBarToken */: - case 120 /* BarEqualsToken */: - case 119 /* AmpersandEqualsToken */: - case 121 /* CaretEqualsToken */: - case 116 /* LessThanLessThanEqualsToken */: - case 117 /* GreaterThanGreaterThanEqualsToken */: - case 118 /* GreaterThanGreaterThanGreaterThanEqualsToken */: - case 112 /* PlusEqualsToken */: - case 113 /* MinusEqualsToken */: - case 114 /* AsteriskEqualsToken */: - case 123 /* SlashEqualsToken */: - case 115 /* PercentEqualsToken */: - case 111 /* EqualsToken */: - case 83 /* CommaToken */: + case 89 /* EqualsEqualsToken */: + case 91 /* ExclamationEqualsToken */: + case 92 /* EqualsEqualsEqualsToken */: + case 93 /* ExclamationEqualsEqualsToken */: + case 103 /* AmpersandToken */: + case 105 /* CaretToken */: + case 104 /* BarToken */: + case 108 /* AmpersandAmpersandToken */: + case 109 /* BarBarToken */: + case 121 /* BarEqualsToken */: + case 120 /* AmpersandEqualsToken */: + case 122 /* CaretEqualsToken */: + case 117 /* LessThanLessThanEqualsToken */: + case 118 /* GreaterThanGreaterThanEqualsToken */: + case 119 /* GreaterThanGreaterThanGreaterThanEqualsToken */: + case 113 /* PlusEqualsToken */: + case 114 /* MinusEqualsToken */: + case 115 /* AsteriskEqualsToken */: + case 124 /* SlashEqualsToken */: + case 116 /* PercentEqualsToken */: + case 112 /* EqualsToken */: + case 84 /* CommaToken */: return true; default: return false; @@ -850,18 +853,18 @@ var TypeScript; SyntaxFacts.isBinaryExpressionOperatorToken = isBinaryExpressionOperatorToken; function isAssignmentOperatorToken(tokenKind) { switch (tokenKind) { - case 120 /* BarEqualsToken */: - case 119 /* AmpersandEqualsToken */: - case 121 /* CaretEqualsToken */: - case 116 /* LessThanLessThanEqualsToken */: - case 117 /* GreaterThanGreaterThanEqualsToken */: - case 118 /* GreaterThanGreaterThanGreaterThanEqualsToken */: - case 112 /* PlusEqualsToken */: - case 113 /* MinusEqualsToken */: - case 114 /* AsteriskEqualsToken */: - case 123 /* SlashEqualsToken */: - case 115 /* PercentEqualsToken */: - case 111 /* EqualsToken */: + case 121 /* BarEqualsToken */: + case 120 /* AmpersandEqualsToken */: + case 122 /* CaretEqualsToken */: + case 117 /* LessThanLessThanEqualsToken */: + case 118 /* GreaterThanGreaterThanEqualsToken */: + case 119 /* GreaterThanGreaterThanGreaterThanEqualsToken */: + case 113 /* PlusEqualsToken */: + case 114 /* MinusEqualsToken */: + case 115 /* AsteriskEqualsToken */: + case 124 /* SlashEqualsToken */: + case 116 /* PercentEqualsToken */: + case 112 /* EqualsToken */: return true; default: return false; @@ -870,18 +873,18 @@ var TypeScript; SyntaxFacts.isAssignmentOperatorToken = isAssignmentOperatorToken; function isType(kind) { switch (kind) { - case 128 /* ArrayType */: + case 129 /* ArrayType */: case 62 /* AnyKeyword */: case 71 /* NumberKeyword */: case 65 /* BooleanKeyword */: - case 73 /* StringKeyword */: + case 74 /* StringKeyword */: case 43 /* VoidKeyword */: - case 127 /* FunctionType */: - case 126 /* ObjectType */: - case 129 /* ConstructorType */: - case 131 /* TypeQuery */: - case 130 /* GenericType */: - case 125 /* QualifiedName */: + case 128 /* FunctionType */: + case 127 /* ObjectType */: + case 130 /* ConstructorType */: + case 132 /* TypeQuery */: + case 131 /* GenericType */: + case 126 /* QualifiedName */: case 9 /* IdentifierName */: return true; } @@ -1012,6 +1015,20 @@ var definitions = [ ], isTypeScriptSpecific: true }, + { + name: 'TypeAliasSyntax', + baseType: 'ISyntaxNode', + interfaces: ['IModuleElementSyntax'], + children: [ + { name: 'modifiers', isList: true, elementType: 'ISyntaxToken' }, + { name: 'typeKeyword', isToken: true }, + { name: 'identifier', isToken: true }, + { name: 'equalsToken', isToken: true }, + { name: 'type', type: 'ITypeSyntax' }, + { name: 'semicolonToken', isToken: true, isOptional: true } + ], + isTypeScriptSpecific: true + }, { name: 'FunctionDeclarationSyntax', baseType: 'ISyntaxNode', @@ -2175,7 +2192,7 @@ function generateUtilities() { function generateScannerUtilities() { var result = "///\r\n" + "\r\n" + "module TypeScript {\r\n" + " export module ScannerUtilities {\r\n"; result += " export var fixedWidthArray = ["; - for (var i = 0; i <= 123 /* LastFixedWidth */; i++) { + for (var i = 0; i <= 124 /* LastFixedWidth */; i++) { if (i) { result += ", "; } @@ -2189,7 +2206,7 @@ function generateScannerUtilities() { result += "];\r\n"; var i; var keywords = []; - for (i = 17 /* FirstKeyword */; i <= 73 /* LastKeyword */; i++) { + for (i = 17 /* FirstKeyword */; i <= 74 /* LastKeyword */; i++) { keywords.push({ kind: i, text: TypeScript.SyntaxFacts.getText(i) }); } keywords.sort(function (a, b) { return a.text.localeCompare(b.text); }); diff --git a/src/services/syntax/SyntaxGenerator.js.map b/src/services/syntax/SyntaxGenerator.js.map index 8b703a393f1..39357942af1 100644 --- a/src/services/syntax/SyntaxGenerator.js.map +++ b/src/services/syntax/SyntaxGenerator.js.map @@ -15,6 +15,7 @@ <<<<<<< HEAD <<<<<<< HEAD <<<<<<< HEAD +<<<<<<< HEAD <<<<<<< Updated upstream {"version":3,"file":"SyntaxGenerator.js","sourceRoot":"","sources":["file:///C:/VSPro_1/src/typescript/public_cyrusn/src/compiler/sys.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/core/errors.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/core/arrayUtilities.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/core/stringUtilities.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/syntax/syntaxKind.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/syntax/syntaxFacts.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/syntax/SyntaxGenerator.ts"],"names":["getWScriptSystem","getWScriptSystem.readFile","getWScriptSystem.writeFile","getNodeSystem","getNodeSystem.readFile","getNodeSystem.writeFile","getNodeSystem.fileChanged","TypeScript","TypeScript.Errors","TypeScript.Errors.constructor","TypeScript.Errors.argument","TypeScript.Errors.argumentOutOfRange","TypeScript.Errors.argumentNull","TypeScript.Errors.abstract","TypeScript.Errors.notYetImplemented","TypeScript.Errors.invalidOperation","TypeScript.ArrayUtilities","TypeScript.ArrayUtilities.constructor","TypeScript.ArrayUtilities.sequenceEquals","TypeScript.ArrayUtilities.contains","TypeScript.ArrayUtilities.distinct","TypeScript.ArrayUtilities.last","TypeScript.ArrayUtilities.lastOrDefault","TypeScript.ArrayUtilities.firstOrDefault","TypeScript.ArrayUtilities.first","TypeScript.ArrayUtilities.sum","TypeScript.ArrayUtilities.select","TypeScript.ArrayUtilities.where","TypeScript.ArrayUtilities.any","TypeScript.ArrayUtilities.all","TypeScript.ArrayUtilities.binarySearch","TypeScript.ArrayUtilities.createArray","TypeScript.ArrayUtilities.grow","TypeScript.ArrayUtilities.copy","TypeScript.ArrayUtilities.indexOf","TypeScript.StringUtilities","TypeScript.StringUtilities.constructor","TypeScript.StringUtilities.isString","TypeScript.StringUtilities.endsWith","TypeScript.StringUtilities.startsWith","TypeScript.StringUtilities.repeat","TypeScript.SyntaxKind","TypeScript.SyntaxFacts","TypeScript.SyntaxFacts.getTokenKind","TypeScript.SyntaxFacts.getText","TypeScript.SyntaxFacts.isAnyKeyword","TypeScript.SyntaxFacts.isAnyPunctuation","TypeScript.SyntaxFacts.isPrefixUnaryExpressionOperatorToken","TypeScript.SyntaxFacts.isBinaryExpressionOperatorToken","TypeScript.SyntaxFacts.isAssignmentOperatorToken","TypeScript.SyntaxFacts.isType","firstKind","getStringWithoutSuffix","getNameWithoutSuffix","getType","camelCase","getSafeName","generateConstructorFunction","generateSyntaxInterfaces","generateSyntaxInterface","generateNodes","isInterface","generateWalker","firstEnumName","groupBy","generateKeywordCondition","min","max","generateUtilities","generateScannerUtilities","syntaxKindName","generateVisitor"],"mappings":"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"} ======= @@ -71,3 +72,6 @@ ======= {"version":3,"file":"SyntaxGenerator.js","sourceRoot":"","sources":["file:///C:/VSPro_1/src/typescript/public_cyrusn/src/compiler/sys.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/core/errors.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/core/arrayUtilities.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/core/stringUtilities.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/syntax/syntaxKind.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/syntax/syntaxFacts.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/syntax/SyntaxGenerator.ts"],"names":["getWScriptSystem","getWScriptSystem.readFile","getWScriptSystem.writeFile","getNodeSystem","getNodeSystem.readFile","getNodeSystem.writeFile","getNodeSystem.fileChanged","TypeScript","TypeScript.Errors","TypeScript.Errors.constructor","TypeScript.Errors.argument","TypeScript.Errors.argumentOutOfRange","TypeScript.Errors.argumentNull","TypeScript.Errors.abstract","TypeScript.Errors.notYetImplemented","TypeScript.Errors.invalidOperation","TypeScript.ArrayUtilities","TypeScript.ArrayUtilities.constructor","TypeScript.ArrayUtilities.sequenceEquals","TypeScript.ArrayUtilities.contains","TypeScript.ArrayUtilities.distinct","TypeScript.ArrayUtilities.last","TypeScript.ArrayUtilities.lastOrDefault","TypeScript.ArrayUtilities.firstOrDefault","TypeScript.ArrayUtilities.first","TypeScript.ArrayUtilities.sum","TypeScript.ArrayUtilities.select","TypeScript.ArrayUtilities.where","TypeScript.ArrayUtilities.any","TypeScript.ArrayUtilities.all","TypeScript.ArrayUtilities.binarySearch","TypeScript.ArrayUtilities.createArray","TypeScript.ArrayUtilities.grow","TypeScript.ArrayUtilities.copy","TypeScript.ArrayUtilities.indexOf","TypeScript.StringUtilities","TypeScript.StringUtilities.constructor","TypeScript.StringUtilities.isString","TypeScript.StringUtilities.endsWith","TypeScript.StringUtilities.startsWith","TypeScript.StringUtilities.repeat","TypeScript.SyntaxKind","TypeScript.SyntaxFacts","TypeScript.SyntaxFacts.getTokenKind","TypeScript.SyntaxFacts.getText","TypeScript.SyntaxFacts.isAnyKeyword","TypeScript.SyntaxFacts.isAnyPunctuation","TypeScript.SyntaxFacts.isPrefixUnaryExpressionOperatorToken","TypeScript.SyntaxFacts.isBinaryExpressionOperatorToken","TypeScript.SyntaxFacts.isAssignmentOperatorToken","TypeScript.SyntaxFacts.isType","getSyntaxKindEnum","firstKind","getStringWithoutSuffix","getNameWithoutSuffix","getType","camelCase","getSafeName","generateConstructorFunction","generateSyntaxInterfaces","generateSyntaxInterface","generateNodes","isInterface","generateWalker","firstEnumName","groupBy","generateKeywordCondition","min","max","generateUtilities","generateScannerUtilities","syntaxKindName","generateVisitor"],"mappings":"AA4BA,IAAI,GAAG,GAAW,CAAC;IAEf,SAAS,gBAAgB;QAErBA,IAAIA,GAAGA,GAAGA,IAAIA,aAAaA,CAACA,4BAA4BA,CAACA,CAACA;QAE1DA,IAAIA,UAAUA,GAAGA,IAAIA,aAAaA,CAACA,cAAcA,CAACA,CAACA;QACnDA,UAAUA,CAACA,IAAIA,GAAGA,CAACA,CAAUA;QAE7BA,IAAIA,YAAYA,GAAGA,IAAIA,aAAaA,CAACA,cAAcA,CAACA,CAACA;QACrDA,YAAYA,CAACA,IAAIA,GAAGA,CAACA,CAAYA;QAEjCA,IAAIA,IAAIA,GAAaA,EAAEA,CAACA;QACxBA,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,OAAOA,CAACA,SAASA,CAACA,MAAMA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;YAChDA,IAAIA,CAACA,CAACA,CAACA,GAAGA,OAAOA,CAACA,SAASA,CAACA,IAAIA,CAACA,CAACA,CAACA,CAACA;QACxCA,CAACA;QAEDA,SAASA,QAAQA,CAACA,QAAgBA,EAAEA,QAAiBA;YACjDC,EAAEA,CAACA,CAACA,CAACA,GAAGA,CAACA,UAAUA,CAACA,QAAQA,CAACA,CAACA,CAACA,CAACA;gBAC5BA,MAAMA,CAACA,SAASA,CAACA;YACrBA,CAACA;YACDA,UAAUA,CAACA,IAAIA,EAAEA,CAACA;YAClBA,IAAAA,CAACA;gBACGA,EAAEA,CAACA,CAACA,QAAQA,CAACA,CAACA,CAACA;oBACXA,UAAUA,CAACA,OAAOA,GAAGA,QAAQA,CAACA;oBAC9BA,UAAUA,CAACA,YAAYA,CAACA,QAAQA,CAACA,CAACA;gBACtCA,CAACA;gBACDA,IAAIA,CAACA,CAACA;oBAEFA,UAAUA,CAACA,OAAOA,GAAGA,QAAQA,CAACA;oBAC9BA,UAAUA,CAACA,YAAYA,CAACA,QAAQA,CAACA,CAACA;oBAClCA,IAAIA,GAAGA,GAAGA,UAAUA,CAACA,QAAQA,CAACA,CAACA,CAACA,IAAIA,EAAEA,CAACA;oBAEvCA,UAAUA,CAACA,QAAQA,GAAGA,CAACA,CAACA;oBAExBA,UAAUA,CAACA,OAAOA,GAAGA,GAAGA,CAACA,MAAMA,IAAIA,CAACA,IAAIA,CAACA,GAAGA,CAACA,UAAUA,CAACA,CAACA,CAACA,KAAKA,IAAIA,IAAIA,GAAGA,CAACA,UAAUA,CAACA,CAACA,CAACA,KAAKA,IAAIA,IAAIA,GAAGA,CAACA,UAAUA,CAACA,CAACA,CAACA,KAAKA,IAAIA,IAAIA,GAAGA,CAACA,UAAUA,CAACA,CAACA,CAACA,KAAKA,IAAIA,CAACA,GAAGA,SAASA,GAAGA,OAAOA,CAACA;gBACzLA,CAACA;gBAEDA,MAAMA,CAACA,UAAUA,CAACA,QAAQA,EAAEA,CAACA;YACjCA,CACAA;YAAAA,KAAKA,CAACA,CAACA,CAACA,CAACA,CAATA,CAACA;gBACGA,MAAMA,CAACA,CAACA;YACZA,CAACA;oBACDA,CAACA;gBACGA,UAAUA,CAACA,KAAKA,EAAEA,CAACA;YACvBA,CAACA;QACLA,CAACA;QAEDD,SAASA,SAASA,CAACA,QAAgBA,EAAEA,IAAYA,EAAEA,kBAA4BA;YAC3EE,UAAUA,CAACA,IAAIA,EAAEA,CAACA;YAClBA,YAAYA,CAACA,IAAIA,EAAEA,CAACA;YACpBA,IAAAA,CAACA;gBAEGA,UAAUA,CAACA,OAAOA,GAAGA,OAAOA,CAACA;gBAC7BA,UAAUA,CAACA,SAASA,CAACA,IAAIA,CAACA,CAACA;gBAG3BA,EAAEA,CAACA,CAACA,kBAAkBA,CAACA,CAACA,CAACA;oBACrBA,UAAUA,CAACA,QAAQA,GAAGA,CAACA,CAACA;gBAC5BA,CAACA;gBACDA,IAAIA,CAACA,CAACA;oBACFA,UAAUA,CAACA,QAAQA,GAAGA,CAACA,CAACA;gBAC5BA,CAACA;gBACDA,UAAUA,CAACA,MAAMA,CAACA,YAAYA,CAACA,CAACA;gBAChCA,YAAYA,CAACA,UAAUA,CAACA,QAAQA,EAAEA,CAACA,CAAeA,CAACA;YACvDA,CAACA;oBACDA,CAACA;gBACGA,YAAYA,CAACA,KAAKA,EAAEA,CAACA;gBACrBA,UAAUA,CAACA,KAAKA,EAAEA,CAACA;YACvBA,CAACA;QACLA,CAACA;QAEDF,MAAMA,CAACA;YACHA,IAAIA,MAAAA;YACJA,OAAOA,EAAEA,MAAMA;YACfA,yBAAyBA,EAAEA,KAAKA;YAChCA,KAAKA,EAALA,UAAMA,CAASA;gBACX,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAC5B,CAAC;YACDA,QAAQA,UAAAA;YACRA,SAASA,WAAAA;YACTA,WAAWA,EAAXA,UAAYA,IAAYA;gBACpB,MAAM,CAAC,GAAG,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;YACzC,CAAC;YACDA,UAAUA,EAAVA,UAAWA,IAAYA;gBACnB,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YAChC,CAAC;YACDA,eAAeA,EAAfA,UAAgBA,IAAYA;gBACxB,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;YAClC,CAAC;YACDA,eAAeA,EAAfA,UAAgBA,aAAqBA;gBACjC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;oBACvC,GAAG,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC;gBACpC,CAAC;YACL,CAAC;YACDA,oBAAoBA,EAApBA;gBACI,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC;YAClC,CAAC;YACDA,mBAAmBA,EAAnBA;gBACI,MAAM,CAAC,IAAI,aAAa,CAAC,eAAe,CAAC,CAAC,gBAAgB,CAAC;YAC/D,CAAC;YACDA,IAAIA,EAAJA,UAAKA,QAAiBA;gBAClB,IAAA,CAAC;oBACG,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBAC3B,CACA;gBAAA,KAAK,CAAC,CAAC,CAAC,CAAC,CAAT,CAAC;gBACD,CAAC;YACL,CAAC;SACJA,CAACA;IACNA,CAACA;IACD,SAAS,aAAa;QAClBG,IAAIA,GAAGA,GAAGA,OAAOA,CAACA,IAAIA,CAACA,CAACA;QACxBA,IAAIA,KAAKA,GAAGA,OAAOA,CAACA,MAAMA,CAACA,CAACA;QAC5BA,IAAIA,GAAGA,GAAGA,OAAOA,CAACA,IAAIA,CAACA,CAACA;QAExBA,IAAIA,QAAQA,GAAWA,GAAGA,CAACA,QAAQA,EAAEA,CAACA;QAEtCA,IAAIA,yBAAyBA,GAAGA,QAAQA,KAAKA,OAAOA,IAAIA,QAAQA,KAAKA,OAAOA,IAAIA,QAAQA,KAAKA,QAAQA,CAACA;QAEtGA,SAASA,QAAQA,CAACA,QAAgBA,EAAEA,QAAiBA;YACjDC,EAAEA,CAACA,CAACA,CAACA,GAAGA,CAACA,UAAUA,CAACA,QAAQA,CAACA,CAACA,CAACA,CAACA;gBAC5BA,MAAMA,CAACA,SAASA,CAACA;YACrBA,CAACA;YACDA,IAAIA,MAAMA,GAAGA,GAAGA,CAACA,YAAYA,CAACA,QAAQA,CAACA,CAACA;YACxCA,IAAIA,GAAGA,GAAGA,MAAMA,CAACA,MAAMA,CAACA;YACxBA,EAAEA,CAACA,CAACA,GAAGA,IAAIA,CAACA,IAAIA,MAAMA,CAACA,CAACA,CAACA,KAAKA,IAAIA,IAAIA,MAAMA,CAACA,CAACA,CAACA,KAAKA,IAAIA,CAACA,CAACA,CAACA;gBAGvDA,GAAGA,IAAIA,CAACA,CAACA,CAACA;gBACVA,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,GAAGA,EAAEA,CAACA,IAAIA,CAACA,EAAEA,CAACA;oBAC9BA,IAAIA,IAAIA,GAAGA,MAAMA,CAACA,CAACA,CAACA,CAACA;oBACrBA,MAAMA,CAACA,CAACA,CAACA,GAAGA,MAAMA,CAACA,CAACA,GAAGA,CAACA,CAACA,CAACA;oBAC1BA,MAAMA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,IAAIA,CAACA;gBACzBA,CAACA;gBACDA,MAAMA,CAACA,MAAMA,CAACA,QAAQA,CAACA,SAASA,EAAEA,CAACA,CAACA,CAACA;YACzCA,CAACA;YACDA,EAAEA,CAACA,CAACA,GAAGA,IAAIA,CAACA,IAAIA,MAAMA,CAACA,CAACA,CAACA,KAAKA,IAAIA,IAAIA,MAAMA,CAACA,CAACA,CAACA,KAAKA,IAAIA,CAACA,CAACA,CAACA;gBAEvDA,MAAMA,CAACA,MAAMA,CAACA,QAAQA,CAACA,SAASA,EAAEA,CAACA,CAACA,CAACA;YACzCA,CAACA;YACDA,EAAEA,CAACA,CAACA,GAAGA,IAAIA,CAACA,IAAIA,MAAMA,CAACA,CAACA,CAACA,KAAKA,IAAIA,IAAIA,MAAMA,CAACA,CAACA,CAACA,KAAKA,IAAIA,IAAIA,MAAMA,CAACA,CAACA,CAACA,KAAKA,IAAIA,CAACA,CAACA,CAACA;gBAE7EA,MAAMA,CAACA,MAAMA,CAACA,QAAQA,CAACA,MAAMA,EAAEA,CAACA,CAACA,CAACA;YACtCA,CAACA;YAEDA,MAAMA,CAACA,MAAMA,CAACA,QAAQA,CAACA,MAAMA,CAACA,CAACA;QACnCA,CAACA;QAEDD,SAASA,SAASA,CAACA,QAAgBA,EAAEA,IAAYA,EAAEA,kBAA4BA;YAE3EE,EAAEA,CAACA,CAACA,kBAAkBA,CAACA,CAACA,CAACA;gBACrBA,IAAIA,GAAGA,QAAQA,GAAGA,IAAIA,CAACA;YAC3BA,CAACA;YAEDA,GAAGA,CAACA,aAAaA,CAACA,QAAQA,EAAEA,IAAIA,EAAEA,MAAMA,CAACA,CAACA;QAC9CA,CAACA;QAEDF,MAAMA,CAACA;YACHA,IAAIA,EAAEA,OAAOA,CAACA,IAAIA,CAACA,KAAKA,CAACA,CAACA,CAACA;YAC3BA,OAAOA,EAAEA,GAAGA,CAACA,GAAGA;YAChBA,yBAAyBA,EAAEA,yBAAyBA;YACpDA,KAAKA,EAALA,UAAMA,CAASA;gBAEZ,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YACvB,CAAC;YACDA,QAAQA,UAAAA;YACRA,SAASA,WAAAA;YACTA,SAASA,EAAEA,UAACA,QAAQA,EAAEA,QAAQA;gBAE1BA,GAAGA,CAACA,SAASA,CAACA,QAAQA,EAAEA,EAAEA,UAAUA,EAAEA,IAAIA,EAAEA,QAAQA,EAAEA,GAAGA,EAAEA,EAAEA,WAAWA,CAACA,CAACA;gBAE1EA,MAAMA,CAACA;oBACHA,KAAKA,EAALA;wBAAU,GAAG,CAAC,WAAW,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;oBAAC,CAAC;iBACtDA,CAACA;gBAEFA,SAASA,WAAWA,CAACA,IAASA,EAAEA,IAASA;oBACrCG,EAAEA,CAACA,CAACA,CAACA,IAAIA,CAACA,KAAKA,IAAIA,CAACA,IAAIA,CAACA,KAAKA,CAACA,CAACA,CAACA;wBAC7BA,MAAMA,CAACA;oBACXA,CAACA;oBAEDA,QAAQA,CAACA,QAAQA,CAACA,CAACA;gBACvBA,CAACA;gBAAAH,CAACA;YACNA,CAACA;YACDA,WAAWA,EAAEA,UAAUA,IAAYA;gBAC/B,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAC/B,CAAC;YACDA,UAAUA,EAAVA,UAAWA,IAAYA;gBACnB,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YAChC,CAAC;YACDA,eAAeA,EAAfA,UAAgBA,IAAYA;gBACxB,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC;YACpE,CAAC;YACDA,eAAeA,EAAfA,UAAgBA,aAAqBA;gBACjC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;oBACvC,GAAG,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;gBACjC,CAAC;YACL,CAAC;YACDA,oBAAoBA,EAApBA;gBACI,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC;YACvC,CAAC;YACDA,mBAAmBA,EAAnBA;gBACI,MAAM,CAAO,OAAQ,CAAC,GAAG,EAAE,CAAC;YAChC,CAAC;YACDA,cAAcA,EAAdA;gBACI,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;oBACZ,MAAM,CAAC,EAAE,EAAE,CAAC;gBAChB,CAAC;gBACD,MAAM,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC;YAC1C,CAAC;YACDA,IAAIA,EAAJA,UAAKA,QAAiBA;gBAClB,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC3B,CAAC;SACJA,CAACA;IACNA,CAACA;IACD,EAAE,CAAC,CAAC,OAAO,OAAO,KAAK,WAAW,IAAI,OAAO,aAAa,KAAK,UAAU,CAAC,CAAC,CAAC;QACxE,MAAM,CAAC,gBAAgB,EAAE,CAAC;IAC9B,CAAC;IACD,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,KAAK,WAAW,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;QACvD,MAAM,CAAC,aAAa,EAAE,CAAC;IAC3B,CAAC;IACD,IAAI,CAAC,CAAC;QACF,MAAM,CAAC,SAAS,CAAC;IACrB,CAAC;AACL,CAAC,CAAC,EAAE,CAAC;ACzPL,IAAO,UAAU,CA0BhB;AA1BD,WAAO,UAAU,EAAC,CAAC;IACfI,IAAaA,MAAMA;QAAnBC,SAAaA,MAAMA;QAwBnBC,CAACA;QAvBiBD,eAAQA,GAAtBA,UAAuBA,QAAgBA,EAAEA,OAAgBA;YACrDE,MAAMA,CAACA,IAAIA,KAAKA,CAACA,oBAAoBA,GAAGA,QAAQA,GAAGA,IAAIA,GAAGA,OAAOA,CAACA,CAACA;QACvEA,CAACA;QAEaF,yBAAkBA,GAAhCA,UAAiCA,QAAgBA;YAC7CG,MAAMA,CAACA,IAAIA,KAAKA,CAACA,yBAAyBA,GAAGA,QAAQA,CAACA,CAACA;QAC3DA,CAACA;QAEaH,mBAAYA,GAA1BA,UAA2BA,QAAgBA;YACvCI,MAAMA,CAACA,IAAIA,KAAKA,CAACA,iBAAiBA,GAAGA,QAAQA,CAACA,CAACA;QACnDA,CAACA;QAEaJ,eAAQA,GAAtBA;YACIK,MAAMA,CAACA,IAAIA,KAAKA,CAACA,iDAAiDA,CAACA,CAACA;QACxEA,CAACA;QAEaL,wBAAiBA,GAA/BA;YACIM,MAAMA,CAACA,IAAIA,KAAKA,CAACA,sBAAsBA,CAACA,CAACA;QAC7CA,CAACA;QAEaN,uBAAgBA,GAA9BA,UAA+BA,OAAgBA;YAC3CO,MAAMA,CAACA,IAAIA,KAAKA,CAACA,qBAAqBA,GAAGA,OAAOA,CAACA,CAACA;QACtDA,CAACA;QACLP,aAACA;IAADA,CAACA,AAxBDD,IAwBCA;IAxBYA,iBAAMA,GAANA,MAwBZA,CAAAA;AACLA,CAACA,EA1BM,UAAU,KAAV,UAAU,QA0BhB;AC1BD,IAAO,UAAU,CA0MhB;AA1MD,WAAO,UAAU,EAAC,CAAC;IACfA,IAAaA,cAAcA;QAA3BS,SAAaA,cAAcA;QAwM3BC,CAACA;QAvMiBD,6BAAcA,GAA5BA,UAAgCA,MAAWA,EAAEA,MAAWA,EAAEA,MAAiCA;YACvFE,EAAEA,CAACA,CAACA,MAAMA,KAAKA,MAAMA,CAACA,CAACA,CAACA;gBACpBA,MAAMA,CAACA,IAAIA,CAACA;YAChBA,CAACA;YAEDA,EAAEA,CAACA,CAACA,CAACA,MAAMA,IAAIA,CAACA,MAAMA,CAACA,CAACA,CAACA;gBACrBA,MAAMA,CAACA,KAAKA,CAACA;YACjBA,CAACA;YAEDA,EAAEA,CAACA,CAACA,MAAMA,CAACA,MAAMA,KAAKA,MAAMA,CAACA,MAAMA,CAACA,CAACA,CAACA;gBAClCA,MAAMA,CAACA,KAAKA,CAACA;YACjBA,CAACA;YAEDA,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,MAAMA,CAACA,MAAMA,EAAEA,CAACA,GAAGA,CAACA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;gBAC5CA,EAAEA,CAACA,CAACA,CAACA,MAAMA,CAACA,MAAMA,CAACA,CAACA,CAACA,EAAEA,MAAMA,CAACA,CAACA,CAACA,CAACA,CAACA,CAACA,CAACA;oBAChCA,MAAMA,CAACA,KAAKA,CAACA;gBACjBA,CAACA;YACLA,CAACA;YAEDA,MAAMA,CAACA,IAAIA,CAACA;QAChBA,CAACA;QAEaF,uBAAQA,GAAtBA,UAA0BA,KAAUA,EAAEA,KAAQA;YAC1CG,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,KAAKA,CAACA,MAAMA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;gBACpCA,EAAEA,CAACA,CAACA,KAAKA,CAACA,CAACA,CAACA,KAAKA,KAAKA,CAACA,CAACA,CAACA;oBACrBA,MAAMA,CAACA,IAAIA,CAACA;gBAChBA,CAACA;YACLA,CAACA;YAEDA,MAAMA,CAACA,KAAKA,CAACA;QACjBA,CAACA;QAGaH,uBAAQA,GAAtBA,UAA0BA,KAAUA,EAAEA,QAAkCA;YACpEI,IAAIA,MAAMA,GAAQA,EAAEA,CAACA;YAGrBA,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,KAAKA,CAACA,MAAMA,EAAEA,CAACA,GAAGA,CAACA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;gBAC3CA,IAAIA,OAAOA,GAAGA,KAAKA,CAACA,CAACA,CAACA,CAACA;gBACvBA,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,MAAMA,CAACA,MAAMA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;oBACrCA,EAAEA,CAACA,CAACA,QAAQA,CAACA,MAAMA,CAACA,CAACA,CAACA,EAAEA,OAAOA,CAACA,CAACA,CAACA,CAACA;wBAC/BA,KAAKA,CAACA;oBACVA,CAACA;gBACLA,CAACA;gBAEDA,EAAEA,CAACA,CAACA,CAACA,KAAKA,MAAMA,CAACA,MAAMA,CAACA,CAACA,CAACA;oBACtBA,MAAMA,CAACA,IAAIA,CAACA,OAAOA,CAACA,CAACA;gBACzBA,CAACA;YACLA,CAACA;YAEDA,MAAMA,CAACA,MAAMA,CAACA;QAClBA,CAACA;QAEaJ,mBAAIA,GAAlBA,UAAsBA,KAAUA;YAC5BK,EAAEA,CAACA,CAACA,KAAKA,CAACA,MAAMA,KAAKA,CAACA,CAACA,CAACA,CAACA;gBACrBA,MAAMA,iBAAMA,CAACA,kBAAkBA,CAACA,OAAOA,CAACA,CAACA;YAC7CA,CAACA;YAEDA,MAAMA,CAACA,KAAKA,CAACA,KAAKA,CAACA,MAAMA,GAAGA,CAACA,CAACA,CAACA;QACnCA,CAACA;QAEaL,4BAAaA,GAA3BA,UAA+BA,KAAUA,EAAEA,SAA2CA;YAClFM,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,KAAKA,CAACA,MAAMA,GAAGA,CAACA,EAAEA,CAACA,IAAIA,CAACA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;gBACzCA,IAAIA,CAACA,GAAGA,KAAKA,CAACA,CAACA,CAACA,CAACA;gBACjBA,EAAEA,CAACA,CAACA,SAASA,CAACA,CAACA,EAAEA,CAACA,CAACA,CAACA,CAACA,CAACA;oBAClBA,MAAMA,CAACA,CAACA,CAACA;gBACbA,CAACA;YACLA,CAACA;YAEDA,MAAMA,CAACA,SAASA,CAACA;QACrBA,CAACA;QAEaN,6BAAcA,GAA5BA,UAAgCA,KAAUA,EAAEA,IAAsCA;YAC9EO,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,KAAKA,CAACA,MAAMA,EAAEA,CAACA,GAAGA,CAACA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;gBAC3CA,IAAIA,KAAKA,GAAGA,KAAKA,CAACA,CAACA,CAACA,CAACA;gBACrBA,EAAEA,CAACA,CAACA,IAAIA,CAACA,KAAKA,EAAEA,CAACA,CAACA,CAACA,CAACA,CAACA;oBACjBA,MAAMA,CAACA,KAAKA,CAACA;gBACjBA,CAACA;YACLA,CAACA;YAEDA,MAAMA,CAACA,SAASA,CAACA;QACrBA,CAACA;QAEaP,oBAAKA,GAAnBA,UAAuBA,KAAUA,EAAEA,IAAuCA;YACtEQ,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,KAAKA,CAACA,MAAMA,EAAEA,CAACA,GAAGA,CAACA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;gBAC3CA,IAAIA,KAAKA,GAAGA,KAAKA,CAACA,CAACA,CAACA,CAACA;gBACrBA,EAAEA,CAACA,CAACA,CAACA,IAAIA,IAAIA,IAAIA,CAACA,KAAKA,EAAEA,CAACA,CAACA,CAACA,CAACA,CAACA;oBAC1BA,MAAMA,CAACA,KAAKA,CAACA;gBACjBA,CAACA;YACLA,CAACA;YAEDA,MAAMA,iBAAMA,CAACA,gBAAgBA,EAAEA,CAACA;QACpCA,CAACA;QAEaR,kBAAGA,GAAjBA,UAAqBA,KAAUA,EAAEA,IAAsBA;YACnDS,IAAIA,MAAMA,GAAGA,CAACA,CAACA;YAEfA,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,KAAKA,CAACA,MAAMA,EAAEA,CAACA,GAAGA,CAACA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;gBAC3CA,MAAMA,IAAIA,IAAIA,CAACA,KAAKA,CAACA,CAACA,CAACA,CAACA,CAACA;YAC7BA,CAACA;YAEDA,MAAMA,CAACA,MAAMA,CAACA;QAClBA,CAACA;QAEaT,qBAAMA,GAApBA,UAA0BA,MAAWA,EAAEA,IAAiBA;YACpDU,IAAIA,MAAMA,GAAQA,IAAIA,KAAKA,CAAIA,MAAMA,CAACA,MAAMA,CAACA,CAACA;YAE9CA,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,MAAMA,CAACA,MAAMA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;gBACrCA,MAAMA,CAACA,CAACA,CAACA,GAAGA,IAAIA,CAACA,MAAMA,CAACA,CAACA,CAACA,CAACA,CAACA;YAChCA,CAACA;YAEDA,MAAMA,CAACA,MAAMA,CAACA;QAClBA,CAACA;QAEaV,oBAAKA,GAAnBA,UAAuBA,MAAWA,EAAEA,IAAuBA;YACvDW,IAAIA,MAAMA,GAAGA,IAAIA,KAAKA,EAAKA,CAACA;YAE5BA,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,MAAMA,CAACA,MAAMA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;gBACrCA,EAAEA,CAACA,CAACA,IAAIA,CAACA,MAAMA,CAACA,CAACA,CAACA,CAACA,CAACA,CAACA,CAACA;oBAClBA,MAAMA,CAACA,IAAIA,CAACA,MAAMA,CAACA,CAACA,CAACA,CAACA,CAACA;gBAC3BA,CAACA;YACLA,CAACA;YAEDA,MAAMA,CAACA,MAAMA,CAACA;QAClBA,CAACA;QAEaX,kBAAGA,GAAjBA,UAAqBA,KAAUA,EAAEA,IAAuBA;YACpDY,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,KAAKA,CAACA,MAAMA,EAAEA,CAACA,GAAGA,CAACA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;gBAC3CA,EAAEA,CAACA,CAACA,IAAIA,CAACA,KAAKA,CAACA,CAACA,CAACA,CAACA,CAACA,CAACA,CAACA;oBACjBA,MAAMA,CAACA,IAAIA,CAACA;gBAChBA,CAACA;YACLA,CAACA;YAEDA,MAAMA,CAACA,KAAKA,CAACA;QACjBA,CAACA;QAEaZ,kBAAGA,GAAjBA,UAAqBA,KAAUA,EAAEA,IAAuBA;YACpDa,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,KAAKA,CAACA,MAAMA,EAAEA,CAACA,GAAGA,CAACA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;gBAC3CA,EAAEA,CAACA,CAACA,CAACA,IAAIA,CAACA,KAAKA,CAACA,CAACA,CAACA,CAACA,CAACA,CAACA,CAACA;oBAClBA,MAAMA,CAACA,KAAKA,CAACA;gBACjBA,CAACA;YACLA,CAACA;YAEDA,MAAMA,CAACA,IAAIA,CAACA;QAChBA,CAACA;QAEab,2BAAYA,GAA1BA,UAA2BA,KAAeA,EAAEA,KAAaA;YACrDc,IAAIA,GAAGA,GAAGA,CAACA,CAACA;YACZA,IAAIA,IAAIA,GAAGA,KAAKA,CAACA,MAAMA,GAAGA,CAACA,CAACA;YAE5BA,OAAOA,GAAGA,IAAIA,IAAIA,EAAEA,CAACA;gBACjBA,IAAIA,MAAMA,GAAGA,GAAGA,GAAGA,CAACA,CAACA,IAAIA,GAAGA,GAAGA,CAACA,IAAIA,CAACA,CAACA,CAACA;gBACvCA,IAAIA,QAAQA,GAAGA,KAAKA,CAACA,MAAMA,CAACA,CAACA;gBAE7BA,EAAEA,CAACA,CAACA,QAAQA,KAAKA,KAAKA,CAACA,CAACA,CAACA;oBACrBA,MAAMA,CAACA,MAAMA,CAACA;gBAClBA,CAACA;gBACDA,IAAIA,CAACA,EAAEA,CAACA,CAACA,QAAQA,GAAGA,KAAKA,CAACA,CAACA,CAACA;oBACxBA,IAAIA,GAAGA,MAAMA,GAAGA,CAACA,CAACA;gBACtBA,CAACA;gBACDA,IAAIA,CAACA,CAACA;oBACFA,GAAGA,GAAGA,MAAMA,GAAGA,CAACA,CAACA;gBACrBA,CAACA;YACLA,CAACA;YAEDA,MAAMA,CAACA,CAACA,GAAGA,CAACA;QAChBA,CAACA;QAEad,0BAAWA,GAAzBA,UAA6BA,MAAcA,EAAEA,YAAiBA;YAC1De,IAAIA,MAAMA,GAAGA,IAAIA,KAAKA,CAAIA,MAAMA,CAACA,CAACA;YAClCA,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,MAAMA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;gBAC9BA,MAAMA,CAACA,CAACA,CAACA,GAAGA,YAAYA,CAACA;YAC7BA,CAACA;YAEDA,MAAMA,CAACA,MAAMA,CAACA;QAClBA,CAACA;QAEaf,mBAAIA,GAAlBA,UAAsBA,KAAUA,EAAEA,MAAcA,EAAEA,YAAeA;YAC7DgB,IAAIA,KAAKA,GAAGA,MAAMA,GAAGA,KAAKA,CAACA,MAAMA,CAACA;YAClCA,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,KAAKA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;gBAC7BA,KAAKA,CAACA,IAAIA,CAACA,YAAYA,CAACA,CAACA;YAC7BA,CAACA;QACLA,CAACA;QAEahB,mBAAIA,GAAlBA,UAAsBA,WAAgBA,EAAEA,WAAmBA,EAAEA,gBAAqBA,EAAEA,gBAAwBA,EAAEA,MAAcA;YACxHiB,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,MAAMA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;gBAC9BA,gBAAgBA,CAACA,gBAAgBA,GAAGA,CAACA,CAACA,GAAGA,WAAWA,CAACA,WAAWA,GAAGA,CAACA,CAACA,CAACA;YAC1EA,CAACA;QACLA,CAACA;QAEajB,sBAAOA,GAArBA,UAAyBA,KAAUA,EAAEA,SAA4BA;YAC7DkB,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,KAAKA,CAACA,MAAMA,EAAEA,CAACA,GAAGA,CAACA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;gBAC3CA,EAAEA,CAACA,CAACA,SAASA,CAACA,KAAKA,CAACA,CAACA,CAACA,CAACA,CAACA,CAACA,CAACA;oBACtBA,MAAMA,CAACA,CAACA,CAACA;gBACbA,CAACA;YACLA,CAACA;YAEDA,MAAMA,CAACA,CAACA,CAACA,CAACA;QACdA,CAACA;QACLlB,qBAACA;IAADA,CAACA,AAxMDT,IAwMCA;IAxMYA,yBAAcA,GAAdA,cAwMZA,CAAAA;AACLA,CAACA,EA1MM,UAAU,KAAV,UAAU,QA0MhB;AC1MD,IAAO,UAAU,CAkBhB;AAlBD,WAAO,UAAU,EAAC,CAAC;IACfA,IAAaA,eAAeA;QAA5B4B,SAAaA,eAAeA;QAgB5BC,CAACA;QAfiBD,wBAAQA,GAAtBA,UAAuBA,KAAUA;YAC7BE,MAAMA,CAACA,MAAMA,CAACA,SAASA,CAACA,QAAQA,CAACA,KAAKA,CAACA,KAAKA,EAAEA,EAAEA,CAACA,KAAKA,iBAAiBA,CAACA;QAC5EA,CAACA;QAEaF,wBAAQA,GAAtBA,UAAuBA,MAAcA,EAAEA,KAAaA;YAChDG,MAAMA,CAACA,MAAMA,CAACA,SAASA,CAACA,MAAMA,CAACA,MAAMA,GAAGA,KAAKA,CAACA,MAAMA,EAAEA,MAAMA,CAACA,MAAMA,CAACA,KAAKA,KAAKA,CAACA;QACnFA,CAACA;QAEaH,0BAAUA,GAAxBA,UAAyBA,MAAcA,EAAEA,KAAaA;YAClDI,MAAMA,CAACA,MAAMA,CAACA,MAAMA,CAACA,CAACA,EAAEA,KAAKA,CAACA,MAAMA,CAACA,KAAKA,KAAKA,CAACA;QACpDA,CAACA;QAEaJ,sBAAMA,GAApBA,UAAqBA,KAAaA,EAAEA,KAAaA;YAC7CK,MAAMA,CAACA,KAAKA,CAACA,KAAKA,GAAGA,CAACA,CAACA,CAACA,IAAIA,CAACA,KAAKA,CAACA,CAACA;QACxCA,CAACA;QACLL,sBAACA;IAADA,CAACA,AAhBD5B,IAgBCA;IAhBYA,0BAAeA,GAAfA,eAgBZA,CAAAA;AACLA,CAACA,EAlBM,UAAU,KAAV,UAAU,QAkBhB;AClBD,IAAO,UAAU,CA+ShB;AA/SD,WAAO,UAAU,EAAC,CAAC;IACfA,WAAkBA,UAAUA;QAExBkC,2CAAIA;QACJA,2CAAIA;QAGJA,mEAAgBA;QAChBA,6DAAaA;QACbA,+EAAsBA;QACtBA,iFAAuBA;QACvBA,uEAAkBA;QAIlBA,uDAAUA;QACVA,+DAAcA;QAGdA,+DAAcA;QAGdA,oFAAwBA;QACxBA,gEAAcA;QACdA,8DAAaA;QAGbA,0FAA2BA;QAC3BA,wEAAkBA;QAClBA,0EAAmBA;QACnBA,oEAAgBA;QAKhBA,4DAAYA;QACZA,0DAAWA;QACXA,4DAAYA;QACZA,kEAAeA;QACfA,kEAAeA;QACfA,gEAAcA;QACdA,8DAAaA;QACbA,sDAASA;QACTA,0DAAWA;QACXA,4DAAYA;QACZA,gEAAcA;QACdA,wDAAUA;QACVA,kEAAeA;QACfA,sDAASA;QACTA,sDAASA;QACTA,sEAAiBA;QACjBA,wDAAUA;QACVA,0DAAWA;QACXA,8DAAaA;QACbA,8DAAaA;QACbA,0DAAWA;QACXA,4DAAYA;QACZA,0DAAWA;QACXA,wDAAUA;QACVA,8DAAaA;QACbA,wDAAUA;QACVA,0DAAWA;QACXA,4DAAYA;QACZA,0DAAWA;QAGXA,4DAAYA;QACZA,4DAAYA;QACZA,0DAAWA;QACXA,8DAAaA;QACbA,gEAAcA;QACdA,8DAAaA;QACbA,4DAAYA;QAGZA,sEAAiBA;QACjBA,oEAAgBA;QAChBA,wDAAUA;QACVA,gEAAcA;QACdA,gEAAcA;QACdA,oEAAgBA;QAChBA,8DAAaA;QACbA,8DAAaA;QACbA,4DAAYA;QAGZA,wDAAUA;QACVA,4DAAYA;QACZA,4DAAYA;QACZA,gEAAcA;QACdA,wEAAkBA;QAClBA,gEAAcA;QACdA,wDAAUA;QACVA,8DAAaA;QACbA,gEAAcA;QACdA,8DAAaA;QACbA,wDAAUA;QACVA,8DAAaA;QAGbA,gEAAcA;QACdA,kEAAeA;QACfA,gEAAcA;QACdA,kEAAeA;QACfA,oEAAgBA;QAChBA,sEAAiBA;QACjBA,oDAAQA;QACRA,gEAAcA;QACdA,gEAAcA;QACdA,wDAAUA;QACVA,8DAAaA;QACbA,oEAAgBA;QAChBA,0EAAmBA;QACnBA,gFAAsBA;QACtBA,sEAAiBA;QACjBA,gFAAsBA;QACtBA,gFAAsBA;QACtBA,kFAAuBA;QACvBA,4FAA4BA;QAC5BA,sDAASA;QACTA,wDAAUA;QACVA,8DAAaA;QACbA,4DAAYA;QACZA,8DAAaA;QACbA,kEAAeA;QACfA,8EAAqBA;QACrBA,2FAA2BA;QAC3BA,iHAAsCA;QACtCA,iEAAcA;QACdA,qDAAQA;QACRA,yDAAUA;QACVA,qEAAgBA;QAChBA,yDAAUA;QACVA,mFAAuBA;QACvBA,2DAAWA;QACXA,+DAAaA;QACbA,yDAAUA;QACVA,2DAAWA;QACXA,mEAAeA;QACfA,qEAAgBA;QAChBA,2EAAmBA;QACnBA,yEAAkBA;QAClBA,2FAA2BA;QAC3BA,uGAAiCA;QACjCA,6HAA4CA;QAC5CA,6EAAoBA;QACpBA,iEAAcA;QACdA,qEAAgBA;QAChBA,yDAAUA;QACVA,qEAAgBA;QAGhBA,yDAAUA;QAGVA,+DAAaA;QAGbA,yDAAUA;QACVA,6DAAYA;QACZA,uDAASA;QACTA,mEAAeA;QACfA,2DAAWA;QACXA,uDAASA;QACTA,uDAASA;QACTA,uDAASA;QACTA,uEAAiBA;QAGjBA,6EAAoBA;QACpBA,2EAAmBA;QACnBA,uEAAiBA;QACjBA,qEAAgBA;QAChBA,mEAAeA;QACfA,uEAAiBA;QACjBA,qEAAgBA;QAGhBA,uFAAyBA;QACzBA,uFAAyBA;QACzBA,iFAAsBA;QACtBA,iFAAsBA;QAGtBA,2DAAWA;QACXA,2DAAWA;QAGXA,uEAAiBA;QACjBA,+DAAaA;QACbA,yEAAkBA;QAClBA,iEAAcA;QACdA,mEAAeA;QAGfA,+CAAKA;QACLA,2DAAWA;QACXA,uEAAiBA;QACjBA,2EAAmBA;QACnBA,mEAAeA;QACfA,mEAAeA;QACfA,iEAAcA;QACdA,uEAAiBA;QACjBA,6DAAYA;QACZA,iEAAcA;QACdA,iEAAcA;QACdA,iEAAcA;QACdA,iEAAcA;QACdA,6DAAYA;QACZA,qEAAgBA;QAChBA,2DAAWA;QACXA,uEAAiBA;QACjBA,+DAAaA;QAGbA,+EAAqBA;QACrBA,qEAAgBA;QAChBA,qEAAgBA;QAChBA,iEAAcA;QACdA,+EAAqBA;QACrBA,qEAAgBA;QAChBA,iFAAsBA;QACtBA,iFAAsBA;QACtBA,6EAAoBA;QACpBA,iFAAsBA;QACtBA,mFAAuBA;QACvBA,qFAAwBA;QACxBA,mFAAuBA;QACvBA,6GAAoCA;QACpCA,+FAA6BA;QAC7BA,iEAAcA;QACdA,mFAAuBA;QACvBA,yEAAkBA;QAClBA,uEAAiBA;QACjBA,yEAAkBA;QAClBA,qFAAwBA;QACxBA,mEAAeA;QACfA,mEAAeA;QAGfA,2EAAmBA;QACnBA,yEAAkBA;QAGlBA,6DAAYA;QACZA,+DAAaA;QACbA,qEAAgBA;QAChBA,uEAAiBA;QAGjBA,iEAAcA;QACdA,uEAAiBA;QACjBA,qEAAgBA;QAChBA,2EAAmBA;QACnBA,yDAAUA;QACVA,2DAAWA;QACXA,+DAAaA;QACbA,iEAAcA;QAGdA,+DAAaA;QACbA,yDAAUA;QAGVA,uDAASA;QACTA,2DAAWA;QACXA,iEAAcA;QACdA,iEAAcA;QACdA,6EAAoBA;QACpBA,yEAAkBA;QAClBA,mFAAuBA;QACvBA,uFAAyBA;QAEzBA,4EAAmCA;QACnCA,0EAAiCA;QAEjCA,wFAAyCA;QACzCA,sFAAwCA;QAExCA,oGAAoDA;QACpDA,kGAA8CA;QAE9CA,gFAAmCA;QACnCA,8EAAqCA;QAErCA,4DAAmCA;QACnCA,0DAAmCA;QAEnCA,uDAAuBA;QACvBA,uDAA4BA;QAE5BA,oEAAiCA;QACjCA,mEAAkCA;QAElCA,kEAA8BA;QAC9BA,iEAAgCA;QAEhCA,yDAA8BA;QAC9BA,uDAA+BA;QAE/BA,uDAAsBA;QACtBA,qDAAoCA;IACxCA,CAACA,EA7SiBlC,qBAAUA,KAAVA,qBAAUA,QA6S3BA;IA7SDA,IAAkBA,UAAUA,GAAVA,qBA6SjBA,CAAAA;AACLA,CAACA,EA/SM,UAAU,KAAV,UAAU,QA+ShB;AC/SD,IAAO,UAAU,CAsPhB;AAtPD,WAAO,UAAU;IAACA,IAAAA,WAAWA,CAsP5BA;IAtPiBA,WAAAA,WAAWA,EAACA,CAACA;QAC3BmC,IAAIA,iBAAiBA,GAAQA;YACzBA,KAAKA,EAAEA,mBAAqBA;YAC5BA,OAAOA,EAAEA,qBAAuBA;YAChCA,OAAOA,EAAEA,qBAAuBA;YAChCA,SAASA,EAAEA,uBAAyBA;YACpCA,OAAOA,EAAEA,qBAAuBA;YAChCA,MAAMA,EAAEA,oBAAsBA;YAC9BA,OAAOA,EAAEA,qBAAuBA;YAChCA,OAAOA,EAAEA,qBAAuBA;YAChCA,UAAUA,EAAEA,wBAA0BA;YACtCA,OAAOA,EAAEA,qBAAuBA;YAChCA,aAAaA,EAAEA,2BAA6BA;YAC5CA,UAAUA,EAAEA,wBAA0BA;YACtCA,SAASA,EAAEA,uBAAyBA;YACpCA,SAASA,EAAEA,uBAAyBA;YACpCA,QAAQA,EAAEA,sBAAwBA;YAClCA,IAAIA,EAAEA,kBAAoBA;YAC1BA,MAAMA,EAAEA,oBAAsBA;YAC9BA,MAAMA,EAAEA,oBAAsBA;YAC9BA,QAAQA,EAAEA,sBAAwBA;YAClCA,SAASA,EAAEA,uBAAyBA;YACpCA,OAAOA,EAAEA,qBAAuBA;YAChCA,SAASA,EAAEA,uBAAyBA;YACpCA,KAAKA,EAAEA,mBAAqBA;YAC5BA,UAAUA,EAAEA,wBAA0BA;YACtCA,KAAKA,EAAEA,mBAAqBA;YAC5BA,IAAIA,EAAEA,kBAAoBA;YAC1BA,YAAYA,EAAEA,0BAA4BA;YAC1CA,QAAQA,EAAEA,sBAAwBA;YAClCA,IAAIA,EAAEA,kBAAoBA;YAC1BA,YAAYA,EAAEA,0BAA4BA;YAC1CA,WAAWA,EAAEA,yBAA2BA;YACxCA,KAAKA,EAAEA,mBAAqBA;YAC5BA,QAAQA,EAAEA,sBAAwBA;YAClCA,KAAKA,EAAEA,mBAAqBA;YAC5BA,MAAMA,EAAEA,oBAAsBA;YAC9BA,QAAQA,EAACA,sBAAwBA;YACjCA,SAASA,EAAEA,uBAAyBA;YACpCA,SAASA,EAAEA,uBAAyBA;YACpCA,WAAWA,EAAEA,yBAA2BA;YACxCA,QAAQA,EAAEA,sBAAwBA;YAClCA,SAASA,EAAEA,uBAAyBA;YACpCA,QAAQA,EAAEA,sBAAwBA;YAClCA,KAAKA,EAAEA,mBAAqBA;YAC5BA,QAAQA,EAAEA,sBAAwBA;YAClCA,QAAQA,EAAEA,sBAAwBA;YAClCA,OAAOA,EAAEA,qBAAuBA;YAChCA,QAAQA,EAAEA,sBAAwBA;YAClCA,MAAMA,EAAEA,oBAAsBA;YAC9BA,OAAOA,EAAEA,qBAAuBA;YAChCA,MAAMA,EAAEA,oBAAsBA;YAC9BA,KAAKA,EAAEA,mBAAqBA;YAC5BA,QAAQA,EAAEA,sBAAwBA;YAClCA,KAAKA,EAAEA,mBAAqBA;YAC5BA,MAAMA,EAAEA,oBAAsBA;YAC9BA,OAAOA,EAAEA,qBAAuBA;YAChCA,MAAMA,EAAEA,oBAAsBA;YAC9BA,OAAOA,EAAEA,qBAAuBA;YAEhCA,GAAGA,EAAEA,uBAAyBA;YAC9BA,GAAGA,EAAEA,wBAA0BA;YAC/BA,GAAGA,EAAEA,uBAAyBA;YAC9BA,GAAGA,EAAEA,wBAA0BA;YAC/BA,GAAGA,EAAEA,yBAA2BA;YAChCA,GAAGA,EAAEA,0BAA4BA;YACjCA,GAAGA,EAAEA,iBAAmBA;YACxBA,KAAKA,EAAEA,uBAAyBA;YAChCA,GAAGA,EAAEA,uBAAyBA;YAC9BA,GAAGA,EAAEA,mBAAqBA;YAC1BA,GAAGA,EAAEA,sBAAwBA;YAC7BA,GAAGA,EAAEA,yBAA2BA;YAChCA,IAAIA,EAAEA,4BAA8BA;YACpCA,IAAIA,EAAEA,+BAAiCA;YACvCA,IAAIA,EAAEA,0BAA4BA;YAClCA,IAAIA,EAAEA,+BAAiCA;YACvCA,IAAIA,EAAEA,+BAAiCA;YACvCA,KAAKA,EAAEA,gCAAkCA;YACzCA,KAAKA,EAAEA,qCAAuCA;YAC9CA,GAAGA,EAAEA,kBAAoBA;YACzBA,GAAGA,EAAEA,mBAAqBA;YAC1BA,GAAGA,EAAEA,sBAAwBA;YAC7BA,GAAGA,EAAEA,qBAAuBA;YAC5BA,IAAIA,EAAEA,sBAAwBA;YAC9BA,IAAIA,EAAEA,wBAA0BA;YAChCA,IAAIA,EAAEA,8BAAgCA;YACtCA,IAAIA,EAAEA,qCAAsCA;YAC5CA,KAAKA,EAAEA,gDAAiDA;YACxDA,GAAGA,EAAEA,wBAAyBA;YAC9BA,GAAGA,EAAEA,kBAAmBA;YACxBA,GAAGA,EAAEA,oBAAqBA;YAC1BA,GAAGA,EAAEA,0BAA2BA;YAChCA,GAAGA,EAAEA,oBAAqBA;YAC1BA,IAAIA,EAAEA,iCAAkCA;YACxCA,IAAIA,EAAEA,qBAAsBA;YAC5BA,GAAGA,EAAEA,uBAAwBA;YAC7BA,GAAGA,EAAEA,oBAAqBA;YAC1BA,GAAGA,EAAEA,qBAAsBA;YAC3BA,IAAIA,EAAEA,yBAA0BA;YAChCA,IAAIA,EAAEA,0BAA2BA;YACjCA,IAAIA,EAAEA,6BAA8BA;YACpCA,IAAIA,EAAEA,4BAA6BA;YACnCA,KAAKA,EAAEA,qCAAsCA;YAC7CA,KAAKA,EAAEA,2CAA4CA;YACnDA,MAAMA,EAAEA,sDAAuDA;YAC/DA,IAAIA,EAAEA,8BAA+BA;YACrCA,IAAIA,EAAEA,wBAAyBA;YAC/BA,IAAIA,EAAEA,0BAA2BA;YACjCA,GAAGA,EAAEA,oBAAqBA;YAC1BA,IAAIA,EAAEA,0BAA2BA;SACpCA,CAACA;QAEFA,IAAIA,UAAUA,GAAGA,IAAIA,KAAKA,EAAUA,CAACA;QAErCA,GAAGA,CAACA,CAACA,GAAGA,CAACA,IAAIA,IAAIA,iBAAiBA,CAACA,CAACA,CAACA;YACjCA,EAAEA,CAACA,CAACA,iBAAiBA,CAACA,cAAcA,CAACA,IAAIA,CAACA,CAACA,CAACA,CAACA;gBAEzCA,UAAUA,CAACA,iBAAiBA,CAACA,IAAIA,CAACA,CAACA,GAAGA,IAAIA,CAACA;YAC/CA,CAACA;QACLA,CAACA;QAKDA,UAAUA,CAACA,2BAA6BA,CAACA,GAAGA,aAAaA,CAACA;QAE1DA,SAAgBA,YAAYA,CAACA,IAAYA;YACrCC,EAAEA,CAACA,CAACA,iBAAiBA,CAACA,cAAcA,CAACA,IAAIA,CAACA,CAACA,CAACA,CAACA;gBACzCA,MAAMA,CAACA,iBAAiBA,CAACA,IAAIA,CAACA,CAACA;YACnCA,CAACA;YAEDA,MAAMA,CAACA,YAAeA,CAACA;QAC3BA,CAACA;QANeD,wBAAYA,GAAZA,YAMfA,CAAAA;QAEDA,SAAgBA,OAAOA,CAACA,IAAgBA;YACpCE,IAAIA,MAAMA,GAAGA,UAAUA,CAACA,IAAIA,CAACA,CAACA;YAC9BA,MAAMA,CAACA,MAAMA,CAACA;QAClBA,CAACA;QAHeF,mBAAOA,GAAPA,OAGfA,CAAAA;QAEDA,SAAgBA,YAAYA,CAACA,IAAgBA;YACzCG,MAAMA,CAACA,IAAIA,IAAIA,qBAAuBA,IAAIA,IAAIA,IAAIA,oBAAsBA,CAACA;QAC7EA,CAACA;QAFeH,wBAAYA,GAAZA,YAEfA,CAAAA;QAEDA,SAAgBA,gBAAgBA,CAACA,IAAgBA;YAC7CI,MAAMA,CAACA,IAAIA,IAAIA,yBAA2BA,IAAIA,IAAIA,IAAIA,yBAA0BA,CAACA;QACrFA,CAACA;QAFeJ,4BAAgBA,GAAhBA,gBAEfA,CAAAA;QAEDA,SAAgBA,oCAAoCA,CAACA,SAAqBA;YACtEK,MAAMA,CAACA,CAACA,SAASA,CAACA,CAACA,CAACA;gBAChBA,KAAKA,kBAAoBA,CAACA;gBAC1BA,KAAKA,mBAAqBA,CAACA;gBAC3BA,KAAKA,oBAAqBA,CAACA;gBAC3BA,KAAKA,0BAA2BA,CAACA;gBACjCA,KAAKA,sBAAwBA,CAACA;gBAC9BA,KAAKA,wBAA0BA;oBAC3BA,MAAMA,CAACA,IAAIA,CAACA;gBAChBA;oBACIA,MAAMA,CAACA,KAAKA,CAACA;YACrBA,CAACA;QACLA,CAACA;QAZeL,gDAAoCA,GAApCA,oCAYfA,CAAAA;QAEDA,SAAgBA,+BAA+BA,CAACA,SAAqBA;YACjEM,MAAMA,CAACA,CAACA,SAASA,CAACA,CAACA,CAACA;gBAChBA,KAAKA,sBAAwBA,CAACA;gBAC9BA,KAAKA,oBAAqBA,CAACA;gBAC3BA,KAAKA,qBAAuBA,CAACA;gBAC7BA,KAAKA,kBAAoBA,CAACA;gBAC1BA,KAAKA,mBAAqBA,CAACA;gBAC3BA,KAAKA,8BAAgCA,CAACA;gBACtCA,KAAKA,qCAAsCA,CAACA;gBAC5CA,KAAKA,gDAAiDA,CAACA;gBACvDA,KAAKA,sBAAwBA,CAACA;gBAC9BA,KAAKA,yBAA2BA,CAACA;gBACjCA,KAAKA,4BAA8BA,CAACA;gBACpCA,KAAKA,+BAAiCA,CAACA;gBACvCA,KAAKA,0BAA4BA,CAACA;gBAClCA,KAAKA,kBAAoBA,CAACA;gBAC1BA,KAAKA,0BAA4BA,CAACA;gBAClCA,KAAKA,+BAAiCA,CAACA;gBACvCA,KAAKA,gCAAkCA,CAACA;gBACxCA,KAAKA,qCAAuCA,CAACA;gBAC7CA,KAAKA,wBAAyBA,CAACA;gBAC/BA,KAAKA,oBAAqBA,CAACA;gBAC3BA,KAAKA,kBAAmBA,CAACA;gBACzBA,KAAKA,iCAAkCA,CAACA;gBACxCA,KAAKA,qBAAsBA,CAACA;gBAC5BA,KAAKA,wBAAyBA,CAACA;gBAC/BA,KAAKA,8BAA+BA,CAACA;gBACrCA,KAAKA,0BAA2BA,CAACA;gBACjCA,KAAKA,qCAAsCA,CAACA;gBAC5CA,KAAKA,2CAA4CA,CAACA;gBAClDA,KAAKA,sDAAuDA,CAACA;gBAC7DA,KAAKA,yBAA0BA,CAACA;gBAChCA,KAAKA,0BAA2BA,CAACA;gBACjCA,KAAKA,6BAA8BA,CAACA;gBACpCA,KAAKA,0BAA2BA,CAACA;gBACjCA,KAAKA,4BAA6BA,CAACA;gBACnCA,KAAKA,qBAAsBA,CAACA;gBAC5BA,KAAKA,mBAAqBA;oBACtBA,MAAMA,CAACA,IAAIA,CAACA;gBAChBA;oBACIA,MAAMA,CAACA,KAAKA,CAACA;YACrBA,CAACA;QACLA,CAACA;QA1CeN,2CAA+BA,GAA/BA,+BA0CfA,CAAAA;QAEDA,SAAgBA,yBAAyBA,CAACA,SAAqBA;YAC3DO,MAAMA,CAACA,CAACA,SAASA,CAACA,CAACA,CAACA;gBAChBA,KAAKA,wBAAyBA,CAACA;gBAC/BA,KAAKA,8BAA+BA,CAACA;gBACrCA,KAAKA,0BAA2BA,CAACA;gBACjCA,KAAKA,qCAAsCA,CAACA;gBAC5CA,KAAKA,2CAA4CA,CAACA;gBAClDA,KAAKA,sDAAuDA,CAACA;gBAC7DA,KAAKA,yBAA0BA,CAACA;gBAChCA,KAAKA,0BAA2BA,CAACA;gBACjCA,KAAKA,6BAA8BA,CAACA;gBACpCA,KAAKA,0BAA2BA,CAACA;gBACjCA,KAAKA,4BAA6BA,CAACA;gBACnCA,KAAKA,qBAAsBA;oBACvBA,MAAMA,CAACA,IAAIA,CAACA;gBAEhBA;oBACIA,MAAMA,CAACA,KAAKA,CAACA;YACrBA,CAACA;QACLA,CAACA;QAnBeP,qCAAyBA,GAAzBA,yBAmBfA,CAAAA;QAEDA,SAAgBA,MAAMA,CAACA,IAAgBA;YACnCQ,MAAMA,CAACA,CAACA,IAAIA,CAACA,CAACA,CAACA;gBACXA,KAAKA,mBAAoBA,CAACA;gBAC1BA,KAAKA,mBAAqBA,CAACA;gBAC3BA,KAAKA,sBAAwBA,CAACA;gBAC9BA,KAAKA,uBAAyBA,CAACA;gBAC/BA,KAAKA,sBAAwBA,CAACA;gBAC9BA,KAAKA,oBAAsBA,CAACA;gBAC5BA,KAAKA,sBAAuBA,CAACA;gBAC7BA,KAAKA,oBAAqBA,CAACA;gBAC3BA,KAAKA,yBAA0BA,CAACA;gBAChCA,KAAKA,mBAAoBA,CAACA;gBAC1BA,KAAKA,qBAAsBA,CAACA;gBAC5BA,KAAKA,uBAAwBA,CAACA;gBAC9BA,KAAKA,sBAAyBA;oBAC1BA,MAAMA,CAACA,IAAIA,CAACA;YACpBA,CAACA;YAEDA,MAAMA,CAACA,KAAKA,CAACA;QACjBA,CAACA;QAnBeR,kBAAMA,GAANA,MAmBfA,CAAAA;IACLA,CAACA,EAtPiBnC,WAAWA,GAAXA,sBAAWA,KAAXA,sBAAWA,QAsP5BA;AAADA,CAACA,EAtPM,UAAU,KAAV,UAAU,QAsPhB;ACjPD,IAAI,gBAAgB,GAAG,KAAK,CAAC;AAsB7B,IAAI,UAAU,GAAQ;IAClB,wBAAwB,EAAE,qBAAqB;IAC/C,gBAAgB,EAAE,sBAAsB;IACxC,WAAW,EAAE,aAAa;IAC1B,sBAAsB,EAAE,mBAAmB;IAC3C,wBAAwB,EAAE,wBAAwB;IAClD,6BAA6B,EAAE,0BAA0B;IAGzD,uBAAuB,EAAE,+BAA+B;IACxD,qBAAqB,EAAE,+BAA+B;IACtD,wBAAwB,EAAE,yBAAyB;CACtD,CAAC;AAEF,IAAI,WAAW,GAAqB;IAC3B;QACD,IAAI,EAAE,kBAAkB;QACxB,QAAQ,EAAE,aAAa;QACvB,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,gBAAgB,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,sBAAsB,EAAE;YAC7E,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE;SACjD;KACJ;IACI;QACD,IAAI,EAAE,+BAA+B;QACrC,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,wBAAwB,CAAC;QACtC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC/D,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC/D,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,IAAI,EAAE;YACxC,EAAE,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;SACxE;QACD,oBAAoB,EAAE,IAAI;KAC7B;IACI;QACD,IAAI,EAAE,iCAAiC;QACvC,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,wBAAwB,CAAC;QACtC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,aAAa,EAAE;SACnD;QACD,oBAAoB,EAAE,IAAI;KAC7B;IACI;QACD,IAAI,EAAE,yBAAyB;QAC/B,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,sBAAsB,CAAC;QACpC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,cAAc,EAAE;YAChE,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC9D,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE;YACrC,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC5D,EAAE,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,wBAAwB,EAAE;YAC3D,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;SACzF;QACD,oBAAoB,EAAE,IAAI;KAC7B;IACI;QACD,IAAI,EAAE,wBAAwB;QAC9B,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,sBAAsB,CAAC;QACpC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,cAAc,EAAE;YAChE,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC9D,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC5D,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE;YACrC,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;SACzF;QACD,oBAAoB,EAAE,IAAI;KAC7B;IACI;QACD,IAAI,EAAE,wBAAwB;QAC9B,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,sBAAsB,CAAC;QACpC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,cAAc,EAAE;YAChE,EAAE,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC7D,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE;YACrC,EAAE,IAAI,EAAE,mBAAmB,EAAE,IAAI,EAAE,yBAAyB,EAAE,UAAU,EAAE,IAAI,EAAE;YAChF,EAAE,IAAI,EAAE,iBAAiB,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,sBAAsB,EAAE;YAC9E,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC/D,EAAE,IAAI,EAAE,eAAe,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,qBAAqB,EAAE;YAC3E,EAAE,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;SACxE;QACD,oBAAoB,EAAE,IAAI;KAC7B;IACI;QACD,IAAI,EAAE,4BAA4B;QAClC,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,sBAAsB,CAAC;QACpC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,cAAc,EAAE;YAChE,EAAE,IAAI,EAAE,kBAAkB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YACjE,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE;YACrC,EAAE,IAAI,EAAE,mBAAmB,EAAE,IAAI,EAAE,yBAAyB,EAAE,UAAU,EAAE,IAAI,EAAE;YAChF,EAAE,IAAI,EAAE,iBAAiB,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,sBAAsB,EAAE;YAC9E,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,kBAAkB,EAAE;SAClD;QACD,oBAAoB,EAAE,IAAI;KAC7B;IACK;QACF,IAAI,EAAE,sBAAsB;QAC5B,QAAQ,EAAE,aAAa;QACvB,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,4BAA4B,EAAE,OAAO,EAAE,IAAI,EAAE;YACrD,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,IAAI,EAAE,sBAAsB,EAAE,IAAI,EAAE,WAAW,EAAE,aAAa,EAAE;SAC9G;QACD,oBAAoB,EAAE,IAAI;KAC7B;IACI;QACD,IAAI,EAAE,yBAAyB;QAC/B,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,sBAAsB,CAAC;QACpC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,cAAc,EAAE;YAChE,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC9D,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE;YACrC,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC/D,EAAE,IAAI,EAAE,gBAAgB,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,sBAAsB,EAAE;YAC7E,EAAE,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;SACxE;QACD,oBAAoB,EAAE,IAAI;KAC7B;IACI;QACD,IAAI,EAAE,2BAA2B;QACjC,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,kBAAkB,CAAC;QAChC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,cAAc,EAAE,oBAAoB,EAAE,IAAI,EAAE;YAC5F,EAAE,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAChE,EAAE,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE;YACzD,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE;YACrC,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,qBAAqB,EAAE;YACtD,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,6CAA6C,EAAE,UAAU,EAAE,IAAI,EAAE;SAC/F;KACJ;IACK;QACF,IAAI,EAAE,gBAAgB;QACtB,QAAQ,EAAE,aAAa;QACvB,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,wBAAwB,EAAE,OAAO,EAAE,IAAI,EAAG;YAClD,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,mBAAmB,EAAE;SACzD;KACJ;IACI;QACD,IAAI,EAAE,yBAAyB;QAC/B,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,kBAAkB,CAAC;QAChC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,cAAc,EAAE,oBAAoB,EAAE,IAAI,EAAE;YAC5F,EAAE,IAAI,EAAE,qBAAqB,EAAE,IAAI,EAAE,2BAA2B,EAAE;YAClE,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;SACzF;KACJ;IACI;QACD,IAAI,EAAE,2BAA2B;QACjC,QAAQ,EAAE,aAAa;QACvB,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE;YACrC,EAAE,IAAI,EAAE,qBAAqB,EAAE,eAAe,EAAE,IAAI,EAAE,sBAAsB,EAAE,IAAI,EAAE,WAAW,EAAE,0BAA0B,EAAE;SACrI;KACJ;IACI;QACD,IAAI,EAAE,0BAA0B;QAChC,QAAQ,EAAE,aAAa;QACvB,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,qBAAqB,EAAE;YACrD,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,sBAAsB,EAAE,UAAU,EAAE,IAAI,EAAE,oBAAoB,EAAE,IAAI,EAAE;YACtG,EAAE,IAAI,EAAE,mBAAmB,EAAE,IAAI,EAAE,yBAAyB,EAAE,UAAU,EAAE,IAAI,EAAE;SACxF;KACJ;IACI;QACD,IAAI,EAAE,yBAAyB;QAC/B,QAAQ,EAAE,aAAa;QACvB,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC5D,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,mBAAmB,EAAE;SACpD;KACJ;IACI;QACD,IAAI,EAAE,6BAA6B;QACnC,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,wBAAwB,CAAC;QACtC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,IAAI,EAAE;YACxC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,wBAAwB,EAAE;SAC3D;KACJ;IACI;QACD,IAAI,EAAE,8BAA8B;QACpC,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,0BAA0B,CAAC;QACxC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,kBAAkB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YACjE,EAAE,IAAI,EAAE,aAAa,EAAE,eAAe,EAAE,IAAI,EAAE,WAAW,EAAE,mBAAmB,EAAE;YAChF,EAAE,IAAI,EAAE,mBAAmB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;SAC1E;KACJ;IACI;QACD,IAAI,EAAE,yBAAyB;QAC/B,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,mBAAmB,CAAC;QACjC,QAAQ,EAAO,EAAE;KACpB;IACI;QACD,IAAI,EAAE,+BAA+B;QACrC,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,0BAA0B,CAAC;QACxC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC/D,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,mBAAmB,EAAE;YACjD,EAAE,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;SACxE;KACJ;IACI;QACD,IAAI,EAAE,qCAAqC;QAC3C,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,wBAAwB,CAAC;QACtC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE;YACzD,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,iBAAiB,EAAE;YAC9C,EAAE,IAAI,EAAE,wBAAwB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YACvE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,iCAAiC,EAAE;SACjE;QACD,oBAAoB,EAAE,IAAI;KAC7B;IACI;QACD,IAAI,EAAE,4CAA4C;QAClD,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,wBAAwB,CAAC;QACtC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE;YACzD,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,qBAAqB,EAAE;YACtD,EAAE,IAAI,EAAE,wBAAwB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YACvE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,iCAAiC,EAAE;SACjE;QACD,oBAAoB,EAAE,IAAI;KAC7B;IACI;QACD,IAAI,EAAE,qBAAqB;QAC3B,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,aAAa,CAAC;QAC3B,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE;YACrC,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YACzD,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE;SACxC;QAGD,oBAAoB,EAAE,IAAI;KAC7B;IACI;QACD,IAAI,EAAE,wBAAwB;QAC9B,QAAQ,EAAE,aAAa;QACvB,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,IAAI,EAAE;YACxC,EAAE,IAAI,EAAE,eAAe,EAAE,eAAe,EAAE,IAAI,EAAE,WAAW,EAAE,aAAa,EAAE;YAC5E,EAAE,IAAI,EAAE,kBAAkB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;SACzE;QACD,oBAAoB,EAAE,IAAI;KAC7B;IACI;QACD,IAAI,EAAE,uBAAuB;QAC7B,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,aAAa,CAAC;QAC3B,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC3D,EAAE,IAAI,EAAE,mBAAmB,EAAE,IAAI,EAAE,yBAAyB,EAAE,UAAU,EAAE,IAAI,EAAE;YAChF,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,qBAAqB,EAAE;YACtD,EAAE,IAAI,EAAE,wBAAwB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YACvE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE;SAC7C;QACD,oBAAoB,EAAE,IAAI;KAC7B;IACI;QACD,IAAI,EAAE,oBAAoB;QAC1B,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,aAAa,CAAC;QAC3B,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,mBAAmB,EAAE,IAAI,EAAE,yBAAyB,EAAE,UAAU,EAAE,IAAI,EAAE;YAChF,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,qBAAqB,EAAE;YACtD,EAAE,IAAI,EAAE,wBAAwB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YACvE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE;SAC7C;QACD,oBAAoB,EAAE,IAAI;KAC7B;IACI;QACD,IAAI,EAAE,kBAAkB;QACxB,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,aAAa,CAAC;QAC3B,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC/D,EAAE,IAAI,EAAE,aAAa,EAAE,eAAe,EAAE,IAAI,EAAE,WAAW,EAAE,mBAAmB,EAAE;YAChF,EAAE,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;SACxE;QACD,oBAAoB,EAAE,IAAI;KAC7B;IACI;QACD,IAAI,EAAE,iBAAiB;QACvB,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,aAAa,CAAC;QAC3B,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE;YACrC,EAAE,IAAI,EAAE,kBAAkB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YACjE,EAAE,IAAI,EAAE,mBAAmB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;SAC1E;QACD,oBAAoB,EAAE,IAAI;KAC7B;IACI;QACD,IAAI,EAAE,mBAAmB;QACzB,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,aAAa,CAAC;QAC3B,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE;YACrC,EAAE,IAAI,EAAE,kBAAkB,EAAE,IAAI,EAAE,wBAAwB,EAAE;SACpE;QACD,oBAAoB,EAAE,IAAI;KAC7B;IACK;QACF,IAAI,EAAE,iBAAiB;QACvB,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,aAAa,CAAC;QAC3B,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC9D,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE;SAC7C;QACD,oBAAoB,EAAE,IAAI;KAC7B;IACK;QACF,IAAI,EAAE,iBAAiB;QACvB,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,aAAa,CAAC;QAC3B,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,kBAAkB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YACjE,EAAE,IAAI,EAAE,OAAO,EAAE,eAAe,EAAE,IAAI,EAAE,WAAW,EAAE,aAAa,EAAE;YACpE,EAAE,IAAI,EAAE,mBAAmB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;SAC1E;QACD,oBAAoB,EAAE,IAAI;KAC7B;IACK;QACF,IAAI,EAAE,iBAAiB;QACvB,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,aAAa,CAAC;QAC3B,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE;YACrC,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YACzD,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE;SAC9C;QACD,oBAAoB,EAAE,IAAI;KAC7B;IACK;QACF,IAAI,EAAE,yBAAyB;QAC/B,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,aAAa,CAAC;QAC3B,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC/D,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE;YACrC,EAAE,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;SACxE;QACD,oBAAoB,EAAE,IAAI;KAC7B;IACI;QACD,IAAI,EAAE,sBAAsB;QAC5B,QAAQ,EAAE,aAAa;QACvB,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC3D,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE;SAC7C;QACD,oBAAoB,EAAE,IAAI;KAC7B;IACI;QACD,IAAI,EAAE,aAAa;QACnB,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,kBAAkB,CAAC;QAChC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,wBAAwB,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE;YACrE,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAG;YAC1C,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,kBAAkB,EAAE;YACrE,EAAE,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;SACxE;KACJ;IACI;QACD,IAAI,EAAE,iBAAiB;QACvB,QAAQ,EAAE,aAAa;QACvB,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,oBAAoB,EAAE,IAAI,EAAE;YACvF,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,cAAc,EAAE;YAChE,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE;YACrC,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,oBAAoB,EAAE,IAAI,EAAE;YACtF,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,sBAAsB,EAAE,UAAU,EAAE,IAAI,EAAE,oBAAoB,EAAE,IAAI,EAAE;YACtG,EAAE,IAAI,EAAE,mBAAmB,EAAE,IAAI,EAAE,yBAAyB,EAAE,UAAU,EAAE,IAAI,EAAE,oBAAoB,EAAE,IAAI,EAAE;SACpH;KACJ;IACI;QACD,IAAI,EAAE,8BAA8B;QACpC,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,yBAAyB,EAAE,uBAAuB,CAAC;QAChE,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,+BAA+B,EAAE;YAC7D,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YACzD,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE;SACvC;KACJ;IACI;QACD,IAAI,EAAE,8BAA8B;QACpC,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,0BAA0B,CAAC;QACxC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,+BAA+B,EAAE;YAC1D,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,IAAI,EAAE;SAChD;KACJ;IACI;QACD,IAAI,EAAE,+BAA+B;QACrC,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,yBAAyB,EAAE,uBAAuB,CAAC;QAChE,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,+BAA+B,EAAE;YAC7D,EAAE,IAAI,EAAE,kBAAkB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YACjE,EAAE,IAAI,EAAE,oBAAoB,EAAE,IAAI,EAAE,mBAAmB,EAAE,UAAU,EAAE,IAAI,EAAE;YAC3E,EAAE,IAAI,EAAE,mBAAmB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;SAC1E;KACJ;IACI;QACD,IAAI,EAAE,gCAAgC;QACtC,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,yBAAyB,EAAE,uBAAuB,CAAC;QAChE,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,+BAA+B,EAAE;YAC7D,EAAE,IAAI,EAAE,oBAAoB,EAAE,IAAI,EAAE,0BAA0B,EAAE;SACxE;KACJ;IACI;QACD,IAAI,EAAE,0BAA0B;QAChC,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,0BAA0B,CAAC;QACxC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,oBAAoB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YACnE,EAAE,IAAI,EAAE,iBAAiB,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,sBAAsB,EAAE;SACtF;KACJ;IACI;QACD,IAAI,EAAE,sBAAsB;QAC5B,QAAQ,EAAE,aAAa;QACvB,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,mBAAmB,EAAE;YACjD,EAAE,IAAI,EAAE,0BAA0B,EAAE,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,oBAAoB,EAAE;SAC9F;KACJ;IACI;QACD,IAAI,EAAE,4BAA4B;QAClC,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,uBAAuB,CAAC;QACrC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,+BAA+B,EAAE;YAC7D,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,oBAAoB,EAAE;SAC5D;KACJ;IACI;QACD,IAAI,EAAE,oBAAoB;QAC1B,QAAQ,EAAE,aAAa;QACvB,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,kBAAkB,EAAE,IAAI,EAAE,wBAAwB,EAAE,UAAU,EAAE,IAAI,EAAE;YAC9E,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC/D,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,IAAI,EAAE,WAAW,EAAE,mBAAmB,EAAE;YAC9E,EAAE,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;SACxE;KACJ;IACI;QACD,IAAI,EAAE,wBAAwB;QAC9B,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,mBAAmB,CAAC;QACjC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,mBAAmB,EAAE;YAC3C,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,IAAI,EAAE;YACxC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,mBAAmB,EAAE;SACpD;KACJ;IACI;QACD,IAAI,EAAE,6BAA6B;QACnC,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,mBAAmB,CAAC;QACjC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,mBAAmB,EAAE;YAChD,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC9D,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,mBAAmB,EAAE;YAC/C,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC3D,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,mBAAmB,EAAE;SACxD;KACJ;IACI;QACD,IAAI,EAAE,0BAA0B;QAChC,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,mBAAmB,CAAC;QACjC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC3D,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,qBAAqB,EAAE;SAC9D;QACD,oBAAoB,EAAE,IAAI;KAC7B;IACI;QACD,IAAI,EAAE,uBAAuB;QAC7B,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,mBAAmB,CAAC;QACjC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,qBAAqB,EAAE;YACrD,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,oBAAoB,EAAE,IAAI,EAAE;YACtF,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,qBAAqB,EAAE;SAC9D;KACJ;IACI;QACD,IAAI,EAAE,sBAAsB;QAC5B,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,mBAAmB,CAAC;QACjC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,kBAAkB,EAAE,OAAO,EAAE,IAAI,EAAE;YAC3C,EAAE,IAAI,EAAE,YAAY,EAAE,eAAe,EAAE,IAAI,EAAE,WAAW,EAAE,iBAAiB,EAAE;YAC7E,EAAE,IAAI,EAAE,mBAAmB,EAAE,OAAO,EAAE,IAAI,EAAE;YAC5C,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,sBAAsB,EAAE,UAAU,EAAE,IAAI,EAAE;SAClF;QACD,oBAAoB,EAAE,IAAI;KAC7B;IACI;QACD,IAAI,EAAE,yBAAyB;QAC/B,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,mBAAmB,CAAC;QACjC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,qBAAqB,EAAE;YACrD,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE;YAC1D,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,sBAAsB,EAAE,UAAU,EAAE,IAAI,EAAE;SAClF;QACD,oBAAoB,EAAE,IAAI;KAC7B;IACI;QACD,IAAI,EAAE,qBAAqB;QAC3B,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,mBAAmB,CAAC;QACjC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,mBAAmB,EAAE,IAAI,EAAE,yBAAyB,EAAE,UAAU,EAAE,IAAI,EAAE,oBAAoB,EAAE,IAAI,EAAE;YAC5G,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,qBAAqB,EAAE;YACtD,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,sBAAsB,EAAE,UAAU,EAAE,IAAI,EAAE,oBAAoB,EAAE,IAAI,EAAE;SAC9G;KACJ;IACI;QACD,IAAI,EAAE,qBAAqB;QAC3B,QAAQ,EAAE,aAAa;QACvB,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC/D,EAAE,IAAI,EAAE,YAAY,EAAE,eAAe,EAAE,IAAI,EAAE,WAAW,EAAE,iBAAiB,EAAE;YAC7E,EAAE,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;SACxE;KACJ;IACI;QACD,IAAI,EAAE,yBAAyB;QAC/B,QAAQ,EAAE,aAAa;QACvB,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,IAAI,EAAE;YACxC,EAAE,IAAI,EAAE,gBAAgB,EAAE,eAAe,EAAE,IAAI,EAAE,WAAW,EAAE,qBAAqB,EAAE;YACrF,EAAE,IAAI,EAAE,kBAAkB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;SACzE;QACD,oBAAoB,EAAE,IAAI;KAC7B;IACI;QACD,IAAI,EAAE,qBAAqB;QAC3B,QAAQ,EAAE,aAAa;QACvB,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE;YACrC,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,kBAAkB,EAAE,UAAU,EAAE,IAAI,EAAE;SAC1E;QACD,oBAAoB,EAAE,IAAI;KAC7B;IACI;QACD,IAAI,EAAE,kBAAkB;QACxB,QAAQ,EAAE,aAAa;QACvB,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAE/D,EAAE,IAAI,EAAE,kBAAkB,EAAE,IAAI,EAAE,oBAAoB,EAAE;SAChE;QACD,oBAAoB,EAAE,IAAI;KAC7B;IACI;QACD,IAAI,EAAE,kBAAkB;QACxB,QAAQ,EAAE,aAAa;QACvB,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC5D,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,kBAAkB,EAAE;SACvD;KACJ;IACI;QACD,IAAI,EAAE,mBAAmB;QACzB,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,kBAAkB,CAAC;QAChC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC1D,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC/D,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,mBAAmB,EAAE;YAChD,EAAE,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAChE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,kBAAkB,EAAE;YAC/C,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,kBAAkB,EAAE,UAAU,EAAE,IAAI,EAAE;SAC1E;KACJ;IACI;QACD,IAAI,EAAE,2BAA2B;QACjC,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,kBAAkB,CAAC;QAChC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,mBAAmB,EAAE;YACjD,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;SACzF;KACJ;IACI;QACD,IAAI,EAAE,8BAA8B;QACpC,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,qBAAqB,CAAC;QACnC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,cAAc,EAAE;YAChE,EAAE,IAAI,EAAE,oBAAoB,EAAE,OAAO,EAAE,IAAI,EAAE;YAC7C,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,qBAAqB,EAAE;YACtD,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,6CAA6C,EAAE,UAAU,EAAE,IAAI,EAAG;SAChG;QACD,oBAAoB,EAAE,IAAI;KAC7B;IACI;QACD,IAAI,EAAE,iCAAiC;QACvC,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,0BAA0B,EAAE,2BAA2B,CAAC;QACrE,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,cAAc,EAAE;YAChE,EAAE,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE;YACzD,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,qBAAqB,EAAE;YACrD,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,qBAAqB,EAAE;YACtD,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,6CAA6C,EAAE,UAAU,EAAE,IAAI,EAAG;SAChG;QACD,oBAAoB,EAAE,IAAI;KAC7B;IACI;QACD,IAAI,EAAE,mBAAmB;QACzB,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,iBAAiB,CAAE;QAChC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,cAAc,EAAE,oBAAoB,EAAE,IAAI,EAAE;YAC5F,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC3D,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,qBAAqB,EAAE;YACrD,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,qBAAqB,EAAE;YACtD,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,6CAA6C,EAAE,UAAU,EAAE,IAAI,EAAG;SAChG;KACJ;IACI;QACD,IAAI,EAAE,mBAAmB;QACzB,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,iBAAiB,CAAC;QAC/B,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,cAAc,EAAE,oBAAoB,EAAE,IAAI,EAAE;YAC5F,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC3D,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,qBAAqB,EAAE;YACrD,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,qBAAqB,EAAE;YACtD,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,6CAA6C,EAAE,UAAU,EAAE,IAAI,EAAG;SAChG;QACD,oBAAoB,EAAE,IAAI;KAC7B;IACI;QACD,IAAI,EAAE,iCAAiC;QACvC,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,0BAA0B,CAAC;QACxC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,cAAc,EAAE;YAChE,EAAE,IAAI,EAAE,oBAAoB,EAAE,IAAI,EAAE,0BAA0B,EAAE;YAChE,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;SACzF;QACD,oBAAoB,EAAE,IAAI;KAC7B;IACI;QACD,IAAI,EAAE,8BAA8B;QACpC,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,qBAAqB,CAAC;QACnC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,cAAc,EAAE;YAChE,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,sBAAsB,EAAE;YACxD,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;SACzF;QACD,oBAAoB,EAAE,IAAI;KAC7B;IACI;QACD,IAAI,EAAE,sBAAsB;QAC5B,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,kBAAkB,CAAC;QAChC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC7D,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,mBAAmB,EAAE,UAAU,EAAE,IAAI,EAAE;YACnE,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;SACzF;KACJ;IACI;QACD,IAAI,EAAE,uBAAuB;QAC7B,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,kBAAkB,CAAC;QAChC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,IAAI,EAAE;YACxC,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,mBAAmB,EAAE,UAAU,EAAE,IAAI,EAAE;YACnE,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;SACzF;KACJ;IACI;QACD,IAAI,EAAE,gCAAgC;QACtC,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,0BAA0B,CAAC;QACxC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC3D,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,yBAAyB,EAAE;YACvD,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,oBAAoB,EAAE,UAAU,EAAE,IAAI,EAAE;SAC9E;KACJ;IACI;QACD,IAAI,EAAE,uBAAuB;QAC7B,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,kBAAkB,CAAC;QAChC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC9D,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC/D,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,mBAAmB,EAAE;YACjD,EAAE,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAChE,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC/D,EAAE,IAAI,EAAE,eAAe,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,qBAAqB,EAAE;YAC3E,EAAE,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;SACxE;KACJ;IACI;QACD,IAAI,EAAE,wBAAwB;QAC9B,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,qBAAqB,CAAC;QACnC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC5D,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,mBAAmB,EAAE;YACjD,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAC;YAC1D,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,kBAAkB,EAAE;SAC7E;KACJ;IACI;QACD,IAAI,EAAE,2BAA2B;QACjC,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,qBAAqB,CAAC;QACnC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC/D,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC3D,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,kBAAkB,EAAE;SAC7E;KACJ;IACI;QACD,IAAI,EAAE,sBAAsB;QAC5B,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,kBAAkB,CAAC;QAChC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,IAAI,EAAE;YACvC,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE;YACvD,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;SACzF;KACJ;IACI;QACD,IAAI,EAAE,yBAAyB;QAC/B,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,kBAAkB,CAAC;QAChC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,IAAI,EAAE;YAC1C,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE;YACvD,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;SACzF;KACJ;IACI;QACD,IAAI,EAAE,oBAAoB;QAC1B,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,kBAAkB,CAAC;QAChC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC3D,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC/D,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,+CAA+C,EAAE,UAAU,EAAE,IAAI,EAAE;YAChG,EAAE,IAAI,EAAE,qBAAqB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YACpE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,mBAAmB,EAAE,UAAU,EAAE,IAAI,EAAE;YAClE,EAAE,IAAI,EAAE,sBAAsB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YACrE,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,mBAAmB,EAAE,UAAU,EAAE,IAAI,EAAE;YACpE,EAAE,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAChE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,kBAAkB,EAAE;SACvD;KACJ;IACI;QACD,IAAI,EAAE,sBAAsB;QAC5B,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,kBAAkB,CAAC;QAChC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC3D,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC/D,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,+CAA+C,EAAE;YACvE,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC1D,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,mBAAmB,EAAE;YAC5C,EAAE,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAChE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,kBAAkB,EAAE;SACvD;KACJ;IACI;QACD,IAAI,EAAE,sBAAsB;QAC5B,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,kBAAkB,CAAC;QAChC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC7D,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC/D,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,mBAAmB,EAAE;YAChD,EAAE,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAChE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,kBAAkB,EAAE;SACvD;KACJ;IACI;QACD,IAAI,EAAE,qBAAqB;QAC3B,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,kBAAkB,CAAC;QAChC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC5D,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC/D,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,mBAAmB,EAAE;YAChD,EAAE,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAChE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,kBAAkB,EAAE;SACvD;KACJ;IACI;QACD,IAAI,EAAE,uBAAuB;QAC7B,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,sBAAsB,CAAC;QACpC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,cAAc,EAAE;YAChE,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC5D,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE;YACrC,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC/D,EAAE,IAAI,EAAE,cAAc,EAAE,eAAe,EAAE,IAAI,EAAE,WAAW,EAAE,mBAAmB,EAAE;YACjF,EAAE,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;SACxE;QACD,oBAAoB,EAAE,IAAI;KAC7B;IACI;QACD,IAAI,EAAE,mBAAmB;QACzB,QAAQ,EAAE,aAAa;QACvB,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,qBAAqB,EAAE;YACrD,EAAE,IAAI,EAAE,mBAAmB,EAAE,IAAI,EAAE,yBAAyB,EAAE,UAAU,EAAE,IAAI,EAAE;SACxF;KACJ;IACI;QACD,IAAI,EAAE,sBAAsB;QAC5B,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,wBAAwB,CAAC;QACtC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC9D,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE;YACrC,EAAE,IAAI,EAAE,kBAAkB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YACjE,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,wBAAwB,EAAE;SAC9D;QACD,oBAAoB,EAAE,IAAI;KAC7B;IACI;QACD,IAAI,EAAE,+BAA+B;QACrC,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,0BAA0B,CAAC;QACxC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC/D,EAAE,IAAI,EAAE,qBAAqB,EAAE,eAAe,EAAE,IAAI,EAAE,WAAW,EAAE,2BAA2B,EAAE;YAChG,EAAE,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;SACxE;KACJ;IACI;QACD,IAAI,EAAE,4BAA4B;QAClC,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,qBAAqB,CAAC;QACnC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,kBAAkB,EAAE,OAAO,EAAE,IAAI,EAAE;YAC3C,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,mBAAmB,EAAE;YACjD,EAAE,IAAI,EAAE,mBAAmB,EAAE,OAAO,EAAE,IAAI,EAAE;SACpD;KACJ;IACI;QACD,IAAI,EAAE,0BAA0B;QAChC,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,2BAA2B,CAAC;QACzC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,qBAAqB,EAAE;YACrD,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC3D,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,mBAAmB,EAAE;SACzD;KACJ;IACI;QACD,IAAI,EAAE,0BAA0B;QAChC,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,0BAA0B,CAAC;QACxC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE;YACzD,EAAE,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAChE,EAAE,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE;YACzD,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE;YACvD,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,qBAAqB,EAAE;YACtD,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,6CAA6C,EAAE,UAAU,EAAE,IAAI,EAAG;SAAC;KACrG;IACI;QACD,IAAI,EAAE,sBAAsB;QAC5B,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,kBAAkB,CAAC;QAChC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE;SAAC;KACtD;IACI;QACD,IAAI,EAAE,oBAAoB;QAC1B,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,kBAAkB,CAAC;QAChC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC3D,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE;YACtC,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,mBAAmB,EAAE,UAAU,EAAE,IAAI,EAAE;YACpE,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,qBAAqB,EAAE,UAAU,EAAE,IAAI,EAAE;SAAC;KACrF;IACI;QACD,IAAI,EAAE,mBAAmB;QACzB,QAAQ,EAAE,aAAa;QACvB,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC7D,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC/D,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE;YACrC,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,sBAAsB,EAAE,UAAU,EAAE,IAAI,EAAE,qBAAqB,EAAE,IAAI,EAAE;YACvG,EAAE,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAChE,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE;SAAC;KACnD;IACI;QACD,IAAI,EAAE,qBAAqB;QAC3B,QAAQ,EAAE,aAAa;QACvB,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC/D,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE;SAAC;KACnD;IACI;QACD,IAAI,EAAE,wBAAwB;QAC9B,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,kBAAkB,CAAC;QAChC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE;YACrC,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC3D,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,kBAAkB,EAAE;SAAC;KAC5D;IACI;QACD,IAAI,EAAE,mBAAmB;QACzB,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,kBAAkB,CAAC;QAChC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC1D,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,kBAAkB,EAAE;YAC/C,EAAE,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC7D,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC/D,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,mBAAmB,EAAE;YAChD,EAAE,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAChE,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;SAAC;KAC9F;IACI;QACD,IAAI,EAAE,wBAAwB;QAC9B,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,wBAAwB,CAAC;QACtC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC9D,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,wBAAwB,EAAE;SAAC;KACnE;IACI;QACD,IAAI,EAAE,wBAAwB;QAC9B,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,wBAAwB,CAAC;QACtC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC9D,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,wBAAwB,EAAE;SAAC;KACnE;IACI;QACD,IAAI,EAAE,sBAAsB;QAC5B,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,wBAAwB,CAAC;QACtC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC5D,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,wBAAwB,EAAE;SAAC;KACnE;IACI;QACD,IAAI,EAAE,uBAAuB;QAC7B,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,mBAAmB,CAAC;QACjC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,IAAI,EAAE;YACvC,EAAE,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE;YACzD,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,mBAAmB,EAAE,UAAU,EAAE,IAAI,EAAE;SAAC;KAChF;IACI;QACD,IAAI,EAAE,uBAAuB;QAC7B,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,wBAAwB,CAAC;QACtC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,IAAI,EAAE;YACvC,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,mBAAmB,EAAE,UAAU,EAAE,IAAI,EAAE;SAAC;KAChF;IACI;QACD,IAAI,EAAE,yBAAyB;QAC/B,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,kBAAkB,CAAC;QAChC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,IAAI,EAAE;YAC1C,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;SAAC;KAC9F;CAAC,CAAC;AAEP,SAAS,iBAAiB;IACtB4C,IAAIA,IAAIA,GAAGA,YAAYA,CAACA;IACxBA,MAAMA,CAAOA,UAAWA,CAACA,IAAIA,CAACA,CAACA;AACnCA,CAACA;AAED,SAAS,SAAS,CAAC,UAA2B;IAC1CC,IAAIA,QAAQA,GAAGA,oBAAoBA,CAACA,UAAUA,CAACA,CAACA;IAChDA,MAAMA,CAACA,iBAAiBA,EAAEA,CAACA,QAAQA,CAACA,CAACA;AACzCA,CAACA;AAED,WAAW,CAAC,IAAI,CAAC,UAAC,EAAE,EAAE,EAAE,IAAK,OAAA,SAAS,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,EAAE,CAAC,EAA7B,CAA6B,CAAC,CAAC;AAE5D,SAAS,sBAAsB,CAAC,UAAkB;IAC9CC,EAAEA,CAACA,CAACA,UAAUA,CAACA,eAAeA,CAACA,QAAQA,CAACA,UAAUA,EAAEA,QAAQA,CAACA,CAACA,CAACA,CAACA;QAC5DA,MAAMA,CAACA,UAAUA,CAACA,SAASA,CAACA,CAACA,EAAEA,UAAUA,CAACA,MAAMA,GAAGA,QAAQA,CAACA,MAAMA,CAACA,CAACA;IACxEA,CAACA;IAEDA,MAAMA,CAACA,UAAUA,CAACA;AACtBA,CAACA;AAED,SAAS,oBAAoB,CAAC,UAA2B;IACrDC,MAAMA,CAACA,sBAAsBA,CAACA,UAAUA,CAACA,IAAIA,CAACA,CAACA;AACnDA,CAACA;AAED,SAAS,OAAO,CAAC,KAAwB;IACrCC,EAAEA,CAACA,CAACA,KAAKA,CAACA,OAAOA,CAACA,CAACA,CAACA;QAChBA,MAAMA,CAACA,cAAcA,CAACA;IAC1BA,CAACA;IACDA,IAAIA,CAACA,EAAEA,CAACA,CAACA,KAAKA,CAACA,eAAeA,CAACA,CAACA,CAACA;QAC7BA,MAAMA,CAACA,uBAAuBA,GAAGA,KAAKA,CAACA,WAAWA,GAAGA,GAAGA,CAACA;IAC7DA,CAACA;IACDA,IAAIA,CAACA,EAAEA,CAACA,CAACA,KAAKA,CAACA,MAAMA,CAACA,CAACA,CAACA;QACpBA,MAAMA,CAACA,KAAKA,CAACA,WAAWA,GAAGA,IAAIA,CAACA;IACpCA,CAACA;IACDA,IAAIA,CAACA,CAACA;QACFA,MAAMA,CAACA,KAAKA,CAACA,IAAIA,CAACA;IACtBA,CAACA;AACLA,CAACA;AAED,SAAS,SAAS,CAAC,KAAa;IAC5BC,MAAMA,CAACA,KAAKA,CAACA,MAAMA,CAACA,CAACA,EAAEA,CAACA,CAACA,CAACA,WAAWA,EAAEA,GAAGA,KAAKA,CAACA,MAAMA,CAACA,CAACA,CAACA,CAACA;AAC9DA,CAACA;AAED,SAAS,WAAW,CAAC,KAAwB;IACzCC,EAAEA,CAACA,CAACA,KAAKA,CAACA,IAAIA,KAAKA,WAAWA,CAACA,CAACA,CAACA;QAC7BA,MAAMA,CAACA,GAAGA,GAAGA,KAAKA,CAACA,IAAIA,CAACA;IAC5BA,CAACA;IAEDA,MAAMA,CAACA,KAAKA,CAACA,IAAIA,CAACA;AACtBA,CAACA;AAED,SAAS,2BAA2B,CAAC,UAA2B;IAC5DC,IAAIA,MAAMA,GAAGA,iBAAiBA,GAAGA,UAAUA,CAACA,IAAIA,GAAGA,IAAIA,GAAGA,oBAAoBA,CAACA,UAAUA,CAACA,GAAGA,0CAA0CA,CAACA;IAExIA,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,UAAUA,CAACA,QAAQA,CAACA,MAAMA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;QAClDA,IAAIA,KAAKA,GAAGA,UAAUA,CAACA,QAAQA,CAACA,CAACA,CAACA,CAACA;QACnCA,MAAMA,IAAIA,IAAIA,CAACA;QACfA,MAAMA,IAAIA,WAAWA,CAACA,KAAKA,CAACA,CAACA;QAC7BA,MAAMA,IAAIA,IAAIA,GAAGA,OAAOA,CAACA,KAAKA,CAACA,CAACA;IACpCA,CAACA;IAEDA,MAAMA,IAAIA,SAASA,CAACA;IAEpBA,MAAMA,IAAIA,+CAA+CA,CAACA;IAE1DA,EAAEA,CAACA,CAACA,UAAUA,CAACA,QAAQA,CAACA,MAAMA,CAACA,CAACA,CAACA;QAC7BA,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,UAAUA,CAACA,QAAQA,CAACA,MAAMA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;YAClDA,EAAEA,CAACA,CAACA,CAACA,CAACA,CAACA,CAACA;gBACJA,MAAMA,IAAIA,OAAOA,CAACA;YACtBA,CAACA;YAEDA,IAAIA,KAAKA,GAAGA,UAAUA,CAACA,QAAQA,CAACA,CAACA,CAACA,CAACA;YACnCA,MAAMA,IAAIA,eAAeA,GAAGA,KAAKA,CAACA,IAAIA,GAAGA,KAAKA,GAAGA,WAAWA,CAACA,KAAKA,CAACA,CAACA;QACxEA,CAACA;IACLA,CAACA;IAEDA,EAAEA,CAACA,CAACA,UAAUA,CAACA,QAAQA,CAACA,MAAMA,GAAGA,CAACA,CAACA,CAACA,CAACA;QACjCA,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,UAAUA,CAACA,QAAQA,CAACA,MAAMA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;YAClDA,MAAMA,IAAIA,eAAeA,CAACA;YAE1BA,IAAIA,KAAKA,GAAGA,UAAUA,CAACA,QAAQA,CAACA,CAACA,CAACA,CAACA;YAEnCA,EAAEA,CAACA,CAACA,KAAKA,CAACA,UAAUA,CAACA,CAACA,CAACA;gBACnBA,MAAMA,IAAIA,WAAWA,CAACA,KAAKA,CAACA,GAAGA,OAAOA,GAAGA,WAAWA,CAACA,KAAKA,CAACA,GAAGA,iBAAiBA,CAACA;YACpFA,CAACA;YACDA,IAAIA,CAACA,CAACA;gBACFA,MAAMA,IAAIA,WAAWA,CAACA,KAAKA,CAACA,GAAGA,gBAAgBA,CAACA;YACpDA,CAACA;QACLA,CAACA;QACDA,MAAMA,IAAIA,OAAOA,CAACA;IACtBA,CAACA;IAEDA,MAAMA,IAAIA,YAAYA,CAACA;IACvBA,MAAMA,IAAIA,MAAMA,GAAGA,UAAUA,CAACA,IAAIA,GAAGA,+BAA+BA,GAAGA,oBAAoBA,CAACA,UAAUA,CAACA,GAAGA,OAAOA,CAACA;IAClHA,MAAMA,IAAIA,MAAMA,GAAGA,UAAUA,CAACA,IAAIA,GAAGA,0BAA0BA,GAAGA,UAAUA,CAACA,QAAQA,CAACA,MAAMA,GAAGA,OAAOA,CAACA;IACvGA,MAAMA,IAAIA,MAAMA,GAAGA,UAAUA,CAACA,IAAIA,GAAGA,oEAAoEA,CAACA;IAC1GA,EAAEA,CAACA,CAACA,UAAUA,CAACA,QAAQA,CAACA,MAAMA,CAACA,CAACA,CAACA;QAC7BA,MAAMA,IAAIA,8BAA8BA,CAACA;QAEzCA,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,UAAUA,CAACA,QAAQA,CAACA,MAAMA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;YAClDA,MAAMA,IAAIA,mBAAmBA,GAAGA,CAACA,GAAGA,gBAAgBA,GAAGA,UAAUA,CAACA,QAAQA,CAACA,CAACA,CAACA,CAACA,IAAIA,GAAGA,OAAOA,CAACA;QACjGA,CAACA;QAEDA,MAAMA,IAAIA,eAAeA,CAACA;IAC9BA,CAACA;IACDA,IAAIA,CAACA,CAACA;QACFA,MAAMA,IAAIA,8CAA8CA,CAACA;IAC7DA,CAACA;IACDA,MAAMA,IAAIA,WAAWA,CAACA;IAEtBA,MAAMA,CAACA,MAAMA,CAACA;AAClBA,CAACA;AAED,SAAS,wBAAwB;IAC7BC,IAAIA,MAAMA,GAAGA,+CAA+CA,CAACA;IAE7DA,MAAMA,IAAIA,yBAAyBA,CAACA;IAEpCA,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,WAAWA,CAACA,MAAMA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;QAC1CA,IAAIA,UAAUA,GAAGA,WAAWA,CAACA,CAACA,CAACA,CAACA;QAEhCA,EAAEA,CAACA,CAACA,CAACA,GAAGA,CAACA,CAACA,CAACA,CAACA;YACRA,MAAMA,IAAIA,MAAMA,CAACA;QACrBA,CAACA;QAEDA,MAAMA,IAAIA,uBAAuBA,CAACA,UAAUA,CAACA,CAACA;IAClDA,CAACA;IAEDA,MAAMA,IAAIA,GAAGA,CAACA;IACdA,MAAMA,CAACA,MAAMA,CAACA;AAClBA,CAACA;AAED,SAAS,uBAAuB,CAAC,UAA2B;IACxDC,IAAIA,MAAMA,GAAGA,uBAAuBA,GAAGA,UAAUA,CAACA,IAAIA,GAAGA,sBAAsBA,CAAAA;IAE/EA,EAAEA,CAACA,CAACA,UAAUA,CAACA,UAAUA,CAACA,CAACA,CAACA;QACxBA,MAAMA,IAAIA,IAAIA,CAACA;QACfA,MAAMA,IAAIA,UAAUA,CAACA,UAAUA,CAACA,IAAIA,CAACA,IAAIA,CAACA,CAACA;IAC/CA,CAACA;IAEDA,MAAMA,IAAIA,QAAQA,CAACA;IAEnBA,EAAEA,CAACA,CAACA,UAAUA,CAACA,IAAIA,KAAKA,kBAAkBA,CAACA,CAACA,CAACA;QACzCA,MAAMA,IAAIA,qCAAqCA,CAACA;IACpDA,CAACA;IAEDA,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,UAAUA,CAACA,QAAQA,CAACA,MAAMA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;QAClDA,IAAIA,KAAKA,GAAGA,UAAUA,CAACA,QAAQA,CAACA,CAACA,CAACA,CAACA;QACnCA,MAAMA,IAAIA,UAAUA,GAAGA,KAAKA,CAACA,IAAIA,GAAGA,IAAIA,GAAGA,OAAOA,CAACA,KAAKA,CAACA,GAAGA,OAAOA,CAACA;IACxEA,CAACA;IAEDA,MAAMA,IAAIA,WAAWA,CAACA;IACtBA,MAAMA,IAAIA,uBAAuBA,GAAGA,oBAAoBA,CAACA,UAAUA,CAACA,GAAGA,eAAeA,CAACA;IACvFA,MAAMA,IAAIA,oBAAoBA,CAACA;IAE/BA,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,UAAUA,CAACA,QAAQA,CAACA,MAAMA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;QAClDA,IAAIA,KAAKA,GAAGA,UAAUA,CAACA,QAAQA,CAACA,CAACA,CAACA,CAACA;QACnCA,MAAMA,IAAIA,IAAIA,CAACA;QACfA,MAAMA,IAAIA,WAAWA,CAACA,KAAKA,CAACA,CAACA;QAC7BA,MAAMA,IAAIA,IAAIA,GAAGA,OAAOA,CAACA,KAAKA,CAACA,CAACA;IACpCA,CAACA;IAEDA,MAAMA,IAAIA,KAAKA,GAAGA,UAAUA,CAACA,IAAIA,CAACA;IAClCA,MAAMA,IAAIA,QAAQA,CAACA;IAEnBA,MAAMA,CAACA,MAAMA,CAACA;AAClBA,CAACA;AAED,SAAS,aAAa;IAClBC,IAAIA,MAAMA,GAAGA,+CAA+CA,CAACA;IAE7DA,MAAMA,IAAIA,mBAAmBA,CAACA;IAE9BA,MAAMA,IAAIA,QAAQA,CAACA;IAEnBA,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,WAAWA,CAACA,MAAMA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;QAC1CA,IAAIA,UAAUA,GAAGA,WAAWA,CAACA,CAACA,CAACA,CAACA;QAEhCA,EAAEA,CAACA,CAACA,CAACA,CAACA,CAACA,CAACA;YACJA,MAAMA,IAAIA,MAAMA,CAACA;QACrBA,CAACA;QAEDA,MAAMA,IAAIA,2BAA2BA,CAACA,UAAUA,CAACA,CAACA;IACtDA,CAACA;IAEDA,MAAMA,IAAIA,GAAGA,CAACA;IACdA,MAAMA,CAACA,MAAMA,CAACA;AAClBA,CAACA;AAED,SAAS,WAAW,CAAC,IAAY;IAC7BC,MAAMA,CAACA,IAAIA,CAACA,MAAMA,CAACA,CAACA,EAAEA,CAACA,CAACA,KAAKA,GAAGA,IAAIA,IAAIA,CAACA,MAAMA,CAACA,CAACA,EAAEA,CAACA,CAACA,CAACA,WAAWA,EAAEA,KAAKA,IAAIA,CAACA,MAAMA,CAACA,CAACA,EAAEA,CAACA,CAACA,CAAAA;AAC7FA,CAACA;AAED,SAAS,cAAc;IACnBC,IAAIA,MAAMA,GAAGA,EAAEA,CAACA;IAEhBA,MAAMA,IACNA,2CAA2CA,GAC3CA,MAAMA,GACNA,yBAAyBA,GACzBA,+DAA+DA,GAC/DA,4DAA4DA,GAC5DA,eAAeA,GACfA,MAAMA,GACNA,qEAAqEA,GACrEA,4CAA4CA,GAC5CA,6BAA6BA,GAC7BA,mBAAmBA,GACnBA,MAAMA,GACNA,yCAAyCA,GACzCA,eAAeA,GACfA,MAAMA,GACNA,kEAAkEA,GAClEA,gEAAgEA,GAChEA,sDAAsDA,GACtDA,mBAAmBA,GACnBA,eAAeA,CAACA;IAEhBA,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,WAAWA,CAACA,MAAMA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;QAC1CA,IAAIA,UAAUA,GAAGA,WAAWA,CAACA,CAACA,CAACA,CAACA;QAEhCA,MAAMA,IAAIA,MAAMA,CAACA;QACjBA,MAAMA,IAAIA,sBAAsBA,GAAGA,oBAAoBA,CAACA,UAAUA,CAACA,GAAGA,SAASA,GAAGA,UAAUA,CAACA,IAAIA,GAAGA,eAAeA,CAACA;QAEpHA,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,UAAUA,CAACA,QAAQA,CAACA,MAAMA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;YAClDA,IAAIA,KAAKA,GAAGA,UAAUA,CAACA,QAAQA,CAACA,CAACA,CAACA,CAACA;YAEnCA,EAAEA,CAACA,CAACA,KAAKA,CAACA,OAAOA,CAACA,CAACA,CAACA;gBAChBA,EAAEA,CAACA,CAACA,KAAKA,CAACA,UAAUA,CAACA,CAACA,CAACA;oBACnBA,MAAMA,IAAIA,2CAA2CA,GAAGA,KAAKA,CAACA,IAAIA,GAAGA,QAAQA,CAACA;gBAClFA,CAACA;gBACDA,IAAIA,CAACA,CAACA;oBACFA,MAAMA,IAAIA,mCAAmCA,GAAGA,KAAKA,CAACA,IAAIA,GAAGA,QAAQA,CAACA;gBAC1EA,CAACA;YACLA,CAACA;YACDA,IAAIA,CAACA,EAAEA,CAACA,CAACA,KAAKA,CAACA,MAAMA,IAAIA,KAAKA,CAACA,eAAeA,CAACA,CAACA,CAACA;gBAC7CA,MAAMA,IAAIA,kCAAkCA,GAAGA,KAAKA,CAACA,IAAIA,GAAGA,QAAQA,CAACA;YACzEA,CAACA;YACDA,IAAIA,CAACA,EAAEA,CAACA,CAACA,KAAKA,CAACA,OAAOA,CAACA,CAACA,CAACA;gBACrBA,EAAEA,CAACA,CAACA,KAAKA,CAACA,UAAUA,CAACA,CAACA,CAACA;oBACnBA,MAAMA,IAAIA,2CAA2CA,GAAGA,KAAKA,CAACA,IAAIA,GAAGA,QAAQA,CAACA;gBAClFA,CAACA;gBACDA,IAAIA,CAACA,CAACA;oBACFA,MAAMA,IAAIA,mCAAmCA,GAAGA,KAAKA,CAACA,IAAIA,GAAGA,QAAQA,CAACA;gBAC1EA,CAACA;YACLA,CAACA;YACDA,IAAIA,CAACA,CAACA;gBACFA,MAAMA,IAAIA,0CAA0CA,GAAGA,KAAKA,CAACA,IAAIA,GAAGA,QAAQA,CAACA;YACjFA,CAACA;QACLA,CAACA;QAEDA,MAAMA,IAAIA,eAAeA,CAACA;IAC9BA,CAACA;IAEDA,MAAMA,IAAIA,OAAOA,CAACA;IAClBA,MAAMA,IAAIA,OAAOA,CAACA;IAClBA,MAAMA,CAACA,MAAMA,CAACA;AAClBA,CAACA;AAED,SAAS,aAAa,CAAC,CAAM,EAAE,KAAa;IACxCC,GAAGA,CAACA,CAACA,GAAGA,CAACA,IAAIA,IAAIA,CAACA,CAACA,CAACA,CAACA;QACjBA,EAAEA,CAACA,CAACA,CAACA,CAACA,IAAIA,CAACA,KAAKA,KAAKA,CAACA,CAACA,CAACA;YACpBA,MAAMA,CAACA,IAAIA,CAACA;QAChBA,CAACA;IACLA,CAACA;AACLA,CAACA;AAED,SAAS,OAAO,CAAI,KAAU,EAAE,IAAsB;IAClDC,IAAIA,MAAMA,GAAQA,EAAEA,CAACA;IAErBA,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,KAAKA,CAACA,MAAMA,EAAEA,CAACA,GAAGA,CAACA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;QAC3CA,IAAIA,CAACA,GAAQA,KAAKA,CAACA,CAACA,CAACA,CAACA;QACtBA,IAAIA,CAACA,GAAGA,IAAIA,CAACA,CAACA,CAACA,CAACA;QAEhBA,IAAIA,IAAIA,GAAQA,MAAMA,CAACA,CAACA,CAACA,IAAIA,EAAEA,CAACA;QAChCA,IAAIA,CAACA,IAAIA,CAACA,CAACA,CAACA,CAACA;QACbA,MAAMA,CAACA,CAACA,CAACA,GAAGA,IAAIA,CAACA;IACrBA,CAACA;IAEDA,MAAMA,CAACA,MAAMA,CAACA;AAClBA,CAACA;AAED,SAAS,wBAAwB,CAAC,QAA0D,EAAE,gBAAwB,EAAE,MAAc;IAClIC,IAAIA,MAAMA,GAAGA,QAAQA,CAACA,CAACA,CAACA,CAACA,IAAIA,CAACA,MAAMA,CAACA;IAErCA,IAAIA,MAAMA,GAAGA,EAAEA,CAACA;IAChBA,IAAIA,KAAaA,CAACA;IAElBA,EAAEA,CAACA,CAACA,QAAQA,CAACA,MAAMA,KAAKA,CAACA,CAACA,CAACA,CAACA;QACxBA,IAAIA,OAAOA,GAAGA,QAAQA,CAACA,CAACA,CAACA,CAACA;QAE1BA,EAAEA,CAACA,CAACA,gBAAgBA,KAAKA,MAAMA,CAACA,CAACA,CAACA;YAC9BA,MAAMA,CAACA,qBAAqBA,GAAGA,aAAaA,CAACA,iBAAiBA,EAAEA,EAAEA,OAAOA,CAACA,IAAIA,CAACA,GAAGA,OAAOA,CAACA;QAC9FA,CAACA;QAEDA,IAAIA,WAAWA,GAAGA,QAAQA,CAACA,CAACA,CAACA,CAACA,IAAIA,CAACA;QACnCA,MAAMA,GAAGA,WAAWA,CAAAA;QAEpBA,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,gBAAgBA,EAAEA,CAACA,GAAGA,MAAMA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;YAC7CA,EAAEA,CAACA,CAACA,CAACA,GAAGA,gBAAgBA,CAACA,CAACA,CAACA;gBACvBA,MAAMA,IAAIA,MAAMA,CAACA;YACrBA,CAACA;YAEDA,KAAKA,GAAGA,CAACA,KAAKA,CAACA,GAAGA,OAAOA,GAAGA,CAACA,UAAUA,GAAGA,CAACA,CAACA,CAACA;YAC7CA,MAAMA,IAAIA,iBAAiBA,GAAGA,KAAKA,GAAGA,uBAAuBA,GAAGA,WAAWA,CAACA,MAAMA,CAACA,CAACA,EAAEA,CAACA,CAACA,CAACA;QAC7FA,CAACA;QAEDA,MAAMA,IAAIA,iBAAiBA,GAAGA,aAAaA,CAACA,iBAAiBA,EAAEA,EAAEA,OAAOA,CAACA,IAAIA,CAACA,GAAGA,mCAAmCA,CAACA;IACzHA,CAACA;IACDA,IAAIA,CAACA,CAACA;QACFA,MAAMA,IAAIA,MAAMA,GAAGA,UAAUA,CAACA,cAAcA,CAACA,MAAMA,CAACA,QAAQA,EAAEA,UAAAA,CAAIA,IAACA,OAAAA,CAACA,CAACA,IAAIA,EAANA,CAAMA,CAACA,CAACA,IAAIA,CAACA,IAAIA,CAACA,GAAGA,MAAMA,CAAAA;QAC9FA,KAAKA,GAAGA,gBAAgBA,KAAKA,CAACA,GAAGA,OAAOA,GAAGA,CAACA,UAAUA,GAAGA,gBAAgBA,CAACA,CAACA;QAC3EA,MAAMA,IAAIA,MAAMA,GAAGA,wBAAwBA,GAAGA,KAAKA,GAAGA,UAAUA,CAAAA;QAEhEA,IAAIA,eAAeA,GAAGA,OAAOA,CAACA,QAAQA,EAAEA,UAAAA,CAAIA,IAACA,OAAAA,CAACA,CAACA,IAAIA,CAACA,MAAMA,CAACA,gBAAgBA,EAAEA,CAACA,CAACA,EAAlCA,CAAkCA,CAACA,CAACA;QAEjFA,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,IAAIA,eAAeA,CAACA,CAACA,CAACA;YAC5BA,EAAEA,CAACA,CAACA,eAAeA,CAACA,cAAcA,CAACA,CAACA,CAACA,CAACA,CAACA,CAACA;gBACpCA,MAAMA,IAAIA,MAAMA,GAAGA,wBAAwBA,GAAGA,CAACA,GAAGA,GAAGA,CAACA;gBACtDA,MAAMA,IAAIA,wBAAwBA,CAACA,eAAeA,CAACA,CAACA,CAACA,EAAEA,gBAAgBA,GAAGA,CAACA,EAAEA,MAAMA,GAAGA,MAAMA,CAACA,CAACA;YAClGA,CAACA;QACLA,CAACA;QAEDA,MAAMA,IAAIA,MAAMA,GAAGA,kDAAkDA,CAACA;QACtEA,MAAMA,IAAIA,MAAMA,GAAGA,OAAOA,CAACA;IAC/BA,CAACA;IAEDA,MAAMA,CAACA,MAAMA,CAACA;AAClBA,CAACA;AAED,SAAS,GAAG,CAAI,KAAU,EAAE,IAAsB;IAC9CC,IAAIA,GAAGA,GAAGA,IAAIA,CAACA,KAAKA,CAACA,CAACA,CAACA,CAACA,CAACA;IAEzBA,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,KAAKA,CAACA,MAAMA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;QACpCA,IAAIA,IAAIA,GAAGA,IAAIA,CAACA,KAAKA,CAACA,CAACA,CAACA,CAACA,CAACA;QAC1BA,EAAEA,CAACA,CAACA,IAAIA,GAAGA,GAAGA,CAACA,CAACA,CAACA;YACbA,GAAGA,GAAGA,IAAIA,CAACA;QACfA,CAACA;IACLA,CAACA;IAEDA,MAAMA,CAACA,GAAGA,CAACA;AACfA,CAACA;AAED,SAAS,GAAG,CAAI,KAAU,EAAE,IAAsB;IAC9CC,IAAIA,GAAGA,GAAGA,IAAIA,CAACA,KAAKA,CAACA,CAACA,CAACA,CAACA,CAACA;IAEzBA,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,KAAKA,CAACA,MAAMA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;QACpCA,IAAIA,IAAIA,GAAGA,IAAIA,CAACA,KAAKA,CAACA,CAACA,CAACA,CAACA,CAACA;QAC1BA,EAAEA,CAACA,CAACA,IAAIA,GAAGA,GAAGA,CAACA,CAACA,CAACA;YACbA,GAAGA,GAAGA,IAAIA,CAACA;QACfA,CAACA;IACLA,CAACA;IAEDA,MAAMA,CAACA,GAAGA,CAACA;AACfA,CAACA;AAED,SAAS,iBAAiB;IACtBC,IAAIA,MAAMA,GAAGA,EAAEA,CAACA;IAahBA,MAAMA,CAACA,MAAMA,CAACA;AAClBA,CAACA;AAED,SAAS,wBAAwB;IAC7BC,IAAIA,MAAMA,GAAGA,2CAA2CA,GACpDA,MAAMA,GACNA,yBAAyBA,GACzBA,0CAA0CA,CAACA;IAE/CA,MAAMA,IAAIA,wCAAwCA,CAACA;IACnDA,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,IAAIA,wBAAoCA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;QAC7DA,EAAEA,CAACA,CAACA,CAACA,CAACA,CAACA,CAACA;YACJA,MAAMA,IAAIA,IAAIA,CAACA;QACnBA,CAACA;QAEDA,EAAEA,CAACA,CAACA,CAACA,GAAGA,wBAAqCA,CAACA,CAACA,CAACA;YAC5CA,MAAMA,IAAIA,GAAGA,CAACA;QAClBA,CAACA;QACDA,IAAIA,CAACA,CAACA;YACFA,MAAMA,IAAIA,UAAUA,CAACA,WAAWA,CAACA,OAAOA,CAACA,CAACA,CAACA,CAACA,MAAMA,CAACA;QACvDA,CAACA;IACLA,CAACA;IACDA,MAAMA,IAAIA,QAAQA,CAACA;IAGnBA,IAAIA,CAASA,CAACA;IACdA,IAAIA,QAAQA,GAAqDA,EAAEA,CAACA;IAEpEA,GAAGA,CAACA,CAACA,CAACA,GAAGA,qBAAkCA,EAAEA,CAACA,IAAIA,oBAAiCA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;QACvFA,QAAQA,CAACA,IAAIA,CAACA,EAAEA,IAAIA,EAAEA,CAACA,EAAEA,IAAIA,EAAEA,UAAUA,CAACA,WAAWA,CAACA,OAAOA,CAACA,CAACA,CAACA,EAAEA,CAACA,CAACA;IACxEA,CAACA;IAEDA,QAAQA,CAACA,IAAIA,CAACA,UAACA,CAACA,EAAEA,CAACA,IAAKA,OAAAA,CAACA,CAACA,IAAIA,CAACA,aAAaA,CAACA,CAACA,CAACA,IAAIA,CAACA,EAA5BA,CAA4BA,CAACA,CAACA;IAEtDA,MAAMA,IAAIA,sGAAsGA,CAACA;IAEjHA,IAAIA,cAAcA,GAAGA,GAAGA,CAACA,QAAQA,EAAEA,UAAAA,CAAIA,IAACA,OAAAA,CAACA,CAACA,IAAIA,CAACA,MAAMA,EAAbA,CAAaA,CAACA,CAACA;IACvDA,IAAIA,cAAcA,GAAGA,GAAGA,CAACA,QAAQA,EAAEA,UAAAA,CAAIA,IAACA,OAAAA,CAACA,CAACA,IAAIA,CAACA,MAAMA,EAAbA,CAAaA,CAACA,CAACA;IACvDA,MAAMA,IAAIA,mCAAmCA,CAACA;IAG9CA,GAAGA,CAACA,CAACA,CAACA,GAAGA,cAAcA,EAAEA,CAACA,IAAIA,cAAcA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;QAChDA,IAAIA,iBAAiBA,GAAGA,UAAUA,CAACA,cAAcA,CAACA,KAAKA,CAACA,QAAQA,EAAEA,UAAAA,CAAIA,IAACA,OAAAA,CAACA,CAACA,IAAIA,CAACA,MAAMA,KAAKA,CAACA,EAAnBA,CAAmBA,CAACA,CAACA;QAC5FA,EAAEA,CAACA,CAACA,iBAAiBA,CAACA,MAAMA,GAAGA,CAACA,CAACA,CAACA,CAACA;YAC/BA,MAAMA,IAAIA,qBAAqBA,GAAGA,CAACA,GAAGA,GAAGA,CAACA;YAC1CA,MAAMA,IAAIA,wBAAwBA,CAACA,iBAAiBA,EAAEA,CAACA,EAAEA,kBAAkBA,CAACA,CAACA;QACjFA,CAACA;IACLA,CAACA;IAEDA,MAAMA,IAAIA,8DAA8DA,CAACA;IACzEA,MAAMA,IAAIA,mBAAmBA,CAACA;IAC9BA,MAAMA,IAAIA,eAAeA,CAACA;IAE1BA,MAAMA,IAAIA,WAAWA,CAACA;IACtBA,MAAMA,IAAIA,GAAGA,CAACA;IAEdA,MAAMA,CAACA,MAAMA,CAACA;AAClBA,CAACA;AAED,SAAS,cAAc,CAAC,IAA2B;IAC/CC,GAAGA,CAACA,CAACA,GAAGA,CAACA,IAAIA,IAAIA,iBAAiBA,EAAEA,CAACA,CAACA,CAACA;QACnCA,EAAEA,CAACA,CAACA,iBAAiBA,EAAEA,CAACA,IAAIA,CAACA,KAAKA,IAAIA,CAACA,CAACA,CAACA;YACrCA,MAAMA,CAACA,IAAIA,CAACA;QAChBA,CAACA;IACLA,CAACA;IAEDA,MAAMA,IAAIA,KAAKA,EAAEA,CAACA;AACtBA,CAACA;AAED,SAAS,eAAe;IACpBC,IAAIA,MAAMA,GAAGA,EAAEA,CAACA;IAEhBA,MAAMA,IAAIA,+CAA+CA,CAACA;IAE1DA,MAAMA,IAAIA,yBAAyBA,CAACA;IACpCA,MAAMA,IAAIA,uGAAuGA,CAACA;IAClHA,MAAMA,IAAIA,8DAA8DA,CAACA;IAEzEA,MAAMA,IAAIA,qCAAqCA,CAACA;IAEhDA,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,WAAWA,CAACA,MAAMA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;QAC1CA,IAAIA,UAAUA,GAAGA,WAAWA,CAACA,CAACA,CAACA,CAACA;QAEhCA,MAAMA,IAAIA,8BAA8BA,GAAGA,oBAAoBA,CAACA,UAAUA,CAACA,GAAGA,IAAIA,CAACA;QACnFA,MAAMA,IAAIA,sBAAsBA,GAAGA,oBAAoBA,CAACA,UAAUA,CAACA,GAAGA,IAAIA,GAAGA,UAAUA,CAACA,IAAIA,GAAGA,gBAAgBA,CAACA;IACpHA,CAACA;IAEDA,MAAMA,IAAIA,4EAA4EA,CAACA;IACvFA,MAAMA,IAAIA,eAAeA,CAACA;IAC1BA,MAAMA,IAAIA,eAAeA,CAACA;IAE1BA,MAAMA,IAAIA,2CAA2CA,CAACA;IACtDA,MAAMA,IAAIA,mDAAmDA,CAACA;IAE9DA,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,WAAWA,CAACA,MAAMA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;QAC1CA,IAAIA,UAAUA,GAAGA,WAAWA,CAACA,CAACA,CAACA,CAACA;QAChCA,MAAMA,IAAIA,eAAeA,GAAGA,oBAAoBA,CAACA,UAAUA,CAACA,GAAGA,SAASA,GAAGA,UAAUA,CAACA,IAAIA,GAAGA,aAAaA,CAACA;IAC/GA,CAACA;IAEDA,MAAMA,IAAIA,OAAOA,CAACA;IAElBA,MAAMA,IAAIA,OAAOA,CAACA;IAElBA,MAAMA,CAACA,MAAMA,CAACA;AAClBA,CAACA;AAED,IAAI,mBAAmB,GAAG,aAAa,EAAE,CAAC;AAC1C,IAAI,gBAAgB,GAAG,wBAAwB,EAAE,CAAC;AAClD,IAAI,MAAM,GAAG,cAAc,EAAE,CAAC;AAC9B,IAAI,gBAAgB,GAAG,wBAAwB,EAAE,CAAC;AAClD,IAAI,OAAO,GAAG,eAAe,EAAE,CAAC;AAChC,IAAI,SAAS,GAAG,iBAAiB,EAAE,CAAC;AAEpC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,mBAAmB,EAAE,GAAG,4DAA4D,EAAE,mBAAmB,EAAE,KAAK,CAAC,CAAC;AACpI,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,mBAAmB,EAAE,GAAG,wDAAwD,EAAE,gBAAgB,EAAE,KAAK,CAAC,CAAC;AAC7H,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,mBAAmB,EAAE,GAAG,oDAAoD,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;AAC/G,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,mBAAmB,EAAE,GAAG,wDAAwD,EAAE,gBAAgB,EAAE,KAAK,CAAC,CAAC;AAC7H,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,mBAAmB,EAAE,GAAG,qDAAqD,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;AACjH,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,mBAAmB,EAAE,GAAG,iDAAiD,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC"} >>>>>>> f370dc1... Use a const enum for the syntax kind. +======= +{"version":3,"file":"SyntaxGenerator.js","sourceRoot":"","sources":["file:///C:/VSPro_1/src/typescript/public_cyrusn/src/compiler/sys.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/core/errors.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/core/arrayUtilities.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/core/stringUtilities.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/syntax/syntaxKind.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/syntax/syntaxFacts.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/syntax/SyntaxGenerator.ts"],"names":["getWScriptSystem","getWScriptSystem.readFile","getWScriptSystem.writeFile","getNodeSystem","getNodeSystem.readFile","getNodeSystem.writeFile","getNodeSystem.fileChanged","TypeScript","TypeScript.Errors","TypeScript.Errors.constructor","TypeScript.Errors.argument","TypeScript.Errors.argumentOutOfRange","TypeScript.Errors.argumentNull","TypeScript.Errors.abstract","TypeScript.Errors.notYetImplemented","TypeScript.Errors.invalidOperation","TypeScript.ArrayUtilities","TypeScript.ArrayUtilities.constructor","TypeScript.ArrayUtilities.sequenceEquals","TypeScript.ArrayUtilities.contains","TypeScript.ArrayUtilities.distinct","TypeScript.ArrayUtilities.last","TypeScript.ArrayUtilities.lastOrDefault","TypeScript.ArrayUtilities.firstOrDefault","TypeScript.ArrayUtilities.first","TypeScript.ArrayUtilities.sum","TypeScript.ArrayUtilities.select","TypeScript.ArrayUtilities.where","TypeScript.ArrayUtilities.any","TypeScript.ArrayUtilities.all","TypeScript.ArrayUtilities.binarySearch","TypeScript.ArrayUtilities.createArray","TypeScript.ArrayUtilities.grow","TypeScript.ArrayUtilities.copy","TypeScript.ArrayUtilities.indexOf","TypeScript.StringUtilities","TypeScript.StringUtilities.constructor","TypeScript.StringUtilities.isString","TypeScript.StringUtilities.endsWith","TypeScript.StringUtilities.startsWith","TypeScript.StringUtilities.repeat","TypeScript.SyntaxKind","TypeScript.SyntaxFacts","TypeScript.SyntaxFacts.getTokenKind","TypeScript.SyntaxFacts.getText","TypeScript.SyntaxFacts.isAnyKeyword","TypeScript.SyntaxFacts.isAnyPunctuation","TypeScript.SyntaxFacts.isPrefixUnaryExpressionOperatorToken","TypeScript.SyntaxFacts.isBinaryExpressionOperatorToken","TypeScript.SyntaxFacts.isAssignmentOperatorToken","TypeScript.SyntaxFacts.isType","getSyntaxKindEnum","firstKind","getStringWithoutSuffix","getNameWithoutSuffix","getType","camelCase","getSafeName","generateConstructorFunction","generateSyntaxInterfaces","generateSyntaxInterface","generateNodes","isInterface","generateWalker","firstEnumName","groupBy","generateKeywordCondition","min","max","generateUtilities","generateScannerUtilities","syntaxKindName","generateVisitor"],"mappings":"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"} +>>>>>>> 8c342a2... Add support for parsing type aliases. diff --git a/src/services/syntax/parser.ts b/src/services/syntax/parser.ts index 49643fa3e6d..f276ffd9561 100644 --- a/src/services/syntax/parser.ts +++ b/src/services/syntax/parser.ts @@ -798,7 +798,7 @@ module TypeScript.Parser { } var _modifierCount = modifierCount(); - return isInterfaceEnumClassModuleImportOrExport(_modifierCount) || + return isInterfaceEnumClassModuleImportExportOrTypeAlias(_modifierCount) || isStatement(_modifierCount, inErrorRecovery); } @@ -822,6 +822,7 @@ module TypeScript.Parser { case SyntaxKind.ClassKeyword: return parseClassDeclaration(); case SyntaxKind.EnumKeyword: return parseEnumDeclaration(); case SyntaxKind.ExportKeyword: return parseExportAssignment(); + case SyntaxKind.TypeKeyword: return parseTypeAlias(); } } @@ -864,6 +865,12 @@ module TypeScript.Parser { } break; + case SyntaxKind.TypeKeyword: + if (isIdentifier(nextToken)) { + return parseTypeAlias(); + } + break; + case SyntaxKind.ExportKeyword: // 'export' could be a modifier on a statement (like export var ...). So we // only want to parse out an export assignment here if we actually see the equals. @@ -1495,6 +1502,16 @@ module TypeScript.Parser { parseObjectType()); } + function parseTypeAlias(): TypeAliasSyntax { + return new TypeAliasSyntax(contextFlags, + parseModifiers(), + eatToken(SyntaxKind.TypeKeyword), + eatIdentifierToken(), + eatToken(SyntaxKind.EqualsToken), + parseType(), + eatExplicitOrAutomaticSemicolon(/*allowWithoutNewLine:*/ false)); + } + function parseObjectType(): ObjectTypeSyntax { var openBraceToken: ISyntaxToken; @@ -1696,7 +1713,7 @@ module TypeScript.Parser { parseSeparatedSyntaxList(ListParsingState.HeritageClause_TypeNameList)); } - function isInterfaceEnumClassModuleImportOrExport(modifierCount: number, _currentToken?: ISyntaxToken): boolean { + function isInterfaceEnumClassModuleImportExportOrTypeAlias(modifierCount: number, _currentToken?: ISyntaxToken): boolean { if (modifierCount) { // Any of these keywords following a modifier is definitely a TS construct. switch (peekToken(modifierCount).kind) { @@ -1706,6 +1723,7 @@ module TypeScript.Parser { case SyntaxKind.ClassKeyword: case SyntaxKind.EnumKeyword: case SyntaxKind.ExportKeyword: + case SyntaxKind.TypeKeyword: return true; } } @@ -1717,20 +1735,20 @@ module TypeScript.Parser { // want to consider them the start of the module element construct. For example, they // might be hte name in an object literal. Because of that, we check the next token to // make sure it really is the start of a module element. - var nextToken = peekToken(1); - switch (_currentToken.kind) { case SyntaxKind.ModuleKeyword: + var nextToken = peekToken(1); return isIdentifier(nextToken) || nextToken.kind === SyntaxKind.StringLiteral; case SyntaxKind.ImportKeyword: case SyntaxKind.ClassKeyword: case SyntaxKind.EnumKeyword: case SyntaxKind.InterfaceKeyword: - return isIdentifier(nextToken); + case SyntaxKind.TypeKeyword: + return isIdentifier(peekToken(1)); case SyntaxKind.ExportKeyword: - return nextToken.kind === SyntaxKind.EqualsToken; + return peekToken(1).kind === SyntaxKind.EqualsToken; } return false; @@ -1773,7 +1791,7 @@ module TypeScript.Parser { // do not want to consume. This can happen when the user does not terminate their // existing block properly. We don't want to accidently consume these as expression // below. - if (isInterfaceEnumClassModuleImportOrExport(modifierCount(), _currentToken)) { + if (isInterfaceEnumClassModuleImportExportOrTypeAlias(modifierCount(), _currentToken)) { return true; } } diff --git a/src/services/syntax/prettyPrinter.ts b/src/services/syntax/prettyPrinter.ts index c8b08dc876e..b54a7d8a399 100644 --- a/src/services/syntax/prettyPrinter.ts +++ b/src/services/syntax/prettyPrinter.ts @@ -266,6 +266,20 @@ module TypeScript.PrettyPrinter { this.appendObjectType(node.body, /*appendNewLines:*/ true); } + public visitTypeAlias(node: TypeAliasSyntax): void { + this.appendSpaceList(node.modifiers); + this.ensureSpace(); + this.appendToken(node.typeKeyword); + this.ensureSpace(); + this.appendToken(node.identifier); + this.ensureSpace(); + this.appendToken(node.equalsToken); + this.ensureSpace(); + visitNodeOrToken(this, node.type); + this.appendToken(node.semicolonToken); + + } + private appendObjectType(node: ObjectTypeSyntax, appendNewLines: boolean): void { this.appendToken(node.openBraceToken); diff --git a/src/services/syntax/scannerUtilities.generated.ts b/src/services/syntax/scannerUtilities.generated.ts index 94af9d461bf..1458dc184a6 100644 --- a/src/services/syntax/scannerUtilities.generated.ts +++ b/src/services/syntax/scannerUtilities.generated.ts @@ -2,7 +2,7 @@ module TypeScript { export module ScannerUtilities { - export var fixedWidthArray = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 4, 5, 8, 8, 7, 6, 2, 4, 5, 7, 3, 8, 2, 2, 10, 3, 4, 6, 6, 4, 5, 4, 3, 6, 3, 4, 5, 4, 5, 5, 4, 6, 7, 6, 5, 10, 9, 3, 7, 7, 9, 6, 6, 5, 3, 5, 5, 7, 11, 7, 3, 6, 7, 6, 3, 6, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 2, 2, 2, 2, 2, 3, 3, 1, 1, 1, 1, 2, 2, 2, 2, 3, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 2, 2, 2, 2, 3, 3, 4, 2, 2, 2, 1, 2]; + export var fixedWidthArray = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 4, 5, 8, 8, 7, 6, 2, 4, 5, 7, 3, 8, 2, 2, 10, 3, 4, 6, 6, 4, 5, 4, 3, 6, 3, 4, 5, 4, 5, 5, 4, 6, 7, 6, 5, 10, 9, 3, 7, 7, 9, 6, 6, 5, 3, 5, 5, 7, 11, 7, 3, 6, 7, 6, 3, 4, 6, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 2, 2, 2, 2, 2, 3, 3, 1, 1, 1, 1, 2, 2, 2, 2, 3, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 2, 2, 2, 2, 3, 3, 4, 2, 2, 2, 1, 2]; export function identifierKind(str: string, start: number, length: number): SyntaxKind { switch (length) { case 2: // do, if, in @@ -28,7 +28,7 @@ module TypeScript { case CharacterCodes.v: return (str.charCodeAt(start + 1) === CharacterCodes.a && str.charCodeAt(start + 2) === CharacterCodes.r) ? SyntaxKind.VarKeyword : SyntaxKind.IdentifierName; default: return SyntaxKind.IdentifierName; } - case 4: // case, else, enum, null, this, true, void, with + case 4: // case, else, enum, null, this, true, type, void, with switch(str.charCodeAt(start)) { case CharacterCodes.c: return (str.charCodeAt(start + 1) === CharacterCodes.a && str.charCodeAt(start + 2) === CharacterCodes.s && str.charCodeAt(start + 3) === CharacterCodes.e) ? SyntaxKind.CaseKeyword : SyntaxKind.IdentifierName; case CharacterCodes.e: // else, enum @@ -38,10 +38,11 @@ module TypeScript { default: return SyntaxKind.IdentifierName; } case CharacterCodes.n: return (str.charCodeAt(start + 1) === CharacterCodes.u && str.charCodeAt(start + 2) === CharacterCodes.l && str.charCodeAt(start + 3) === CharacterCodes.l) ? SyntaxKind.NullKeyword : SyntaxKind.IdentifierName; - case CharacterCodes.t: // this, true + case CharacterCodes.t: // this, true, type switch(str.charCodeAt(start + 1)) { case CharacterCodes.h: return (str.charCodeAt(start + 2) === CharacterCodes.i && str.charCodeAt(start + 3) === CharacterCodes.s) ? SyntaxKind.ThisKeyword : SyntaxKind.IdentifierName; case CharacterCodes.r: return (str.charCodeAt(start + 2) === CharacterCodes.u && str.charCodeAt(start + 3) === CharacterCodes.e) ? SyntaxKind.TrueKeyword : SyntaxKind.IdentifierName; + case CharacterCodes.y: return (str.charCodeAt(start + 2) === CharacterCodes.p && str.charCodeAt(start + 3) === CharacterCodes.e) ? SyntaxKind.TypeKeyword : SyntaxKind.IdentifierName; default: return SyntaxKind.IdentifierName; } case CharacterCodes.v: return (str.charCodeAt(start + 1) === CharacterCodes.o && str.charCodeAt(start + 2) === CharacterCodes.i && str.charCodeAt(start + 3) === CharacterCodes.d) ? SyntaxKind.VoidKeyword : SyntaxKind.IdentifierName; diff --git a/src/services/syntax/syntaxFacts.ts b/src/services/syntax/syntaxFacts.ts index d6926a571b7..209e09e93af 100644 --- a/src/services/syntax/syntaxFacts.ts +++ b/src/services/syntax/syntaxFacts.ts @@ -53,6 +53,7 @@ module TypeScript.SyntaxFacts { "throw": SyntaxKind.ThrowKeyword, "true": SyntaxKind.TrueKeyword, "try": SyntaxKind.TryKeyword, + "type": SyntaxKind.TypeKeyword, "typeof": SyntaxKind.TypeOfKeyword, "var": SyntaxKind.VarKeyword, "void": SyntaxKind.VoidKeyword, diff --git a/src/services/syntax/syntaxGenerator.ts b/src/services/syntax/syntaxGenerator.ts index e1de51c8f9a..798d5962a7f 100644 --- a/src/services/syntax/syntaxGenerator.ts +++ b/src/services/syntax/syntaxGenerator.ts @@ -151,6 +151,20 @@ var definitions:ITypeDefinition[] = [ ], isTypeScriptSpecific: true }, + { + name: 'TypeAliasSyntax', + baseType: 'ISyntaxNode', + interfaces: ['IModuleElementSyntax'], + children: [ + { name: 'modifiers', isList: true, elementType: 'ISyntaxToken' }, + { name: 'typeKeyword', isToken: true }, + { name: 'identifier', isToken: true }, + { name: 'equalsToken', isToken: true }, + { name: 'type', type: 'ITypeSyntax' }, + { name: 'semicolonToken', isToken: true, isOptional: true } + ], + isTypeScriptSpecific: true + }, { name: 'FunctionDeclarationSyntax', baseType: 'ISyntaxNode', diff --git a/src/services/syntax/syntaxInterfaces.generated.ts b/src/services/syntax/syntaxInterfaces.generated.ts index ee7cfe41d5b..770ae28210e 100644 --- a/src/services/syntax/syntaxInterfaces.generated.ts +++ b/src/services/syntax/syntaxInterfaces.generated.ts @@ -692,6 +692,16 @@ module TypeScript { } export interface PropertyAssignmentConstructor { new (data: number, propertyName: IPropertyNameSyntax, colonToken: ISyntaxToken, expression: IExpressionSyntax): PropertyAssignmentSyntax } + export interface TypeAliasSyntax extends ISyntaxNode, IModuleElementSyntax { + modifiers: ISyntaxToken[]; + typeKeyword: ISyntaxToken; + identifier: ISyntaxToken; + equalsToken: ISyntaxToken; + type: ITypeSyntax; + semicolonToken: ISyntaxToken; + } + export interface TypeAliasConstructor { new (data: number, modifiers: ISyntaxToken[], typeKeyword: ISyntaxToken, identifier: ISyntaxToken, equalsToken: ISyntaxToken, type: ITypeSyntax, semicolonToken: ISyntaxToken): TypeAliasSyntax } + export interface ExternalModuleReferenceSyntax extends ISyntaxNode, IModuleReferenceSyntax { requireKeyword: ISyntaxToken; openParenToken: ISyntaxToken; diff --git a/src/services/syntax/syntaxKind.ts b/src/services/syntax/syntaxKind.ts index 94ee05cf671..7863dbe2b69 100644 --- a/src/services/syntax/syntaxKind.ts +++ b/src/services/syntax/syntaxKind.ts @@ -97,6 +97,7 @@ module TypeScript { RequireKeyword, NumberKeyword, SetKeyword, + TypeKeyword, StringKeyword, // Punctuators @@ -270,6 +271,7 @@ module TypeScript { ExpressionBody, ComputedPropertyName, PropertyAssignment, + TypeAlias, ExternalModuleReference, ModuleNameModuleReference, diff --git a/src/services/syntax/syntaxNodes.concrete.generated.ts b/src/services/syntax/syntaxNodes.concrete.generated.ts index 59136093529..13cc5d81a3f 100644 --- a/src/services/syntax/syntaxNodes.concrete.generated.ts +++ b/src/services/syntax/syntaxNodes.concrete.generated.ts @@ -1886,6 +1886,34 @@ module TypeScript { } } + export var TypeAliasSyntax: TypeAliasConstructor = function(data: number, modifiers: ISyntaxToken[], typeKeyword: ISyntaxToken, identifier: ISyntaxToken, equalsToken: ISyntaxToken, type: ITypeSyntax, semicolonToken: ISyntaxToken) { + if (data) { this.__data = data; } + this.modifiers = modifiers, + this.typeKeyword = typeKeyword, + this.identifier = identifier, + this.equalsToken = equalsToken, + this.type = type, + this.semicolonToken = semicolonToken, + modifiers.parent = this, + typeKeyword.parent = this, + identifier.parent = this, + equalsToken.parent = this, + type.parent = this, + semicolonToken && (semicolonToken.parent = this); + }; + TypeAliasSyntax.prototype.kind = SyntaxKind.TypeAlias; + TypeAliasSyntax.prototype.childCount = 6; + TypeAliasSyntax.prototype.childAt = function(index: number): ISyntaxElement { + switch (index) { + case 0: return this.modifiers; + case 1: return this.typeKeyword; + case 2: return this.identifier; + case 3: return this.equalsToken; + case 4: return this.type; + case 5: return this.semicolonToken; + } + } + export var ExternalModuleReferenceSyntax: ExternalModuleReferenceConstructor = function(data: number, requireKeyword: ISyntaxToken, openParenToken: ISyntaxToken, stringLiteral: ISyntaxToken, closeParenToken: ISyntaxToken) { if (data) { this.__data = data; } this.requireKeyword = requireKeyword, diff --git a/src/services/syntax/syntaxTree.ts b/src/services/syntax/syntaxTree.ts index 8da347144b1..486d92ee3ba 100644 --- a/src/services/syntax/syntaxTree.ts +++ b/src/services/syntax/syntaxTree.ts @@ -285,6 +285,15 @@ module TypeScript { super.visitVariableDeclaration(node); } + public visitTypeAlias(node: TypeAliasSyntax): void { + if (node.modifiers.length > 0) { + this.pushDiagnostic(node.modifiers[0], DiagnosticCode.Modifiers_cannot_appear_here); + return; + } + + super.visitTypeAlias(node); + } + public visitTypeArgumentList(node: TypeArgumentListSyntax): void { if (this.checkForTrailingComma(node.typeArguments) || this.checkForAtLeastOneElement(node.typeArguments, node.lessThanToken, getLocalizedText(DiagnosticCode.type_argument, undefined))) { @@ -326,14 +335,18 @@ module TypeScript { return this.pushDiagnostic(parameter, DiagnosticCode.Index_signature_parameter_cannot_have_modifiers); } else if (parameter.questionToken) { - return this.pushDiagnostic(parameter, DiagnosticCode.Index_signature_parameter_cannot_have_a_question_mark); } + return this.pushDiagnostic(parameter, DiagnosticCode.Index_signature_parameter_cannot_have_a_question_mark); + } else if (parameter.equalsValueClause) { - return this.pushDiagnostic(parameter, DiagnosticCode.Index_signature_parameter_cannot_have_an_initializer); } + return this.pushDiagnostic(parameter, DiagnosticCode.Index_signature_parameter_cannot_have_an_initializer); + } else if (!parameter.typeAnnotation) { - return this.pushDiagnostic(parameter, DiagnosticCode.Index_signature_parameter_must_have_a_type_annotation); } + return this.pushDiagnostic(parameter, DiagnosticCode.Index_signature_parameter_must_have_a_type_annotation); + } else if (parameter.typeAnnotation.type.kind !== SyntaxKind.StringKeyword && parameter.typeAnnotation.type.kind !== SyntaxKind.NumberKeyword) { - return this.pushDiagnostic(parameter, DiagnosticCode.Index_signature_parameter_type_must_be_string_or_number); } + return this.pushDiagnostic(parameter, DiagnosticCode.Index_signature_parameter_type_must_be_string_or_number); + } return false; } @@ -361,20 +374,24 @@ module TypeScript { if (heritageClause.extendsOrImplementsKeyword.kind === SyntaxKind.ExtendsKeyword) { if (seenExtendsClause) { - return this.pushDiagnostic(heritageClause, DiagnosticCode.extends_clause_already_seen); } + return this.pushDiagnostic(heritageClause, DiagnosticCode.extends_clause_already_seen); + } if (seenImplementsClause) { - return this.pushDiagnostic(heritageClause, DiagnosticCode.extends_clause_must_precede_implements_clause); } + return this.pushDiagnostic(heritageClause, DiagnosticCode.extends_clause_must_precede_implements_clause); + } if (nonSeparatorCount(heritageClause.typeNames) > 1) { - return this.pushDiagnostic(heritageClause, DiagnosticCode.Classes_can_only_extend_a_single_class); } + return this.pushDiagnostic(heritageClause, DiagnosticCode.Classes_can_only_extend_a_single_class); + } seenExtendsClause = true; } else { Debug.assert(heritageClause.extendsOrImplementsKeyword.kind === SyntaxKind.ImplementsKeyword); if (seenImplementsClause) { - return this.pushDiagnostic(heritageClause, DiagnosticCode.implements_clause_already_seen); } + return this.pushDiagnostic(heritageClause, DiagnosticCode.implements_clause_already_seen); + } seenImplementsClause = true; } @@ -389,7 +406,8 @@ module TypeScript { var declareToken = SyntaxUtilities.getToken(modifiers, SyntaxKind.DeclareKeyword); if (declareToken) { - return this.pushDiagnostic(declareToken, DiagnosticCode.A_declare_modifier_cannot_be_used_in_an_already_ambient_context); } + return this.pushDiagnostic(declareToken, DiagnosticCode.A_declare_modifier_cannot_be_used_in_an_already_ambient_context); + } } return false; @@ -400,7 +418,8 @@ module TypeScript { // We're at the top level in a declaration file, a 'declare' modifiers is required // on most module elements. if (!SyntaxUtilities.containsToken(modifiers, SyntaxKind.DeclareKeyword)) { - return this.pushDiagnostic(reportToken, DiagnosticCode.A_declare_modifier_is_required_for_a_top_level_declaration_in_a_d_ts_file); } + return this.pushDiagnostic(reportToken, DiagnosticCode.A_declare_modifier_is_required_for_a_top_level_declaration_in_a_d_ts_file); + } } } @@ -429,13 +448,15 @@ module TypeScript { if (heritageClause.extendsOrImplementsKeyword.kind === SyntaxKind.ExtendsKeyword) { if (seenExtendsClause) { - return this.pushDiagnostic(heritageClause, DiagnosticCode.extends_clause_already_seen); } + return this.pushDiagnostic(heritageClause, DiagnosticCode.extends_clause_already_seen); + } seenExtendsClause = true; } else { Debug.assert(heritageClause.extendsOrImplementsKeyword.kind === SyntaxKind.ImplementsKeyword); - return this.pushDiagnostic(heritageClause, DiagnosticCode.Interface_declaration_cannot_have_implements_clause); } + return this.pushDiagnostic(heritageClause, DiagnosticCode.Interface_declaration_cannot_have_implements_clause); + } } return false; @@ -579,7 +600,8 @@ module TypeScript { private checkGetAccessorParameter(node: GetAccessorSyntax): boolean { if (node.callSignature.parameterList.parameters.length !== 0) { - return this.pushDiagnostic(node.propertyName, DiagnosticCode.get_accessor_cannot_have_parameters); } + return this.pushDiagnostic(node.propertyName, DiagnosticCode.get_accessor_cannot_have_parameters); + } return false; } @@ -594,14 +616,16 @@ module TypeScript { private checkIndexMemberModifiers(node: IndexMemberDeclarationSyntax): boolean { if (node.modifiers.length > 0) { - return this.pushDiagnostic(node.modifiers[0], DiagnosticCode.Modifiers_cannot_appear_here); } + return this.pushDiagnostic(node.modifiers[0], DiagnosticCode.Modifiers_cannot_appear_here); + } return false; } private checkEcmaScriptVersionIsAtLeast(reportToken: ISyntaxToken, languageVersion: ts.ScriptTarget, diagnosticKey: string): boolean { if (this.syntaxTree.languageVersion() < languageVersion) { - return this.pushDiagnostic(reportToken, diagnosticKey); } + return this.pushDiagnostic(reportToken, diagnosticKey); + } return false; } @@ -631,30 +655,35 @@ module TypeScript { private checkForSemicolonInsteadOfBlock(parent: ISyntaxNode, node: BlockSyntax | ExpressionBody | ISyntaxToken): boolean { if (node === undefined) { - return this.pushDiagnosticAt(fullEnd(parent), 0, DiagnosticCode._0_expected, ["{"]); } + return this.pushDiagnosticAt(fullEnd(parent), 0, DiagnosticCode._0_expected, ["{"]); + } else if (node.kind === SyntaxKind.SemicolonToken) { - return this.pushDiagnostic(node, DiagnosticCode._0_expected, ["{"]); } + return this.pushDiagnostic(node, DiagnosticCode._0_expected, ["{"]); + } return false; } private checkForDisallowedSetAccessorTypeAnnotation(accessor: SetAccessorSyntax): boolean { if (accessor.callSignature.typeAnnotation) { - return this.pushDiagnostic(accessor.callSignature.typeAnnotation, DiagnosticCode.Type_annotation_cannot_appear_on_a_set_accessor); } + return this.pushDiagnostic(accessor.callSignature.typeAnnotation, DiagnosticCode.Type_annotation_cannot_appear_on_a_set_accessor); + } return false; } private checkForDisallowedAccessorTypeParameters(callSignature: CallSignatureSyntax): boolean { if (callSignature.typeParameterList) { - return this.pushDiagnostic(callSignature.typeParameterList, DiagnosticCode.Type_parameters_cannot_appear_on_an_accessor); } + return this.pushDiagnostic(callSignature.typeParameterList, DiagnosticCode.Type_parameters_cannot_appear_on_an_accessor); + } return false; } private checkForAccessorDeclarationInAmbientContext(accessor: ISyntaxNode): boolean { if (this.inAmbientDeclaration) { - return this.pushDiagnostic(accessor, DiagnosticCode.Accessors_are_not_allowed_in_ambient_contexts); } + return this.pushDiagnostic(accessor, DiagnosticCode.Accessors_are_not_allowed_in_ambient_contexts); + } return false; } @@ -662,18 +691,22 @@ module TypeScript { private checkSetAccessorParameter(node: SetAccessorSyntax): boolean { var parameters = node.callSignature.parameterList.parameters; if (nonSeparatorCount(parameters) !== 1) { - return this.pushDiagnostic(node.propertyName, DiagnosticCode.set_accessor_must_have_exactly_one_parameter); } + return this.pushDiagnostic(node.propertyName, DiagnosticCode.set_accessor_must_have_exactly_one_parameter); + } var parameter = nonSeparatorAt(parameters, 0); if (parameter.questionToken) { - return this.pushDiagnostic(parameter, DiagnosticCode.set_accessor_parameter_cannot_be_optional); } + return this.pushDiagnostic(parameter, DiagnosticCode.set_accessor_parameter_cannot_be_optional); + } if (parameter.equalsValueClause) { - return this.pushDiagnostic(parameter, DiagnosticCode.set_accessor_parameter_cannot_have_an_initializer); } + return this.pushDiagnostic(parameter, DiagnosticCode.set_accessor_parameter_cannot_have_an_initializer); + } if (parameter.dotDotDotToken) { - return this.pushDiagnostic(parameter, DiagnosticCode.set_accessor_cannot_have_rest_parameter); } + return this.pushDiagnostic(parameter, DiagnosticCode.set_accessor_cannot_have_rest_parameter); + } return false; } @@ -768,7 +801,8 @@ module TypeScript { var enumElement = nonSeparatorAt(node.enumElements, i); if (!enumElement.equalsValueClause && previousValueWasComputed) { - return this.pushDiagnostic(enumElement, DiagnosticCode.Enum_member_must_have_initializer); } + return this.pushDiagnostic(enumElement, DiagnosticCode.Enum_member_must_have_initializer); + } if (enumElement.equalsValueClause) { var value = enumElement.equalsValueClause.value; @@ -813,7 +847,8 @@ module TypeScript { var modifier = modifiers[i]; if (SyntaxFacts.isAccessibilityModifier(modifier.kind) || modifier.kind === SyntaxKind.StaticKeyword) { - return this.pushDiagnostic(modifier, DiagnosticCode._0_modifier_cannot_appear_on_a_module_element, [modifier.text()]); } + return this.pushDiagnostic(modifier, DiagnosticCode._0_modifier_cannot_appear_on_a_module_element, [modifier.text()]); + } if (modifier.kind === SyntaxKind.DeclareKeyword) { if (seenDeclareModifier) { @@ -882,7 +917,8 @@ module TypeScript { var declareToken = SyntaxUtilities.getToken(modifiers, SyntaxKind.DeclareKeyword); if (declareToken) { - return this.pushDiagnostic(declareToken, DiagnosticCode.A_declare_modifier_cannot_be_used_with_an_import_declaration); } + return this.pushDiagnostic(declareToken, DiagnosticCode.A_declare_modifier_cannot_be_used_with_an_import_declaration); + } } public visitImportDeclaration(node: ImportDeclarationSyntax): any { @@ -927,7 +963,8 @@ module TypeScript { var child = node.moduleElements[i]; if (child.kind === SyntaxKind.ExportAssignment) { - return this.pushDiagnostic(child, DiagnosticCode.Export_assignment_cannot_be_used_in_internal_modules); } + return this.pushDiagnostic(child, DiagnosticCode.Export_assignment_cannot_be_used_in_internal_modules); + } } return false; @@ -947,7 +984,8 @@ module TypeScript { public checkForMalformedBlock(node: BlockSyntax): boolean { if (node.equalsGreaterThanToken || node.openBraceToken === undefined) { - return this.pushDiagnostic(firstToken(node), DiagnosticCode._0_expected, ["{"]); } + return this.pushDiagnostic(firstToken(node), DiagnosticCode._0_expected, ["{"]); + } return false; } @@ -969,7 +1007,8 @@ module TypeScript { private checkForStatementInAmbientContxt(node: IStatementSyntax): boolean { if (this.inAmbientDeclaration || this.syntaxTree.isDeclaration()) { - return this.pushDiagnostic(firstToken(node), DiagnosticCode.Statements_are_not_allowed_in_ambient_contexts); } + return this.pushDiagnostic(firstToken(node), DiagnosticCode.Statements_are_not_allowed_in_ambient_contexts); + } return false; } @@ -1225,7 +1264,8 @@ module TypeScript { private checkForInLeftHandSideExpression(node: ForInStatementSyntax): boolean { if (node.left.kind !== SyntaxKind.VariableDeclaration && !SyntaxUtilities.isLeftHandSizeExpression(node.left)) { - return this.pushDiagnostic(node.left, DiagnosticCode.Invalid_left_hand_side_in_for_in_statement); } + return this.pushDiagnostic(node.left, DiagnosticCode.Invalid_left_hand_side_in_for_in_statement); + } return false; } @@ -1235,7 +1275,8 @@ module TypeScript { // allows a very restricted form. Specifically, there must be only a single Variable // Declarator in the Declaration. if (node.left.kind === SyntaxKind.VariableDeclaration && (node.left).variableDeclarators.length > 1) { - return this.pushDiagnostic(node.left, DiagnosticCode.Only_a_single_variable_declaration_is_allowed_in_a_for_in_statement); } + return this.pushDiagnostic(node.left, DiagnosticCode.Only_a_single_variable_declaration_is_allowed_in_a_for_in_statement); + } return false; } @@ -1290,7 +1331,8 @@ module TypeScript { // It is invalid to have a label enclosed in a label of the same name. var matchingLabel = ArrayUtilities.firstOrDefault(breakableLabels, s => tokenValueText(s.identifier) === labelIdentifier); if (matchingLabel) { - return this.pushDiagnostic(node.identifier, DiagnosticCode.Duplicate_identifier_0, [labelIdentifier]); } + return this.pushDiagnostic(node.identifier, DiagnosticCode.Duplicate_identifier_0, [labelIdentifier]); + } return false; } @@ -1311,7 +1353,8 @@ module TypeScript { } } - return this.pushDiagnostic(firstToken(node), DiagnosticCode.return_statement_must_be_contained_within_a_function_body); } + return this.pushDiagnostic(firstToken(node), DiagnosticCode.return_statement_must_be_contained_within_a_function_body); + } public visitSwitchStatement(node: SwitchStatementSyntax): void { if (this.checkForStatementInAmbientContxt(node)) { @@ -1332,7 +1375,8 @@ module TypeScript { public checkForMissingThrowStatementExpression(node: ThrowStatementSyntax): boolean { if (node.expression === undefined) { - return this.pushDiagnosticAt(fullEnd(node.throwKeyword), 0, DiagnosticCode.Expression_expected); } + return this.pushDiagnosticAt(fullEnd(node.throwKeyword), 0, DiagnosticCode.Expression_expected); + } return false; } @@ -1364,7 +1408,8 @@ module TypeScript { private checkForWithInStrictMode(node: WithStatementSyntax): boolean { if (parsedInStrictModeContext(node)) { - return this.pushDiagnostic(firstToken(node), DiagnosticCode.with_statements_are_not_allowed_in_strict_mode); } + return this.pushDiagnostic(firstToken(node), DiagnosticCode.with_statements_are_not_allowed_in_strict_mode); + } return false; } @@ -1372,7 +1417,8 @@ module TypeScript { private checkForDisallowedModifiers(modifiers: ISyntaxToken[]): boolean { if (this.inBlock || this.inObjectLiteralExpression) { if (modifiers.length > 0) { - return this.pushDiagnostic(modifiers[0], DiagnosticCode.Modifiers_cannot_appear_here); } + return this.pushDiagnostic(modifiers[0], DiagnosticCode.Modifiers_cannot_appear_here); + } } return false; @@ -1408,7 +1454,8 @@ module TypeScript { private checkForAsyncGenerator(asyncKeyword: ISyntaxToken, asterixToken: ISyntaxToken) { if (asyncKeyword && asterixToken) { - return this.pushDiagnostic(asyncKeyword, DiagnosticCode.A_generator_declaration_cannot_have_the_async_modifier); } + return this.pushDiagnostic(asyncKeyword, DiagnosticCode.A_generator_declaration_cannot_have_the_async_modifier); + } return false; } @@ -1498,14 +1545,16 @@ module TypeScript { private checkForDisallowedTemplatePropertyName(propertyName: IPropertyNameSyntax): boolean { if (propertyName.kind === SyntaxKind.NoSubstitutionTemplateToken) { - return this.pushDiagnostic(propertyName, DiagnosticCode.Template_literal_cannot_be_used_as_an_element_name); } + return this.pushDiagnostic(propertyName, DiagnosticCode.Template_literal_cannot_be_used_as_an_element_name); + } return false; } private checkForDisallowedComputedPropertyName(propertyName: IPropertyNameSyntax): boolean { if (propertyName.kind === SyntaxKind.ComputedPropertyName) { - return this.pushDiagnostic(propertyName, DiagnosticCode.Computed_property_names_cannot_be_used_here); } + return this.pushDiagnostic(propertyName, DiagnosticCode.Computed_property_names_cannot_be_used_here); + } return false; } @@ -1523,7 +1572,8 @@ module TypeScript { private checkVariableDeclaratorInitializer(node: VariableDeclaratorSyntax): boolean { if (this.inAmbientDeclaration && node.equalsValueClause) { - return this.pushDiagnostic(firstToken(node.equalsValueClause.value), DiagnosticCode.Initializers_are_not_allowed_in_ambient_contexts); } + return this.pushDiagnostic(firstToken(node.equalsValueClause.value), DiagnosticCode.Initializers_are_not_allowed_in_ambient_contexts); + } return false; } @@ -1545,7 +1595,8 @@ module TypeScript { for (var i = 0, n = modifiers.length; i < n; i++) { var child = modifiers[i]; if (child.kind !== SyntaxKind.PublicKeyword) { - return this.pushDiagnostic(child, DiagnosticCode._0_modifier_cannot_appear_on_a_constructor_declaration, [SyntaxFacts.getText(child.kind)]); } + return this.pushDiagnostic(child, DiagnosticCode._0_modifier_cannot_appear_on_a_constructor_declaration, [SyntaxFacts.getText(child.kind)]); + } } return false; @@ -1553,14 +1604,16 @@ module TypeScript { private checkConstructorTypeParameterList(node: ConstructorDeclarationSyntax): boolean { if (node.callSignature.typeParameterList) { - return this.pushDiagnostic(node.callSignature.typeParameterList, DiagnosticCode.Type_parameters_cannot_appear_on_a_constructor_declaration); } + return this.pushDiagnostic(node.callSignature.typeParameterList, DiagnosticCode.Type_parameters_cannot_appear_on_a_constructor_declaration); + } return false; } private checkConstructorTypeAnnotation(node: ConstructorDeclarationSyntax): boolean { if (node.callSignature.typeAnnotation) { - return this.pushDiagnostic(node.callSignature.typeAnnotation, DiagnosticCode.Type_annotation_cannot_appear_on_a_constructor_declaration); } + return this.pushDiagnostic(node.callSignature.typeAnnotation, DiagnosticCode.Type_annotation_cannot_appear_on_a_constructor_declaration); + } return false; } @@ -1601,7 +1654,8 @@ module TypeScript { private checkForDisallowedEvalOrArguments(node: ISyntaxNode, token: ISyntaxToken): boolean { if (token) { if (parsedInStrictModeContext(node) && this.isEvalOrArguments(token)) { - return this.pushDiagnostic(token, DiagnosticCode.Invalid_use_of_0_in_strict_mode, [this.getEvalOrArguments(token)]); } + return this.pushDiagnostic(token, DiagnosticCode.Invalid_use_of_0_in_strict_mode, [this.getEvalOrArguments(token)]); + } } return false; @@ -1646,7 +1700,8 @@ module TypeScript { private checkIllegalAssignment(node: BinaryExpressionSyntax): boolean { if (parsedInStrictModeContext(node) && SyntaxFacts.isAssignmentOperatorToken(node.operatorToken.kind) && this.isEvalOrArguments(node.left)) { - return this.pushDiagnostic(node.operatorToken, DiagnosticCode.Invalid_use_of_0_in_strict_mode, [this.getEvalOrArguments(node.left)]); } + return this.pushDiagnostic(node.operatorToken, DiagnosticCode.Invalid_use_of_0_in_strict_mode, [this.getEvalOrArguments(node.left)]); + } return false; } @@ -1676,7 +1731,8 @@ module TypeScript { private checkConstraintType(node: ConstraintSyntax): boolean { if (!SyntaxFacts.isType(node.typeOrExpression.kind)) { - return this.pushDiagnostic(node.typeOrExpression, DiagnosticCode.Type_expected); } + return this.pushDiagnostic(node.typeOrExpression, DiagnosticCode.Type_expected); + } return false; } diff --git a/src/services/syntax/syntaxVisitor.generated.ts b/src/services/syntax/syntaxVisitor.generated.ts index 3ffebf86633..88be36c27e1 100644 --- a/src/services/syntax/syntaxVisitor.generated.ts +++ b/src/services/syntax/syntaxVisitor.generated.ts @@ -96,6 +96,7 @@ module TypeScript { case SyntaxKind.ExpressionBody: return visitor.visitExpressionBody(element); case SyntaxKind.ComputedPropertyName: return visitor.visitComputedPropertyName(element); case SyntaxKind.PropertyAssignment: return visitor.visitPropertyAssignment(element); + case SyntaxKind.TypeAlias: return visitor.visitTypeAlias(element); case SyntaxKind.ExternalModuleReference: return visitor.visitExternalModuleReference(element); case SyntaxKind.ModuleNameModuleReference: return visitor.visitModuleNameModuleReference(element); default: return visitor.visitToken(element); @@ -196,6 +197,7 @@ module TypeScript { visitExpressionBody(node: ExpressionBody): any; visitComputedPropertyName(node: ComputedPropertyNameSyntax): any; visitPropertyAssignment(node: PropertyAssignmentSyntax): any; + visitTypeAlias(node: TypeAliasSyntax): any; visitExternalModuleReference(node: ExternalModuleReferenceSyntax): any; visitModuleNameModuleReference(node: ModuleNameModuleReferenceSyntax): any; } diff --git a/src/services/syntax/syntaxWalker.generated.ts b/src/services/syntax/syntaxWalker.generated.ts index 7a1796ae9a5..9296ffad4e0 100644 --- a/src/services/syntax/syntaxWalker.generated.ts +++ b/src/services/syntax/syntaxWalker.generated.ts @@ -617,6 +617,15 @@ module TypeScript { visitNodeOrToken(this, node.expression); } + public visitTypeAlias(node: TypeAliasSyntax): void { + this.visitList(node.modifiers); + this.visitToken(node.typeKeyword); + this.visitToken(node.identifier); + this.visitToken(node.equalsToken); + visitNodeOrToken(this, node.type); + this.visitOptionalToken(node.semicolonToken); + } + public visitExternalModuleReference(node: ExternalModuleReferenceSyntax): void { this.visitToken(node.requireKeyword); this.visitToken(node.openParenToken); From dcfaf6d6d3b03fe715c6ff98b9e26e17d3c06550 Mon Sep 17 00:00:00 2001 From: Cyrus Najmabadi Date: Thu, 27 Nov 2014 14:28:44 -0800 Subject: [PATCH 105/195] Support parsing const enums. --- src/services/syntax/parser.ts | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/services/syntax/parser.ts b/src/services/syntax/parser.ts index f276ffd9561..f55577dded1 100644 --- a/src/services/syntax/parser.ts +++ b/src/services/syntax/parser.ts @@ -1098,6 +1098,7 @@ module TypeScript.Parser { case SyntaxKind.StaticKeyword: case SyntaxKind.DeclareKeyword: case SyntaxKind.AsyncKeyword: + case SyntaxKind.ConstKeyword: return true; } @@ -1117,6 +1118,11 @@ module TypeScript.Parser { } } + if (token.kind === SyntaxKind.ConstKeyword) { + // In order for 'const' to be a modifier, the next token must be 'enum'. + return nextToken.kind === SyntaxKind.EnumKeyword; + } + var nextTokenKind = nextToken.kind; switch (nextTokenKind) { // public foo' From f68e0060247b6e1140d3e6a594a87102afcee973 Mon Sep 17 00:00:00 2001 From: Cyrus Najmabadi Date: Thu, 27 Nov 2014 21:32:04 -0800 Subject: [PATCH 106/195] Add support for parsing 'let' and 'const' declarations. --- src/services/syntax/parser.ts | 29 ++++++++++++++++++++++---- src/services/syntax/syntaxGenerator.ts | 2 +- 2 files changed, 26 insertions(+), 5 deletions(-) diff --git a/src/services/syntax/parser.ts b/src/services/syntax/parser.ts index f55577dded1..b96e0ef35c9 100644 --- a/src/services/syntax/parser.ts +++ b/src/services/syntax/parser.ts @@ -2034,7 +2034,7 @@ module TypeScript.Parser { // grammar walker. var initializer = tokenKind === SyntaxKind.SemicolonToken ? undefined - : tokenKind === SyntaxKind.VarKeyword + : isVariableDeclaration(tokenKind) ? disallowInAnd(parseVariableDeclaration) : disallowInAnd(parseExpression) @@ -2354,7 +2354,26 @@ module TypeScript.Parser { } function isVariableStatement(modifierCount: number): boolean { - return peekToken(modifierCount).kind === SyntaxKind.VarKeyword; + return isVariableDeclaration(peekToken(modifierCount).kind); + } + + function isVariableDeclaration(tokenKind: SyntaxKind) { + // 'var' and 'const' are keywords. So we always know they start a variable declaration. + if (tokenKind === SyntaxKind.VarKeyword || tokenKind === SyntaxKind.ConstKeyword) { + return true; + } + + // 'let' is future reserved strict keyword. So it's only a keyword if we're in strict + // mode, or if we see an identifier following. + if (tokenKind === SyntaxKind.LetKeyword) { + if (inStrictModeContext()) { + return true; + } + + return isIdentifier(peekToken(1)); + } + + return false; } function parseVariableStatement(): VariableStatementSyntax { @@ -2362,14 +2381,16 @@ module TypeScript.Parser { // var VariableDeclarationList[In, ?Yield]; return new VariableStatementSyntax(contextFlags, - parseModifiers(), allowInAnd(parseVariableDeclaration), eatExplicitOrAutomaticSemicolon(/*allowWithoutNewline:*/ false)); + parseModifiers(), + allowInAnd(parseVariableDeclaration), + eatExplicitOrAutomaticSemicolon(/*allowWithoutNewline:*/ false)); } function parseVariableDeclaration(): VariableDeclarationSyntax { // Debug.assert(currentToken().kind === SyntaxKind.VarKeyword); return new VariableDeclarationSyntax(contextFlags, - eatToken(SyntaxKind.VarKeyword), + consumeToken(currentToken()), parseSeparatedSyntaxList(ListParsingState.VariableDeclaration_VariableDeclarators)); } diff --git a/src/services/syntax/syntaxGenerator.ts b/src/services/syntax/syntaxGenerator.ts index 798d5962a7f..924aaec7e6e 100644 --- a/src/services/syntax/syntaxGenerator.ts +++ b/src/services/syntax/syntaxGenerator.ts @@ -200,7 +200,7 @@ var definitions:ITypeDefinition[] = [ name: 'VariableDeclarationSyntax', baseType: 'ISyntaxNode', children: [ - { name: 'varKeyword', isToken: true }, + { name: 'varConstOrLetKeyword', isToken: true }, { name: 'variableDeclarators', isSeparatedList: true, requiresAtLeastOneItem: true, elementType: 'VariableDeclaratorSyntax' } ] }, From aaaa07819937ad8e0e5f282593a58ea49d94942a Mon Sep 17 00:00:00 2001 From: Cyrus Najmabadi Date: Fri, 28 Nov 2014 13:09:45 -0800 Subject: [PATCH 107/195] Update name of variable declaration member. Conflicts: src/services/syntax/SyntaxGenerator.js.map --- src/services/syntax/SyntaxGenerator.js | 2 +- src/services/syntax/SyntaxGenerator.js.map | 4 ++++ src/services/syntax/prettyPrinter.ts | 2 +- src/services/syntax/syntaxInterfaces.generated.ts | 4 ++-- src/services/syntax/syntaxNodes.concrete.generated.ts | 8 ++++---- src/services/syntax/syntaxTree.ts | 4 ++-- src/services/syntax/syntaxWalker.generated.ts | 2 +- 7 files changed, 15 insertions(+), 11 deletions(-) diff --git a/src/services/syntax/SyntaxGenerator.js b/src/services/syntax/SyntaxGenerator.js index a3c35229fec..bd50d07ed59 100644 --- a/src/services/syntax/SyntaxGenerator.js +++ b/src/services/syntax/SyntaxGenerator.js @@ -1064,7 +1064,7 @@ var definitions = [ name: 'VariableDeclarationSyntax', baseType: 'ISyntaxNode', children: [ - { name: 'varKeyword', isToken: true }, + { name: 'varConstOrLetKeyword', isToken: true }, { name: 'variableDeclarators', isSeparatedList: true, requiresAtLeastOneItem: true, elementType: 'VariableDeclaratorSyntax' } ] }, diff --git a/src/services/syntax/SyntaxGenerator.js.map b/src/services/syntax/SyntaxGenerator.js.map index 39357942af1..0cf20f6bcc3 100644 --- a/src/services/syntax/SyntaxGenerator.js.map +++ b/src/services/syntax/SyntaxGenerator.js.map @@ -16,6 +16,7 @@ <<<<<<< HEAD <<<<<<< HEAD <<<<<<< HEAD +<<<<<<< HEAD <<<<<<< Updated upstream {"version":3,"file":"SyntaxGenerator.js","sourceRoot":"","sources":["file:///C:/VSPro_1/src/typescript/public_cyrusn/src/compiler/sys.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/core/errors.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/core/arrayUtilities.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/core/stringUtilities.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/syntax/syntaxKind.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/syntax/syntaxFacts.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/syntax/SyntaxGenerator.ts"],"names":["getWScriptSystem","getWScriptSystem.readFile","getWScriptSystem.writeFile","getNodeSystem","getNodeSystem.readFile","getNodeSystem.writeFile","getNodeSystem.fileChanged","TypeScript","TypeScript.Errors","TypeScript.Errors.constructor","TypeScript.Errors.argument","TypeScript.Errors.argumentOutOfRange","TypeScript.Errors.argumentNull","TypeScript.Errors.abstract","TypeScript.Errors.notYetImplemented","TypeScript.Errors.invalidOperation","TypeScript.ArrayUtilities","TypeScript.ArrayUtilities.constructor","TypeScript.ArrayUtilities.sequenceEquals","TypeScript.ArrayUtilities.contains","TypeScript.ArrayUtilities.distinct","TypeScript.ArrayUtilities.last","TypeScript.ArrayUtilities.lastOrDefault","TypeScript.ArrayUtilities.firstOrDefault","TypeScript.ArrayUtilities.first","TypeScript.ArrayUtilities.sum","TypeScript.ArrayUtilities.select","TypeScript.ArrayUtilities.where","TypeScript.ArrayUtilities.any","TypeScript.ArrayUtilities.all","TypeScript.ArrayUtilities.binarySearch","TypeScript.ArrayUtilities.createArray","TypeScript.ArrayUtilities.grow","TypeScript.ArrayUtilities.copy","TypeScript.ArrayUtilities.indexOf","TypeScript.StringUtilities","TypeScript.StringUtilities.constructor","TypeScript.StringUtilities.isString","TypeScript.StringUtilities.endsWith","TypeScript.StringUtilities.startsWith","TypeScript.StringUtilities.repeat","TypeScript.SyntaxKind","TypeScript.SyntaxFacts","TypeScript.SyntaxFacts.getTokenKind","TypeScript.SyntaxFacts.getText","TypeScript.SyntaxFacts.isAnyKeyword","TypeScript.SyntaxFacts.isAnyPunctuation","TypeScript.SyntaxFacts.isPrefixUnaryExpressionOperatorToken","TypeScript.SyntaxFacts.isBinaryExpressionOperatorToken","TypeScript.SyntaxFacts.isAssignmentOperatorToken","TypeScript.SyntaxFacts.isType","firstKind","getStringWithoutSuffix","getNameWithoutSuffix","getType","camelCase","getSafeName","generateConstructorFunction","generateSyntaxInterfaces","generateSyntaxInterface","generateNodes","isInterface","generateWalker","firstEnumName","groupBy","generateKeywordCondition","min","max","generateUtilities","generateScannerUtilities","syntaxKindName","generateVisitor"],"mappings":"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"} ======= @@ -75,3 +76,6 @@ ======= {"version":3,"file":"SyntaxGenerator.js","sourceRoot":"","sources":["file:///C:/VSPro_1/src/typescript/public_cyrusn/src/compiler/sys.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/core/errors.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/core/arrayUtilities.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/core/stringUtilities.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/syntax/syntaxKind.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/syntax/syntaxFacts.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/syntax/SyntaxGenerator.ts"],"names":["getWScriptSystem","getWScriptSystem.readFile","getWScriptSystem.writeFile","getNodeSystem","getNodeSystem.readFile","getNodeSystem.writeFile","getNodeSystem.fileChanged","TypeScript","TypeScript.Errors","TypeScript.Errors.constructor","TypeScript.Errors.argument","TypeScript.Errors.argumentOutOfRange","TypeScript.Errors.argumentNull","TypeScript.Errors.abstract","TypeScript.Errors.notYetImplemented","TypeScript.Errors.invalidOperation","TypeScript.ArrayUtilities","TypeScript.ArrayUtilities.constructor","TypeScript.ArrayUtilities.sequenceEquals","TypeScript.ArrayUtilities.contains","TypeScript.ArrayUtilities.distinct","TypeScript.ArrayUtilities.last","TypeScript.ArrayUtilities.lastOrDefault","TypeScript.ArrayUtilities.firstOrDefault","TypeScript.ArrayUtilities.first","TypeScript.ArrayUtilities.sum","TypeScript.ArrayUtilities.select","TypeScript.ArrayUtilities.where","TypeScript.ArrayUtilities.any","TypeScript.ArrayUtilities.all","TypeScript.ArrayUtilities.binarySearch","TypeScript.ArrayUtilities.createArray","TypeScript.ArrayUtilities.grow","TypeScript.ArrayUtilities.copy","TypeScript.ArrayUtilities.indexOf","TypeScript.StringUtilities","TypeScript.StringUtilities.constructor","TypeScript.StringUtilities.isString","TypeScript.StringUtilities.endsWith","TypeScript.StringUtilities.startsWith","TypeScript.StringUtilities.repeat","TypeScript.SyntaxKind","TypeScript.SyntaxFacts","TypeScript.SyntaxFacts.getTokenKind","TypeScript.SyntaxFacts.getText","TypeScript.SyntaxFacts.isAnyKeyword","TypeScript.SyntaxFacts.isAnyPunctuation","TypeScript.SyntaxFacts.isPrefixUnaryExpressionOperatorToken","TypeScript.SyntaxFacts.isBinaryExpressionOperatorToken","TypeScript.SyntaxFacts.isAssignmentOperatorToken","TypeScript.SyntaxFacts.isType","getSyntaxKindEnum","firstKind","getStringWithoutSuffix","getNameWithoutSuffix","getType","camelCase","getSafeName","generateConstructorFunction","generateSyntaxInterfaces","generateSyntaxInterface","generateNodes","isInterface","generateWalker","firstEnumName","groupBy","generateKeywordCondition","min","max","generateUtilities","generateScannerUtilities","syntaxKindName","generateVisitor"],"mappings":"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"} >>>>>>> 8c342a2... Add support for parsing type aliases. +======= +{"version":3,"file":"SyntaxGenerator.js","sourceRoot":"","sources":["file:///C:/VSPro_1/src/typescript/public_cyrusn/src/compiler/sys.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/core/errors.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/core/arrayUtilities.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/core/stringUtilities.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/syntax/syntaxKind.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/syntax/syntaxFacts.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/syntax/SyntaxGenerator.ts"],"names":["getWScriptSystem","getWScriptSystem.readFile","getWScriptSystem.writeFile","getNodeSystem","getNodeSystem.readFile","getNodeSystem.writeFile","getNodeSystem.fileChanged","TypeScript","TypeScript.Errors","TypeScript.Errors.constructor","TypeScript.Errors.argument","TypeScript.Errors.argumentOutOfRange","TypeScript.Errors.argumentNull","TypeScript.Errors.abstract","TypeScript.Errors.notYetImplemented","TypeScript.Errors.invalidOperation","TypeScript.ArrayUtilities","TypeScript.ArrayUtilities.constructor","TypeScript.ArrayUtilities.sequenceEquals","TypeScript.ArrayUtilities.contains","TypeScript.ArrayUtilities.distinct","TypeScript.ArrayUtilities.last","TypeScript.ArrayUtilities.lastOrDefault","TypeScript.ArrayUtilities.firstOrDefault","TypeScript.ArrayUtilities.first","TypeScript.ArrayUtilities.sum","TypeScript.ArrayUtilities.select","TypeScript.ArrayUtilities.where","TypeScript.ArrayUtilities.any","TypeScript.ArrayUtilities.all","TypeScript.ArrayUtilities.binarySearch","TypeScript.ArrayUtilities.createArray","TypeScript.ArrayUtilities.grow","TypeScript.ArrayUtilities.copy","TypeScript.ArrayUtilities.indexOf","TypeScript.StringUtilities","TypeScript.StringUtilities.constructor","TypeScript.StringUtilities.isString","TypeScript.StringUtilities.endsWith","TypeScript.StringUtilities.startsWith","TypeScript.StringUtilities.repeat","TypeScript.SyntaxKind","TypeScript.SyntaxFacts","TypeScript.SyntaxFacts.getTokenKind","TypeScript.SyntaxFacts.getText","TypeScript.SyntaxFacts.isAnyKeyword","TypeScript.SyntaxFacts.isAnyPunctuation","TypeScript.SyntaxFacts.isPrefixUnaryExpressionOperatorToken","TypeScript.SyntaxFacts.isBinaryExpressionOperatorToken","TypeScript.SyntaxFacts.isAssignmentOperatorToken","TypeScript.SyntaxFacts.isType","getSyntaxKindEnum","firstKind","getStringWithoutSuffix","getNameWithoutSuffix","getType","camelCase","getSafeName","generateConstructorFunction","generateSyntaxInterfaces","generateSyntaxInterface","generateNodes","isInterface","generateWalker","firstEnumName","groupBy","generateKeywordCondition","min","max","generateUtilities","generateScannerUtilities","syntaxKindName","generateVisitor"],"mappings":"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"} +>>>>>>> f65fbe4... Update name of variable declaration member. diff --git a/src/services/syntax/prettyPrinter.ts b/src/services/syntax/prettyPrinter.ts index b54a7d8a399..67fbe898ab9 100644 --- a/src/services/syntax/prettyPrinter.ts +++ b/src/services/syntax/prettyPrinter.ts @@ -364,7 +364,7 @@ module TypeScript.PrettyPrinter { } public visitVariableDeclaration(node: VariableDeclarationSyntax): void { - this.appendToken(node.varKeyword); + this.appendToken(node.varConstOrLetKeyword); this.ensureSpace(); this.appendSeparatorSpaceList(node.variableDeclarators); } diff --git a/src/services/syntax/syntaxInterfaces.generated.ts b/src/services/syntax/syntaxInterfaces.generated.ts index 770ae28210e..d4987a3c8a2 100644 --- a/src/services/syntax/syntaxInterfaces.generated.ts +++ b/src/services/syntax/syntaxInterfaces.generated.ts @@ -542,10 +542,10 @@ module TypeScript { export interface AwaitExpressionConstructor { new (data: number, awaitKeyword: ISyntaxToken, expression: IExpressionSyntax): AwaitExpressionSyntax } export interface VariableDeclarationSyntax extends ISyntaxNode { - varKeyword: ISyntaxToken; + varConstOrLetKeyword: ISyntaxToken; variableDeclarators: ISeparatedSyntaxList; } - export interface VariableDeclarationConstructor { new (data: number, varKeyword: ISyntaxToken, variableDeclarators: ISeparatedSyntaxList): VariableDeclarationSyntax } + export interface VariableDeclarationConstructor { new (data: number, varConstOrLetKeyword: ISyntaxToken, variableDeclarators: ISeparatedSyntaxList): VariableDeclarationSyntax } export interface VariableDeclaratorSyntax extends ISyntaxNode { propertyName: IPropertyNameSyntax; diff --git a/src/services/syntax/syntaxNodes.concrete.generated.ts b/src/services/syntax/syntaxNodes.concrete.generated.ts index 13cc5d81a3f..dbe2244b070 100644 --- a/src/services/syntax/syntaxNodes.concrete.generated.ts +++ b/src/services/syntax/syntaxNodes.concrete.generated.ts @@ -1477,18 +1477,18 @@ module TypeScript { } } - export var VariableDeclarationSyntax: VariableDeclarationConstructor = function(data: number, varKeyword: ISyntaxToken, variableDeclarators: ISeparatedSyntaxList) { + export var VariableDeclarationSyntax: VariableDeclarationConstructor = function(data: number, varConstOrLetKeyword: ISyntaxToken, variableDeclarators: ISeparatedSyntaxList) { if (data) { this.__data = data; } - this.varKeyword = varKeyword, + this.varConstOrLetKeyword = varConstOrLetKeyword, this.variableDeclarators = variableDeclarators, - varKeyword.parent = this, + varConstOrLetKeyword.parent = this, variableDeclarators.parent = this; }; VariableDeclarationSyntax.prototype.kind = SyntaxKind.VariableDeclaration; VariableDeclarationSyntax.prototype.childCount = 2; VariableDeclarationSyntax.prototype.childAt = function(index: number): ISyntaxElement { switch (index) { - case 0: return this.varKeyword; + case 0: return this.varConstOrLetKeyword; case 1: return this.variableDeclarators; } } diff --git a/src/services/syntax/syntaxTree.ts b/src/services/syntax/syntaxTree.ts index 486d92ee3ba..40cdf0cdf8d 100644 --- a/src/services/syntax/syntaxTree.ts +++ b/src/services/syntax/syntaxTree.ts @@ -277,7 +277,7 @@ module TypeScript { } public visitVariableDeclaration(node: VariableDeclarationSyntax): void { - if (this.checkForAtLeastOneElement(node.variableDeclarators, node.varKeyword, getLocalizedText(DiagnosticCode.variable_declaration, undefined)) || + if (this.checkForAtLeastOneElement(node.variableDeclarators, node.varConstOrLetKeyword, getLocalizedText(DiagnosticCode.variable_declaration, undefined)) || this.checkForTrailingComma(node.variableDeclarators)) { return; } @@ -1473,7 +1473,7 @@ module TypeScript { public visitVariableStatement(node: VariableStatementSyntax): void { if (this.checkForDisallowedDeclareModifier(node.modifiers) || this.checkForDisallowedModifiers(node.modifiers) || - this.checkForRequiredDeclareModifier(node, node.variableDeclaration.varKeyword, node.modifiers) || + this.checkForRequiredDeclareModifier(node, node.variableDeclaration.varConstOrLetKeyword, node.modifiers) || this.checkModuleElementModifiers(node.modifiers) || this.checkForDisallowedAsyncModifier(node.modifiers)) { diff --git a/src/services/syntax/syntaxWalker.generated.ts b/src/services/syntax/syntaxWalker.generated.ts index 9296ffad4e0..b4436d3a9cf 100644 --- a/src/services/syntax/syntaxWalker.generated.ts +++ b/src/services/syntax/syntaxWalker.generated.ts @@ -489,7 +489,7 @@ module TypeScript { } public visitVariableDeclaration(node: VariableDeclarationSyntax): void { - this.visitToken(node.varKeyword); + this.visitToken(node.varConstOrLetKeyword); this.visitList(node.variableDeclarators); } From 749501e8bf2d78689372892b8af89d7878a57e5a Mon Sep 17 00:00:00 2001 From: Cyrus Najmabadi Date: Fri, 28 Nov 2014 14:18:34 -0800 Subject: [PATCH 108/195] Simplify how type members are represented in the tree. Conflicts: src/services/syntax/SyntaxGenerator.js.map --- src/services/syntax/SyntaxGenerator.js | 14 +-- src/services/syntax/SyntaxGenerator.js.map | 4 + src/services/syntax/parser.ts | 97 +++++++++---------- src/services/syntax/prettyPrinter.ts | 4 +- src/services/syntax/syntaxGenerator.ts | 14 +-- .../syntax/syntaxInterfaces.generated.ts | 16 +-- .../syntax/syntaxNodes.concrete.generated.ts | 38 +++++--- src/services/syntax/syntaxTree.ts | 37 +++---- src/services/syntax/syntaxWalker.generated.ts | 4 +- 9 files changed, 121 insertions(+), 107 deletions(-) diff --git a/src/services/syntax/SyntaxGenerator.js b/src/services/syntax/SyntaxGenerator.js index bd50d07ed59..df3835a02e7 100644 --- a/src/services/syntax/SyntaxGenerator.js +++ b/src/services/syntax/SyntaxGenerator.js @@ -1196,7 +1196,7 @@ var definitions = [ interfaces: ['ITypeSyntax'], children: [ { name: 'openBraceToken', isToken: true, excludeFromAST: true }, - { name: 'typeMembers', isSeparatedList: true, elementType: 'ITypeMemberSyntax' }, + { name: 'typeMembers', isList: true, elementType: 'ITypeMemberSyntax' }, { name: 'closeBraceToken', isToken: true, excludeFromAST: true } ], isTypeScriptSpecific: true @@ -1422,7 +1422,8 @@ var definitions = [ { name: 'openBracketToken', isToken: true }, { name: 'parameters', isSeparatedList: true, elementType: 'ParameterSyntax' }, { name: 'closeBracketToken', isToken: true }, - { name: 'typeAnnotation', type: 'TypeAnnotationSyntax', isOptional: true } + { name: 'typeAnnotation', type: 'TypeAnnotationSyntax', isOptional: true }, + { name: 'semicolonOrCommaToken', isToken: true, isOptional: true } ], isTypeScriptSpecific: true }, @@ -1433,7 +1434,8 @@ var definitions = [ children: [ { name: 'propertyName', type: 'IPropertyNameSyntax' }, { name: 'questionToken', isToken: true, isOptional: true }, - { name: 'typeAnnotation', type: 'TypeAnnotationSyntax', isOptional: true } + { name: 'typeAnnotation', type: 'TypeAnnotationSyntax', isOptional: true }, + { name: 'semicolonOrCommaToken', isToken: true, isOptional: true } ], isTypeScriptSpecific: true }, @@ -1444,7 +1446,8 @@ var definitions = [ children: [ { name: 'typeParameterList', type: 'TypeParameterListSyntax', isOptional: true, isTypeScriptSpecific: true }, { name: 'parameterList', type: 'ParameterListSyntax' }, - { name: 'typeAnnotation', type: 'TypeAnnotationSyntax', isOptional: true, isTypeScriptSpecific: true } + { name: 'typeAnnotation', type: 'TypeAnnotationSyntax', isOptional: true, isTypeScriptSpecific: true }, + { name: 'semicolonOrCommaToken', isToken: true, isOptional: true } ] }, { @@ -1581,8 +1584,7 @@ var definitions = [ interfaces: ['IClassElementSyntax'], children: [ { name: 'modifiers', isList: true, elementType: 'ISyntaxToken' }, - { name: 'indexSignature', type: 'IndexSignatureSyntax' }, - { name: 'semicolonToken', isToken: true, isOptional: true, excludeFromAST: true } + { name: 'indexSignature', type: 'IndexSignatureSyntax' } ], isTypeScriptSpecific: true }, diff --git a/src/services/syntax/SyntaxGenerator.js.map b/src/services/syntax/SyntaxGenerator.js.map index 0cf20f6bcc3..de742c8ce5b 100644 --- a/src/services/syntax/SyntaxGenerator.js.map +++ b/src/services/syntax/SyntaxGenerator.js.map @@ -17,6 +17,7 @@ <<<<<<< HEAD <<<<<<< HEAD <<<<<<< HEAD +<<<<<<< HEAD <<<<<<< Updated upstream {"version":3,"file":"SyntaxGenerator.js","sourceRoot":"","sources":["file:///C:/VSPro_1/src/typescript/public_cyrusn/src/compiler/sys.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/core/errors.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/core/arrayUtilities.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/core/stringUtilities.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/syntax/syntaxKind.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/syntax/syntaxFacts.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/syntax/SyntaxGenerator.ts"],"names":["getWScriptSystem","getWScriptSystem.readFile","getWScriptSystem.writeFile","getNodeSystem","getNodeSystem.readFile","getNodeSystem.writeFile","getNodeSystem.fileChanged","TypeScript","TypeScript.Errors","TypeScript.Errors.constructor","TypeScript.Errors.argument","TypeScript.Errors.argumentOutOfRange","TypeScript.Errors.argumentNull","TypeScript.Errors.abstract","TypeScript.Errors.notYetImplemented","TypeScript.Errors.invalidOperation","TypeScript.ArrayUtilities","TypeScript.ArrayUtilities.constructor","TypeScript.ArrayUtilities.sequenceEquals","TypeScript.ArrayUtilities.contains","TypeScript.ArrayUtilities.distinct","TypeScript.ArrayUtilities.last","TypeScript.ArrayUtilities.lastOrDefault","TypeScript.ArrayUtilities.firstOrDefault","TypeScript.ArrayUtilities.first","TypeScript.ArrayUtilities.sum","TypeScript.ArrayUtilities.select","TypeScript.ArrayUtilities.where","TypeScript.ArrayUtilities.any","TypeScript.ArrayUtilities.all","TypeScript.ArrayUtilities.binarySearch","TypeScript.ArrayUtilities.createArray","TypeScript.ArrayUtilities.grow","TypeScript.ArrayUtilities.copy","TypeScript.ArrayUtilities.indexOf","TypeScript.StringUtilities","TypeScript.StringUtilities.constructor","TypeScript.StringUtilities.isString","TypeScript.StringUtilities.endsWith","TypeScript.StringUtilities.startsWith","TypeScript.StringUtilities.repeat","TypeScript.SyntaxKind","TypeScript.SyntaxFacts","TypeScript.SyntaxFacts.getTokenKind","TypeScript.SyntaxFacts.getText","TypeScript.SyntaxFacts.isAnyKeyword","TypeScript.SyntaxFacts.isAnyPunctuation","TypeScript.SyntaxFacts.isPrefixUnaryExpressionOperatorToken","TypeScript.SyntaxFacts.isBinaryExpressionOperatorToken","TypeScript.SyntaxFacts.isAssignmentOperatorToken","TypeScript.SyntaxFacts.isType","firstKind","getStringWithoutSuffix","getNameWithoutSuffix","getType","camelCase","getSafeName","generateConstructorFunction","generateSyntaxInterfaces","generateSyntaxInterface","generateNodes","isInterface","generateWalker","firstEnumName","groupBy","generateKeywordCondition","min","max","generateUtilities","generateScannerUtilities","syntaxKindName","generateVisitor"],"mappings":"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"} ======= @@ -79,3 +80,6 @@ ======= {"version":3,"file":"SyntaxGenerator.js","sourceRoot":"","sources":["file:///C:/VSPro_1/src/typescript/public_cyrusn/src/compiler/sys.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/core/errors.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/core/arrayUtilities.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/core/stringUtilities.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/syntax/syntaxKind.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/syntax/syntaxFacts.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/syntax/SyntaxGenerator.ts"],"names":["getWScriptSystem","getWScriptSystem.readFile","getWScriptSystem.writeFile","getNodeSystem","getNodeSystem.readFile","getNodeSystem.writeFile","getNodeSystem.fileChanged","TypeScript","TypeScript.Errors","TypeScript.Errors.constructor","TypeScript.Errors.argument","TypeScript.Errors.argumentOutOfRange","TypeScript.Errors.argumentNull","TypeScript.Errors.abstract","TypeScript.Errors.notYetImplemented","TypeScript.Errors.invalidOperation","TypeScript.ArrayUtilities","TypeScript.ArrayUtilities.constructor","TypeScript.ArrayUtilities.sequenceEquals","TypeScript.ArrayUtilities.contains","TypeScript.ArrayUtilities.distinct","TypeScript.ArrayUtilities.last","TypeScript.ArrayUtilities.lastOrDefault","TypeScript.ArrayUtilities.firstOrDefault","TypeScript.ArrayUtilities.first","TypeScript.ArrayUtilities.sum","TypeScript.ArrayUtilities.select","TypeScript.ArrayUtilities.where","TypeScript.ArrayUtilities.any","TypeScript.ArrayUtilities.all","TypeScript.ArrayUtilities.binarySearch","TypeScript.ArrayUtilities.createArray","TypeScript.ArrayUtilities.grow","TypeScript.ArrayUtilities.copy","TypeScript.ArrayUtilities.indexOf","TypeScript.StringUtilities","TypeScript.StringUtilities.constructor","TypeScript.StringUtilities.isString","TypeScript.StringUtilities.endsWith","TypeScript.StringUtilities.startsWith","TypeScript.StringUtilities.repeat","TypeScript.SyntaxKind","TypeScript.SyntaxFacts","TypeScript.SyntaxFacts.getTokenKind","TypeScript.SyntaxFacts.getText","TypeScript.SyntaxFacts.isAnyKeyword","TypeScript.SyntaxFacts.isAnyPunctuation","TypeScript.SyntaxFacts.isPrefixUnaryExpressionOperatorToken","TypeScript.SyntaxFacts.isBinaryExpressionOperatorToken","TypeScript.SyntaxFacts.isAssignmentOperatorToken","TypeScript.SyntaxFacts.isType","getSyntaxKindEnum","firstKind","getStringWithoutSuffix","getNameWithoutSuffix","getType","camelCase","getSafeName","generateConstructorFunction","generateSyntaxInterfaces","generateSyntaxInterface","generateNodes","isInterface","generateWalker","firstEnumName","groupBy","generateKeywordCondition","min","max","generateUtilities","generateScannerUtilities","syntaxKindName","generateVisitor"],"mappings":"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"} >>>>>>> f65fbe4... Update name of variable declaration member. +======= +{"version":3,"file":"SyntaxGenerator.js","sourceRoot":"","sources":["file:///C:/VSPro_1/src/typescript/public_cyrusn/src/compiler/sys.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/core/errors.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/core/arrayUtilities.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/core/stringUtilities.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/syntax/syntaxKind.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/syntax/syntaxFacts.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/syntax/SyntaxGenerator.ts"],"names":["getWScriptSystem","getWScriptSystem.readFile","getWScriptSystem.writeFile","getNodeSystem","getNodeSystem.readFile","getNodeSystem.writeFile","getNodeSystem.fileChanged","TypeScript","TypeScript.Errors","TypeScript.Errors.constructor","TypeScript.Errors.argument","TypeScript.Errors.argumentOutOfRange","TypeScript.Errors.argumentNull","TypeScript.Errors.abstract","TypeScript.Errors.notYetImplemented","TypeScript.Errors.invalidOperation","TypeScript.ArrayUtilities","TypeScript.ArrayUtilities.constructor","TypeScript.ArrayUtilities.sequenceEquals","TypeScript.ArrayUtilities.contains","TypeScript.ArrayUtilities.distinct","TypeScript.ArrayUtilities.last","TypeScript.ArrayUtilities.lastOrDefault","TypeScript.ArrayUtilities.firstOrDefault","TypeScript.ArrayUtilities.first","TypeScript.ArrayUtilities.sum","TypeScript.ArrayUtilities.select","TypeScript.ArrayUtilities.where","TypeScript.ArrayUtilities.any","TypeScript.ArrayUtilities.all","TypeScript.ArrayUtilities.binarySearch","TypeScript.ArrayUtilities.createArray","TypeScript.ArrayUtilities.grow","TypeScript.ArrayUtilities.copy","TypeScript.ArrayUtilities.indexOf","TypeScript.StringUtilities","TypeScript.StringUtilities.constructor","TypeScript.StringUtilities.isString","TypeScript.StringUtilities.endsWith","TypeScript.StringUtilities.startsWith","TypeScript.StringUtilities.repeat","TypeScript.SyntaxKind","TypeScript.SyntaxFacts","TypeScript.SyntaxFacts.getTokenKind","TypeScript.SyntaxFacts.getText","TypeScript.SyntaxFacts.isAnyKeyword","TypeScript.SyntaxFacts.isAnyPunctuation","TypeScript.SyntaxFacts.isPrefixUnaryExpressionOperatorToken","TypeScript.SyntaxFacts.isBinaryExpressionOperatorToken","TypeScript.SyntaxFacts.isAssignmentOperatorToken","TypeScript.SyntaxFacts.isType","getSyntaxKindEnum","firstKind","getStringWithoutSuffix","getNameWithoutSuffix","getType","camelCase","getSafeName","generateConstructorFunction","generateSyntaxInterfaces","generateSyntaxInterface","generateNodes","isInterface","generateWalker","firstEnumName","groupBy","generateKeywordCondition","min","max","generateUtilities","generateScannerUtilities","syntaxKindName","generateVisitor"],"mappings":"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"} +>>>>>>> f086395... Simplify how type members are represented in the tree. diff --git a/src/services/syntax/parser.ts b/src/services/syntax/parser.ts index b96e0ef35c9..0ebdae96e21 100644 --- a/src/services/syntax/parser.ts +++ b/src/services/syntax/parser.ts @@ -1269,14 +1269,14 @@ module TypeScript.Parser { function parseGetAccessor(modifiers: ISyntaxToken[], getKeyword: ISyntaxToken): GetAccessorSyntax { return new GetAccessorSyntax(contextFlags, modifiers, consumeToken(getKeyword), parsePropertyName(), - parseCallSignature(/*requireCompleteTypeParameterList:*/ false, /*yieldAndGeneratorParameterContext:*/ false, /*asyncContext:*/ false), + parseCallSignatureWithoutSemicolonOrComma(/*requireCompleteTypeParameterList:*/ false, /*yieldAndGeneratorParameterContext:*/ false, /*asyncContext:*/ false), parseFunctionBody(/*isGenerator:*/ false, /*asyncContext:*/ false)); } function parseSetAccessor(modifiers: ISyntaxToken[], setKeyword: ISyntaxToken): SetAccessorSyntax { return new SetAccessorSyntax(contextFlags, modifiers, consumeToken(setKeyword), parsePropertyName(), - parseCallSignature(/*requireCompleteTypeParameterList:*/ false, /*yieldAndGeneratorParameterContext:*/ false, /*asyncContext:*/ false), + parseCallSignatureWithoutSemicolonOrComma(/*requireCompleteTypeParameterList:*/ false, /*yieldAndGeneratorParameterContext:*/ false, /*asyncContext:*/ false), parseFunctionBody(/*isGenerator:*/ false, /*asyncContext:*/ false)); } @@ -1401,7 +1401,7 @@ module TypeScript.Parser { return new ConstructorDeclarationSyntax(contextFlags, modifiers, eatToken(SyntaxKind.ConstructorKeyword), - parseCallSignature(/*requireCompleteTypeParameterList:*/ false, /*yieldAndGeneratorParameterContext:*/ false, /*asyncContext:*/ false), + parseCallSignatureWithoutSemicolonOrComma(/*requireCompleteTypeParameterList:*/ false, /*yieldAndGeneratorParameterContext:*/ false, /*asyncContext:*/ false), parseFunctionBody(/*isGenerator:*/ false, /*asyncContext:*/ false)); } @@ -1415,7 +1415,7 @@ module TypeScript.Parser { modifiers, asteriskToken, propertyName, - parseCallSignature(/*requireCompleteTypeParameterList:*/ false, /*yieldAndGeneratorParameterContext:*/ isGenerator, /*asyncContext:*/ asyncContext), + parseCallSignatureWithoutSemicolonOrComma(/*requireCompleteTypeParameterList:*/ false, /*yieldAndGeneratorParameterContext:*/ isGenerator, /*asyncContext:*/ asyncContext), parseFunctionBody(isGenerator, asyncContext)); } @@ -1445,8 +1445,7 @@ module TypeScript.Parser { function parseIndexMemberDeclaration(modifiers: ISyntaxToken[]): IndexMemberDeclarationSyntax { return new IndexMemberDeclarationSyntax(contextFlags, modifiers, - parseIndexSignature(), - eatExplicitOrAutomaticSemicolon(/*allowWithoutNewLine:*/ false)); + parseIndexSignature()); } function isFunctionDeclaration(modifierCount: number): boolean { @@ -1471,7 +1470,7 @@ module TypeScript.Parser { functionKeyword, asteriskToken, eatIdentifierToken(), - parseCallSignature(/*requireCompleteTypeParameterList:*/ false, /*yieldAndGeneratorParameterContext:*/ isGenerator, /*asyncContext:*/ asyncContext), + parseCallSignatureWithoutSemicolonOrComma(/*requireCompleteTypeParameterList:*/ false, /*yieldAndGeneratorParameterContext:*/ isGenerator, /*asyncContext:*/ asyncContext), parseFunctionBody(isGenerator, asyncContext)); } @@ -1523,7 +1522,7 @@ module TypeScript.Parser { return new ObjectTypeSyntax(contextFlags, openBraceToken = eatToken(SyntaxKind.OpenBraceToken), - openBraceToken.fullWidth() > 0 ? parseSeparatedSyntaxList(ListParsingState.ObjectType_TypeMembers) : [], + openBraceToken.fullWidth() > 0 ? parseSyntaxList(ListParsingState.ObjectType_TypeMembers) : [], eatToken(SyntaxKind.CloseBraceToken)); } @@ -1585,7 +1584,10 @@ module TypeScript.Parser { // A call signature for a type member can both use 'yield' as a parameter name, and // does not have parameter initializers. So we can pass 'false' for both [Yield] // and [GeneratorParameter]. - return parseCallSignature(/*requireCompleteTypeParameterList:*/ false, /*yieldAndGeneratorParameterContext:*/ false, /*asyncContext:*/ false); + // + // Also, when this is a call signature used as a type member, then a semicolon is + // required. + return parseCallSignatureWithSemicolonOrComma(/*requireCompleteTypeParameterList:*/ false, /*yieldAndGeneratorParameterContext:*/ false, /*asyncContext:*/ false); } else if (isConstructSignature()) { return parseConstructSignature(); @@ -1613,14 +1615,16 @@ module TypeScript.Parser { // Construct signatures have no [Yield] or [GeneratorParameter] restrictions. return new ConstructSignatureSyntax(contextFlags, eatToken(SyntaxKind.NewKeyword), - parseCallSignature(/*requireCompleteTypeParameterList:*/ false, /*yieldAndGeneratorParameterContext:*/ false, /*asyncContext:*/ false)); + parseCallSignatureWithSemicolonOrComma(/*requireCompleteTypeParameterList:*/ false, /*yieldAndGeneratorParameterContext:*/ false, /*asyncContext:*/ false)); } function parseIndexSignature(): IndexSignatureSyntax { return new IndexSignatureSyntax(contextFlags, eatToken(SyntaxKind.OpenBracketToken), parseSeparatedSyntaxList(ListParsingState.IndexSignature_Parameters), - eatToken(SyntaxKind.CloseBracketToken), parseOptionalTypeAnnotation(/*allowStringLiteral:*/ false)); + eatToken(SyntaxKind.CloseBracketToken), + parseOptionalTypeAnnotation(/*allowStringLiteral:*/ false), + eatExplicitOrAutomaticSemicolonOrComma()); } function parseMethodSignature(propertyName: IPropertyNameSyntax, questionToken: ISyntaxToken): MethodSignatureSyntax { @@ -1629,12 +1633,15 @@ module TypeScript.Parser { return new MethodSignatureSyntax(contextFlags, propertyName, questionToken, - parseCallSignature(/*requireCompleteTypeParameterList:*/ false, /*yieldAndGeneratorParameterContext:*/ false, /*asyncContext:*/ false)); + parseCallSignatureWithSemicolonOrComma(/*requireCompleteTypeParameterList:*/ false, /*yieldAndGeneratorParameterContext:*/ false, /*asyncContext:*/ false)); } function parsePropertySignature(propertyName: IPropertyNameSyntax, questionToken: ISyntaxToken): PropertySignatureSyntax { return new PropertySignatureSyntax(contextFlags, - propertyName, questionToken, parseOptionalTypeAnnotation(/*allowStringLiteral:*/ false)); + propertyName, + questionToken, + parseOptionalTypeAnnotation(/*allowStringLiteral:*/ false), + eatExplicitOrAutomaticSemicolonOrComma()); } function isCallSignature(peekIndex: number): boolean { @@ -3250,7 +3257,7 @@ module TypeScript.Parser { eatToken(SyntaxKind.FunctionKeyword), asteriskToken = tryEatToken(SyntaxKind.AsteriskToken), tryEatFunctionExpressionIdentifier(!!asteriskToken, !!asyncKeyword), - parseCallSignature(/*requireCompleteTypeParameterList:*/ false, /*yieldAndGeneratorParameterContext:*/ !!asteriskToken, /*asyncContext:*/ !!asyncKeyword), + parseCallSignatureWithoutSemicolonOrComma(/*requireCompleteTypeParameterList:*/ false, /*yieldAndGeneratorParameterContext:*/ !!asteriskToken, /*asyncContext:*/ !!asyncKeyword), parseFunctionBody(!!asteriskToken, !!asyncKeyword)); } @@ -3386,7 +3393,7 @@ module TypeScript.Parser { // 2.If the [Yield] grammar parameter is not present for CoverParenthesizedExpressionAndArrowParameterList[Yield] // return the result of parsing the lexical token stream matched by CoverParenthesizedExpressionAndArrowParameterList // using ArrowFormalParameters as the goal symbol. - var callSignature = parseCallSignature(/*requireCompleteTypeParameterList:*/ true, /*yieldAndGeneratorParameterContext:*/ inYieldContext(), /*asyncContext:*/ !!asyncKeyword); + var callSignature = parseCallSignatureWithoutSemicolonOrComma(/*requireCompleteTypeParameterList:*/ true, /*yieldAndGeneratorParameterContext:*/ inYieldContext(), /*asyncContext:*/ !!asyncKeyword); if (requireArrow && currentToken().kind !== SyntaxKind.EqualsGreaterThanToken) { return undefined; @@ -3874,11 +3881,29 @@ module TypeScript.Parser { return statements; } - function parseCallSignature(requireCompleteTypeParameterList: boolean, yieldAndGeneratorParameterContext: boolean, asyncContext: boolean): CallSignatureSyntax { + function parseCallSignatureWithoutSemicolonOrComma(requireCompleteTypeParameterList: boolean, yieldAndGeneratorParameterContext: boolean, asyncContext: boolean): CallSignatureSyntax { + return parseCallSignatureWorker(requireCompleteTypeParameterList, yieldAndGeneratorParameterContext, asyncContext, /*withSemicolon:*/ false); + } + + function parseCallSignatureWithSemicolonOrComma(requireCompleteTypeParameterList: boolean, yieldAndGeneratorParameterContext: boolean, asyncContext: boolean): CallSignatureSyntax { + return parseCallSignatureWorker(requireCompleteTypeParameterList, yieldAndGeneratorParameterContext, asyncContext, /*withSemicolon:*/ true); + } + + function parseCallSignatureWorker(requireCompleteTypeParameterList: boolean, yieldAndGeneratorParameterContext: boolean, asyncContext: boolean, withSemicolonOrComma: boolean): CallSignatureSyntax { return new CallSignatureSyntax(contextFlags, tryParseTypeParameterList(requireCompleteTypeParameterList), parseParameterList(yieldAndGeneratorParameterContext, asyncContext), - parseOptionalTypeAnnotation(/*allowStringLiteral:*/ false)); + parseOptionalTypeAnnotation(/*allowStringLiteral:*/ false), + withSemicolonOrComma ? eatExplicitOrAutomaticSemicolonOrComma() : undefined); + } + + function eatExplicitOrAutomaticSemicolonOrComma() { + var _currentToken = currentToken(); + if (_currentToken.kind === SyntaxKind.CommaToken) { + return consumeToken(_currentToken); + } + + return eatExplicitOrAutomaticSemicolon(/*allowWithoutNewline:*/ false); } function tryParseTypeParameterList(requireCompleteTypeParameterList: boolean): TypeParameterListSyntax { @@ -4411,17 +4436,6 @@ module TypeScript.Parser { function parseSeparatedSyntaxListWorker(currentListType: ListParsingState): ISeparatedSyntaxList { var nodesAndSeparators: ISyntaxNodeOrToken[] = []; - - // Debug.assert(nodes.length === 0); - // Debug.assert(separators.length === 0); - // Debug.assert(skippedTokens.length === 0); - // Debug.assert(skippedTokens !== nodes); - // Debug.assert(skippedTokens !== separators); - // Debug.assert(nodes !== separators); - - var _separatorKind = currentListType === ListParsingState.ObjectType_TypeMembers ? SyntaxKind.SemicolonToken : SyntaxKind.CommaToken; - var allowAutomaticSemicolonInsertion = _separatorKind === SyntaxKind.SemicolonToken; - var inErrorRecovery = false; while (true) { // Try to parse an item of the list. If we fail then decide if we need to abort or @@ -4465,8 +4479,7 @@ module TypeScript.Parser { // allow 'comma' as a separator (for error tolerance). We will later do a post pass // to report when a comma was used improperly in a list that needed semicolons. var _currentToken = currentToken(); - var tokenKind = _currentToken.kind; - if (tokenKind === _separatorKind || tokenKind === SyntaxKind.CommaToken) { + if (_currentToken.kind === SyntaxKind.CommaToken) { // Consume the last separator and continue parsing list elements. nodesAndSeparators.push(consumeToken(_currentToken)); continue; @@ -4479,34 +4492,12 @@ module TypeScript.Parser { break; } - // Otherwise, it might be a case where we can parse out an implicit semicolon. - - // Note: it's important that we check this *after* the check above for - // 'listIsTerminated'. Consider the following case: - // - // { - // a // <-- just finished parsing 'a' - // } - // - // Automatic semicolon insertion rules state: "When, as the program is parsed from - // left to right, a token (called the offending token) is encountered that is not - // allowed by any production of the grammar". So we should only ever insert a - // semicolon if we couldn't consume something normally. in the above case, we can - // consume the '}' just fine. So ASI doesn't apply. - - if (allowAutomaticSemicolonInsertion && canEatAutomaticSemicolon(/*allowWithoutNewline:*/ false)) { - var semicolonToken = eatExplicitOrAutomaticSemicolon(/*allowWithoutNewline:*/ false) || createEmptyToken(SyntaxKind.SemicolonToken); - nodesAndSeparators.push(semicolonToken); - // Debug.assert(items.length % 2 === 0); - continue; - } - // We weren't at the end of the list. And thre was no separator we could parse out. // Try parse the separator we expected, and continue parsing more list elements. // This time mark that we're in error recovery mode though. // // Note: trying to eat this token will emit the appropriate diagnostic. - nodesAndSeparators.push(eatToken(_separatorKind)); + nodesAndSeparators.push(eatToken(SyntaxKind.CommaToken)); // Now that we're in 'error recovery' mode we cantweak some parsing rules as // appropriate. For example, if we have: diff --git a/src/services/syntax/prettyPrinter.ts b/src/services/syntax/prettyPrinter.ts index 67fbe898ab9..1a71b58458b 100644 --- a/src/services/syntax/prettyPrinter.ts +++ b/src/services/syntax/prettyPrinter.ts @@ -604,12 +604,14 @@ module TypeScript.PrettyPrinter { this.appendSeparatorSpaceList(node.parameters) this.appendToken(node.closeBracketToken); this.appendNode(node.typeAnnotation); + this.appendToken(node.semicolonOrCommaToken); } public visitPropertySignature(node: PropertySignatureSyntax): void { visitNodeOrToken(this, node.propertyName); this.appendToken(node.questionToken); this.appendNode(node.typeAnnotation); + this.appendToken(node.semicolonOrCommaToken); } public visitParameterList(node: ParameterListSyntax): void { @@ -622,6 +624,7 @@ module TypeScript.PrettyPrinter { this.appendNode(node.typeParameterList); visitNodeOrToken(this, node.parameterList); this.appendNode(node.typeAnnotation); + this.appendToken(node.semicolonOrCommaToken); } public visitTypeParameterList(node: TypeParameterListSyntax): void { @@ -693,7 +696,6 @@ module TypeScript.PrettyPrinter { this.appendSpaceList(node.modifiers); this.ensureSpace(); visitNodeOrToken(this, node.indexSignature); - this.appendToken(node.semicolonToken); } public visitMemberFunctionDeclaration(node: MemberFunctionDeclarationSyntax): void { diff --git a/src/services/syntax/syntaxGenerator.ts b/src/services/syntax/syntaxGenerator.ts index 924aaec7e6e..78a441dfb79 100644 --- a/src/services/syntax/syntaxGenerator.ts +++ b/src/services/syntax/syntaxGenerator.ts @@ -334,7 +334,7 @@ var definitions:ITypeDefinition[] = [ interfaces: ['ITypeSyntax'], children: [ { name: 'openBraceToken', isToken: true, excludeFromAST: true }, - { name: 'typeMembers', isSeparatedList: true, elementType: 'ITypeMemberSyntax' }, + { name: 'typeMembers', isList: true, elementType: 'ITypeMemberSyntax' }, { name: 'closeBraceToken', isToken: true, excludeFromAST: true } ], isTypeScriptSpecific: true @@ -560,7 +560,8 @@ var definitions:ITypeDefinition[] = [ { name: 'openBracketToken', isToken: true }, { name: 'parameters', isSeparatedList: true, elementType: 'ParameterSyntax' }, { name: 'closeBracketToken', isToken: true }, - { name: 'typeAnnotation', type: 'TypeAnnotationSyntax', isOptional: true } + { name: 'typeAnnotation', type: 'TypeAnnotationSyntax', isOptional: true }, + { name: 'semicolonOrCommaToken', isToken: true, isOptional: true } ], isTypeScriptSpecific: true }, @@ -571,7 +572,8 @@ var definitions:ITypeDefinition[] = [ children: [ { name: 'propertyName', type: 'IPropertyNameSyntax' }, { name: 'questionToken', isToken: true, isOptional: true }, - { name: 'typeAnnotation', type: 'TypeAnnotationSyntax', isOptional: true } + { name: 'typeAnnotation', type: 'TypeAnnotationSyntax', isOptional: true }, + { name: 'semicolonOrCommaToken', isToken: true, isOptional: true } ], isTypeScriptSpecific: true }, @@ -582,7 +584,8 @@ var definitions:ITypeDefinition[] = [ children: [ { name: 'typeParameterList', type: 'TypeParameterListSyntax', isOptional: true, isTypeScriptSpecific: true }, { name: 'parameterList', type: 'ParameterListSyntax' }, - { name: 'typeAnnotation', type: 'TypeAnnotationSyntax', isOptional: true, isTypeScriptSpecific: true } + { name: 'typeAnnotation', type: 'TypeAnnotationSyntax', isOptional: true, isTypeScriptSpecific: true }, + { name: 'semicolonOrCommaToken', isToken: true, isOptional: true } ] }, { @@ -720,8 +723,7 @@ var definitions:ITypeDefinition[] = [ interfaces: ['IClassElementSyntax'], children: [ { name: 'modifiers', isList: true, elementType: 'ISyntaxToken' }, - { name: 'indexSignature', type: 'IndexSignatureSyntax' }, - { name: 'semicolonToken', isToken: true, isOptional: true, excludeFromAST: true } + { name: 'indexSignature', type: 'IndexSignatureSyntax' } ], isTypeScriptSpecific: true }, diff --git a/src/services/syntax/syntaxInterfaces.generated.ts b/src/services/syntax/syntaxInterfaces.generated.ts index d4987a3c8a2..f80741e240b 100644 --- a/src/services/syntax/syntaxInterfaces.generated.ts +++ b/src/services/syntax/syntaxInterfaces.generated.ts @@ -17,10 +17,10 @@ module TypeScript { export interface ObjectTypeSyntax extends ISyntaxNode, ITypeSyntax { openBraceToken: ISyntaxToken; - typeMembers: ISeparatedSyntaxList; + typeMembers: ITypeMemberSyntax[]; closeBraceToken: ISyntaxToken; } - export interface ObjectTypeConstructor { new (data: number, openBraceToken: ISyntaxToken, typeMembers: ISeparatedSyntaxList, closeBraceToken: ISyntaxToken): ObjectTypeSyntax } + export interface ObjectTypeConstructor { new (data: number, openBraceToken: ISyntaxToken, typeMembers: ITypeMemberSyntax[], closeBraceToken: ISyntaxToken): ObjectTypeSyntax } export interface FunctionTypeSyntax extends ISyntaxNode, ITypeSyntax { typeParameterList: TypeParameterListSyntax; @@ -177,9 +177,8 @@ module TypeScript { export interface IndexMemberDeclarationSyntax extends ISyntaxNode, IClassElementSyntax { modifiers: ISyntaxToken[]; indexSignature: IndexSignatureSyntax; - semicolonToken: ISyntaxToken; } - export interface IndexMemberDeclarationConstructor { new (data: number, modifiers: ISyntaxToken[], indexSignature: IndexSignatureSyntax, semicolonToken: ISyntaxToken): IndexMemberDeclarationSyntax } + export interface IndexMemberDeclarationConstructor { new (data: number, modifiers: ISyntaxToken[], indexSignature: IndexSignatureSyntax): IndexMemberDeclarationSyntax } export interface GetAccessorSyntax extends ISyntaxNode, IAccessorSyntax { modifiers: ISyntaxToken[]; @@ -203,15 +202,17 @@ module TypeScript { propertyName: IPropertyNameSyntax; questionToken: ISyntaxToken; typeAnnotation: TypeAnnotationSyntax; + semicolonOrCommaToken: ISyntaxToken; } - export interface PropertySignatureConstructor { new (data: number, propertyName: IPropertyNameSyntax, questionToken: ISyntaxToken, typeAnnotation: TypeAnnotationSyntax): PropertySignatureSyntax } + export interface PropertySignatureConstructor { new (data: number, propertyName: IPropertyNameSyntax, questionToken: ISyntaxToken, typeAnnotation: TypeAnnotationSyntax, semicolonOrCommaToken: ISyntaxToken): PropertySignatureSyntax } export interface CallSignatureSyntax extends ISyntaxNode, ITypeMemberSyntax { typeParameterList: TypeParameterListSyntax; parameterList: ParameterListSyntax; typeAnnotation: TypeAnnotationSyntax; + semicolonOrCommaToken: ISyntaxToken; } - export interface CallSignatureConstructor { new (data: number, typeParameterList: TypeParameterListSyntax, parameterList: ParameterListSyntax, typeAnnotation: TypeAnnotationSyntax): CallSignatureSyntax } + export interface CallSignatureConstructor { new (data: number, typeParameterList: TypeParameterListSyntax, parameterList: ParameterListSyntax, typeAnnotation: TypeAnnotationSyntax, semicolonOrCommaToken: ISyntaxToken): CallSignatureSyntax } export interface ConstructSignatureSyntax extends ISyntaxNode, ITypeMemberSyntax { newKeyword: ISyntaxToken; @@ -224,8 +225,9 @@ module TypeScript { parameters: ISeparatedSyntaxList; closeBracketToken: ISyntaxToken; typeAnnotation: TypeAnnotationSyntax; + semicolonOrCommaToken: ISyntaxToken; } - export interface IndexSignatureConstructor { new (data: number, openBracketToken: ISyntaxToken, parameters: ISeparatedSyntaxList, closeBracketToken: ISyntaxToken, typeAnnotation: TypeAnnotationSyntax): IndexSignatureSyntax } + export interface IndexSignatureConstructor { new (data: number, openBracketToken: ISyntaxToken, parameters: ISeparatedSyntaxList, closeBracketToken: ISyntaxToken, typeAnnotation: TypeAnnotationSyntax, semicolonOrCommaToken: ISyntaxToken): IndexSignatureSyntax } export interface MethodSignatureSyntax extends ISyntaxNode, ITypeMemberSyntax { propertyName: IPropertyNameSyntax; diff --git a/src/services/syntax/syntaxNodes.concrete.generated.ts b/src/services/syntax/syntaxNodes.concrete.generated.ts index dbe2244b070..7d2072e686d 100644 --- a/src/services/syntax/syntaxNodes.concrete.generated.ts +++ b/src/services/syntax/syntaxNodes.concrete.generated.ts @@ -36,7 +36,7 @@ module TypeScript { } } - export var ObjectTypeSyntax: ObjectTypeConstructor = function(data: number, openBraceToken: ISyntaxToken, typeMembers: ISeparatedSyntaxList, closeBraceToken: ISyntaxToken) { + export var ObjectTypeSyntax: ObjectTypeConstructor = function(data: number, openBraceToken: ISyntaxToken, typeMembers: ITypeMemberSyntax[], closeBraceToken: ISyntaxToken) { if (data) { this.__data = data; } this.openBraceToken = openBraceToken, this.typeMembers = typeMembers, @@ -475,22 +475,19 @@ module TypeScript { } } - export var IndexMemberDeclarationSyntax: IndexMemberDeclarationConstructor = function(data: number, modifiers: ISyntaxToken[], indexSignature: IndexSignatureSyntax, semicolonToken: ISyntaxToken) { + export var IndexMemberDeclarationSyntax: IndexMemberDeclarationConstructor = function(data: number, modifiers: ISyntaxToken[], indexSignature: IndexSignatureSyntax) { if (data) { this.__data = data; } this.modifiers = modifiers, this.indexSignature = indexSignature, - this.semicolonToken = semicolonToken, modifiers.parent = this, - indexSignature.parent = this, - semicolonToken && (semicolonToken.parent = this); + indexSignature.parent = this; }; IndexMemberDeclarationSyntax.prototype.kind = SyntaxKind.IndexMemberDeclaration; - IndexMemberDeclarationSyntax.prototype.childCount = 3; + IndexMemberDeclarationSyntax.prototype.childCount = 2; IndexMemberDeclarationSyntax.prototype.childAt = function(index: number): ISyntaxElement { switch (index) { case 0: return this.modifiers; case 1: return this.indexSignature; - case 2: return this.semicolonToken; } } @@ -544,41 +541,47 @@ module TypeScript { } } - export var PropertySignatureSyntax: PropertySignatureConstructor = function(data: number, propertyName: IPropertyNameSyntax, questionToken: ISyntaxToken, typeAnnotation: TypeAnnotationSyntax) { + export var PropertySignatureSyntax: PropertySignatureConstructor = function(data: number, propertyName: IPropertyNameSyntax, questionToken: ISyntaxToken, typeAnnotation: TypeAnnotationSyntax, semicolonOrCommaToken: ISyntaxToken) { if (data) { this.__data = data; } this.propertyName = propertyName, this.questionToken = questionToken, this.typeAnnotation = typeAnnotation, + this.semicolonOrCommaToken = semicolonOrCommaToken, propertyName.parent = this, questionToken && (questionToken.parent = this), - typeAnnotation && (typeAnnotation.parent = this); + typeAnnotation && (typeAnnotation.parent = this), + semicolonOrCommaToken && (semicolonOrCommaToken.parent = this); }; PropertySignatureSyntax.prototype.kind = SyntaxKind.PropertySignature; - PropertySignatureSyntax.prototype.childCount = 3; + PropertySignatureSyntax.prototype.childCount = 4; PropertySignatureSyntax.prototype.childAt = function(index: number): ISyntaxElement { switch (index) { case 0: return this.propertyName; case 1: return this.questionToken; case 2: return this.typeAnnotation; + case 3: return this.semicolonOrCommaToken; } } - export var CallSignatureSyntax: CallSignatureConstructor = function(data: number, typeParameterList: TypeParameterListSyntax, parameterList: ParameterListSyntax, typeAnnotation: TypeAnnotationSyntax) { + export var CallSignatureSyntax: CallSignatureConstructor = function(data: number, typeParameterList: TypeParameterListSyntax, parameterList: ParameterListSyntax, typeAnnotation: TypeAnnotationSyntax, semicolonOrCommaToken: ISyntaxToken) { if (data) { this.__data = data; } this.typeParameterList = typeParameterList, this.parameterList = parameterList, this.typeAnnotation = typeAnnotation, + this.semicolonOrCommaToken = semicolonOrCommaToken, typeParameterList && (typeParameterList.parent = this), parameterList.parent = this, - typeAnnotation && (typeAnnotation.parent = this); + typeAnnotation && (typeAnnotation.parent = this), + semicolonOrCommaToken && (semicolonOrCommaToken.parent = this); }; CallSignatureSyntax.prototype.kind = SyntaxKind.CallSignature; - CallSignatureSyntax.prototype.childCount = 3; + CallSignatureSyntax.prototype.childCount = 4; CallSignatureSyntax.prototype.childAt = function(index: number): ISyntaxElement { switch (index) { case 0: return this.typeParameterList; case 1: return this.parameterList; case 2: return this.typeAnnotation; + case 3: return this.semicolonOrCommaToken; } } @@ -598,25 +601,28 @@ module TypeScript { } } - export var IndexSignatureSyntax: IndexSignatureConstructor = function(data: number, openBracketToken: ISyntaxToken, parameters: ISeparatedSyntaxList, closeBracketToken: ISyntaxToken, typeAnnotation: TypeAnnotationSyntax) { + export var IndexSignatureSyntax: IndexSignatureConstructor = function(data: number, openBracketToken: ISyntaxToken, parameters: ISeparatedSyntaxList, closeBracketToken: ISyntaxToken, typeAnnotation: TypeAnnotationSyntax, semicolonOrCommaToken: ISyntaxToken) { if (data) { this.__data = data; } this.openBracketToken = openBracketToken, this.parameters = parameters, this.closeBracketToken = closeBracketToken, this.typeAnnotation = typeAnnotation, + this.semicolonOrCommaToken = semicolonOrCommaToken, openBracketToken.parent = this, parameters.parent = this, closeBracketToken.parent = this, - typeAnnotation && (typeAnnotation.parent = this); + typeAnnotation && (typeAnnotation.parent = this), + semicolonOrCommaToken && (semicolonOrCommaToken.parent = this); }; IndexSignatureSyntax.prototype.kind = SyntaxKind.IndexSignature; - IndexSignatureSyntax.prototype.childCount = 4; + IndexSignatureSyntax.prototype.childCount = 5; IndexSignatureSyntax.prototype.childAt = function(index: number): ISyntaxElement { switch (index) { case 0: return this.openBracketToken; case 1: return this.parameters; case 2: return this.closeBracketToken; case 3: return this.typeAnnotation; + case 4: return this.semicolonOrCommaToken; } } diff --git a/src/services/syntax/syntaxTree.ts b/src/services/syntax/syntaxTree.ts index 40cdf0cdf8d..65e834c8e84 100644 --- a/src/services/syntax/syntaxTree.ts +++ b/src/services/syntax/syntaxTree.ts @@ -147,6 +147,14 @@ module TypeScript { return true; } + public visitCallSignature(node: CallSignatureSyntax): void { + if (this.checkForCommaInsteadOfSemicolon(node.semicolonOrCommaToken)) { + return; + } + + super.visitCallSignature(node); + } + public visitCatchClause(node: CatchClauseSyntax): void { if (this.checkForCatchClauseTypeAnnotation(node) || this.checkForDisallowedEvalOrArguments(node, node.identifier)) { @@ -351,8 +359,17 @@ module TypeScript { return false; } + private checkForCommaInsteadOfSemicolon(commaOrSemicolon: ISyntaxToken) { + if (commaOrSemicolon && commaOrSemicolon.kind === SyntaxKind.CommaToken) { + return this.pushDiagnostic(commaOrSemicolon, DiagnosticCode._0_expected, [SyntaxFacts.getText(SyntaxKind.SemicolonToken)]); + } + + return false; + } + public visitIndexSignature(node: IndexSignatureSyntax): void { - if (this.checkIndexSignatureParameter(node)) { + if (this.checkIndexSignatureParameter(node) || + this.checkForCommaInsteadOfSemicolon(node.semicolonOrCommaToken)) { return; } @@ -553,7 +570,8 @@ module TypeScript { public visitPropertySignature(node: PropertySignatureSyntax): void { if (this.checkForDisallowedTemplatePropertyName(node.propertyName) || - this.checkForDisallowedComputedPropertyName(node.propertyName)) { + this.checkForDisallowedComputedPropertyName(node.propertyName) || + this.checkForCommaInsteadOfSemicolon(node.semicolonOrCommaToken)) { return; } @@ -1486,22 +1504,7 @@ module TypeScript { this.inAmbientDeclaration = savedInAmbientDeclaration; } - private checkListSeparators(list: ISeparatedSyntaxList, kind: SyntaxKind): boolean { - for (var i = 0, n = separatorCount(list); i < n; i++) { - var child = separatorAt(list, i); - if (child.kind !== kind) { - this.pushDiagnostic(child, DiagnosticCode._0_expected, [SyntaxFacts.getText(kind)]); - } - } - - return false; - } - public visitObjectType(node: ObjectTypeSyntax): void { - if (this.checkListSeparators(node.typeMembers, SyntaxKind.SemicolonToken)) { - return; - } - // All code in an object type is implicitly ambient. (i.e. parameters can't have initializer, etc.) var savedInAmbientDeclaration = this.inAmbientDeclaration; this.inAmbientDeclaration = true; diff --git a/src/services/syntax/syntaxWalker.generated.ts b/src/services/syntax/syntaxWalker.generated.ts index b4436d3a9cf..65e77f9fd68 100644 --- a/src/services/syntax/syntaxWalker.generated.ts +++ b/src/services/syntax/syntaxWalker.generated.ts @@ -173,7 +173,6 @@ module TypeScript { public visitIndexMemberDeclaration(node: IndexMemberDeclarationSyntax): void { this.visitList(node.modifiers); visitNodeOrToken(this, node.indexSignature); - this.visitOptionalToken(node.semicolonToken); } public visitGetAccessor(node: GetAccessorSyntax): void { @@ -196,12 +195,14 @@ module TypeScript { visitNodeOrToken(this, node.propertyName); this.visitOptionalToken(node.questionToken); visitNodeOrToken(this, node.typeAnnotation); + this.visitOptionalToken(node.semicolonOrCommaToken); } public visitCallSignature(node: CallSignatureSyntax): void { visitNodeOrToken(this, node.typeParameterList); visitNodeOrToken(this, node.parameterList); visitNodeOrToken(this, node.typeAnnotation); + this.visitOptionalToken(node.semicolonOrCommaToken); } public visitConstructSignature(node: ConstructSignatureSyntax): void { @@ -214,6 +215,7 @@ module TypeScript { this.visitList(node.parameters); this.visitToken(node.closeBracketToken); visitNodeOrToken(this, node.typeAnnotation); + this.visitOptionalToken(node.semicolonOrCommaToken); } public visitMethodSignature(node: MethodSignatureSyntax): void { From aa91aa7f44330793fc092d693f16813bb3506e2d Mon Sep 17 00:00:00 2001 From: Cyrus Najmabadi Date: Fri, 28 Nov 2014 14:28:57 -0800 Subject: [PATCH 109/195] Remove IndexMemberDeclaration, we can just use IndexSignature instead. Conflicts: src/services/syntax/SyntaxGenerator.js.map --- src/services/syntax/SyntaxGenerator.js | 13 ++------ src/services/syntax/SyntaxGenerator.js.map | 4 +++ src/services/syntax/parser.ts | 15 +++------ src/services/syntax/prettyPrinter.ts | 7 +--- src/services/syntax/syntaxGenerator.ts | 13 ++------ .../syntax/syntaxInterfaces.generated.ts | 11 ++----- src/services/syntax/syntaxKind.ts | 1 - .../syntax/syntaxNodes.concrete.generated.ts | 33 ++++++------------- src/services/syntax/syntaxTree.ts | 23 +++++-------- src/services/syntax/syntaxUtilities.ts | 2 +- .../syntax/syntaxVisitor.generated.ts | 2 -- src/services/syntax/syntaxWalker.generated.ts | 6 +--- 12 files changed, 37 insertions(+), 93 deletions(-) diff --git a/src/services/syntax/SyntaxGenerator.js b/src/services/syntax/SyntaxGenerator.js index df3835a02e7..5ed7b5f28d1 100644 --- a/src/services/syntax/SyntaxGenerator.js +++ b/src/services/syntax/SyntaxGenerator.js @@ -1417,8 +1417,9 @@ var definitions = [ { name: 'IndexSignatureSyntax', baseType: 'ISyntaxNode', - interfaces: ['ITypeMemberSyntax'], + interfaces: ['ITypeMemberSyntax', 'IClassElementSyntax'], children: [ + { name: 'modifiers', isList: true, elementType: 'ISyntaxToken' }, { name: 'openBracketToken', isToken: true }, { name: 'parameters', isSeparatedList: true, elementType: 'ParameterSyntax' }, { name: 'closeBracketToken', isToken: true }, @@ -1578,16 +1579,6 @@ var definitions = [ ], isTypeScriptSpecific: true }, - { - name: 'IndexMemberDeclarationSyntax', - baseType: 'ISyntaxNode', - interfaces: ['IClassElementSyntax'], - children: [ - { name: 'modifiers', isList: true, elementType: 'ISyntaxToken' }, - { name: 'indexSignature', type: 'IndexSignatureSyntax' } - ], - isTypeScriptSpecific: true - }, { name: 'ThrowStatementSyntax', baseType: 'ISyntaxNode', diff --git a/src/services/syntax/SyntaxGenerator.js.map b/src/services/syntax/SyntaxGenerator.js.map index de742c8ce5b..18ee19dbf7c 100644 --- a/src/services/syntax/SyntaxGenerator.js.map +++ b/src/services/syntax/SyntaxGenerator.js.map @@ -18,6 +18,7 @@ <<<<<<< HEAD <<<<<<< HEAD <<<<<<< HEAD +<<<<<<< HEAD <<<<<<< Updated upstream {"version":3,"file":"SyntaxGenerator.js","sourceRoot":"","sources":["file:///C:/VSPro_1/src/typescript/public_cyrusn/src/compiler/sys.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/core/errors.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/core/arrayUtilities.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/core/stringUtilities.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/syntax/syntaxKind.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/syntax/syntaxFacts.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/syntax/SyntaxGenerator.ts"],"names":["getWScriptSystem","getWScriptSystem.readFile","getWScriptSystem.writeFile","getNodeSystem","getNodeSystem.readFile","getNodeSystem.writeFile","getNodeSystem.fileChanged","TypeScript","TypeScript.Errors","TypeScript.Errors.constructor","TypeScript.Errors.argument","TypeScript.Errors.argumentOutOfRange","TypeScript.Errors.argumentNull","TypeScript.Errors.abstract","TypeScript.Errors.notYetImplemented","TypeScript.Errors.invalidOperation","TypeScript.ArrayUtilities","TypeScript.ArrayUtilities.constructor","TypeScript.ArrayUtilities.sequenceEquals","TypeScript.ArrayUtilities.contains","TypeScript.ArrayUtilities.distinct","TypeScript.ArrayUtilities.last","TypeScript.ArrayUtilities.lastOrDefault","TypeScript.ArrayUtilities.firstOrDefault","TypeScript.ArrayUtilities.first","TypeScript.ArrayUtilities.sum","TypeScript.ArrayUtilities.select","TypeScript.ArrayUtilities.where","TypeScript.ArrayUtilities.any","TypeScript.ArrayUtilities.all","TypeScript.ArrayUtilities.binarySearch","TypeScript.ArrayUtilities.createArray","TypeScript.ArrayUtilities.grow","TypeScript.ArrayUtilities.copy","TypeScript.ArrayUtilities.indexOf","TypeScript.StringUtilities","TypeScript.StringUtilities.constructor","TypeScript.StringUtilities.isString","TypeScript.StringUtilities.endsWith","TypeScript.StringUtilities.startsWith","TypeScript.StringUtilities.repeat","TypeScript.SyntaxKind","TypeScript.SyntaxFacts","TypeScript.SyntaxFacts.getTokenKind","TypeScript.SyntaxFacts.getText","TypeScript.SyntaxFacts.isAnyKeyword","TypeScript.SyntaxFacts.isAnyPunctuation","TypeScript.SyntaxFacts.isPrefixUnaryExpressionOperatorToken","TypeScript.SyntaxFacts.isBinaryExpressionOperatorToken","TypeScript.SyntaxFacts.isAssignmentOperatorToken","TypeScript.SyntaxFacts.isType","firstKind","getStringWithoutSuffix","getNameWithoutSuffix","getType","camelCase","getSafeName","generateConstructorFunction","generateSyntaxInterfaces","generateSyntaxInterface","generateNodes","isInterface","generateWalker","firstEnumName","groupBy","generateKeywordCondition","min","max","generateUtilities","generateScannerUtilities","syntaxKindName","generateVisitor"],"mappings":"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"} ======= @@ -83,3 +84,6 @@ ======= {"version":3,"file":"SyntaxGenerator.js","sourceRoot":"","sources":["file:///C:/VSPro_1/src/typescript/public_cyrusn/src/compiler/sys.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/core/errors.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/core/arrayUtilities.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/core/stringUtilities.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/syntax/syntaxKind.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/syntax/syntaxFacts.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/syntax/SyntaxGenerator.ts"],"names":["getWScriptSystem","getWScriptSystem.readFile","getWScriptSystem.writeFile","getNodeSystem","getNodeSystem.readFile","getNodeSystem.writeFile","getNodeSystem.fileChanged","TypeScript","TypeScript.Errors","TypeScript.Errors.constructor","TypeScript.Errors.argument","TypeScript.Errors.argumentOutOfRange","TypeScript.Errors.argumentNull","TypeScript.Errors.abstract","TypeScript.Errors.notYetImplemented","TypeScript.Errors.invalidOperation","TypeScript.ArrayUtilities","TypeScript.ArrayUtilities.constructor","TypeScript.ArrayUtilities.sequenceEquals","TypeScript.ArrayUtilities.contains","TypeScript.ArrayUtilities.distinct","TypeScript.ArrayUtilities.last","TypeScript.ArrayUtilities.lastOrDefault","TypeScript.ArrayUtilities.firstOrDefault","TypeScript.ArrayUtilities.first","TypeScript.ArrayUtilities.sum","TypeScript.ArrayUtilities.select","TypeScript.ArrayUtilities.where","TypeScript.ArrayUtilities.any","TypeScript.ArrayUtilities.all","TypeScript.ArrayUtilities.binarySearch","TypeScript.ArrayUtilities.createArray","TypeScript.ArrayUtilities.grow","TypeScript.ArrayUtilities.copy","TypeScript.ArrayUtilities.indexOf","TypeScript.StringUtilities","TypeScript.StringUtilities.constructor","TypeScript.StringUtilities.isString","TypeScript.StringUtilities.endsWith","TypeScript.StringUtilities.startsWith","TypeScript.StringUtilities.repeat","TypeScript.SyntaxKind","TypeScript.SyntaxFacts","TypeScript.SyntaxFacts.getTokenKind","TypeScript.SyntaxFacts.getText","TypeScript.SyntaxFacts.isAnyKeyword","TypeScript.SyntaxFacts.isAnyPunctuation","TypeScript.SyntaxFacts.isPrefixUnaryExpressionOperatorToken","TypeScript.SyntaxFacts.isBinaryExpressionOperatorToken","TypeScript.SyntaxFacts.isAssignmentOperatorToken","TypeScript.SyntaxFacts.isType","getSyntaxKindEnum","firstKind","getStringWithoutSuffix","getNameWithoutSuffix","getType","camelCase","getSafeName","generateConstructorFunction","generateSyntaxInterfaces","generateSyntaxInterface","generateNodes","isInterface","generateWalker","firstEnumName","groupBy","generateKeywordCondition","min","max","generateUtilities","generateScannerUtilities","syntaxKindName","generateVisitor"],"mappings":"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"} >>>>>>> f086395... Simplify how type members are represented in the tree. +======= +{"version":3,"file":"SyntaxGenerator.js","sourceRoot":"","sources":["file:///C:/VSPro_1/src/typescript/public_cyrusn/src/compiler/sys.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/core/errors.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/core/arrayUtilities.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/core/stringUtilities.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/syntax/syntaxKind.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/syntax/syntaxFacts.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/syntax/SyntaxGenerator.ts"],"names":["getWScriptSystem","getWScriptSystem.readFile","getWScriptSystem.writeFile","getNodeSystem","getNodeSystem.readFile","getNodeSystem.writeFile","getNodeSystem.fileChanged","TypeScript","TypeScript.Errors","TypeScript.Errors.constructor","TypeScript.Errors.argument","TypeScript.Errors.argumentOutOfRange","TypeScript.Errors.argumentNull","TypeScript.Errors.abstract","TypeScript.Errors.notYetImplemented","TypeScript.Errors.invalidOperation","TypeScript.ArrayUtilities","TypeScript.ArrayUtilities.constructor","TypeScript.ArrayUtilities.sequenceEquals","TypeScript.ArrayUtilities.contains","TypeScript.ArrayUtilities.distinct","TypeScript.ArrayUtilities.last","TypeScript.ArrayUtilities.lastOrDefault","TypeScript.ArrayUtilities.firstOrDefault","TypeScript.ArrayUtilities.first","TypeScript.ArrayUtilities.sum","TypeScript.ArrayUtilities.select","TypeScript.ArrayUtilities.where","TypeScript.ArrayUtilities.any","TypeScript.ArrayUtilities.all","TypeScript.ArrayUtilities.binarySearch","TypeScript.ArrayUtilities.createArray","TypeScript.ArrayUtilities.grow","TypeScript.ArrayUtilities.copy","TypeScript.ArrayUtilities.indexOf","TypeScript.StringUtilities","TypeScript.StringUtilities.constructor","TypeScript.StringUtilities.isString","TypeScript.StringUtilities.endsWith","TypeScript.StringUtilities.startsWith","TypeScript.StringUtilities.repeat","TypeScript.SyntaxKind","TypeScript.SyntaxFacts","TypeScript.SyntaxFacts.getTokenKind","TypeScript.SyntaxFacts.getText","TypeScript.SyntaxFacts.isAnyKeyword","TypeScript.SyntaxFacts.isAnyPunctuation","TypeScript.SyntaxFacts.isPrefixUnaryExpressionOperatorToken","TypeScript.SyntaxFacts.isBinaryExpressionOperatorToken","TypeScript.SyntaxFacts.isAssignmentOperatorToken","TypeScript.SyntaxFacts.isType","getSyntaxKindEnum","firstKind","getStringWithoutSuffix","getNameWithoutSuffix","getType","camelCase","getSafeName","generateConstructorFunction","generateSyntaxInterfaces","generateSyntaxInterface","generateNodes","isInterface","generateWalker","firstEnumName","groupBy","generateKeywordCondition","min","max","generateUtilities","generateScannerUtilities","syntaxKindName","generateVisitor"],"mappings":"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"} +>>>>>>> 49919b5... Remove IndexMemberDeclaration, we can just use IndexSignature instead. diff --git a/src/services/syntax/parser.ts b/src/services/syntax/parser.ts index 0ebdae96e21..c4b282380d7 100644 --- a/src/services/syntax/parser.ts +++ b/src/services/syntax/parser.ts @@ -1360,8 +1360,8 @@ module TypeScript.Parser { if (isConstructorDeclaration()) { return parseConstructorDeclaration(modifiers); } - else if (isIndexMemberDeclaration()) { - return parseIndexMemberDeclaration(modifiers); + else if (isIndexSignature(/*peekIndex:*/ 0)) { + return parseIndexSignature(modifiers); } else if (isAccessor(inErrorRecovery)) { return parseAccessor(modifiers); @@ -1442,12 +1442,6 @@ module TypeScript.Parser { return isIndexSignature(/*peekIndex:*/ 0); } - function parseIndexMemberDeclaration(modifiers: ISyntaxToken[]): IndexMemberDeclarationSyntax { - return new IndexMemberDeclarationSyntax(contextFlags, - modifiers, - parseIndexSignature()); - } - function isFunctionDeclaration(modifierCount: number): boolean { return peekToken(modifierCount).kind === SyntaxKind.FunctionKeyword; } @@ -1593,7 +1587,7 @@ module TypeScript.Parser { return parseConstructSignature(); } else if (isIndexSignature(/*tokenIndex:*/ 0)) { - return parseIndexSignature(); + return parseIndexSignature(/*modifiers:*/ []); } else if (isMethodOrPropertySignature(inErrorRecovery)) { var propertyName = parsePropertyName(); @@ -1618,8 +1612,9 @@ module TypeScript.Parser { parseCallSignatureWithSemicolonOrComma(/*requireCompleteTypeParameterList:*/ false, /*yieldAndGeneratorParameterContext:*/ false, /*asyncContext:*/ false)); } - function parseIndexSignature(): IndexSignatureSyntax { + function parseIndexSignature(modifiers: ISyntaxToken[]): IndexSignatureSyntax { return new IndexSignatureSyntax(contextFlags, + modifiers, eatToken(SyntaxKind.OpenBracketToken), parseSeparatedSyntaxList(ListParsingState.IndexSignature_Parameters), eatToken(SyntaxKind.CloseBracketToken), diff --git a/src/services/syntax/prettyPrinter.ts b/src/services/syntax/prettyPrinter.ts index 1a71b58458b..9db1eb3f0cb 100644 --- a/src/services/syntax/prettyPrinter.ts +++ b/src/services/syntax/prettyPrinter.ts @@ -600,6 +600,7 @@ module TypeScript.PrettyPrinter { } public visitIndexSignature(node: IndexSignatureSyntax): void { + this.appendSpaceList(node.modifiers); this.appendToken(node.openBracketToken); this.appendSeparatorSpaceList(node.parameters) this.appendToken(node.closeBracketToken); @@ -692,12 +693,6 @@ module TypeScript.PrettyPrinter { this.appendBody(node.body); } - public visitIndexMemberDeclaration(node: IndexMemberDeclarationSyntax): void { - this.appendSpaceList(node.modifiers); - this.ensureSpace(); - visitNodeOrToken(this, node.indexSignature); - } - public visitMemberFunctionDeclaration(node: MemberFunctionDeclarationSyntax): void { this.appendSpaceList(node.modifiers); this.ensureSpace(); diff --git a/src/services/syntax/syntaxGenerator.ts b/src/services/syntax/syntaxGenerator.ts index 78a441dfb79..d662221f286 100644 --- a/src/services/syntax/syntaxGenerator.ts +++ b/src/services/syntax/syntaxGenerator.ts @@ -555,8 +555,9 @@ var definitions:ITypeDefinition[] = [ { name: 'IndexSignatureSyntax', baseType: 'ISyntaxNode', - interfaces: ['ITypeMemberSyntax'], + interfaces: ['ITypeMemberSyntax', 'IClassElementSyntax'], children: [ + { name: 'modifiers', isList: true, elementType: 'ISyntaxToken' }, { name: 'openBracketToken', isToken: true }, { name: 'parameters', isSeparatedList: true, elementType: 'ParameterSyntax' }, { name: 'closeBracketToken', isToken: true }, @@ -717,16 +718,6 @@ var definitions:ITypeDefinition[] = [ ], isTypeScriptSpecific: true }, - { - name: 'IndexMemberDeclarationSyntax', - baseType: 'ISyntaxNode', - interfaces: ['IClassElementSyntax'], - children: [ - { name: 'modifiers', isList: true, elementType: 'ISyntaxToken' }, - { name: 'indexSignature', type: 'IndexSignatureSyntax' } - ], - isTypeScriptSpecific: true - }, { name: 'ThrowStatementSyntax', baseType: 'ISyntaxNode', diff --git a/src/services/syntax/syntaxInterfaces.generated.ts b/src/services/syntax/syntaxInterfaces.generated.ts index f80741e240b..68f463cbf8e 100644 --- a/src/services/syntax/syntaxInterfaces.generated.ts +++ b/src/services/syntax/syntaxInterfaces.generated.ts @@ -174,12 +174,6 @@ module TypeScript { } export interface ConstructorDeclarationConstructor { new (data: number, modifiers: ISyntaxToken[], constructorKeyword: ISyntaxToken, callSignature: CallSignatureSyntax, body: BlockSyntax | ExpressionBody | ISyntaxToken): ConstructorDeclarationSyntax } - export interface IndexMemberDeclarationSyntax extends ISyntaxNode, IClassElementSyntax { - modifiers: ISyntaxToken[]; - indexSignature: IndexSignatureSyntax; - } - export interface IndexMemberDeclarationConstructor { new (data: number, modifiers: ISyntaxToken[], indexSignature: IndexSignatureSyntax): IndexMemberDeclarationSyntax } - export interface GetAccessorSyntax extends ISyntaxNode, IAccessorSyntax { modifiers: ISyntaxToken[]; getKeyword: ISyntaxToken; @@ -220,14 +214,15 @@ module TypeScript { } export interface ConstructSignatureConstructor { new (data: number, newKeyword: ISyntaxToken, callSignature: CallSignatureSyntax): ConstructSignatureSyntax } - export interface IndexSignatureSyntax extends ISyntaxNode, ITypeMemberSyntax { + export interface IndexSignatureSyntax extends ISyntaxNode, ITypeMemberSyntax, IClassElementSyntax { + modifiers: ISyntaxToken[]; openBracketToken: ISyntaxToken; parameters: ISeparatedSyntaxList; closeBracketToken: ISyntaxToken; typeAnnotation: TypeAnnotationSyntax; semicolonOrCommaToken: ISyntaxToken; } - export interface IndexSignatureConstructor { new (data: number, openBracketToken: ISyntaxToken, parameters: ISeparatedSyntaxList, closeBracketToken: ISyntaxToken, typeAnnotation: TypeAnnotationSyntax, semicolonOrCommaToken: ISyntaxToken): IndexSignatureSyntax } + export interface IndexSignatureConstructor { new (data: number, modifiers: ISyntaxToken[], openBracketToken: ISyntaxToken, parameters: ISeparatedSyntaxList, closeBracketToken: ISyntaxToken, typeAnnotation: TypeAnnotationSyntax, semicolonOrCommaToken: ISyntaxToken): IndexSignatureSyntax } export interface MethodSignatureSyntax extends ISyntaxNode, ITypeMemberSyntax { propertyName: IPropertyNameSyntax; diff --git a/src/services/syntax/syntaxKind.ts b/src/services/syntax/syntaxKind.ts index 7863dbe2b69..a3a563e3392 100644 --- a/src/services/syntax/syntaxKind.ts +++ b/src/services/syntax/syntaxKind.ts @@ -182,7 +182,6 @@ module TypeScript { MemberFunctionDeclaration, MemberVariableDeclaration, ConstructorDeclaration, - IndexMemberDeclaration, // ClassElement and PropertyAssignment GetAccessor, diff --git a/src/services/syntax/syntaxNodes.concrete.generated.ts b/src/services/syntax/syntaxNodes.concrete.generated.ts index 7d2072e686d..180d3519177 100644 --- a/src/services/syntax/syntaxNodes.concrete.generated.ts +++ b/src/services/syntax/syntaxNodes.concrete.generated.ts @@ -475,22 +475,6 @@ module TypeScript { } } - export var IndexMemberDeclarationSyntax: IndexMemberDeclarationConstructor = function(data: number, modifiers: ISyntaxToken[], indexSignature: IndexSignatureSyntax) { - if (data) { this.__data = data; } - this.modifiers = modifiers, - this.indexSignature = indexSignature, - modifiers.parent = this, - indexSignature.parent = this; - }; - IndexMemberDeclarationSyntax.prototype.kind = SyntaxKind.IndexMemberDeclaration; - IndexMemberDeclarationSyntax.prototype.childCount = 2; - IndexMemberDeclarationSyntax.prototype.childAt = function(index: number): ISyntaxElement { - switch (index) { - case 0: return this.modifiers; - case 1: return this.indexSignature; - } - } - export var GetAccessorSyntax: GetAccessorConstructor = function(data: number, modifiers: ISyntaxToken[], getKeyword: ISyntaxToken, propertyName: IPropertyNameSyntax, callSignature: CallSignatureSyntax, body: BlockSyntax | ExpressionBody | ISyntaxToken) { if (data) { this.__data = data; } this.modifiers = modifiers, @@ -601,13 +585,15 @@ module TypeScript { } } - export var IndexSignatureSyntax: IndexSignatureConstructor = function(data: number, openBracketToken: ISyntaxToken, parameters: ISeparatedSyntaxList, closeBracketToken: ISyntaxToken, typeAnnotation: TypeAnnotationSyntax, semicolonOrCommaToken: ISyntaxToken) { + export var IndexSignatureSyntax: IndexSignatureConstructor = function(data: number, modifiers: ISyntaxToken[], openBracketToken: ISyntaxToken, parameters: ISeparatedSyntaxList, closeBracketToken: ISyntaxToken, typeAnnotation: TypeAnnotationSyntax, semicolonOrCommaToken: ISyntaxToken) { if (data) { this.__data = data; } + this.modifiers = modifiers, this.openBracketToken = openBracketToken, this.parameters = parameters, this.closeBracketToken = closeBracketToken, this.typeAnnotation = typeAnnotation, this.semicolonOrCommaToken = semicolonOrCommaToken, + modifiers.parent = this, openBracketToken.parent = this, parameters.parent = this, closeBracketToken.parent = this, @@ -615,14 +601,15 @@ module TypeScript { semicolonOrCommaToken && (semicolonOrCommaToken.parent = this); }; IndexSignatureSyntax.prototype.kind = SyntaxKind.IndexSignature; - IndexSignatureSyntax.prototype.childCount = 5; + IndexSignatureSyntax.prototype.childCount = 6; IndexSignatureSyntax.prototype.childAt = function(index: number): ISyntaxElement { switch (index) { - case 0: return this.openBracketToken; - case 1: return this.parameters; - case 2: return this.closeBracketToken; - case 3: return this.typeAnnotation; - case 4: return this.semicolonOrCommaToken; + case 0: return this.modifiers; + case 1: return this.openBracketToken; + case 2: return this.parameters; + case 3: return this.closeBracketToken; + case 4: return this.typeAnnotation; + case 5: return this.semicolonOrCommaToken; } } diff --git a/src/services/syntax/syntaxTree.ts b/src/services/syntax/syntaxTree.ts index 65e834c8e84..99f415ebd78 100644 --- a/src/services/syntax/syntaxTree.ts +++ b/src/services/syntax/syntaxTree.ts @@ -369,7 +369,8 @@ module TypeScript { public visitIndexSignature(node: IndexSignatureSyntax): void { if (this.checkIndexSignatureParameter(node) || - this.checkForCommaInsteadOfSemicolon(node.semicolonOrCommaToken)) { + this.checkForCommaInsteadOfSemicolon(node.semicolonOrCommaToken) || + this.checkIndexSignatureModifiers(node)) { return; } @@ -624,15 +625,7 @@ module TypeScript { return false; } - public visitIndexMemberDeclaration(node: IndexMemberDeclarationSyntax): void { - if (this.checkIndexMemberModifiers(node)) { - return; - } - - super.visitIndexMemberDeclaration(node); - } - - private checkIndexMemberModifiers(node: IndexMemberDeclarationSyntax): boolean { + private checkIndexSignatureModifiers(node: IndexSignatureSyntax): boolean { if (node.modifiers.length > 0) { return this.pushDiagnostic(node.modifiers[0], DiagnosticCode.Modifiers_cannot_appear_here); } @@ -658,7 +651,7 @@ module TypeScript { public visitGetAccessor(node: GetAccessorSyntax): void { if (this.checkForAccessorDeclarationInAmbientContext(node) || this.checkEcmaScriptVersionIsAtLeast(node.getKeyword, ts.ScriptTarget.ES5, DiagnosticCode.Accessors_are_only_available_when_targeting_ECMAScript_5_and_higher) || - this.checkForDisallowedModifiers(node.modifiers) || + this.checkForDisallowedModifiersInBlockOrObjectLitera(node.modifiers) || this.checkClassElementModifiers(node.modifiers) || this.checkForDisallowedAccessorTypeParameters(node.callSignature) || this.checkGetAccessorParameter(node) || @@ -749,7 +742,7 @@ module TypeScript { public visitSetAccessor(node: SetAccessorSyntax): void { if (this.checkForAccessorDeclarationInAmbientContext(node) || this.checkEcmaScriptVersionIsAtLeast(node.setKeyword, ts.ScriptTarget.ES5, DiagnosticCode.Accessors_are_only_available_when_targeting_ECMAScript_5_and_higher) || - this.checkForDisallowedModifiers(node.modifiers) || + this.checkForDisallowedModifiersInBlockOrObjectLitera(node.modifiers) || this.checkClassElementModifiers(node.modifiers) || this.checkForDisallowedAccessorTypeParameters(node.callSignature) || this.checkForDisallowedSetAccessorTypeAnnotation(node) || @@ -1432,7 +1425,7 @@ module TypeScript { return false; } - private checkForDisallowedModifiers(modifiers: ISyntaxToken[]): boolean { + private checkForDisallowedModifiersInBlockOrObjectLitera(modifiers: ISyntaxToken[]): boolean { if (this.inBlock || this.inObjectLiteralExpression) { if (modifiers.length > 0) { return this.pushDiagnostic(modifiers[0], DiagnosticCode.Modifiers_cannot_appear_here); @@ -1444,7 +1437,7 @@ module TypeScript { public visitFunctionDeclaration(node: FunctionDeclarationSyntax): void { if (this.checkForDisallowedDeclareModifier(node.modifiers) || - this.checkForDisallowedModifiers(node.modifiers) || + this.checkForDisallowedModifiersInBlockOrObjectLitera(node.modifiers) || this.checkForRequiredDeclareModifier(node, node.identifier, node.modifiers) || this.checkModuleElementModifiers(node.modifiers) || this.checkForDisallowedEvalOrArguments(node, node.identifier) || @@ -1490,7 +1483,7 @@ module TypeScript { public visitVariableStatement(node: VariableStatementSyntax): void { if (this.checkForDisallowedDeclareModifier(node.modifiers) || - this.checkForDisallowedModifiers(node.modifiers) || + this.checkForDisallowedModifiersInBlockOrObjectLitera(node.modifiers) || this.checkForRequiredDeclareModifier(node, node.variableDeclaration.varConstOrLetKeyword, node.modifiers) || this.checkModuleElementModifiers(node.modifiers) || this.checkForDisallowedAsyncModifier(node.modifiers)) { diff --git a/src/services/syntax/syntaxUtilities.ts b/src/services/syntax/syntaxUtilities.ts index ff47df44d16..03fb6520878 100644 --- a/src/services/syntax/syntaxUtilities.ts +++ b/src/services/syntax/syntaxUtilities.ts @@ -100,7 +100,7 @@ module TypeScript { if (element) { switch (element.kind) { case SyntaxKind.ConstructorDeclaration: - case SyntaxKind.IndexMemberDeclaration: + case SyntaxKind.IndexSignature: case SyntaxKind.MemberFunctionDeclaration: case SyntaxKind.GetAccessor: case SyntaxKind.SetAccessor: diff --git a/src/services/syntax/syntaxVisitor.generated.ts b/src/services/syntax/syntaxVisitor.generated.ts index 88be36c27e1..6a050664d0a 100644 --- a/src/services/syntax/syntaxVisitor.generated.ts +++ b/src/services/syntax/syntaxVisitor.generated.ts @@ -25,7 +25,6 @@ module TypeScript { case SyntaxKind.MemberFunctionDeclaration: return visitor.visitMemberFunctionDeclaration(element); case SyntaxKind.MemberVariableDeclaration: return visitor.visitMemberVariableDeclaration(element); case SyntaxKind.ConstructorDeclaration: return visitor.visitConstructorDeclaration(element); - case SyntaxKind.IndexMemberDeclaration: return visitor.visitIndexMemberDeclaration(element); case SyntaxKind.GetAccessor: return visitor.visitGetAccessor(element); case SyntaxKind.SetAccessor: return visitor.visitSetAccessor(element); case SyntaxKind.PropertySignature: return visitor.visitPropertySignature(element); @@ -126,7 +125,6 @@ module TypeScript { visitMemberFunctionDeclaration(node: MemberFunctionDeclarationSyntax): any; visitMemberVariableDeclaration(node: MemberVariableDeclarationSyntax): any; visitConstructorDeclaration(node: ConstructorDeclarationSyntax): any; - visitIndexMemberDeclaration(node: IndexMemberDeclarationSyntax): any; visitGetAccessor(node: GetAccessorSyntax): any; visitSetAccessor(node: SetAccessorSyntax): any; visitPropertySignature(node: PropertySignatureSyntax): any; diff --git a/src/services/syntax/syntaxWalker.generated.ts b/src/services/syntax/syntaxWalker.generated.ts index 65e77f9fd68..c3e94788dfa 100644 --- a/src/services/syntax/syntaxWalker.generated.ts +++ b/src/services/syntax/syntaxWalker.generated.ts @@ -170,11 +170,6 @@ module TypeScript { visitNodeOrToken(this, node.body); } - public visitIndexMemberDeclaration(node: IndexMemberDeclarationSyntax): void { - this.visitList(node.modifiers); - visitNodeOrToken(this, node.indexSignature); - } - public visitGetAccessor(node: GetAccessorSyntax): void { this.visitList(node.modifiers); this.visitToken(node.getKeyword); @@ -211,6 +206,7 @@ module TypeScript { } public visitIndexSignature(node: IndexSignatureSyntax): void { + this.visitList(node.modifiers); this.visitToken(node.openBracketToken); this.visitList(node.parameters); this.visitToken(node.closeBracketToken); From 29ced53a4d13ee1076afa8039187533233c20d15 Mon Sep 17 00:00:00 2001 From: Cyrus Najmabadi Date: Fri, 28 Nov 2014 14:50:58 -0800 Subject: [PATCH 110/195] Add parser tests for let/const. --- .../reference/VariableDeclaration10_es6.errors.txt | 7 +++++++ .../reference/VariableDeclaration11_es6.errors.txt | 8 ++++++++ .../reference/VariableDeclaration1_es6.errors.txt | 7 +++++++ .../reference/VariableDeclaration2_es6.errors.txt | 7 +++++++ .../reference/VariableDeclaration3_es6.errors.txt | 7 +++++++ .../reference/VariableDeclaration4_es6.errors.txt | 7 +++++++ .../reference/VariableDeclaration5_es6.errors.txt | 7 +++++++ .../reference/VariableDeclaration6_es6.errors.txt | 7 +++++++ .../reference/VariableDeclaration7_es6.errors.txt | 7 +++++++ .../reference/VariableDeclaration8_es6.errors.txt | 7 +++++++ .../reference/VariableDeclaration9_es6.errors.txt | 7 +++++++ .../es6/variableDeclarations/VariableDeclaration10_es6.ts | 1 + .../es6/variableDeclarations/VariableDeclaration11_es6.ts | 2 ++ .../es6/variableDeclarations/VariableDeclaration1_es6.ts | 1 + .../es6/variableDeclarations/VariableDeclaration2_es6.ts | 1 + .../es6/variableDeclarations/VariableDeclaration3_es6.ts | 1 + .../es6/variableDeclarations/VariableDeclaration4_es6.ts | 1 + .../es6/variableDeclarations/VariableDeclaration5_es6.ts | 1 + .../es6/variableDeclarations/VariableDeclaration6_es6.ts | 1 + .../es6/variableDeclarations/VariableDeclaration7_es6.ts | 1 + .../es6/variableDeclarations/VariableDeclaration8_es6.ts | 1 + .../es6/variableDeclarations/VariableDeclaration9_es6.ts | 1 + 22 files changed, 90 insertions(+) create mode 100644 tests/baselines/reference/VariableDeclaration10_es6.errors.txt create mode 100644 tests/baselines/reference/VariableDeclaration11_es6.errors.txt create mode 100644 tests/baselines/reference/VariableDeclaration1_es6.errors.txt create mode 100644 tests/baselines/reference/VariableDeclaration2_es6.errors.txt create mode 100644 tests/baselines/reference/VariableDeclaration3_es6.errors.txt create mode 100644 tests/baselines/reference/VariableDeclaration4_es6.errors.txt create mode 100644 tests/baselines/reference/VariableDeclaration5_es6.errors.txt create mode 100644 tests/baselines/reference/VariableDeclaration6_es6.errors.txt create mode 100644 tests/baselines/reference/VariableDeclaration7_es6.errors.txt create mode 100644 tests/baselines/reference/VariableDeclaration8_es6.errors.txt create mode 100644 tests/baselines/reference/VariableDeclaration9_es6.errors.txt create mode 100644 tests/cases/conformance/es6/variableDeclarations/VariableDeclaration10_es6.ts create mode 100644 tests/cases/conformance/es6/variableDeclarations/VariableDeclaration11_es6.ts create mode 100644 tests/cases/conformance/es6/variableDeclarations/VariableDeclaration1_es6.ts create mode 100644 tests/cases/conformance/es6/variableDeclarations/VariableDeclaration2_es6.ts create mode 100644 tests/cases/conformance/es6/variableDeclarations/VariableDeclaration3_es6.ts create mode 100644 tests/cases/conformance/es6/variableDeclarations/VariableDeclaration4_es6.ts create mode 100644 tests/cases/conformance/es6/variableDeclarations/VariableDeclaration5_es6.ts create mode 100644 tests/cases/conformance/es6/variableDeclarations/VariableDeclaration6_es6.ts create mode 100644 tests/cases/conformance/es6/variableDeclarations/VariableDeclaration7_es6.ts create mode 100644 tests/cases/conformance/es6/variableDeclarations/VariableDeclaration8_es6.ts create mode 100644 tests/cases/conformance/es6/variableDeclarations/VariableDeclaration9_es6.ts diff --git a/tests/baselines/reference/VariableDeclaration10_es6.errors.txt b/tests/baselines/reference/VariableDeclaration10_es6.errors.txt new file mode 100644 index 00000000000..91c071903c4 --- /dev/null +++ b/tests/baselines/reference/VariableDeclaration10_es6.errors.txt @@ -0,0 +1,7 @@ +tests/cases/conformance/es6/variableDeclarations/VariableDeclaration10_es6.ts(1,5): error TS1153: 'let' declarations are only available when targeting ECMAScript 6 and higher. + + +==== tests/cases/conformance/es6/variableDeclarations/VariableDeclaration10_es6.ts (1 errors) ==== + let a: number = 1 + ~ +!!! error TS1153: 'let' declarations are only available when targeting ECMAScript 6 and higher. \ No newline at end of file diff --git a/tests/baselines/reference/VariableDeclaration11_es6.errors.txt b/tests/baselines/reference/VariableDeclaration11_es6.errors.txt new file mode 100644 index 00000000000..8c0ef5f8690 --- /dev/null +++ b/tests/baselines/reference/VariableDeclaration11_es6.errors.txt @@ -0,0 +1,8 @@ +tests/cases/conformance/es6/variableDeclarations/VariableDeclaration11_es6.ts(2,4): error TS1123: Variable declaration list cannot be empty. + + +==== tests/cases/conformance/es6/variableDeclarations/VariableDeclaration11_es6.ts (1 errors) ==== + "use strict"; + let + +!!! error TS1123: Variable declaration list cannot be empty. \ No newline at end of file diff --git a/tests/baselines/reference/VariableDeclaration1_es6.errors.txt b/tests/baselines/reference/VariableDeclaration1_es6.errors.txt new file mode 100644 index 00000000000..f4413e151c1 --- /dev/null +++ b/tests/baselines/reference/VariableDeclaration1_es6.errors.txt @@ -0,0 +1,7 @@ +tests/cases/conformance/es6/variableDeclarations/VariableDeclaration1_es6.ts(1,6): error TS1123: Variable declaration list cannot be empty. + + +==== tests/cases/conformance/es6/variableDeclarations/VariableDeclaration1_es6.ts (1 errors) ==== + const + +!!! error TS1123: Variable declaration list cannot be empty. \ No newline at end of file diff --git a/tests/baselines/reference/VariableDeclaration2_es6.errors.txt b/tests/baselines/reference/VariableDeclaration2_es6.errors.txt new file mode 100644 index 00000000000..362b68dbb35 --- /dev/null +++ b/tests/baselines/reference/VariableDeclaration2_es6.errors.txt @@ -0,0 +1,7 @@ +tests/cases/conformance/es6/variableDeclarations/VariableDeclaration2_es6.ts(1,7): error TS1154: 'const' declarations are only available when targeting ECMAScript 6 and higher. + + +==== tests/cases/conformance/es6/variableDeclarations/VariableDeclaration2_es6.ts (1 errors) ==== + const a + ~ +!!! error TS1154: 'const' declarations are only available when targeting ECMAScript 6 and higher. \ No newline at end of file diff --git a/tests/baselines/reference/VariableDeclaration3_es6.errors.txt b/tests/baselines/reference/VariableDeclaration3_es6.errors.txt new file mode 100644 index 00000000000..e563c4f3ea7 --- /dev/null +++ b/tests/baselines/reference/VariableDeclaration3_es6.errors.txt @@ -0,0 +1,7 @@ +tests/cases/conformance/es6/variableDeclarations/VariableDeclaration3_es6.ts(1,7): error TS1154: 'const' declarations are only available when targeting ECMAScript 6 and higher. + + +==== tests/cases/conformance/es6/variableDeclarations/VariableDeclaration3_es6.ts (1 errors) ==== + const a = 1 + ~ +!!! error TS1154: 'const' declarations are only available when targeting ECMAScript 6 and higher. \ No newline at end of file diff --git a/tests/baselines/reference/VariableDeclaration4_es6.errors.txt b/tests/baselines/reference/VariableDeclaration4_es6.errors.txt new file mode 100644 index 00000000000..ae035825312 --- /dev/null +++ b/tests/baselines/reference/VariableDeclaration4_es6.errors.txt @@ -0,0 +1,7 @@ +tests/cases/conformance/es6/variableDeclarations/VariableDeclaration4_es6.ts(1,7): error TS1154: 'const' declarations are only available when targeting ECMAScript 6 and higher. + + +==== tests/cases/conformance/es6/variableDeclarations/VariableDeclaration4_es6.ts (1 errors) ==== + const a: number + ~ +!!! error TS1154: 'const' declarations are only available when targeting ECMAScript 6 and higher. \ No newline at end of file diff --git a/tests/baselines/reference/VariableDeclaration5_es6.errors.txt b/tests/baselines/reference/VariableDeclaration5_es6.errors.txt new file mode 100644 index 00000000000..e55f5a26544 --- /dev/null +++ b/tests/baselines/reference/VariableDeclaration5_es6.errors.txt @@ -0,0 +1,7 @@ +tests/cases/conformance/es6/variableDeclarations/VariableDeclaration5_es6.ts(1,7): error TS1154: 'const' declarations are only available when targeting ECMAScript 6 and higher. + + +==== tests/cases/conformance/es6/variableDeclarations/VariableDeclaration5_es6.ts (1 errors) ==== + const a: number = 1 + ~ +!!! error TS1154: 'const' declarations are only available when targeting ECMAScript 6 and higher. \ No newline at end of file diff --git a/tests/baselines/reference/VariableDeclaration6_es6.errors.txt b/tests/baselines/reference/VariableDeclaration6_es6.errors.txt new file mode 100644 index 00000000000..62172973364 --- /dev/null +++ b/tests/baselines/reference/VariableDeclaration6_es6.errors.txt @@ -0,0 +1,7 @@ +tests/cases/conformance/es6/variableDeclarations/VariableDeclaration6_es6.ts(1,4): error TS1123: Variable declaration list cannot be empty. + + +==== tests/cases/conformance/es6/variableDeclarations/VariableDeclaration6_es6.ts (1 errors) ==== + let + +!!! error TS1123: Variable declaration list cannot be empty. \ No newline at end of file diff --git a/tests/baselines/reference/VariableDeclaration7_es6.errors.txt b/tests/baselines/reference/VariableDeclaration7_es6.errors.txt new file mode 100644 index 00000000000..5de31099e5b --- /dev/null +++ b/tests/baselines/reference/VariableDeclaration7_es6.errors.txt @@ -0,0 +1,7 @@ +tests/cases/conformance/es6/variableDeclarations/VariableDeclaration7_es6.ts(1,5): error TS1153: 'let' declarations are only available when targeting ECMAScript 6 and higher. + + +==== tests/cases/conformance/es6/variableDeclarations/VariableDeclaration7_es6.ts (1 errors) ==== + let a + ~ +!!! error TS1153: 'let' declarations are only available when targeting ECMAScript 6 and higher. \ No newline at end of file diff --git a/tests/baselines/reference/VariableDeclaration8_es6.errors.txt b/tests/baselines/reference/VariableDeclaration8_es6.errors.txt new file mode 100644 index 00000000000..5409c6657c1 --- /dev/null +++ b/tests/baselines/reference/VariableDeclaration8_es6.errors.txt @@ -0,0 +1,7 @@ +tests/cases/conformance/es6/variableDeclarations/VariableDeclaration8_es6.ts(1,5): error TS1153: 'let' declarations are only available when targeting ECMAScript 6 and higher. + + +==== tests/cases/conformance/es6/variableDeclarations/VariableDeclaration8_es6.ts (1 errors) ==== + let a = 1 + ~ +!!! error TS1153: 'let' declarations are only available when targeting ECMAScript 6 and higher. \ No newline at end of file diff --git a/tests/baselines/reference/VariableDeclaration9_es6.errors.txt b/tests/baselines/reference/VariableDeclaration9_es6.errors.txt new file mode 100644 index 00000000000..0a2a25858bb --- /dev/null +++ b/tests/baselines/reference/VariableDeclaration9_es6.errors.txt @@ -0,0 +1,7 @@ +tests/cases/conformance/es6/variableDeclarations/VariableDeclaration9_es6.ts(1,5): error TS1153: 'let' declarations are only available when targeting ECMAScript 6 and higher. + + +==== tests/cases/conformance/es6/variableDeclarations/VariableDeclaration9_es6.ts (1 errors) ==== + let a: number + ~ +!!! error TS1153: 'let' declarations are only available when targeting ECMAScript 6 and higher. \ No newline at end of file diff --git a/tests/cases/conformance/es6/variableDeclarations/VariableDeclaration10_es6.ts b/tests/cases/conformance/es6/variableDeclarations/VariableDeclaration10_es6.ts new file mode 100644 index 00000000000..2b6e9657ef1 --- /dev/null +++ b/tests/cases/conformance/es6/variableDeclarations/VariableDeclaration10_es6.ts @@ -0,0 +1 @@ +let a: number = 1 \ No newline at end of file diff --git a/tests/cases/conformance/es6/variableDeclarations/VariableDeclaration11_es6.ts b/tests/cases/conformance/es6/variableDeclarations/VariableDeclaration11_es6.ts new file mode 100644 index 00000000000..aca60708232 --- /dev/null +++ b/tests/cases/conformance/es6/variableDeclarations/VariableDeclaration11_es6.ts @@ -0,0 +1,2 @@ +"use strict"; +let \ No newline at end of file diff --git a/tests/cases/conformance/es6/variableDeclarations/VariableDeclaration1_es6.ts b/tests/cases/conformance/es6/variableDeclarations/VariableDeclaration1_es6.ts new file mode 100644 index 00000000000..8baacf4ea54 --- /dev/null +++ b/tests/cases/conformance/es6/variableDeclarations/VariableDeclaration1_es6.ts @@ -0,0 +1 @@ +const \ No newline at end of file diff --git a/tests/cases/conformance/es6/variableDeclarations/VariableDeclaration2_es6.ts b/tests/cases/conformance/es6/variableDeclarations/VariableDeclaration2_es6.ts new file mode 100644 index 00000000000..06871c9a45c --- /dev/null +++ b/tests/cases/conformance/es6/variableDeclarations/VariableDeclaration2_es6.ts @@ -0,0 +1 @@ +const a \ No newline at end of file diff --git a/tests/cases/conformance/es6/variableDeclarations/VariableDeclaration3_es6.ts b/tests/cases/conformance/es6/variableDeclarations/VariableDeclaration3_es6.ts new file mode 100644 index 00000000000..6779cd775c0 --- /dev/null +++ b/tests/cases/conformance/es6/variableDeclarations/VariableDeclaration3_es6.ts @@ -0,0 +1 @@ +const a = 1 \ No newline at end of file diff --git a/tests/cases/conformance/es6/variableDeclarations/VariableDeclaration4_es6.ts b/tests/cases/conformance/es6/variableDeclarations/VariableDeclaration4_es6.ts new file mode 100644 index 00000000000..f96229b7eaf --- /dev/null +++ b/tests/cases/conformance/es6/variableDeclarations/VariableDeclaration4_es6.ts @@ -0,0 +1 @@ +const a: number \ No newline at end of file diff --git a/tests/cases/conformance/es6/variableDeclarations/VariableDeclaration5_es6.ts b/tests/cases/conformance/es6/variableDeclarations/VariableDeclaration5_es6.ts new file mode 100644 index 00000000000..4a05e895a3c --- /dev/null +++ b/tests/cases/conformance/es6/variableDeclarations/VariableDeclaration5_es6.ts @@ -0,0 +1 @@ +const a: number = 1 \ No newline at end of file diff --git a/tests/cases/conformance/es6/variableDeclarations/VariableDeclaration6_es6.ts b/tests/cases/conformance/es6/variableDeclarations/VariableDeclaration6_es6.ts new file mode 100644 index 00000000000..33ae002d859 --- /dev/null +++ b/tests/cases/conformance/es6/variableDeclarations/VariableDeclaration6_es6.ts @@ -0,0 +1 @@ +let \ No newline at end of file diff --git a/tests/cases/conformance/es6/variableDeclarations/VariableDeclaration7_es6.ts b/tests/cases/conformance/es6/variableDeclarations/VariableDeclaration7_es6.ts new file mode 100644 index 00000000000..7350ac02e70 --- /dev/null +++ b/tests/cases/conformance/es6/variableDeclarations/VariableDeclaration7_es6.ts @@ -0,0 +1 @@ +let a \ No newline at end of file diff --git a/tests/cases/conformance/es6/variableDeclarations/VariableDeclaration8_es6.ts b/tests/cases/conformance/es6/variableDeclarations/VariableDeclaration8_es6.ts new file mode 100644 index 00000000000..067c6699cfd --- /dev/null +++ b/tests/cases/conformance/es6/variableDeclarations/VariableDeclaration8_es6.ts @@ -0,0 +1 @@ +let a = 1 \ No newline at end of file diff --git a/tests/cases/conformance/es6/variableDeclarations/VariableDeclaration9_es6.ts b/tests/cases/conformance/es6/variableDeclarations/VariableDeclaration9_es6.ts new file mode 100644 index 00000000000..aab3d49c18c --- /dev/null +++ b/tests/cases/conformance/es6/variableDeclarations/VariableDeclaration9_es6.ts @@ -0,0 +1 @@ +let a: number \ No newline at end of file From 114987eef1cb9b6d99ef5be4e2030334d244cc9d Mon Sep 17 00:00:00 2001 From: Cyrus Najmabadi Date: Sat, 29 Nov 2014 12:51:06 -0800 Subject: [PATCH 111/195] Rename method, also remove unnecessary loop when parsing conditional expressions. --- src/compiler/parser.ts | 35 ++++++++++++++++++----------------- 1 file changed, 18 insertions(+), 17 deletions(-) diff --git a/src/compiler/parser.ts b/src/compiler/parser.ts index c677f0916c8..ee7e3b8c5a1 100644 --- a/src/compiler/parser.ts +++ b/src/compiler/parser.ts @@ -2184,9 +2184,9 @@ module ts { // AssignmentExpression[in] // Expression[in] , AssignmentExpression[in] - var expr = parseAssignmentExpression(); + var expr = parseAssignmentExpressionOrHigher(); while (parseOptional(SyntaxKind.CommaToken)) { - expr = makeBinaryExpression(expr, SyntaxKind.CommaToken, parseAssignmentExpression()); + expr = makeBinaryExpression(expr, SyntaxKind.CommaToken, parseAssignmentExpressionOrHigher()); } return expr; } @@ -2212,10 +2212,10 @@ module ts { // = AssignmentExpression[?In, ?Yield] parseExpected(SyntaxKind.EqualsToken); - return parseAssignmentExpression(); + return parseAssignmentExpressionOrHigher(); } - function parseAssignmentExpression(): Expression { + function parseAssignmentExpressionOrHigher(): Expression { // AssignmentExpression[in,yield]: // 1) ConditionalExpression[?in,?yield] // 2) LeftHandSideExpression = AssignmentExpression[?in,?yield] @@ -2257,7 +2257,7 @@ module ts { if (isLeftHandSideExpression(expr) && isAssignmentOperator(token)) { var operator = token; nextToken(); - return makeBinaryExpression(expr, operator, parseAssignmentExpression()); + return makeBinaryExpression(expr, operator, parseAssignmentExpressionOrHigher()); } // otherwise this was production '1'. Return whatever we parsed so far. @@ -2313,7 +2313,7 @@ module ts { if (!scanner.hasPrecedingLineBreak() && (token === SyntaxKind.AsteriskToken || isStartOfExpression())) { node.asteriskToken = parseOptionalToken(SyntaxKind.AsteriskToken); - node.expression = parseAssignmentExpression(); + node.expression = parseAssignmentExpressionOrHigher(); return finishNode(node); } else { @@ -2499,7 +2499,7 @@ module ts { body = parseFunctionBlock(/*allowYield:*/ false, /* ignoreMissingOpenBrace */ true); } else { - body = parseAssignmentExpression(); + body = parseAssignmentExpressionOrHigher(); } return makeFunctionExpression(SyntaxKind.ArrowFunction, pos, /*asteriskToken:*/ undefined, /*name:*/ undefined, sig, body); @@ -2510,15 +2510,16 @@ module ts { // we do not that for the 'whenFalse' part. var expr = parseBinaryOperators(parseUnaryExpression(), /*minPrecedence:*/ 0); - while (parseOptional(SyntaxKind.QuestionToken)) { - var node = createNode(SyntaxKind.ConditionalExpression, expr.pos); - node.condition = expr; - node.whenTrue = allowInAnd(parseAssignmentExpression); - parseExpected(SyntaxKind.ColonToken); - node.whenFalse = parseAssignmentExpression(); - expr = finishNode(node); + if (!parseOptional(SyntaxKind.QuestionToken)) { + return expr; } - return expr; + + var node = createNode(SyntaxKind.ConditionalExpression, expr.pos); + node.condition = expr; + node.whenTrue = allowInAnd(parseAssignmentExpressionOrHigher); + parseExpected(SyntaxKind.ColonToken); + node.whenFalse = parseAssignmentExpressionOrHigher(); + return finishNode(node); } function parseBinaryOperators(expr: Expression, minPrecedence: number): Expression { @@ -2816,7 +2817,7 @@ module ts { function parseAssignmentExpressionOrOmittedExpression(): Expression { return token === SyntaxKind.CommaToken ? createNode(SyntaxKind.OmittedExpression) - : parseAssignmentExpression(); + : parseAssignmentExpressionOrHigher(); } function parseArrayLiteralElement(): Expression { @@ -2875,7 +2876,7 @@ module ts { node = createNode(SyntaxKind.PropertyAssignment, nodePos); node.name = propertyName; parseExpected(SyntaxKind.ColonToken); - (node).initializer = allowInAnd(parseAssignmentExpression); + (node).initializer = allowInAnd(parseAssignmentExpressionOrHigher); } node.flags = flags; From e37f4cec3684878a41630eb8f26beb88f1aa76b1 Mon Sep 17 00:00:00 2001 From: Cyrus Najmabadi Date: Sat, 29 Nov 2014 13:07:30 -0800 Subject: [PATCH 112/195] Add clarifying comments to parsing binary expressions. --- src/compiler/parser.ts | 74 +++++++++++++++++++++++++++++------------- 1 file changed, 51 insertions(+), 23 deletions(-) diff --git a/src/compiler/parser.ts b/src/compiler/parser.ts index ee7e3b8c5a1..7b30b9884e4 100644 --- a/src/compiler/parser.ts +++ b/src/compiler/parser.ts @@ -2240,9 +2240,16 @@ module ts { return arrowExpression; } - // Now try to handle the rest of the cases. First, see if we can parse out up to and - // including a conditional expression. - var expr = parseConditionalExpression(); + // Now try to see if we're in production '1', '2' or '3'. A conditional expression can + // start with a LogicalOrExpression, while the assignment productions can only start with + // LeftHandSideExpressions. + // + // So, first, we try to just parse out a BinaryExpression. If we get something that is a + // LeftHandSide or higher, then we can try to parse out the assignment expression part. + // Otherwise, we try to parse out the conditional expression bit. We want to allow any + // binary expression here, so we pass in the 'lowest' precedence here so that it matches + // and consumes anything. + var expr = parseBinaryExpressionOrHigher(/*precedence:*/ 0); // To avoid a look-ahead, we did not handle the case of an arrow function with a single un-parenthesized // parameter ('x => ...') above. We handle it here by checking if the parsed expression was a single @@ -2254,14 +2261,17 @@ module ts { // Now see if we might be in cases '2' or '3'. // If the expression was a LHS expression, and we have an assignment operator, then // we're in '2' or '3'. Consume the assignment and return. - if (isLeftHandSideExpression(expr) && isAssignmentOperator(token)) { + // + // Note: we call reScanGreaterToken so that we get an appropriately merged token + // for cases like > > = becoming >>= + if (isLeftHandSideExpression(expr) && isAssignmentOperator(reScanGreaterToken())) { var operator = token; nextToken(); return makeBinaryExpression(expr, operator, parseAssignmentExpressionOrHigher()); } - // otherwise this was production '1'. Return whatever we parsed so far. - return expr; + // It wasn't an assignment or a lambda. This is a conditional expression: + return parseConditionalExpressionRest(expr); } function isYieldExpression(): boolean { @@ -2505,35 +2515,50 @@ module ts { return makeFunctionExpression(SyntaxKind.ArrowFunction, pos, /*asteriskToken:*/ undefined, /*name:*/ undefined, sig, body); } - function parseConditionalExpression(): Expression { - // Note: we explicitly 'allowIn' in the whenTrue part of the condition expression, and - // we do not that for the 'whenFalse' part. - - var expr = parseBinaryOperators(parseUnaryExpression(), /*minPrecedence:*/ 0); + function parseConditionalExpressionRest(leftOperand: Expression): Expression { + // Note: we are passed in an expression which was produced from parseBinaryExpressionOrHigher. if (!parseOptional(SyntaxKind.QuestionToken)) { - return expr; + return leftOperand; } - var node = createNode(SyntaxKind.ConditionalExpression, expr.pos); - node.condition = expr; + // Note: we explicitly 'allowIn' in the whenTrue part of the condition expression, and + // we do not that for the 'whenFalse' part. + var node = createNode(SyntaxKind.ConditionalExpression, leftOperand.pos); + node.condition = leftOperand; node.whenTrue = allowInAnd(parseAssignmentExpressionOrHigher); parseExpected(SyntaxKind.ColonToken); node.whenFalse = parseAssignmentExpressionOrHigher(); return finishNode(node); } - function parseBinaryOperators(expr: Expression, minPrecedence: number): Expression { + function parseBinaryExpressionOrHigher(precedence: number): Expression { + var leftOperand = parseUnaryExpression(); + return parseBinaryExpressionRest(precedence, leftOperand); + } + + function parseBinaryExpressionRest(precedence: number, leftOperand: Expression): Expression { while (true) { + // We either have a binary operator here, or we're finished. We call + // reScanGreaterToken so that we merge token sequences like > and = into >= + reScanGreaterToken(); - var precedence = getOperatorPrecedence(); - if (precedence && precedence > minPrecedence && (!inDisallowInContext() || token !== SyntaxKind.InKeyword)) { - var operator = token; - nextToken(); - expr = makeBinaryExpression(expr, operator, parseBinaryOperators(parseUnaryExpression(), precedence)); - continue; + var newPrecedence = getOperatorPrecedence(); + + // Check the precedence to see if we should "take" this operator + if (newPrecedence <= precedence) { + break; } - return expr; + + if (token === SyntaxKind.InKeyword && inDisallowInContext()) { + break; + } + + var operator = token; + nextToken(); + leftOperand = makeBinaryExpression(leftOperand, operator, parseBinaryExpressionOrHigher(newPrecedence)); } + + return leftOperand; } function getOperatorPrecedence(): number { @@ -2572,7 +2597,10 @@ module ts { case SyntaxKind.PercentToken: return 10; } - return undefined; + + // -1 is lower than all other precedences. Returning it will cause binary expression + // parsing to stop. + return -1; } function makeBinaryExpression(left: Expression, operator: SyntaxKind, right: Expression): BinaryExpression { From 6a4927cef7348bb415c5e25b8577c973052a414f Mon Sep 17 00:00:00 2001 From: Cyrus Najmabadi Date: Sat, 29 Nov 2014 13:43:30 -0800 Subject: [PATCH 113/195] Provide unique nodes for void/typeof/delete expressions. --- src/compiler/checker.ts | 52 ++++++++++++++++++-------- src/compiler/emitter.ts | 37 ++++++++++++++++-- src/compiler/parser.ts | 64 +++++++++++++++++++++++--------- src/compiler/types.ts | 17 ++++++++- src/harness/typeWriter.ts | 5 ++- src/services/formatting/rules.ts | 2 +- src/services/services.ts | 4 +- 7 files changed, 140 insertions(+), 41 deletions(-) diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index 6afbbcdd510..ded46d3f19b 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -4333,7 +4333,10 @@ module ts { case SyntaxKind.NewExpression: case SyntaxKind.TypeAssertion: case SyntaxKind.ParenExpression: - case SyntaxKind.PrefixOperator: + case SyntaxKind.PrefixUnaryExpression: + case SyntaxKind.DeleteExpression: + case SyntaxKind.TypeOfExpression: + case SyntaxKind.VoidExpression: case SyntaxKind.PostfixOperator: case SyntaxKind.ConditionalExpression: case SyntaxKind.Block: @@ -4416,12 +4419,12 @@ module ts { return type; function narrowTypeByEquality(type: Type, expr: BinaryExpression, assumeTrue: boolean): Type { - var left = expr.left; + var left = expr.left; var right = expr.right; // Check that we have 'typeof ' on the left and string literal on the right - if (left.kind !== SyntaxKind.PrefixOperator || left.operator !== SyntaxKind.TypeOfKeyword || - left.operand.kind !== SyntaxKind.Identifier || right.kind !== SyntaxKind.StringLiteral || - getResolvedSymbol(left.operand) !== symbol) { + if (left.kind !== SyntaxKind.TypeOfExpression || + left.expression.kind !== SyntaxKind.Identifier || right.kind !== SyntaxKind.StringLiteral || + getResolvedSymbol(left.expression) !== symbol) { return type; } var t = right.text; @@ -4510,7 +4513,7 @@ module ts { return narrowTypeByInstanceof(type, expr, assumeTrue); } break; - case SyntaxKind.PrefixOperator: + case SyntaxKind.PrefixUnaryExpression: if ((expr).operator === SyntaxKind.ExclamationToken) { return narrowType(type, (expr).operand, !assumeTrue); } @@ -6211,6 +6214,21 @@ module ts { return true; } + function checkDeleteExpression(node: DeleteExpression): Type { + var operandType = checkExpression(node.expression); + return booleanType; + } + + function checkTypeOfExpression(node: TypeOfExpression): Type { + var operandType = checkExpression(node.expression); + return stringType; + } + + function checkVoidExpression(node: VoidExpression): Type { + var operandType = checkExpression(node.expression); + return undefinedType; + } + function checkPrefixExpression(node: UnaryExpression): Type { var operandType = checkExpression(node.operand); switch (node.operator) { @@ -6219,12 +6237,7 @@ module ts { case SyntaxKind.TildeToken: return numberType; case SyntaxKind.ExclamationToken: - case SyntaxKind.DeleteKeyword: return booleanType; - case SyntaxKind.TypeOfKeyword: - return stringType; - case SyntaxKind.VoidKeyword: - return undefinedType; case SyntaxKind.PlusPlusToken: case SyntaxKind.MinusMinusToken: var ok = checkArithmeticOperandType(node.operand, operandType, Diagnostics.An_arithmetic_operand_must_be_of_type_any_number_or_an_enum_type); @@ -6566,7 +6579,13 @@ module ts { case SyntaxKind.FunctionExpression: case SyntaxKind.ArrowFunction: return checkFunctionExpression(node, contextualMapper); - case SyntaxKind.PrefixOperator: + case SyntaxKind.TypeOfExpression: + return checkTypeOfExpression(node); + case SyntaxKind.DeleteExpression: + return checkDeleteExpression(node); + case SyntaxKind.VoidExpression: + return checkVoidExpression(node); + case SyntaxKind.PrefixUnaryExpression: return checkPrefixExpression(node); case SyntaxKind.PostfixOperator: return checkPostfixExpression(node); @@ -8077,7 +8096,7 @@ module ts { function evalConstant(e: Node): number { switch (e.kind) { - case SyntaxKind.PrefixOperator: + case SyntaxKind.PrefixUnaryExpression: var value = evalConstant((e).operand); if (value === undefined) { return undefined; @@ -8478,7 +8497,10 @@ module ts { case SyntaxKind.TaggedTemplateExpression: case SyntaxKind.TypeAssertion: case SyntaxKind.ParenExpression: - case SyntaxKind.PrefixOperator: + case SyntaxKind.TypeOfExpression: + case SyntaxKind.VoidExpression: + case SyntaxKind.DeleteExpression: + case SyntaxKind.PrefixUnaryExpression: case SyntaxKind.PostfixOperator: case SyntaxKind.BinaryExpression: case SyntaxKind.ConditionalExpression: @@ -8705,7 +8727,7 @@ module ts { case SyntaxKind.BooleanKeyword: return true; case SyntaxKind.VoidKeyword: - return node.parent.kind !== SyntaxKind.PrefixOperator; + return node.parent.kind !== SyntaxKind.VoidExpression; case SyntaxKind.StringLiteral: // Specialized signatures can have string literals as their parameters' type names return node.parent.kind === SyntaxKind.Parameter; diff --git a/src/compiler/emitter.ts b/src/compiler/emitter.ts index 2f573e57af7..a3315bf35c5 100644 --- a/src/compiler/emitter.ts +++ b/src/compiler/emitter.ts @@ -2339,7 +2339,12 @@ module ts { // (typeof A).toString() should be emitted as (typeof A).toString() and not typeof A.toString() // new (A()) should be emitted as new (A()) and not new A() // (function foo() { })() should be emitted as an IIF (function foo(){})() and not declaration function foo(){} () - if (operand.kind !== SyntaxKind.PrefixOperator && operand.kind !== SyntaxKind.PostfixOperator && operand.kind !== SyntaxKind.NewExpression && + if (operand.kind !== SyntaxKind.PrefixUnaryExpression && + operand.kind !== SyntaxKind.VoidExpression && + operand.kind !== SyntaxKind.TypeOfExpression && + operand.kind !== SyntaxKind.DeleteExpression && + operand.kind !== SyntaxKind.PostfixOperator && + operand.kind !== SyntaxKind.NewExpression && !(operand.kind === SyntaxKind.CallExpression && node.parent.kind === SyntaxKind.NewExpression) && !(operand.kind === SyntaxKind.FunctionExpression && node.parent.kind === SyntaxKind.CallExpression)) { emit(operand); @@ -2351,8 +2356,26 @@ module ts { write(")"); } + function emitDeleteExpression(node: DeleteExpression) { + write(tokenToString(SyntaxKind.DeleteKeyword)); + write(" "); + emit(node.expression); + } + + function emitVoidExpression(node: VoidExpression) { + write(tokenToString(SyntaxKind.VoidKeyword)); + write(" "); + emit(node.expression); + } + + function emitTypeOfExpression(node: TypeOfExpression) { + write(tokenToString(SyntaxKind.TypeOfKeyword)); + write(" "); + emit(node.expression); + } + function emitUnaryExpression(node: UnaryExpression) { - if (node.kind === SyntaxKind.PrefixOperator) { + if (node.kind === SyntaxKind.PrefixUnaryExpression) { write(tokenToString(node.operator)); } // In some cases, we need to emit a space between the operator and the operand. One obvious case @@ -2370,7 +2393,7 @@ module ts { if (node.operator >= SyntaxKind.Identifier) { write(" "); } - else if (node.kind === SyntaxKind.PrefixOperator && node.operand.kind === SyntaxKind.PrefixOperator) { + else if (node.kind === SyntaxKind.PrefixUnaryExpression && node.operand.kind === SyntaxKind.PrefixUnaryExpression) { var operand = node.operand; if (node.operator === SyntaxKind.PlusToken && (operand.operator === SyntaxKind.PlusToken || operand.operator === SyntaxKind.PlusPlusToken)) { write(" "); @@ -3500,7 +3523,13 @@ module ts { case SyntaxKind.FunctionExpression: case SyntaxKind.ArrowFunction: return emitFunctionDeclaration(node); - case SyntaxKind.PrefixOperator: + case SyntaxKind.DeleteExpression: + return emitDeleteExpression(node); + case SyntaxKind.TypeOfExpression: + return emitTypeOfExpression(node); + case SyntaxKind.VoidExpression: + return emitVoidExpression(node); + case SyntaxKind.PrefixUnaryExpression: case SyntaxKind.PostfixOperator: return emitUnaryExpression(node); case SyntaxKind.BinaryExpression: diff --git a/src/compiler/parser.ts b/src/compiler/parser.ts index 7b30b9884e4..6651044be02 100644 --- a/src/compiler/parser.ts +++ b/src/compiler/parser.ts @@ -278,7 +278,13 @@ module ts { child((node).operand); case SyntaxKind.ParenExpression: return child((node).expression); - case SyntaxKind.PrefixOperator: + case SyntaxKind.DeleteExpression: + return child((node).expression); + case SyntaxKind.TypeOfExpression: + return child((node).expression); + case SyntaxKind.VoidExpression: + return child((node).expression); + case SyntaxKind.PrefixUnaryExpression: case SyntaxKind.PostfixOperator: return child((node).operand); case SyntaxKind.BinaryExpression: @@ -518,7 +524,10 @@ module ts { case SyntaxKind.ParenExpression: case SyntaxKind.FunctionExpression: case SyntaxKind.ArrowFunction: - case SyntaxKind.PrefixOperator: + case SyntaxKind.VoidExpression: + case SyntaxKind.DeleteExpression: + case SyntaxKind.TypeOfExpression: + case SyntaxKind.PrefixUnaryExpression: case SyntaxKind.PostfixOperator: case SyntaxKind.BinaryExpression: case SyntaxKind.ConditionalExpression: @@ -1659,7 +1668,7 @@ module ts { // // // We do *not* want to consume the > as we're consuming the expression for "". - node.expression = parseUnaryExpression(); + node.expression = parseUnaryExpressionOrHigher(); } } @@ -2532,7 +2541,7 @@ module ts { } function parseBinaryExpressionOrHigher(precedence: number): Expression { - var leftOperand = parseUnaryExpression(); + var leftOperand = parseUnaryExpressionOrHigher(); return parseBinaryExpressionRest(precedence, leftOperand); } @@ -2611,21 +2620,33 @@ module ts { return finishNode(node); } - function parseUnaryExpression(): Expression { + function parseUnaryExpressionOrHigher(): Expression { var pos = getNodePos(); switch (token) { case SyntaxKind.PlusToken: case SyntaxKind.MinusToken: case SyntaxKind.TildeToken: case SyntaxKind.ExclamationToken: - case SyntaxKind.DeleteKeyword: - case SyntaxKind.TypeOfKeyword: - case SyntaxKind.VoidKeyword: case SyntaxKind.PlusPlusToken: case SyntaxKind.MinusMinusToken: var operator = token; nextToken(); - return makeUnaryExpression(SyntaxKind.PrefixOperator, pos, operator, parseUnaryExpression()); + return makeUnaryExpression(SyntaxKind.PrefixUnaryExpression, pos, operator, parseUnaryExpressionOrHigher()); + case SyntaxKind.DeleteKeyword: + var node = createNode(SyntaxKind.DeleteExpression); + nextToken(); + node.expression = parseUnaryExpressionOrHigher(); + return finishNode(node); + case SyntaxKind.TypeOfKeyword: + var node = createNode(SyntaxKind.TypeOfExpression); + nextToken(); + node.expression = parseUnaryExpressionOrHigher(); + return finishNode(node); + case SyntaxKind.VoidKeyword: + var node = createNode(SyntaxKind.VoidExpression); + nextToken(); + node.expression = parseUnaryExpressionOrHigher(); + return finishNode(node); case SyntaxKind.LessThanToken: return parseTypeAssertion(); } @@ -2659,7 +2680,7 @@ module ts { parseExpected(SyntaxKind.LessThanToken); node.type = parseType(); parseExpected(SyntaxKind.GreaterThanToken); - node.operand = parseUnaryExpression(); + node.operand = parseUnaryExpressionOrHigher(); return finishNode(node); } @@ -4073,6 +4094,7 @@ module ts { case SyntaxKind.ClassDeclaration: return checkClassDeclaration(node); case SyntaxKind.ComputedPropertyName: return checkComputedPropertyName(node); case SyntaxKind.Constructor: return checkConstructor(node); + case SyntaxKind.DeleteExpression: return checkDeleteExpression( node); case SyntaxKind.ExportAssignment: return checkExportAssignment(node); case SyntaxKind.ForInStatement: return checkForInStatement(node); case SyntaxKind.ForStatement: return checkForStatement(node); @@ -4089,7 +4111,7 @@ module ts { case SyntaxKind.NumericLiteral: return checkNumericLiteral(node); case SyntaxKind.Parameter: return checkParameter(node); case SyntaxKind.PostfixOperator: return checkPostfixOperator(node); - case SyntaxKind.PrefixOperator: return checkPrefixOperator(node); + case SyntaxKind.PrefixUnaryExpression: return checkPrefixOperator(node); case SyntaxKind.Property: return checkProperty(node); case SyntaxKind.PropertyAssignment: return checkPropertyAssignment(node); case SyntaxKind.ReturnStatement: return checkReturnStatement(node); @@ -4355,6 +4377,19 @@ module ts { } } + function checkDeleteExpression(node: DeleteExpression) { + if (node.parserContextFlags & ParserContextFlags.StrictMode) { + // The identifier eval or arguments may not appear as the LeftHandSideExpression of an + // Assignment operator(11.13) or of a PostfixExpression(11.3) or as the UnaryExpression + // operated upon by a Prefix Increment(11.4.4) or a Prefix Decrement(11.4.5) operator + if (node.expression.kind === SyntaxKind.Identifier) { + // When a delete operator occurs within strict mode code, a SyntaxError is thrown if its + // UnaryExpression is a direct reference to a variable, function argument, or function name + return grammarErrorOnNode(node.expression, Diagnostics.delete_cannot_be_called_on_an_identifier_in_strict_mode); + } + } + } + function checkEnumDeclaration(enumDecl: EnumDeclaration): boolean { var enumIsConst = (enumDecl.flags & NodeFlags.Const) !== 0; @@ -4396,7 +4431,7 @@ module ts { return /^[0-9]+([eE]\+?[0-9]+)?$/.test(literalExpression.text); } - if (expression.kind === SyntaxKind.PrefixOperator) { + if (expression.kind === SyntaxKind.PrefixUnaryExpression) { var unaryExpression = expression; if (unaryExpression.operator === SyntaxKind.PlusToken || unaryExpression.operator === SyntaxKind.MinusToken) { expression = unaryExpression.operand; @@ -4872,11 +4907,6 @@ module ts { if ((node.operator === SyntaxKind.PlusPlusToken || node.operator === SyntaxKind.MinusMinusToken) && isEvalOrArgumentsIdentifier(node.operand)) { return reportInvalidUseInStrictMode(node.operand); } - else if (node.operator === SyntaxKind.DeleteKeyword && node.operand.kind === SyntaxKind.Identifier) { - // When a delete operator occurs within strict mode code, a SyntaxError is thrown if its - // UnaryExpression is a direct reference to a variable, function argument, or function name - return grammarErrorOnNode(node.operand, Diagnostics.delete_cannot_be_called_on_an_identifier_in_strict_mode); - } } } diff --git a/src/compiler/types.ts b/src/compiler/types.ts index 597d85ccca0..660de6bf33d 100644 --- a/src/compiler/types.ts +++ b/src/compiler/types.ts @@ -178,7 +178,10 @@ module ts { ParenExpression, FunctionExpression, ArrowFunction, - PrefixOperator, + DeleteExpression, + TypeOfExpression, + VoidExpression, + PrefixUnaryExpression, PostfixOperator, BinaryExpression, ConditionalExpression, @@ -438,6 +441,18 @@ module ts { operator: SyntaxKind; operand: Expression; } + + export interface DeleteExpression extends Expression { + expression: Expression; + } + + export interface TypeOfExpression extends Expression { + expression: Expression; + } + + export interface VoidExpression extends Expression { + expression: Expression; + } export interface YieldExpression extends Expression { asteriskToken?: Node; diff --git a/src/harness/typeWriter.ts b/src/harness/typeWriter.ts index ed8d37c9c7e..8122c639680 100644 --- a/src/harness/typeWriter.ts +++ b/src/harness/typeWriter.ts @@ -39,7 +39,10 @@ class TypeWriterWalker { case ts.SyntaxKind.ParenExpression: case ts.SyntaxKind.FunctionExpression: case ts.SyntaxKind.ArrowFunction: - case ts.SyntaxKind.PrefixOperator: + case ts.SyntaxKind.TypeOfExpression: + case ts.SyntaxKind.VoidExpression: + case ts.SyntaxKind.DeleteExpression: + case ts.SyntaxKind.PrefixUnaryExpression: case ts.SyntaxKind.PostfixOperator: case ts.SyntaxKind.BinaryExpression: case ts.SyntaxKind.ConditionalExpression: diff --git a/src/services/formatting/rules.ts b/src/services/formatting/rules.ts index 2485945df0b..9985fe61b1a 100644 --- a/src/services/formatting/rules.ts +++ b/src/services/formatting/rules.ts @@ -673,7 +673,7 @@ module ts.formatting { } static IsVoidOpContext(context: FormattingContext): boolean { - return context.currentTokenSpan.kind === SyntaxKind.VoidKeyword && context.currentTokenParent.kind === SyntaxKind.PrefixOperator; + return context.currentTokenSpan.kind === SyntaxKind.VoidKeyword && context.currentTokenParent.kind === SyntaxKind.VoidExpression; } } } \ No newline at end of file diff --git a/src/services/services.ts b/src/services/services.ts index ed8cb03faee..167bf00c820 100644 --- a/src/services/services.ts +++ b/src/services/services.ts @@ -4574,7 +4574,7 @@ module ts { var parent = node.parent; if (parent) { - if (parent.kind === SyntaxKind.PostfixOperator || parent.kind === SyntaxKind.PrefixOperator) { + if (parent.kind === SyntaxKind.PostfixOperator || parent.kind === SyntaxKind.PrefixUnaryExpression) { return true; } else if (parent.kind === SyntaxKind.BinaryExpression && (parent).left === node) { @@ -5063,7 +5063,7 @@ module ts { // the '=' in a variable declaration is special cased here. if (token.parent.kind === SyntaxKind.BinaryExpression || token.parent.kind === SyntaxKind.VariableDeclaration || - token.parent.kind === SyntaxKind.PrefixOperator || + token.parent.kind === SyntaxKind.PrefixUnaryExpression || token.parent.kind === SyntaxKind.PostfixOperator || token.parent.kind === SyntaxKind.ConditionalExpression) { return ClassificationTypeNames.operator; From 13f319b6eca8674fed40deb4f6218ecbbeae15f5 Mon Sep 17 00:00:00 2001 From: Cyrus Najmabadi Date: Sat, 29 Nov 2014 14:51:25 -0800 Subject: [PATCH 114/195] Add a lot of clarifying comments in the parser. Simplify parser and avoid the need to pass around 'inNewExpression' information. Make error span smaller for "new Foo[]" errors. --- src/compiler/parser.ts | 269 +++++++++++++----- src/compiler/types.ts | 2 + .../reference/assignmentLHSIsValue.errors.txt | 11 +- .../reference/badArraySyntax.errors.txt | 20 +- ...annotInvokeNewOnErrorExpression.errors.txt | 4 +- .../compoundAssignmentLHSIsValue.errors.txt | 20 +- ...torWithIncompleteTypeAnnotation.errors.txt | 5 +- .../reference/createArray.errors.txt | 16 +- .../baselines/reference/libMembers.errors.txt | 4 +- .../reference/newOperator.errors.txt | 8 +- .../objectLitArrayDeclNoNew.errors.txt | 5 +- ...rserObjectCreationArrayLiteral1.errors.txt | 4 +- ...rserObjectCreationArrayLiteral3.errors.txt | 4 +- .../reference/parserRealSource10.errors.txt | 20 +- .../reference/parserRealSource11.errors.txt | 12 +- .../reference/parserRealSource4.errors.txt | 4 +- .../reference/parserRealSource7.errors.txt | 4 +- .../reference/parserRealSource9.errors.txt | 4 +- .../superWithTypeArgument.errors.txt | 8 +- .../superWithTypeArgument2.errors.txt | 8 +- .../superWithTypeArgument3.errors.txt | 7 +- 21 files changed, 277 insertions(+), 162 deletions(-) diff --git a/src/compiler/parser.ts b/src/compiler/parser.ts index 6651044be02..6d0e65223c1 100644 --- a/src/compiler/parser.ts +++ b/src/compiler/parser.ts @@ -1151,12 +1151,18 @@ module ts { return inStrictModeContext() ? token > SyntaxKind.LastFutureReservedWord : token > SyntaxKind.LastReservedWord; } - function parseExpected(t: SyntaxKind): boolean { + function parseExpected(t: SyntaxKind, diagnosticMessage?: DiagnosticMessage): boolean { if (token === t) { nextToken(); return true; } - error(Diagnostics._0_expected, tokenToString(t)); + + if (diagnosticMessage) { + error(diagnosticMessage); + } + else { + error(Diagnostics._0_expected, tokenToString(t)); + } return false; } @@ -1551,12 +1557,21 @@ module ts { return entity; } - function parseTokenNode(): Node { + function parseAnyTokenNode(): Node { var node = createNode(token); nextToken(); return finishNode(node); } + function parseTokenNode(kind: SyntaxKind): Node { + if (token === kind) { + return parseAnyTokenNode(); + } + + parseExpected(kind); + return createMissingNode(); + } + function parseTemplateExpression() { var template = createNode(SyntaxKind.TemplateExpression); @@ -1997,7 +2012,7 @@ module ts { } function parseKeywordAndNoDot(): Node { - var node = parseTokenNode(); + var node = parseAnyTokenNode(); return token === SyntaxKind.DotToken ? undefined : node; } @@ -2649,30 +2664,133 @@ module ts { return finishNode(node); case SyntaxKind.LessThanToken: return parseTypeAssertion(); + default: + return parsePostfixExpressionOrHigher(); } + } - var primaryExpression = parsePrimaryExpression(); - // TS 1.0 spec (2014): 4.8 - // CallExpression: ( Modified ) - // super ( ArgumentListopt ) - // super . IdentifierName - var illegalUsageOfSuperKeyword = - primaryExpression.kind === SyntaxKind.SuperKeyword && token !== SyntaxKind.OpenParenToken && token !== SyntaxKind.DotToken; + function parsePostfixExpressionOrHigher(): Expression { + var expression = parseLeftHandSideExpressionOrHigher(); - if (illegalUsageOfSuperKeyword) { - error(Diagnostics.super_must_be_followed_by_an_argument_list_or_member_access); - } - - var expr = parseCallAndAccess(primaryExpression, /* inNewExpression */ false); - - Debug.assert(isLeftHandSideExpression(expr)); + Debug.assert(isLeftHandSideExpression(expression)); if ((token === SyntaxKind.PlusPlusToken || token === SyntaxKind.MinusMinusToken) && !scanner.hasPrecedingLineBreak()) { var operator = token; nextToken(); - expr = makeUnaryExpression(SyntaxKind.PostfixOperator, expr.pos, operator, expr); + return makeUnaryExpression(SyntaxKind.PostfixOperator, expression.pos, operator, expression); } - return expr; + return expression; + } + + function parseLeftHandSideExpressionOrHigher(): Expression { + // Original Ecma: + // LeftHandSideExpression: See 11.2 + // NewExpression + // CallExpression + // + // Our simplification: + // + // LeftHandSideExpression: See 11.2 + // MemberExpression + // CallExpression + // + // See comment in parseMemberExpressionOrHigher on how we replaced NewExpression with + // MemberExpression to make our lives easier. + // + // to best understand the below code, it's important to see how CallExpression expands + // out into its own productions: + // + // CallExpression: + // MemberExpression Arguments + // CallExpression Arguments + // CallExpression[Expression] + // CallExpression.IdentifierName + // super ( ArgumentListopt ) + // super.IdentifierName + // + // Because of the recursion in these calls, we need to bottom out first. There are two + // bottom out states we can run into. Either we see 'super' which must start either of + // the last two CallExpression productions. Or we have a MemberExpression which either + // completes the LeftHandSideExpression, or starts the beginning of the first four + // CallExpression productions. + var expression: Expression; + if (token === SyntaxKind.SuperKeyword) { + expression = parseSuperExpression(); + } + else { + expression = parseMemberExpressionOrHigher(); + } + + // Now, we *may* be complete. However, we might have consumed the start of a + // CallExpression. As such, we need to consume the rest of it here to be complete. + return parseCallExpressionRest(expression); + } + + function parseMemberExpressionOrHigher(): Expression { + // Note: to make our lives simpler, we decompose the the NewExpression productions and + // place ObjectCreationExpression and FunctionExpression into PrimaryExpression. + // like so: + // + // PrimaryExpression : See 11.1 + // this + // Identifier + // Literal + // ArrayLiteral + // ObjectLiteral + // (Expression) + // FunctionExpression + // new MemberExpression Arguments? + // + // MemberExpression : See 11.2 + // PrimaryExpression + // MemberExpression[Expression] + // MemberExpression.IdentifierName + // + // CallExpression : See 11.2 + // MemberExpression + // CallExpression Arguments + // CallExpression[Expression] + // CallExpression.IdentifierName + // + // Technically this is ambiguous. i.e. CallExpression defines: + // + // CallExpression: + // CallExpression Arguments + // + // If you see: "new Foo()" + // + // Then that could be treated as a single ObjectCreationExpression, or it could be + // treated as the invocation of "new Foo". We disambiguate that in code (to match + // the original grammar) by making sure that if we see an ObjectCreationExpression + // we always consume arguments if they are there. So we treat "new Foo()" as an + // object creation only, and not at all as an invocation) Another way to think + // about this is that for every "new" that we see, we will consume an argument list if + // it is there as part of the *associated* object creation node. Any additional + // argument lists we see, will become invocation expressions. + // + // Because there are no other places in the grammar now that refer to FunctionExpression + // or ObjectCreationExpression, it is safe to push down into the PrimaryExpression + // production. + // + // Because CallExpression and MemberExpression are left recursive, we need to bottom out + // of the recursion immediately. So we parse out a primary expression to start with. + var expression = parsePrimaryExpression(); + return parseMemberExpressionRest(expression); + } + + function parseSuperExpression(): Expression { + var expression = parseAnyTokenNode(); + if (token === SyntaxKind.OpenParenToken || token === SyntaxKind.DotToken) { + return expression; + } + + // If we have seen "super" it must be followed by '(' or '.'. + // If it wasn't then just try to parse out a '.' and report an error. + var node = createNode(SyntaxKind.PropertyAccess, expression.pos); + node.left = expression; + parseExpected(SyntaxKind.DotToken, Diagnostics.super_must_be_followed_by_an_argument_list_or_member_access); + node.right = parseIdentifierName(); + return finishNode(node); } function parseTypeAssertion(): TypeAssertion { @@ -2691,11 +2809,11 @@ module ts { return finishNode(node); } - function parseCallAndAccess(expr: Expression, inNewExpression: boolean): Expression { + function parseMemberExpressionRest(expression: Expression): Expression { while (true) { var dotOrBracketStart = scanner.getTokenPos(); if (parseOptional(SyntaxKind.DotToken)) { - var propertyAccess = createNode(SyntaxKind.PropertyAccess, expr.pos); + var propertyAccess = createNode(SyntaxKind.PropertyAccess, expression.pos); // Technically a keyword is valid here as all keywords are identifier names. // However, often we'll encounter this in error situations when the keyword // is actually starting another valid construct. @@ -2728,63 +2846,80 @@ module ts { } } - propertyAccess.left = expr; + propertyAccess.left = expression; propertyAccess.right = id || parseIdentifierName(); - expr = finishNode(propertyAccess); + expression = finishNode(propertyAccess); continue; } - if (parseOptional(SyntaxKind.OpenBracketToken)) { - var indexedAccess = createNode(SyntaxKind.IndexedAccess, expr.pos); - indexedAccess.object = expr; + if (token === SyntaxKind.OpenBracketToken) { + var indexedAccess = createNode(SyntaxKind.IndexedAccess, expression.pos); + indexedAccess.object = expression; + indexedAccess.openBracketToken = parseTokenNode(SyntaxKind.OpenBracketToken); // It's not uncommon for a user to write: "new Type[]". // Check for that common pattern and report a better error message. - if (inNewExpression && parseOptional(SyntaxKind.CloseBracketToken)) { - indexedAccess.index = createMissingNode(); - } - else { + if (token !== SyntaxKind.CloseBracketToken) { indexedAccess.index = allowInAnd(parseExpression); if (indexedAccess.index.kind === SyntaxKind.StringLiteral || indexedAccess.index.kind === SyntaxKind.NumericLiteral) { var literal = indexedAccess.index; literal.text = internIdentifier(literal.text); } - parseExpected(SyntaxKind.CloseBracketToken); - } - - expr = finishNode(indexedAccess); - continue; - } - - // Try to parse a Call Expression unless we are in a New Expression. - // If we are parsing a New Expression, then parentheses are optional, - // and is taken care of by the 'parseNewExpression' caller. - if ((token === SyntaxKind.OpenParenToken || token === SyntaxKind.LessThanToken) && !inNewExpression) { - var callExpr = createNode(SyntaxKind.CallExpression, expr.pos); - callExpr.func = expr; - if (token === SyntaxKind.LessThanToken) { - if (!(callExpr.typeArguments = tryParse(parseTypeArgumentsAndOpenParen))) return expr; } else { - parseExpected(SyntaxKind.OpenParenToken); + indexedAccess.index = createMissingNode(); } - callExpr.arguments = parseDelimitedList(ParsingContext.ArgumentExpressions, parseArgumentExpression); - parseExpected(SyntaxKind.CloseParenToken); - expr = finishNode(callExpr); + + indexedAccess.closeBracketToken = parseTokenNode(SyntaxKind.CloseBracketToken); + expression = finishNode(indexedAccess); continue; } if (token === SyntaxKind.NoSubstitutionTemplateLiteral || token === SyntaxKind.TemplateHead) { - var tagExpression = createNode(SyntaxKind.TaggedTemplateExpression, expr.pos); - tagExpression.tag = expr; + var tagExpression = createNode(SyntaxKind.TaggedTemplateExpression, expression.pos); + tagExpression.tag = expression; tagExpression.template = token === SyntaxKind.NoSubstitutionTemplateLiteral - ? parseLiteralNode() - : parseTemplateExpression(); - expr = finishNode(tagExpression); + ? parseLiteralNode() + : parseTemplateExpression(); + expression = finishNode(tagExpression); continue; } - return expr; + return expression; + } + } + + function parseCallExpressionRest(expression: Expression): Expression { + while (true) { + expression = parseMemberExpressionRest(expression); + + if (token === SyntaxKind.LessThanToken) { + // Might be arithmetic, or it might be a type argument list. + var typeArguments = tryParse(parseTypeArgumentsAndOpenParen); + if (!typeArguments) { + return expression; + } + + var callExpr = createNode(SyntaxKind.CallExpression, expression.pos); + callExpr.func = expression; + callExpr.typeArguments = typeArguments; + callExpr.arguments = parseDelimitedList(ParsingContext.ArgumentExpressions, parseArgumentExpression); + parseExpected(SyntaxKind.CloseParenToken); + expression = finishNode(callExpr); + continue; + } + + if (token === SyntaxKind.OpenParenToken) { + var callExpr = createNode(SyntaxKind.CallExpression, expression.pos); + callExpr.func = expression; + parseExpected(SyntaxKind.OpenParenToken); + callExpr.arguments = parseDelimitedList(ParsingContext.ArgumentExpressions, parseArgumentExpression); + parseExpected(SyntaxKind.CloseParenToken); + expression = finishNode(callExpr); + continue; + } + + return expression; } } @@ -2822,7 +2957,7 @@ module ts { case SyntaxKind.NullKeyword: case SyntaxKind.TrueKeyword: case SyntaxKind.FalseKeyword: - return parseTokenNode(); + return parseAnyTokenNode(); case SyntaxKind.NumericLiteral: case SyntaxKind.StringLiteral: case SyntaxKind.NoSubstitutionTemplateLiteral: @@ -2988,8 +3123,8 @@ module ts { function parseNewExpression(): NewExpression { var node = createNode(SyntaxKind.NewExpression); parseExpected(SyntaxKind.NewKeyword); - node.func = parseCallAndAccess(parsePrimaryExpression(), /* inNewExpression */ true); - if (parseOptional(SyntaxKind.OpenParenToken) || token === SyntaxKind.LessThanToken && (node.typeArguments = tryParse(parseTypeArgumentsAndOpenParen))) { + node.func = parseMemberExpressionOrHigher(); + if (parseOptional(SyntaxKind.OpenParenToken) || (token === SyntaxKind.LessThanToken && (node.typeArguments = tryParse(parseTypeArgumentsAndOpenParen)))) { node.arguments = parseDelimitedList(ParsingContext.ArgumentExpressions, parseArgumentExpression); parseExpected(SyntaxKind.CloseParenToken); } @@ -4498,13 +4633,17 @@ module ts { } function checkIndexedAccess(node: IndexedAccess) { - if (node.index.kind === SyntaxKind.Missing && - node.parent.kind === SyntaxKind.NewExpression && - (node.parent).func === node) { + if (node.index.kind === SyntaxKind.Missing) { + if (node.parent.kind === SyntaxKind.NewExpression && + (node.parent).func === node) { - var start = skipTrivia(sourceText, node.parent.pos); - var end = node.end; - return grammarErrorAtPos(start, end - start, Diagnostics.new_T_cannot_be_used_to_create_an_array_Use_new_Array_T_instead); + var start = skipTrivia(sourceText, node.openBracketToken.pos); + var end = node.closeBracketToken.end; + return grammarErrorAtPos(start, end - start, Diagnostics.new_T_cannot_be_used_to_create_an_array_Use_new_Array_T_instead); + } + else { + return grammarErrorOnNode(node.closeBracketToken, Diagnostics.Expression_expected); + } } } diff --git a/src/compiler/types.ts b/src/compiler/types.ts index 660de6bf33d..4a6a26856ff 100644 --- a/src/compiler/types.ts +++ b/src/compiler/types.ts @@ -514,7 +514,9 @@ module ts { export interface IndexedAccess extends Expression { object: Expression; + openBracketToken: Node; index: Expression; + closeBracketToken: Node; } export interface CallExpression extends Expression { diff --git a/tests/baselines/reference/assignmentLHSIsValue.errors.txt b/tests/baselines/reference/assignmentLHSIsValue.errors.txt index 2f65b368532..ea4908f731b 100644 --- a/tests/baselines/reference/assignmentLHSIsValue.errors.txt +++ b/tests/baselines/reference/assignmentLHSIsValue.errors.txt @@ -20,9 +20,6 @@ tests/cases/conformance/expressions/assignmentOperator/assignmentLHSIsValue.ts(3 tests/cases/conformance/expressions/assignmentOperator/assignmentLHSIsValue.ts(31,1): error TS2364: Invalid left-hand side of assignment expression. tests/cases/conformance/expressions/assignmentOperator/assignmentLHSIsValue.ts(32,1): error TS2364: Invalid left-hand side of assignment expression. tests/cases/conformance/expressions/assignmentOperator/assignmentLHSIsValue.ts(38,1): error TS2364: Invalid left-hand side of assignment expression. -tests/cases/conformance/expressions/assignmentOperator/assignmentLHSIsValue.ts(42,30): error TS2364: Invalid left-hand side of assignment expression. -tests/cases/conformance/expressions/assignmentOperator/assignmentLHSIsValue.ts(44,13): error TS2364: Invalid left-hand side of assignment expression. -tests/cases/conformance/expressions/assignmentOperator/assignmentLHSIsValue.ts(46,21): error TS2364: Invalid left-hand side of assignment expression. tests/cases/conformance/expressions/assignmentOperator/assignmentLHSIsValue.ts(54,1): error TS2364: Invalid left-hand side of assignment expression. tests/cases/conformance/expressions/assignmentOperator/assignmentLHSIsValue.ts(57,1): error TS2364: Invalid left-hand side of assignment expression. tests/cases/conformance/expressions/assignmentOperator/assignmentLHSIsValue.ts(58,1): error TS2364: Invalid left-hand side of assignment expression. @@ -40,7 +37,7 @@ tests/cases/conformance/expressions/assignmentOperator/assignmentLHSIsValue.ts(6 tests/cases/conformance/expressions/assignmentOperator/assignmentLHSIsValue.ts(70,1): error TS2364: Invalid left-hand side of assignment expression. -==== tests/cases/conformance/expressions/assignmentOperator/assignmentLHSIsValue.ts (40 errors) ==== +==== tests/cases/conformance/expressions/assignmentOperator/assignmentLHSIsValue.ts (37 errors) ==== // expected error for all the LHS of assignments var value; @@ -119,20 +116,14 @@ tests/cases/conformance/expressions/assignmentOperator/assignmentLHSIsValue.ts(7 constructor() { super(); super = value; } ~ !!! error TS1034: 'super' must be followed by an argument list or member access. - ~~~~~ -!!! error TS2364: Invalid left-hand side of assignment expression. foo() { super = value } ~ !!! error TS1034: 'super' must be followed by an argument list or member access. - ~~~~~ -!!! error TS2364: Invalid left-hand side of assignment expression. static sfoo() { super = value; } ~ !!! error TS1034: 'super' must be followed by an argument list or member access. - ~~~~~ -!!! error TS2364: Invalid left-hand side of assignment expression. } // function expression diff --git a/tests/baselines/reference/badArraySyntax.errors.txt b/tests/baselines/reference/badArraySyntax.errors.txt index 500a89d85a9..b22097253fc 100644 --- a/tests/baselines/reference/badArraySyntax.errors.txt +++ b/tests/baselines/reference/badArraySyntax.errors.txt @@ -1,8 +1,8 @@ -tests/cases/compiler/badArraySyntax.ts(6,10): error TS1150: 'new T[]' cannot be used to create an array. Use 'new Array()' instead. -tests/cases/compiler/badArraySyntax.ts(7,10): error TS1150: 'new T[]' cannot be used to create an array. Use 'new Array()' instead. -tests/cases/compiler/badArraySyntax.ts(8,15): error TS1150: 'new T[]' cannot be used to create an array. Use 'new Array()' instead. -tests/cases/compiler/badArraySyntax.ts(9,15): error TS1150: 'new T[]' cannot be used to create an array. Use 'new Array()' instead. -tests/cases/compiler/badArraySyntax.ts(10,17): error TS1150: 'new T[]' cannot be used to create an array. Use 'new Array()' instead. +tests/cases/compiler/badArraySyntax.ts(6,15): error TS1150: 'new T[]' cannot be used to create an array. Use 'new Array()' instead. +tests/cases/compiler/badArraySyntax.ts(7,15): error TS1150: 'new T[]' cannot be used to create an array. Use 'new Array()' instead. +tests/cases/compiler/badArraySyntax.ts(8,20): error TS1150: 'new T[]' cannot be used to create an array. Use 'new Array()' instead. +tests/cases/compiler/badArraySyntax.ts(9,20): error TS1150: 'new T[]' cannot be used to create an array. Use 'new Array()' instead. +tests/cases/compiler/badArraySyntax.ts(10,40): error TS1150: 'new T[]' cannot be used to create an array. Use 'new Array()' instead. ==== tests/cases/compiler/badArraySyntax.ts (5 errors) ==== @@ -12,18 +12,18 @@ tests/cases/compiler/badArraySyntax.ts(10,17): error TS1150: 'new T[]' cannot be var a1: Z[] = []; var a2 = new Z[]; - ~~~~~~~ + ~~ !!! error TS1150: 'new T[]' cannot be used to create an array. Use 'new Array()' instead. var a3 = new Z[](); - ~~~~~~~ + ~~ !!! error TS1150: 'new T[]' cannot be used to create an array. Use 'new Array()' instead. var a4: Z[] = new Z[]; - ~~~~~~~ + ~~ !!! error TS1150: 'new T[]' cannot be used to create an array. Use 'new Array()' instead. var a5: Z[] = new Z[](); - ~~~~~~~ + ~~ !!! error TS1150: 'new T[]' cannot be used to create an array. Use 'new Array()' instead. var a6: Z[][] = new Z [ ] [ ]; - ~~~~~~~~~~~~~~~~~~~~~~~~~~~ + ~~~~ !!! error TS1150: 'new T[]' cannot be used to create an array. Use 'new Array()' instead. \ No newline at end of file diff --git a/tests/baselines/reference/cannotInvokeNewOnErrorExpression.errors.txt b/tests/baselines/reference/cannotInvokeNewOnErrorExpression.errors.txt index f0397f5ee60..cfb9287cdbc 100644 --- a/tests/baselines/reference/cannotInvokeNewOnErrorExpression.errors.txt +++ b/tests/baselines/reference/cannotInvokeNewOnErrorExpression.errors.txt @@ -1,4 +1,4 @@ -tests/cases/compiler/cannotInvokeNewOnErrorExpression.ts(5,9): error TS1150: 'new T[]' cannot be used to create an array. Use 'new Array()' instead. +tests/cases/compiler/cannotInvokeNewOnErrorExpression.ts(5,21): error TS1150: 'new T[]' cannot be used to create an array. Use 'new Array()' instead. tests/cases/compiler/cannotInvokeNewOnErrorExpression.ts(5,15): error TS2339: Property 'ClassA' does not exist on type 'typeof M'. @@ -8,7 +8,7 @@ tests/cases/compiler/cannotInvokeNewOnErrorExpression.ts(5,15): error TS2339: Pr class ClassA {} } var t = new M.ClassA[]; - ~~~~~~~~~~~~~~ + ~~ !!! error TS1150: 'new T[]' cannot be used to create an array. Use 'new Array()' instead. ~~~~~~ !!! error TS2339: Property 'ClassA' does not exist on type 'typeof M'. \ No newline at end of file diff --git a/tests/baselines/reference/compoundAssignmentLHSIsValue.errors.txt b/tests/baselines/reference/compoundAssignmentLHSIsValue.errors.txt index b850d0a0d38..af662869b5b 100644 --- a/tests/baselines/reference/compoundAssignmentLHSIsValue.errors.txt +++ b/tests/baselines/reference/compoundAssignmentLHSIsValue.errors.txt @@ -42,12 +42,6 @@ tests/cases/conformance/expressions/assignmentOperator/compoundAssignmentLHSIsVa tests/cases/conformance/expressions/assignmentOperator/compoundAssignmentLHSIsValue.ts(55,1): error TS2364: Invalid left-hand side of assignment expression. tests/cases/conformance/expressions/assignmentOperator/compoundAssignmentLHSIsValue.ts(62,1): error TS2362: The left-hand side of an arithmetic operation must be of type 'any', 'number' or an enum type. tests/cases/conformance/expressions/assignmentOperator/compoundAssignmentLHSIsValue.ts(63,1): error TS2364: Invalid left-hand side of assignment expression. -tests/cases/conformance/expressions/assignmentOperator/compoundAssignmentLHSIsValue.ts(69,9): error TS2362: The left-hand side of an arithmetic operation must be of type 'any', 'number' or an enum type. -tests/cases/conformance/expressions/assignmentOperator/compoundAssignmentLHSIsValue.ts(70,9): error TS2364: Invalid left-hand side of assignment expression. -tests/cases/conformance/expressions/assignmentOperator/compoundAssignmentLHSIsValue.ts(74,9): error TS2362: The left-hand side of an arithmetic operation must be of type 'any', 'number' or an enum type. -tests/cases/conformance/expressions/assignmentOperator/compoundAssignmentLHSIsValue.ts(75,9): error TS2364: Invalid left-hand side of assignment expression. -tests/cases/conformance/expressions/assignmentOperator/compoundAssignmentLHSIsValue.ts(79,9): error TS2362: The left-hand side of an arithmetic operation must be of type 'any', 'number' or an enum type. -tests/cases/conformance/expressions/assignmentOperator/compoundAssignmentLHSIsValue.ts(80,9): error TS2364: Invalid left-hand side of assignment expression. tests/cases/conformance/expressions/assignmentOperator/compoundAssignmentLHSIsValue.ts(91,1): error TS2362: The left-hand side of an arithmetic operation must be of type 'any', 'number' or an enum type. tests/cases/conformance/expressions/assignmentOperator/compoundAssignmentLHSIsValue.ts(92,1): error TS2364: Invalid left-hand side of assignment expression. tests/cases/conformance/expressions/assignmentOperator/compoundAssignmentLHSIsValue.ts(95,1): error TS2364: Invalid left-hand side of assignment expression. @@ -80,7 +74,7 @@ tests/cases/conformance/expressions/assignmentOperator/compoundAssignmentLHSIsVa tests/cases/conformance/expressions/assignmentOperator/compoundAssignmentLHSIsValue.ts(122,1): error TS2364: Invalid left-hand side of assignment expression. -==== tests/cases/conformance/expressions/assignmentOperator/compoundAssignmentLHSIsValue.ts (80 errors) ==== +==== tests/cases/conformance/expressions/assignmentOperator/compoundAssignmentLHSIsValue.ts (74 errors) ==== // expected error for all the LHS of compound assignments (arithmetic and addition) var value; @@ -220,39 +214,27 @@ tests/cases/conformance/expressions/assignmentOperator/compoundAssignmentLHSIsVa super *= value; ~~ !!! error TS1034: 'super' must be followed by an argument list or member access. - ~~~~~ -!!! error TS2362: The left-hand side of an arithmetic operation must be of type 'any', 'number' or an enum type. super += value; ~~ !!! error TS1034: 'super' must be followed by an argument list or member access. - ~~~~~ -!!! error TS2364: Invalid left-hand side of assignment expression. } foo() { super *= value; ~~ !!! error TS1034: 'super' must be followed by an argument list or member access. - ~~~~~ -!!! error TS2362: The left-hand side of an arithmetic operation must be of type 'any', 'number' or an enum type. super += value; ~~ !!! error TS1034: 'super' must be followed by an argument list or member access. - ~~~~~ -!!! error TS2364: Invalid left-hand side of assignment expression. } static sfoo() { super *= value; ~~ !!! error TS1034: 'super' must be followed by an argument list or member access. - ~~~~~ -!!! error TS2362: The left-hand side of an arithmetic operation must be of type 'any', 'number' or an enum type. super += value; ~~ !!! error TS1034: 'super' must be followed by an argument list or member access. - ~~~~~ -!!! error TS2364: Invalid left-hand side of assignment expression. } } diff --git a/tests/baselines/reference/constructorWithIncompleteTypeAnnotation.errors.txt b/tests/baselines/reference/constructorWithIncompleteTypeAnnotation.errors.txt index 53d24b3d0f8..8d544ff1bcb 100644 --- a/tests/baselines/reference/constructorWithIncompleteTypeAnnotation.errors.txt +++ b/tests/baselines/reference/constructorWithIncompleteTypeAnnotation.errors.txt @@ -42,7 +42,6 @@ tests/cases/compiler/constructorWithIncompleteTypeAnnotation.ts(257,9): error TS tests/cases/compiler/constructorWithIncompleteTypeAnnotation.ts(257,27): error TS1135: Argument expression expected. tests/cases/compiler/constructorWithIncompleteTypeAnnotation.ts(257,33): error TS1005: '(' expected. tests/cases/compiler/constructorWithIncompleteTypeAnnotation.ts(257,43): error TS1109: Expression expected. -tests/cases/compiler/constructorWithIncompleteTypeAnnotation.ts(257,59): error TS1109: Expression expected. tests/cases/compiler/constructorWithIncompleteTypeAnnotation.ts(257,60): error TS1005: ';' expected. tests/cases/compiler/constructorWithIncompleteTypeAnnotation.ts(257,65): error TS1129: Statement expected. tests/cases/compiler/constructorWithIncompleteTypeAnnotation.ts(259,9): error TS1129: Statement expected. @@ -88,7 +87,7 @@ tests/cases/compiler/constructorWithIncompleteTypeAnnotation.ts(259,29): error T tests/cases/compiler/constructorWithIncompleteTypeAnnotation.ts(259,37): error TS2304: Cannot find name 'string'. -==== tests/cases/compiler/constructorWithIncompleteTypeAnnotation.ts (88 errors) ==== +==== tests/cases/compiler/constructorWithIncompleteTypeAnnotation.ts (87 errors) ==== declare module "fs" { export class File { constructor(filename: string); @@ -498,8 +497,6 @@ tests/cases/compiler/constructorWithIncompleteTypeAnnotation.ts(259,37): error T ~ !!! error TS1005: '(' expected. ~~~ -!!! error TS1109: Expression expected. - ~ !!! error TS1109: Expression expected. ~ !!! error TS1005: ';' expected. diff --git a/tests/baselines/reference/createArray.errors.txt b/tests/baselines/reference/createArray.errors.txt index 2e2b4567567..6f79c4b47d2 100644 --- a/tests/baselines/reference/createArray.errors.txt +++ b/tests/baselines/reference/createArray.errors.txt @@ -1,7 +1,7 @@ -tests/cases/compiler/createArray.ts(1,8): error TS1150: 'new T[]' cannot be used to create an array. Use 'new Array()' instead. -tests/cases/compiler/createArray.ts(6,1): error TS1150: 'new T[]' cannot be used to create an array. Use 'new Array()' instead. -tests/cases/compiler/createArray.ts(7,8): error TS1150: 'new T[]' cannot be used to create an array. Use 'new Array()' instead. -tests/cases/compiler/createArray.ts(8,8): error TS1150: 'new T[]' cannot be used to create an array. Use 'new Array()' instead. +tests/cases/compiler/createArray.ts(1,18): error TS1150: 'new T[]' cannot be used to create an array. Use 'new Array()' instead. +tests/cases/compiler/createArray.ts(6,6): error TS1150: 'new T[]' cannot be used to create an array. Use 'new Array()' instead. +tests/cases/compiler/createArray.ts(7,19): error TS1150: 'new T[]' cannot be used to create an array. Use 'new Array()' instead. +tests/cases/compiler/createArray.ts(8,18): error TS1150: 'new T[]' cannot be used to create an array. Use 'new Array()' instead. tests/cases/compiler/createArray.ts(1,12): error TS2304: Cannot find name 'number'. tests/cases/compiler/createArray.ts(7,12): error TS2304: Cannot find name 'boolean'. tests/cases/compiler/createArray.ts(8,12): error TS2304: Cannot find name 'string'. @@ -9,7 +9,7 @@ tests/cases/compiler/createArray.ts(8,12): error TS2304: Cannot find name 'strin ==== tests/cases/compiler/createArray.ts (7 errors) ==== var na=new number[]; - ~~~~~~~~~~~~ + ~~ !!! error TS1150: 'new T[]' cannot be used to create an array. Use 'new Array()' instead. ~~~~~~ !!! error TS2304: Cannot find name 'number'. @@ -18,15 +18,15 @@ tests/cases/compiler/createArray.ts(8,12): error TS2304: Cannot find name 'strin } new C[]; - ~~~~~~~ + ~~ !!! error TS1150: 'new T[]' cannot be used to create an array. Use 'new Array()' instead. var ba=new boolean[]; - ~~~~~~~~~~~~~ + ~~ !!! error TS1150: 'new T[]' cannot be used to create an array. Use 'new Array()' instead. ~~~~~~~ !!! error TS2304: Cannot find name 'boolean'. var sa=new string[]; - ~~~~~~~~~~~~ + ~~ !!! error TS1150: 'new T[]' cannot be used to create an array. Use 'new Array()' instead. ~~~~~~ !!! error TS2304: Cannot find name 'string'. diff --git a/tests/baselines/reference/libMembers.errors.txt b/tests/baselines/reference/libMembers.errors.txt index 73f5c945f70..a6af67821b3 100644 --- a/tests/baselines/reference/libMembers.errors.txt +++ b/tests/baselines/reference/libMembers.errors.txt @@ -1,4 +1,4 @@ -tests/cases/compiler/libMembers.ts(9,11): error TS1150: 'new T[]' cannot be used to create an array. Use 'new Array()' instead. +tests/cases/compiler/libMembers.ts(9,16): error TS1150: 'new T[]' cannot be used to create an array. Use 'new Array()' instead. tests/cases/compiler/libMembers.ts(4,3): error TS2339: Property 'subby' does not exist on type 'string'. tests/cases/compiler/libMembers.ts(12,15): error TS2339: Property 'prototype' does not exist on type 'C'. @@ -15,7 +15,7 @@ tests/cases/compiler/libMembers.ts(12,15): error TS2339: Property 'prototype' do export class C { } var a=new C[]; - ~~~~~~~ + ~~ !!! error TS1150: 'new T[]' cannot be used to create an array. Use 'new Array()' instead. a.length; a.push(new C()); diff --git a/tests/baselines/reference/newOperator.errors.txt b/tests/baselines/reference/newOperator.errors.txt index 9232b865648..33e2d806d3e 100644 --- a/tests/baselines/reference/newOperator.errors.txt +++ b/tests/baselines/reference/newOperator.errors.txt @@ -1,5 +1,5 @@ -tests/cases/compiler/newOperator.ts(18,10): error TS1150: 'new T[]' cannot be used to create an array. Use 'new Array()' instead. -tests/cases/compiler/newOperator.ts(20,1): error TS1150: 'new T[]' cannot be used to create an array. Use 'new Array()' instead. +tests/cases/compiler/newOperator.ts(18,20): error TS1150: 'new T[]' cannot be used to create an array. Use 'new Array()' instead. +tests/cases/compiler/newOperator.ts(22,1): error TS1150: 'new T[]' cannot be used to create an array. Use 'new Array()' instead. tests/cases/compiler/newOperator.ts(44,16): error TS1056: Accessors are only available when targeting ECMAScript 5 and higher. tests/cases/compiler/newOperator.ts(3,13): error TS2304: Cannot find name 'ifc'. tests/cases/compiler/newOperator.ts(10,10): error TS2351: Cannot use 'new' with an expression whose type lacks a call or construct signature. @@ -38,16 +38,14 @@ tests/cases/compiler/newOperator.ts(31,10): error TS2351: Cannot use 'new' with // Various spacing var t3 = new string[]( ); - ~~~~~~~~~~~~ + ~~ !!! error TS1150: 'new T[]' cannot be used to create an array. Use 'new Array()' instead. ~~~~~~ !!! error TS2304: Cannot find name 'string'. var t4 = new - ~~~ string ~~~~~~ - ~~~~~~ !!! error TS2304: Cannot find name 'string'. [ ~ diff --git a/tests/baselines/reference/objectLitArrayDeclNoNew.errors.txt b/tests/baselines/reference/objectLitArrayDeclNoNew.errors.txt index 01c0fea7a26..0c683946550 100644 --- a/tests/baselines/reference/objectLitArrayDeclNoNew.errors.txt +++ b/tests/baselines/reference/objectLitArrayDeclNoNew.errors.txt @@ -1,8 +1,7 @@ -tests/cases/compiler/objectLitArrayDeclNoNew.ts(22,20): error TS1109: Expression expected. tests/cases/compiler/objectLitArrayDeclNoNew.ts(27,1): error TS1128: Declaration or statement expected. -==== tests/cases/compiler/objectLitArrayDeclNoNew.ts (2 errors) ==== +==== tests/cases/compiler/objectLitArrayDeclNoNew.ts (1 errors) ==== declare var console; "use strict"; module Test { @@ -25,8 +24,6 @@ tests/cases/compiler/objectLitArrayDeclNoNew.ts(27,1): error TS1128: Declaration var state:IState= null; return { tokens: Gar[],//IToken[], // Missing new. Correct syntax is: tokens: new IToken[] - ~ -!!! error TS1109: Expression expected. endState: state }; } diff --git a/tests/baselines/reference/parserObjectCreationArrayLiteral1.errors.txt b/tests/baselines/reference/parserObjectCreationArrayLiteral1.errors.txt index f0ca8d45b7a..04be3a6d041 100644 --- a/tests/baselines/reference/parserObjectCreationArrayLiteral1.errors.txt +++ b/tests/baselines/reference/parserObjectCreationArrayLiteral1.errors.txt @@ -1,10 +1,10 @@ -tests/cases/conformance/parser/ecmascript5/parserObjectCreationArrayLiteral1.ts(1,1): error TS1150: 'new T[]' cannot be used to create an array. Use 'new Array()' instead. +tests/cases/conformance/parser/ecmascript5/parserObjectCreationArrayLiteral1.ts(1,8): error TS1150: 'new T[]' cannot be used to create an array. Use 'new Array()' instead. tests/cases/conformance/parser/ecmascript5/parserObjectCreationArrayLiteral1.ts(1,5): error TS2304: Cannot find name 'Foo'. ==== tests/cases/conformance/parser/ecmascript5/parserObjectCreationArrayLiteral1.ts (2 errors) ==== new Foo[]; - ~~~~~~~~~ + ~~ !!! error TS1150: 'new T[]' cannot be used to create an array. Use 'new Array()' instead. ~~~ !!! error TS2304: Cannot find name 'Foo'. \ No newline at end of file diff --git a/tests/baselines/reference/parserObjectCreationArrayLiteral3.errors.txt b/tests/baselines/reference/parserObjectCreationArrayLiteral3.errors.txt index 3187d985cc2..89f861cfcdb 100644 --- a/tests/baselines/reference/parserObjectCreationArrayLiteral3.errors.txt +++ b/tests/baselines/reference/parserObjectCreationArrayLiteral3.errors.txt @@ -1,10 +1,10 @@ -tests/cases/conformance/parser/ecmascript5/parserObjectCreationArrayLiteral3.ts(1,1): error TS1150: 'new T[]' cannot be used to create an array. Use 'new Array()' instead. +tests/cases/conformance/parser/ecmascript5/parserObjectCreationArrayLiteral3.ts(1,8): error TS1150: 'new T[]' cannot be used to create an array. Use 'new Array()' instead. tests/cases/conformance/parser/ecmascript5/parserObjectCreationArrayLiteral3.ts(1,5): error TS2304: Cannot find name 'Foo'. ==== tests/cases/conformance/parser/ecmascript5/parserObjectCreationArrayLiteral3.ts (2 errors) ==== new Foo[](); - ~~~~~~~~~ + ~~ !!! error TS1150: 'new T[]' cannot be used to create an array. Use 'new Array()' instead. ~~~ !!! error TS2304: Cannot find name 'Foo'. \ No newline at end of file diff --git a/tests/baselines/reference/parserRealSource10.errors.txt b/tests/baselines/reference/parserRealSource10.errors.txt index 4184d9ac23e..aabafd751e7 100644 --- a/tests/baselines/reference/parserRealSource10.errors.txt +++ b/tests/baselines/reference/parserRealSource10.errors.txt @@ -1,9 +1,9 @@ tests/cases/conformance/parser/ecmascript5/parserRealSource10.ts(4,1): error TS6053: File 'tests/cases/conformance/parser/ecmascript5/typescript.ts' not found. -tests/cases/conformance/parser/ecmascript5/parserRealSource10.ts(127,29): error TS1150: 'new T[]' cannot be used to create an array. Use 'new Array()' instead. -tests/cases/conformance/parser/ecmascript5/parserRealSource10.ts(128,32): error TS1150: 'new T[]' cannot be used to create an array. Use 'new Array()' instead. -tests/cases/conformance/parser/ecmascript5/parserRealSource10.ts(129,37): error TS1150: 'new T[]' cannot be used to create an array. Use 'new Array()' instead. -tests/cases/conformance/parser/ecmascript5/parserRealSource10.ts(130,31): error TS1150: 'new T[]' cannot be used to create an array. Use 'new Array()' instead. -tests/cases/conformance/parser/ecmascript5/parserRealSource10.ts(449,31): error TS1150: 'new T[]' cannot be used to create an array. Use 'new Array()' instead. +tests/cases/conformance/parser/ecmascript5/parserRealSource10.ts(127,42): error TS1150: 'new T[]' cannot be used to create an array. Use 'new Array()' instead. +tests/cases/conformance/parser/ecmascript5/parserRealSource10.ts(128,42): error TS1150: 'new T[]' cannot be used to create an array. Use 'new Array()' instead. +tests/cases/conformance/parser/ecmascript5/parserRealSource10.ts(129,47): error TS1150: 'new T[]' cannot be used to create an array. Use 'new Array()' instead. +tests/cases/conformance/parser/ecmascript5/parserRealSource10.ts(130,42): error TS1150: 'new T[]' cannot be used to create an array. Use 'new Array()' instead. +tests/cases/conformance/parser/ecmascript5/parserRealSource10.ts(449,40): error TS1150: 'new T[]' cannot be used to create an array. Use 'new Array()' instead. tests/cases/conformance/parser/ecmascript5/parserRealSource10.ts(128,36): error TS2304: Cannot find name 'string'. tests/cases/conformance/parser/ecmascript5/parserRealSource10.ts(129,41): error TS2304: Cannot find name 'number'. tests/cases/conformance/parser/ecmascript5/parserRealSource10.ts(130,35): error TS2304: Cannot find name 'boolean'. @@ -472,20 +472,20 @@ tests/cases/conformance/parser/ecmascript5/parserRealSource10.ts(356,53): error } export var tokenTable = new TokenInfo[]; - ~~~~~~~~~~~~~~~ + ~~ !!! error TS1150: 'new T[]' cannot be used to create an array. Use 'new Array()' instead. export var nodeTypeTable = new string[]; - ~~~~~~~~~~~~ + ~~ !!! error TS1150: 'new T[]' cannot be used to create an array. Use 'new Array()' instead. ~~~~~~ !!! error TS2304: Cannot find name 'string'. export var nodeTypeToTokTable = new number[]; - ~~~~~~~~~~~~ + ~~ !!! error TS1150: 'new T[]' cannot be used to create an array. Use 'new Array()' instead. ~~~~~~ !!! error TS2304: Cannot find name 'number'. export var noRegexTable = new boolean[]; - ~~~~~~~~~~~~~ + ~~ !!! error TS1150: 'new T[]' cannot be used to create an array. Use 'new Array()' instead. ~~~~~~~ !!! error TS2304: Cannot find name 'boolean'. @@ -1474,7 +1474,7 @@ tests/cases/conformance/parser/ecmascript5/parserRealSource10.ts(356,53): error // TODO: new with length TokenID.LimFixed export var staticTokens = new Token[]; - ~~~~~~~~~~~ + ~~ !!! error TS1150: 'new T[]' cannot be used to create an array. Use 'new Array()' instead. export function initializeStaticTokens() { for (var i = 0; i <= TokenID.LimFixed; i++) { diff --git a/tests/baselines/reference/parserRealSource11.errors.txt b/tests/baselines/reference/parserRealSource11.errors.txt index c76206b821f..966da980097 100644 --- a/tests/baselines/reference/parserRealSource11.errors.txt +++ b/tests/baselines/reference/parserRealSource11.errors.txt @@ -1,8 +1,8 @@ tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(4,1): error TS6053: File 'tests/cases/conformance/parser/ecmascript5/typescript.ts' not found. -tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(193,33): error TS1150: 'new T[]' cannot be used to create an array. Use 'new Array()' instead. +tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(193,40): error TS1150: 'new T[]' cannot be used to create an array. Use 'new Array()' instead. tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(867,29): error TS1015: Parameter cannot have question mark and initializer. -tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(1009,31): error TS1150: 'new T[]' cannot be used to create an array. Use 'new Array()' instead. -tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(1024,33): error TS1150: 'new T[]' cannot be used to create an array. Use 'new Array()' instead. +tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(1009,45): error TS1150: 'new T[]' cannot be used to create an array. Use 'new Array()' instead. +tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(1024,47): error TS1150: 'new T[]' cannot be used to create an array. Use 'new Array()' instead. tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(13,22): error TS2304: Cannot find name 'Type'. tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(14,24): error TS2304: Cannot find name 'ASTFlags'. tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(17,38): error TS2304: Cannot find name 'CompilerDiagnostics'. @@ -793,7 +793,7 @@ tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(2356,48): error ~~~~~~~~~~~ !!! error TS2304: Cannot find name 'SymbolScope'. public members: AST[] = new AST[]; - ~~~~~~~~~ + ~~ !!! error TS1150: 'new T[]' cannot be used to create an array. Use 'new Array()' instead. constructor () { @@ -2029,7 +2029,7 @@ tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(2356,48): error !!! error TS2304: Cannot find name 'Symbol'. if (this.envids == null) { this.envids = new Identifier[]; - ~~~~~~~~~~~~~~~~ + ~~ !!! error TS1150: 'new T[]' cannot be used to create an array. Use 'new Array()' instead. } this.envids[this.envids.length] = id; @@ -2048,7 +2048,7 @@ tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(2356,48): error !!! error TS2304: Cannot find name 'Symbol'. if (this.jumpRefs == null) { this.jumpRefs = new Identifier[]; - ~~~~~~~~~~~~~~~~ + ~~ !!! error TS1150: 'new T[]' cannot be used to create an array. Use 'new Array()' instead. } var id = new Identifier(sym.name); diff --git a/tests/baselines/reference/parserRealSource4.errors.txt b/tests/baselines/reference/parserRealSource4.errors.txt index 5974d62df47..e0ae0d2221e 100644 --- a/tests/baselines/reference/parserRealSource4.errors.txt +++ b/tests/baselines/reference/parserRealSource4.errors.txt @@ -1,5 +1,5 @@ tests/cases/conformance/parser/ecmascript5/parserRealSource4.ts(4,1): error TS6053: File 'tests/cases/conformance/parser/ecmascript5/typescript.ts' not found. -tests/cases/conformance/parser/ecmascript5/parserRealSource4.ts(195,24): error TS1150: 'new T[]' cannot be used to create an array. Use 'new Array()' instead. +tests/cases/conformance/parser/ecmascript5/parserRealSource4.ts(195,37): error TS1150: 'new T[]' cannot be used to create an array. Use 'new Array()' instead. ==== tests/cases/conformance/parser/ecmascript5/parserRealSource4.ts (2 errors) ==== @@ -200,7 +200,7 @@ tests/cases/conformance/parser/ecmascript5/parserRealSource4.ts(195,24): error T export class HashTable { public itemCount: number = 0; public table = new HashEntry[]; - ~~~~~~~~~~~~~~~ + ~~ !!! error TS1150: 'new T[]' cannot be used to create an array. Use 'new Array()' instead. constructor (public size: number, public hashFn: (key) =>number, diff --git a/tests/baselines/reference/parserRealSource7.errors.txt b/tests/baselines/reference/parserRealSource7.errors.txt index 773dd499425..7fddac2c467 100644 --- a/tests/baselines/reference/parserRealSource7.errors.txt +++ b/tests/baselines/reference/parserRealSource7.errors.txt @@ -1,5 +1,5 @@ tests/cases/conformance/parser/ecmascript5/parserRealSource7.ts(4,1): error TS6053: File 'tests/cases/conformance/parser/ecmascript5/typescript.ts' not found. -tests/cases/conformance/parser/ecmascript5/parserRealSource7.ts(16,33): error TS1150: 'new T[]' cannot be used to create an array. Use 'new Array()' instead. +tests/cases/conformance/parser/ecmascript5/parserRealSource7.ts(16,45): error TS1150: 'new T[]' cannot be used to create an array. Use 'new Array()' instead. tests/cases/conformance/parser/ecmascript5/parserRealSource7.ts(12,38): error TS2304: Cannot find name 'ASTList'. tests/cases/conformance/parser/ecmascript5/parserRealSource7.ts(12,62): error TS2304: Cannot find name 'TypeLink'. tests/cases/conformance/parser/ecmascript5/parserRealSource7.ts(16,37): error TS2304: Cannot find name 'TypeLink'. @@ -326,7 +326,7 @@ tests/cases/conformance/parser/ecmascript5/parserRealSource7.ts(828,13): error T var len = bases.members.length; if (baseTypeLinks == null) { baseTypeLinks = new TypeLink[]; - ~~~~~~~~~~~~~~ + ~~ !!! error TS1150: 'new T[]' cannot be used to create an array. Use 'new Array()' instead. ~~~~~~~~ !!! error TS2304: Cannot find name 'TypeLink'. diff --git a/tests/baselines/reference/parserRealSource9.errors.txt b/tests/baselines/reference/parserRealSource9.errors.txt index 0dc0de6c12c..1880a72f189 100644 --- a/tests/baselines/reference/parserRealSource9.errors.txt +++ b/tests/baselines/reference/parserRealSource9.errors.txt @@ -1,5 +1,5 @@ tests/cases/conformance/parser/ecmascript5/parserRealSource9.ts(4,1): error TS6053: File 'tests/cases/conformance/parser/ecmascript5/typescript.ts' not found. -tests/cases/conformance/parser/ecmascript5/parserRealSource9.ts(12,31): error TS1150: 'new T[]' cannot be used to create an array. Use 'new Array()' instead. +tests/cases/conformance/parser/ecmascript5/parserRealSource9.ts(12,39): error TS1150: 'new T[]' cannot be used to create an array. Use 'new Array()' instead. tests/cases/conformance/parser/ecmascript5/parserRealSource9.ts(8,38): error TS2304: Cannot find name 'TypeChecker'. tests/cases/conformance/parser/ecmascript5/parserRealSource9.ts(9,48): error TS2304: Cannot find name 'TypeLink'. tests/cases/conformance/parser/ecmascript5/parserRealSource9.ts(9,67): error TS2304: Cannot find name 'SymbolScope'. @@ -56,7 +56,7 @@ tests/cases/conformance/parser/ecmascript5/parserRealSource9.ts(200,48): error T !!! error TS2304: Cannot find name 'Type'. if (typeLinks) { extendsList = new Type[]; - ~~~~~~~~~~ + ~~ !!! error TS1150: 'new T[]' cannot be used to create an array. Use 'new Array()' instead. ~~~~ !!! error TS2304: Cannot find name 'Type'. diff --git a/tests/baselines/reference/superWithTypeArgument.errors.txt b/tests/baselines/reference/superWithTypeArgument.errors.txt index 6cbfc250174..b399d5bd03d 100644 --- a/tests/baselines/reference/superWithTypeArgument.errors.txt +++ b/tests/baselines/reference/superWithTypeArgument.errors.txt @@ -1,5 +1,5 @@ tests/cases/compiler/superWithTypeArgument.ts(7,14): error TS1034: 'super' must be followed by an argument list or member access. -tests/cases/compiler/superWithTypeArgument.ts(7,9): error TS2346: Supplied parameters do not match any signature of call target. +tests/cases/compiler/superWithTypeArgument.ts(6,5): error TS2377: Constructors for derived classes must contain a 'super' call. ==== tests/cases/compiler/superWithTypeArgument.ts (2 errors) ==== @@ -9,10 +9,12 @@ tests/cases/compiler/superWithTypeArgument.ts(7,9): error TS2346: Supplied param class D extends C { constructor() { + ~~~~~~~~~~~~~~~ super(); ~ !!! error TS1034: 'super' must be followed by an argument list or member access. - ~~~~~~~~~~ -!!! error TS2346: Supplied parameters do not match any signature of call target. + ~~~~~~~~~~~~~~~~~~~ } + ~~~~~ +!!! error TS2377: Constructors for derived classes must contain a 'super' call. } \ No newline at end of file diff --git a/tests/baselines/reference/superWithTypeArgument2.errors.txt b/tests/baselines/reference/superWithTypeArgument2.errors.txt index acf29177e8f..6ef9a302666 100644 --- a/tests/baselines/reference/superWithTypeArgument2.errors.txt +++ b/tests/baselines/reference/superWithTypeArgument2.errors.txt @@ -1,5 +1,5 @@ tests/cases/compiler/superWithTypeArgument2.ts(7,14): error TS1034: 'super' must be followed by an argument list or member access. -tests/cases/compiler/superWithTypeArgument2.ts(7,9): error TS2346: Supplied parameters do not match any signature of call target. +tests/cases/compiler/superWithTypeArgument2.ts(6,5): error TS2377: Constructors for derived classes must contain a 'super' call. ==== tests/cases/compiler/superWithTypeArgument2.ts (2 errors) ==== @@ -9,10 +9,12 @@ tests/cases/compiler/superWithTypeArgument2.ts(7,9): error TS2346: Supplied para class D extends C { constructor(x) { + ~~~~~~~~~~~~~~~~ super(x); ~ !!! error TS1034: 'super' must be followed by an argument list or member access. - ~~~~~~~~~~~ -!!! error TS2346: Supplied parameters do not match any signature of call target. + ~~~~~~~~~~~~~~~~~~~~ } + ~~~~~ +!!! error TS2377: Constructors for derived classes must contain a 'super' call. } \ No newline at end of file diff --git a/tests/baselines/reference/superWithTypeArgument3.errors.txt b/tests/baselines/reference/superWithTypeArgument3.errors.txt index d3bb986bd8a..db8e2962227 100644 --- a/tests/baselines/reference/superWithTypeArgument3.errors.txt +++ b/tests/baselines/reference/superWithTypeArgument3.errors.txt @@ -1,7 +1,8 @@ tests/cases/compiler/superWithTypeArgument3.ts(8,14): error TS1034: 'super' must be followed by an argument list or member access. +tests/cases/compiler/superWithTypeArgument3.ts(7,5): error TS2377: Constructors for derived classes must contain a 'super' call. -==== tests/cases/compiler/superWithTypeArgument3.ts (1 errors) ==== +==== tests/cases/compiler/superWithTypeArgument3.ts (2 errors) ==== class C { foo: T; bar(x: U) { } @@ -9,10 +10,14 @@ tests/cases/compiler/superWithTypeArgument3.ts(8,14): error TS1034: 'super' must class D extends C { constructor() { + ~~~~~~~~~~~~~~~ super(); ~ !!! error TS1034: 'super' must be followed by an argument list or member access. + ~~~~~~~~~~~~~~~~~~~ } + ~~~~~ +!!! error TS2377: Constructors for derived classes must contain a 'super' call. bar() { super.bar(null); } From b1f49c44f96aa5e3374a0f896ff163f6ec6df5ef Mon Sep 17 00:00:00 2001 From: Cyrus Najmabadi Date: Sat, 29 Nov 2014 14:11:47 -0800 Subject: [PATCH 115/195] Simplify parser. --- src/services/syntax/parser.ts | 74 ++++++++++++---------------- src/services/syntax/syntaxElement.ts | 13 ----- 2 files changed, 32 insertions(+), 55 deletions(-) diff --git a/src/services/syntax/parser.ts b/src/services/syntax/parser.ts index c4b282380d7..fa9e76ee13b 100644 --- a/src/services/syntax/parser.ts +++ b/src/services/syntax/parser.ts @@ -1019,7 +1019,7 @@ module TypeScript.Parser { _currentToken.hasLeadingNewLine()) { var token1 = peekToken(1); - if (!existsNewLineBetweenTokens(_currentToken, token1, source.text) && + if (!token1.hasLeadingNewLine() && SyntaxFacts.isIdentifierNameOrAnyKeyword(token1)) { return createMissingToken(SyntaxKind.IdentifierName, _currentToken); @@ -1555,8 +1555,7 @@ module TypeScript.Parser { // Then we *should* parse it as a property name, as ASI takes effect here. if (isModifier(_currentToken, /*index:*/ 0)) { var token1 = peekToken(1); - if (!existsNewLineBetweenTokens(_currentToken, token1, source.text) && - isPropertyNameToken(token1, inErrorRecovery)) { + if (!token1.hasLeadingNewLine() && isPropertyNameToken(token1, inErrorRecovery)) { return false; } @@ -2904,11 +2903,37 @@ module TypeScript.Parser { return undefined; } - return parseMemberExpressionRest(expression); + return parseMemberExpressionRest(expression); + } + + function parseMemberExpressionRest(expression: ILeftHandSideExpressionSyntax): ILeftHandSideExpressionSyntax { + while (true) { + var _currentToken = currentToken(); + var currentTokenKind = _currentToken.kind; + + switch (currentTokenKind) { + case SyntaxKind.OpenBracketToken: + expression = parseElementAccessExpression(expression, _currentToken); + continue; + + case SyntaxKind.DotToken: + expression = new MemberAccessExpressionSyntax(contextFlags, expression, consumeToken(_currentToken), eatIdentifierNameToken()); + continue; + + case SyntaxKind.NoSubstitutionTemplateToken: + case SyntaxKind.TemplateStartToken: + expression = new TemplateAccessExpressionSyntax(contextFlags, expression, parseTemplateExpression(_currentToken)); + continue; + } + + return expression; + } } function parseCallExpressionRest(expression: ILeftHandSideExpressionSyntax): ILeftHandSideExpressionSyntax { while (true) { + expression = parseMemberExpressionRest(expression); + var _currentToken = currentToken(); var currentTokenKind = _currentToken.kind; @@ -2929,43 +2954,6 @@ module TypeScript.Parser { expression = new InvocationExpressionSyntax(contextFlags, expression, argumentList); continue; - - case SyntaxKind.OpenBracketToken: - expression = parseElementAccessExpression(expression, _currentToken); - continue; - - case SyntaxKind.DotToken: - expression = new MemberAccessExpressionSyntax(contextFlags, expression, consumeToken(_currentToken), eatIdentifierNameToken()); - continue; - - case SyntaxKind.NoSubstitutionTemplateToken: - case SyntaxKind.TemplateStartToken: - expression = new TemplateAccessExpressionSyntax(contextFlags, expression, parseTemplateExpression(_currentToken)); - continue; - } - - return expression; - } - } - - function parseMemberExpressionRest(expression: IMemberExpressionSyntax): IMemberExpressionSyntax { - while (true) { - var _currentToken = currentToken(); - var currentTokenKind = _currentToken.kind; - - switch (currentTokenKind) { - case SyntaxKind.OpenBracketToken: - expression = parseElementAccessExpression(expression, _currentToken); - continue; - - case SyntaxKind.DotToken: - expression = new MemberAccessExpressionSyntax(contextFlags, expression, consumeToken(_currentToken), eatIdentifierNameToken()); - continue; - - case SyntaxKind.NoSubstitutionTemplateToken: - case SyntaxKind.TemplateStartToken: - expression = new TemplateAccessExpressionSyntax(contextFlags, expression, parseTemplateExpression(_currentToken)); - continue; } return expression; @@ -3282,7 +3270,9 @@ module TypeScript.Parser { // this decision. return new ObjectCreationExpressionSyntax(contextFlags, - consumeToken(newKeyword), tryParseMemberExpressionOrHigher(currentToken(), /*force:*/ true), tryParseArgumentList()); + consumeToken(newKeyword), + tryParseMemberExpressionOrHigher(currentToken(), /*force:*/ true), + tryParseArgumentList()); } function parseTemplateExpression(startToken: ISyntaxToken): IPrimaryExpressionSyntax { diff --git a/src/services/syntax/syntaxElement.ts b/src/services/syntax/syntaxElement.ts index 2a86d2ff959..a76cf00721b 100644 --- a/src/services/syntax/syntaxElement.ts +++ b/src/services/syntax/syntaxElement.ts @@ -371,19 +371,6 @@ module TypeScript { return fullStart(element) + fullWidth(element); } - export function existsNewLineBetweenTokens(token1: ISyntaxToken, token2: ISyntaxToken, text: ISimpleText) { - if (token1 === token2) { - return false; - } - - if (!token1 || !token2) { - return true; - } - - var lineMap = text.lineMap(); - return lineMap.getLineNumberFromPosition(fullEnd(token1)) !== lineMap.getLineNumberFromPosition(start(token2, text)); - } - export interface ISyntaxElement { kind: SyntaxKind; parent: ISyntaxElement; From ac5e9b6c88c08860805cff3234064c87c794ad2e Mon Sep 17 00:00:00 2001 From: Cyrus Najmabadi Date: Sat, 29 Nov 2014 15:08:59 -0800 Subject: [PATCH 116/195] Simplify the parser by removing the need for the 'force' parameter. --- src/services/syntax/parser.ts | 110 ++++++++++++---------------------- 1 file changed, 37 insertions(+), 73 deletions(-) diff --git a/src/services/syntax/parser.ts b/src/services/syntax/parser.ts index fa9e76ee13b..1a9921252f7 100644 --- a/src/services/syntax/parser.ts +++ b/src/services/syntax/parser.ts @@ -2237,7 +2237,7 @@ module TypeScript.Parser { return new OmittedExpressionSyntax(contextFlags); } - return allowInAnd(tryParseAssignmentExpressionOrHigher); + return isExpression(currentToken()) ? allowInAnd(parseAssignmentExpressionOrHigher) : undefined; } function isExpression(currentToken: ISyntaxToken): boolean { @@ -2520,19 +2520,11 @@ module TypeScript.Parser { return leftOperand; } - function tryParseAssignmentExpressionOrHigher(): IExpressionSyntax { - return tryParseAssignmentExpressionOrHigherWorker(/*force:*/ false); - } - - function parseAssignmentExpressionOrHigher(): IExpressionSyntax { - return tryParseAssignmentExpressionOrHigherWorker(/*force:*/ true); - } - // Called when you need to parse an expression, but you do not want to allow 'CommaExpressions'. // i.e. if you have "var a = 1, b = 2" then when we parse '1' we want to parse with higher // precedence than 'comma'. Otherwise we'll get: "var a = (1, (b = 2))", instead of // "var a = (1), b = (2)"); - function tryParseAssignmentExpressionOrHigherWorker(force: boolean): IExpressionSyntax { + function parseAssignmentExpressionOrHigher(): IExpressionSyntax { // AssignmentExpression[in,yield]: // 1) ConditionalExpression[?in,?yield] // 2) LeftHandSideExpression = AssignmentExpression[?in,?yield] @@ -2566,11 +2558,7 @@ module TypeScript.Parser { // Otherwise, we try to parse out the conditional expression bit. We want to allow any // binary expression here, so we pass in the 'lowest' precedence here so that it matches // and consumes anything. - var leftOperand = tryParseBinaryExpressionOrHigher(_currentToken, force, BinaryExpressionPrecedence.Lowest); - if (leftOperand === undefined) { - return undefined; - } - + var leftOperand = parseBinaryExpressionOrHigher(_currentToken, BinaryExpressionPrecedence.Lowest); if (SyntaxUtilities.isLeftHandSizeExpression(leftOperand)) { // Note: we call currentOperatorToken so that we get an appropriately merged token // for cases like > > = becoming >>= @@ -2614,7 +2602,7 @@ module TypeScript.Parser { } // Not an 'await' expression. Parse this with our normal postfix parsing rules. - return tryParsePostfixExpressionOrHigher(awaitKeyword, /*force:*/ true); + return parsePostfixExpressionOrHigher(awaitKeyword); } function parseAwaitExpression(awaitKeyword: ISyntaxToken): AwaitExpressionSyntax { @@ -2727,7 +2715,7 @@ module TypeScript.Parser { : tryParseParenthesizedArrowFunctionExpression(); } - function tryParseUnaryExpressionOrHigher(_currentToken: ISyntaxToken, force: boolean): IUnaryExpressionSyntax { + function parseUnaryExpressionOrHigher(_currentToken: ISyntaxToken): IUnaryExpressionSyntax { var currentTokenKind = _currentToken.kind; switch (currentTokenKind) { @@ -2737,7 +2725,7 @@ module TypeScript.Parser { case SyntaxKind.ExclamationToken: case SyntaxKind.PlusPlusToken: case SyntaxKind.MinusMinusToken: - return new PrefixUnaryExpressionSyntax(contextFlags, consumeToken(_currentToken), tryParseUnaryExpressionOrHigher(currentToken(), /*force:*/ true)); + return new PrefixUnaryExpressionSyntax(contextFlags, consumeToken(_currentToken), parseUnaryExpressionOrHigher(currentToken())); case SyntaxKind.TypeOfKeyword: return parseTypeOfExpression(_currentToken); case SyntaxKind.VoidKeyword: @@ -2749,11 +2737,11 @@ module TypeScript.Parser { case SyntaxKind.AwaitKeyword: return parsePossibleAwaitExpression(_currentToken); default: - return tryParsePostfixExpressionOrHigher(_currentToken, force); + return parsePostfixExpressionOrHigher(_currentToken); } } - function tryParseBinaryExpressionOrHigher(_currentToken: ISyntaxToken, force: boolean, precedence: BinaryExpressionPrecedence): IExpressionSyntax { + function parseBinaryExpressionOrHigher(_currentToken: ISyntaxToken, precedence: BinaryExpressionPrecedence): IExpressionSyntax { // The binary expressions are incredibly left recursive in their definitions. We // clearly can't implement that through recursion. So, instead, we first bottom out // of all the recursion by jumping to this production and consuming a UnaryExpression @@ -2761,10 +2749,7 @@ module TypeScript.Parser { // // MultiplicativeExpression: See 11.5 // UnaryExpression - var leftOperand = tryParseUnaryExpressionOrHigher(_currentToken, force); - if (leftOperand === undefined) { - return undefined; - } + var leftOperand = parseUnaryExpressionOrHigher(_currentToken); // We then pop up the stack consuming the other side of the binary exprssion if it exists. return parseBinaryExpressionRest(precedence, leftOperand); @@ -2828,7 +2813,7 @@ module TypeScript.Parser { // Now skip the operator token we're on. leftOperand = new BinaryExpressionSyntax(contextFlags, leftOperand, consumeToken(operatorToken), - tryParseBinaryExpressionOrHigher(currentToken(), /*force:*/ true, newPrecedence)); + parseBinaryExpressionOrHigher(currentToken(), newPrecedence)); } return leftOperand; @@ -2850,7 +2835,7 @@ module TypeScript.Parser { return token0; } - function tryParseMemberExpressionOrHigher(_currentToken: ISyntaxToken, force: boolean): IMemberExpressionSyntax { + function parseMemberExpressionOrHigher(_currentToken: ISyntaxToken): IMemberExpressionSyntax { // Note: to make our lives simpler, we decompose the the NewExpression productions and // place ObjectCreationExpression and FunctionExpression into PrimaryExpression. // like so: @@ -2898,11 +2883,7 @@ module TypeScript.Parser { // // Because CallExpression and MemberExpression are left recursive, we need to bottom out // of the recursion immediately. So we parse out a primary expression to start with. - var expression: IMemberExpressionSyntax = tryParsePrimaryExpression(_currentToken, force); - if (expression === undefined) { - return undefined; - } - + var expression = parsePrimaryExpression(_currentToken); return parseMemberExpressionRest(expression); } @@ -2960,7 +2941,7 @@ module TypeScript.Parser { } } - function tryParseLeftHandSideExpressionOrHigher(_currentToken: ISyntaxToken, force: boolean): ILeftHandSideExpressionSyntax { + function parseLeftHandSideExpressionOrHigher(_currentToken: ISyntaxToken): ILeftHandSideExpressionSyntax { // Original Ecma: // LeftHandSideExpression: See 11.2 // NewExpression @@ -2992,16 +2973,9 @@ module TypeScript.Parser { // completes the LeftHandSideExpression, or starts the beginning of the first four // CallExpression productions. - var expression: ILeftHandSideExpressionSyntax = undefined; - if (_currentToken.kind === SyntaxKind.SuperKeyword) { - expression = parseSuperExpression(_currentToken); - } - else { - expression = tryParseMemberExpressionOrHigher(_currentToken, force); - if (expression === undefined) { - return undefined; - } - } + var expression: ILeftHandSideExpressionSyntax = _currentToken.kind === SyntaxKind.SuperKeyword + ? parseSuperExpression(_currentToken) + : parseMemberExpressionOrHigher(_currentToken); // Now, we *may* be complete. However, we might have consumed the start of a // CallExpression. As such, we need to consume the rest of it here to be complete. @@ -3019,11 +2993,8 @@ module TypeScript.Parser { : new MemberAccessExpressionSyntax(contextFlags, expression, eatToken(SyntaxKind.DotToken), eatIdentifierNameToken()); } - function tryParsePostfixExpressionOrHigher(_currentToken: ISyntaxToken, force: boolean): IPostfixExpressionSyntax { - var expression = tryParseLeftHandSideExpressionOrHigher(_currentToken, force); - if (expression === undefined) { - return undefined; - } + function parsePostfixExpressionOrHigher(_currentToken: ISyntaxToken): IPostfixExpressionSyntax { + var expression = parseLeftHandSideExpressionOrHigher(_currentToken); var _currentToken = currentToken(); var currentTokenKind = _currentToken.kind; @@ -3124,7 +3095,7 @@ module TypeScript.Parser { // cause a missing identiifer to be created), so that we will then consume the // comma and the following list items). var force = currentToken().kind === SyntaxKind.CommaToken; - return allowInAnd(force ? parseAssignmentExpressionOrHigher : tryParseAssignmentExpressionOrHigher); + return (force || isExpression(currentToken())) ? allowInAnd(parseAssignmentExpressionOrHigher) : undefined; } function parseElementAccessArgumentExpression(openBracketToken: ISyntaxToken) { @@ -3141,20 +3112,7 @@ module TypeScript.Parser { parseElementAccessArgumentExpression(openBracketToken), eatToken(SyntaxKind.CloseBracketToken)); } - function tryParsePrimaryExpression(_currentToken: ISyntaxToken, force: boolean): IPrimaryExpressionSyntax { - // Have to check for 'async function' first as 'async' is an identifier and will be - // consumed immediately below this. - if (_currentToken.kind === SyntaxKind.AsyncKeyword) { - var token1 = peekToken(1); - if (!token1.hasLeadingNewLine() && token1.kind === SyntaxKind.FunctionKeyword) { - return parseFunctionExpression(); - } - } - - if (isIdentifier(_currentToken)) { - return eatIdentifierToken(); - } - + function parsePrimaryExpression(_currentToken: ISyntaxToken): IPrimaryExpressionSyntax { var currentTokenKind = _currentToken.kind; switch (currentTokenKind) { case SyntaxKind.ThisKeyword: @@ -3183,13 +3141,16 @@ module TypeScript.Parser { // If we see a standalone / or /= and we're expecting an expression, then reparse // it as a regular expression. return reparseDivideAsRegularExpression(); + case SyntaxKind.AsyncKeyword: + var token1 = peekToken(1); + if (!token1.hasLeadingNewLine() && token1.kind === SyntaxKind.FunctionKeyword) { + return parseFunctionExpression(); + } + break; } - if (!force) { - return undefined; - } - - // Nothing else worked, report an error and produce a missing token. + // Nothing else worked. try to eat an identifier. If we can't, we'll report an + // appropriate error. return eatIdentifierToken(DiagnosticCode.Expression_expected); } @@ -3216,15 +3177,15 @@ module TypeScript.Parser { } function parseTypeOfExpression(typeOfKeyword: ISyntaxToken): TypeOfExpressionSyntax { - return new TypeOfExpressionSyntax(contextFlags, consumeToken(typeOfKeyword), tryParseUnaryExpressionOrHigher(currentToken(), /*force:*/ true)); + return new TypeOfExpressionSyntax(contextFlags, consumeToken(typeOfKeyword), parseUnaryExpressionOrHigher(currentToken())); } function parseDeleteExpression(deleteKeyword: ISyntaxToken): DeleteExpressionSyntax { - return new DeleteExpressionSyntax(contextFlags, consumeToken(deleteKeyword), tryParseUnaryExpressionOrHigher(currentToken(), /*force:*/ true)); + return new DeleteExpressionSyntax(contextFlags, consumeToken(deleteKeyword), parseUnaryExpressionOrHigher(currentToken())); } function parseVoidExpression(voidKeyword: ISyntaxToken): VoidExpressionSyntax { - return new VoidExpressionSyntax(contextFlags, consumeToken(voidKeyword), tryParseUnaryExpressionOrHigher(currentToken(), /*force:*/ true)); + return new VoidExpressionSyntax(contextFlags, consumeToken(voidKeyword), parseUnaryExpressionOrHigher(currentToken())); } function parseFunctionExpression(): FunctionExpressionSyntax { @@ -3271,7 +3232,7 @@ module TypeScript.Parser { return new ObjectCreationExpressionSyntax(contextFlags, consumeToken(newKeyword), - tryParseMemberExpressionOrHigher(currentToken(), /*force:*/ true), + parseMemberExpressionOrHigher(currentToken()), tryParseArgumentList()); } @@ -3317,7 +3278,10 @@ module TypeScript.Parser { function parseCastExpression(lessThanToken: ISyntaxToken): CastExpressionSyntax { return new CastExpressionSyntax(contextFlags, - consumeToken(lessThanToken), parseType(), eatToken(SyntaxKind.GreaterThanToken), tryParseUnaryExpressionOrHigher(currentToken(), /*force:*/ true)); + consumeToken(lessThanToken), + parseType(), + eatToken(SyntaxKind.GreaterThanToken), + parseUnaryExpressionOrHigher(currentToken())); } function parseParenthesizedExpression(openParenToken: ISyntaxToken): ParenthesizedExpressionSyntax { @@ -4034,7 +3998,7 @@ module TypeScript.Parser { // We do not want the > to be consumed as part of the "" expression. By starting // at 'unary' expression and not 'binary' expression, we ensure that we don't accidently // consume the >. - return tryParseUnaryExpressionOrHigher(_currentToken, /*force:*/ true); + return parseUnaryExpressionOrHigher(_currentToken); } return eatIdentifierToken(DiagnosticCode.Type_expected); From 7152d37ea2eb1625fcaff2b4837707acfbe0075b Mon Sep 17 00:00:00 2001 From: Cyrus Najmabadi Date: Sat, 29 Nov 2014 15:31:18 -0800 Subject: [PATCH 117/195] Rename 'CastExpression' to 'TypeAssertionExpression'. Conflicts: src/services/syntax/SyntaxGenerator.js.map --- src/services/syntax/SyntaxGenerator.js | 151 +++++++++--------- src/services/syntax/SyntaxGenerator.js.map | 4 + src/services/syntax/parser.ts | 6 +- src/services/syntax/prettyPrinter.ts | 2 +- src/services/syntax/syntaxGenerator.ts | 2 +- .../syntax/syntaxInterfaces.generated.ts | 4 +- src/services/syntax/syntaxKind.ts | 2 +- .../syntax/syntaxNodes.concrete.generated.ts | 8 +- src/services/syntax/syntaxUtilities.ts | 2 +- .../syntax/syntaxVisitor.generated.ts | 4 +- src/services/syntax/syntaxWalker.generated.ts | 2 +- 11 files changed, 95 insertions(+), 92 deletions(-) diff --git a/src/services/syntax/SyntaxGenerator.js b/src/services/syntax/SyntaxGenerator.js index 5ed7b5f28d1..6d1d80bb75e 100644 --- a/src/services/syntax/SyntaxGenerator.js +++ b/src/services/syntax/SyntaxGenerator.js @@ -555,80 +555,79 @@ var TypeScript; SyntaxKind[SyntaxKind["MemberFunctionDeclaration"] = 143] = "MemberFunctionDeclaration"; SyntaxKind[SyntaxKind["MemberVariableDeclaration"] = 144] = "MemberVariableDeclaration"; SyntaxKind[SyntaxKind["ConstructorDeclaration"] = 145] = "ConstructorDeclaration"; - SyntaxKind[SyntaxKind["IndexMemberDeclaration"] = 146] = "IndexMemberDeclaration"; - SyntaxKind[SyntaxKind["GetAccessor"] = 147] = "GetAccessor"; - SyntaxKind[SyntaxKind["SetAccessor"] = 148] = "SetAccessor"; - SyntaxKind[SyntaxKind["PropertySignature"] = 149] = "PropertySignature"; - SyntaxKind[SyntaxKind["CallSignature"] = 150] = "CallSignature"; - SyntaxKind[SyntaxKind["ConstructSignature"] = 151] = "ConstructSignature"; - SyntaxKind[SyntaxKind["IndexSignature"] = 152] = "IndexSignature"; - SyntaxKind[SyntaxKind["MethodSignature"] = 153] = "MethodSignature"; - SyntaxKind[SyntaxKind["Block"] = 154] = "Block"; - SyntaxKind[SyntaxKind["IfStatement"] = 155] = "IfStatement"; - SyntaxKind[SyntaxKind["VariableStatement"] = 156] = "VariableStatement"; - SyntaxKind[SyntaxKind["ExpressionStatement"] = 157] = "ExpressionStatement"; - SyntaxKind[SyntaxKind["ReturnStatement"] = 158] = "ReturnStatement"; - SyntaxKind[SyntaxKind["SwitchStatement"] = 159] = "SwitchStatement"; - SyntaxKind[SyntaxKind["BreakStatement"] = 160] = "BreakStatement"; - SyntaxKind[SyntaxKind["ContinueStatement"] = 161] = "ContinueStatement"; - SyntaxKind[SyntaxKind["ForStatement"] = 162] = "ForStatement"; - SyntaxKind[SyntaxKind["ForInStatement"] = 163] = "ForInStatement"; - SyntaxKind[SyntaxKind["EmptyStatement"] = 164] = "EmptyStatement"; - SyntaxKind[SyntaxKind["ThrowStatement"] = 165] = "ThrowStatement"; - SyntaxKind[SyntaxKind["WhileStatement"] = 166] = "WhileStatement"; - SyntaxKind[SyntaxKind["TryStatement"] = 167] = "TryStatement"; - SyntaxKind[SyntaxKind["LabeledStatement"] = 168] = "LabeledStatement"; - SyntaxKind[SyntaxKind["DoStatement"] = 169] = "DoStatement"; - SyntaxKind[SyntaxKind["DebuggerStatement"] = 170] = "DebuggerStatement"; - SyntaxKind[SyntaxKind["WithStatement"] = 171] = "WithStatement"; - SyntaxKind[SyntaxKind["PrefixUnaryExpression"] = 172] = "PrefixUnaryExpression"; - SyntaxKind[SyntaxKind["DeleteExpression"] = 173] = "DeleteExpression"; - SyntaxKind[SyntaxKind["TypeOfExpression"] = 174] = "TypeOfExpression"; - SyntaxKind[SyntaxKind["VoidExpression"] = 175] = "VoidExpression"; - SyntaxKind[SyntaxKind["ConditionalExpression"] = 176] = "ConditionalExpression"; - SyntaxKind[SyntaxKind["BinaryExpression"] = 177] = "BinaryExpression"; - SyntaxKind[SyntaxKind["PostfixUnaryExpression"] = 178] = "PostfixUnaryExpression"; - SyntaxKind[SyntaxKind["MemberAccessExpression"] = 179] = "MemberAccessExpression"; - SyntaxKind[SyntaxKind["InvocationExpression"] = 180] = "InvocationExpression"; - SyntaxKind[SyntaxKind["ArrayLiteralExpression"] = 181] = "ArrayLiteralExpression"; - SyntaxKind[SyntaxKind["ObjectLiteralExpression"] = 182] = "ObjectLiteralExpression"; - SyntaxKind[SyntaxKind["ObjectCreationExpression"] = 183] = "ObjectCreationExpression"; - SyntaxKind[SyntaxKind["ParenthesizedExpression"] = 184] = "ParenthesizedExpression"; - SyntaxKind[SyntaxKind["ParenthesizedArrowFunctionExpression"] = 185] = "ParenthesizedArrowFunctionExpression"; - SyntaxKind[SyntaxKind["SimpleArrowFunctionExpression"] = 186] = "SimpleArrowFunctionExpression"; - SyntaxKind[SyntaxKind["CastExpression"] = 187] = "CastExpression"; - SyntaxKind[SyntaxKind["ElementAccessExpression"] = 188] = "ElementAccessExpression"; - SyntaxKind[SyntaxKind["FunctionExpression"] = 189] = "FunctionExpression"; - SyntaxKind[SyntaxKind["OmittedExpression"] = 190] = "OmittedExpression"; - SyntaxKind[SyntaxKind["TemplateExpression"] = 191] = "TemplateExpression"; - SyntaxKind[SyntaxKind["TemplateAccessExpression"] = 192] = "TemplateAccessExpression"; - SyntaxKind[SyntaxKind["YieldExpression"] = 193] = "YieldExpression"; - SyntaxKind[SyntaxKind["AwaitExpression"] = 194] = "AwaitExpression"; - SyntaxKind[SyntaxKind["VariableDeclaration"] = 195] = "VariableDeclaration"; - SyntaxKind[SyntaxKind["VariableDeclarator"] = 196] = "VariableDeclarator"; - SyntaxKind[SyntaxKind["ArgumentList"] = 197] = "ArgumentList"; - SyntaxKind[SyntaxKind["ParameterList"] = 198] = "ParameterList"; - SyntaxKind[SyntaxKind["TypeArgumentList"] = 199] = "TypeArgumentList"; - SyntaxKind[SyntaxKind["TypeParameterList"] = 200] = "TypeParameterList"; - SyntaxKind[SyntaxKind["HeritageClause"] = 201] = "HeritageClause"; - SyntaxKind[SyntaxKind["EqualsValueClause"] = 202] = "EqualsValueClause"; - SyntaxKind[SyntaxKind["CaseSwitchClause"] = 203] = "CaseSwitchClause"; - SyntaxKind[SyntaxKind["DefaultSwitchClause"] = 204] = "DefaultSwitchClause"; - SyntaxKind[SyntaxKind["ElseClause"] = 205] = "ElseClause"; - SyntaxKind[SyntaxKind["CatchClause"] = 206] = "CatchClause"; - SyntaxKind[SyntaxKind["FinallyClause"] = 207] = "FinallyClause"; - SyntaxKind[SyntaxKind["TemplateClause"] = 208] = "TemplateClause"; - SyntaxKind[SyntaxKind["TypeParameter"] = 209] = "TypeParameter"; - SyntaxKind[SyntaxKind["Constraint"] = 210] = "Constraint"; - SyntaxKind[SyntaxKind["Parameter"] = 211] = "Parameter"; - SyntaxKind[SyntaxKind["EnumElement"] = 212] = "EnumElement"; - SyntaxKind[SyntaxKind["TypeAnnotation"] = 213] = "TypeAnnotation"; - SyntaxKind[SyntaxKind["ExpressionBody"] = 214] = "ExpressionBody"; - SyntaxKind[SyntaxKind["ComputedPropertyName"] = 215] = "ComputedPropertyName"; - SyntaxKind[SyntaxKind["PropertyAssignment"] = 216] = "PropertyAssignment"; - SyntaxKind[SyntaxKind["TypeAlias"] = 217] = "TypeAlias"; - SyntaxKind[SyntaxKind["ExternalModuleReference"] = 218] = "ExternalModuleReference"; - SyntaxKind[SyntaxKind["ModuleNameModuleReference"] = 219] = "ModuleNameModuleReference"; + SyntaxKind[SyntaxKind["GetAccessor"] = 146] = "GetAccessor"; + SyntaxKind[SyntaxKind["SetAccessor"] = 147] = "SetAccessor"; + SyntaxKind[SyntaxKind["PropertySignature"] = 148] = "PropertySignature"; + SyntaxKind[SyntaxKind["CallSignature"] = 149] = "CallSignature"; + SyntaxKind[SyntaxKind["ConstructSignature"] = 150] = "ConstructSignature"; + SyntaxKind[SyntaxKind["IndexSignature"] = 151] = "IndexSignature"; + SyntaxKind[SyntaxKind["MethodSignature"] = 152] = "MethodSignature"; + SyntaxKind[SyntaxKind["Block"] = 153] = "Block"; + SyntaxKind[SyntaxKind["IfStatement"] = 154] = "IfStatement"; + SyntaxKind[SyntaxKind["VariableStatement"] = 155] = "VariableStatement"; + SyntaxKind[SyntaxKind["ExpressionStatement"] = 156] = "ExpressionStatement"; + SyntaxKind[SyntaxKind["ReturnStatement"] = 157] = "ReturnStatement"; + SyntaxKind[SyntaxKind["SwitchStatement"] = 158] = "SwitchStatement"; + SyntaxKind[SyntaxKind["BreakStatement"] = 159] = "BreakStatement"; + SyntaxKind[SyntaxKind["ContinueStatement"] = 160] = "ContinueStatement"; + SyntaxKind[SyntaxKind["ForStatement"] = 161] = "ForStatement"; + SyntaxKind[SyntaxKind["ForInStatement"] = 162] = "ForInStatement"; + SyntaxKind[SyntaxKind["EmptyStatement"] = 163] = "EmptyStatement"; + SyntaxKind[SyntaxKind["ThrowStatement"] = 164] = "ThrowStatement"; + SyntaxKind[SyntaxKind["WhileStatement"] = 165] = "WhileStatement"; + SyntaxKind[SyntaxKind["TryStatement"] = 166] = "TryStatement"; + SyntaxKind[SyntaxKind["LabeledStatement"] = 167] = "LabeledStatement"; + SyntaxKind[SyntaxKind["DoStatement"] = 168] = "DoStatement"; + SyntaxKind[SyntaxKind["DebuggerStatement"] = 169] = "DebuggerStatement"; + SyntaxKind[SyntaxKind["WithStatement"] = 170] = "WithStatement"; + SyntaxKind[SyntaxKind["PrefixUnaryExpression"] = 171] = "PrefixUnaryExpression"; + SyntaxKind[SyntaxKind["DeleteExpression"] = 172] = "DeleteExpression"; + SyntaxKind[SyntaxKind["TypeOfExpression"] = 173] = "TypeOfExpression"; + SyntaxKind[SyntaxKind["VoidExpression"] = 174] = "VoidExpression"; + SyntaxKind[SyntaxKind["ConditionalExpression"] = 175] = "ConditionalExpression"; + SyntaxKind[SyntaxKind["BinaryExpression"] = 176] = "BinaryExpression"; + SyntaxKind[SyntaxKind["PostfixUnaryExpression"] = 177] = "PostfixUnaryExpression"; + SyntaxKind[SyntaxKind["MemberAccessExpression"] = 178] = "MemberAccessExpression"; + SyntaxKind[SyntaxKind["InvocationExpression"] = 179] = "InvocationExpression"; + SyntaxKind[SyntaxKind["ArrayLiteralExpression"] = 180] = "ArrayLiteralExpression"; + SyntaxKind[SyntaxKind["ObjectLiteralExpression"] = 181] = "ObjectLiteralExpression"; + SyntaxKind[SyntaxKind["ObjectCreationExpression"] = 182] = "ObjectCreationExpression"; + SyntaxKind[SyntaxKind["ParenthesizedExpression"] = 183] = "ParenthesizedExpression"; + SyntaxKind[SyntaxKind["ParenthesizedArrowFunctionExpression"] = 184] = "ParenthesizedArrowFunctionExpression"; + SyntaxKind[SyntaxKind["SimpleArrowFunctionExpression"] = 185] = "SimpleArrowFunctionExpression"; + SyntaxKind[SyntaxKind["TypeAssertionExpression"] = 186] = "TypeAssertionExpression"; + SyntaxKind[SyntaxKind["ElementAccessExpression"] = 187] = "ElementAccessExpression"; + SyntaxKind[SyntaxKind["FunctionExpression"] = 188] = "FunctionExpression"; + SyntaxKind[SyntaxKind["OmittedExpression"] = 189] = "OmittedExpression"; + SyntaxKind[SyntaxKind["TemplateExpression"] = 190] = "TemplateExpression"; + SyntaxKind[SyntaxKind["TemplateAccessExpression"] = 191] = "TemplateAccessExpression"; + SyntaxKind[SyntaxKind["YieldExpression"] = 192] = "YieldExpression"; + SyntaxKind[SyntaxKind["AwaitExpression"] = 193] = "AwaitExpression"; + SyntaxKind[SyntaxKind["VariableDeclaration"] = 194] = "VariableDeclaration"; + SyntaxKind[SyntaxKind["VariableDeclarator"] = 195] = "VariableDeclarator"; + SyntaxKind[SyntaxKind["ArgumentList"] = 196] = "ArgumentList"; + SyntaxKind[SyntaxKind["ParameterList"] = 197] = "ParameterList"; + SyntaxKind[SyntaxKind["TypeArgumentList"] = 198] = "TypeArgumentList"; + SyntaxKind[SyntaxKind["TypeParameterList"] = 199] = "TypeParameterList"; + SyntaxKind[SyntaxKind["HeritageClause"] = 200] = "HeritageClause"; + SyntaxKind[SyntaxKind["EqualsValueClause"] = 201] = "EqualsValueClause"; + SyntaxKind[SyntaxKind["CaseSwitchClause"] = 202] = "CaseSwitchClause"; + SyntaxKind[SyntaxKind["DefaultSwitchClause"] = 203] = "DefaultSwitchClause"; + SyntaxKind[SyntaxKind["ElseClause"] = 204] = "ElseClause"; + SyntaxKind[SyntaxKind["CatchClause"] = 205] = "CatchClause"; + SyntaxKind[SyntaxKind["FinallyClause"] = 206] = "FinallyClause"; + SyntaxKind[SyntaxKind["TemplateClause"] = 207] = "TemplateClause"; + SyntaxKind[SyntaxKind["TypeParameter"] = 208] = "TypeParameter"; + SyntaxKind[SyntaxKind["Constraint"] = 209] = "Constraint"; + SyntaxKind[SyntaxKind["Parameter"] = 210] = "Parameter"; + SyntaxKind[SyntaxKind["EnumElement"] = 211] = "EnumElement"; + SyntaxKind[SyntaxKind["TypeAnnotation"] = 212] = "TypeAnnotation"; + SyntaxKind[SyntaxKind["ExpressionBody"] = 213] = "ExpressionBody"; + SyntaxKind[SyntaxKind["ComputedPropertyName"] = 214] = "ComputedPropertyName"; + SyntaxKind[SyntaxKind["PropertyAssignment"] = 215] = "PropertyAssignment"; + SyntaxKind[SyntaxKind["TypeAlias"] = 216] = "TypeAlias"; + SyntaxKind[SyntaxKind["ExternalModuleReference"] = 217] = "ExternalModuleReference"; + SyntaxKind[SyntaxKind["ModuleNameModuleReference"] = 218] = "ModuleNameModuleReference"; SyntaxKind[SyntaxKind["FirstStandardKeyword"] = 17] = "FirstStandardKeyword"; SyntaxKind[SyntaxKind["LastStandardKeyword"] = 45] = "LastStandardKeyword"; SyntaxKind[SyntaxKind["FirstFutureReservedKeyword"] = 46] = "FirstFutureReservedKeyword"; @@ -648,7 +647,7 @@ var TypeScript; SyntaxKind[SyntaxKind["FirstTrivia"] = 2] = "FirstTrivia"; SyntaxKind[SyntaxKind["LastTrivia"] = 6] = "LastTrivia"; SyntaxKind[SyntaxKind["FirstNode"] = 125] = "FirstNode"; - SyntaxKind[SyntaxKind["LastNode"] = 219] = "LastNode"; + SyntaxKind[SyntaxKind["LastNode"] = 218] = "LastNode"; })(TypeScript.SyntaxKind || (TypeScript.SyntaxKind = {})); var SyntaxKind = TypeScript.SyntaxKind; })(TypeScript || (TypeScript = {})); @@ -1741,7 +1740,7 @@ var definitions = [ ] }, { - name: 'CastExpressionSyntax', + name: 'TypeAssertionExpressionSyntax', baseType: 'ISyntaxNode', interfaces: ['IUnaryExpressionSyntax'], children: [ diff --git a/src/services/syntax/SyntaxGenerator.js.map b/src/services/syntax/SyntaxGenerator.js.map index 18ee19dbf7c..03cbba80a47 100644 --- a/src/services/syntax/SyntaxGenerator.js.map +++ b/src/services/syntax/SyntaxGenerator.js.map @@ -19,6 +19,7 @@ <<<<<<< HEAD <<<<<<< HEAD <<<<<<< HEAD +<<<<<<< HEAD <<<<<<< Updated upstream {"version":3,"file":"SyntaxGenerator.js","sourceRoot":"","sources":["file:///C:/VSPro_1/src/typescript/public_cyrusn/src/compiler/sys.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/core/errors.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/core/arrayUtilities.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/core/stringUtilities.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/syntax/syntaxKind.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/syntax/syntaxFacts.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/syntax/SyntaxGenerator.ts"],"names":["getWScriptSystem","getWScriptSystem.readFile","getWScriptSystem.writeFile","getNodeSystem","getNodeSystem.readFile","getNodeSystem.writeFile","getNodeSystem.fileChanged","TypeScript","TypeScript.Errors","TypeScript.Errors.constructor","TypeScript.Errors.argument","TypeScript.Errors.argumentOutOfRange","TypeScript.Errors.argumentNull","TypeScript.Errors.abstract","TypeScript.Errors.notYetImplemented","TypeScript.Errors.invalidOperation","TypeScript.ArrayUtilities","TypeScript.ArrayUtilities.constructor","TypeScript.ArrayUtilities.sequenceEquals","TypeScript.ArrayUtilities.contains","TypeScript.ArrayUtilities.distinct","TypeScript.ArrayUtilities.last","TypeScript.ArrayUtilities.lastOrDefault","TypeScript.ArrayUtilities.firstOrDefault","TypeScript.ArrayUtilities.first","TypeScript.ArrayUtilities.sum","TypeScript.ArrayUtilities.select","TypeScript.ArrayUtilities.where","TypeScript.ArrayUtilities.any","TypeScript.ArrayUtilities.all","TypeScript.ArrayUtilities.binarySearch","TypeScript.ArrayUtilities.createArray","TypeScript.ArrayUtilities.grow","TypeScript.ArrayUtilities.copy","TypeScript.ArrayUtilities.indexOf","TypeScript.StringUtilities","TypeScript.StringUtilities.constructor","TypeScript.StringUtilities.isString","TypeScript.StringUtilities.endsWith","TypeScript.StringUtilities.startsWith","TypeScript.StringUtilities.repeat","TypeScript.SyntaxKind","TypeScript.SyntaxFacts","TypeScript.SyntaxFacts.getTokenKind","TypeScript.SyntaxFacts.getText","TypeScript.SyntaxFacts.isAnyKeyword","TypeScript.SyntaxFacts.isAnyPunctuation","TypeScript.SyntaxFacts.isPrefixUnaryExpressionOperatorToken","TypeScript.SyntaxFacts.isBinaryExpressionOperatorToken","TypeScript.SyntaxFacts.isAssignmentOperatorToken","TypeScript.SyntaxFacts.isType","firstKind","getStringWithoutSuffix","getNameWithoutSuffix","getType","camelCase","getSafeName","generateConstructorFunction","generateSyntaxInterfaces","generateSyntaxInterface","generateNodes","isInterface","generateWalker","firstEnumName","groupBy","generateKeywordCondition","min","max","generateUtilities","generateScannerUtilities","syntaxKindName","generateVisitor"],"mappings":"AA4BA,IAAI,GAAG,GAAW,CAAC;IAEf,SAAS,gBAAgB;QAErBA,IAAIA,GAAGA,GAAGA,IAAIA,aAAaA,CAACA,4BAA4BA,CAACA,CAACA;QAE1DA,IAAIA,UAAUA,GAAGA,IAAIA,aAAaA,CAACA,cAAcA,CAACA,CAACA;QACnDA,UAAUA,CAACA,IAAIA,GAAGA,CAACA,CAAUA;QAE7BA,IAAIA,YAAYA,GAAGA,IAAIA,aAAaA,CAACA,cAAcA,CAACA,CAACA;QACrDA,YAAYA,CAACA,IAAIA,GAAGA,CAACA,CAAYA;QAEjCA,IAAIA,IAAIA,GAAaA,EAAEA,CAACA;QACxBA,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,OAAOA,CAACA,SAASA,CAACA,MAAMA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;YAChDA,IAAIA,CAACA,CAACA,CAACA,GAAGA,OAAOA,CAACA,SAASA,CAACA,IAAIA,CAACA,CAACA,CAACA,CAACA;QACxCA,CAACA;QAEDA,SAASA,QAAQA,CAACA,QAAgBA,EAAEA,QAAiBA;YACjDC,EAAEA,CAACA,CAACA,CAACA,GAAGA,CAACA,UAAUA,CAACA,QAAQA,CAACA,CAACA,CAACA,CAACA;gBAC5BA,MAAMA,CAACA,SAASA,CAACA;YACrBA,CAACA;YACDA,UAAUA,CAACA,IAAIA,EAAEA,CAACA;YAClBA,IAAAA,CAACA;gBACGA,EAAEA,CAACA,CAACA,QAAQA,CAACA,CAACA,CAACA;oBACXA,UAAUA,CAACA,OAAOA,GAAGA,QAAQA,CAACA;oBAC9BA,UAAUA,CAACA,YAAYA,CAACA,QAAQA,CAACA,CAACA;gBACtCA,CAACA;gBACDA,IAAIA,CAACA,CAACA;oBAEFA,UAAUA,CAACA,OAAOA,GAAGA,QAAQA,CAACA;oBAC9BA,UAAUA,CAACA,YAAYA,CAACA,QAAQA,CAACA,CAACA;oBAClCA,IAAIA,GAAGA,GAAGA,UAAUA,CAACA,QAAQA,CAACA,CAACA,CAACA,IAAIA,EAAEA,CAACA;oBAEvCA,UAAUA,CAACA,QAAQA,GAAGA,CAACA,CAACA;oBAExBA,UAAUA,CAACA,OAAOA,GAAGA,GAAGA,CAACA,MAAMA,IAAIA,CAACA,IAAIA,CAACA,GAAGA,CAACA,UAAUA,CAACA,CAACA,CAACA,KAAKA,IAAIA,IAAIA,GAAGA,CAACA,UAAUA,CAACA,CAACA,CAACA,KAAKA,IAAIA,IAAIA,GAAGA,CAACA,UAAUA,CAACA,CAACA,CAACA,KAAKA,IAAIA,IAAIA,GAAGA,CAACA,UAAUA,CAACA,CAACA,CAACA,KAAKA,IAAIA,CAACA,GAAGA,SAASA,GAAGA,OAAOA,CAACA;gBACzLA,CAACA;gBAEDA,MAAMA,CAACA,UAAUA,CAACA,QAAQA,EAAEA,CAACA;YACjCA,CACAA;YAAAA,KAAKA,CAACA,CAACA,CAACA,CAACA,CAATA,CAACA;gBACGA,MAAMA,CAACA,CAACA;YACZA,CAACA;oBACDA,CAACA;gBACGA,UAAUA,CAACA,KAAKA,EAAEA,CAACA;YACvBA,CAACA;QACLA,CAACA;QAEDD,SAASA,SAASA,CAACA,QAAgBA,EAAEA,IAAYA,EAAEA,kBAA4BA;YAC3EE,UAAUA,CAACA,IAAIA,EAAEA,CAACA;YAClBA,YAAYA,CAACA,IAAIA,EAAEA,CAACA;YACpBA,IAAAA,CAACA;gBAEGA,UAAUA,CAACA,OAAOA,GAAGA,OAAOA,CAACA;gBAC7BA,UAAUA,CAACA,SAASA,CAACA,IAAIA,CAACA,CAACA;gBAG3BA,EAAEA,CAACA,CAACA,kBAAkBA,CAACA,CAACA,CAACA;oBACrBA,UAAUA,CAACA,QAAQA,GAAGA,CAACA,CAACA;gBAC5BA,CAACA;gBACDA,IAAIA,CAACA,CAACA;oBACFA,UAAUA,CAACA,QAAQA,GAAGA,CAACA,CAACA;gBAC5BA,CAACA;gBACDA,UAAUA,CAACA,MAAMA,CAACA,YAAYA,CAACA,CAACA;gBAChCA,YAAYA,CAACA,UAAUA,CAACA,QAAQA,EAAEA,CAACA,CAAeA,CAACA;YACvDA,CAACA;oBACDA,CAACA;gBACGA,YAAYA,CAACA,KAAKA,EAAEA,CAACA;gBACrBA,UAAUA,CAACA,KAAKA,EAAEA,CAACA;YACvBA,CAACA;QACLA,CAACA;QAEDF,MAAMA,CAACA;YACHA,IAAIA,EAAEA,IAAIA;YACVA,OAAOA,EAAEA,MAAMA;YACfA,yBAAyBA,EAAEA,KAAKA;YAChCA,KAAKA,EAALA,UAAMA,CAASA;gBACX,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAC5B,CAAC;YACDA,QAAQA,EAAEA,QAAQA;YAClBA,SAASA,EAAEA,SAASA;YACpBA,WAAWA,EAAXA,UAAYA,IAAYA;gBACpB,MAAM,CAAC,GAAG,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;YACzC,CAAC;YACDA,UAAUA,EAAVA,UAAWA,IAAYA;gBACnB,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YAChC,CAAC;YACDA,eAAeA,EAAfA,UAAgBA,IAAYA;gBACxB,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;YAClC,CAAC;YACDA,eAAeA,EAAfA,UAAgBA,aAAqBA;gBACjC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;oBACvC,GAAG,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC;gBACpC,CAAC;YACL,CAAC;YACDA,oBAAoBA,EAApBA;gBACI,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC;YAClC,CAAC;YACDA,mBAAmBA,EAAnBA;gBACI,MAAM,CAAC,IAAI,aAAa,CAAC,eAAe,CAAC,CAAC,gBAAgB,CAAC;YAC/D,CAAC;YACDA,IAAIA,EAAJA,UAAKA,QAAiBA;gBAClB,IAAA,CAAC;oBACG,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBAC3B,CACA;gBAAA,KAAK,CAAC,CAAC,CAAC,CAAC,CAAT,CAAC;gBACD,CAAC;YACL,CAAC;SACJA,CAACA;IACNA,CAACA;IACD,SAAS,aAAa;QAClBG,IAAIA,GAAGA,GAAGA,OAAOA,CAACA,IAAIA,CAACA,CAACA;QACxBA,IAAIA,KAAKA,GAAGA,OAAOA,CAACA,MAAMA,CAACA,CAACA;QAC5BA,IAAIA,GAAGA,GAAGA,OAAOA,CAACA,IAAIA,CAACA,CAACA;QAExBA,IAAIA,QAAQA,GAAWA,GAAGA,CAACA,QAAQA,EAAEA,CAACA;QAEtCA,IAAIA,yBAAyBA,GAAGA,QAAQA,KAAKA,OAAOA,IAAIA,QAAQA,KAAKA,OAAOA,IAAIA,QAAQA,KAAKA,QAAQA,CAACA;QAEtGA,SAASA,QAAQA,CAACA,QAAgBA,EAAEA,QAAiBA;YACjDC,EAAEA,CAACA,CAACA,CAACA,GAAGA,CAACA,UAAUA,CAACA,QAAQA,CAACA,CAACA,CAACA,CAACA;gBAC5BA,MAAMA,CAACA,SAASA,CAACA;YACrBA,CAACA;YACDA,IAAIA,MAAMA,GAAGA,GAAGA,CAACA,YAAYA,CAACA,QAAQA,CAACA,CAACA;YACxCA,IAAIA,GAAGA,GAAGA,MAAMA,CAACA,MAAMA,CAACA;YACxBA,EAAEA,CAACA,CAACA,GAAGA,IAAIA,CAACA,IAAIA,MAAMA,CAACA,CAACA,CAACA,KAAKA,IAAIA,IAAIA,MAAMA,CAACA,CAACA,CAACA,KAAKA,IAAIA,CAACA,CAACA,CAACA;gBAGvDA,GAAGA,IAAIA,CAACA,CAACA,CAACA;gBACVA,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,GAAGA,EAAEA,CAACA,IAAIA,CAACA,EAAEA,CAACA;oBAC9BA,IAAIA,IAAIA,GAAGA,MAAMA,CAACA,CAACA,CAACA,CAACA;oBACrBA,MAAMA,CAACA,CAACA,CAACA,GAAGA,MAAMA,CAACA,CAACA,GAAGA,CAACA,CAACA,CAACA;oBAC1BA,MAAMA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,IAAIA,CAACA;gBACzBA,CAACA;gBACDA,MAAMA,CAACA,MAAMA,CAACA,QAAQA,CAACA,SAASA,EAAEA,CAACA,CAACA,CAACA;YACzCA,CAACA;YACDA,EAAEA,CAACA,CAACA,GAAGA,IAAIA,CAACA,IAAIA,MAAMA,CAACA,CAACA,CAACA,KAAKA,IAAIA,IAAIA,MAAMA,CAACA,CAACA,CAACA,KAAKA,IAAIA,CAACA,CAACA,CAACA;gBAEvDA,MAAMA,CAACA,MAAMA,CAACA,QAAQA,CAACA,SAASA,EAAEA,CAACA,CAACA,CAACA;YACzCA,CAACA;YACDA,EAAEA,CAACA,CAACA,GAAGA,IAAIA,CAACA,IAAIA,MAAMA,CAACA,CAACA,CAACA,KAAKA,IAAIA,IAAIA,MAAMA,CAACA,CAACA,CAACA,KAAKA,IAAIA,IAAIA,MAAMA,CAACA,CAACA,CAACA,KAAKA,IAAIA,CAACA,CAACA,CAACA;gBAE7EA,MAAMA,CAACA,MAAMA,CAACA,QAAQA,CAACA,MAAMA,EAAEA,CAACA,CAACA,CAACA;YACtCA,CAACA;YAEDA,MAAMA,CAACA,MAAMA,CAACA,QAAQA,CAACA,MAAMA,CAACA,CAACA;QACnCA,CAACA;QAEDD,SAASA,SAASA,CAACA,QAAgBA,EAAEA,IAAYA,EAAEA,kBAA4BA;YAE3EE,EAAEA,CAACA,CAACA,kBAAkBA,CAACA,CAACA,CAACA;gBACrBA,IAAIA,GAAGA,QAAQA,GAAGA,IAAIA,CAACA;YAC3BA,CAACA;YAEDA,GAAGA,CAACA,aAAaA,CAACA,QAAQA,EAAEA,IAAIA,EAAEA,MAAMA,CAACA,CAACA;QAC9CA,CAACA;QAEDF,MAAMA,CAACA;YACHA,IAAIA,EAAEA,OAAOA,CAACA,IAAIA,CAACA,KAAKA,CAACA,CAACA,CAACA;YAC3BA,OAAOA,EAAEA,GAAGA,CAACA,GAAGA;YAChBA,yBAAyBA,EAAEA,yBAAyBA;YACpDA,KAAKA,EAALA,UAAMA,CAASA;gBAEZ,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YACvB,CAAC;YACDA,QAAQA,EAAEA,QAAQA;YAClBA,SAASA,EAAEA,SAASA;YACpBA,SAASA,EAAEA,UAACA,QAAQA,EAAEA,QAAQA;gBAE1BA,GAAGA,CAACA,SAASA,CAACA,QAAQA,EAAEA,EAAEA,UAAUA,EAAEA,IAAIA,EAAEA,QAAQA,EAAEA,GAAGA,EAAEA,EAAEA,WAAWA,CAACA,CAACA;gBAE1EA,MAAMA,CAACA;oBACHA,KAAKA,EAALA;wBAAU,GAAG,CAAC,WAAW,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;oBAAC,CAAC;iBACtDA,CAACA;gBAEFA,SAASA,WAAWA,CAACA,IAASA,EAAEA,IAASA;oBACrCG,EAAEA,CAACA,CAACA,CAACA,IAAIA,CAACA,KAAKA,IAAIA,CAACA,IAAIA,CAACA,KAAKA,CAACA,CAACA,CAACA;wBAC7BA,MAAMA,CAACA;oBACXA,CAACA;oBAEDA,QAAQA,CAACA,QAAQA,CAACA,CAACA;gBACvBA,CAACA;gBAAAH,CAACA;YACNA,CAACA;YACDA,WAAWA,EAAEA,UAAUA,IAAYA;gBAC/B,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAC/B,CAAC;YACDA,UAAUA,EAAVA,UAAWA,IAAYA;gBACnB,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YAChC,CAAC;YACDA,eAAeA,EAAfA,UAAgBA,IAAYA;gBACxB,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC;YACpE,CAAC;YACDA,eAAeA,EAAfA,UAAgBA,aAAqBA;gBACjC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;oBACvC,GAAG,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;gBACjC,CAAC;YACL,CAAC;YACDA,oBAAoBA,EAApBA;gBACI,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC;YACvC,CAAC;YACDA,mBAAmBA,EAAnBA;gBACI,MAAM,CAAO,OAAQ,CAAC,GAAG,EAAE,CAAC;YAChC,CAAC;YACDA,cAAcA,EAAdA;gBACI,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;oBACZ,MAAM,CAAC,EAAE,EAAE,CAAC;gBAChB,CAAC;gBACD,MAAM,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC;YAC1C,CAAC;YACDA,IAAIA,EAAJA,UAAKA,QAAiBA;gBAClB,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC3B,CAAC;SACJA,CAACA;IACNA,CAACA;IACD,EAAE,CAAC,CAAC,OAAO,OAAO,KAAK,WAAW,IAAI,OAAO,aAAa,KAAK,UAAU,CAAC,CAAC,CAAC;QACxE,MAAM,CAAC,gBAAgB,EAAE,CAAC;IAC9B,CAAC;IACD,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,KAAK,WAAW,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;QACvD,MAAM,CAAC,aAAa,EAAE,CAAC;IAC3B,CAAC;IACD,IAAI,CAAC,CAAC;QACF,MAAM,CAAC,SAAS,CAAC;IACrB,CAAC;AACL,CAAC,CAAC,EAAE,CAAC;ACzPL,IAAO,UAAU,CA0BhB;AA1BD,WAAO,UAAU,EAAC,CAAC;IACfI,IAAaA,MAAMA;QAAnBC,SAAaA,MAAMA;QAwBnBC,CAACA;QAvBiBD,eAAQA,GAAtBA,UAAuBA,QAAgBA,EAAEA,OAAgBA;YACrDE,MAAMA,CAACA,IAAIA,KAAKA,CAACA,oBAAoBA,GAAGA,QAAQA,GAAGA,IAAIA,GAAGA,OAAOA,CAACA,CAACA;QACvEA,CAACA;QAEaF,yBAAkBA,GAAhCA,UAAiCA,QAAgBA;YAC7CG,MAAMA,CAACA,IAAIA,KAAKA,CAACA,yBAAyBA,GAAGA,QAAQA,CAACA,CAACA;QAC3DA,CAACA;QAEaH,mBAAYA,GAA1BA,UAA2BA,QAAgBA;YACvCI,MAAMA,CAACA,IAAIA,KAAKA,CAACA,iBAAiBA,GAAGA,QAAQA,CAACA,CAACA;QACnDA,CAACA;QAEaJ,eAAQA,GAAtBA;YACIK,MAAMA,CAACA,IAAIA,KAAKA,CAACA,iDAAiDA,CAACA,CAACA;QACxEA,CAACA;QAEaL,wBAAiBA,GAA/BA;YACIM,MAAMA,CAACA,IAAIA,KAAKA,CAACA,sBAAsBA,CAACA,CAACA;QAC7CA,CAACA;QAEaN,uBAAgBA,GAA9BA,UAA+BA,OAAgBA;YAC3CO,MAAMA,CAACA,IAAIA,KAAKA,CAACA,qBAAqBA,GAAGA,OAAOA,CAACA,CAACA;QACtDA,CAACA;QACLP,aAACA;IAADA,CAACA,AAxBDD,IAwBCA;IAxBYA,iBAAMA,GAANA,MAwBZA,CAAAA;AACLA,CAACA,EA1BM,UAAU,KAAV,UAAU,QA0BhB;AC1BD,IAAO,UAAU,CA0MhB;AA1MD,WAAO,UAAU,EAAC,CAAC;IACfA,IAAaA,cAAcA;QAA3BS,SAAaA,cAAcA;QAwM3BC,CAACA;QAvMiBD,6BAAcA,GAA5BA,UAAgCA,MAAWA,EAAEA,MAAWA,EAAEA,MAAiCA;YACvFE,EAAEA,CAACA,CAACA,MAAMA,KAAKA,MAAMA,CAACA,CAACA,CAACA;gBACpBA,MAAMA,CAACA,IAAIA,CAACA;YAChBA,CAACA;YAEDA,EAAEA,CAACA,CAACA,CAACA,MAAMA,IAAIA,CAACA,MAAMA,CAACA,CAACA,CAACA;gBACrBA,MAAMA,CAACA,KAAKA,CAACA;YACjBA,CAACA;YAEDA,EAAEA,CAACA,CAACA,MAAMA,CAACA,MAAMA,KAAKA,MAAMA,CAACA,MAAMA,CAACA,CAACA,CAACA;gBAClCA,MAAMA,CAACA,KAAKA,CAACA;YACjBA,CAACA;YAEDA,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,MAAMA,CAACA,MAAMA,EAAEA,CAACA,GAAGA,CAACA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;gBAC5CA,EAAEA,CAACA,CAACA,CAACA,MAAMA,CAACA,MAAMA,CAACA,CAACA,CAACA,EAAEA,MAAMA,CAACA,CAACA,CAACA,CAACA,CAACA,CAACA,CAACA;oBAChCA,MAAMA,CAACA,KAAKA,CAACA;gBACjBA,CAACA;YACLA,CAACA;YAEDA,MAAMA,CAACA,IAAIA,CAACA;QAChBA,CAACA;QAEaF,uBAAQA,GAAtBA,UAA0BA,KAAUA,EAAEA,KAAQA;YAC1CG,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,KAAKA,CAACA,MAAMA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;gBACpCA,EAAEA,CAACA,CAACA,KAAKA,CAACA,CAACA,CAACA,KAAKA,KAAKA,CAACA,CAACA,CAACA;oBACrBA,MAAMA,CAACA,IAAIA,CAACA;gBAChBA,CAACA;YACLA,CAACA;YAEDA,MAAMA,CAACA,KAAKA,CAACA;QACjBA,CAACA;QAGaH,uBAAQA,GAAtBA,UAA0BA,KAAUA,EAAEA,QAAkCA;YACpEI,IAAIA,MAAMA,GAAQA,EAAEA,CAACA;YAGrBA,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,KAAKA,CAACA,MAAMA,EAAEA,CAACA,GAAGA,CAACA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;gBAC3CA,IAAIA,OAAOA,GAAGA,KAAKA,CAACA,CAACA,CAACA,CAACA;gBACvBA,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,MAAMA,CAACA,MAAMA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;oBACrCA,EAAEA,CAACA,CAACA,QAAQA,CAACA,MAAMA,CAACA,CAACA,CAACA,EAAEA,OAAOA,CAACA,CAACA,CAACA,CAACA;wBAC/BA,KAAKA,CAACA;oBACVA,CAACA;gBACLA,CAACA;gBAEDA,EAAEA,CAACA,CAACA,CAACA,KAAKA,MAAMA,CAACA,MAAMA,CAACA,CAACA,CAACA;oBACtBA,MAAMA,CAACA,IAAIA,CAACA,OAAOA,CAACA,CAACA;gBACzBA,CAACA;YACLA,CAACA;YAEDA,MAAMA,CAACA,MAAMA,CAACA;QAClBA,CAACA;QAEaJ,mBAAIA,GAAlBA,UAAsBA,KAAUA;YAC5BK,EAAEA,CAACA,CAACA,KAAKA,CAACA,MAAMA,KAAKA,CAACA,CAACA,CAACA,CAACA;gBACrBA,MAAMA,iBAAMA,CAACA,kBAAkBA,CAACA,OAAOA,CAACA,CAACA;YAC7CA,CAACA;YAEDA,MAAMA,CAACA,KAAKA,CAACA,KAAKA,CAACA,MAAMA,GAAGA,CAACA,CAACA,CAACA;QACnCA,CAACA;QAEaL,4BAAaA,GAA3BA,UAA+BA,KAAUA,EAAEA,SAA2CA;YAClFM,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,KAAKA,CAACA,MAAMA,GAAGA,CAACA,EAAEA,CAACA,IAAIA,CAACA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;gBACzCA,IAAIA,CAACA,GAAGA,KAAKA,CAACA,CAACA,CAACA,CAACA;gBACjBA,EAAEA,CAACA,CAACA,SAASA,CAACA,CAACA,EAAEA,CAACA,CAACA,CAACA,CAACA,CAACA;oBAClBA,MAAMA,CAACA,CAACA,CAACA;gBACbA,CAACA;YACLA,CAACA;YAEDA,MAAMA,CAACA,SAASA,CAACA;QACrBA,CAACA;QAEaN,6BAAcA,GAA5BA,UAAgCA,KAAUA,EAAEA,IAAsCA;YAC9EO,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,KAAKA,CAACA,MAAMA,EAAEA,CAACA,GAAGA,CAACA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;gBAC3CA,IAAIA,KAAKA,GAAGA,KAAKA,CAACA,CAACA,CAACA,CAACA;gBACrBA,EAAEA,CAACA,CAACA,IAAIA,CAACA,KAAKA,EAAEA,CAACA,CAACA,CAACA,CAACA,CAACA;oBACjBA,MAAMA,CAACA,KAAKA,CAACA;gBACjBA,CAACA;YACLA,CAACA;YAEDA,MAAMA,CAACA,SAASA,CAACA;QACrBA,CAACA;QAEaP,oBAAKA,GAAnBA,UAAuBA,KAAUA,EAAEA,IAAuCA;YACtEQ,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,KAAKA,CAACA,MAAMA,EAAEA,CAACA,GAAGA,CAACA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;gBAC3CA,IAAIA,KAAKA,GAAGA,KAAKA,CAACA,CAACA,CAACA,CAACA;gBACrBA,EAAEA,CAACA,CAACA,CAACA,IAAIA,IAAIA,IAAIA,CAACA,KAAKA,EAAEA,CAACA,CAACA,CAACA,CAACA,CAACA;oBAC1BA,MAAMA,CAACA,KAAKA,CAACA;gBACjBA,CAACA;YACLA,CAACA;YAEDA,MAAMA,iBAAMA,CAACA,gBAAgBA,EAAEA,CAACA;QACpCA,CAACA;QAEaR,kBAAGA,GAAjBA,UAAqBA,KAAUA,EAAEA,IAAsBA;YACnDS,IAAIA,MAAMA,GAAGA,CAACA,CAACA;YAEfA,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,KAAKA,CAACA,MAAMA,EAAEA,CAACA,GAAGA,CAACA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;gBAC3CA,MAAMA,IAAIA,IAAIA,CAACA,KAAKA,CAACA,CAACA,CAACA,CAACA,CAACA;YAC7BA,CAACA;YAEDA,MAAMA,CAACA,MAAMA,CAACA;QAClBA,CAACA;QAEaT,qBAAMA,GAApBA,UAA0BA,MAAWA,EAAEA,IAAiBA;YACpDU,IAAIA,MAAMA,GAAQA,IAAIA,KAAKA,CAAIA,MAAMA,CAACA,MAAMA,CAACA,CAACA;YAE9CA,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,MAAMA,CAACA,MAAMA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;gBACrCA,MAAMA,CAACA,CAACA,CAACA,GAAGA,IAAIA,CAACA,MAAMA,CAACA,CAACA,CAACA,CAACA,CAACA;YAChCA,CAACA;YAEDA,MAAMA,CAACA,MAAMA,CAACA;QAClBA,CAACA;QAEaV,oBAAKA,GAAnBA,UAAuBA,MAAWA,EAAEA,IAAuBA;YACvDW,IAAIA,MAAMA,GAAGA,IAAIA,KAAKA,EAAKA,CAACA;YAE5BA,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,MAAMA,CAACA,MAAMA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;gBACrCA,EAAEA,CAACA,CAACA,IAAIA,CAACA,MAAMA,CAACA,CAACA,CAACA,CAACA,CAACA,CAACA,CAACA;oBAClBA,MAAMA,CAACA,IAAIA,CAACA,MAAMA,CAACA,CAACA,CAACA,CAACA,CAACA;gBAC3BA,CAACA;YACLA,CAACA;YAEDA,MAAMA,CAACA,MAAMA,CAACA;QAClBA,CAACA;QAEaX,kBAAGA,GAAjBA,UAAqBA,KAAUA,EAAEA,IAAuBA;YACpDY,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,KAAKA,CAACA,MAAMA,EAAEA,CAACA,GAAGA,CAACA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;gBAC3CA,EAAEA,CAACA,CAACA,IAAIA,CAACA,KAAKA,CAACA,CAACA,CAACA,CAACA,CAACA,CAACA,CAACA;oBACjBA,MAAMA,CAACA,IAAIA,CAACA;gBAChBA,CAACA;YACLA,CAACA;YAEDA,MAAMA,CAACA,KAAKA,CAACA;QACjBA,CAACA;QAEaZ,kBAAGA,GAAjBA,UAAqBA,KAAUA,EAAEA,IAAuBA;YACpDa,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,KAAKA,CAACA,MAAMA,EAAEA,CAACA,GAAGA,CAACA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;gBAC3CA,EAAEA,CAACA,CAACA,CAACA,IAAIA,CAACA,KAAKA,CAACA,CAACA,CAACA,CAACA,CAACA,CAACA,CAACA;oBAClBA,MAAMA,CAACA,KAAKA,CAACA;gBACjBA,CAACA;YACLA,CAACA;YAEDA,MAAMA,CAACA,IAAIA,CAACA;QAChBA,CAACA;QAEab,2BAAYA,GAA1BA,UAA2BA,KAAeA,EAAEA,KAAaA;YACrDc,IAAIA,GAAGA,GAAGA,CAACA,CAACA;YACZA,IAAIA,IAAIA,GAAGA,KAAKA,CAACA,MAAMA,GAAGA,CAACA,CAACA;YAE5BA,OAAOA,GAAGA,IAAIA,IAAIA,EAAEA,CAACA;gBACjBA,IAAIA,MAAMA,GAAGA,GAAGA,GAAGA,CAACA,CAACA,IAAIA,GAAGA,GAAGA,CAACA,IAAIA,CAACA,CAACA,CAACA;gBACvCA,IAAIA,QAAQA,GAAGA,KAAKA,CAACA,MAAMA,CAACA,CAACA;gBAE7BA,EAAEA,CAACA,CAACA,QAAQA,KAAKA,KAAKA,CAACA,CAACA,CAACA;oBACrBA,MAAMA,CAACA,MAAMA,CAACA;gBAClBA,CAACA;gBACDA,IAAIA,CAACA,EAAEA,CAACA,CAACA,QAAQA,GAAGA,KAAKA,CAACA,CAACA,CAACA;oBACxBA,IAAIA,GAAGA,MAAMA,GAAGA,CAACA,CAACA;gBACtBA,CAACA;gBACDA,IAAIA,CAACA,CAACA;oBACFA,GAAGA,GAAGA,MAAMA,GAAGA,CAACA,CAACA;gBACrBA,CAACA;YACLA,CAACA;YAEDA,MAAMA,CAACA,CAACA,GAAGA,CAACA;QAChBA,CAACA;QAEad,0BAAWA,GAAzBA,UAA6BA,MAAcA,EAAEA,YAAiBA;YAC1De,IAAIA,MAAMA,GAAGA,IAAIA,KAAKA,CAAIA,MAAMA,CAACA,CAACA;YAClCA,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,MAAMA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;gBAC9BA,MAAMA,CAACA,CAACA,CAACA,GAAGA,YAAYA,CAACA;YAC7BA,CAACA;YAEDA,MAAMA,CAACA,MAAMA,CAACA;QAClBA,CAACA;QAEaf,mBAAIA,GAAlBA,UAAsBA,KAAUA,EAAEA,MAAcA,EAAEA,YAAeA;YAC7DgB,IAAIA,KAAKA,GAAGA,MAAMA,GAAGA,KAAKA,CAACA,MAAMA,CAACA;YAClCA,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,KAAKA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;gBAC7BA,KAAKA,CAACA,IAAIA,CAACA,YAAYA,CAACA,CAACA;YAC7BA,CAACA;QACLA,CAACA;QAEahB,mBAAIA,GAAlBA,UAAsBA,WAAgBA,EAAEA,WAAmBA,EAAEA,gBAAqBA,EAAEA,gBAAwBA,EAAEA,MAAcA;YACxHiB,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,MAAMA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;gBAC9BA,gBAAgBA,CAACA,gBAAgBA,GAAGA,CAACA,CAACA,GAAGA,WAAWA,CAACA,WAAWA,GAAGA,CAACA,CAACA,CAACA;YAC1EA,CAACA;QACLA,CAACA;QAEajB,sBAAOA,GAArBA,UAAyBA,KAAUA,EAAEA,SAA4BA;YAC7DkB,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,KAAKA,CAACA,MAAMA,EAAEA,CAACA,GAAGA,CAACA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;gBAC3CA,EAAEA,CAACA,CAACA,SAASA,CAACA,KAAKA,CAACA,CAACA,CAACA,CAACA,CAACA,CAACA,CAACA;oBACtBA,MAAMA,CAACA,CAACA,CAACA;gBACbA,CAACA;YACLA,CAACA;YAEDA,MAAMA,CAACA,CAACA,CAACA,CAACA;QACdA,CAACA;QACLlB,qBAACA;IAADA,CAACA,AAxMDT,IAwMCA;IAxMYA,yBAAcA,GAAdA,cAwMZA,CAAAA;AACLA,CAACA,EA1MM,UAAU,KAAV,UAAU,QA0MhB;AC1MD,IAAO,UAAU,CAkBhB;AAlBD,WAAO,UAAU,EAAC,CAAC;IACfA,IAAaA,eAAeA;QAA5B4B,SAAaA,eAAeA;QAgB5BC,CAACA;QAfiBD,wBAAQA,GAAtBA,UAAuBA,KAAUA;YAC7BE,MAAMA,CAACA,MAAMA,CAACA,SAASA,CAACA,QAAQA,CAACA,KAAKA,CAACA,KAAKA,EAAEA,EAAEA,CAACA,KAAKA,iBAAiBA,CAACA;QAC5EA,CAACA;QAEaF,wBAAQA,GAAtBA,UAAuBA,MAAcA,EAAEA,KAAaA;YAChDG,MAAMA,CAACA,MAAMA,CAACA,SAASA,CAACA,MAAMA,CAACA,MAAMA,GAAGA,KAAKA,CAACA,MAAMA,EAAEA,MAAMA,CAACA,MAAMA,CAACA,KAAKA,KAAKA,CAACA;QACnFA,CAACA;QAEaH,0BAAUA,GAAxBA,UAAyBA,MAAcA,EAAEA,KAAaA;YAClDI,MAAMA,CAACA,MAAMA,CAACA,MAAMA,CAACA,CAACA,EAAEA,KAAKA,CAACA,MAAMA,CAACA,KAAKA,KAAKA,CAACA;QACpDA,CAACA;QAEaJ,sBAAMA,GAApBA,UAAqBA,KAAaA,EAAEA,KAAaA;YAC7CK,MAAMA,CAACA,KAAKA,CAACA,KAAKA,GAAGA,CAACA,CAACA,CAACA,IAAIA,CAACA,KAAKA,CAACA,CAACA;QACxCA,CAACA;QACLL,sBAACA;IAADA,CAACA,AAhBD5B,IAgBCA;IAhBYA,0BAAeA,GAAfA,eAgBZA,CAAAA;AACLA,CAACA,EAlBM,UAAU,KAAV,UAAU,QAkBhB;AClBD,IAAO,UAAU,CA4ShB;AA5SD,WAAO,UAAU,EAAC,CAAC;IACfA,WAAYA,UAAUA;QAElBkC,2CAAIA;QACJA,2CAAIA;QAGJA,mEAAgBA;QAChBA,6DAAaA;QACbA,+EAAsBA;QACtBA,iFAAuBA;QACvBA,uEAAkBA;QAIlBA,uDAAUA;QACVA,+DAAcA;QAGdA,+DAAcA;QAGdA,oFAAwBA;QACxBA,gEAAcA;QACdA,8DAAaA;QAGbA,0FAA2BA;QAC3BA,wEAAkBA;QAClBA,0EAAmBA;QACnBA,oEAAgBA;QAKhBA,4DAAYA;QACZA,0DAAWA;QACXA,4DAAYA;QACZA,kEAAeA;QACfA,kEAAeA;QACfA,gEAAcA;QACdA,8DAAaA;QACbA,sDAASA;QACTA,0DAAWA;QACXA,4DAAYA;QACZA,gEAAcA;QACdA,wDAAUA;QACVA,kEAAeA;QACfA,sDAASA;QACTA,sDAASA;QACTA,sEAAiBA;QACjBA,wDAAUA;QACVA,0DAAWA;QACXA,8DAAaA;QACbA,8DAAaA;QACbA,0DAAWA;QACXA,4DAAYA;QACZA,0DAAWA;QACXA,wDAAUA;QACVA,8DAAaA;QACbA,wDAAUA;QACVA,0DAAWA;QACXA,4DAAYA;QACZA,0DAAWA;QAGXA,4DAAYA;QACZA,4DAAYA;QACZA,0DAAWA;QACXA,8DAAaA;QACbA,gEAAcA;QACdA,8DAAaA;QACbA,4DAAYA;QAGZA,sEAAiBA;QACjBA,oEAAgBA;QAChBA,wDAAUA;QACVA,gEAAcA;QACdA,gEAAcA;QACdA,oEAAgBA;QAChBA,8DAAaA;QACbA,8DAAaA;QACbA,4DAAYA;QAGZA,wDAAUA;QACVA,gEAAcA;QACdA,wEAAkBA;QAClBA,gEAAcA;QACdA,wDAAUA;QACVA,8DAAaA;QACbA,gEAAcA;QACdA,8DAAaA;QACbA,wDAAUA;QACVA,8DAAaA;QAGbA,gEAAcA;QACdA,kEAAeA;QACfA,gEAAcA;QACdA,kEAAeA;QACfA,oEAAgBA;QAChBA,sEAAiBA;QACjBA,oDAAQA;QACRA,gEAAcA;QACdA,gEAAcA;QACdA,wDAAUA;QACVA,8DAAaA;QACbA,oEAAgBA;QAChBA,0EAAmBA;QACnBA,gFAAsBA;QACtBA,sEAAiBA;QACjBA,gFAAsBA;QACtBA,gFAAsBA;QACtBA,kFAAuBA;QACvBA,4FAA4BA;QAC5BA,sDAASA;QACTA,wDAAUA;QACVA,8DAAaA;QACbA,4DAAYA;QACZA,8DAAaA;QACbA,kEAAeA;QACfA,8EAAqBA;QACrBA,0FAA2BA;QAC3BA,gHAAsCA;QACtCA,iEAAcA;QACdA,qDAAQA;QACRA,yDAAUA;QACVA,qEAAgBA;QAChBA,yDAAUA;QACVA,mFAAuBA;QACvBA,2DAAWA;QACXA,+DAAaA;QACbA,yDAAUA;QACVA,2DAAWA;QACXA,mEAAeA;QACfA,qEAAgBA;QAChBA,2EAAmBA;QACnBA,yEAAkBA;QAClBA,2FAA2BA;QAC3BA,uGAAiCA;QACjCA,6HAA4CA;QAC5CA,6EAAoBA;QACpBA,iEAAcA;QACdA,qEAAgBA;QAChBA,yDAAUA;QACVA,qEAAgBA;QAGhBA,yDAAUA;QAGVA,+DAAaA;QAGbA,yDAAUA;QACVA,6DAAYA;QACZA,uDAASA;QACTA,mEAAeA;QACfA,2DAAWA;QACXA,uDAASA;QACTA,uDAASA;QACTA,uDAASA;QACTA,uEAAiBA;QAGjBA,6EAAoBA;QACpBA,2EAAmBA;QACnBA,uEAAiBA;QACjBA,qEAAgBA;QAChBA,mEAAeA;QACfA,uEAAiBA;QACjBA,qEAAgBA;QAGhBA,uFAAyBA;QACzBA,uFAAyBA;QACzBA,iFAAsBA;QACtBA,iFAAsBA;QAGtBA,2DAAWA;QACXA,2DAAWA;QAGXA,uEAAiBA;QACjBA,+DAAaA;QACbA,yEAAkBA;QAClBA,iEAAcA;QACdA,mEAAeA;QAGfA,+CAAKA;QACLA,2DAAWA;QACXA,uEAAiBA;QACjBA,2EAAmBA;QACnBA,mEAAeA;QACfA,mEAAeA;QACfA,iEAAcA;QACdA,uEAAiBA;QACjBA,6DAAYA;QACZA,iEAAcA;QACdA,iEAAcA;QACdA,iEAAcA;QACdA,iEAAcA;QACdA,6DAAYA;QACZA,qEAAgBA;QAChBA,2DAAWA;QACXA,uEAAiBA;QACjBA,+DAAaA;QAGbA,+EAAqBA;QACrBA,qEAAgBA;QAChBA,qEAAgBA;QAChBA,iEAAcA;QACdA,+EAAqBA;QACrBA,qEAAgBA;QAChBA,iFAAsBA;QACtBA,iFAAsBA;QACtBA,6EAAoBA;QACpBA,iFAAsBA;QACtBA,mFAAuBA;QACvBA,qFAAwBA;QACxBA,mFAAuBA;QACvBA,6GAAoCA;QACpCA,+FAA6BA;QAC7BA,iEAAcA;QACdA,mFAAuBA;QACvBA,yEAAkBA;QAClBA,uEAAiBA;QACjBA,yEAAkBA;QAClBA,qFAAwBA;QAGxBA,2EAAmBA;QACnBA,yEAAkBA;QAGlBA,6DAAYA;QACZA,+DAAaA;QACbA,qEAAgBA;QAChBA,uEAAiBA;QAGjBA,iEAAcA;QACdA,uEAAiBA;QACjBA,qEAAgBA;QAChBA,2EAAmBA;QACnBA,yDAAUA;QACVA,2DAAWA;QACXA,+DAAaA;QACbA,iEAAcA;QAGdA,+DAAaA;QACbA,yDAAUA;QAGVA,qFAAwBA;QACxBA,yFAA0BA;QAG1BA,uDAASA;QACTA,2DAAWA;QACXA,iEAAcA;QACdA,mFAAuBA;QACvBA,uFAAyBA;QAEzBA,gDAAuBA,uBAAYA,0BAAAA;QACnCA,+CAAsBA,sBAAWA,yBAAAA;QAEjCA,sDAA6BA,uBAAYA,gCAAAA;QACzCA,qDAA4BA,uBAAYA,+BAAAA;QAExCA,4DAAmCA,4BAAiBA,sCAAAA;QACpDA,2DAAkCA,uBAAYA,qCAAAA;QAE9CA,kDAAyBA,qBAAUA,4BAAAA;QACnCA,iDAAwBA,wBAAaA,2BAAAA;QAErCA,wCAAeA,+BAAoBA,kBAAAA;QACnCA,uCAAcA,gCAAqBA,iBAAAA;QAEnCA,sCAAaA,qBAAUA,gBAAAA;QACvBA,qCAAYA,2BAAgBA,eAAAA;QAE5BA,4CAAmBA,yBAAcA,sBAAAA;QACjCA,2CAAkBA,2BAAgBA,qBAAAA;QAElCA,2CAAkBA,uBAAYA,qBAAAA;QAC9BA,0CAAiBA,0BAAeA,oBAAAA;QAEhCA,uCAAcA,2BAAgBA,iBAAAA;QAC9BA,sCAAaA,6BAAkBA,gBAAAA;QAE/BA,qCAAYA,qBAAUA,eAAAA;QACtBA,oCAAWA,oCAAyBA,cAAAA;IACxCA,CAACA,EA1SWlC,qBAAUA,KAAVA,qBAAUA,QA0SrBA;IA1SDA,IAAYA,UAAUA,GAAVA,qBA0SXA,CAAAA;AACLA,CAACA,EA5SM,UAAU,KAAV,UAAU,QA4ShB;AC5SD,IAAO,UAAU,CAoPhB;AApPD,WAAO,UAAU;IAACA,IAAAA,WAAWA,CAoP5BA;IApPiBA,WAAAA,WAAWA,EAACA,CAACA;QAC3BmC,IAAIA,iBAAiBA,GAAQA;YACzBA,KAAKA,EAAEA,mBAAqBA;YAC5BA,SAASA,EAAEA,uBAAyBA;YACpCA,OAAOA,EAAEA,qBAAuBA;YAChCA,MAAMA,EAAEA,oBAAsBA;YAC9BA,OAAOA,EAAEA,qBAAuBA;YAChCA,OAAOA,EAAEA,qBAAuBA;YAChCA,UAAUA,EAAEA,wBAA0BA;YACtCA,OAAOA,EAAEA,qBAAuBA;YAChCA,aAAaA,EAAEA,2BAA6BA;YAC5CA,UAAUA,EAAEA,wBAA0BA;YACtCA,SAASA,EAAEA,uBAAyBA;YACpCA,SAASA,EAAEA,uBAAyBA;YACpCA,QAAQA,EAAEA,sBAAwBA;YAClCA,IAAIA,EAAEA,kBAAoBA;YAC1BA,MAAMA,EAAEA,oBAAsBA;YAC9BA,MAAMA,EAAEA,oBAAsBA;YAC9BA,QAAQA,EAAEA,sBAAwBA;YAClCA,SAASA,EAAEA,uBAAyBA;YACpCA,OAAOA,EAAEA,qBAAuBA;YAChCA,SAASA,EAAEA,uBAAyBA;YACpCA,KAAKA,EAAEA,mBAAqBA;YAC5BA,UAAUA,EAAEA,wBAA0BA;YACtCA,KAAKA,EAAEA,mBAAqBA;YAC5BA,IAAIA,EAAEA,kBAAoBA;YAC1BA,YAAYA,EAAEA,0BAA4BA;YAC1CA,QAAQA,EAAEA,sBAAwBA;YAClCA,IAAIA,EAAEA,kBAAoBA;YAC1BA,YAAYA,EAAEA,0BAA4BA;YAC1CA,WAAWA,EAAEA,yBAA2BA;YACxCA,KAAKA,EAAEA,mBAAqBA;YAC5BA,QAAQA,EAAEA,sBAAwBA;YAClCA,KAAKA,EAAEA,mBAAqBA;YAC5BA,MAAMA,EAAEA,oBAAsBA;YAC9BA,QAAQA,EAACA,sBAAwBA;YACjCA,SAASA,EAAEA,uBAAyBA;YACpCA,SAASA,EAAEA,uBAAyBA;YACpCA,WAAWA,EAAEA,yBAA2BA;YACxCA,QAAQA,EAAEA,sBAAwBA;YAClCA,SAASA,EAAEA,uBAAyBA;YACpCA,QAAQA,EAAEA,sBAAwBA;YAClCA,KAAKA,EAAEA,mBAAqBA;YAC5BA,QAAQA,EAAEA,sBAAwBA;YAClCA,QAAQA,EAAEA,sBAAwBA;YAClCA,OAAOA,EAAEA,qBAAuBA;YAChCA,QAAQA,EAAEA,sBAAwBA;YAClCA,MAAMA,EAAEA,oBAAsBA;YAC9BA,OAAOA,EAAEA,qBAAuBA;YAChCA,MAAMA,EAAEA,oBAAsBA;YAC9BA,KAAKA,EAAEA,mBAAqBA;YAC5BA,QAAQA,EAAEA,sBAAwBA;YAClCA,KAAKA,EAAEA,mBAAqBA;YAC5BA,MAAMA,EAAEA,oBAAsBA;YAC9BA,OAAOA,EAAEA,qBAAuBA;YAChCA,MAAMA,EAAEA,oBAAsBA;YAC9BA,OAAOA,EAAEA,qBAAuBA;YAEhCA,GAAGA,EAAEA,uBAAyBA;YAC9BA,GAAGA,EAAEA,wBAA0BA;YAC/BA,GAAGA,EAAEA,uBAAyBA;YAC9BA,GAAGA,EAAEA,wBAA0BA;YAC/BA,GAAGA,EAAEA,yBAA2BA;YAChCA,GAAGA,EAAEA,0BAA4BA;YACjCA,GAAGA,EAAEA,iBAAmBA;YACxBA,KAAKA,EAAEA,uBAAyBA;YAChCA,GAAGA,EAAEA,uBAAyBA;YAC9BA,GAAGA,EAAEA,mBAAqBA;YAC1BA,GAAGA,EAAEA,sBAAwBA;YAC7BA,GAAGA,EAAEA,yBAA2BA;YAChCA,IAAIA,EAAEA,4BAA8BA;YACpCA,IAAIA,EAAEA,+BAAiCA;YACvCA,IAAIA,EAAEA,0BAA4BA;YAClCA,IAAIA,EAAEA,+BAAiCA;YACvCA,IAAIA,EAAEA,+BAAiCA;YACvCA,KAAKA,EAAEA,gCAAkCA;YACzCA,KAAKA,EAAEA,qCAAuCA;YAC9CA,GAAGA,EAAEA,kBAAoBA;YACzBA,GAAGA,EAAEA,mBAAqBA;YAC1BA,GAAGA,EAAEA,sBAAwBA;YAC7BA,GAAGA,EAAEA,qBAAuBA;YAC5BA,IAAIA,EAAEA,sBAAwBA;YAC9BA,IAAIA,EAAEA,wBAA0BA;YAChCA,IAAIA,EAAEA,8BAAgCA;YACtCA,IAAIA,EAAEA,oCAAsCA;YAC5CA,KAAKA,EAAEA,+CAAiDA;YACxDA,GAAGA,EAAEA,wBAAyBA;YAC9BA,GAAGA,EAAEA,kBAAmBA;YACxBA,GAAGA,EAAEA,oBAAqBA;YAC1BA,GAAGA,EAAEA,0BAA2BA;YAChCA,GAAGA,EAAEA,oBAAqBA;YAC1BA,IAAIA,EAAEA,iCAAkCA;YACxCA,IAAIA,EAAEA,qBAAsBA;YAC5BA,GAAGA,EAAEA,uBAAwBA;YAC7BA,GAAGA,EAAEA,oBAAqBA;YAC1BA,GAAGA,EAAEA,qBAAsBA;YAC3BA,IAAIA,EAAEA,yBAA0BA;YAChCA,IAAIA,EAAEA,0BAA2BA;YACjCA,IAAIA,EAAEA,6BAA8BA;YACpCA,IAAIA,EAAEA,4BAA6BA;YACnCA,KAAKA,EAAEA,qCAAsCA;YAC7CA,KAAKA,EAAEA,2CAA4CA;YACnDA,MAAMA,EAAEA,sDAAuDA;YAC/DA,IAAIA,EAAEA,8BAA+BA;YACrCA,IAAIA,EAAEA,wBAAyBA;YAC/BA,IAAIA,EAAEA,0BAA2BA;YACjCA,GAAGA,EAAEA,oBAAqBA;YAC1BA,IAAIA,EAAEA,0BAA2BA;SACpCA,CAACA;QAEFA,IAAIA,UAAUA,GAAGA,IAAIA,KAAKA,EAAUA,CAACA;QAErCA,GAAGA,CAACA,CAACA,GAAGA,CAACA,IAAIA,IAAIA,iBAAiBA,CAACA,CAACA,CAACA;YACjCA,EAAEA,CAACA,CAACA,iBAAiBA,CAACA,cAAcA,CAACA,IAAIA,CAACA,CAACA,CAACA,CAACA;gBAEzCA,UAAUA,CAACA,iBAAiBA,CAACA,IAAIA,CAACA,CAACA,GAAGA,IAAIA,CAACA;YAC/CA,CAACA;QACLA,CAACA;QAKDA,UAAUA,CAACA,2BAA6BA,CAACA,GAAGA,aAAaA,CAACA;QAE1DA,SAAgBA,YAAYA,CAACA,IAAYA;YACrCC,EAAEA,CAACA,CAACA,iBAAiBA,CAACA,cAAcA,CAACA,IAAIA,CAACA,CAACA,CAACA,CAACA;gBACzCA,MAAMA,CAACA,iBAAiBA,CAACA,IAAIA,CAACA,CAACA;YACnCA,CAACA;YAEDA,MAAMA,CAACA,YAAeA,CAACA;QAC3BA,CAACA;QANeD,wBAAYA,GAAZA,YAMfA,CAAAA;QAEDA,SAAgBA,OAAOA,CAACA,IAAgBA;YACpCE,IAAIA,MAAMA,GAAGA,UAAUA,CAACA,IAAIA,CAACA,CAACA;YAC9BA,MAAMA,CAACA,MAAMA,CAACA;QAClBA,CAACA;QAHeF,mBAAOA,GAAPA,OAGfA,CAAAA;QAEDA,SAAgBA,YAAYA,CAACA,IAAgBA;YACzCG,MAAMA,CAACA,IAAIA,IAAIA,qBAAUA,CAACA,YAAYA,IAAIA,IAAIA,IAAIA,qBAAUA,CAACA,WAAWA,CAACA;QAC7EA,CAACA;QAFeH,wBAAYA,GAAZA,YAEfA,CAAAA;QAEDA,SAAgBA,gBAAgBA,CAACA,IAAgBA;YAC7CI,MAAMA,CAACA,IAAIA,IAAIA,qBAAUA,CAACA,gBAAgBA,IAAIA,IAAIA,IAAIA,qBAAUA,CAACA,eAAeA,CAACA;QACrFA,CAACA;QAFeJ,4BAAgBA,GAAhBA,gBAEfA,CAAAA;QAEDA,SAAgBA,oCAAoCA,CAACA,SAAqBA;YACtEK,MAAMA,CAACA,CAACA,SAASA,CAACA,CAACA,CAACA;gBAChBA,KAAKA,kBAAoBA,CAACA;gBAC1BA,KAAKA,mBAAqBA,CAACA;gBAC3BA,KAAKA,oBAAqBA,CAACA;gBAC3BA,KAAKA,0BAA2BA,CAACA;gBACjCA,KAAKA,sBAAwBA,CAACA;gBAC9BA,KAAKA,wBAA0BA;oBAC3BA,MAAMA,CAACA,IAAIA,CAACA;gBAChBA;oBACIA,MAAMA,CAACA,KAAKA,CAACA;YACrBA,CAACA;QACLA,CAACA;QAZeL,gDAAoCA,GAApCA,oCAYfA,CAAAA;QAEDA,SAAgBA,+BAA+BA,CAACA,SAAqBA;YACjEM,MAAMA,CAACA,CAACA,SAASA,CAACA,CAACA,CAACA;gBAChBA,KAAKA,sBAAwBA,CAACA;gBAC9BA,KAAKA,oBAAqBA,CAACA;gBAC3BA,KAAKA,qBAAuBA,CAACA;gBAC7BA,KAAKA,kBAAoBA,CAACA;gBAC1BA,KAAKA,mBAAqBA,CAACA;gBAC3BA,KAAKA,8BAAgCA,CAACA;gBACtCA,KAAKA,oCAAsCA,CAACA;gBAC5CA,KAAKA,+CAAiDA,CAACA;gBACvDA,KAAKA,sBAAwBA,CAACA;gBAC9BA,KAAKA,yBAA2BA,CAACA;gBACjCA,KAAKA,4BAA8BA,CAACA;gBACpCA,KAAKA,+BAAiCA,CAACA;gBACvCA,KAAKA,0BAA4BA,CAACA;gBAClCA,KAAKA,kBAAoBA,CAACA;gBAC1BA,KAAKA,0BAA4BA,CAACA;gBAClCA,KAAKA,+BAAiCA,CAACA;gBACvCA,KAAKA,gCAAkCA,CAACA;gBACxCA,KAAKA,qCAAuCA,CAACA;gBAC7CA,KAAKA,wBAAyBA,CAACA;gBAC/BA,KAAKA,oBAAqBA,CAACA;gBAC3BA,KAAKA,kBAAmBA,CAACA;gBACzBA,KAAKA,iCAAkCA,CAACA;gBACxCA,KAAKA,qBAAsBA,CAACA;gBAC5BA,KAAKA,wBAAyBA,CAACA;gBAC/BA,KAAKA,8BAA+BA,CAACA;gBACrCA,KAAKA,0BAA2BA,CAACA;gBACjCA,KAAKA,qCAAsCA,CAACA;gBAC5CA,KAAKA,2CAA4CA,CAACA;gBAClDA,KAAKA,sDAAuDA,CAACA;gBAC7DA,KAAKA,yBAA0BA,CAACA;gBAChCA,KAAKA,0BAA2BA,CAACA;gBACjCA,KAAKA,6BAA8BA,CAACA;gBACpCA,KAAKA,0BAA2BA,CAACA;gBACjCA,KAAKA,4BAA6BA,CAACA;gBACnCA,KAAKA,qBAAsBA,CAACA;gBAC5BA,KAAKA,mBAAqBA;oBACtBA,MAAMA,CAACA,IAAIA,CAACA;gBAChBA;oBACIA,MAAMA,CAACA,KAAKA,CAACA;YACrBA,CAACA;QACLA,CAACA;QA1CeN,2CAA+BA,GAA/BA,+BA0CfA,CAAAA;QAEDA,SAAgBA,yBAAyBA,CAACA,SAAqBA;YAC3DO,MAAMA,CAACA,CAACA,SAASA,CAACA,CAACA,CAACA;gBAChBA,KAAKA,wBAAyBA,CAACA;gBAC/BA,KAAKA,8BAA+BA,CAACA;gBACrCA,KAAKA,0BAA2BA,CAACA;gBACjCA,KAAKA,qCAAsCA,CAACA;gBAC5CA,KAAKA,2CAA4CA,CAACA;gBAClDA,KAAKA,sDAAuDA,CAACA;gBAC7DA,KAAKA,yBAA0BA,CAACA;gBAChCA,KAAKA,0BAA2BA,CAACA;gBACjCA,KAAKA,6BAA8BA,CAACA;gBACpCA,KAAKA,0BAA2BA,CAACA;gBACjCA,KAAKA,4BAA6BA,CAACA;gBACnCA,KAAKA,qBAAsBA;oBACvBA,MAAMA,CAACA,IAAIA,CAACA;gBAEhBA;oBACIA,MAAMA,CAACA,KAAKA,CAACA;YACrBA,CAACA;QACLA,CAACA;QAnBeP,qCAAyBA,GAAzBA,yBAmBfA,CAAAA;QAEDA,SAAgBA,MAAMA,CAACA,IAAgBA;YACnCQ,MAAMA,CAACA,CAACA,IAAIA,CAACA,CAACA,CAACA;gBACXA,KAAKA,mBAAoBA,CAACA;gBAC1BA,KAAKA,mBAAqBA,CAACA;gBAC3BA,KAAKA,sBAAwBA,CAACA;gBAC9BA,KAAKA,uBAAyBA,CAACA;gBAC/BA,KAAKA,sBAAwBA,CAACA;gBAC9BA,KAAKA,oBAAsBA,CAACA;gBAC5BA,KAAKA,sBAAuBA,CAACA;gBAC7BA,KAAKA,oBAAqBA,CAACA;gBAC3BA,KAAKA,yBAA0BA,CAACA;gBAChCA,KAAKA,mBAAoBA,CAACA;gBAC1BA,KAAKA,qBAAsBA,CAACA;gBAC5BA,KAAKA,uBAAwBA,CAACA;gBAC9BA,KAAKA,sBAAyBA;oBAC1BA,MAAMA,CAACA,IAAIA,CAACA;YACpBA,CAACA;YAEDA,MAAMA,CAACA,KAAKA,CAACA;QACjBA,CAACA;QAnBeR,kBAAMA,GAANA,MAmBfA,CAAAA;IACLA,CAACA,EApPiBnC,WAAWA,GAAXA,sBAAWA,KAAXA,sBAAWA,QAoP5BA;AAADA,CAACA,EApPM,UAAU,KAAV,UAAU,QAoPhB;AC/OD,IAAI,gBAAgB,GAAG,KAAK,CAAC;AAuB7B,IAAI,UAAU,GAAQ;IAClB,wBAAwB,EAAE,qBAAqB;IAC/C,gBAAgB,EAAE,sBAAsB;IACxC,WAAW,EAAE,aAAa;IAC1B,sBAAsB,EAAE,mBAAmB;IAC3C,wBAAwB,EAAE,wBAAwB;IAClD,6BAA6B,EAAE,0BAA0B;IAGzD,uBAAuB,EAAE,+BAA+B;IACxD,qBAAqB,EAAE,+BAA+B;IACtD,wBAAwB,EAAE,yBAAyB;CACtD,CAAC;AAEF,IAAI,WAAW,GAAqB;IAC3B;QACD,IAAI,EAAE,kBAAkB;QACxB,QAAQ,EAAE,aAAa;QACvB,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,gBAAgB,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,sBAAsB,EAAE;YAC7E,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE;SACjD;KACJ;IACI;QACD,IAAI,EAAE,+BAA+B;QACrC,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,wBAAwB,CAAC;QACtC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,gBAAgB,CAAC,EAAE,cAAc,EAAE,IAAI,EAAE;YAC/F,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC/D,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,eAAe,CAAC,EAAE;YACvE,EAAE,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;SACxE;QACD,oBAAoB,EAAE,IAAI;KAC7B;IACI;QACD,IAAI,EAAE,iCAAiC;QACvC,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,wBAAwB,CAAC;QACtC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,aAAa,EAAE;SACnD;QACD,oBAAoB,EAAE,IAAI;KAC7B;IACI;QACD,IAAI,EAAE,yBAAyB;QAC/B,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,sBAAsB,CAAC;QACpC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,cAAc,EAAE;YAChE,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC9D,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,gBAAgB,CAAC,EAAE;YACrE,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC5D,EAAE,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,wBAAwB,EAAE;YAC3D,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;SACzF;QACD,oBAAoB,EAAE,IAAI;KAC7B;IACI;QACD,IAAI,EAAE,wBAAwB;QAC9B,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,sBAAsB,CAAC;QACpC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC9D,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC5D,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,gBAAgB,CAAC,EAAE;YACrE,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;SACzF;QACD,oBAAoB,EAAE,IAAI;KAC7B;IACI;QACD,IAAI,EAAE,wBAAwB;QAC9B,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,sBAAsB,CAAC;QACpC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,cAAc,EAAE;YAChE,EAAE,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC7D,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,gBAAgB,CAAC,EAAE;YACrE,EAAE,IAAI,EAAE,mBAAmB,EAAE,IAAI,EAAE,yBAAyB,EAAE,UAAU,EAAE,IAAI,EAAE;YAChF,EAAE,IAAI,EAAE,iBAAiB,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,sBAAsB,EAAE;YAC9E,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC/D,EAAE,IAAI,EAAE,eAAe,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,qBAAqB,EAAE;YAC3E,EAAE,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;SACxE;QACD,oBAAoB,EAAE,IAAI;KAC7B;IACI;QACD,IAAI,EAAE,4BAA4B;QAClC,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,sBAAsB,CAAC;QACpC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,cAAc,EAAE;YAChE,EAAE,IAAI,EAAE,kBAAkB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YACjE,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,gBAAgB,CAAC,EAAE;YACrE,EAAE,IAAI,EAAE,mBAAmB,EAAE,IAAI,EAAE,yBAAyB,EAAE,UAAU,EAAE,IAAI,EAAE;YAChF,EAAE,IAAI,EAAE,iBAAiB,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,sBAAsB,EAAE;YAC9E,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,kBAAkB,EAAE;SAClD;QACD,oBAAoB,EAAE,IAAI;KAC7B;IACK;QACF,IAAI,EAAE,sBAAsB;QAC5B,QAAQ,EAAE,aAAa;QACvB,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,4BAA4B,EAAE,OAAO,EAAE,IAAI,EAAE;YACrD,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,IAAI,EAAE,sBAAsB,EAAE,IAAI,EAAE,WAAW,EAAE,aAAa,EAAE;SAC9G;QACD,oBAAoB,EAAE,IAAI;KAC7B;IACI;QACD,IAAI,EAAE,yBAAyB;QAC/B,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,sBAAsB,CAAC;QACpC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,cAAc,EAAE;YAChE,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC9D,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE,UAAU,EAAE,IAAI,EAAE;YACvD,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,eAAe,CAAC,EAAE;YACzF,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC/D,EAAE,IAAI,EAAE,gBAAgB,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,sBAAsB,EAAE;YAC7E,EAAE,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;SACxE;QACD,oBAAoB,EAAE,IAAI;KAC7B;IACI;QACD,IAAI,EAAE,2BAA2B;QACjC,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,kBAAkB,CAAC;QAChC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,cAAc,EAAE,oBAAoB,EAAE,IAAI,EAAE;YAC5F,EAAE,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAChE,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,gBAAgB,CAAC,EAAE;YACrE,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,qBAAqB,EAAE;YACtD,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,UAAU,EAAE,IAAI,EAAE;YACxD,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;SACzF;KACJ;IACI;QACD,IAAI,EAAE,yBAAyB;QAC/B,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,kBAAkB,CAAC;QAChC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,cAAc,EAAE,oBAAoB,EAAE,IAAI,EAAE;YAC5F,EAAE,IAAI,EAAE,qBAAqB,EAAE,IAAI,EAAE,2BAA2B,EAAE;YAClE,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;SACzF;KACJ;IACI;QACD,IAAI,EAAE,2BAA2B;QACjC,QAAQ,EAAE,aAAa;QACvB,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE;YACrC,EAAE,IAAI,EAAE,qBAAqB,EAAE,eAAe,EAAE,IAAI,EAAE,sBAAsB,EAAE,IAAI,EAAE,WAAW,EAAE,0BAA0B,EAAE;SACrI;KACJ;IACI;QACD,IAAI,EAAE,0BAA0B;QAChC,QAAQ,EAAE,aAAa;QACvB,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,qBAAqB,EAAE;YACrD,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,sBAAsB,EAAE,UAAU,EAAE,IAAI,EAAE,oBAAoB,EAAE,IAAI,EAAE;YACtG,EAAE,IAAI,EAAE,mBAAmB,EAAE,IAAI,EAAE,yBAAyB,EAAE,UAAU,EAAE,IAAI,EAAE;SACxF;KACJ;IACI;QACD,IAAI,EAAE,yBAAyB;QAC/B,QAAQ,EAAE,aAAa;QACvB,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC5D,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,mBAAmB,EAAE;SACpD;KACJ;IACI;QACD,IAAI,EAAE,6BAA6B;QACnC,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,wBAAwB,CAAC;QACtC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,IAAI,EAAE;YACxC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,wBAAwB,EAAE;SAC3D;KACJ;IACI;QACD,IAAI,EAAE,8BAA8B;QACpC,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,0BAA0B,CAAC;QACxC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,kBAAkB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YACjE,EAAE,IAAI,EAAE,aAAa,EAAE,eAAe,EAAE,IAAI,EAAE,WAAW,EAAE,mBAAmB,EAAE;YAChF,EAAE,IAAI,EAAE,mBAAmB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;SAC1E;KACJ;IACI;QACD,IAAI,EAAE,yBAAyB;QAC/B,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,mBAAmB,CAAC;QACjC,QAAQ,EAAO,EAAE;KACpB;IACI;QACD,IAAI,EAAE,+BAA+B;QACrC,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,0BAA0B,CAAC;QACxC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC/D,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,mBAAmB,EAAE;YACjD,EAAE,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;SACxE;KACJ;IACI;QACD,IAAI,EAAE,qCAAqC;QAC3C,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,wBAAwB,CAAC;QACtC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,iBAAiB,EAAE;YAC9C,EAAE,IAAI,EAAE,wBAAwB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YACvE,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,UAAU,EAAE,IAAI,EAAE;YACxD,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,mBAAmB,EAAE,UAAU,EAAE,IAAI,EAAE;SAC3E;QACD,oBAAoB,EAAE,IAAI;KAC7B;IACI;QACD,IAAI,EAAE,4CAA4C;QAClD,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,wBAAwB,CAAC;QACtC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,qBAAqB,EAAE;YACtD,EAAE,IAAI,EAAE,wBAAwB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YACvE,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,UAAU,EAAE,IAAI,EAAE;YACxD,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,mBAAmB,EAAE,UAAU,EAAE,IAAI,EAAE;SAC3E;QACD,oBAAoB,EAAE,IAAI;KAC7B;IACI;QACD,IAAI,EAAE,qBAAqB;QAC3B,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,aAAa,CAAC;QAC3B,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE;YACrC,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YACzD,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAC,CAAC,gBAAgB,CAAC,EAAE;SACvE;QAGD,oBAAoB,EAAE,IAAI;KAC7B;IACI;QACD,IAAI,EAAE,wBAAwB;QAC9B,QAAQ,EAAE,aAAa;QACvB,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,IAAI,EAAE;YACxC,EAAE,IAAI,EAAE,eAAe,EAAE,eAAe,EAAE,IAAI,EAAE,WAAW,EAAE,aAAa,EAAE;YAC5E,EAAE,IAAI,EAAE,kBAAkB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;SACzE;QACD,oBAAoB,EAAE,IAAI;KAC7B;IACI;QACD,IAAI,EAAE,uBAAuB;QAC7B,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,aAAa,CAAC;QAC3B,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC3D,EAAE,IAAI,EAAE,mBAAmB,EAAE,IAAI,EAAE,yBAAyB,EAAE,UAAU,EAAE,IAAI,EAAE;YAChF,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,qBAAqB,EAAE;YACtD,EAAE,IAAI,EAAE,wBAAwB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YACvE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE;SAC7C;QACD,oBAAoB,EAAE,IAAI;KAC7B;IACI;QACD,IAAI,EAAE,oBAAoB;QAC1B,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,aAAa,CAAC;QAC3B,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,mBAAmB,EAAE,IAAI,EAAE,yBAAyB,EAAE,UAAU,EAAE,IAAI,EAAE;YAChF,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,qBAAqB,EAAE;YACtD,EAAE,IAAI,EAAE,wBAAwB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YACvE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE;SAC7C;QACD,oBAAoB,EAAE,IAAI;KAC7B;IACI;QACD,IAAI,EAAE,kBAAkB;QACxB,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,aAAa,CAAC;QAC3B,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC/D,EAAE,IAAI,EAAE,aAAa,EAAE,eAAe,EAAE,IAAI,EAAE,WAAW,EAAE,mBAAmB,EAAE;YAChF,EAAE,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;SACxE;QACD,oBAAoB,EAAE,IAAI;KAC7B;IACI;QACD,IAAI,EAAE,iBAAiB;QACvB,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,aAAa,CAAC;QAC3B,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE;YACrC,EAAE,IAAI,EAAE,kBAAkB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YACjE,EAAE,IAAI,EAAE,mBAAmB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;SAC1E;QACD,oBAAoB,EAAE,IAAI;KAC7B;IACI;QACD,IAAI,EAAE,mBAAmB;QACzB,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,aAAa,CAAC;QAC3B,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE;YACrC,EAAE,IAAI,EAAE,kBAAkB,EAAE,IAAI,EAAE,wBAAwB,EAAE;SACpE;QACD,oBAAoB,EAAE,IAAI;KAC7B;IACK;QACF,IAAI,EAAE,iBAAiB;QACvB,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,aAAa,CAAC;QAC3B,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC9D,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE;SAC7C;QACD,oBAAoB,EAAE,IAAI;KAC7B;IACK;QACF,IAAI,EAAE,iBAAiB;QACvB,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,aAAa,CAAC;QAC3B,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,kBAAkB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YACjE,EAAE,IAAI,EAAE,OAAO,EAAE,eAAe,EAAE,IAAI,EAAE,WAAW,EAAE,aAAa,EAAE;YACpE,EAAE,IAAI,EAAE,mBAAmB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;SAC1E;QACD,oBAAoB,EAAE,IAAI;KAC7B;IACK;QACF,IAAI,EAAE,iBAAiB;QACvB,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,aAAa,CAAC;QAC3B,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE;YACrC,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YACzD,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE;SAC9C;QACD,oBAAoB,EAAE,IAAI;KAC7B;IACK;QACF,IAAI,EAAE,yBAAyB;QAC/B,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,aAAa,CAAC;QAC3B,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC/D,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE;YACrC,EAAE,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;SACxE;QACD,oBAAoB,EAAE,IAAI;KAC7B;IACI;QACD,IAAI,EAAE,sBAAsB;QAC5B,QAAQ,EAAE,aAAa;QACvB,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC3D,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE;SAC7C;QACD,oBAAoB,EAAE,IAAI;KAC7B;IACI;QACD,IAAI,EAAE,aAAa;QACnB,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,kBAAkB,CAAC;QAChC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE;YACzC,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,kBAAkB,EAAE;YACrE,EAAE,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;SACxE;KACJ;IACI;QACD,IAAI,EAAE,iBAAiB;QACvB,QAAQ,EAAE,aAAa;QACvB,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,oBAAoB,EAAE,IAAI,EAAE;YACvF,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,cAAc,EAAE;YAChE,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,gBAAgB,CAAC,EAAE;YACrE,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,oBAAoB,EAAE,IAAI,EAAE;YACtF,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,sBAAsB,EAAE,UAAU,EAAE,IAAI,EAAE,oBAAoB,EAAE,IAAI,EAAE;YACtG,EAAE,IAAI,EAAE,mBAAmB,EAAE,IAAI,EAAE,yBAAyB,EAAE,UAAU,EAAE,IAAI,EAAE,oBAAoB,EAAE,IAAI,EAAE;SACpH;KACJ;IACI;QACD,IAAI,EAAE,8BAA8B;QACpC,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,yBAAyB,EAAE,uBAAuB,CAAC;QAChE,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,+BAA+B,EAAE;YAC7D,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YACzD,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,gBAAgB,CAAC,EAAE;SACvE;KACJ;IACI;QACD,IAAI,EAAE,8BAA8B;QACpC,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,0BAA0B,CAAC;QACxC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,+BAA+B,EAAE;YAC1D,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,IAAI,EAAE;SAChD;KACJ;IACI;QACD,IAAI,EAAE,+BAA+B;QACrC,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,yBAAyB,EAAE,uBAAuB,CAAC;QAChE,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,+BAA+B,EAAE;YAC7D,EAAE,IAAI,EAAE,kBAAkB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YACjE,EAAE,IAAI,EAAE,oBAAoB,EAAE,IAAI,EAAE,mBAAmB,EAAE;YACzD,EAAE,IAAI,EAAE,mBAAmB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;SAC1E;KACJ;IACI;QACD,IAAI,EAAE,gCAAgC;QACtC,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,yBAAyB,EAAE,uBAAuB,CAAC;QAChE,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,+BAA+B,EAAE;YAC7D,EAAE,IAAI,EAAE,oBAAoB,EAAE,IAAI,EAAE,0BAA0B,EAAE;SACxE;KACJ;IACI;QACD,IAAI,EAAE,0BAA0B;QAChC,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,0BAA0B,CAAC;QACxC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,oBAAoB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YACnE,EAAE,IAAI,EAAE,iBAAiB,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,sBAAsB,EAAE;SACtF;KACJ;IACI;QACD,IAAI,EAAE,sBAAsB;QAC5B,QAAQ,EAAE,aAAa;QACvB,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,mBAAmB,EAAE;YACjD,EAAE,IAAI,EAAE,0BAA0B,EAAE,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,oBAAoB,EAAE;SAC9F;KACJ;IACI;QACD,IAAI,EAAE,4BAA4B;QAClC,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,uBAAuB,CAAC;QACrC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,+BAA+B,EAAE;YAC7D,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,oBAAoB,EAAE;SAC5D;KACJ;IACI;QACD,IAAI,EAAE,oBAAoB;QAC1B,QAAQ,EAAE,aAAa;QACvB,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,kBAAkB,EAAE,IAAI,EAAE,wBAAwB,EAAE,UAAU,EAAE,IAAI,EAAE;YAC9E,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC/D,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,IAAI,EAAE,WAAW,EAAE,mBAAmB,EAAE;YAC9E,EAAE,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;SACxE;KACJ;IACI;QACD,IAAI,EAAE,wBAAwB;QAC9B,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,mBAAmB,CAAC;QACjC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,mBAAmB,EAAE;YAC3C,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,IAAI,EAAE;YACxC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,mBAAmB,EAAE;SACpD;KACJ;IACI;QACD,IAAI,EAAE,6BAA6B;QACnC,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,mBAAmB,CAAC;QACjC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,mBAAmB,EAAE;YAChD,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC9D,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,mBAAmB,EAAE;YAC/C,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC3D,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,mBAAmB,EAAE;SACxD;KACJ;IACI;QACD,IAAI,EAAE,0BAA0B;QAChC,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,mBAAmB,CAAC;QACjC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC3D,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,qBAAqB,EAAE;SAC9D;QACD,oBAAoB,EAAE,IAAI;KAC7B;IACI;QACD,IAAI,EAAE,uBAAuB;QAC7B,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,mBAAmB,CAAC;QACjC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,qBAAqB,EAAE;YACrD,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,oBAAoB,EAAE,IAAI,EAAE;YACtF,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,qBAAqB,EAAE;SAC9D;KACJ;IACI;QACD,IAAI,EAAE,sBAAsB;QAC5B,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,mBAAmB,CAAC;QACjC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,kBAAkB,EAAE,OAAO,EAAE,IAAI,EAAE;YAC3C,EAAE,IAAI,EAAE,YAAY,EAAE,eAAe,EAAE,IAAI,EAAE,WAAW,EAAE,iBAAiB,EAAE;YAC7E,EAAE,IAAI,EAAE,mBAAmB,EAAE,OAAO,EAAE,IAAI,EAAE;YAC5C,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,sBAAsB,EAAE,UAAU,EAAE,IAAI,EAAE;SAClF;QACD,oBAAoB,EAAE,IAAI;KAC7B;IACI;QACD,IAAI,EAAE,yBAAyB;QAC/B,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,mBAAmB,CAAC;QACjC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,qBAAqB,EAAE;YACrD,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE;YAC1D,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,sBAAsB,EAAE,UAAU,EAAE,IAAI,EAAE;SAClF;QACD,oBAAoB,EAAE,IAAI;KAC7B;IACI;QACD,IAAI,EAAE,qBAAqB;QAC3B,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,mBAAmB,CAAC;QACjC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,mBAAmB,EAAE,IAAI,EAAE,yBAAyB,EAAE,UAAU,EAAE,IAAI,EAAE,oBAAoB,EAAE,IAAI,EAAE;YAC5G,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,qBAAqB,EAAE;YACtD,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,sBAAsB,EAAE,UAAU,EAAE,IAAI,EAAE,oBAAoB,EAAE,IAAI,EAAE;SAC9G;KACJ;IACI;QACD,IAAI,EAAE,qBAAqB;QAC3B,QAAQ,EAAE,aAAa;QACvB,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC/D,EAAE,IAAI,EAAE,YAAY,EAAE,eAAe,EAAE,IAAI,EAAE,WAAW,EAAE,iBAAiB,EAAE;YAC7E,EAAE,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;SACxE;KACJ;IACI;QACD,IAAI,EAAE,yBAAyB;QAC/B,QAAQ,EAAE,aAAa;QACvB,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,IAAI,EAAE;YACxC,EAAE,IAAI,EAAE,gBAAgB,EAAE,eAAe,EAAE,IAAI,EAAE,WAAW,EAAE,qBAAqB,EAAE;YACrF,EAAE,IAAI,EAAE,kBAAkB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;SACzE;QACD,oBAAoB,EAAE,IAAI;KAC7B;IACI;QACD,IAAI,EAAE,qBAAqB;QAC3B,QAAQ,EAAE,aAAa;QACvB,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,gBAAgB,CAAC,EAAE;YACrE,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,kBAAkB,EAAE,UAAU,EAAE,IAAI,EAAE;SAC1E;QACD,oBAAoB,EAAE,IAAI;KAC7B;IACI;QACD,IAAI,EAAE,kBAAkB;QACxB,QAAQ,EAAE,aAAa;QACvB,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAE/D,EAAE,IAAI,EAAE,kBAAkB,EAAE,IAAI,EAAE,oBAAoB,EAAE;SAChE;QACD,oBAAoB,EAAE,IAAI;KAC7B;IACI;QACD,IAAI,EAAE,kBAAkB;QACxB,QAAQ,EAAE,aAAa;QACvB,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC5D,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,kBAAkB,EAAE;SACvD;KACJ;IACI;QACD,IAAI,EAAE,mBAAmB;QACzB,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,kBAAkB,CAAC;QAChC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC1D,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC/D,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,mBAAmB,EAAE;YAChD,EAAE,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAChE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,kBAAkB,EAAE;YAC/C,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,kBAAkB,EAAE,UAAU,EAAE,IAAI,EAAE;SAC1E;KACJ;IACI;QACD,IAAI,EAAE,2BAA2B;QACjC,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,kBAAkB,CAAC;QAChC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,mBAAmB,EAAE;YACjD,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;SACzF;KACJ;IACI;QACD,IAAI,EAAE,8BAA8B;QACpC,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,qBAAqB,CAAC;QACnC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,cAAc,EAAE;YAChE,EAAE,IAAI,EAAE,oBAAoB,EAAE,OAAO,EAAE,IAAI,EAAE;YAC7C,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,qBAAqB,EAAE;YACtD,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,UAAU,EAAE,IAAI,EAAE;YACxD,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;SACzF;QACD,oBAAoB,EAAE,IAAI;KAC7B;IACI;QACD,IAAI,EAAE,iCAAiC;QACvC,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,0BAA0B,CAAC;QACxC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,cAAc,EAAE;YAChE,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,qBAAqB,EAAE;YACrD,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,qBAAqB,EAAE;YACtD,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,UAAU,EAAE,IAAI,EAAE;YACxD,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;SACzF;QACD,oBAAoB,EAAE,IAAI;KAC7B;IACI;QACD,IAAI,EAAE,mBAAmB;QACzB,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,iBAAiB,CAAE;QAChC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,cAAc,EAAE,oBAAoB,EAAE,IAAI,EAAE;YAC5F,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC3D,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,qBAAqB,EAAE;YACrD,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,qBAAqB,EAAE;YACtD,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE;SAC9C;KACJ;IACI;QACD,IAAI,EAAE,mBAAmB;QACzB,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,iBAAiB,CAAC;QAC/B,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,cAAc,EAAE,oBAAoB,EAAE,IAAI,EAAE;YAC5F,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC3D,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,qBAAqB,EAAE;YACrD,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,qBAAqB,EAAE;YACtD,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE;SAC9C;QACD,oBAAoB,EAAE,IAAI;KAC7B;IACI;QACD,IAAI,EAAE,iCAAiC;QACvC,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,0BAA0B,CAAC;QACxC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,cAAc,EAAE;YAChE,EAAE,IAAI,EAAE,oBAAoB,EAAE,IAAI,EAAE,0BAA0B,EAAE;YAChE,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;SACzF;QACD,oBAAoB,EAAE,IAAI;KAC7B;IACI;QACD,IAAI,EAAE,8BAA8B;QACpC,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,qBAAqB,CAAC;QACnC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,cAAc,EAAE;YAChE,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,sBAAsB,EAAE;YACxD,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;SACzF;QACD,oBAAoB,EAAE,IAAI;KAC7B;IACI;QACD,IAAI,EAAE,sBAAsB;QAC5B,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,kBAAkB,CAAC;QAChC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC7D,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,mBAAmB,EAAE;YACjD,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;SACzF;KACJ;IACI;QACD,IAAI,EAAE,uBAAuB;QAC7B,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,kBAAkB,CAAC;QAChC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,IAAI,EAAE;YACxC,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,mBAAmB,EAAE,UAAU,EAAE,IAAI,EAAE;YACnE,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;SACzF;KACJ;IACI;QACD,IAAI,EAAE,gCAAgC;QACtC,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,0BAA0B,CAAC;QACxC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC3D,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,yBAAyB,EAAE;YACvD,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,oBAAoB,EAAE,UAAU,EAAE,IAAI,EAAE;SAC9E;KACJ;IACI;QACD,IAAI,EAAE,uBAAuB;QAC7B,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,kBAAkB,CAAC;QAChC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC9D,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC/D,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,mBAAmB,EAAE;YACjD,EAAE,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAChE,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC/D,EAAE,IAAI,EAAE,eAAe,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,qBAAqB,EAAE;YAC3E,EAAE,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;SACxE;KACJ;IACI;QACD,IAAI,EAAE,wBAAwB;QAC9B,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,qBAAqB,CAAC;QACnC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC5D,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,mBAAmB,EAAE;YACjD,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAC;YAC1D,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,kBAAkB,EAAE;SAC7E;KACJ;IACI;QACD,IAAI,EAAE,2BAA2B;QACjC,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,qBAAqB,CAAC;QACnC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC/D,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC3D,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,kBAAkB,EAAE;SAC7E;KACJ;IACI;QACD,IAAI,EAAE,sBAAsB;QAC5B,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,kBAAkB,CAAC;QAChC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,IAAI,EAAE;YACvC,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,gBAAgB,CAAC,EAAE;YACvF,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;SACzF;KACJ;IACI;QACD,IAAI,EAAE,yBAAyB;QAC/B,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,kBAAkB,CAAC;QAChC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,IAAI,EAAE;YAC1C,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,gBAAgB,CAAC,EAAE;YACvF,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;SACzF;KACJ;IACI;QACD,IAAI,EAAE,oBAAoB;QAC1B,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,kBAAkB,CAAC;QAChC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC3D,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC/D,EAAE,IAAI,EAAE,qBAAqB,EAAE,IAAI,EAAE,2BAA2B,EAAE,UAAU,EAAE,IAAI,EAAE;YACpF,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,mBAAmB,EAAE,UAAU,EAAE,IAAI,EAAE;YACpE,EAAE,IAAI,EAAE,qBAAqB,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,gBAAgB,CAAC,EAAE,cAAc,EAAE,IAAI,EAAE;YACpG,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,mBAAmB,EAAE,UAAU,EAAE,IAAI,EAAE;YAClE,EAAE,IAAI,EAAE,sBAAsB,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,gBAAgB,CAAC,EAAE,cAAc,EAAE,IAAI,EAAE;YACrG,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,mBAAmB,EAAE,UAAU,EAAE,IAAI,EAAE;YACpE,EAAE,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAChE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,kBAAkB,EAAE;SACvD;KACJ;IACI;QACD,IAAI,EAAE,sBAAsB;QAC5B,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,kBAAkB,CAAC;QAChC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC3D,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC/D,EAAE,IAAI,EAAE,qBAAqB,EAAE,IAAI,EAAE,2BAA2B,EAAE,UAAU,EAAE,IAAI,EAAE;YACpF,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,mBAAmB,EAAE,UAAU,EAAE,IAAI,EAAE;YAC7D,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC1D,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,mBAAmB,EAAE;YACjD,EAAE,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAChE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,kBAAkB,EAAE;SACvD;KACJ;IACI;QACD,IAAI,EAAE,sBAAsB;QAC5B,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,kBAAkB,CAAC;QAChC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC7D,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC/D,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,mBAAmB,EAAE;YAChD,EAAE,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAChE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,kBAAkB,EAAE;SACvD;KACJ;IACI;QACD,IAAI,EAAE,qBAAqB;QAC3B,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,kBAAkB,CAAC;QAChC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC5D,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC/D,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,mBAAmB,EAAE;YAChD,EAAE,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAChE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,kBAAkB,EAAE;SACvD;KACJ;IACI;QACD,IAAI,EAAE,uBAAuB;QAC7B,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,sBAAsB,CAAC;QACpC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,cAAc,EAAE;YAChE,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC5D,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,gBAAgB,CAAC,EAAE;YACrE,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC/D,EAAE,IAAI,EAAE,cAAc,EAAE,eAAe,EAAE,IAAI,EAAE,WAAW,EAAE,mBAAmB,EAAE;YACjF,EAAE,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;SACxE;QACD,oBAAoB,EAAE,IAAI;KAC7B;IACI;QACD,IAAI,EAAE,mBAAmB;QACzB,QAAQ,EAAE,aAAa;QACvB,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,qBAAqB,EAAE;YACrD,EAAE,IAAI,EAAE,mBAAmB,EAAE,IAAI,EAAE,yBAAyB,EAAE,UAAU,EAAE,IAAI,EAAE;SACxF;KACJ;IACI;QACD,IAAI,EAAE,sBAAsB;QAC5B,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,wBAAwB,CAAC;QACtC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC9D,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE;YACrC,EAAE,IAAI,EAAE,kBAAkB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YACjE,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,wBAAwB,EAAE;SAC9D;QACD,oBAAoB,EAAE,IAAI;KAC7B;IACI;QACD,IAAI,EAAE,+BAA+B;QACrC,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,0BAA0B,CAAC;QACxC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC/D,EAAE,IAAI,EAAE,qBAAqB,EAAE,eAAe,EAAE,IAAI,EAAE,WAAW,EAAE,2BAA2B,EAAE;YAChG,EAAE,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;SACxE;KACJ;IACI;QACD,IAAI,EAAE,gCAAgC;QACtC,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,2BAA2B,CAAC;QACzC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,qBAAqB,EAAE;YACrD,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC3D,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,mBAAmB,EAAE;SACzD;KACJ;IACK;QACF,IAAI,EAAE,kCAAkC;QACxC,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,2BAA2B,CAAC;QACzC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,qBAAqB,EAAE;YACrD,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,qBAAqB,EAAE;YACtD,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE;SAC9C;KACJ;IACI;QACD,IAAI,EAAE,0BAA0B;QAChC,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,0BAA0B,CAAC;QACxC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAChE,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,gBAAgB,CAAC,EAAE;YACvF,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,qBAAqB,EAAE;YACtD,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE;SAAC;KACnD;IACI;QACD,IAAI,EAAE,sBAAsB;QAC5B,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,kBAAkB,CAAC;QAChC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE;SAAC;KACtD;IACI;QACD,IAAI,EAAE,oBAAoB;QAC1B,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,kBAAkB,CAAC;QAChC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC3D,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE;YACtC,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,mBAAmB,EAAE,UAAU,EAAE,IAAI,EAAE;YACpE,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,qBAAqB,EAAE,UAAU,EAAE,IAAI,EAAE;SAAC;KACrF;IACI;QACD,IAAI,EAAE,mBAAmB;QACzB,QAAQ,EAAE,aAAa;QACvB,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC7D,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC/D,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,gBAAgB,CAAC,EAAE;YACrE,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,sBAAsB,EAAE,UAAU,EAAE,IAAI,EAAE,qBAAqB,EAAE,IAAI,EAAE;YACvG,EAAE,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAChE,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE;SAAC;KACnD;IACI;QACD,IAAI,EAAE,qBAAqB;QAC3B,QAAQ,EAAE,aAAa;QACvB,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC/D,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE;SAAC;KACnD;IACI;QACD,IAAI,EAAE,wBAAwB;QAC9B,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,kBAAkB,CAAC;QAChC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,gBAAgB,CAAC,EAAE;YACrE,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC3D,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,kBAAkB,EAAE;SAAC;KAC5D;IACI;QACD,IAAI,EAAE,mBAAmB;QACzB,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,kBAAkB,CAAC;QAChC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC1D,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,kBAAkB,EAAE;YAC/C,EAAE,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC7D,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC/D,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,mBAAmB,EAAE;YAChD,EAAE,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAChE,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;SAAC;KAC9F;IACI;QACD,IAAI,EAAE,wBAAwB;QAC9B,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,wBAAwB,CAAC;QACtC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC9D,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,wBAAwB,EAAE;SAAC;KACnE;IACI;QACD,IAAI,EAAE,wBAAwB;QAC9B,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,wBAAwB,CAAC;QACtC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC9D,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,wBAAwB,EAAE;SAAC;KACnE;IACI;QACD,IAAI,EAAE,sBAAsB;QAC5B,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,wBAAwB,CAAC;QACtC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC5D,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,wBAAwB,EAAE;SAAC;KACnE;IACI;QACD,IAAI,EAAE,yBAAyB;QAC/B,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,kBAAkB,CAAC;QAChC,QAAQ,EAAE;YACD,EAAE,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,IAAI,EAAE;YAC1C,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;SAAC;KAC9F;CAAC,CAAC;AAEP,SAAS,SAAS,CAAC,UAA2B;IAC1C4C,IAAIA,QAAQA,GAAGA,oBAAoBA,CAACA,UAAUA,CAACA,CAACA;IAChDA,MAAMA,CAAOA,UAAUA,CAACA,UAAWA,CAACA,QAAQA,CAACA,CAACA;AAClDA,CAACA;AAED,WAAW,CAAC,IAAI,CAAC,UAAC,EAAE,EAAE,EAAE,IAAK,OAAA,SAAS,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,EAAE,CAAC,EAA7B,CAA6B,CAAC,CAAC;AAE5D,SAAS,sBAAsB,CAAC,UAAkB;IAC9CC,EAAEA,CAACA,CAACA,UAAUA,CAACA,eAAeA,CAACA,QAAQA,CAACA,UAAUA,EAAEA,QAAQA,CAACA,CAACA,CAACA,CAACA;QAC5DA,MAAMA,CAACA,UAAUA,CAACA,SAASA,CAACA,CAACA,EAAEA,UAAUA,CAACA,MAAMA,GAAGA,QAAQA,CAACA,MAAMA,CAACA,CAACA;IACxEA,CAACA;IAEDA,MAAMA,CAACA,UAAUA,CAACA;AACtBA,CAACA;AAED,SAAS,oBAAoB,CAAC,UAA2B;IACrDC,MAAMA,CAACA,sBAAsBA,CAACA,UAAUA,CAACA,IAAIA,CAACA,CAACA;AACnDA,CAACA;AAED,SAAS,OAAO,CAAC,KAAwB;IACrCC,EAAEA,CAACA,CAACA,KAAKA,CAACA,OAAOA,CAACA,CAACA,CAACA;QAChBA,MAAMA,CAACA,cAAcA,CAACA;IAC1BA,CAACA;IACDA,IAAIA,CAACA,EAAEA,CAACA,CAACA,KAAKA,CAACA,eAAeA,CAACA,CAACA,CAACA;QAC7BA,MAAMA,CAACA,uBAAuBA,GAAGA,KAAKA,CAACA,WAAWA,GAAGA,GAAGA,CAACA;IAC7DA,CAACA;IACDA,IAAIA,CAACA,EAAEA,CAACA,CAACA,KAAKA,CAACA,MAAMA,CAACA,CAACA,CAACA;QACpBA,MAAMA,CAACA,KAAKA,CAACA,WAAWA,GAAGA,IAAIA,CAACA;IACpCA,CAACA;IACDA,IAAIA,CAACA,CAACA;QACFA,MAAMA,CAACA,KAAKA,CAACA,IAAIA,CAACA;IACtBA,CAACA;AACLA,CAACA;AAED,SAAS,SAAS,CAAC,KAAa;IAC5BC,MAAMA,CAACA,KAAKA,CAACA,MAAMA,CAACA,CAACA,EAAEA,CAACA,CAACA,CAACA,WAAWA,EAAEA,GAAGA,KAAKA,CAACA,MAAMA,CAACA,CAACA,CAACA,CAACA;AAC9DA,CAACA;AAED,SAAS,WAAW,CAAC,KAAwB;IACzCC,EAAEA,CAACA,CAACA,KAAKA,CAACA,IAAIA,KAAKA,WAAWA,CAACA,CAACA,CAACA;QAC7BA,MAAMA,CAACA,GAAGA,GAAGA,KAAKA,CAACA,IAAIA,CAACA;IAC5BA,CAACA;IAEDA,MAAMA,CAACA,KAAKA,CAACA,IAAIA,CAACA;AACtBA,CAACA;AAED,SAAS,2BAA2B,CAAC,UAA2B;IAC5DC,IAAIA,MAAMA,GAAGA,iBAAiBA,GAAGA,UAAUA,CAACA,IAAIA,GAAGA,IAAIA,GAAGA,oBAAoBA,CAACA,UAAUA,CAACA,GAAGA,0CAA0CA,CAACA;IAExIA,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,UAAUA,CAACA,QAAQA,CAACA,MAAMA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;QAClDA,IAAIA,KAAKA,GAAGA,UAAUA,CAACA,QAAQA,CAACA,CAACA,CAACA,CAACA;QACnCA,MAAMA,IAAIA,IAAIA,CAACA;QACfA,MAAMA,IAAIA,WAAWA,CAACA,KAAKA,CAACA,CAACA;QAC7BA,MAAMA,IAAIA,IAAIA,GAAGA,OAAOA,CAACA,KAAKA,CAACA,CAACA;IACpCA,CAACA;IAEDA,MAAMA,IAAIA,SAASA,CAACA;IAEpBA,MAAMA,IAAIA,+CAA+CA,CAACA;IAE1DA,EAAEA,CAACA,CAACA,UAAUA,CAACA,QAAQA,CAACA,MAAMA,CAACA,CAACA,CAACA;QAC7BA,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,UAAUA,CAACA,QAAQA,CAACA,MAAMA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;YAClDA,EAAEA,CAACA,CAACA,CAACA,CAACA,CAACA,CAACA;gBACJA,MAAMA,IAAIA,OAAOA,CAACA;YACtBA,CAACA;YAEDA,IAAIA,KAAKA,GAAGA,UAAUA,CAACA,QAAQA,CAACA,CAACA,CAACA,CAACA;YACnCA,MAAMA,IAAIA,eAAeA,GAAGA,KAAKA,CAACA,IAAIA,GAAGA,KAAKA,GAAGA,WAAWA,CAACA,KAAKA,CAACA,CAACA;QACxEA,CAACA;IACLA,CAACA;IAEDA,EAAEA,CAACA,CAACA,UAAUA,CAACA,QAAQA,CAACA,MAAMA,GAAGA,CAACA,CAACA,CAACA,CAACA;QACjCA,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,UAAUA,CAACA,QAAQA,CAACA,MAAMA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;YAClDA,MAAMA,IAAIA,eAAeA,CAACA;YAE1BA,IAAIA,KAAKA,GAAGA,UAAUA,CAACA,QAAQA,CAACA,CAACA,CAACA,CAACA;YAEnCA,EAAEA,CAACA,CAACA,KAAKA,CAACA,UAAUA,CAACA,CAACA,CAACA;gBACnBA,MAAMA,IAAIA,WAAWA,CAACA,KAAKA,CAACA,GAAGA,OAAOA,GAAGA,WAAWA,CAACA,KAAKA,CAACA,GAAGA,iBAAiBA,CAACA;YACpFA,CAACA;YACDA,IAAIA,CAACA,CAACA;gBACFA,MAAMA,IAAIA,WAAWA,CAACA,KAAKA,CAACA,GAAGA,gBAAgBA,CAACA;YACpDA,CAACA;QACLA,CAACA;QACDA,MAAMA,IAAIA,OAAOA,CAACA;IACtBA,CAACA;IAEDA,MAAMA,IAAIA,YAAYA,CAACA;IACvBA,MAAMA,IAAIA,MAAMA,GAAGA,UAAUA,CAACA,IAAIA,GAAGA,+BAA+BA,GAAGA,oBAAoBA,CAACA,UAAUA,CAACA,GAAGA,OAAOA,CAACA;IAClHA,MAAMA,IAAIA,MAAMA,GAAGA,UAAUA,CAACA,IAAIA,GAAGA,0BAA0BA,GAAGA,UAAUA,CAACA,QAAQA,CAACA,MAAMA,GAAGA,OAAOA,CAACA;IACvGA,MAAMA,IAAIA,MAAMA,GAAGA,UAAUA,CAACA,IAAIA,GAAGA,oEAAoEA,CAACA;IAC1GA,EAAEA,CAACA,CAACA,UAAUA,CAACA,QAAQA,CAACA,MAAMA,CAACA,CAACA,CAACA;QAC7BA,MAAMA,IAAIA,8BAA8BA,CAACA;QAEzCA,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,UAAUA,CAACA,QAAQA,CAACA,MAAMA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;YAClDA,MAAMA,IAAIA,mBAAmBA,GAAGA,CAACA,GAAGA,gBAAgBA,GAAGA,UAAUA,CAACA,QAAQA,CAACA,CAACA,CAACA,CAACA,IAAIA,GAAGA,OAAOA,CAACA;QACjGA,CAACA;QAEDA,MAAMA,IAAIA,eAAeA,CAACA;IAC9BA,CAACA;IACDA,IAAIA,CAACA,CAACA;QACFA,MAAMA,IAAIA,8CAA8CA,CAACA;IAC7DA,CAACA;IACDA,MAAMA,IAAIA,WAAWA,CAACA;IAEtBA,MAAMA,CAACA,MAAMA,CAACA;AAClBA,CAACA;AAED,SAAS,wBAAwB;IAC7BC,IAAIA,MAAMA,GAAGA,+CAA+CA,CAACA;IAE7DA,MAAMA,IAAIA,yBAAyBA,CAACA;IAEpCA,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,WAAWA,CAACA,MAAMA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;QAC1CA,IAAIA,UAAUA,GAAGA,WAAWA,CAACA,CAACA,CAACA,CAACA;QAEhCA,EAAEA,CAACA,CAACA,CAACA,GAAGA,CAACA,CAACA,CAACA,CAACA;YACRA,MAAMA,IAAIA,MAAMA,CAACA;QACrBA,CAACA;QAEDA,MAAMA,IAAIA,uBAAuBA,CAACA,UAAUA,CAACA,CAACA;IAClDA,CAACA;IAEDA,MAAMA,IAAIA,GAAGA,CAACA;IACdA,MAAMA,CAACA,MAAMA,CAACA;AAClBA,CAACA;AAED,SAAS,uBAAuB,CAAC,UAA2B;IACxDC,IAAIA,MAAMA,GAAGA,uBAAuBA,GAAGA,UAAUA,CAACA,IAAIA,GAAGA,sBAAsBA,CAAAA;IAE/EA,EAAEA,CAACA,CAACA,UAAUA,CAACA,UAAUA,CAACA,CAACA,CAACA;QACxBA,MAAMA,IAAIA,IAAIA,CAACA;QACfA,MAAMA,IAAIA,UAAUA,CAACA,UAAUA,CAACA,IAAIA,CAACA,IAAIA,CAACA,CAACA;IAC/CA,CAACA;IAEDA,MAAMA,IAAIA,QAAQA,CAACA;IAEnBA,EAAEA,CAACA,CAACA,UAAUA,CAACA,IAAIA,KAAKA,kBAAkBA,CAACA,CAACA,CAACA;QACzCA,MAAMA,IAAIA,qCAAqCA,CAACA;IACpDA,CAACA;IAEDA,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,UAAUA,CAACA,QAAQA,CAACA,MAAMA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;QAClDA,IAAIA,KAAKA,GAAGA,UAAUA,CAACA,QAAQA,CAACA,CAACA,CAACA,CAACA;QACnCA,MAAMA,IAAIA,UAAUA,GAAGA,KAAKA,CAACA,IAAIA,GAAGA,IAAIA,GAAGA,OAAOA,CAACA,KAAKA,CAACA,GAAGA,OAAOA,CAACA;IACxEA,CAACA;IAEDA,MAAMA,IAAIA,WAAWA,CAACA;IACtBA,MAAMA,IAAIA,uBAAuBA,GAAGA,oBAAoBA,CAACA,UAAUA,CAACA,GAAGA,eAAeA,CAACA;IACvFA,MAAMA,IAAIA,oBAAoBA,CAACA;IAE/BA,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,UAAUA,CAACA,QAAQA,CAACA,MAAMA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;QAClDA,IAAIA,KAAKA,GAAGA,UAAUA,CAACA,QAAQA,CAACA,CAACA,CAACA,CAACA;QACnCA,MAAMA,IAAIA,IAAIA,CAACA;QACfA,MAAMA,IAAIA,WAAWA,CAACA,KAAKA,CAACA,CAACA;QAC7BA,MAAMA,IAAIA,IAAIA,GAAGA,OAAOA,CAACA,KAAKA,CAACA,CAACA;IACpCA,CAACA;IAEDA,MAAMA,IAAIA,KAAKA,GAAGA,UAAUA,CAACA,IAAIA,CAACA;IAClCA,MAAMA,IAAIA,QAAQA,CAACA;IAEnBA,MAAMA,CAACA,MAAMA,CAACA;AAClBA,CAACA;AAED,SAAS,aAAa;IAClBC,IAAIA,MAAMA,GAAGA,+CAA+CA,CAACA;IAE7DA,MAAMA,IAAIA,mBAAmBA,CAACA;IAE9BA,MAAMA,IAAIA,QAAQA,CAACA;IAEnBA,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,WAAWA,CAACA,MAAMA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;QAC1CA,IAAIA,UAAUA,GAAGA,WAAWA,CAACA,CAACA,CAACA,CAACA;QAEhCA,EAAEA,CAACA,CAACA,CAACA,CAACA,CAACA,CAACA;YACJA,MAAMA,IAAIA,MAAMA,CAACA;QACrBA,CAACA;QAEDA,MAAMA,IAAIA,2BAA2BA,CAACA,UAAUA,CAACA,CAACA;IACtDA,CAACA;IAEDA,MAAMA,IAAIA,GAAGA,CAACA;IACdA,MAAMA,CAACA,MAAMA,CAACA;AAClBA,CAACA;AAED,SAAS,WAAW,CAAC,IAAY;IAC7BC,MAAMA,CAACA,IAAIA,CAACA,MAAMA,CAACA,CAACA,EAAEA,CAACA,CAACA,KAAKA,GAAGA,IAAIA,IAAIA,CAACA,MAAMA,CAACA,CAACA,EAAEA,CAACA,CAACA,CAACA,WAAWA,EAAEA,KAAKA,IAAIA,CAACA,MAAMA,CAACA,CAACA,EAAEA,CAACA,CAACA,CAAAA;AAC7FA,CAACA;AAED,SAAS,cAAc;IACnBC,IAAIA,MAAMA,GAAGA,EAAEA,CAACA;IAEhBA,MAAMA,IACNA,2CAA2CA,GAC3CA,MAAMA,GACNA,yBAAyBA,GACzBA,+DAA+DA,GAC/DA,4DAA4DA,GAC5DA,eAAeA,GACfA,MAAMA,GACNA,qEAAqEA,GACrEA,4CAA4CA,GAC5CA,6BAA6BA,GAC7BA,mBAAmBA,GACnBA,MAAMA,GACNA,yCAAyCA,GACzCA,eAAeA,GACfA,MAAMA,GACNA,kEAAkEA,GAClEA,gEAAgEA,GAChEA,sDAAsDA,GACtDA,mBAAmBA,GACnBA,eAAeA,CAACA;IAEhBA,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,WAAWA,CAACA,MAAMA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;QAC1CA,IAAIA,UAAUA,GAAGA,WAAWA,CAACA,CAACA,CAACA,CAACA;QAEhCA,MAAMA,IAAIA,MAAMA,CAACA;QACjBA,MAAMA,IAAIA,sBAAsBA,GAAGA,oBAAoBA,CAACA,UAAUA,CAACA,GAAGA,SAASA,GAAGA,UAAUA,CAACA,IAAIA,GAAGA,eAAeA,CAACA;QAEpHA,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,UAAUA,CAACA,QAAQA,CAACA,MAAMA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;YAClDA,IAAIA,KAAKA,GAAGA,UAAUA,CAACA,QAAQA,CAACA,CAACA,CAACA,CAACA;YAEnCA,EAAEA,CAACA,CAACA,KAAKA,CAACA,OAAOA,CAACA,CAACA,CAACA;gBAChBA,EAAEA,CAACA,CAACA,KAAKA,CAACA,UAAUA,CAACA,CAACA,CAACA;oBACnBA,MAAMA,IAAIA,2CAA2CA,GAAGA,KAAKA,CAACA,IAAIA,GAAGA,QAAQA,CAACA;gBAClFA,CAACA;gBACDA,IAAIA,CAACA,CAACA;oBACFA,MAAMA,IAAIA,mCAAmCA,GAAGA,KAAKA,CAACA,IAAIA,GAAGA,QAAQA,CAACA;gBAC1EA,CAACA;YACLA,CAACA;YACDA,IAAIA,CAACA,EAAEA,CAACA,CAACA,KAAKA,CAACA,MAAMA,IAAIA,KAAKA,CAACA,eAAeA,CAACA,CAACA,CAACA;gBAC7CA,MAAMA,IAAIA,kCAAkCA,GAAGA,KAAKA,CAACA,IAAIA,GAAGA,QAAQA,CAACA;YACzEA,CAACA;YACDA,IAAIA,CAACA,EAAEA,CAACA,CAACA,KAAKA,CAACA,OAAOA,CAACA,CAACA,CAACA;gBACrBA,EAAEA,CAACA,CAACA,KAAKA,CAACA,UAAUA,CAACA,CAACA,CAACA;oBACnBA,MAAMA,IAAIA,2CAA2CA,GAAGA,KAAKA,CAACA,IAAIA,GAAGA,QAAQA,CAACA;gBAClFA,CAACA;gBACDA,IAAIA,CAACA,CAACA;oBACFA,MAAMA,IAAIA,mCAAmCA,GAAGA,KAAKA,CAACA,IAAIA,GAAGA,QAAQA,CAACA;gBAC1EA,CAACA;YACLA,CAACA;YACDA,IAAIA,CAACA,CAACA;gBACFA,MAAMA,IAAIA,0CAA0CA,GAAGA,KAAKA,CAACA,IAAIA,GAAGA,QAAQA,CAACA;YACjFA,CAACA;QACLA,CAACA;QAEDA,MAAMA,IAAIA,eAAeA,CAACA;IAC9BA,CAACA;IAEDA,MAAMA,IAAIA,OAAOA,CAACA;IAClBA,MAAMA,IAAIA,OAAOA,CAACA;IAClBA,MAAMA,CAACA,MAAMA,CAACA;AAClBA,CAACA;AAED,SAAS,aAAa,CAAC,CAAM,EAAE,KAAa;IACxCC,GAAGA,CAACA,CAACA,GAAGA,CAACA,IAAIA,IAAIA,CAACA,CAACA,CAACA,CAACA;QACjBA,EAAEA,CAACA,CAACA,CAACA,CAACA,IAAIA,CAACA,KAAKA,KAAKA,CAACA,CAACA,CAACA;YACpBA,MAAMA,CAACA,IAAIA,CAACA;QAChBA,CAACA;IACLA,CAACA;AACLA,CAACA;AAED,SAAS,OAAO,CAAI,KAAU,EAAE,IAAsB;IAClDC,IAAIA,MAAMA,GAAQA,EAAEA,CAACA;IAErBA,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,KAAKA,CAACA,MAAMA,EAAEA,CAACA,GAAGA,CAACA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;QAC3CA,IAAIA,CAACA,GAAQA,KAAKA,CAACA,CAACA,CAACA,CAACA;QACtBA,IAAIA,CAACA,GAAGA,IAAIA,CAACA,CAACA,CAACA,CAACA;QAEhBA,IAAIA,IAAIA,GAAQA,MAAMA,CAACA,CAACA,CAACA,IAAIA,EAAEA,CAACA;QAChCA,IAAIA,CAACA,IAAIA,CAACA,CAACA,CAACA,CAACA;QACbA,MAAMA,CAACA,CAACA,CAACA,GAAGA,IAAIA,CAACA;IACrBA,CAACA;IAEDA,MAAMA,CAACA,MAAMA,CAACA;AAClBA,CAACA;AAED,SAAS,wBAAwB,CAAC,QAA0D,EAAE,gBAAwB,EAAE,MAAc;IAClIC,IAAIA,MAAMA,GAAGA,QAAQA,CAACA,CAACA,CAACA,CAACA,IAAIA,CAACA,MAAMA,CAACA;IAErCA,IAAIA,MAAMA,GAAGA,EAAEA,CAACA;IAChBA,IAAIA,KAAaA,CAACA;IAElBA,EAAEA,CAACA,CAACA,QAAQA,CAACA,MAAMA,KAAKA,CAACA,CAACA,CAACA,CAACA;QACxBA,IAAIA,OAAOA,GAAGA,QAAQA,CAACA,CAACA,CAACA,CAACA;QAE1BA,EAAEA,CAACA,CAACA,gBAAgBA,KAAKA,MAAMA,CAACA,CAACA,CAACA;YAC9BA,MAAMA,CAACA,qBAAqBA,GAAGA,aAAaA,CAACA,UAAUA,CAACA,UAAUA,EAAEA,OAAOA,CAACA,IAAIA,CAACA,GAAGA,OAAOA,CAACA;QAChGA,CAACA;QAEDA,IAAIA,WAAWA,GAAGA,QAAQA,CAACA,CAACA,CAACA,CAACA,IAAIA,CAACA;QACnCA,MAAMA,GAAGA,WAAWA,CAAAA;QAEpBA,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,gBAAgBA,EAAEA,CAACA,GAAGA,MAAMA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;YAC7CA,EAAEA,CAACA,CAACA,CAACA,GAAGA,gBAAgBA,CAACA,CAACA,CAACA;gBACvBA,MAAMA,IAAIA,MAAMA,CAACA;YACrBA,CAACA;YAEDA,KAAKA,GAAGA,CAACA,KAAKA,CAACA,GAAGA,OAAOA,GAAGA,CAACA,UAAUA,GAAGA,CAACA,CAACA,CAACA;YAC7CA,MAAMA,IAAIA,iBAAiBA,GAAGA,KAAKA,GAAGA,uBAAuBA,GAAGA,WAAWA,CAACA,MAAMA,CAACA,CAACA,EAAEA,CAACA,CAACA,CAACA;QAC7FA,CAACA;QAEDA,MAAMA,IAAIA,iBAAiBA,GAAGA,aAAaA,CAACA,UAAUA,CAACA,UAAUA,EAAEA,OAAOA,CAACA,IAAIA,CAACA,GAAGA,mCAAmCA,CAACA;IAC3HA,CAACA;IACDA,IAAIA,CAACA,CAACA;QACFA,MAAMA,IAAIA,MAAMA,GAAGA,UAAUA,CAACA,cAAcA,CAACA,MAAMA,CAACA,QAAQA,EAAEA,UAAAA,CAAIA,IAACA,OAAAA,CAACA,CAACA,IAAIA,EAANA,CAAMA,CAACA,CAACA,IAAIA,CAACA,IAAIA,CAACA,GAAGA,MAAMA,CAAAA;QAC9FA,KAAKA,GAAGA,gBAAgBA,KAAKA,CAACA,GAAGA,OAAOA,GAAGA,CAACA,UAAUA,GAAGA,gBAAgBA,CAACA,CAACA;QAC3EA,MAAMA,IAAIA,MAAMA,GAAGA,wBAAwBA,GAAGA,KAAKA,GAAGA,UAAUA,CAAAA;QAEhEA,IAAIA,eAAeA,GAAGA,OAAOA,CAACA,QAAQA,EAAEA,UAAAA,CAAIA,IAACA,OAAAA,CAACA,CAACA,IAAIA,CAACA,MAAMA,CAACA,gBAAgBA,EAAEA,CAACA,CAACA,EAAlCA,CAAkCA,CAACA,CAACA;QAEjFA,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,IAAIA,eAAeA,CAACA,CAACA,CAACA;YAC5BA,EAAEA,CAACA,CAACA,eAAeA,CAACA,cAAcA,CAACA,CAACA,CAACA,CAACA,CAACA,CAACA;gBACpCA,MAAMA,IAAIA,MAAMA,GAAGA,wBAAwBA,GAAGA,CAACA,GAAGA,GAAGA,CAACA;gBACtDA,MAAMA,IAAIA,wBAAwBA,CAACA,eAAeA,CAACA,CAACA,CAACA,EAAEA,gBAAgBA,GAAGA,CAACA,EAAEA,MAAMA,GAAGA,MAAMA,CAACA,CAACA;YAClGA,CAACA;QACLA,CAACA;QAEDA,MAAMA,IAAIA,MAAMA,GAAGA,kDAAkDA,CAACA;QACtEA,MAAMA,IAAIA,MAAMA,GAAGA,OAAOA,CAACA;IAC/BA,CAACA;IAEDA,MAAMA,CAACA,MAAMA,CAACA;AAClBA,CAACA;AAED,SAAS,GAAG,CAAI,KAAU,EAAE,IAAsB;IAC9CC,IAAIA,GAAGA,GAAGA,IAAIA,CAACA,KAAKA,CAACA,CAACA,CAACA,CAACA,CAACA;IAEzBA,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,KAAKA,CAACA,MAAMA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;QACpCA,IAAIA,IAAIA,GAAGA,IAAIA,CAACA,KAAKA,CAACA,CAACA,CAACA,CAACA,CAACA;QAC1BA,EAAEA,CAACA,CAACA,IAAIA,GAAGA,GAAGA,CAACA,CAACA,CAACA;YACbA,GAAGA,GAAGA,IAAIA,CAACA;QACfA,CAACA;IACLA,CAACA;IAEDA,MAAMA,CAACA,GAAGA,CAACA;AACfA,CAACA;AAED,SAAS,GAAG,CAAI,KAAU,EAAE,IAAsB;IAC9CC,IAAIA,GAAGA,GAAGA,IAAIA,CAACA,KAAKA,CAACA,CAACA,CAACA,CAACA,CAACA;IAEzBA,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,KAAKA,CAACA,MAAMA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;QACpCA,IAAIA,IAAIA,GAAGA,IAAIA,CAACA,KAAKA,CAACA,CAACA,CAACA,CAACA,CAACA;QAC1BA,EAAEA,CAACA,CAACA,IAAIA,GAAGA,GAAGA,CAACA,CAACA,CAACA;YACbA,GAAGA,GAAGA,IAAIA,CAACA;QACfA,CAACA;IACLA,CAACA;IAEDA,MAAMA,CAACA,GAAGA,CAACA;AACfA,CAACA;AAED,SAAS,iBAAiB;IACtBC,IAAIA,MAAMA,GAAGA,EAAEA,CAACA;IAChBA,MAAMA,IAAIA,iCAAiCA,CAACA;IAC5CA,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,IAAIA,UAAUA,CAACA,UAAUA,CAACA,cAAcA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;QAC7DA,EAAEA,CAACA,CAACA,CAACA,CAACA,CAACA,CAACA;YACJA,MAAMA,IAAIA,IAAIA,CAACA;QACnBA,CAACA;QAEDA,EAAEA,CAACA,CAACA,CAACA,GAAGA,UAAUA,CAACA,UAAUA,CAACA,eAAeA,CAACA,CAACA,CAACA;YAC5CA,MAAMA,IAAIA,GAAGA,CAACA;QAClBA,CAACA;QACDA,IAAIA,CAACA,CAACA;YACFA,MAAMA,IAAIA,UAAUA,CAACA,WAAWA,CAACA,OAAOA,CAACA,CAACA,CAACA,CAACA,MAAMA,CAACA;QACvDA,CAACA;IACLA,CAACA;IACDA,MAAMA,IAAIA,QAAQA,CAACA;IAEnBA,MAAMA,IAAIA,gEAAgEA,CAACA;IAC3EA,MAAMA,IAAIA,+CAA+CA,CAACA;IAS1DA,MAAMA,IAAIA,eAAeA,CAACA;IAE1BA,MAAMA,CAACA,MAAMA,CAACA;AAClBA,CAACA;AAED,SAAS,wBAAwB;IAC7BC,IAAIA,MAAMA,GAAGA,2CAA2CA,GACpDA,MAAMA,GACNA,yBAAyBA,GACzBA,0CAA0CA,CAACA;IAE/CA,IAAIA,CAASA,CAACA;IACdA,IAAIA,QAAQA,GAAqDA,EAAEA,CAACA;IAEpEA,GAAGA,CAACA,CAACA,CAACA,GAAGA,UAAUA,CAACA,UAAUA,CAACA,YAAYA,EAAEA,CAACA,IAAIA,UAAUA,CAACA,UAAUA,CAACA,WAAWA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;QACvFA,QAAQA,CAACA,IAAIA,CAACA,EAAEA,IAAIA,EAAEA,CAACA,EAAEA,IAAIA,EAAEA,UAAUA,CAACA,WAAWA,CAACA,OAAOA,CAACA,CAACA,CAACA,EAAEA,CAACA,CAACA;IACxEA,CAACA;IAEDA,QAAQA,CAACA,IAAIA,CAACA,UAACA,CAACA,EAAEA,CAACA,IAAKA,OAAAA,CAACA,CAACA,IAAIA,CAACA,aAAaA,CAACA,CAACA,CAACA,IAAIA,CAACA,EAA5BA,CAA4BA,CAACA,CAACA;IAEtDA,MAAMA,IAAIA,sGAAsGA,CAACA;IAEjHA,IAAIA,cAAcA,GAAGA,GAAGA,CAACA,QAAQA,EAAEA,UAAAA,CAAIA,IAACA,OAAAA,CAACA,CAACA,IAAIA,CAACA,MAAMA,EAAbA,CAAaA,CAACA,CAACA;IACvDA,IAAIA,cAAcA,GAAGA,GAAGA,CAACA,QAAQA,EAAEA,UAAAA,CAAIA,IAACA,OAAAA,CAACA,CAACA,IAAIA,CAACA,MAAMA,EAAbA,CAAaA,CAACA,CAACA;IACvDA,MAAMA,IAAIA,mCAAmCA,CAACA;IAG9CA,GAAGA,CAACA,CAACA,CAACA,GAAGA,cAAcA,EAAEA,CAACA,IAAIA,cAAcA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;QAChDA,IAAIA,iBAAiBA,GAAGA,UAAUA,CAACA,cAAcA,CAACA,KAAKA,CAACA,QAAQA,EAAEA,UAAAA,CAAIA,IAACA,OAAAA,CAACA,CAACA,IAAIA,CAACA,MAAMA,KAAKA,CAACA,EAAnBA,CAAmBA,CAACA,CAACA;QAC5FA,EAAEA,CAACA,CAACA,iBAAiBA,CAACA,MAAMA,GAAGA,CAACA,CAACA,CAACA,CAACA;YAC/BA,MAAMA,IAAIA,qBAAqBA,GAAGA,CAACA,GAAGA,GAAGA,CAACA;YAC1CA,MAAMA,IAAIA,wBAAwBA,CAACA,iBAAiBA,EAAEA,CAACA,EAAEA,kBAAkBA,CAACA,CAACA;QACjFA,CAACA;IACLA,CAACA;IAEDA,MAAMA,IAAIA,8DAA8DA,CAACA;IACzEA,MAAMA,IAAIA,mBAAmBA,CAACA;IAC9BA,MAAMA,IAAIA,eAAeA,CAACA;IAE1BA,MAAMA,IAAIA,WAAWA,CAACA;IACtBA,MAAMA,IAAIA,GAAGA,CAACA;IAEdA,MAAMA,CAACA,MAAMA,CAACA;AAClBA,CAACA;AAED,SAAS,cAAc,CAAC,IAA2B;IAC/CC,GAAGA,CAACA,CAACA,GAAGA,CAACA,IAAIA,IAAIA,UAAUA,CAACA,UAAUA,CAACA,CAACA,CAACA;QACrCA,EAAEA,CAACA,CAAMA,UAAUA,CAACA,UAAUA,CAACA,IAAIA,CAACA,KAAKA,IAAIA,CAACA,CAACA,CAACA;YAC5CA,MAAMA,CAACA,IAAIA,CAACA;QAChBA,CAACA;IACLA,CAACA;IAEDA,MAAMA,IAAIA,KAAKA,EAAEA,CAACA;AACtBA,CAACA;AAED,SAAS,eAAe;IACpBC,IAAIA,MAAMA,GAAGA,EAAEA,CAACA;IAEhBA,MAAMA,IAAIA,+CAA+CA,CAACA;IAE1DA,MAAMA,IAAIA,yBAAyBA,CAACA;IACpCA,MAAMA,IAAIA,uGAAuGA,CAACA;IAClHA,MAAMA,IAAIA,8DAA8DA,CAACA;IAEzEA,MAAMA,IAAIA,qCAAqCA,CAACA;IAEhDA,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,WAAWA,CAACA,MAAMA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;QAC1CA,IAAIA,UAAUA,GAAGA,WAAWA,CAACA,CAACA,CAACA,CAACA;QAEhCA,MAAMA,IAAIA,8BAA8BA,GAAGA,oBAAoBA,CAACA,UAAUA,CAACA,GAAGA,IAAIA,CAACA;QACnFA,MAAMA,IAAIA,sBAAsBA,GAAGA,oBAAoBA,CAACA,UAAUA,CAACA,GAAGA,IAAIA,GAAGA,UAAUA,CAACA,IAAIA,GAAGA,gBAAgBA,CAACA;IACpHA,CAACA;IAEDA,MAAMA,IAAIA,4EAA4EA,CAACA;IACvFA,MAAMA,IAAIA,eAAeA,CAACA;IAC1BA,MAAMA,IAAIA,eAAeA,CAACA;IAE1BA,MAAMA,IAAIA,2CAA2CA,CAACA;IACtDA,MAAMA,IAAIA,mDAAmDA,CAACA;IAE9DA,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,WAAWA,CAACA,MAAMA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;QAC1CA,IAAIA,UAAUA,GAAGA,WAAWA,CAACA,CAACA,CAACA,CAACA;QAChCA,MAAMA,IAAIA,eAAeA,GAAGA,oBAAoBA,CAACA,UAAUA,CAACA,GAAGA,SAASA,GAAGA,UAAUA,CAACA,IAAIA,GAAGA,aAAaA,CAACA;IAC/GA,CAACA;IAEDA,MAAMA,IAAIA,OAAOA,CAACA;IAElBA,MAAMA,IAAIA,OAAOA,CAACA;IAElBA,MAAMA,CAACA,MAAMA,CAACA;AAClBA,CAACA;AAED,IAAI,mBAAmB,GAAG,aAAa,EAAE,CAAC;AAC1C,IAAI,gBAAgB,GAAG,wBAAwB,EAAE,CAAC;AAClD,IAAI,MAAM,GAAG,cAAc,EAAE,CAAC;AAC9B,IAAI,gBAAgB,GAAG,wBAAwB,EAAE,CAAC;AAClD,IAAI,OAAO,GAAG,eAAe,EAAE,CAAC;AAChC,IAAI,SAAS,GAAG,iBAAiB,EAAE,CAAC;AAEpC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,mBAAmB,EAAE,GAAG,4DAA4D,EAAE,mBAAmB,EAAE,KAAK,CAAC,CAAC;AACpI,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,mBAAmB,EAAE,GAAG,wDAAwD,EAAE,gBAAgB,EAAE,KAAK,CAAC,CAAC;AAC7H,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,mBAAmB,EAAE,GAAG,oDAAoD,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;AAC/G,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,mBAAmB,EAAE,GAAG,wDAAwD,EAAE,gBAAgB,EAAE,KAAK,CAAC,CAAC;AAC7H,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,mBAAmB,EAAE,GAAG,qDAAqD,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;AACjH,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,mBAAmB,EAAE,GAAG,iDAAiD,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC"} ======= @@ -87,3 +88,6 @@ ======= {"version":3,"file":"SyntaxGenerator.js","sourceRoot":"","sources":["file:///C:/VSPro_1/src/typescript/public_cyrusn/src/compiler/sys.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/core/errors.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/core/arrayUtilities.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/core/stringUtilities.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/syntax/syntaxKind.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/syntax/syntaxFacts.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/syntax/SyntaxGenerator.ts"],"names":["getWScriptSystem","getWScriptSystem.readFile","getWScriptSystem.writeFile","getNodeSystem","getNodeSystem.readFile","getNodeSystem.writeFile","getNodeSystem.fileChanged","TypeScript","TypeScript.Errors","TypeScript.Errors.constructor","TypeScript.Errors.argument","TypeScript.Errors.argumentOutOfRange","TypeScript.Errors.argumentNull","TypeScript.Errors.abstract","TypeScript.Errors.notYetImplemented","TypeScript.Errors.invalidOperation","TypeScript.ArrayUtilities","TypeScript.ArrayUtilities.constructor","TypeScript.ArrayUtilities.sequenceEquals","TypeScript.ArrayUtilities.contains","TypeScript.ArrayUtilities.distinct","TypeScript.ArrayUtilities.last","TypeScript.ArrayUtilities.lastOrDefault","TypeScript.ArrayUtilities.firstOrDefault","TypeScript.ArrayUtilities.first","TypeScript.ArrayUtilities.sum","TypeScript.ArrayUtilities.select","TypeScript.ArrayUtilities.where","TypeScript.ArrayUtilities.any","TypeScript.ArrayUtilities.all","TypeScript.ArrayUtilities.binarySearch","TypeScript.ArrayUtilities.createArray","TypeScript.ArrayUtilities.grow","TypeScript.ArrayUtilities.copy","TypeScript.ArrayUtilities.indexOf","TypeScript.StringUtilities","TypeScript.StringUtilities.constructor","TypeScript.StringUtilities.isString","TypeScript.StringUtilities.endsWith","TypeScript.StringUtilities.startsWith","TypeScript.StringUtilities.repeat","TypeScript.SyntaxKind","TypeScript.SyntaxFacts","TypeScript.SyntaxFacts.getTokenKind","TypeScript.SyntaxFacts.getText","TypeScript.SyntaxFacts.isAnyKeyword","TypeScript.SyntaxFacts.isAnyPunctuation","TypeScript.SyntaxFacts.isPrefixUnaryExpressionOperatorToken","TypeScript.SyntaxFacts.isBinaryExpressionOperatorToken","TypeScript.SyntaxFacts.isAssignmentOperatorToken","TypeScript.SyntaxFacts.isType","getSyntaxKindEnum","firstKind","getStringWithoutSuffix","getNameWithoutSuffix","getType","camelCase","getSafeName","generateConstructorFunction","generateSyntaxInterfaces","generateSyntaxInterface","generateNodes","isInterface","generateWalker","firstEnumName","groupBy","generateKeywordCondition","min","max","generateUtilities","generateScannerUtilities","syntaxKindName","generateVisitor"],"mappings":"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"} >>>>>>> 49919b5... Remove IndexMemberDeclaration, we can just use IndexSignature instead. +======= +{"version":3,"file":"SyntaxGenerator.js","sourceRoot":"","sources":["file:///C:/VSPro_1/src/typescript/public_cyrusn/src/compiler/sys.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/core/errors.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/core/arrayUtilities.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/core/stringUtilities.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/syntax/syntaxKind.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/syntax/syntaxFacts.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/syntax/SyntaxGenerator.ts"],"names":["getWScriptSystem","getWScriptSystem.readFile","getWScriptSystem.writeFile","getNodeSystem","getNodeSystem.readFile","getNodeSystem.writeFile","getNodeSystem.fileChanged","TypeScript","TypeScript.Errors","TypeScript.Errors.constructor","TypeScript.Errors.argument","TypeScript.Errors.argumentOutOfRange","TypeScript.Errors.argumentNull","TypeScript.Errors.abstract","TypeScript.Errors.notYetImplemented","TypeScript.Errors.invalidOperation","TypeScript.ArrayUtilities","TypeScript.ArrayUtilities.constructor","TypeScript.ArrayUtilities.sequenceEquals","TypeScript.ArrayUtilities.contains","TypeScript.ArrayUtilities.distinct","TypeScript.ArrayUtilities.last","TypeScript.ArrayUtilities.lastOrDefault","TypeScript.ArrayUtilities.firstOrDefault","TypeScript.ArrayUtilities.first","TypeScript.ArrayUtilities.sum","TypeScript.ArrayUtilities.select","TypeScript.ArrayUtilities.where","TypeScript.ArrayUtilities.any","TypeScript.ArrayUtilities.all","TypeScript.ArrayUtilities.binarySearch","TypeScript.ArrayUtilities.createArray","TypeScript.ArrayUtilities.grow","TypeScript.ArrayUtilities.copy","TypeScript.ArrayUtilities.indexOf","TypeScript.StringUtilities","TypeScript.StringUtilities.constructor","TypeScript.StringUtilities.isString","TypeScript.StringUtilities.endsWith","TypeScript.StringUtilities.startsWith","TypeScript.StringUtilities.repeat","TypeScript.SyntaxKind","TypeScript.SyntaxFacts","TypeScript.SyntaxFacts.getTokenKind","TypeScript.SyntaxFacts.getText","TypeScript.SyntaxFacts.isAnyKeyword","TypeScript.SyntaxFacts.isAnyPunctuation","TypeScript.SyntaxFacts.isPrefixUnaryExpressionOperatorToken","TypeScript.SyntaxFacts.isBinaryExpressionOperatorToken","TypeScript.SyntaxFacts.isAssignmentOperatorToken","TypeScript.SyntaxFacts.isType","getSyntaxKindEnum","firstKind","getStringWithoutSuffix","getNameWithoutSuffix","getType","camelCase","getSafeName","generateConstructorFunction","generateSyntaxInterfaces","generateSyntaxInterface","generateNodes","isInterface","generateWalker","firstEnumName","groupBy","generateKeywordCondition","min","max","generateUtilities","generateScannerUtilities","syntaxKindName","generateVisitor"],"mappings":"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"} +>>>>>>> c9b778e... Rename 'CastExpression' to 'TypeAssertionExpression'. diff --git a/src/services/syntax/parser.ts b/src/services/syntax/parser.ts index 1a9921252f7..b811206c02f 100644 --- a/src/services/syntax/parser.ts +++ b/src/services/syntax/parser.ts @@ -2733,7 +2733,7 @@ module TypeScript.Parser { case SyntaxKind.DeleteKeyword: return parseDeleteExpression(_currentToken); case SyntaxKind.LessThanToken: - return parseCastExpression(_currentToken); + return parseTypeAssertionExpression(_currentToken); case SyntaxKind.AwaitKeyword: return parsePossibleAwaitExpression(_currentToken); default: @@ -3276,8 +3276,8 @@ module TypeScript.Parser { return new TemplateClauseSyntax(contextFlags, expression, token); } - function parseCastExpression(lessThanToken: ISyntaxToken): CastExpressionSyntax { - return new CastExpressionSyntax(contextFlags, + function parseTypeAssertionExpression(lessThanToken: ISyntaxToken): TypeAssertionExpressionSyntax { + return new TypeAssertionExpressionSyntax(contextFlags, consumeToken(lessThanToken), parseType(), eatToken(SyntaxKind.GreaterThanToken), diff --git a/src/services/syntax/prettyPrinter.ts b/src/services/syntax/prettyPrinter.ts index 9db1eb3f0cb..b7808bc7023 100644 --- a/src/services/syntax/prettyPrinter.ts +++ b/src/services/syntax/prettyPrinter.ts @@ -910,7 +910,7 @@ module TypeScript.PrettyPrinter { this.appendNode(node.equalsValueClause); } - public visitCastExpression(node: CastExpressionSyntax): void { + public visitTypeAssertionExpression(node: TypeAssertionExpressionSyntax): void { this.appendToken(node.lessThanToken); visitNodeOrToken(this, node.type); this.appendToken(node.greaterThanToken); diff --git a/src/services/syntax/syntaxGenerator.ts b/src/services/syntax/syntaxGenerator.ts index d662221f286..9ce1e49876a 100644 --- a/src/services/syntax/syntaxGenerator.ts +++ b/src/services/syntax/syntaxGenerator.ts @@ -880,7 +880,7 @@ var definitions:ITypeDefinition[] = [ ] }, { - name: 'CastExpressionSyntax', + name: 'TypeAssertionExpressionSyntax', baseType: 'ISyntaxNode', interfaces: ['IUnaryExpressionSyntax'], children: [ diff --git a/src/services/syntax/syntaxInterfaces.generated.ts b/src/services/syntax/syntaxInterfaces.generated.ts index 68f463cbf8e..29cba2bec81 100644 --- a/src/services/syntax/syntaxInterfaces.generated.ts +++ b/src/services/syntax/syntaxInterfaces.generated.ts @@ -483,13 +483,13 @@ module TypeScript { } export interface SimpleArrowFunctionExpressionConstructor { new (data: number, asyncKeyword: ISyntaxToken, parameter: ParameterSyntax, equalsGreaterThanToken: ISyntaxToken, body: BlockSyntax | IExpressionSyntax): SimpleArrowFunctionExpressionSyntax } - export interface CastExpressionSyntax extends ISyntaxNode, IUnaryExpressionSyntax { + export interface TypeAssertionExpressionSyntax extends ISyntaxNode, IUnaryExpressionSyntax { lessThanToken: ISyntaxToken; type: ITypeSyntax; greaterThanToken: ISyntaxToken; expression: IUnaryExpressionSyntax; } - export interface CastExpressionConstructor { new (data: number, lessThanToken: ISyntaxToken, type: ITypeSyntax, greaterThanToken: ISyntaxToken, expression: IUnaryExpressionSyntax): CastExpressionSyntax } + export interface TypeAssertionExpressionConstructor { new (data: number, lessThanToken: ISyntaxToken, type: ITypeSyntax, greaterThanToken: ISyntaxToken, expression: IUnaryExpressionSyntax): TypeAssertionExpressionSyntax } export interface ElementAccessExpressionSyntax extends ISyntaxNode, IMemberExpressionSyntax, ICallExpressionSyntax { expression: ILeftHandSideExpressionSyntax; diff --git a/src/services/syntax/syntaxKind.ts b/src/services/syntax/syntaxKind.ts index a3a563e3392..ce60413d884 100644 --- a/src/services/syntax/syntaxKind.ts +++ b/src/services/syntax/syntaxKind.ts @@ -230,7 +230,7 @@ module TypeScript { ParenthesizedExpression, ParenthesizedArrowFunctionExpression, SimpleArrowFunctionExpression, - CastExpression, + TypeAssertionExpression, ElementAccessExpression, FunctionExpression, OmittedExpression, diff --git a/src/services/syntax/syntaxNodes.concrete.generated.ts b/src/services/syntax/syntaxNodes.concrete.generated.ts index 180d3519177..4aa7f97398b 100644 --- a/src/services/syntax/syntaxNodes.concrete.generated.ts +++ b/src/services/syntax/syntaxNodes.concrete.generated.ts @@ -1322,7 +1322,7 @@ module TypeScript { } } - export var CastExpressionSyntax: CastExpressionConstructor = function(data: number, lessThanToken: ISyntaxToken, type: ITypeSyntax, greaterThanToken: ISyntaxToken, expression: IUnaryExpressionSyntax) { + export var TypeAssertionExpressionSyntax: TypeAssertionExpressionConstructor = function(data: number, lessThanToken: ISyntaxToken, type: ITypeSyntax, greaterThanToken: ISyntaxToken, expression: IUnaryExpressionSyntax) { if (data) { this.__data = data; } this.lessThanToken = lessThanToken, this.type = type, @@ -1333,9 +1333,9 @@ module TypeScript { greaterThanToken.parent = this, expression.parent = this; }; - CastExpressionSyntax.prototype.kind = SyntaxKind.CastExpression; - CastExpressionSyntax.prototype.childCount = 4; - CastExpressionSyntax.prototype.childAt = function(index: number): ISyntaxElement { + TypeAssertionExpressionSyntax.prototype.kind = SyntaxKind.TypeAssertionExpression; + TypeAssertionExpressionSyntax.prototype.childCount = 4; + TypeAssertionExpressionSyntax.prototype.childAt = function(index: number): ISyntaxElement { switch (index) { case 0: return this.lessThanToken; case 1: return this.type; diff --git a/src/services/syntax/syntaxUtilities.ts b/src/services/syntax/syntaxUtilities.ts index 03fb6520878..bbc9506637b 100644 --- a/src/services/syntax/syntaxUtilities.ts +++ b/src/services/syntax/syntaxUtilities.ts @@ -186,7 +186,7 @@ module TypeScript { switch (parent.kind) { case SyntaxKind.TypeArgumentList: case SyntaxKind.TypeParameterList: - case SyntaxKind.CastExpression: + case SyntaxKind.TypeAssertionExpression: return true; } } diff --git a/src/services/syntax/syntaxVisitor.generated.ts b/src/services/syntax/syntaxVisitor.generated.ts index 6a050664d0a..5fb6aae9911 100644 --- a/src/services/syntax/syntaxVisitor.generated.ts +++ b/src/services/syntax/syntaxVisitor.generated.ts @@ -65,7 +65,7 @@ module TypeScript { case SyntaxKind.ParenthesizedExpression: return visitor.visitParenthesizedExpression(element); case SyntaxKind.ParenthesizedArrowFunctionExpression: return visitor.visitParenthesizedArrowFunctionExpression(element); case SyntaxKind.SimpleArrowFunctionExpression: return visitor.visitSimpleArrowFunctionExpression(element); - case SyntaxKind.CastExpression: return visitor.visitCastExpression(element); + case SyntaxKind.TypeAssertionExpression: return visitor.visitTypeAssertionExpression(element); case SyntaxKind.ElementAccessExpression: return visitor.visitElementAccessExpression(element); case SyntaxKind.FunctionExpression: return visitor.visitFunctionExpression(element); case SyntaxKind.OmittedExpression: return visitor.visitOmittedExpression(element); @@ -165,7 +165,7 @@ module TypeScript { visitParenthesizedExpression(node: ParenthesizedExpressionSyntax): any; visitParenthesizedArrowFunctionExpression(node: ParenthesizedArrowFunctionExpressionSyntax): any; visitSimpleArrowFunctionExpression(node: SimpleArrowFunctionExpressionSyntax): any; - visitCastExpression(node: CastExpressionSyntax): any; + visitTypeAssertionExpression(node: TypeAssertionExpressionSyntax): any; visitElementAccessExpression(node: ElementAccessExpressionSyntax): any; visitFunctionExpression(node: FunctionExpressionSyntax): any; visitOmittedExpression(node: OmittedExpressionSyntax): any; diff --git a/src/services/syntax/syntaxWalker.generated.ts b/src/services/syntax/syntaxWalker.generated.ts index c3e94788dfa..4dd4df3f346 100644 --- a/src/services/syntax/syntaxWalker.generated.ts +++ b/src/services/syntax/syntaxWalker.generated.ts @@ -439,7 +439,7 @@ module TypeScript { visitNodeOrToken(this, node.body); } - public visitCastExpression(node: CastExpressionSyntax): void { + public visitTypeAssertionExpression(node: TypeAssertionExpressionSyntax): void { this.visitToken(node.lessThanToken); visitNodeOrToken(this, node.type); this.visitToken(node.greaterThanToken); From e1011aa2f08b7442afa1f7cf1dfa7c4168f0c521 Mon Sep 17 00:00:00 2001 From: Cyrus Najmabadi Date: Sat, 29 Nov 2014 15:47:02 -0800 Subject: [PATCH 118/195] Rename syntax properties to match Roslyn/Fidelity naming. --- src/compiler/checker.ts | 66 ++++++++++++++++++------------------- src/compiler/emitter.ts | 34 +++++++++---------- src/compiler/parser.ts | 46 +++++++++++++------------- src/compiler/types.ts | 14 ++++---- src/harness/typeWriter.ts | 2 +- src/services/breakpoints.ts | 4 +-- src/services/services.ts | 10 +++--- 7 files changed, 88 insertions(+), 88 deletions(-) diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index ded46d3f19b..4f1f796e3e3 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -4328,7 +4328,7 @@ module ts { case SyntaxKind.ArrayLiteral: case SyntaxKind.ObjectLiteral: case SyntaxKind.PropertyAccess: - case SyntaxKind.IndexedAccess: + case SyntaxKind.ElementAccessExpression: case SyntaxKind.CallExpression: case SyntaxKind.NewExpression: case SyntaxKind.TypeAssertion: @@ -4625,7 +4625,7 @@ module ts { } function checkSuperExpression(node: Node): Type { - var isCallExpression = node.parent.kind === SyntaxKind.CallExpression && (node.parent).func === node; + var isCallExpression = node.parent.kind === SyntaxKind.CallExpression && (node.parent).expression === node; var enclosingClass = getAncestor(node, SyntaxKind.ClassDeclaration); var baseClass: Type; if (enclosingClass && enclosingClass.baseType) { @@ -5208,15 +5208,15 @@ module ts { return true; } - function checkIndexedAccess(node: IndexedAccess): Type { + function checkIndexedAccess(node: ElementAccessExpression): Type { // Obtain base constraint such that we can bail out if the constraint is an unknown type - var objectType = getApparentType(checkExpression(node.object)); - var indexType = checkExpression(node.index); + var objectType = getApparentType(checkExpression(node.expression)); + var indexType = checkExpression(node.argumentExpression); if (objectType === unknownType) return unknownType; - if (isConstEnumObjectType(objectType) && node.index.kind !== SyntaxKind.StringLiteral) { - error(node.index, Diagnostics.Index_expression_arguments_in_const_enums_must_be_of_type_string); + if (isConstEnumObjectType(objectType) && node.argumentExpression.kind !== SyntaxKind.StringLiteral) { + error(node.argumentExpression, Diagnostics.Index_expression_arguments_in_const_enums_must_be_of_type_string); } // TypeScript 1.0 spec (April 2014): 4.10 Property Access @@ -5229,8 +5229,8 @@ module ts { // - Otherwise, if IndexExpr is of type Any, the String or Number primitive type, or an enum type, the property access is of type Any. // See if we can index as a property. - if (node.index.kind === SyntaxKind.StringLiteral || node.index.kind === SyntaxKind.NumericLiteral) { - var name = (node.index).text; + if (node.argumentExpression.kind === SyntaxKind.StringLiteral || node.argumentExpression.kind === SyntaxKind.NumericLiteral) { + var name = (node.argumentExpression).text; var prop = getPropertyOfType(objectType, name); if (prop) { getNodeLinks(node).resolvedSymbol = prop; @@ -5629,7 +5629,7 @@ module 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).func || (node).tag, diagnosticChainHead); + reportNoCommonSupertypeError(inferenceCandidates, (node).expression || (node).tag, diagnosticChainHead); } } else { @@ -5759,15 +5759,15 @@ module ts { } function resolveCallExpression(node: CallExpression, candidatesOutArray: Signature[]): Signature { - if (node.func.kind === SyntaxKind.SuperKeyword) { - var superType = checkSuperExpression(node.func); + if (node.expression.kind === SyntaxKind.SuperKeyword) { + var superType = checkSuperExpression(node.expression); if (superType !== unknownType) { return resolveCall(node, getSignaturesOfType(superType, SignatureKind.Construct), candidatesOutArray); } return resolveUntypedCall(node); } - var funcType = checkExpression(node.func); + var funcType = checkExpression(node.expression); var apparentType = getApparentType(funcType); if (apparentType === unknownType) { @@ -5811,7 +5811,7 @@ module ts { } function resolveNewExpression(node: NewExpression, candidatesOutArray: Signature[]): Signature { - var expressionType = checkExpression(node.func); + var expressionType = checkExpression(node.expression); // TS 1.0 spec: 4.11 // If ConstructExpr is of type Any, Args can be any argument // list and the result of the operation is of type Any. @@ -5911,7 +5911,7 @@ module ts { function checkCallExpression(node: CallExpression): Type { var signature = getResolvedSignature(node); - if (node.func.kind === SyntaxKind.SuperKeyword) { + if (node.expression.kind === SyntaxKind.SuperKeyword) { return voidType; } if (node.kind === SyntaxKind.NewExpression) { @@ -5936,7 +5936,7 @@ module ts { } function checkTypeAssertion(node: TypeAssertion): Type { - var exprType = checkExpression(node.operand); + var exprType = checkExpression(node.expression); var targetType = getTypeFromTypeNode(node.type); if (fullTypeCheck && targetType !== unknownType) { var widenedType = getWidenedType(exprType, /*supressNoImplicitAnyErrors*/ true); @@ -6171,7 +6171,7 @@ module ts { // A property access expression is always classified as a reference. // NOTE (not in spec): assignment to enum members should not be allowed return !symbol || symbol === unknownSymbol || (symbol.flags & ~SymbolFlags.EnumMember) !== 0; - case SyntaxKind.IndexedAccess: + case SyntaxKind.ElementAccessExpression: // old compiler doesn't check indexed assess return true; case SyntaxKind.ParenExpression: @@ -6187,9 +6187,9 @@ module ts { case SyntaxKind.PropertyAccess: var symbol = findSymbol(n); return symbol && (symbol.flags & SymbolFlags.Variable) !== 0 && (getDeclarationFlagsFromSymbol(symbol) & NodeFlags.Const) !== 0; - case SyntaxKind.IndexedAccess: - var index = (n).index; - var symbol = findSymbol((n).object); + case SyntaxKind.ElementAccessExpression: + var index = (n).argumentExpression; + var symbol = findSymbol((n).expression); if (symbol && index.kind === SyntaxKind.StringLiteral) { var name = (index).text; var prop = getPropertyOfType(getTypeOfSymbol(symbol), name); @@ -6525,7 +6525,7 @@ module ts { // - target in rhs of import statement var ok = (node.parent.kind === SyntaxKind.PropertyAccess && (node.parent).left === node) || - (node.parent.kind === SyntaxKind.IndexedAccess && (node.parent).object === node) || + (node.parent.kind === SyntaxKind.ElementAccessExpression && (node.parent).expression === node) || ((node.kind === SyntaxKind.Identifier || node.kind === SyntaxKind.QualifiedName) && isInRightSideOfImportOrExportAssignment(node)); if (!ok) { @@ -6565,8 +6565,8 @@ module ts { return checkObjectLiteral(node, contextualMapper); case SyntaxKind.PropertyAccess: return checkPropertyAccess(node); - case SyntaxKind.IndexedAccess: - return checkIndexedAccess(node); + case SyntaxKind.ElementAccessExpression: + return checkIndexedAccess(node); case SyntaxKind.CallExpression: case SyntaxKind.NewExpression: return checkCallExpression(node); @@ -6763,7 +6763,7 @@ module ts { } function isSuperCallExpression(n: Node): boolean { - return n.kind === SyntaxKind.CallExpression && (n).func.kind === SyntaxKind.SuperKeyword; + return n.kind === SyntaxKind.CallExpression && (n).expression.kind === SyntaxKind.SuperKeyword; } function containsSuperCall(n: Node): boolean { @@ -8139,7 +8139,7 @@ module ts { case SyntaxKind.ParenExpression: return enumIsConst ? evalConstant((e).expression) : undefined; case SyntaxKind.Identifier: - case SyntaxKind.IndexedAccess: + case SyntaxKind.ElementAccessExpression: case SyntaxKind.PropertyAccess: if (!enumIsConst) { return undefined; @@ -8157,12 +8157,12 @@ module ts { propertyName = (e).text; } else { - if (e.kind === SyntaxKind.IndexedAccess) { - if ((e).index.kind !== SyntaxKind.StringLiteral) { + if (e.kind === SyntaxKind.ElementAccessExpression) { + if ((e).argumentExpression.kind !== SyntaxKind.StringLiteral) { return undefined; } - var enumType = getTypeOfNode((e).object); - propertyName = ((e).index).text; + var enumType = getTypeOfNode((e).expression); + propertyName = ((e).argumentExpression).text; } else { var enumType = getTypeOfNode((e).left); @@ -8491,7 +8491,7 @@ module ts { case SyntaxKind.ObjectLiteral: case SyntaxKind.PropertyAssignment: case SyntaxKind.PropertyAccess: - case SyntaxKind.IndexedAccess: + case SyntaxKind.ElementAccessExpression: case SyntaxKind.CallExpression: case SyntaxKind.NewExpression: case SyntaxKind.TaggedTemplateExpression: @@ -8907,8 +8907,8 @@ module ts { // Intentional fall-through case SyntaxKind.NumericLiteral: // index access - if (node.parent.kind == SyntaxKind.IndexedAccess && (node.parent).index === node) { - var objectType = checkExpression((node.parent).object); + if (node.parent.kind == SyntaxKind.ElementAccessExpression && (node.parent).argumentExpression === node) { + var objectType = checkExpression((node.parent).expression); if (objectType === unknownType) return undefined; var apparentType = getApparentType(objectType); if (apparentType === unknownType) return undefined; @@ -9160,7 +9160,7 @@ module ts { return getNodeLinks(node).enumMemberValue; } - function getConstantValue(node: PropertyAccess | IndexedAccess): number { + function getConstantValue(node: PropertyAccess | ElementAccessExpression): number { var symbol = getNodeLinks(node).resolvedSymbol; if (symbol && (symbol.flags & SymbolFlags.EnumMember)) { var declaration = symbol.valueDeclaration; diff --git a/src/compiler/emitter.ts b/src/compiler/emitter.ts index a3315bf35c5..810e9130062 100644 --- a/src/compiler/emitter.ts +++ b/src/compiler/emitter.ts @@ -2027,7 +2027,7 @@ module ts { switch (parent.kind) { case SyntaxKind.CallExpression: case SyntaxKind.NewExpression: - return (parent).func === template; + return (parent).expression === template; case SyntaxKind.ParenExpression: return false; case SyntaxKind.TaggedTemplateExpression: @@ -2249,10 +2249,10 @@ module ts { } } - function tryEmitConstantValue(node: PropertyAccess | IndexedAccess): boolean { + function tryEmitConstantValue(node: PropertyAccess | ElementAccessExpression): boolean { var constantValue = resolver.getConstantValue(node); if (constantValue !== undefined) { - var propertyName = node.kind === SyntaxKind.PropertyAccess ? declarationNameToString((node).right) : getTextOfNode((node).index); + var propertyName = node.kind === SyntaxKind.PropertyAccess ? declarationNameToString((node).right) : getTextOfNode((node).argumentExpression); write(constantValue.toString() + " /* " + propertyName + " */"); return true; } @@ -2268,29 +2268,29 @@ module ts { emit(node.right); } - function emitIndexedAccess(node: IndexedAccess) { + function emitIndexedAccess(node: ElementAccessExpression) { if (tryEmitConstantValue(node)) { return; } - emit(node.object); + emit(node.expression); write("["); - emit(node.index); + emit(node.argumentExpression); write("]"); } function emitCallExpression(node: CallExpression) { var superCall = false; - if (node.func.kind === SyntaxKind.SuperKeyword) { + if (node.expression.kind === SyntaxKind.SuperKeyword) { write("_super"); superCall = true; } else { - emit(node.func); - superCall = node.func.kind === SyntaxKind.PropertyAccess && (node.func).left.kind === SyntaxKind.SuperKeyword; + emit(node.expression); + superCall = node.expression.kind === SyntaxKind.PropertyAccess && (node.expression).left.kind === SyntaxKind.SuperKeyword; } if (superCall) { write(".call("); - emitThis(node.func); + emitThis(node.expression); if (node.arguments.length) { write(", "); emitCommaList(node.arguments, /*includeTrailingComma*/ false); @@ -2306,7 +2306,7 @@ module ts { function emitNewExpression(node: NewExpression) { write("new "); - emit(node.func); + emit(node.expression); if (node.arguments) { write("("); emitCommaList(node.arguments, /*includeTrailingComma*/ false); @@ -2323,12 +2323,12 @@ module ts { function emitParenExpression(node: ParenExpression) { if (node.expression.kind === SyntaxKind.TypeAssertion) { - var operand = (node.expression).operand; + var operand = (node.expression).expression; // Make sure we consider all nested cast expressions, e.g.: // (-A).x; while (operand.kind == SyntaxKind.TypeAssertion) { - operand = (operand).operand; + operand = (operand).expression; } // We have an expression of the form: (SubExpr) @@ -2883,7 +2883,7 @@ module ts { if (statement && statement.kind === SyntaxKind.ExpressionStatement) { var expr = (statement).expression; if (expr && expr.kind === SyntaxKind.CallExpression) { - var func = (expr).func; + var func = (expr).expression; if (func && func.kind === SyntaxKind.SuperKeyword) { return statement; } @@ -3507,8 +3507,8 @@ module ts { return emitComputedPropertyName(node); case SyntaxKind.PropertyAccess: return emitPropertyAccess(node); - case SyntaxKind.IndexedAccess: - return emitIndexedAccess(node); + case SyntaxKind.ElementAccessExpression: + return emitIndexedAccess(node); case SyntaxKind.CallExpression: return emitCallExpression(node); case SyntaxKind.NewExpression: @@ -3516,7 +3516,7 @@ module ts { case SyntaxKind.TaggedTemplateExpression: return emitTaggedTemplateExpression(node); case SyntaxKind.TypeAssertion: - return emit((node).operand); + return emit((node).expression); case SyntaxKind.ParenExpression: return emitParenExpression(node); case SyntaxKind.FunctionDeclaration: diff --git a/src/compiler/parser.ts b/src/compiler/parser.ts index 6d0e65223c1..6b173386382 100644 --- a/src/compiler/parser.ts +++ b/src/compiler/parser.ts @@ -262,12 +262,12 @@ module ts { case SyntaxKind.PropertyAccess: return child((node).left) || child((node).right); - case SyntaxKind.IndexedAccess: - return child((node).object) || - child((node).index); + case SyntaxKind.ElementAccessExpression: + return child((node).expression) || + child((node).argumentExpression); case SyntaxKind.CallExpression: case SyntaxKind.NewExpression: - return child((node).func) || + return child((node).expression) || children((node).typeArguments) || children((node).arguments); case SyntaxKind.TaggedTemplateExpression: @@ -275,7 +275,7 @@ module ts { child((node).template); case SyntaxKind.TypeAssertion: return child((node).type) || - child((node).operand); + child((node).expression); case SyntaxKind.ParenExpression: return child((node).expression); case SyntaxKind.DeleteExpression: @@ -502,7 +502,7 @@ module ts { } // Will either be a CallExpression or NewExpression. - return (node).func; + return (node).expression; } export function isExpression(node: Node): boolean { @@ -516,7 +516,7 @@ module ts { case SyntaxKind.ArrayLiteral: case SyntaxKind.ObjectLiteral: case SyntaxKind.PropertyAccess: - case SyntaxKind.IndexedAccess: + case SyntaxKind.ElementAccessExpression: case SyntaxKind.CallExpression: case SyntaxKind.NewExpression: case SyntaxKind.TaggedTemplateExpression: @@ -572,7 +572,7 @@ module ts { return (parent).variable === node || (parent).expression === node; case SyntaxKind.TypeAssertion: - return node === (parent).operand; + return node === (parent).expression; case SyntaxKind.TemplateSpan: return node === (parent).expression; default: @@ -2798,7 +2798,7 @@ module ts { parseExpected(SyntaxKind.LessThanToken); node.type = parseType(); parseExpected(SyntaxKind.GreaterThanToken); - node.operand = parseUnaryExpressionOrHigher(); + node.expression = parseUnaryExpressionOrHigher(); return finishNode(node); } @@ -2853,21 +2853,21 @@ module ts { } if (token === SyntaxKind.OpenBracketToken) { - var indexedAccess = createNode(SyntaxKind.IndexedAccess, expression.pos); - indexedAccess.object = expression; + var indexedAccess = createNode(SyntaxKind.ElementAccessExpression, expression.pos); + indexedAccess.expression = expression; indexedAccess.openBracketToken = parseTokenNode(SyntaxKind.OpenBracketToken); // It's not uncommon for a user to write: "new Type[]". // Check for that common pattern and report a better error message. if (token !== SyntaxKind.CloseBracketToken) { - indexedAccess.index = allowInAnd(parseExpression); - if (indexedAccess.index.kind === SyntaxKind.StringLiteral || indexedAccess.index.kind === SyntaxKind.NumericLiteral) { - var literal = indexedAccess.index; + indexedAccess.argumentExpression = allowInAnd(parseExpression); + if (indexedAccess.argumentExpression.kind === SyntaxKind.StringLiteral || indexedAccess.argumentExpression.kind === SyntaxKind.NumericLiteral) { + var literal = indexedAccess.argumentExpression; literal.text = internIdentifier(literal.text); } } else { - indexedAccess.index = createMissingNode(); + indexedAccess.argumentExpression = createMissingNode(); } indexedAccess.closeBracketToken = parseTokenNode(SyntaxKind.CloseBracketToken); @@ -2901,7 +2901,7 @@ module ts { } var callExpr = createNode(SyntaxKind.CallExpression, expression.pos); - callExpr.func = expression; + callExpr.expression = expression; callExpr.typeArguments = typeArguments; callExpr.arguments = parseDelimitedList(ParsingContext.ArgumentExpressions, parseArgumentExpression); parseExpected(SyntaxKind.CloseParenToken); @@ -2911,7 +2911,7 @@ module ts { if (token === SyntaxKind.OpenParenToken) { var callExpr = createNode(SyntaxKind.CallExpression, expression.pos); - callExpr.func = expression; + callExpr.expression = expression; parseExpected(SyntaxKind.OpenParenToken); callExpr.arguments = parseDelimitedList(ParsingContext.ArgumentExpressions, parseArgumentExpression); parseExpected(SyntaxKind.CloseParenToken); @@ -3123,7 +3123,7 @@ module ts { function parseNewExpression(): NewExpression { var node = createNode(SyntaxKind.NewExpression); parseExpected(SyntaxKind.NewKeyword); - node.func = parseMemberExpressionOrHigher(); + node.expression = parseMemberExpressionOrHigher(); if (parseOptional(SyntaxKind.OpenParenToken) || (token === SyntaxKind.LessThanToken && (node.typeArguments = tryParse(parseTypeArgumentsAndOpenParen)))) { node.arguments = parseDelimitedList(ParsingContext.ArgumentExpressions, parseArgumentExpression); parseExpected(SyntaxKind.CloseParenToken); @@ -4120,7 +4120,7 @@ module ts { if (expr) { switch (expr.kind) { case SyntaxKind.PropertyAccess: - case SyntaxKind.IndexedAccess: + case SyntaxKind.ElementAccessExpression: case SyntaxKind.NewExpression: case SyntaxKind.CallExpression: case SyntaxKind.TaggedTemplateExpression: @@ -4236,7 +4236,7 @@ module ts { case SyntaxKind.FunctionDeclaration: return checkFunctionDeclaration(node); case SyntaxKind.FunctionExpression: return checkFunctionExpression(node); case SyntaxKind.GetAccessor: return checkGetAccessor(node); - case SyntaxKind.IndexedAccess: return checkIndexedAccess(node); + case SyntaxKind.ElementAccessExpression: return checkIndexedAccess(node); case SyntaxKind.IndexSignature: return checkIndexSignature(node); case SyntaxKind.InterfaceDeclaration: return checkInterfaceDeclaration(node); case SyntaxKind.LabeledStatement: return checkLabeledStatement(node); @@ -4632,10 +4632,10 @@ module ts { checkAccessor(node); } - function checkIndexedAccess(node: IndexedAccess) { - if (node.index.kind === SyntaxKind.Missing) { + function checkIndexedAccess(node: ElementAccessExpression) { + if (node.argumentExpression.kind === SyntaxKind.Missing) { if (node.parent.kind === SyntaxKind.NewExpression && - (node.parent).func === node) { + (node.parent).expression === node) { var start = skipTrivia(sourceText, node.openBracketToken.pos); var end = node.closeBracketToken.end; diff --git a/src/compiler/types.ts b/src/compiler/types.ts index 4a6a26856ff..a1180617867 100644 --- a/src/compiler/types.ts +++ b/src/compiler/types.ts @@ -170,7 +170,7 @@ module ts { PropertyAssignment, ShorthandPropertyAssignment, PropertyAccess, - IndexedAccess, + ElementAccessExpression, CallExpression, NewExpression, TaggedTemplateExpression, @@ -512,15 +512,15 @@ module ts { right: Identifier; } - export interface IndexedAccess extends Expression { - object: Expression; + export interface ElementAccessExpression extends Expression { + expression: Expression; openBracketToken: Node; - index: Expression; + argumentExpression: Expression; closeBracketToken: Node; } export interface CallExpression extends Expression { - func: Expression; + expression: Expression; typeArguments?: NodeArray; arguments: NodeArray; } @@ -536,7 +536,7 @@ module ts { export interface TypeAssertion extends Expression { type: TypeNode; - operand: Expression; + expression: Expression; } export interface Statement extends Node { } @@ -890,7 +890,7 @@ module ts { isSymbolAccessible(symbol: Symbol, enclosingDeclaration: Node, meaning: SymbolFlags): SymbolAccessiblityResult; isEntityNameVisible(entityName: EntityName, enclosingDeclaration: Node): SymbolVisibilityResult; // Returns the constant value this property access resolves to, or 'undefined' for a non-constant - getConstantValue(node: PropertyAccess | IndexedAccess): number; + getConstantValue(node: PropertyAccess | ElementAccessExpression): number; isEmitBlocked(sourceFile?: SourceFile): boolean; } diff --git a/src/harness/typeWriter.ts b/src/harness/typeWriter.ts index 8122c639680..5d5ecaa661f 100644 --- a/src/harness/typeWriter.ts +++ b/src/harness/typeWriter.ts @@ -32,7 +32,7 @@ class TypeWriterWalker { case ts.SyntaxKind.ArrayLiteral: case ts.SyntaxKind.ObjectLiteral: case ts.SyntaxKind.PropertyAccess: - case ts.SyntaxKind.IndexedAccess: + case ts.SyntaxKind.ElementAccessExpression: case ts.SyntaxKind.CallExpression: case ts.SyntaxKind.NewExpression: case ts.SyntaxKind.TypeAssertion: diff --git a/src/services/breakpoints.ts b/src/services/breakpoints.ts index 7867751a96f..fe7c3af5597 100644 --- a/src/services/breakpoints.ts +++ b/src/services/breakpoints.ts @@ -243,7 +243,7 @@ module ts.BreakpointResolver { // Breakpoint in type assertion goes to its operand if (node.parent.kind === SyntaxKind.TypeAssertion && (node.parent).type === node) { - return spanInNode((node.parent).operand); + return spanInNode((node.parent).expression); } // return type of function go to previous token @@ -484,7 +484,7 @@ module ts.BreakpointResolver { function spanInGreaterThanOrLessThanToken(node: Node): TextSpan { if (node.parent.kind === SyntaxKind.TypeAssertion) { - return spanInNode((node.parent).operand); + return spanInNode((node.parent).expression); } return spanInNode(node.parent); diff --git a/src/services/services.ts b/src/services/services.ts index 167bf00c820..4e7da91bbf5 100644 --- a/src/services/services.ts +++ b/src/services/services.ts @@ -1934,14 +1934,14 @@ module ts { if (isRightSideOfPropertyAccess(node)) { node = node.parent; } - return node && node.parent && node.parent.kind === SyntaxKind.CallExpression && (node.parent).func === node; + return node && node.parent && node.parent.kind === SyntaxKind.CallExpression && (node.parent).expression === node; } function isNewExpressionTarget(node: Node): boolean { if (isRightSideOfPropertyAccess(node)) { node = node.parent; } - return node && node.parent && node.parent.kind === SyntaxKind.NewExpression && (node.parent).func === node; + return node && node.parent && node.parent.kind === SyntaxKind.NewExpression && (node.parent).expression === node; } function isNameOfModuleDeclaration(node: Node) { @@ -1970,8 +1970,8 @@ module ts { case SyntaxKind.SetAccessor: case SyntaxKind.ModuleDeclaration: return (node.parent).name === node; - case SyntaxKind.IndexedAccess: - return (node.parent).index === node; + case SyntaxKind.ElementAccessExpression: + return (node.parent).argumentExpression === node; } } @@ -2903,7 +2903,7 @@ module ts { signature = candidateSignatures[0]; } - var useConstructSignatures = callExpression.kind === SyntaxKind.NewExpression || callExpression.func.kind === SyntaxKind.SuperKeyword; + var useConstructSignatures = callExpression.kind === SyntaxKind.NewExpression || callExpression.expression.kind === SyntaxKind.SuperKeyword; var allSignatures = useConstructSignatures ? type.getConstructSignatures() : type.getCallSignatures(); if (!contains(allSignatures, signature.target || signature)) { From 1d61ac5d5ffc9e5fa50a0af511e85c9a3092b206 Mon Sep 17 00:00:00 2001 From: Cyrus Najmabadi Date: Sat, 29 Nov 2014 15:52:46 -0800 Subject: [PATCH 119/195] Renaming syntax elements. --- src/compiler/checker.ts | 10 +++++----- src/compiler/emitter.ts | 6 +++--- src/compiler/parser.ts | 8 ++++---- src/compiler/types.ts | 6 +++--- 4 files changed, 15 insertions(+), 15 deletions(-) diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index 4f1f796e3e3..c020aa84b2e 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -1061,7 +1061,7 @@ module ts { function getTypeAliasForTypeLiteral(type: Type): Symbol { if (type.symbol && type.symbol.flags & SymbolFlags.TypeLiteral) { var node = type.symbol.declarations[0].parent; - while (node.kind === SyntaxKind.ParenType) { + while (node.kind === SyntaxKind.ParenthesizedType) { node = node.parent; } if (node.kind === SyntaxKind.TypeAliasDeclaration) { @@ -3041,8 +3041,8 @@ module ts { return getTypeFromTupleTypeNode(node); case SyntaxKind.UnionType: return getTypeFromUnionTypeNode(node); - case SyntaxKind.ParenType: - return getTypeFromTypeNode((node).type); + case SyntaxKind.ParenthesizedType: + return getTypeFromTypeNode((node).type); case SyntaxKind.FunctionType: case SyntaxKind.ConstructorType: case SyntaxKind.TypeLiteral: @@ -8402,8 +8402,8 @@ module ts { return checkTupleType(node); case SyntaxKind.UnionType: return checkUnionType(node); - case SyntaxKind.ParenType: - return checkSourceElement((node).type); + case SyntaxKind.ParenthesizedType: + return checkSourceElement((node).type); case SyntaxKind.FunctionDeclaration: return checkFunctionDeclaration(node); case SyntaxKind.Block: diff --git a/src/compiler/emitter.ts b/src/compiler/emitter.ts index 810e9130062..de3c5ca19c9 100644 --- a/src/compiler/emitter.ts +++ b/src/compiler/emitter.ts @@ -518,8 +518,8 @@ module ts { return emitTupleType(type); case SyntaxKind.UnionType: return emitUnionType(type); - case SyntaxKind.ParenType: - return emitParenType(type); + case SyntaxKind.ParenthesizedType: + return emitParenType(type); case SyntaxKind.FunctionType: case SyntaxKind.ConstructorType: return emitSignatureDeclarationWithJsDocComments(type); @@ -583,7 +583,7 @@ module ts { emitSeparatedList(type.types, " | ", emitType); } - function emitParenType(type: ParenTypeNode) { + function emitParenType(type: ParenthesizedTypeNode) { write("("); emitType(type.type); write(")"); diff --git a/src/compiler/parser.ts b/src/compiler/parser.ts index 6b173386382..a1636357fe5 100644 --- a/src/compiler/parser.ts +++ b/src/compiler/parser.ts @@ -253,8 +253,8 @@ module ts { return children((node).elementTypes); case SyntaxKind.UnionType: return children((node).types); - case SyntaxKind.ParenType: - return child((node).type); + case SyntaxKind.ParenthesizedType: + return child((node).type); case SyntaxKind.ArrayLiteral: return children((node).elements); case SyntaxKind.ObjectLiteral: @@ -1996,8 +1996,8 @@ module ts { return finishNode(node); } - function parseParenType(): ParenTypeNode { - var node = createNode(SyntaxKind.ParenType); + function parseParenType(): ParenthesizedTypeNode { + var node = createNode(SyntaxKind.ParenthesizedType); parseExpected(SyntaxKind.OpenParenToken); node.type = parseType(); parseExpected(SyntaxKind.CloseParenToken); diff --git a/src/compiler/types.ts b/src/compiler/types.ts index a1180617867..242f6243a71 100644 --- a/src/compiler/types.ts +++ b/src/compiler/types.ts @@ -163,7 +163,7 @@ module ts { ArrayType, TupleType, UnionType, - ParenType, + ParenthesizedType, // Expression ArrayLiteral, ObjectLiteral, @@ -243,7 +243,7 @@ module ts { FirstFutureReservedWord = ImplementsKeyword, LastFutureReservedWord = YieldKeyword, FirstTypeNode = TypeReference, - LastTypeNode = ParenType, + LastTypeNode = ParenthesizedType, FirstPunctuation = OpenBraceToken, LastPunctuation = CaretEqualsToken, FirstToken = EndOfFileToken, @@ -425,7 +425,7 @@ module ts { types: NodeArray; } - export interface ParenTypeNode extends TypeNode { + export interface ParenthesizedTypeNode extends TypeNode { type: TypeNode; } From e4b543981c2b5874cba970c5c61c5ccfd04fe30d Mon Sep 17 00:00:00 2001 From: Cyrus Najmabadi Date: Sat, 29 Nov 2014 15:58:55 -0800 Subject: [PATCH 120/195] Updating syntax kind names. --- src/compiler/binder.ts | 4 +- src/compiler/checker.ts | 114 ++++++++++----------- src/compiler/emitter.ts | 46 ++++----- src/compiler/parser.ts | 70 ++++++------- src/compiler/types.ts | 32 +++--- src/harness/typeWriter.ts | 12 +-- src/services/breakpoints.ts | 4 +- src/services/formatting/rules.ts | 4 +- src/services/outliningElementsCollector.ts | 4 +- src/services/services.ts | 30 +++--- src/services/smartIndenter.ts | 20 ++-- 11 files changed, 171 insertions(+), 169 deletions(-) diff --git a/src/compiler/binder.ts b/src/compiler/binder.ts index 5098b16e4bb..1502dbc8ead 100644 --- a/src/compiler/binder.ts +++ b/src/compiler/binder.ts @@ -279,7 +279,7 @@ module ts { break; } case SyntaxKind.TypeLiteral: - case SyntaxKind.ObjectLiteral: + case SyntaxKind.ObjectLiteralExpression: case SyntaxKind.InterfaceDeclaration: declareSymbol(container.symbol.members, container.symbol, node, symbolKind, symbolExcludes); break; @@ -436,7 +436,7 @@ module ts { case SyntaxKind.TypeLiteral: bindAnonymousDeclaration(node, SymbolFlags.TypeLiteral, "__type", /*isBlockScopeContainer*/ false); break; - case SyntaxKind.ObjectLiteral: + case SyntaxKind.ObjectLiteralExpression: bindAnonymousDeclaration(node, SymbolFlags.ObjectLiteral, "__object", /*isBlockScopeContainer*/ false); break; case SyntaxKind.FunctionExpression: diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index c020aa84b2e..0d1ad489c72 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -3223,11 +3223,11 @@ module ts { case SyntaxKind.FunctionExpression: case SyntaxKind.ArrowFunction: return !(node).typeParameters && !forEach((node).parameters, p => p.type); - case SyntaxKind.ObjectLiteral: - return forEach((node).properties, p => + case SyntaxKind.ObjectLiteralExpression: + return forEach((node).properties, p => p.kind === SyntaxKind.PropertyAssignment && isContextSensitiveExpression((p).initializer)); - case SyntaxKind.ArrayLiteral: - return forEach((node).elements, e => isContextSensitiveExpression(e)); + case SyntaxKind.ArrayLiteralExpression: + return forEach((node).elements, e => isContextSensitiveExpression(e)); case SyntaxKind.ConditionalExpression: return isContextSensitiveExpression((node).whenTrue) || isContextSensitiveExpression((node).whenFalse); @@ -4302,8 +4302,8 @@ module ts { function isAssignedInBinaryExpression(node: BinaryExpression) { if (node.operator >= SyntaxKind.FirstAssignment && node.operator <= SyntaxKind.LastAssignment) { var n = node.left; - while (n.kind === SyntaxKind.ParenExpression) { - n = (n).expression; + while (n.kind === SyntaxKind.ParenthesizedExpression) { + n = (n).expression; } if (n.kind === SyntaxKind.Identifier && getResolvedSymbol(n) === symbol) { return true; @@ -4325,19 +4325,19 @@ module ts { return isAssignedInBinaryExpression(node); case SyntaxKind.VariableDeclaration: return isAssignedInVariableDeclaration(node); - case SyntaxKind.ArrayLiteral: - case SyntaxKind.ObjectLiteral: - case SyntaxKind.PropertyAccess: + case SyntaxKind.ArrayLiteralExpression: + case SyntaxKind.ObjectLiteralExpression: + case SyntaxKind.PropertyAccessExpression: case SyntaxKind.ElementAccessExpression: case SyntaxKind.CallExpression: case SyntaxKind.NewExpression: - case SyntaxKind.TypeAssertion: - case SyntaxKind.ParenExpression: + case SyntaxKind.TypeAssertionExpression: + case SyntaxKind.ParenthesizedExpression: case SyntaxKind.PrefixUnaryExpression: case SyntaxKind.DeleteExpression: case SyntaxKind.TypeOfExpression: case SyntaxKind.VoidExpression: - case SyntaxKind.PostfixOperator: + case SyntaxKind.PostfixUnaryExpression: case SyntaxKind.ConditionalExpression: case SyntaxKind.Block: case SyntaxKind.VariableStatement: @@ -4496,8 +4496,8 @@ module ts { // Narrow the given type based on the given expression having the assumed boolean value function narrowType(type: Type, expr: Expression, assumeTrue: boolean): Type { switch (expr.kind) { - case SyntaxKind.ParenExpression: - return narrowType(type, (expr).expression, assumeTrue); + case SyntaxKind.ParenthesizedExpression: + return narrowType(type, (expr).expression, assumeTrue); case SyntaxKind.BinaryExpression: var operator = (expr).operator; if (operator === SyntaxKind.EqualsEqualsEqualsToken || operator === SyntaxKind.ExclamationEqualsEqualsToken) { @@ -4864,7 +4864,7 @@ module ts { // exists. Otherwise, it is the type of the string index signature in T, if one exists. function getContextualTypeForPropertyExpression(node: Expression): Type { var declaration = node.parent; - var objectLiteral = declaration.parent; + var objectLiteral = declaration.parent; var type = getContextualType(objectLiteral); // TODO(jfreeman): Handle this case for computed names and symbols var name = (declaration.name).text; @@ -4880,7 +4880,7 @@ module ts { // the type of the property with the numeric name N in T, if one exists. Otherwise, it is the type of the numeric // index signature in T, if one exists. function getContextualTypeForElementExpression(node: Expression): Type { - var arrayLiteral = node.parent; + var arrayLiteral = node.parent; var type = getContextualType(arrayLiteral); if (type) { var index = indexOf(arrayLiteral.elements, node); @@ -4917,13 +4917,13 @@ module ts { case SyntaxKind.CallExpression: case SyntaxKind.NewExpression: return getContextualTypeForArgument(node); - case SyntaxKind.TypeAssertion: + case SyntaxKind.TypeAssertionExpression: return getTypeFromTypeNode((parent).type); case SyntaxKind.BinaryExpression: return getContextualTypeForBinaryOperand(node); case SyntaxKind.PropertyAssignment: return getContextualTypeForPropertyExpression(node); - case SyntaxKind.ArrayLiteral: + case SyntaxKind.ArrayLiteralExpression: return getContextualTypeForElementExpression(node); case SyntaxKind.ConditionalExpression: return getContextualTypeForConditionalOperand(node); @@ -5000,7 +5000,7 @@ module ts { return mapper && mapper !== identityMapper; } - function checkArrayLiteral(node: ArrayLiteral, contextualMapper?: TypeMapper): Type { + function checkArrayLiteral(node: ArrayLiteralExpression, contextualMapper?: TypeMapper): Type { var elements = node.elements; if (!elements.length) { return createArrayType(undefinedType); @@ -5038,7 +5038,7 @@ module ts { return (+name).toString() === name; } - function checkObjectLiteral(node: ObjectLiteral, contextualMapper?: TypeMapper): Type { + function checkObjectLiteral(node: ObjectLiteralExpression, contextualMapper?: TypeMapper): Type { var members = node.symbol.members; var properties: SymbolTable = {}; var contextualType = getContextualType(node); @@ -5115,7 +5115,7 @@ module ts { return s.valueDeclaration ? s.valueDeclaration.flags : s.flags & SymbolFlags.Prototype ? NodeFlags.Public | NodeFlags.Static : 0; } - function checkClassPropertyAccess(node: PropertyAccess, type: Type, prop: Symbol) { + function checkClassPropertyAccess(node: PropertyAccessExpression, type: Type, prop: Symbol) { var flags = getDeclarationFlagsFromSymbol(prop); // Public properties are always accessible if (!(flags & (NodeFlags.Private | NodeFlags.Protected))) { @@ -5153,7 +5153,7 @@ module ts { } } - function checkPropertyAccess(node: PropertyAccess) { + function checkPropertyAccess(node: PropertyAccessExpression) { var type = checkExpression(node.left); if (type === unknownType) return type; if (type !== anyType) { @@ -5190,7 +5190,7 @@ module ts { return anyType; } - function isValidPropertyAccess(node: PropertyAccess, propertyName: string): boolean { + function isValidPropertyAccess(node: PropertyAccessExpression, propertyName: string): boolean { var type = checkExpression(node.left); if (type !== unknownType && type !== anyType) { var prop = getPropertyOfType(getWidenedType(type), propertyName); @@ -6165,7 +6165,7 @@ module ts { // An identifier expression that references a variable or parameter is classified as a reference. // An identifier expression that references any other kind of entity is classified as a value(and therefore cannot be the target of an assignment). return !symbol || symbol === unknownSymbol || symbol === argumentsSymbol || (symbol.flags & SymbolFlags.Variable) !== 0; - case SyntaxKind.PropertyAccess: + case SyntaxKind.PropertyAccessExpression: var symbol = findSymbol(n); // TypeScript 1.0 spec (April 2014): 4.10 // A property access expression is always classified as a reference. @@ -6174,8 +6174,8 @@ module ts { case SyntaxKind.ElementAccessExpression: // old compiler doesn't check indexed assess return true; - case SyntaxKind.ParenExpression: - return isReferenceOrErrorExpression((n).expression); + case SyntaxKind.ParenthesizedExpression: + return isReferenceOrErrorExpression((n).expression); default: return false; } @@ -6184,7 +6184,7 @@ module ts { function isConstVariableReference(n: Node): boolean { switch (n.kind) { case SyntaxKind.Identifier: - case SyntaxKind.PropertyAccess: + case SyntaxKind.PropertyAccessExpression: var symbol = findSymbol(n); return symbol && (symbol.flags & SymbolFlags.Variable) !== 0 && (getDeclarationFlagsFromSymbol(symbol) & NodeFlags.Const) !== 0; case SyntaxKind.ElementAccessExpression: @@ -6196,8 +6196,8 @@ module ts { return prop && (prop.flags & SymbolFlags.Variable) !== 0 && (getDeclarationFlagsFromSymbol(prop) & NodeFlags.Const) !== 0; } return false; - case SyntaxKind.ParenExpression: - return isConstVariableReference((n).expression); + case SyntaxKind.ParenthesizedExpression: + return isConstVariableReference((n).expression); default: return false; } @@ -6524,7 +6524,7 @@ module ts { // - 'object' in indexed access // - target in rhs of import statement var ok = - (node.parent.kind === SyntaxKind.PropertyAccess && (node.parent).left === node) || + (node.parent.kind === SyntaxKind.PropertyAccessExpression && (node.parent).left === node) || (node.parent.kind === SyntaxKind.ElementAccessExpression && (node.parent).expression === node) || ((node.kind === SyntaxKind.Identifier || node.kind === SyntaxKind.QualifiedName) && isInRightSideOfImportOrExportAssignment(node)); @@ -6559,12 +6559,12 @@ module ts { return globalRegExpType; case SyntaxKind.QualifiedName: return checkPropertyAccess(node); - case SyntaxKind.ArrayLiteral: - return checkArrayLiteral(node, contextualMapper); - case SyntaxKind.ObjectLiteral: - return checkObjectLiteral(node, contextualMapper); - case SyntaxKind.PropertyAccess: - return checkPropertyAccess(node); + case SyntaxKind.ArrayLiteralExpression: + return checkArrayLiteral(node, contextualMapper); + case SyntaxKind.ObjectLiteralExpression: + return checkObjectLiteral(node, contextualMapper); + case SyntaxKind.PropertyAccessExpression: + return checkPropertyAccess(node); case SyntaxKind.ElementAccessExpression: return checkIndexedAccess(node); case SyntaxKind.CallExpression: @@ -6572,10 +6572,10 @@ module ts { return checkCallExpression(node); case SyntaxKind.TaggedTemplateExpression: return checkTaggedTemplateExpression(node); - case SyntaxKind.TypeAssertion: + case SyntaxKind.TypeAssertionExpression: return checkTypeAssertion(node); - case SyntaxKind.ParenExpression: - return checkExpression((node).expression); + case SyntaxKind.ParenthesizedExpression: + return checkExpression((node).expression); case SyntaxKind.FunctionExpression: case SyntaxKind.ArrowFunction: return checkFunctionExpression(node, contextualMapper); @@ -6587,7 +6587,7 @@ module ts { return checkVoidExpression(node); case SyntaxKind.PrefixUnaryExpression: return checkPrefixExpression(node); - case SyntaxKind.PostfixOperator: + case SyntaxKind.PostfixUnaryExpression: return checkPostfixExpression(node); case SyntaxKind.BinaryExpression: return checkBinaryExpression(node, contextualMapper); @@ -6774,7 +6774,7 @@ module ts { case SyntaxKind.FunctionExpression: case SyntaxKind.FunctionDeclaration: case SyntaxKind.ArrowFunction: - case SyntaxKind.ObjectLiteral: return false; + case SyntaxKind.ObjectLiteralExpression: return false; default: return forEachChild(n, containsSuperCall); } } @@ -8136,11 +8136,11 @@ module ts { return undefined; case SyntaxKind.NumericLiteral: return +(e).text; - case SyntaxKind.ParenExpression: - return enumIsConst ? evalConstant((e).expression) : undefined; + case SyntaxKind.ParenthesizedExpression: + return enumIsConst ? evalConstant((e).expression) : undefined; case SyntaxKind.Identifier: case SyntaxKind.ElementAccessExpression: - case SyntaxKind.PropertyAccess: + case SyntaxKind.PropertyAccessExpression: if (!enumIsConst) { return undefined; } @@ -8165,8 +8165,8 @@ module ts { propertyName = ((e).argumentExpression).text; } else { - var enumType = getTypeOfNode((e).left); - propertyName = (e).right.text; + var enumType = getTypeOfNode((e).left); + propertyName = (e).right.text; } if (enumType !== currentType) { return undefined; @@ -8487,21 +8487,21 @@ module ts { break; case SyntaxKind.Parameter: case SyntaxKind.Property: - case SyntaxKind.ArrayLiteral: - case SyntaxKind.ObjectLiteral: + case SyntaxKind.ArrayLiteralExpression: + case SyntaxKind.ObjectLiteralExpression: case SyntaxKind.PropertyAssignment: - case SyntaxKind.PropertyAccess: + case SyntaxKind.PropertyAccessExpression: case SyntaxKind.ElementAccessExpression: case SyntaxKind.CallExpression: case SyntaxKind.NewExpression: case SyntaxKind.TaggedTemplateExpression: - case SyntaxKind.TypeAssertion: - case SyntaxKind.ParenExpression: + case SyntaxKind.TypeAssertionExpression: + case SyntaxKind.ParenthesizedExpression: case SyntaxKind.TypeOfExpression: case SyntaxKind.VoidExpression: case SyntaxKind.DeleteExpression: case SyntaxKind.PrefixUnaryExpression: - case SyntaxKind.PostfixOperator: + case SyntaxKind.PostfixUnaryExpression: case SyntaxKind.BinaryExpression: case SyntaxKind.ConditionalExpression: case SyntaxKind.Block: @@ -8776,7 +8776,7 @@ module ts { case SyntaxKind.ConstructSignature: case SyntaxKind.IndexSignature: return node === (parent).type; - case SyntaxKind.TypeAssertion: + case SyntaxKind.TypeAssertionExpression: return node === (parent).type; case SyntaxKind.CallExpression: case SyntaxKind.NewExpression: @@ -8806,7 +8806,7 @@ module ts { } function isRightSideOfQualifiedNameOrPropertyAccess(node: Node) { - return (node.parent.kind === SyntaxKind.QualifiedName || node.parent.kind === SyntaxKind.PropertyAccess) && + return (node.parent.kind === SyntaxKind.QualifiedName || node.parent.kind === SyntaxKind.PropertyAccessExpression) && (node.parent).right === node; } @@ -8836,7 +8836,7 @@ module ts { var meaning: SymbolFlags = SymbolFlags.Value | SymbolFlags.Import; return resolveEntityName(entityName, entityName, meaning); } - else if (entityName.kind === SyntaxKind.QualifiedName || entityName.kind === SyntaxKind.PropertyAccess) { + else if (entityName.kind === SyntaxKind.QualifiedName || entityName.kind === SyntaxKind.PropertyAccessExpression) { var symbol = getNodeLinks(entityName).resolvedSymbol; if (!symbol) { checkPropertyAccess(entityName); @@ -8879,7 +8879,7 @@ module ts { switch (node.kind) { case SyntaxKind.Identifier: - case SyntaxKind.PropertyAccess: + case SyntaxKind.PropertyAccessExpression: case SyntaxKind.QualifiedName: return getSymbolOfEntityName(node); @@ -9160,7 +9160,7 @@ module ts { return getNodeLinks(node).enumMemberValue; } - function getConstantValue(node: PropertyAccess | ElementAccessExpression): number { + function getConstantValue(node: PropertyAccessExpression | ElementAccessExpression): number { var symbol = getNodeLinks(node).resolvedSymbol; if (symbol && (symbol.flags & SymbolFlags.EnumMember)) { var declaration = symbol.valueDeclaration; diff --git a/src/compiler/emitter.ts b/src/compiler/emitter.ts index de3c5ca19c9..a68b12bebd7 100644 --- a/src/compiler/emitter.ts +++ b/src/compiler/emitter.ts @@ -1996,7 +1996,7 @@ module ts { // ("abc" + 1) << (2 + "") // rather than // "abc" + (1 << 2) + "" - var needsParens = templateSpan.expression.kind !== SyntaxKind.ParenExpression + var needsParens = templateSpan.expression.kind !== SyntaxKind.ParenthesizedExpression && comparePrecedenceToBinaryPlus(templateSpan.expression) !== Comparison.GreaterThan; write(" + "); @@ -2028,7 +2028,7 @@ module ts { case SyntaxKind.CallExpression: case SyntaxKind.NewExpression: return (parent).expression === template; - case SyntaxKind.ParenExpression: + case SyntaxKind.ParenthesizedExpression: return false; case SyntaxKind.TaggedTemplateExpression: Debug.fail("Path should be unreachable; tagged templates not supported pre-ES6."); @@ -2170,7 +2170,7 @@ module ts { } } - function emitArrayLiteral(node: ArrayLiteral) { + function emitArrayLiteral(node: ArrayLiteralExpression) { if (node.flags & NodeFlags.MultiLine) { write("["); increaseIndent(); @@ -2186,7 +2186,7 @@ module ts { } } - function emitObjectLiteral(node: ObjectLiteral) { + function emitObjectLiteral(node: ObjectLiteralExpression) { if (!node.properties.length) { write("{}"); } @@ -2249,17 +2249,17 @@ module ts { } } - function tryEmitConstantValue(node: PropertyAccess | ElementAccessExpression): boolean { + function tryEmitConstantValue(node: PropertyAccessExpression | ElementAccessExpression): boolean { var constantValue = resolver.getConstantValue(node); if (constantValue !== undefined) { - var propertyName = node.kind === SyntaxKind.PropertyAccess ? declarationNameToString((node).right) : getTextOfNode((node).argumentExpression); + var propertyName = node.kind === SyntaxKind.PropertyAccessExpression ? declarationNameToString((node).right) : getTextOfNode((node).argumentExpression); write(constantValue.toString() + " /* " + propertyName + " */"); return true; } return false; } - function emitPropertyAccess(node: PropertyAccess) { + function emitPropertyAccess(node: PropertyAccessExpression) { if (tryEmitConstantValue(node)) { return; } @@ -2286,7 +2286,7 @@ module ts { } else { emit(node.expression); - superCall = node.expression.kind === SyntaxKind.PropertyAccess && (node.expression).left.kind === SyntaxKind.SuperKeyword; + superCall = node.expression.kind === SyntaxKind.PropertyAccessExpression && (node.expression).left.kind === SyntaxKind.SuperKeyword; } if (superCall) { write(".call("); @@ -2321,13 +2321,13 @@ module ts { emit(node.template); } - function emitParenExpression(node: ParenExpression) { - if (node.expression.kind === SyntaxKind.TypeAssertion) { + function emitParenExpression(node: ParenthesizedExpression) { + if (node.expression.kind === SyntaxKind.TypeAssertionExpression) { var operand = (node.expression).expression; // Make sure we consider all nested cast expressions, e.g.: // (-A).x; - while (operand.kind == SyntaxKind.TypeAssertion) { + while (operand.kind == SyntaxKind.TypeAssertionExpression) { operand = (operand).expression; } @@ -2343,7 +2343,7 @@ module ts { operand.kind !== SyntaxKind.VoidExpression && operand.kind !== SyntaxKind.TypeOfExpression && operand.kind !== SyntaxKind.DeleteExpression && - operand.kind !== SyntaxKind.PostfixOperator && + operand.kind !== SyntaxKind.PostfixUnaryExpression && operand.kind !== SyntaxKind.NewExpression && !(operand.kind === SyntaxKind.CallExpression && node.parent.kind === SyntaxKind.NewExpression) && !(operand.kind === SyntaxKind.FunctionExpression && node.parent.kind === SyntaxKind.CallExpression)) { @@ -2403,7 +2403,7 @@ module ts { } } emit(node.operand); - if (node.kind === SyntaxKind.PostfixOperator) { + if (node.kind === SyntaxKind.PostfixUnaryExpression) { write(tokenToString(node.operator)); } } @@ -3495,18 +3495,18 @@ module ts { return emitTemplateSpan(node); case SyntaxKind.QualifiedName: return emitPropertyAccess(node); - case SyntaxKind.ArrayLiteral: - return emitArrayLiteral(node); - case SyntaxKind.ObjectLiteral: - return emitObjectLiteral(node); + case SyntaxKind.ArrayLiteralExpression: + return emitArrayLiteral(node); + case SyntaxKind.ObjectLiteralExpression: + return emitObjectLiteral(node); case SyntaxKind.PropertyAssignment: return emitPropertyAssignment(node); case SyntaxKind.ShorthandPropertyAssignment: return emitShortHandPropertyAssignment(node); case SyntaxKind.ComputedPropertyName: return emitComputedPropertyName(node); - case SyntaxKind.PropertyAccess: - return emitPropertyAccess(node); + case SyntaxKind.PropertyAccessExpression: + return emitPropertyAccess(node); case SyntaxKind.ElementAccessExpression: return emitIndexedAccess(node); case SyntaxKind.CallExpression: @@ -3515,10 +3515,10 @@ module ts { return emitNewExpression(node); case SyntaxKind.TaggedTemplateExpression: return emitTaggedTemplateExpression(node); - case SyntaxKind.TypeAssertion: + case SyntaxKind.TypeAssertionExpression: return emit((node).expression); - case SyntaxKind.ParenExpression: - return emitParenExpression(node); + case SyntaxKind.ParenthesizedExpression: + return emitParenExpression(node); case SyntaxKind.FunctionDeclaration: case SyntaxKind.FunctionExpression: case SyntaxKind.ArrowFunction: @@ -3530,7 +3530,7 @@ module ts { case SyntaxKind.VoidExpression: return emitVoidExpression(node); case SyntaxKind.PrefixUnaryExpression: - case SyntaxKind.PostfixOperator: + case SyntaxKind.PostfixUnaryExpression: return emitUnaryExpression(node); case SyntaxKind.BinaryExpression: return emitBinaryExpression(node); diff --git a/src/compiler/parser.ts b/src/compiler/parser.ts index a1636357fe5..654abac6d57 100644 --- a/src/compiler/parser.ts +++ b/src/compiler/parser.ts @@ -255,13 +255,13 @@ module ts { return children((node).types); case SyntaxKind.ParenthesizedType: return child((node).type); - case SyntaxKind.ArrayLiteral: - return children((node).elements); - case SyntaxKind.ObjectLiteral: - return children((node).properties); - case SyntaxKind.PropertyAccess: - return child((node).left) || - child((node).right); + case SyntaxKind.ArrayLiteralExpression: + return children((node).elements); + case SyntaxKind.ObjectLiteralExpression: + return children((node).properties); + case SyntaxKind.PropertyAccessExpression: + return child((node).left) || + child((node).right); case SyntaxKind.ElementAccessExpression: return child((node).expression) || child((node).argumentExpression); @@ -273,11 +273,11 @@ module ts { case SyntaxKind.TaggedTemplateExpression: return child((node).tag) || child((node).template); - case SyntaxKind.TypeAssertion: + case SyntaxKind.TypeAssertionExpression: return child((node).type) || child((node).expression); - case SyntaxKind.ParenExpression: - return child((node).expression); + case SyntaxKind.ParenthesizedExpression: + return child((node).expression); case SyntaxKind.DeleteExpression: return child((node).expression); case SyntaxKind.TypeOfExpression: @@ -285,7 +285,7 @@ module ts { case SyntaxKind.VoidExpression: return child((node).expression); case SyntaxKind.PrefixUnaryExpression: - case SyntaxKind.PostfixOperator: + case SyntaxKind.PostfixUnaryExpression: return child((node).operand); case SyntaxKind.BinaryExpression: return child((node).left) || @@ -513,22 +513,22 @@ module ts { case SyntaxKind.TrueKeyword: case SyntaxKind.FalseKeyword: case SyntaxKind.RegularExpressionLiteral: - case SyntaxKind.ArrayLiteral: - case SyntaxKind.ObjectLiteral: - case SyntaxKind.PropertyAccess: + case SyntaxKind.ArrayLiteralExpression: + case SyntaxKind.ObjectLiteralExpression: + case SyntaxKind.PropertyAccessExpression: case SyntaxKind.ElementAccessExpression: case SyntaxKind.CallExpression: case SyntaxKind.NewExpression: case SyntaxKind.TaggedTemplateExpression: - case SyntaxKind.TypeAssertion: - case SyntaxKind.ParenExpression: + case SyntaxKind.TypeAssertionExpression: + case SyntaxKind.ParenthesizedExpression: case SyntaxKind.FunctionExpression: case SyntaxKind.ArrowFunction: case SyntaxKind.VoidExpression: case SyntaxKind.DeleteExpression: case SyntaxKind.TypeOfExpression: case SyntaxKind.PrefixUnaryExpression: - case SyntaxKind.PostfixOperator: + case SyntaxKind.PostfixUnaryExpression: case SyntaxKind.BinaryExpression: case SyntaxKind.ConditionalExpression: case SyntaxKind.TemplateExpression: @@ -571,7 +571,7 @@ module ts { case SyntaxKind.ForInStatement: return (parent).variable === node || (parent).expression === node; - case SyntaxKind.TypeAssertion: + case SyntaxKind.TypeAssertionExpression: return node === (parent).expression; case SyntaxKind.TemplateSpan: return node === (parent).expression; @@ -2676,7 +2676,7 @@ module ts { if ((token === SyntaxKind.PlusPlusToken || token === SyntaxKind.MinusMinusToken) && !scanner.hasPrecedingLineBreak()) { var operator = token; nextToken(); - return makeUnaryExpression(SyntaxKind.PostfixOperator, expression.pos, operator, expression); + return makeUnaryExpression(SyntaxKind.PostfixUnaryExpression, expression.pos, operator, expression); } return expression; @@ -2786,7 +2786,7 @@ module ts { // If we have seen "super" it must be followed by '(' or '.'. // If it wasn't then just try to parse out a '.' and report an error. - var node = createNode(SyntaxKind.PropertyAccess, expression.pos); + var node = createNode(SyntaxKind.PropertyAccessExpression, expression.pos); node.left = expression; parseExpected(SyntaxKind.DotToken, Diagnostics.super_must_be_followed_by_an_argument_list_or_member_access); node.right = parseIdentifierName(); @@ -2794,7 +2794,7 @@ module ts { } function parseTypeAssertion(): TypeAssertion { - var node = createNode(SyntaxKind.TypeAssertion); + var node = createNode(SyntaxKind.TypeAssertionExpression); parseExpected(SyntaxKind.LessThanToken); node.type = parseType(); parseExpected(SyntaxKind.GreaterThanToken); @@ -2813,7 +2813,7 @@ module ts { while (true) { var dotOrBracketStart = scanner.getTokenPos(); if (parseOptional(SyntaxKind.DotToken)) { - var propertyAccess = createNode(SyntaxKind.PropertyAccess, expression.pos); + var propertyAccess = createNode(SyntaxKind.PropertyAccessExpression, expression.pos); // Technically a keyword is valid here as all keywords are identifier names. // However, often we'll encounter this in error situations when the keyword // is actually starting another valid construct. @@ -2990,8 +2990,8 @@ module ts { return createMissingNode(); } - function parseParenExpression(): ParenExpression { - var node = createNode(SyntaxKind.ParenExpression); + function parseParenExpression(): ParenthesizedExpression { + var node = createNode(SyntaxKind.ParenthesizedExpression); parseExpected(SyntaxKind.OpenParenToken); node.expression = allowInAnd(parseExpression); parseExpected(SyntaxKind.CloseParenToken); @@ -3012,8 +3012,8 @@ module ts { return allowInAnd(parseAssignmentExpressionOrOmittedExpression); } - function parseArrayLiteral(): ArrayLiteral { - var node = createNode(SyntaxKind.ArrayLiteral); + function parseArrayLiteral(): ArrayLiteralExpression { + var node = createNode(SyntaxKind.ArrayLiteralExpression); parseExpected(SyntaxKind.OpenBracketToken); if (scanner.hasPrecedingLineBreak()) node.flags |= NodeFlags.MultiLine; node.elements = parseDelimitedList(ParsingContext.ArrayLiteralMembers, parseArrayLiteralElement); @@ -3077,8 +3077,8 @@ module ts { return parsePropertyAssignment(); } - function parseObjectLiteral(): ObjectLiteral { - var node = createNode(SyntaxKind.ObjectLiteral); + function parseObjectLiteral(): ObjectLiteralExpression { + var node = createNode(SyntaxKind.ObjectLiteralExpression); parseExpected(SyntaxKind.OpenBraceToken); if (scanner.hasPrecedingLineBreak()) { node.flags |= NodeFlags.MultiLine; @@ -4119,14 +4119,14 @@ module ts { function isLeftHandSideExpression(expr: Expression): boolean { if (expr) { switch (expr.kind) { - case SyntaxKind.PropertyAccess: + case SyntaxKind.PropertyAccessExpression: case SyntaxKind.ElementAccessExpression: case SyntaxKind.NewExpression: case SyntaxKind.CallExpression: case SyntaxKind.TaggedTemplateExpression: - case SyntaxKind.ArrayLiteral: - case SyntaxKind.ParenExpression: - case SyntaxKind.ObjectLiteral: + case SyntaxKind.ArrayLiteralExpression: + case SyntaxKind.ParenthesizedExpression: + case SyntaxKind.ObjectLiteralExpression: case SyntaxKind.FunctionExpression: case SyntaxKind.Identifier: case SyntaxKind.Missing: @@ -4242,10 +4242,10 @@ module ts { case SyntaxKind.LabeledStatement: return checkLabeledStatement(node); case SyntaxKind.Method: return checkMethod(node); case SyntaxKind.ModuleDeclaration: return checkModuleDeclaration(node); - case SyntaxKind.ObjectLiteral: return checkObjectLiteral(node); + case SyntaxKind.ObjectLiteralExpression: return checkObjectLiteral(node); case SyntaxKind.NumericLiteral: return checkNumericLiteral(node); case SyntaxKind.Parameter: return checkParameter(node); - case SyntaxKind.PostfixOperator: return checkPostfixOperator(node); + case SyntaxKind.PostfixUnaryExpression: return checkPostfixOperator(node); case SyntaxKind.PrefixUnaryExpression: return checkPrefixOperator(node); case SyntaxKind.Property: return checkProperty(node); case SyntaxKind.PropertyAssignment: return checkPropertyAssignment(node); @@ -4763,7 +4763,7 @@ module ts { } } - function checkObjectLiteral(node: ObjectLiteral): boolean { + function checkObjectLiteral(node: ObjectLiteralExpression): boolean { var seen: Map = {}; var Property = 1; var GetAccessor = 2; diff --git a/src/compiler/types.ts b/src/compiler/types.ts index 242f6243a71..dfc39b1612d 100644 --- a/src/compiler/types.ts +++ b/src/compiler/types.ts @@ -165,30 +165,29 @@ module ts { UnionType, ParenthesizedType, // Expression - ArrayLiteral, - ObjectLiteral, - PropertyAssignment, - ShorthandPropertyAssignment, - PropertyAccess, + ArrayLiteralExpression, + ObjectLiteralExpression, + PropertyAccessExpression, ElementAccessExpression, CallExpression, NewExpression, TaggedTemplateExpression, - TypeAssertion, - ParenExpression, + TypeAssertionExpression, + ParenthesizedExpression, FunctionExpression, ArrowFunction, DeleteExpression, TypeOfExpression, VoidExpression, PrefixUnaryExpression, - PostfixOperator, + PostfixUnaryExpression, BinaryExpression, ConditionalExpression, TemplateExpression, - TemplateSpan, YieldExpression, OmittedExpression, + // Misc + TemplateSpan, // Element Block, VariableStatement, @@ -224,6 +223,9 @@ module ts { ModuleBlock, ImportDeclaration, ExportAssignment, + // Property assignments + PropertyAssignment, + ShorthandPropertyAssignment, // Enum EnumMember, // Top-level nodes @@ -495,19 +497,19 @@ module ts { literal: LiteralExpression; } - export interface ParenExpression extends Expression { + export interface ParenthesizedExpression extends Expression { expression: Expression; } - export interface ArrayLiteral extends Expression { + export interface ArrayLiteralExpression extends Expression { elements: NodeArray; } - export interface ObjectLiteral extends Expression { + export interface ObjectLiteralExpression extends Expression { properties: NodeArray; } - export interface PropertyAccess extends Expression { + export interface PropertyAccessExpression extends Expression { left: Expression; right: Identifier; } @@ -799,7 +801,7 @@ module ts { isEmitBlocked(sourceFile?: SourceFile): boolean; // Returns the constant value of this enum member, or 'undefined' if the enum member has a computed value. getEnumMemberValue(node: EnumMember): number; - isValidPropertyAccess(node: PropertyAccess, propertyName: string): boolean; + isValidPropertyAccess(node: PropertyAccessExpression, propertyName: string): boolean; getAliasedSymbol(symbol: Symbol): Symbol; } @@ -890,7 +892,7 @@ module ts { isSymbolAccessible(symbol: Symbol, enclosingDeclaration: Node, meaning: SymbolFlags): SymbolAccessiblityResult; isEntityNameVisible(entityName: EntityName, enclosingDeclaration: Node): SymbolVisibilityResult; // Returns the constant value this property access resolves to, or 'undefined' for a non-constant - getConstantValue(node: PropertyAccess | ElementAccessExpression): number; + getConstantValue(node: PropertyAccessExpression | ElementAccessExpression): number; isEmitBlocked(sourceFile?: SourceFile): boolean; } diff --git a/src/harness/typeWriter.ts b/src/harness/typeWriter.ts index 5d5ecaa661f..83aaaaf920a 100644 --- a/src/harness/typeWriter.ts +++ b/src/harness/typeWriter.ts @@ -29,21 +29,21 @@ class TypeWriterWalker { // old typeWriter baselines, suppress tokens case ts.SyntaxKind.ThisKeyword: case ts.SyntaxKind.SuperKeyword: - case ts.SyntaxKind.ArrayLiteral: - case ts.SyntaxKind.ObjectLiteral: - case ts.SyntaxKind.PropertyAccess: + case ts.SyntaxKind.ArrayLiteralExpression: + case ts.SyntaxKind.ObjectLiteralExpression: + case ts.SyntaxKind.PropertyAccessExpression: case ts.SyntaxKind.ElementAccessExpression: case ts.SyntaxKind.CallExpression: case ts.SyntaxKind.NewExpression: - case ts.SyntaxKind.TypeAssertion: - case ts.SyntaxKind.ParenExpression: + case ts.SyntaxKind.TypeAssertionExpression: + case ts.SyntaxKind.ParenthesizedExpression: case ts.SyntaxKind.FunctionExpression: case ts.SyntaxKind.ArrowFunction: case ts.SyntaxKind.TypeOfExpression: case ts.SyntaxKind.VoidExpression: case ts.SyntaxKind.DeleteExpression: case ts.SyntaxKind.PrefixUnaryExpression: - case ts.SyntaxKind.PostfixOperator: + case ts.SyntaxKind.PostfixUnaryExpression: case ts.SyntaxKind.BinaryExpression: case ts.SyntaxKind.ConditionalExpression: this.log(node, this.getTypeOfNode(node)); diff --git a/src/services/breakpoints.ts b/src/services/breakpoints.ts index fe7c3af5597..d4aa5e40f39 100644 --- a/src/services/breakpoints.ts +++ b/src/services/breakpoints.ts @@ -242,7 +242,7 @@ module ts.BreakpointResolver { } // Breakpoint in type assertion goes to its operand - if (node.parent.kind === SyntaxKind.TypeAssertion && (node.parent).type === node) { + if (node.parent.kind === SyntaxKind.TypeAssertionExpression && (node.parent).type === node) { return spanInNode((node.parent).expression); } @@ -483,7 +483,7 @@ module ts.BreakpointResolver { } function spanInGreaterThanOrLessThanToken(node: Node): TextSpan { - if (node.parent.kind === SyntaxKind.TypeAssertion) { + if (node.parent.kind === SyntaxKind.TypeAssertionExpression) { return spanInNode((node.parent).expression); } diff --git a/src/services/formatting/rules.ts b/src/services/formatting/rules.ts index 9985fe61b1a..7de7baee6ca 100644 --- a/src/services/formatting/rules.ts +++ b/src/services/formatting/rules.ts @@ -523,7 +523,7 @@ module ts.formatting { switch (node.kind) { case SyntaxKind.Block: case SyntaxKind.SwitchStatement: - case SyntaxKind.ObjectLiteral: + case SyntaxKind.ObjectLiteralExpression: case SyntaxKind.TryBlock: case SyntaxKind.CatchBlock: case SyntaxKind.FinallyBlock: @@ -613,7 +613,7 @@ module ts.formatting { } static IsObjectContext(context: FormattingContext): boolean { - return context.contextNode.kind === SyntaxKind.ObjectLiteral; + return context.contextNode.kind === SyntaxKind.ObjectLiteralExpression; } static IsFunctionCallContext(context: FormattingContext): boolean { diff --git a/src/services/outliningElementsCollector.ts b/src/services/outliningElementsCollector.ts index 27f75b8d20e..7f071e5c224 100644 --- a/src/services/outliningElementsCollector.ts +++ b/src/services/outliningElementsCollector.ts @@ -109,13 +109,13 @@ module ts { case SyntaxKind.ClassDeclaration: case SyntaxKind.InterfaceDeclaration: case SyntaxKind.EnumDeclaration: - case SyntaxKind.ObjectLiteral: + case SyntaxKind.ObjectLiteralExpression: case SyntaxKind.SwitchStatement: var openBrace = findChildOfKind(n, SyntaxKind.OpenBraceToken, sourceFile); var closeBrace = findChildOfKind(n, SyntaxKind.CloseBraceToken, sourceFile); addOutliningSpan(n, openBrace, closeBrace, autoCollapse(n)); break; - case SyntaxKind.ArrayLiteral: + case SyntaxKind.ArrayLiteralExpression: var openBracket = findChildOfKind(n, SyntaxKind.OpenBracketToken, sourceFile); var closeBracket = findChildOfKind(n, SyntaxKind.CloseBracketToken, sourceFile); addOutliningSpan(n, openBracket, closeBracket, autoCollapse(n)); diff --git a/src/services/services.ts b/src/services/services.ts index 4e7da91bbf5..04acf4837b3 100644 --- a/src/services/services.ts +++ b/src/services/services.ts @@ -1927,7 +1927,7 @@ module ts { } function isRightSideOfPropertyAccess(node: Node) { - return node && node.parent && node.parent.kind === SyntaxKind.PropertyAccess && (node.parent).right === node; + return node && node.parent && node.parent.kind === SyntaxKind.PropertyAccessExpression && (node.parent).right === node; } function isCallExpressionTarget(node: Node): boolean { @@ -2374,8 +2374,8 @@ module ts { var node: Node; var isRightOfDot: boolean; if (previousToken && previousToken.kind === SyntaxKind.DotToken && - (previousToken.parent.kind === SyntaxKind.PropertyAccess || previousToken.parent.kind === SyntaxKind.QualifiedName)) { - node = (previousToken.parent).left; + (previousToken.parent.kind === SyntaxKind.PropertyAccessExpression || previousToken.parent.kind === SyntaxKind.QualifiedName)) { + node = (previousToken.parent).left; isRightOfDot = true; } else { @@ -2401,7 +2401,7 @@ module ts { var symbols: Symbol[] = []; isMemberCompletion = true; - if (node.kind === SyntaxKind.Identifier || node.kind === SyntaxKind.QualifiedName || node.kind === SyntaxKind.PropertyAccess) { + if (node.kind === SyntaxKind.Identifier || node.kind === SyntaxKind.QualifiedName || node.kind === SyntaxKind.PropertyAccessExpression) { var symbol = typeInfoResolver.getSymbolInfo(node); // This is an alias, follow what it aliases @@ -2412,7 +2412,7 @@ module ts { if (symbol && symbol.flags & SymbolFlags.HasExports) { // Extract module or enum members forEachValue(symbol.exports, symbol => { - if (typeInfoResolver.isValidPropertyAccess((node.parent), symbol.name)) { + if (typeInfoResolver.isValidPropertyAccess((node.parent), symbol.name)) { symbols.push(symbol); } }); @@ -2423,7 +2423,7 @@ module ts { if (type) { // Filter private properties forEach(type.getApparentProperties(), symbol => { - if (typeInfoResolver.isValidPropertyAccess((node.parent), symbol.name)) { + if (typeInfoResolver.isValidPropertyAccess((node.parent), symbol.name)) { symbols.push(symbol); } }); @@ -2542,7 +2542,7 @@ module ts { return false; } - function getContainingObjectLiteralApplicableForCompletion(previousToken: Node): ObjectLiteral { + function getContainingObjectLiteralApplicableForCompletion(previousToken: Node): ObjectLiteralExpression { // The locations in an object literal expression that are applicable for completion are property name definition locations. if (previousToken) { @@ -2551,8 +2551,8 @@ module ts { switch (previousToken.kind) { case SyntaxKind.OpenBraceToken: // var x = { | case SyntaxKind.CommaToken: // var x = { a: 0, | - if (parent && parent.kind === SyntaxKind.ObjectLiteral) { - return parent; + if (parent && parent.kind === SyntaxKind.ObjectLiteralExpression) { + return parent; } break; } @@ -2878,8 +2878,8 @@ module ts { var type = typeResolver.getNarrowedTypeOfSymbol(symbol, location); if (type) { - if (location.parent && location.parent.kind === SyntaxKind.PropertyAccess) { - var right = (location.parent).right; + if (location.parent && location.parent.kind === SyntaxKind.PropertyAccessExpression) { + var right = (location.parent).right; // Either the location is on the right of a property access, or on the left and the right is missing if (right === location || (right && right.kind === SyntaxKind.Missing)){ location = location.parent; @@ -3201,7 +3201,7 @@ module ts { // Try getting just type at this position and show switch (node.kind) { case SyntaxKind.Identifier: - case SyntaxKind.PropertyAccess: + case SyntaxKind.PropertyAccessExpression: case SyntaxKind.QualifiedName: case SyntaxKind.ThisKeyword: case SyntaxKind.SuperKeyword: @@ -4574,7 +4574,7 @@ module ts { var parent = node.parent; if (parent) { - if (parent.kind === SyntaxKind.PostfixOperator || parent.kind === SyntaxKind.PrefixUnaryExpression) { + if (parent.kind === SyntaxKind.PostfixUnaryExpression || parent.kind === SyntaxKind.PrefixUnaryExpression) { return true; } else if (parent.kind === SyntaxKind.BinaryExpression && (parent).left === node) { @@ -4879,7 +4879,7 @@ module ts { } switch (node.kind) { - case SyntaxKind.PropertyAccess: + case SyntaxKind.PropertyAccessExpression: case SyntaxKind.QualifiedName: case SyntaxKind.StringLiteral: case SyntaxKind.FalseKeyword: @@ -5064,7 +5064,7 @@ module ts { if (token.parent.kind === SyntaxKind.BinaryExpression || token.parent.kind === SyntaxKind.VariableDeclaration || token.parent.kind === SyntaxKind.PrefixUnaryExpression || - token.parent.kind === SyntaxKind.PostfixOperator || + token.parent.kind === SyntaxKind.PostfixUnaryExpression || token.parent.kind === SyntaxKind.ConditionalExpression) { return ClassificationTypeNames.operator; } diff --git a/src/services/smartIndenter.ts b/src/services/smartIndenter.ts index e593c6cfd66..3fbfe142282 100644 --- a/src/services/smartIndenter.ts +++ b/src/services/smartIndenter.ts @@ -227,10 +227,10 @@ module ts.formatting { return (node.parent).typeArguments; } break; - case SyntaxKind.ObjectLiteral: - return (node.parent).properties; - case SyntaxKind.ArrayLiteral: - return (node.parent).elements; + case SyntaxKind.ObjectLiteralExpression: + return (node.parent).properties; + case SyntaxKind.ArrayLiteralExpression: + return (node.parent).elements; case SyntaxKind.FunctionDeclaration: case SyntaxKind.FunctionExpression: case SyntaxKind.ArrowFunction: @@ -323,19 +323,19 @@ module ts.formatting { case SyntaxKind.ClassDeclaration: case SyntaxKind.InterfaceDeclaration: case SyntaxKind.EnumDeclaration: - case SyntaxKind.ArrayLiteral: + case SyntaxKind.ArrayLiteralExpression: case SyntaxKind.Block: case SyntaxKind.FunctionBlock: case SyntaxKind.TryBlock: case SyntaxKind.CatchBlock: case SyntaxKind.FinallyBlock: case SyntaxKind.ModuleBlock: - case SyntaxKind.ObjectLiteral: + case SyntaxKind.ObjectLiteralExpression: case SyntaxKind.TypeLiteral: case SyntaxKind.SwitchStatement: case SyntaxKind.DefaultClause: case SyntaxKind.CaseClause: - case SyntaxKind.ParenExpression: + case SyntaxKind.ParenthesizedExpression: case SyntaxKind.CallExpression: case SyntaxKind.NewExpression: case SyntaxKind.VariableStatement: @@ -397,7 +397,7 @@ module ts.formatting { case SyntaxKind.ClassDeclaration: case SyntaxKind.InterfaceDeclaration: case SyntaxKind.EnumDeclaration: - case SyntaxKind.ObjectLiteral: + case SyntaxKind.ObjectLiteralExpression: case SyntaxKind.Block: case SyntaxKind.CatchBlock: case SyntaxKind.FinallyBlock: @@ -405,7 +405,7 @@ module ts.formatting { case SyntaxKind.ModuleBlock: case SyntaxKind.SwitchStatement: return nodeEndsWith(n, SyntaxKind.CloseBraceToken, sourceFile); - case SyntaxKind.ParenExpression: + case SyntaxKind.ParenthesizedExpression: case SyntaxKind.CallSignature: case SyntaxKind.CallExpression: case SyntaxKind.ConstructSignature: @@ -424,7 +424,7 @@ module ts.formatting { return isCompletedNode((n).thenStatement, sourceFile); case SyntaxKind.ExpressionStatement: return isCompletedNode((n).expression, sourceFile); - case SyntaxKind.ArrayLiteral: + case SyntaxKind.ArrayLiteralExpression: return nodeEndsWith(n, SyntaxKind.CloseBracketToken, sourceFile); case SyntaxKind.Missing: return false; From 77b8f461a3dd55ea9241f01d46a5808c7aa2c39a Mon Sep 17 00:00:00 2001 From: Yui T Date: Sat, 29 Nov 2014 16:46:01 -0800 Subject: [PATCH 121/195] Add check and testcases for invalid binary digits and octal digits --- src/compiler/scanner.ts | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/compiler/scanner.ts b/src/compiler/scanner.ts index b55fd53e0cc..45723de983d 100644 --- a/src/compiler/scanner.ts +++ b/src/compiler/scanner.ts @@ -757,6 +757,9 @@ module ts { Debug.assert(base !== 2 || base !== 8, "Expected either base 2 or base 8"); var value = 0; + // For counting number of digits; Valid binaryIntegerLiteral must have at least one binary digit following B or b. + // Similarly valid octalIntegerLiteral must have at least one octal digit following o or O. + var numberOfDigits = 0; while (true) { var ch = text.charCodeAt(pos); var valueOfCh = ch - CharacterCodes._0; @@ -765,6 +768,11 @@ module ts { } value = value * base + valueOfCh; pos++; + numberOfDigits++; + } + // Invalid binaryIntegerLiteral or octalIntegerLiteral + if (numberOfDigits === 0) { + return -1; } return value; } From 8989f1a782a35181550370b5133a1df84c23d7eb Mon Sep 17 00:00:00 2001 From: Cyrus Najmabadi Date: Sat, 29 Nov 2014 16:48:28 -0800 Subject: [PATCH 122/195] Add greater typesafety in the expression portion of the syntax system. Note: this change reveals that there is definitely some wonkyness going on with nodes like FunctionLikeDeclaration. --- src/compiler/checker.ts | 75 ++++++++++++---------- src/compiler/emitter.ts | 31 +++++++--- src/compiler/parser.ts | 134 ++++++++++++++++++++++------------------ src/compiler/types.ts | 64 +++++++++++++------ 4 files changed, 183 insertions(+), 121 deletions(-) diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index 0d1ad489c72..457f9ad676d 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -4514,8 +4514,8 @@ module ts { } break; case SyntaxKind.PrefixUnaryExpression: - if ((expr).operator === SyntaxKind.ExclamationToken) { - return narrowType(type, (expr).operand, !assumeTrue); + if ((expr).operator === SyntaxKind.ExclamationToken) { + return narrowType(type,(expr).operand, !assumeTrue); } break; } @@ -4722,8 +4722,9 @@ module ts { function getContextuallyTypedParameterType(parameter: ParameterDeclaration): Type { var func = parameter.parent; if (func.kind === SyntaxKind.FunctionExpression || func.kind === SyntaxKind.ArrowFunction) { - if (isContextSensitiveExpression(func)) { - var contextualSignature = getContextualSignature(func); + var funcExpr = parameter.parent; + if (isContextSensitiveExpression(funcExpr)) { + var contextualSignature = getContextualSignature(funcExpr); if (contextualSignature) { var funcHasRestParameters = hasRestParameters(func); @@ -4771,7 +4772,7 @@ module ts { } // Otherwise, if the containing function is contextually typed by a function type with exactly one call signature // and that call signature is non-generic, return statements are contextually typed by the return type of the signature - var signature = getContextualSignature(func); + var signature = getContextualSignature(func); if (signature) { return getReturnTypeOfSignature(signature); } @@ -5053,7 +5054,9 @@ module ts { } else { Debug.assert(memberDecl.kind === SyntaxKind.ShorthandPropertyAssignment); - type = checkExpression(memberDecl.name, contextualMapper); + type = memberDecl.name.kind === SyntaxKind.ComputedPropertyName + ? unknownType + : checkExpression(memberDecl.name, contextualMapper); } var prop = createSymbol(SymbolFlags.Property | SymbolFlags.Transient | member.flags, member.name); prop.declarations = member.declarations; @@ -5115,7 +5118,7 @@ module ts { return s.valueDeclaration ? s.valueDeclaration.flags : s.flags & SymbolFlags.Prototype ? NodeFlags.Public | NodeFlags.Static : 0; } - function checkClassPropertyAccess(node: PropertyAccessExpression, type: Type, prop: Symbol) { + function checkClassPropertyAccess(node: PropertyAccessExpression | QualifiedName, type: Type, prop: Symbol) { var flags = getDeclarationFlagsFromSymbol(prop); // Public properties are always accessible if (!(flags & (NodeFlags.Private | NodeFlags.Protected))) { @@ -5154,7 +5157,15 @@ module ts { } function checkPropertyAccess(node: PropertyAccessExpression) { - var type = checkExpression(node.left); + return checkPropertyAccessCore(node, node.left, node.right); + } + + function checkQualifiedName(node: QualifiedName) { + return checkPropertyAccessCore(node, node.left, node.right); + } + + function checkPropertyAccessCore(node: PropertyAccessExpression | QualifiedName, left: Expression | QualifiedName, right: Identifier) { + var type = checkExpression(left); if (type === unknownType) return type; if (type !== anyType) { var apparentType = getApparentType(getWidenedType(type)); @@ -5162,10 +5173,10 @@ module ts { // handle cases when type is Type parameter with invalid constraint return unknownType; } - var prop = getPropertyOfType(apparentType, node.right.text); + var prop = getPropertyOfType(apparentType, right.text); if (!prop) { - if (node.right.text) { - error(node.right, Diagnostics.Property_0_does_not_exist_on_type_1, declarationNameToString(node.right), typeToString(type)); + if (right.text) { + error(right, Diagnostics.Property_0_does_not_exist_on_type_1, declarationNameToString(right), typeToString(type)); } return unknownType; } @@ -5178,8 +5189,8 @@ module ts { // - In a static member function or static member accessor // where this references the constructor function object of a derived class, // a super property access is permitted and must specify a public static member function of the base class. - if (node.left.kind === SyntaxKind.SuperKeyword && getDeclarationKindFromSymbol(prop) !== SyntaxKind.Method) { - error(node.right, Diagnostics.Only_public_and_protected_methods_of_the_base_class_are_accessible_via_the_super_keyword); + if (left.kind === SyntaxKind.SuperKeyword && getDeclarationKindFromSymbol(prop) !== SyntaxKind.Method) { + error(right, Diagnostics.Only_public_and_protected_methods_of_the_base_class_are_accessible_via_the_super_keyword); } else { checkClassPropertyAccess(node, type, prop); @@ -5477,7 +5488,7 @@ module ts { // String literals get string literal types unless we're reporting errors argType = arg.kind === SyntaxKind.StringLiteral && !reportErrors ? getStringLiteralType(arg) - : checkExpressionWithContextualType(arg, paramType, excludeArgument && excludeArgument[i] ? identityMapper : undefined); + : checkExpressionWithContextualType(arg, paramType, excludeArgument && excludeArgument[i] ? identityMapper : undefined); } // Use argument expression as error location when reporting errors @@ -5968,9 +5979,9 @@ module ts { } function getReturnTypeFromBody(func: FunctionLikeDeclaration, contextualMapper?: TypeMapper): Type { - var contextualSignature = getContextualSignature(func); + var contextualSignature = getContextualSignature(func); if (func.body.kind !== SyntaxKind.FunctionBlock) { - var unwidenedType = checkAndMarkExpression(func.body, contextualMapper); + var unwidenedType = checkAndMarkExpression(func.body, contextualMapper); var widenedType = getWidenedType(unwidenedType); if (fullTypeCheck && compilerOptions.noImplicitAny && !contextualSignature && widenedType !== unwidenedType && getInnermostTypeOfNestedArrayTypes(widenedType) === anyType) { @@ -6126,7 +6137,7 @@ module ts { checkSourceElement(node.body); } else { - var exprType = checkExpression(node.body); + var exprType = checkExpression(node.body); if (node.type) { checkTypeAssignableTo(exprType, getTypeFromTypeNode(node.type), node.body, /*headMessage*/ undefined); } @@ -6229,7 +6240,7 @@ module ts { return undefinedType; } - function checkPrefixExpression(node: UnaryExpression): Type { + function checkPrefixUnaryExpression(node: PrefixUnaryExpression): Type { var operandType = checkExpression(node.operand); switch (node.operator) { case SyntaxKind.PlusToken: @@ -6252,7 +6263,7 @@ module ts { return unknownType; } - function checkPostfixExpression(node: UnaryExpression): Type { + function checkPostfixUnaryExpression(node: PostfixUnaryExpression): Type { var operandType = checkExpression(node.operand); var ok = checkArithmeticOperandType(node.operand, operandType, Diagnostics.An_arithmetic_operand_must_be_of_type_any_number_or_an_enum_type); if (ok) { @@ -6503,12 +6514,12 @@ module ts { // object, it serves as an indicator that all contained function and arrow expressions should be considered to // have the wildcard function type; this form of type check is used during overload resolution to exclude // contextually typed function and arrow expressions in the initial phase. - function checkExpression(node: Expression, contextualMapper?: TypeMapper): Type { + function checkExpression(node: Expression | QualifiedName, contextualMapper?: TypeMapper): Type { var type = checkExpressionNode(node, contextualMapper); - if (contextualMapper && contextualMapper !== identityMapper) { + if (contextualMapper && contextualMapper !== identityMapper && node.kind !== SyntaxKind.QualifiedName) { var signature = getSingleCallSignature(type); if (signature && signature.typeParameters) { - var contextualType = getContextualType(node); + var contextualType = getContextualType(node); if (contextualType) { var contextualSignature = getSingleCallSignature(contextualType); if (contextualSignature && !contextualSignature.typeParameters) { @@ -6526,7 +6537,7 @@ module ts { var ok = (node.parent.kind === SyntaxKind.PropertyAccessExpression && (node.parent).left === node) || (node.parent.kind === SyntaxKind.ElementAccessExpression && (node.parent).expression === node) || - ((node.kind === SyntaxKind.Identifier || node.kind === SyntaxKind.QualifiedName) && isInRightSideOfImportOrExportAssignment(node)); + ((node.kind === SyntaxKind.Identifier || node.kind === SyntaxKind.QualifiedName) && isInRightSideOfImportOrExportAssignment(node)); if (!ok) { error(node, 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); @@ -6535,7 +6546,7 @@ module ts { return type; } - function checkExpressionNode(node: Expression, contextualMapper: TypeMapper): Type { + function checkExpressionNode(node: Expression | QualifiedName, contextualMapper: TypeMapper): Type { switch (node.kind) { case SyntaxKind.Identifier: return checkIdentifier(node); @@ -6558,7 +6569,7 @@ module ts { case SyntaxKind.RegularExpressionLiteral: return globalRegExpType; case SyntaxKind.QualifiedName: - return checkPropertyAccess(node); + return checkQualifiedName(node); case SyntaxKind.ArrayLiteralExpression: return checkArrayLiteral(node, contextualMapper); case SyntaxKind.ObjectLiteralExpression: @@ -6586,9 +6597,9 @@ module ts { case SyntaxKind.VoidExpression: return checkVoidExpression(node); case SyntaxKind.PrefixUnaryExpression: - return checkPrefixExpression(node); + return checkPrefixUnaryExpression(node); case SyntaxKind.PostfixUnaryExpression: - return checkPostfixExpression(node); + return checkPostfixUnaryExpression(node); case SyntaxKind.BinaryExpression: return checkBinaryExpression(node, contextualMapper); case SyntaxKind.ConditionalExpression: @@ -8097,11 +8108,11 @@ module ts { function evalConstant(e: Node): number { switch (e.kind) { case SyntaxKind.PrefixUnaryExpression: - var value = evalConstant((e).operand); + var value = evalConstant((e).operand); if (value === undefined) { return undefined; } - switch ((e).operator) { + switch ((e).operator) { case SyntaxKind.PlusToken: return value; case SyntaxKind.MinusToken: return -value; case SyntaxKind.TildeToken: return enumIsConst ? ~value : undefined; @@ -8839,7 +8850,7 @@ module ts { else if (entityName.kind === SyntaxKind.QualifiedName || entityName.kind === SyntaxKind.PropertyAccessExpression) { var symbol = getNodeLinks(entityName).resolvedSymbol; if (!symbol) { - checkPropertyAccess(entityName); + checkQualifiedName(entityName); } return getNodeLinks(entityName).resolvedSymbol; } @@ -8885,7 +8896,7 @@ module ts { case SyntaxKind.ThisKeyword: case SyntaxKind.SuperKeyword: - var type = checkExpression(node); + var type = checkExpression(node); return type.symbol; case SyntaxKind.ConstructorKeyword: @@ -8976,7 +8987,7 @@ module ts { function getTypeOfExpression(expr: Expression): Type { if (isRightSideOfQualifiedNameOrPropertyAccess(expr)) { - expr = expr.parent; + expr = expr.parent; } return checkExpression(expr); } diff --git a/src/compiler/emitter.ts b/src/compiler/emitter.ts index a68b12bebd7..380a4bb3c52 100644 --- a/src/compiler/emitter.ts +++ b/src/compiler/emitter.ts @@ -2268,6 +2268,12 @@ module ts { emit(node.right); } + function emitQualifiedName(node: QualifiedName) { + emit(node.left); + write("."); + emit(node.right); + } + function emitIndexedAccess(node: ElementAccessExpression) { if (tryEmitConstantValue(node)) { return; @@ -2374,10 +2380,8 @@ module ts { emit(node.expression); } - function emitUnaryExpression(node: UnaryExpression) { - if (node.kind === SyntaxKind.PrefixUnaryExpression) { - write(tokenToString(node.operator)); - } + function emitPrefixUnaryExpression(node: PrefixUnaryExpression) { + write(tokenToString(node.operator)); // In some cases, we need to emit a space between the operator and the operand. One obvious case // is when the operator is an identifier, like delete or typeof. We also need to do this for plus // and minus expressions in certain cases. Specifically, consider the following two cases (parens @@ -2394,7 +2398,7 @@ module ts { write(" "); } else if (node.kind === SyntaxKind.PrefixUnaryExpression && node.operand.kind === SyntaxKind.PrefixUnaryExpression) { - var operand = node.operand; + var operand = node.operand; if (node.operator === SyntaxKind.PlusToken && (operand.operator === SyntaxKind.PlusToken || operand.operator === SyntaxKind.PlusPlusToken)) { write(" "); } @@ -2403,11 +2407,17 @@ module ts { } } emit(node.operand); - if (node.kind === SyntaxKind.PostfixUnaryExpression) { - write(tokenToString(node.operator)); - } } + function emitPostfixUnaryExpression(node: PostfixUnaryExpression) { + if (node.operator >= SyntaxKind.Identifier) { + write(" "); + } + emit(node.operand); + write(tokenToString(node.operator)); + } + + function emitBinaryExpression(node: BinaryExpression) { emit(node.left); if (node.operator !== SyntaxKind.CommaToken) write(" "); @@ -3494,7 +3504,7 @@ module ts { case SyntaxKind.TemplateSpan: return emitTemplateSpan(node); case SyntaxKind.QualifiedName: - return emitPropertyAccess(node); + return emitQualifiedName(node); case SyntaxKind.ArrayLiteralExpression: return emitArrayLiteral(node); case SyntaxKind.ObjectLiteralExpression: @@ -3530,8 +3540,9 @@ module ts { case SyntaxKind.VoidExpression: return emitVoidExpression(node); case SyntaxKind.PrefixUnaryExpression: + return emitPrefixUnaryExpression(node); case SyntaxKind.PostfixUnaryExpression: - return emitUnaryExpression(node); + return emitPostfixUnaryExpression(node); case SyntaxKind.BinaryExpression: return emitBinaryExpression(node); case SyntaxKind.ConditionalExpression: diff --git a/src/compiler/parser.ts b/src/compiler/parser.ts index 654abac6d57..df6c2488b0f 100644 --- a/src/compiler/parser.ts +++ b/src/compiler/parser.ts @@ -285,8 +285,9 @@ module ts { case SyntaxKind.VoidExpression: return child((node).expression); case SyntaxKind.PrefixUnaryExpression: + return child((node).operand); case SyntaxKind.PostfixUnaryExpression: - return child((node).operand); + return child((node).operand); case SyntaxKind.BinaryExpression: return child((node).left) || child((node).right); @@ -1557,8 +1558,8 @@ module ts { return entity; } - function parseAnyTokenNode(): Node { - var node = createNode(token); + function parseAnyTokenNode(): PrimaryExpression { + var node = createNode(token); nextToken(); return finishNode(node); } @@ -1572,7 +1573,7 @@ module ts { return createMissingNode(); } - function parseTemplateExpression() { + function parseTemplateExpression(): TemplateExpression { var template = createNode(SyntaxKind.TemplateExpression); template.head = parseLiteralNode(); @@ -2396,7 +2397,7 @@ module ts { } else { // If not, we're probably better off bailing out and returning a bogus function expression. - return makeFunctionExpression(SyntaxKind.ArrowFunction, pos, /*asteriskToken:*/ undefined, /*name:*/ undefined, sig, createMissingNode()); + return makeFunctionExpression(SyntaxKind.ArrowFunction, pos, /*asteriskToken:*/ undefined, /*name:*/ undefined, sig, createMissingNode()); } } @@ -2510,7 +2511,7 @@ module ts { } function parseArrowExpressionTail(pos: number, sig: ParsedSignature): FunctionExpression { - var body: Node; + var body: Block | Expression; if (token === SyntaxKind.OpenBraceToken) { body = parseFunctionBlock(/*allowYield:*/ false, /* ignoreMissingOpenBrace */ false); @@ -2635,8 +2636,37 @@ module ts { return finishNode(node); } - function parseUnaryExpressionOrHigher(): Expression { - var pos = getNodePos(); + function parsePrefixUnaryExpression() { + var node = createNode(SyntaxKind.PrefixUnaryExpression); + var operator = token; + nextToken(); + node.operator = operator; + node.operand = parseUnaryExpressionOrHigher(); + return finishNode(node); + } + + function parseDeleteExpression() { + var node = createNode(SyntaxKind.DeleteExpression); + nextToken(); + node.expression = parseUnaryExpressionOrHigher(); + return finishNode(node); + } + + function parseTypeOfExpression() { + var node = createNode(SyntaxKind.TypeOfExpression); + nextToken(); + node.expression = parseUnaryExpressionOrHigher(); + return finishNode(node); + } + + function parseVoidExpression() { + var node = createNode(SyntaxKind.VoidExpression); + nextToken(); + node.expression = parseUnaryExpressionOrHigher(); + return finishNode(node); + } + + function parseUnaryExpressionOrHigher(): UnaryExpression { switch (token) { case SyntaxKind.PlusToken: case SyntaxKind.MinusToken: @@ -2644,24 +2674,13 @@ module ts { case SyntaxKind.ExclamationToken: case SyntaxKind.PlusPlusToken: case SyntaxKind.MinusMinusToken: - var operator = token; - nextToken(); - return makeUnaryExpression(SyntaxKind.PrefixUnaryExpression, pos, operator, parseUnaryExpressionOrHigher()); + return parsePrefixUnaryExpression(); case SyntaxKind.DeleteKeyword: - var node = createNode(SyntaxKind.DeleteExpression); - nextToken(); - node.expression = parseUnaryExpressionOrHigher(); - return finishNode(node); + return parseDeleteExpression(); case SyntaxKind.TypeOfKeyword: - var node = createNode(SyntaxKind.TypeOfExpression); - nextToken(); - node.expression = parseUnaryExpressionOrHigher(); - return finishNode(node); + return parseTypeOfExpression(); case SyntaxKind.VoidKeyword: - var node = createNode(SyntaxKind.VoidExpression); - nextToken(); - node.expression = parseUnaryExpressionOrHigher(); - return finishNode(node); + return parseVoidExpression(); case SyntaxKind.LessThanToken: return parseTypeAssertion(); default: @@ -2669,20 +2688,22 @@ module ts { } } - function parsePostfixExpressionOrHigher(): Expression { + function parsePostfixExpressionOrHigher(): PostfixExpression { var expression = parseLeftHandSideExpressionOrHigher(); Debug.assert(isLeftHandSideExpression(expression)); if ((token === SyntaxKind.PlusPlusToken || token === SyntaxKind.MinusMinusToken) && !scanner.hasPrecedingLineBreak()) { - var operator = token; + var node = createNode(SyntaxKind.PostfixUnaryExpression, expression.pos); + node.operand = expression; + node.operator = token; nextToken(); - return makeUnaryExpression(SyntaxKind.PostfixUnaryExpression, expression.pos, operator, expression); + return finishNode(node); } return expression; } - function parseLeftHandSideExpressionOrHigher(): Expression { + function parseLeftHandSideExpressionOrHigher(): LeftHandSideExpression { // Original Ecma: // LeftHandSideExpression: See 11.2 // NewExpression @@ -2713,7 +2734,7 @@ module ts { // the last two CallExpression productions. Or we have a MemberExpression which either // completes the LeftHandSideExpression, or starts the beginning of the first four // CallExpression productions. - var expression: Expression; + var expression: MemberExpression; if (token === SyntaxKind.SuperKeyword) { expression = parseSuperExpression(); } @@ -2726,7 +2747,7 @@ module ts { return parseCallExpressionRest(expression); } - function parseMemberExpressionOrHigher(): Expression { + function parseMemberExpressionOrHigher(): MemberExpression { // Note: to make our lives simpler, we decompose the the NewExpression productions and // place ObjectCreationExpression and FunctionExpression into PrimaryExpression. // like so: @@ -2778,7 +2799,7 @@ module ts { return parseMemberExpressionRest(expression); } - function parseSuperExpression(): Expression { + function parseSuperExpression(): MemberExpression { var expression = parseAnyTokenNode(); if (token === SyntaxKind.OpenParenToken || token === SyntaxKind.DotToken) { return expression; @@ -2802,14 +2823,7 @@ module ts { return finishNode(node); } - function makeUnaryExpression(kind: SyntaxKind, pos: number, operator: SyntaxKind, operand: Expression): UnaryExpression { - var node = createNode(kind, pos); - node.operator = operator; - node.operand = operand; - return finishNode(node); - } - - function parseMemberExpressionRest(expression: Expression): Expression { + function parseMemberExpressionRest(expression: LeftHandSideExpression): MemberExpression { while (true) { var dotOrBracketStart = scanner.getTokenPos(); if (parseOptional(SyntaxKind.DotToken)) { @@ -2867,7 +2881,7 @@ module ts { } } else { - indexedAccess.argumentExpression = createMissingNode(); + indexedAccess.argumentExpression = createMissingNode(); } indexedAccess.closeBracketToken = parseTokenNode(SyntaxKind.CloseBracketToken); @@ -2885,11 +2899,11 @@ module ts { continue; } - return expression; + return expression; } } - function parseCallExpressionRest(expression: Expression): Expression { + function parseCallExpressionRest(expression: LeftHandSideExpression): LeftHandSideExpression { while (true) { expression = parseMemberExpressionRest(expression); @@ -2950,7 +2964,7 @@ module ts { return parseType(); } - function parsePrimaryExpression(): Expression { + function parsePrimaryExpression(): PrimaryExpression { switch (token) { case SyntaxKind.ThisKeyword: case SyntaxKind.SuperKeyword: @@ -2963,11 +2977,11 @@ module ts { case SyntaxKind.NoSubstitutionTemplateLiteral: return parseLiteralNode(); case SyntaxKind.OpenParenToken: - return parseParenExpression(); + return parseParenthesizedExpression(); case SyntaxKind.OpenBracketToken: - return parseArrayLiteral(); + return parseArrayLiteralExpression(); case SyntaxKind.OpenBraceToken: - return parseObjectLiteral(); + return parseObjectLiteralExpression(); case SyntaxKind.FunctionKeyword: return parseFunctionExpression(); case SyntaxKind.NewKeyword: @@ -2987,10 +3001,10 @@ module ts { } } error(Diagnostics.Expression_expected); - return createMissingNode(); + return createMissingNode(); } - function parseParenExpression(): ParenthesizedExpression { + function parseParenthesizedExpression(): ParenthesizedExpression { var node = createNode(SyntaxKind.ParenthesizedExpression); parseExpected(SyntaxKind.OpenParenToken); node.expression = allowInAnd(parseExpression); @@ -3000,7 +3014,7 @@ module ts { function parseAssignmentExpressionOrOmittedExpression(): Expression { return token === SyntaxKind.CommaToken - ? createNode(SyntaxKind.OmittedExpression) + ? createNode(SyntaxKind.OmittedExpression) : parseAssignmentExpressionOrHigher(); } @@ -3012,7 +3026,7 @@ module ts { return allowInAnd(parseAssignmentExpressionOrOmittedExpression); } - function parseArrayLiteral(): ArrayLiteralExpression { + function parseArrayLiteralExpression(): ArrayLiteralExpression { var node = createNode(SyntaxKind.ArrayLiteralExpression); parseExpected(SyntaxKind.OpenBracketToken); if (scanner.hasPrecedingLineBreak()) node.flags |= NodeFlags.MultiLine; @@ -3077,7 +3091,7 @@ module ts { return parsePropertyAssignment(); } - function parseObjectLiteral(): ObjectLiteralExpression { + function parseObjectLiteralExpression(): ObjectLiteralExpression { var node = createNode(SyntaxKind.ObjectLiteralExpression); parseExpected(SyntaxKind.OpenBraceToken); if (scanner.hasPrecedingLineBreak()) { @@ -3109,7 +3123,7 @@ module ts { return isIdentifier() ? parseIdentifier() : undefined; } - function makeFunctionExpression(kind: SyntaxKind, pos: number, asteriskToken: Node, name: Identifier, sig: ParsedSignature, body: Node): FunctionExpression { + function makeFunctionExpression(kind: SyntaxKind, pos: number, asteriskToken: Node, name: Identifier, sig: ParsedSignature, body: Block | Expression): FunctionExpression { var node = createNode(kind, pos); node.asteriskToken = asteriskToken; node.name = name; @@ -4236,17 +4250,17 @@ module ts { case SyntaxKind.FunctionDeclaration: return checkFunctionDeclaration(node); case SyntaxKind.FunctionExpression: return checkFunctionExpression(node); case SyntaxKind.GetAccessor: return checkGetAccessor(node); - case SyntaxKind.ElementAccessExpression: return checkIndexedAccess(node); + case SyntaxKind.ElementAccessExpression: return checkElementAccessExpression(node); case SyntaxKind.IndexSignature: return checkIndexSignature(node); case SyntaxKind.InterfaceDeclaration: return checkInterfaceDeclaration(node); case SyntaxKind.LabeledStatement: return checkLabeledStatement(node); case SyntaxKind.Method: return checkMethod(node); case SyntaxKind.ModuleDeclaration: return checkModuleDeclaration(node); - case SyntaxKind.ObjectLiteralExpression: return checkObjectLiteral(node); + case SyntaxKind.ObjectLiteralExpression: return checkObjectLiteralExpression(node); case SyntaxKind.NumericLiteral: return checkNumericLiteral(node); case SyntaxKind.Parameter: return checkParameter(node); - case SyntaxKind.PostfixUnaryExpression: return checkPostfixOperator(node); - case SyntaxKind.PrefixUnaryExpression: return checkPrefixOperator(node); + case SyntaxKind.PostfixUnaryExpression: return checkPostfixUnaryExpression(node); + case SyntaxKind.PrefixUnaryExpression: return checkPrefixUnaryExpression(node); case SyntaxKind.Property: return checkProperty(node); case SyntaxKind.PropertyAssignment: return checkPropertyAssignment(node); case SyntaxKind.ReturnStatement: return checkReturnStatement(node); @@ -4567,7 +4581,7 @@ module ts { } if (expression.kind === SyntaxKind.PrefixUnaryExpression) { - var unaryExpression = expression; + var unaryExpression = expression; if (unaryExpression.operator === SyntaxKind.PlusToken || unaryExpression.operator === SyntaxKind.MinusToken) { expression = unaryExpression.operand; } @@ -4632,7 +4646,7 @@ module ts { checkAccessor(node); } - function checkIndexedAccess(node: ElementAccessExpression) { + function checkElementAccessExpression(node: ElementAccessExpression) { if (node.argumentExpression.kind === SyntaxKind.Missing) { if (node.parent.kind === SyntaxKind.NewExpression && (node.parent).expression === node) { @@ -4763,7 +4777,7 @@ module ts { } } - function checkObjectLiteral(node: ObjectLiteralExpression): boolean { + function checkObjectLiteralExpression(node: ObjectLiteralExpression): boolean { var seen: Map = {}; var Property = 1; var GetAccessor = 2; @@ -5029,7 +5043,7 @@ module ts { } } - function checkPostfixOperator(node: UnaryExpression) { + function checkPostfixUnaryExpression(node: PostfixUnaryExpression) { // The identifier eval or arguments may not appear as the LeftHandSideExpression of an // Assignment operator(11.13) or of a PostfixExpression(11.3) or as the UnaryExpression // operated upon by a Prefix Increment(11.4.4) or a Prefix Decrement(11.4.5) operator. @@ -5038,7 +5052,7 @@ module ts { } } - function checkPrefixOperator(node: UnaryExpression) { + function checkPrefixUnaryExpression(node: PrefixUnaryExpression) { if (node.parserContextFlags & ParserContextFlags.StrictMode) { // The identifier eval or arguments may not appear as the LeftHandSideExpression of an // Assignment operator(11.13) or of a PostfixExpression(11.3) or as the UnaryExpression diff --git a/src/compiler/types.ts b/src/compiler/types.ts index dfc39b1612d..437009987e4 100644 --- a/src/compiler/types.ts +++ b/src/compiler/types.ts @@ -315,7 +315,7 @@ module ts { flags: number; } - export interface Identifier extends Node { + export interface Identifier extends PrimaryExpression { text: string; // Text of identifier (with escapes converted to characters) } @@ -436,23 +436,49 @@ module ts { } export interface Expression extends Node { + _expressionBrand: any; contextualType?: Type; // Used to temporarily assign a contextual type during overload resolution } export interface UnaryExpression extends Expression { + _unaryExpressionBrand: any; + } + + export interface PrefixUnaryExpression extends UnaryExpression { operator: SyntaxKind; operand: Expression; } - export interface DeleteExpression extends Expression { + export interface PostfixUnaryExpression extends PostfixExpression { + operand: LeftHandSideExpression; + operator: SyntaxKind; + } + + export interface PostfixExpression extends UnaryExpression { + _postfixExpressionBrand: any; + } + + export interface LeftHandSideExpression extends PostfixExpression { + _leftHandSideExpressionBrand: any; + } + + export interface MemberExpression extends LeftHandSideExpression { + _memberExpressionBrand: any; + } + + export interface PrimaryExpression extends MemberExpression { + _primaryExpressionBrand: any; + } + + export interface DeleteExpression extends UnaryExpression { expression: Expression; } - export interface TypeOfExpression extends Expression { + export interface TypeOfExpression extends UnaryExpression { expression: Expression; } - export interface VoidExpression extends Expression { + export interface VoidExpression extends UnaryExpression { expression: Expression; } @@ -473,7 +499,7 @@ module ts { whenFalse: Expression; } - export interface FunctionExpression extends Expression, FunctionLikeDeclaration { + export interface FunctionExpression extends PrimaryExpression, FunctionLikeDeclaration { name?: Identifier; body: Block | Expression; // Required, whereas the member inherited from FunctionDeclaration is optional } @@ -481,11 +507,11 @@ module ts { // The text property of a LiteralExpression stores the interpreted value of the literal in text form. For a StringLiteral, // or any literal of a template, this means quotes have been removed and escapes have been converted to actual characters. // For a NumericLiteral, the stored value is the toString() representation of the number. For example 1, 1.00, and 1e0 are all stored as just "1". - export interface LiteralExpression extends Expression { + export interface LiteralExpression extends PrimaryExpression { text: string; } - export interface TemplateExpression extends Expression { + export interface TemplateExpression extends PrimaryExpression { head: LiteralExpression; templateSpans: NodeArray; } @@ -497,46 +523,46 @@ module ts { literal: LiteralExpression; } - export interface ParenthesizedExpression extends Expression { + export interface ParenthesizedExpression extends PrimaryExpression { expression: Expression; } - export interface ArrayLiteralExpression extends Expression { + export interface ArrayLiteralExpression extends PrimaryExpression { elements: NodeArray; } - export interface ObjectLiteralExpression extends Expression { + export interface ObjectLiteralExpression extends PrimaryExpression { properties: NodeArray; } - export interface PropertyAccessExpression extends Expression { - left: Expression; + export interface PropertyAccessExpression extends MemberExpression { + left: LeftHandSideExpression; right: Identifier; } - export interface ElementAccessExpression extends Expression { - expression: Expression; + export interface ElementAccessExpression extends MemberExpression { + expression: LeftHandSideExpression; openBracketToken: Node; argumentExpression: Expression; closeBracketToken: Node; } - export interface CallExpression extends Expression { + export interface CallExpression extends LeftHandSideExpression { expression: Expression; typeArguments?: NodeArray; arguments: NodeArray; } - export interface NewExpression extends CallExpression { } + export interface NewExpression extends CallExpression, PrimaryExpression { } - export interface TaggedTemplateExpression extends Expression { - tag: Expression; + export interface TaggedTemplateExpression extends MemberExpression { + tag: LeftHandSideExpression; template: LiteralExpression | TemplateExpression; } export type CallLikeExpression = CallExpression | NewExpression | TaggedTemplateExpression; - export interface TypeAssertion extends Expression { + export interface TypeAssertion extends UnaryExpression { type: TypeNode; expression: Expression; } From 38a5ba05aaf8de21a406e98f475199018fe91fc8 Mon Sep 17 00:00:00 2001 From: Cyrus Najmabadi Date: Sat, 29 Nov 2014 16:55:42 -0800 Subject: [PATCH 123/195] Add a comment explaining what Brands are used for. --- src/compiler/types.ts | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/compiler/types.ts b/src/compiler/types.ts index 437009987e4..6fcfc1ba54d 100644 --- a/src/compiler/types.ts +++ b/src/compiler/types.ts @@ -435,6 +435,13 @@ module ts { text: string; } + // Note: 'brands' in our syntax nodes serve to give us a small amount of nominal typing. + // Consider 'Expression'. Without the brand, 'Expression' is actually no different + // (structurally) than 'Node'. Because of this you can pass any Node to a function that + // takes an Expression without any error. By using the 'brands' we ensure that the type + // checker actually thinks you have something of the right type. Note: the brands are + // never actually given values. At runtime they have zero cost. + export interface Expression extends Node { _expressionBrand: any; contextualType?: Type; // Used to temporarily assign a contextual type during overload resolution From db51fbd65c13ed000f0a0a09c9300a9799ebcdfa Mon Sep 17 00:00:00 2001 From: Yui T Date: Sat, 29 Nov 2014 16:46:01 -0800 Subject: [PATCH 124/195] Add check and testcases for invalid binary digits and octal digits --- src/compiler/scanner.ts | 8 ++++++++ .../invalidBinaryIntegerLiteralAndOctalIntegerLiteral.ts | 5 +++++ 2 files changed, 13 insertions(+) create mode 100644 tests/cases/conformance/es6/binaryAndOctalIntegerLiteral/invalidBinaryIntegerLiteralAndOctalIntegerLiteral.ts diff --git a/src/compiler/scanner.ts b/src/compiler/scanner.ts index b55fd53e0cc..45723de983d 100644 --- a/src/compiler/scanner.ts +++ b/src/compiler/scanner.ts @@ -757,6 +757,9 @@ module ts { Debug.assert(base !== 2 || base !== 8, "Expected either base 2 or base 8"); var value = 0; + // For counting number of digits; Valid binaryIntegerLiteral must have at least one binary digit following B or b. + // Similarly valid octalIntegerLiteral must have at least one octal digit following o or O. + var numberOfDigits = 0; while (true) { var ch = text.charCodeAt(pos); var valueOfCh = ch - CharacterCodes._0; @@ -765,6 +768,11 @@ module ts { } value = value * base + valueOfCh; pos++; + numberOfDigits++; + } + // Invalid binaryIntegerLiteral or octalIntegerLiteral + if (numberOfDigits === 0) { + return -1; } return value; } diff --git a/tests/cases/conformance/es6/binaryAndOctalIntegerLiteral/invalidBinaryIntegerLiteralAndOctalIntegerLiteral.ts b/tests/cases/conformance/es6/binaryAndOctalIntegerLiteral/invalidBinaryIntegerLiteralAndOctalIntegerLiteral.ts new file mode 100644 index 00000000000..850b71c6702 --- /dev/null +++ b/tests/cases/conformance/es6/binaryAndOctalIntegerLiteral/invalidBinaryIntegerLiteralAndOctalIntegerLiteral.ts @@ -0,0 +1,5 @@ +// Error +var binary = 0b21010; +var binary1 = 0B21010; +var octal = 0o81010; +var octal = 0O91010; \ No newline at end of file From da08a6ea1a25b5415aa52239d89cf0c8e5fb4a42 Mon Sep 17 00:00:00 2001 From: Cyrus Najmabadi Date: Sat, 29 Nov 2014 17:06:55 -0800 Subject: [PATCH 125/195] Make the distinction between PropertyAccessExpressions and QualifiedNames more explicit. --- src/compiler/checker.ts | 47 ++++++++++++++++++++++++----------------- src/compiler/parser.ts | 5 ++++- 2 files changed, 32 insertions(+), 20 deletions(-) diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index 457f9ad676d..c517a3aee45 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -5156,15 +5156,15 @@ module ts { } } - function checkPropertyAccess(node: PropertyAccessExpression) { - return checkPropertyAccessCore(node, node.left, node.right); + function checkPropertyAccessExpression(node: PropertyAccessExpression) { + return checkPropertyAccessExpressionOrQualifiedName(node, node.left, node.right); } function checkQualifiedName(node: QualifiedName) { - return checkPropertyAccessCore(node, node.left, node.right); + return checkPropertyAccessExpressionOrQualifiedName(node, node.left, node.right); } - function checkPropertyAccessCore(node: PropertyAccessExpression | QualifiedName, left: Expression | QualifiedName, right: Identifier) { + function checkPropertyAccessExpressionOrQualifiedName(node: PropertyAccessExpression | QualifiedName, left: Expression | QualifiedName, right: Identifier) { var type = checkExpression(left); if (type === unknownType) return type; if (type !== anyType) { @@ -6575,7 +6575,7 @@ module ts { case SyntaxKind.ObjectLiteralExpression: return checkObjectLiteral(node, contextualMapper); case SyntaxKind.PropertyAccessExpression: - return checkPropertyAccess(node); + return checkPropertyAccessExpression(node); case SyntaxKind.ElementAccessExpression: return checkIndexedAccess(node); case SyntaxKind.CallExpression: @@ -8817,27 +8817,29 @@ module ts { } function isRightSideOfQualifiedNameOrPropertyAccess(node: Node) { - return (node.parent.kind === SyntaxKind.QualifiedName || node.parent.kind === SyntaxKind.PropertyAccessExpression) && - (node.parent).right === node; + return (node.parent.kind === SyntaxKind.QualifiedName && (node.parent).right === node) || + (node.parent.kind === SyntaxKind.PropertyAccessExpression && (node.parent).right === node); } - function getSymbolOfEntityName(entityName: EntityName): Symbol { + function getSymbolOfEntityNameOrPropertyAccessExpression(entityName: EntityName | PropertyAccessExpression): Symbol { if (isDeclarationOrFunctionExpressionOrCatchVariableName(entityName)) { return getSymbolOfNode(entityName.parent); } if (entityName.parent.kind === SyntaxKind.ExportAssignment) { - return resolveEntityName(/*location*/ entityName.parent.parent, entityName, + return resolveEntityName(/*location*/ entityName.parent.parent, entityName, /*all meanings*/ SymbolFlags.Value | SymbolFlags.Type | SymbolFlags.Namespace | SymbolFlags.Import); } - if (isInRightSideOfImportOrExportAssignment(entityName)) { - // Since we already checked for ExportAssignment, this really could only be an Import - return getSymbolOfPartOfRightHandSideOfImport(entityName); + if (entityName.kind !== SyntaxKind.PropertyAccessExpression) { + if (isInRightSideOfImportOrExportAssignment(entityName)) { + // Since we already checked for ExportAssignment, this really could only be an Import + return getSymbolOfPartOfRightHandSideOfImport(entityName); + } } if (isRightSideOfQualifiedNameOrPropertyAccess(entityName)) { - entityName = entityName.parent; + entityName = entityName.parent; } if (isExpression(entityName)) { @@ -8845,9 +8847,16 @@ module ts { // Include Import in the meaning, this ensures that we do not follow aliases to where they point and instead // return the alias symbol. var meaning: SymbolFlags = SymbolFlags.Value | SymbolFlags.Import; - return resolveEntityName(entityName, entityName, meaning); + return resolveEntityName(entityName, entityName, meaning); } - else if (entityName.kind === SyntaxKind.QualifiedName || entityName.kind === SyntaxKind.PropertyAccessExpression) { + else if (entityName.kind === SyntaxKind.PropertyAccessExpression) { + var symbol = getNodeLinks(entityName).resolvedSymbol; + if (!symbol) { + checkPropertyAccessExpression(entityName); + } + return getNodeLinks(entityName).resolvedSymbol; + } + else if (entityName.kind === SyntaxKind.QualifiedName) { var symbol = getNodeLinks(entityName).resolvedSymbol; if (!symbol) { checkQualifiedName(entityName); @@ -8859,12 +8868,12 @@ module ts { return; } } - else if (isTypeReferenceIdentifier(entityName)) { + else if (isTypeReferenceIdentifier(entityName)) { var meaning = entityName.parent.kind === SyntaxKind.TypeReference ? SymbolFlags.Type : SymbolFlags.Namespace; // Include Import in the meaning, this ensures that we do not follow aliases to where they point and instead // return the alias symbol. meaning |= SymbolFlags.Import; - return resolveEntityName(entityName, entityName, meaning); + return resolveEntityName(entityName, entityName, meaning); } // Do we want to return undefined here? @@ -8884,7 +8893,7 @@ module ts { if (node.kind === SyntaxKind.Identifier && isInRightSideOfImportOrExportAssignment(node)) { return node.parent.kind === SyntaxKind.ExportAssignment - ? getSymbolOfEntityName(node) + ? getSymbolOfEntityNameOrPropertyAccessExpression(node) : getSymbolOfPartOfRightHandSideOfImport(node); } @@ -8892,7 +8901,7 @@ module ts { case SyntaxKind.Identifier: case SyntaxKind.PropertyAccessExpression: case SyntaxKind.QualifiedName: - return getSymbolOfEntityName(node); + return getSymbolOfEntityNameOrPropertyAccessExpression(node); case SyntaxKind.ThisKeyword: case SyntaxKind.SuperKeyword: diff --git a/src/compiler/parser.ts b/src/compiler/parser.ts index df6c2488b0f..8a9f6c4e80a 100644 --- a/src/compiler/parser.ts +++ b/src/compiler/parser.ts @@ -537,7 +537,10 @@ module ts { case SyntaxKind.OmittedExpression: return true; case SyntaxKind.QualifiedName: - while (node.parent.kind === SyntaxKind.QualifiedName) node = node.parent; + while (node.parent.kind === SyntaxKind.QualifiedName) { + node = node.parent; + } + return node.parent.kind === SyntaxKind.TypeQuery; case SyntaxKind.Identifier: if (node.parent.kind === SyntaxKind.TypeQuery) { From 5f00c7cdbcce0e30ef0eb742f3a0d6417d32703d Mon Sep 17 00:00:00 2001 From: Cyrus Najmabadi Date: Sat, 29 Nov 2014 17:25:52 -0800 Subject: [PATCH 126/195] Change the names for property access and qualified names to match their types. --- src/compiler/checker.ts | 28 ++++++++++++++++------------ src/compiler/emitter.ts | 8 ++++---- src/compiler/parser.ts | 12 ++++++------ src/compiler/types.ts | 6 +++--- src/services/services.ts | 13 ++++++++----- 5 files changed, 37 insertions(+), 30 deletions(-) diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index c517a3aee45..40cd45e7e4d 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -5118,7 +5118,7 @@ module ts { return s.valueDeclaration ? s.valueDeclaration.flags : s.flags & SymbolFlags.Prototype ? NodeFlags.Public | NodeFlags.Static : 0; } - function checkClassPropertyAccess(node: PropertyAccessExpression | QualifiedName, type: Type, prop: Symbol) { + function checkClassPropertyAccess(node: PropertyAccessExpression | QualifiedName, left: Expression | QualifiedName, type: Type, prop: Symbol) { var flags = getDeclarationFlagsFromSymbol(prop); // Public properties are always accessible if (!(flags & (NodeFlags.Private | NodeFlags.Protected))) { @@ -5138,7 +5138,7 @@ module ts { } // Property is known to be protected at this point // All protected properties of a supertype are accessible in a super access - if (node.left.kind === SyntaxKind.SuperKeyword) { + if (left.kind === SyntaxKind.SuperKeyword) { return; } // A protected property is accessible in the declaring class and classes derived from it @@ -5157,7 +5157,7 @@ module ts { } function checkPropertyAccessExpression(node: PropertyAccessExpression) { - return checkPropertyAccessExpressionOrQualifiedName(node, node.left, node.right); + return checkPropertyAccessExpressionOrQualifiedName(node, node.expression, node.name); } function checkQualifiedName(node: QualifiedName) { @@ -5193,7 +5193,7 @@ module ts { error(right, Diagnostics.Only_public_and_protected_methods_of_the_base_class_are_accessible_via_the_super_keyword); } else { - checkClassPropertyAccess(node, type, prop); + checkClassPropertyAccess(node, left, type, prop); } } return getTypeOfSymbol(prop); @@ -5201,17 +5201,21 @@ module ts { return anyType; } - function isValidPropertyAccess(node: PropertyAccessExpression, propertyName: string): boolean { - var type = checkExpression(node.left); + function isValidPropertyAccess(node: PropertyAccessExpression | QualifiedName, propertyName: string): boolean { + var left = node.kind === SyntaxKind.PropertyAccessExpression + ? (node).expression + : (node).left; + + var type = checkExpression(left); if (type !== unknownType && type !== anyType) { var prop = getPropertyOfType(getWidenedType(type), propertyName); if (prop && prop.parent && prop.parent.flags & SymbolFlags.Class) { - if (node.left.kind === SyntaxKind.SuperKeyword && getDeclarationKindFromSymbol(prop) !== SyntaxKind.Method) { + if (left.kind === SyntaxKind.SuperKeyword && getDeclarationKindFromSymbol(prop) !== SyntaxKind.Method) { return false; } else { var diagnosticsCount = diagnostics.length; - checkClassPropertyAccess(node, type, prop); + checkClassPropertyAccess(node, left, type, prop); return diagnostics.length === diagnosticsCount } } @@ -6535,7 +6539,7 @@ module ts { // - 'object' in indexed access // - target in rhs of import statement var ok = - (node.parent.kind === SyntaxKind.PropertyAccessExpression && (node.parent).left === node) || + (node.parent.kind === SyntaxKind.PropertyAccessExpression && (node.parent).expression === node) || (node.parent.kind === SyntaxKind.ElementAccessExpression && (node.parent).expression === node) || ((node.kind === SyntaxKind.Identifier || node.kind === SyntaxKind.QualifiedName) && isInRightSideOfImportOrExportAssignment(node)); @@ -8176,8 +8180,8 @@ module ts { propertyName = ((e).argumentExpression).text; } else { - var enumType = getTypeOfNode((e).left); - propertyName = (e).right.text; + var enumType = getTypeOfNode((e).expression); + propertyName = (e).name.text; } if (enumType !== currentType) { return undefined; @@ -8818,7 +8822,7 @@ module ts { function isRightSideOfQualifiedNameOrPropertyAccess(node: Node) { return (node.parent.kind === SyntaxKind.QualifiedName && (node.parent).right === node) || - (node.parent.kind === SyntaxKind.PropertyAccessExpression && (node.parent).right === node); + (node.parent.kind === SyntaxKind.PropertyAccessExpression && (node.parent).name === node); } function getSymbolOfEntityNameOrPropertyAccessExpression(entityName: EntityName | PropertyAccessExpression): Symbol { diff --git a/src/compiler/emitter.ts b/src/compiler/emitter.ts index 380a4bb3c52..55d5ffd2973 100644 --- a/src/compiler/emitter.ts +++ b/src/compiler/emitter.ts @@ -2252,7 +2252,7 @@ module ts { function tryEmitConstantValue(node: PropertyAccessExpression | ElementAccessExpression): boolean { var constantValue = resolver.getConstantValue(node); if (constantValue !== undefined) { - var propertyName = node.kind === SyntaxKind.PropertyAccessExpression ? declarationNameToString((node).right) : getTextOfNode((node).argumentExpression); + var propertyName = node.kind === SyntaxKind.PropertyAccessExpression ? declarationNameToString((node).name) : getTextOfNode((node).argumentExpression); write(constantValue.toString() + " /* " + propertyName + " */"); return true; } @@ -2263,9 +2263,9 @@ module ts { if (tryEmitConstantValue(node)) { return; } - emit(node.left); + emit(node.expression); write("."); - emit(node.right); + emit(node.name); } function emitQualifiedName(node: QualifiedName) { @@ -2292,7 +2292,7 @@ module ts { } else { emit(node.expression); - superCall = node.expression.kind === SyntaxKind.PropertyAccessExpression && (node.expression).left.kind === SyntaxKind.SuperKeyword; + superCall = node.expression.kind === SyntaxKind.PropertyAccessExpression && (node.expression).expression.kind === SyntaxKind.SuperKeyword; } if (superCall) { write(".call("); diff --git a/src/compiler/parser.ts b/src/compiler/parser.ts index 8a9f6c4e80a..a1be014acc8 100644 --- a/src/compiler/parser.ts +++ b/src/compiler/parser.ts @@ -260,8 +260,8 @@ module ts { case SyntaxKind.ObjectLiteralExpression: return children((node).properties); case SyntaxKind.PropertyAccessExpression: - return child((node).left) || - child((node).right); + return child((node).expression) || + child((node).name); case SyntaxKind.ElementAccessExpression: return child((node).expression) || child((node).argumentExpression); @@ -2811,9 +2811,9 @@ module ts { // If we have seen "super" it must be followed by '(' or '.'. // If it wasn't then just try to parse out a '.' and report an error. var node = createNode(SyntaxKind.PropertyAccessExpression, expression.pos); - node.left = expression; + node.expression = expression; parseExpected(SyntaxKind.DotToken, Diagnostics.super_must_be_followed_by_an_argument_list_or_member_access); - node.right = parseIdentifierName(); + node.name = parseIdentifierName(); return finishNode(node); } @@ -2863,8 +2863,8 @@ module ts { } } - propertyAccess.left = expression; - propertyAccess.right = id || parseIdentifierName(); + propertyAccess.expression = expression; + propertyAccess.name = id || parseIdentifierName(); expression = finishNode(propertyAccess); continue; } diff --git a/src/compiler/types.ts b/src/compiler/types.ts index 6fcfc1ba54d..b559fee1af1 100644 --- a/src/compiler/types.ts +++ b/src/compiler/types.ts @@ -543,8 +543,8 @@ module ts { } export interface PropertyAccessExpression extends MemberExpression { - left: LeftHandSideExpression; - right: Identifier; + expression: LeftHandSideExpression; + name: Identifier; } export interface ElementAccessExpression extends MemberExpression { @@ -834,7 +834,7 @@ module ts { isEmitBlocked(sourceFile?: SourceFile): boolean; // Returns the constant value of this enum member, or 'undefined' if the enum member has a computed value. getEnumMemberValue(node: EnumMember): number; - isValidPropertyAccess(node: PropertyAccessExpression, propertyName: string): boolean; + isValidPropertyAccess(node: PropertyAccessExpression | QualifiedName, propertyName: string): boolean; getAliasedSymbol(symbol: Symbol): Symbol; } diff --git a/src/services/services.ts b/src/services/services.ts index 04acf4837b3..7ab9c6a41e9 100644 --- a/src/services/services.ts +++ b/src/services/services.ts @@ -1927,7 +1927,7 @@ module ts { } function isRightSideOfPropertyAccess(node: Node) { - return node && node.parent && node.parent.kind === SyntaxKind.PropertyAccessExpression && (node.parent).right === node; + return node && node.parent && node.parent.kind === SyntaxKind.PropertyAccessExpression && (node.parent).name === node; } function isCallExpressionTarget(node: Node): boolean { @@ -2373,9 +2373,12 @@ module ts { // other wise, it is a request for all visible symbols in the scope, and the node is the current location var node: Node; var isRightOfDot: boolean; - if (previousToken && previousToken.kind === SyntaxKind.DotToken && - (previousToken.parent.kind === SyntaxKind.PropertyAccessExpression || previousToken.parent.kind === SyntaxKind.QualifiedName)) { - node = (previousToken.parent).left; + if (previousToken && previousToken.kind === SyntaxKind.DotToken && previousToken.parent.kind === SyntaxKind.PropertyAccessExpression) { + node = (previousToken.parent).expression; + isRightOfDot = true; + } + else if (previousToken && previousToken.kind === SyntaxKind.DotToken && previousToken.parent.kind === SyntaxKind.QualifiedName) { + node = (previousToken.parent).left; isRightOfDot = true; } else { @@ -2879,7 +2882,7 @@ module ts { var type = typeResolver.getNarrowedTypeOfSymbol(symbol, location); if (type) { if (location.parent && location.parent.kind === SyntaxKind.PropertyAccessExpression) { - var right = (location.parent).right; + var right = (location.parent).name; // Either the location is on the right of a property access, or on the left and the right is missing if (right === location || (right && right.kind === SyntaxKind.Missing)){ location = location.parent; From a74bc81ba2b604c69befeff8abe24c9a51cab2be Mon Sep 17 00:00:00 2001 From: Solal Pirelli Date: Sun, 30 Nov 2014 10:03:53 +0100 Subject: [PATCH 127/195] Fix documentation for Uint32Array.subarray --- bin/lib.d.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bin/lib.d.ts b/bin/lib.d.ts index 8890fab4284..c18bd4ff8b4 100644 --- a/bin/lib.d.ts +++ b/bin/lib.d.ts @@ -1489,7 +1489,7 @@ interface Uint32Array extends ArrayBufferView { set(array: number[], offset?: number): void; /** - * Gets a new Int8Array view of the ArrayBuffer Object store for this array, specifying the first and last members of the subarray. + * Gets a new Uint32Array view of the ArrayBuffer Object store for this array, specifying the first and last members of the subarray. * @param begin The index of the beginning of the array. * @param end The index of the end of the array. */ From 9ed27b23aba2356d5dff855dc28639727ed7529e Mon Sep 17 00:00:00 2001 From: Mohamed Hegazy Date: Sun, 30 Nov 2014 11:04:15 -0800 Subject: [PATCH 128/195] Handel assert for missing node kind in isDeclarationVisible for functionType and constructorType --- src/compiler/checker.ts | 2 ++ .../reference/constructorTypeDeclarations.js | 22 ++++++++++++++++ .../constructorTypeDeclarations.types | 17 ++++++++++++ .../reference/functionTypeDeclarations.js | 26 +++++++++++++++++++ .../reference/functionTypeDeclarations.types | 24 +++++++++++++++++ .../compiler/constructorTypeDeclarations.ts | 7 +++++ .../compiler/functionTypeDeclarations.ts | 9 +++++++ 7 files changed, 107 insertions(+) create mode 100644 tests/baselines/reference/constructorTypeDeclarations.js create mode 100644 tests/baselines/reference/constructorTypeDeclarations.types create mode 100644 tests/baselines/reference/functionTypeDeclarations.js create mode 100644 tests/baselines/reference/functionTypeDeclarations.types create mode 100644 tests/cases/compiler/constructorTypeDeclarations.ts create mode 100644 tests/cases/compiler/functionTypeDeclarations.ts diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index 6afbbcdd510..dacca9b07d8 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -1617,7 +1617,9 @@ module ts { case SyntaxKind.Constructor: case SyntaxKind.ConstructSignature: + case SyntaxKind.ConstructorType: case SyntaxKind.CallSignature: + case SyntaxKind.FunctionType: case SyntaxKind.IndexSignature: case SyntaxKind.Parameter: case SyntaxKind.ModuleBlock: diff --git a/tests/baselines/reference/constructorTypeDeclarations.js b/tests/baselines/reference/constructorTypeDeclarations.js new file mode 100644 index 00000000000..7b983a69bde --- /dev/null +++ b/tests/baselines/reference/constructorTypeDeclarations.js @@ -0,0 +1,22 @@ +//// [constructorTypeDeclarations.ts] + +module schema { + export function createValidator(schema: any): new (data: T) => T { + return undefined; + } +} + +//// [constructorTypeDeclarations.js] +var schema; +(function (_schema) { + function createValidator(schema) { + return undefined; + } + _schema.createValidator = createValidator; +})(schema || (schema = {})); + + +//// [constructorTypeDeclarations.d.ts] +declare module schema { + function createValidator(schema: any): new (data: T) => T; +} diff --git a/tests/baselines/reference/constructorTypeDeclarations.types b/tests/baselines/reference/constructorTypeDeclarations.types new file mode 100644 index 00000000000..34bd6166650 --- /dev/null +++ b/tests/baselines/reference/constructorTypeDeclarations.types @@ -0,0 +1,17 @@ +=== tests/cases/compiler/constructorTypeDeclarations.ts === + +module schema { +>schema : typeof schema + + export function createValidator(schema: any): new (data: T) => T { +>createValidator : (schema: any) => new (data: T) => T +>schema : any +>T : T +>data : T +>T : T +>T : T + + return undefined; +>undefined : undefined + } +} diff --git a/tests/baselines/reference/functionTypeDeclarations.js b/tests/baselines/reference/functionTypeDeclarations.js new file mode 100644 index 00000000000..34408f74b58 --- /dev/null +++ b/tests/baselines/reference/functionTypeDeclarations.js @@ -0,0 +1,26 @@ +//// [functionTypeDeclarations.ts] + +module schema { + export function createValidator(schema: any): (data: T) => T { + return (data: T) => { + return data; + } + } +} + +//// [functionTypeDeclarations.js] +var schema; +(function (_schema) { + function createValidator(schema) { + return function (data) { + return data; + }; + } + _schema.createValidator = createValidator; +})(schema || (schema = {})); + + +//// [functionTypeDeclarations.d.ts] +declare module schema { + function createValidator(schema: any): (data: T) => T; +} diff --git a/tests/baselines/reference/functionTypeDeclarations.types b/tests/baselines/reference/functionTypeDeclarations.types new file mode 100644 index 00000000000..1118444fdf4 --- /dev/null +++ b/tests/baselines/reference/functionTypeDeclarations.types @@ -0,0 +1,24 @@ +=== tests/cases/compiler/functionTypeDeclarations.ts === + +module schema { +>schema : typeof schema + + export function createValidator(schema: any): (data: T) => T { +>createValidator : (schema: any) => (data: T) => T +>schema : any +>T : T +>data : T +>T : T +>T : T + + return (data: T) => { +>(data: T) => { return data; } : (data: T) => T +>T : T +>data : T +>T : T + + return data; +>data : T + } + } +} diff --git a/tests/cases/compiler/constructorTypeDeclarations.ts b/tests/cases/compiler/constructorTypeDeclarations.ts new file mode 100644 index 00000000000..48d6f884632 --- /dev/null +++ b/tests/cases/compiler/constructorTypeDeclarations.ts @@ -0,0 +1,7 @@ +// @declaration: true + +module schema { + export function createValidator(schema: any): new (data: T) => T { + return undefined; + } +} \ No newline at end of file diff --git a/tests/cases/compiler/functionTypeDeclarations.ts b/tests/cases/compiler/functionTypeDeclarations.ts new file mode 100644 index 00000000000..e0d7c7cdbf4 --- /dev/null +++ b/tests/cases/compiler/functionTypeDeclarations.ts @@ -0,0 +1,9 @@ +// @declaration: true + +module schema { + export function createValidator(schema: any): (data: T) => T { + return (data: T) => { + return data; + } + } +} \ No newline at end of file From 0246daec8376afc1af29cf80fc7de9da8da68525 Mon Sep 17 00:00:00 2001 From: Mohamed Hegazy Date: Sun, 30 Nov 2014 11:47:41 -0800 Subject: [PATCH 129/195] Handel TypeLiterals, ParenTypes, UnionTypes, and ArrayTypes --- src/compiler/checker.ts | 9 +- .../reference/constructorTypeDeclarations.js | 22 --- .../constructorTypeDeclarations.types | 17 --- .../reference/functionTypeDeclarations.js | 26 ---- .../reference/functionTypeDeclarations.types | 24 --- .../isDeclarationVisibleNodeKinds.js | 139 ++++++++++++++++++ .../isDeclarationVisibleNodeKinds.types | 121 +++++++++++++++ .../compiler/constructorTypeDeclarations.ts | 7 - .../compiler/functionTypeDeclarations.ts | 9 -- .../compiler/isDeclarationVisibleNodeKinds.ts | 51 +++++++ 10 files changed, 318 insertions(+), 107 deletions(-) delete mode 100644 tests/baselines/reference/constructorTypeDeclarations.js delete mode 100644 tests/baselines/reference/constructorTypeDeclarations.types delete mode 100644 tests/baselines/reference/functionTypeDeclarations.js delete mode 100644 tests/baselines/reference/functionTypeDeclarations.types create mode 100644 tests/baselines/reference/isDeclarationVisibleNodeKinds.js create mode 100644 tests/baselines/reference/isDeclarationVisibleNodeKinds.types delete mode 100644 tests/cases/compiler/constructorTypeDeclarations.ts delete mode 100644 tests/cases/compiler/functionTypeDeclarations.ts create mode 100644 tests/cases/compiler/isDeclarationVisibleNodeKinds.ts diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index dacca9b07d8..025837511c6 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -1617,13 +1617,18 @@ module ts { case SyntaxKind.Constructor: case SyntaxKind.ConstructSignature: - case SyntaxKind.ConstructorType: case SyntaxKind.CallSignature: - case SyntaxKind.FunctionType: case SyntaxKind.IndexSignature: case SyntaxKind.Parameter: case SyntaxKind.ModuleBlock: case SyntaxKind.TypeParameter: + case SyntaxKind.FunctionType: + case SyntaxKind.ConstructorType: + case SyntaxKind.TypeLiteral: + case SyntaxKind.ArrayType: + case SyntaxKind.TupleType: + case SyntaxKind.UnionType: + case SyntaxKind.ParenType: return isDeclarationVisible(node.parent); // Source file is always visible diff --git a/tests/baselines/reference/constructorTypeDeclarations.js b/tests/baselines/reference/constructorTypeDeclarations.js deleted file mode 100644 index 7b983a69bde..00000000000 --- a/tests/baselines/reference/constructorTypeDeclarations.js +++ /dev/null @@ -1,22 +0,0 @@ -//// [constructorTypeDeclarations.ts] - -module schema { - export function createValidator(schema: any): new (data: T) => T { - return undefined; - } -} - -//// [constructorTypeDeclarations.js] -var schema; -(function (_schema) { - function createValidator(schema) { - return undefined; - } - _schema.createValidator = createValidator; -})(schema || (schema = {})); - - -//// [constructorTypeDeclarations.d.ts] -declare module schema { - function createValidator(schema: any): new (data: T) => T; -} diff --git a/tests/baselines/reference/constructorTypeDeclarations.types b/tests/baselines/reference/constructorTypeDeclarations.types deleted file mode 100644 index 34bd6166650..00000000000 --- a/tests/baselines/reference/constructorTypeDeclarations.types +++ /dev/null @@ -1,17 +0,0 @@ -=== tests/cases/compiler/constructorTypeDeclarations.ts === - -module schema { ->schema : typeof schema - - export function createValidator(schema: any): new (data: T) => T { ->createValidator : (schema: any) => new (data: T) => T ->schema : any ->T : T ->data : T ->T : T ->T : T - - return undefined; ->undefined : undefined - } -} diff --git a/tests/baselines/reference/functionTypeDeclarations.js b/tests/baselines/reference/functionTypeDeclarations.js deleted file mode 100644 index 34408f74b58..00000000000 --- a/tests/baselines/reference/functionTypeDeclarations.js +++ /dev/null @@ -1,26 +0,0 @@ -//// [functionTypeDeclarations.ts] - -module schema { - export function createValidator(schema: any): (data: T) => T { - return (data: T) => { - return data; - } - } -} - -//// [functionTypeDeclarations.js] -var schema; -(function (_schema) { - function createValidator(schema) { - return function (data) { - return data; - }; - } - _schema.createValidator = createValidator; -})(schema || (schema = {})); - - -//// [functionTypeDeclarations.d.ts] -declare module schema { - function createValidator(schema: any): (data: T) => T; -} diff --git a/tests/baselines/reference/functionTypeDeclarations.types b/tests/baselines/reference/functionTypeDeclarations.types deleted file mode 100644 index 1118444fdf4..00000000000 --- a/tests/baselines/reference/functionTypeDeclarations.types +++ /dev/null @@ -1,24 +0,0 @@ -=== tests/cases/compiler/functionTypeDeclarations.ts === - -module schema { ->schema : typeof schema - - export function createValidator(schema: any): (data: T) => T { ->createValidator : (schema: any) => (data: T) => T ->schema : any ->T : T ->data : T ->T : T ->T : T - - return (data: T) => { ->(data: T) => { return data; } : (data: T) => T ->T : T ->data : T ->T : T - - return data; ->data : T - } - } -} diff --git a/tests/baselines/reference/isDeclarationVisibleNodeKinds.js b/tests/baselines/reference/isDeclarationVisibleNodeKinds.js new file mode 100644 index 00000000000..65fddb0a92a --- /dev/null +++ b/tests/baselines/reference/isDeclarationVisibleNodeKinds.js @@ -0,0 +1,139 @@ +//// [isDeclarationVisibleNodeKinds.ts] + +// Function types +module schema { + export function createValidator1(schema: any): (data: T) => T { + return undefined; + } +} + +// Constructor types +module schema { + export function createValidator2(schema: any): new (data: T) => T { + return undefined; + } +} + +// union types +module schema { + export function createValidator3(schema: any): number | { new (data: T): T; } { + return undefined; + } +} + +// Array types +module schema { + export function createValidator4(schema: any): { new (data: T): T; }[] { + return undefined; + } +} + + +// TypeLiterals +module schema { + export function createValidator5(schema: any): { new (data: T): T } { + return undefined; + } +} + +// Tuple types +module schema { + export function createValidator6(schema: any): [ new (data: T) => T, number] { + return undefined; + } +} + +// Paren Types +module schema { + export function createValidator7(schema: any): (new (data: T)=>T )[] { + return undefined; + } +} + +//// [isDeclarationVisibleNodeKinds.js] +// Function types +var schema; +(function (_schema) { + function createValidator1(schema) { + return undefined; + } + _schema.createValidator1 = createValidator1; +})(schema || (schema = {})); +// Constructor types +var schema; +(function (_schema) { + function createValidator2(schema) { + return undefined; + } + _schema.createValidator2 = createValidator2; +})(schema || (schema = {})); +// union types +var schema; +(function (_schema) { + function createValidator3(schema) { + return undefined; + } + _schema.createValidator3 = createValidator3; +})(schema || (schema = {})); +// Array types +var schema; +(function (_schema) { + function createValidator4(schema) { + return undefined; + } + _schema.createValidator4 = createValidator4; +})(schema || (schema = {})); +// TypeLiterals +var schema; +(function (_schema) { + function createValidator5(schema) { + return undefined; + } + _schema.createValidator5 = createValidator5; +})(schema || (schema = {})); +// Tuple types +var schema; +(function (_schema) { + function createValidator6(schema) { + return undefined; + } + _schema.createValidator6 = createValidator6; +})(schema || (schema = {})); +// Paren Types +var schema; +(function (_schema) { + function createValidator7(schema) { + return undefined; + } + _schema.createValidator7 = createValidator7; +})(schema || (schema = {})); + + +//// [isDeclarationVisibleNodeKinds.d.ts] +declare module schema { + function createValidator1(schema: any): (data: T) => T; +} +declare module schema { + function createValidator2(schema: any): new (data: T) => T; +} +declare module schema { + function createValidator3(schema: any): number | { + new (data: T): T; + }; +} +declare module schema { + function createValidator4(schema: any): { + new (data: T): T; + }[]; +} +declare module schema { + function createValidator5(schema: any): { + new (data: T): T; + }; +} +declare module schema { + function createValidator6(schema: any): [new (data: T) => T, number]; +} +declare module schema { + function createValidator7(schema: any): (new (data: T) => T)[]; +} diff --git a/tests/baselines/reference/isDeclarationVisibleNodeKinds.types b/tests/baselines/reference/isDeclarationVisibleNodeKinds.types new file mode 100644 index 00000000000..c95ded99be3 --- /dev/null +++ b/tests/baselines/reference/isDeclarationVisibleNodeKinds.types @@ -0,0 +1,121 @@ +=== tests/cases/compiler/isDeclarationVisibleNodeKinds.ts === + +// Function types +module schema { +>schema : typeof schema + + export function createValidator1(schema: any): (data: T) => T { +>createValidator1 : (schema: any) => (data: T) => T +>schema : any +>T : T +>data : T +>T : T +>T : T + + return undefined; +>undefined : undefined + } +} + +// Constructor types +module schema { +>schema : typeof schema + + export function createValidator2(schema: any): new (data: T) => T { +>createValidator2 : (schema: any) => new (data: T) => T +>schema : any +>T : T +>data : T +>T : T +>T : T + + return undefined; +>undefined : undefined + } +} + +// union types +module schema { +>schema : typeof schema + + export function createValidator3(schema: any): number | { new (data: T): T; } { +>createValidator3 : (schema: any) => number | (new (data: T) => T) +>schema : any +>T : T +>data : T +>T : T +>T : T + + return undefined; +>undefined : undefined + } +} + +// Array types +module schema { +>schema : typeof schema + + export function createValidator4(schema: any): { new (data: T): T; }[] { +>createValidator4 : (schema: any) => (new (data: T) => T)[] +>schema : any +>T : T +>data : T +>T : T +>T : T + + return undefined; +>undefined : undefined + } +} + + +// TypeLiterals +module schema { +>schema : typeof schema + + export function createValidator5(schema: any): { new (data: T): T } { +>createValidator5 : (schema: any) => new (data: T) => T +>schema : any +>T : T +>data : T +>T : T +>T : T + + return undefined; +>undefined : undefined + } +} + +// Tuple types +module schema { +>schema : typeof schema + + export function createValidator6(schema: any): [ new (data: T) => T, number] { +>createValidator6 : (schema: any) => [new (data: T) => T, number] +>schema : any +>T : T +>data : T +>T : T +>T : T + + return undefined; +>undefined : undefined + } +} + +// Paren Types +module schema { +>schema : typeof schema + + export function createValidator7(schema: any): (new (data: T)=>T )[] { +>createValidator7 : (schema: any) => (new (data: T) => T)[] +>schema : any +>T : T +>data : T +>T : T +>T : T + + return undefined; +>undefined : undefined + } +} diff --git a/tests/cases/compiler/constructorTypeDeclarations.ts b/tests/cases/compiler/constructorTypeDeclarations.ts deleted file mode 100644 index 48d6f884632..00000000000 --- a/tests/cases/compiler/constructorTypeDeclarations.ts +++ /dev/null @@ -1,7 +0,0 @@ -// @declaration: true - -module schema { - export function createValidator(schema: any): new (data: T) => T { - return undefined; - } -} \ No newline at end of file diff --git a/tests/cases/compiler/functionTypeDeclarations.ts b/tests/cases/compiler/functionTypeDeclarations.ts deleted file mode 100644 index e0d7c7cdbf4..00000000000 --- a/tests/cases/compiler/functionTypeDeclarations.ts +++ /dev/null @@ -1,9 +0,0 @@ -// @declaration: true - -module schema { - export function createValidator(schema: any): (data: T) => T { - return (data: T) => { - return data; - } - } -} \ No newline at end of file diff --git a/tests/cases/compiler/isDeclarationVisibleNodeKinds.ts b/tests/cases/compiler/isDeclarationVisibleNodeKinds.ts new file mode 100644 index 00000000000..3e8b890ef56 --- /dev/null +++ b/tests/cases/compiler/isDeclarationVisibleNodeKinds.ts @@ -0,0 +1,51 @@ +// @declaration: true + +// Function types +module schema { + export function createValidator1(schema: any): (data: T) => T { + return undefined; + } +} + +// Constructor types +module schema { + export function createValidator2(schema: any): new (data: T) => T { + return undefined; + } +} + +// union types +module schema { + export function createValidator3(schema: any): number | { new (data: T): T; } { + return undefined; + } +} + +// Array types +module schema { + export function createValidator4(schema: any): { new (data: T): T; }[] { + return undefined; + } +} + + +// TypeLiterals +module schema { + export function createValidator5(schema: any): { new (data: T): T } { + return undefined; + } +} + +// Tuple types +module schema { + export function createValidator6(schema: any): [ new (data: T) => T, number] { + return undefined; + } +} + +// Paren Types +module schema { + export function createValidator7(schema: any): (new (data: T)=>T )[] { + return undefined; + } +} \ No newline at end of file From 54bd524c90514412c8efe710676c07ccc68df458 Mon Sep 17 00:00:00 2001 From: Cyrus Najmabadi Date: Sun, 30 Nov 2014 14:06:15 -0800 Subject: [PATCH 130/195] Provide brands for statements. Introduce a ModuleElement type to provide more clear typesafety. --- src/compiler/checker.ts | 14 +++++++++++--- src/compiler/emitter.ts | 6 +++--- src/compiler/parser.ts | 24 ++++++++++++------------ src/compiler/types.ts | 34 +++++++++++++++++++++++----------- src/services/services.ts | 2 +- 5 files changed, 50 insertions(+), 30 deletions(-) diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index 40cd45e7e4d..2d9f7b44fb9 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -7696,7 +7696,7 @@ module ts { checkTypeAssignableTo(caseType, expressionType, clause.expression, /*headMessage*/ undefined); } } - checkBlock(clause); + forEach(clause.statements, checkSourceElement); }); } @@ -8562,7 +8562,10 @@ module ts { if (!(links.flags & NodeCheckFlags.TypeChecked)) { emitExtends = false; potentialThisCollisions.length = 0; - checkBody(node); + + forEach(node.statements, checkSourceElement); + checkFunctionExpressionBodies(node); + if (isExternalModule(node)) { var symbol = getExportAssignmentSymbol(node.symbol); if (symbol && symbol.flags & SymbolFlags.Import) { @@ -8570,11 +8573,16 @@ module ts { getSymbolLinks(symbol).referenced = true; } } + if (potentialThisCollisions.length) { forEach(potentialThisCollisions, checkIfThisIsCapturedInEnclosingScope); potentialThisCollisions.length = 0; } - if (emitExtends) links.flags |= NodeCheckFlags.EmitExtends; + + if (emitExtends) { + links.flags |= NodeCheckFlags.EmitExtends; + } + links.flags |= NodeCheckFlags.TypeChecked; } } diff --git a/src/compiler/emitter.ts b/src/compiler/emitter.ts index 55d5ffd2973..b81c16cad90 100644 --- a/src/compiler/emitter.ts +++ b/src/compiler/emitter.ts @@ -701,7 +701,7 @@ module ts { write(" {"); writeLine(); increaseIndent(); - emitLines((node.body).statements); + emitLines((node.body).statements); decreaseIndent(); write("}"); writeLine(); @@ -3264,7 +3264,7 @@ module ts { emit(node.body); decreaseIndent(); writeLine(); - var moduleBlock = getInnerMostModuleDeclarationFromDottedModule(node).body; + var moduleBlock = getInnerMostModuleDeclarationFromDottedModule(node).body; emitToken(SyntaxKind.CloseBraceToken, moduleBlock.statements.end); scopeEmitEnd(); } @@ -3410,7 +3410,7 @@ module ts { } } - function emitDirectivePrologues(statements: Statement[], startWithNewLine: boolean): number { + function emitDirectivePrologues(statements: Node[], startWithNewLine: boolean): number { for (var i = 0; i < statements.length; ++i) { if (isPrologueDirective(statements[i])) { if (startWithNewLine || i > 0) { diff --git a/src/compiler/parser.ts b/src/compiler/parser.ts index a1be014acc8..1c7f7035759 100644 --- a/src/compiler/parser.ts +++ b/src/compiler/parser.ts @@ -405,7 +405,7 @@ module ts { function traverse(node: Node): T { switch (node.kind) { case SyntaxKind.ReturnStatement: - return visitor(node); + return visitor(node); case SyntaxKind.Block: case SyntaxKind.FunctionBlock: case SyntaxKind.IfStatement: @@ -3591,8 +3591,8 @@ module ts { return finishNode(node); } - function parseFunctionDeclaration(fullStart: number, modifiers: ModifiersArray): FunctionLikeDeclaration { - var node = createNode(SyntaxKind.FunctionDeclaration, fullStart); + function parseFunctionDeclaration(fullStart: number, modifiers: ModifiersArray): FunctionDeclaration { + var node = createNode(SyntaxKind.FunctionDeclaration, fullStart); setModifiers(node, modifiers); parseExpected(SyntaxKind.FunctionKeyword); node.asteriskToken = parseOptionalToken(SyntaxKind.AsteriskToken); @@ -3857,8 +3857,8 @@ module ts { return finishNode(node); } - function parseModuleBody(): Block { - var node = createNode(SyntaxKind.ModuleBlock, scanner.getStartPos()); + function parseModuleBlock(): ModuleBlock { + var node = createNode(SyntaxKind.ModuleBlock, scanner.getStartPos()); if (parseExpected(SyntaxKind.OpenBraceToken)) { node.statements = parseList(ParsingContext.ModuleElements, /*checkForStrictMode*/ false, parseModuleElement); parseExpected(SyntaxKind.CloseBraceToken); @@ -3875,7 +3875,7 @@ module ts { node.name = parseIdentifier(); node.body = parseOptional(SyntaxKind.DotToken) ? parseInternalModuleTail(getNodePos(), NodeFlags.Export) - : parseModuleBody(); + : parseModuleBlock(); return finishNode(node); } @@ -3883,7 +3883,7 @@ module ts { var node = createNode(SyntaxKind.ModuleDeclaration, fullStart); node.flags = flags; node.name = parseStringLiteral(); - node.body = parseModuleBody(); + node.body = parseModuleBlock(); return finishNode(node); } @@ -3950,7 +3950,7 @@ module ts { } } - function parseDeclaration(): Statement { + function parseDeclaration(): ModuleElement { var fullStart = getNodePos(); var modifiers = parseModifiers(); if (token === SyntaxKind.ExportKeyword) { @@ -3961,7 +3961,7 @@ module ts { } var flags = modifiers ? modifiers.flags : 0; - var result: Declaration; + var result: ModuleElement; switch (token) { case SyntaxKind.VarKeyword: case SyntaxKind.LetKeyword: @@ -4020,7 +4020,7 @@ module ts { return parseSourceElementOrModuleElement(); } - function parseSourceElementOrModuleElement(): Statement { + function parseSourceElementOrModuleElement(): ModuleElement { return isDeclarationStart() ? parseDeclaration() : parseStatement(); @@ -4380,7 +4380,7 @@ module ts { } function checkBreakOrContinueStatement(node: BreakOrContinueStatement): boolean { - var current = node; + var current: Node = node; while (current) { if (isAnyFunction(current)) { return grammarErrorOnNode(node, Diagnostics.Jump_target_cannot_cross_function_boundary); @@ -4765,7 +4765,7 @@ module ts { function checkModuleDeclarationStatements(node: ModuleDeclaration): boolean { if (node.name.kind === SyntaxKind.Identifier && node.body.kind === SyntaxKind.ModuleBlock) { - var statements = (node.body).statements; + var statements = (node.body).statements; for (var i = 0, n = statements.length; i < n; i++) { var statement = statements[i]; diff --git a/src/compiler/types.ts b/src/compiler/types.ts index b559fee1af1..9a1b2095bc9 100644 --- a/src/compiler/types.ts +++ b/src/compiler/types.ts @@ -383,7 +383,7 @@ module ts { body?: Block | Expression; } - export interface FunctionDeclaration extends FunctionLikeDeclaration { + export interface FunctionDeclaration extends FunctionLikeDeclaration, Statement { name: Identifier; body?: Block; } @@ -574,7 +574,9 @@ module ts { expression: Expression; } - export interface Statement extends Node { } + export interface Statement extends Node, ModuleElement { + _statementBrand: any; + } export interface Block extends Statement { statements: NodeArray; @@ -662,7 +664,11 @@ module ts { type?: TypeNode; } - export interface ClassDeclaration extends Declaration { + export interface ModuleElement extends Node { + _moduleElementBrand: any; + } + + export interface ClassDeclaration extends Declaration, ModuleElement { name: Identifier; typeParameters?: NodeArray; baseType?: TypeReferenceNode; @@ -670,14 +676,14 @@ module ts { members: NodeArray; } - export interface InterfaceDeclaration extends Declaration { + export interface InterfaceDeclaration extends Declaration, ModuleElement { name: Identifier; typeParameters?: NodeArray; baseTypes?: NodeArray; members: NodeArray; } - export interface TypeAliasDeclaration extends Declaration { + export interface TypeAliasDeclaration extends Declaration, ModuleElement { name: Identifier; type: TypeNode; } @@ -689,23 +695,27 @@ module ts { initializer?: Expression; } - export interface EnumDeclaration extends Declaration { + export interface EnumDeclaration extends Declaration, ModuleElement { name: Identifier; members: NodeArray; } - export interface ModuleDeclaration extends Declaration { + export interface ModuleDeclaration extends Declaration, ModuleElement { name: Identifier | LiteralExpression; - body: Block | ModuleDeclaration; + body: ModuleBlock | ModuleDeclaration; } - export interface ImportDeclaration extends Declaration { + export interface ModuleBlock extends Node, ModuleElement { + statements: NodeArray + } + + export interface ImportDeclaration extends Declaration, ModuleElement { name: Identifier; entityName?: EntityName; externalModuleName?: LiteralExpression; } - export interface ExportAssignment extends Statement { + export interface ExportAssignment extends Statement, ModuleElement { exportName: Identifier; } @@ -717,7 +727,9 @@ module ts { hasTrailingNewLine?: boolean; } - export interface SourceFile extends Block { + export interface SourceFile extends Node { + statements: NodeArray; + filename: string; text: string; getLineAndCharacterFromPosition(position: number): LineAndCharacter; diff --git a/src/services/services.ts b/src/services/services.ts index 7ab9c6a41e9..33212de3988 100644 --- a/src/services/services.ts +++ b/src/services/services.ts @@ -3724,7 +3724,7 @@ module ts { function aggregate(node: Node): void { if (node.kind === SyntaxKind.BreakStatement || node.kind === SyntaxKind.ContinueStatement) { - statementAccumulator.push(node); + statementAccumulator.push(node); } // Do not cross function boundaries. else if (!isAnyFunction(node)) { From 0cdc8240792d41f5e900d87e4ada6ce2833c6fc0 Mon Sep 17 00:00:00 2001 From: Cyrus Najmabadi Date: Sun, 30 Nov 2014 14:21:34 -0800 Subject: [PATCH 131/195] Provide brands for Declarations. --- src/compiler/binder.ts | 16 ++++++++-------- src/compiler/checker.ts | 14 +++++++------- src/compiler/emitter.ts | 6 +++--- src/compiler/parser.ts | 14 +++++++------- src/compiler/types.ts | 18 ++++++++++-------- src/services/services.ts | 9 +++++---- 6 files changed, 40 insertions(+), 37 deletions(-) diff --git a/src/compiler/binder.ts b/src/compiler/binder.ts index 1502dbc8ead..a0fd0b243d6 100644 --- a/src/compiler/binder.ts +++ b/src/compiler/binder.ts @@ -66,9 +66,9 @@ module ts { export function bindSourceFile(file: SourceFile) { var parent: Node; - var container: Declaration; + var container: Node; var blockScopeContainer: Node; - var lastContainer: Declaration; + var lastContainer: Node; var symbolCount = 0; var Symbol = objectAllocator.getSymbolConstructor(); @@ -222,7 +222,7 @@ module ts { // All container nodes are kept on a linked list in declaration order. This list is used by the getLocalNameOfContainer function // in the type checker to validate that the local name used for a container is unique. - function bindChildren(node: Declaration, symbolKind: SymbolFlags, isBlockScopeContainer: boolean) { + function bindChildren(node: Node, symbolKind: SymbolFlags, isBlockScopeContainer: boolean) { if (symbolKind & SymbolFlags.HasLocals) { node.locals = {}; } @@ -341,7 +341,7 @@ module ts { typeLiteralSymbol.members[node.kind === SyntaxKind.FunctionType ? "__call" : "__new"] = symbol } - function bindAnonymousDeclaration(node: Node, symbolKind: SymbolFlags, name: string, isBlockScopeContainer: boolean) { + function bindAnonymousDeclaration(node: Declaration, symbolKind: SymbolFlags, name: string, isBlockScopeContainer: boolean) { var symbol = createSymbol(symbolKind, name); addDeclarationToSymbol(symbol, node, symbolKind); bindChildren(node, symbolKind, isBlockScopeContainer); @@ -434,14 +434,14 @@ module ts { break; case SyntaxKind.TypeLiteral: - bindAnonymousDeclaration(node, SymbolFlags.TypeLiteral, "__type", /*isBlockScopeContainer*/ false); + bindAnonymousDeclaration(node, SymbolFlags.TypeLiteral, "__type", /*isBlockScopeContainer*/ false); break; case SyntaxKind.ObjectLiteralExpression: - bindAnonymousDeclaration(node, SymbolFlags.ObjectLiteral, "__object", /*isBlockScopeContainer*/ false); + bindAnonymousDeclaration(node, SymbolFlags.ObjectLiteral, "__object", /*isBlockScopeContainer*/ false); break; case SyntaxKind.FunctionExpression: case SyntaxKind.ArrowFunction: - bindAnonymousDeclaration(node, SymbolFlags.Function, "__function", /*isBlockScopeContainer*/ true); + bindAnonymousDeclaration(node, SymbolFlags.Function, "__function", /*isBlockScopeContainer*/ true); break; case SyntaxKind.CatchBlock: bindCatchVariableDeclaration(node); @@ -471,7 +471,7 @@ module ts { break; case SyntaxKind.SourceFile: if (isExternalModule(node)) { - bindAnonymousDeclaration(node, SymbolFlags.ValueModule, '"' + removeFileExtension((node).filename) + '"', /*isBlockScopeContainer*/ true); + bindAnonymousDeclaration(node, SymbolFlags.ValueModule, '"' + removeFileExtension((node).filename) + '"', /*isBlockScopeContainer*/ true); break; } diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index 2d9f7b44fb9..52014289ad1 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -935,7 +935,7 @@ module ts { return { accessibility: SymbolAccessibility.Accessible }; - function getExternalModuleContainer(declaration: Declaration) { + function getExternalModuleContainer(declaration: Node) { for (; declaration; declaration = declaration.parent) { if (hasExternalModuleSymbol(declaration)) { return getSymbolOfNode(declaration); @@ -944,8 +944,8 @@ module ts { } } - function hasExternalModuleSymbol(declaration: Declaration) { - return (declaration.kind === SyntaxKind.ModuleDeclaration && declaration.name.kind === SyntaxKind.StringLiteral) || + function hasExternalModuleSymbol(declaration: Node) { + return (declaration.kind === SyntaxKind.ModuleDeclaration && (declaration).name.kind === SyntaxKind.StringLiteral) || (declaration.kind === SyntaxKind.SourceFile && isExternalModule(declaration)); } @@ -962,7 +962,7 @@ module ts { // because these kind of aliases can be used to name types in declaration file if (declaration.kind === SyntaxKind.ImportDeclaration && !(declaration.flags & NodeFlags.Export) && - isDeclarationVisible(declaration.parent)) { + isDeclarationVisible(declaration.parent)) { getNodeLinks(declaration).isVisible = true; if (aliasesToMakeVisible) { if (!contains(aliasesToMakeVisible, declaration)) { @@ -1575,7 +1575,7 @@ module ts { } // Container of resolvedExportSymbol is visible - return forEach(resolvedExportSymbol.declarations, declaration => { + return forEach(resolvedExportSymbol.declarations, (declaration: Node) => { while (declaration) { if (declaration === node) { return true; @@ -1605,7 +1605,7 @@ module ts { return isGlobalSourceFile(parent) || isUsedInExportAssignment(node); } // Exported members/ambient module elements (exception import declaration) are visible if parent is visible - return isDeclarationVisible(parent); + return isDeclarationVisible(parent); case SyntaxKind.Property: case SyntaxKind.Method: @@ -1622,7 +1622,7 @@ module ts { case SyntaxKind.Parameter: case SyntaxKind.ModuleBlock: case SyntaxKind.TypeParameter: - return isDeclarationVisible(node.parent); + return isDeclarationVisible(node.parent); // Source file is always visible case SyntaxKind.SourceFile: diff --git a/src/compiler/emitter.ts b/src/compiler/emitter.ts index b81c16cad90..9d9852d8bda 100644 --- a/src/compiler/emitter.ts +++ b/src/compiler/emitter.ts @@ -357,7 +357,7 @@ module ts { var currentSourceFile: SourceFile; var reportedDeclarationError = false; - var emitJsDocComments = compilerOptions.removeComments ? function (declaration: Declaration) { } : writeJsDocComments; + var emitJsDocComments = compilerOptions.removeComments ? function (declaration: Node) { } : writeJsDocComments; var aliasDeclarationEmitInfo: AliasDeclarationEmitInfo[] = []; @@ -485,7 +485,7 @@ module ts { emitSeparatedList(nodes, ", ", eachNodeEmitFn); } - function writeJsDocComments(declaration: Declaration) { + function writeJsDocComments(declaration: Node) { if (declaration) { var jsDocComments = getJsDocComments(declaration, currentSourceFile); emitNewLineBeforeLeadingComments(currentSourceFile, writer, declaration, jsDocComments); @@ -615,7 +615,7 @@ module ts { writeLine(); } - function emitModuleElementDeclarationFlags(node: Declaration) { + function emitModuleElementDeclarationFlags(node: Node) { // If the node is parented in the current source file we need to emit export declare or just export if (node.parent === currentSourceFile) { // If the node is exported diff --git a/src/compiler/parser.ts b/src/compiler/parser.ts index 1c7f7035759..211ac1e7470 100644 --- a/src/compiler/parser.ts +++ b/src/compiler/parser.ts @@ -126,15 +126,15 @@ module ts { return (file.flags & NodeFlags.DeclarationFile) !== 0; } - export function isConstEnumDeclaration(node: Declaration): boolean { + export function isConstEnumDeclaration(node: Node): boolean { return node.kind === SyntaxKind.EnumDeclaration && isConst(node); } - export function isConst(node: Declaration): boolean { + export function isConst(node: Node): boolean { return !!(node.flags & NodeFlags.Const); } - export function isLet(node: Declaration): boolean { + export function isLet(node: Node): boolean { return !!(node.flags & NodeFlags.Let); } @@ -171,8 +171,8 @@ module ts { } } - export function getJsDocComments(node: Declaration, sourceFileOfNode: SourceFile) { - return filter(getLeadingCommentRangesOfNode(node, sourceFileOfNode), comment => isJsDocComment(comment)); + export function getJsDocComments(node: Node, sourceFileOfNode: SourceFile) { + return filter(getLeadingCommentRangesOfNode(node, sourceFileOfNode), isJsDocComment); function isJsDocComment(comment: CommentRange) { // True if the comment starts with '/**' but not if it is '/**/' @@ -1988,7 +1988,7 @@ module ts { parseExpected(SyntaxKind.CloseBraceToken); } else { - members = createMissingList(); + members = createMissingList(); } return members; @@ -3084,7 +3084,7 @@ module ts { return finishNode(node); } - function parseObjectLiteralMember(): Node { + function parseObjectLiteralMember(): Declaration { var initialPos = getNodePos(); var initialToken = token; if (parseContextualModifier(SyntaxKind.GetKeyword) || parseContextualModifier(SyntaxKind.SetKeyword)) { diff --git a/src/compiler/types.ts b/src/compiler/types.ts index 9a1b2095bc9..093e27f32e7 100644 --- a/src/compiler/types.ts +++ b/src/compiler/types.ts @@ -336,6 +336,7 @@ module ts { export type DeclarationName = Identifier | LiteralExpression | ComputedPropertyName; export interface Declaration extends Node { + _declarationBrand: any; name?: DeclarationName; } @@ -392,7 +393,7 @@ module ts { body?: Block; } - export interface ConstructorDeclaration extends Node, ParsedSignature { + export interface ConstructorDeclaration extends Declaration, ParsedSignature { body?: Block; } @@ -411,7 +412,7 @@ module ts { exprName: EntityName; } - export interface TypeLiteralNode extends TypeNode { + export interface TypeLiteralNode extends TypeNode, Declaration { members: NodeArray; } @@ -538,8 +539,8 @@ module ts { elements: NodeArray; } - export interface ObjectLiteralExpression extends PrimaryExpression { - properties: NodeArray; + export interface ObjectLiteralExpression extends PrimaryExpression, Declaration { + properties: NodeArray; } export interface PropertyAccessExpression extends MemberExpression { @@ -659,7 +660,7 @@ module ts { finallyBlock?: Block; } - export interface CatchBlock extends Block { + export interface CatchBlock extends Block, Declaration { variable: Identifier; type?: TypeNode; } @@ -673,14 +674,14 @@ module ts { typeParameters?: NodeArray; baseType?: TypeReferenceNode; implementedTypes?: NodeArray; - members: NodeArray; + members: NodeArray; } export interface InterfaceDeclaration extends Declaration, ModuleElement { name: Identifier; typeParameters?: NodeArray; baseTypes?: NodeArray; - members: NodeArray; + members: NodeArray; } export interface TypeAliasDeclaration extends Declaration, ModuleElement { @@ -727,7 +728,8 @@ module ts { hasTrailingNewLine?: boolean; } - export interface SourceFile extends Node { + // Source files are declarations when they are external modules. + export interface SourceFile extends Declaration { statements: NodeArray; filename: string; diff --git a/src/services/services.ts b/src/services/services.ts index 33212de3988..6386a472600 100644 --- a/src/services/services.ts +++ b/src/services/services.ts @@ -349,7 +349,7 @@ module ts { // If this is dotted module name, get the doc comments from the parent while (declaration.kind === SyntaxKind.ModuleDeclaration && declaration.parent.kind === SyntaxKind.ModuleDeclaration) { - declaration = declaration.parent; + declaration = declaration.parent; } // Get the cleaned js doc comment text from the declaration @@ -712,6 +712,7 @@ module ts { } class SourceFileObject extends NodeObject implements SourceFile { + public _declarationBrand: any; public filename: string; public text: string; @@ -771,7 +772,7 @@ module ts { } } else { - namedDeclarations.push(node); + namedDeclarations.push(functionDeclaration); } forEachChild(node, visit); @@ -3798,7 +3799,7 @@ module ts { } } - function getModifierOccurrences(modifier: SyntaxKind, declaration: Declaration) { + function getModifierOccurrences(modifier: SyntaxKind, declaration: Node) { var container = declaration.parent; // Make sure we only highlight the keyword when it makes sense to do so. @@ -4739,7 +4740,7 @@ module ts { return emitOutput; } - function getMeaningFromDeclaration(node: Declaration): SemanticMeaning { + function getMeaningFromDeclaration(node: Node): SemanticMeaning { switch (node.kind) { case SyntaxKind.Parameter: case SyntaxKind.VariableDeclaration: From 5f153553723001fcf865d636c93c3963278425c9 Mon Sep 17 00:00:00 2001 From: Cyrus Najmabadi Date: Sun, 30 Nov 2014 14:28:32 -0800 Subject: [PATCH 132/195] Use brands for Class Elements. --- src/compiler/emitter.ts | 2 +- src/compiler/parser.ts | 8 ++++---- src/compiler/types.ts | 15 ++++++++++----- 3 files changed, 15 insertions(+), 10 deletions(-) diff --git a/src/compiler/emitter.ts b/src/compiler/emitter.ts index 9d9852d8bda..e53cf510261 100644 --- a/src/compiler/emitter.ts +++ b/src/compiler/emitter.ts @@ -927,7 +927,7 @@ module ts { } } - function emitPropertyDeclaration(node: PropertyDeclaration) { + function emitPropertyDeclaration(node: Declaration) { emitJsDocComments(node); emitClassMemberDeclarationFlags(node); emitVariableDeclaration(node); diff --git a/src/compiler/parser.ts b/src/compiler/parser.ts index 211ac1e7470..37ca5e3e5aa 100644 --- a/src/compiler/parser.ts +++ b/src/compiler/parser.ts @@ -3611,7 +3611,7 @@ module ts { return finishNode(node); } - function parsePropertyMemberDeclaration(fullStart: number, modifiers: ModifiersArray): Declaration { + function parsePropertyMemberDeclaration(fullStart: number, modifiers: ModifiersArray): ClassElement { var flags = modifiers ? modifiers.flags : 0; var asteriskToken = parseOptionalToken(SyntaxKind.AsteriskToken); var name = parsePropertyName(); @@ -3733,7 +3733,7 @@ module ts { return modifiers; } - function parseClassMemberDeclaration(): Declaration { + function parseClassElement(): ClassElement { var fullStart = getNodePos(); var modifiers = parseModifiers(); if (parseContextualModifier(SyntaxKind.GetKeyword)) { @@ -3790,13 +3790,13 @@ module ts { parseExpected(SyntaxKind.CloseBraceToken); } else { - node.members = createMissingList(); + node.members = createMissingList(); } return finishNode(node); } function parseClassMembers() { - return parseList(ParsingContext.ClassMembers, /*checkForStrictMode*/ false, parseClassMemberDeclaration); + return parseList(ParsingContext.ClassMembers, /*checkForStrictMode*/ false, parseClassElement); } function parseClassBaseType(): TypeReferenceNode { diff --git a/src/compiler/types.ts b/src/compiler/types.ts index 093e27f32e7..2079afbca79 100644 --- a/src/compiler/types.ts +++ b/src/compiler/types.ts @@ -352,7 +352,8 @@ module ts { expression?: Expression; } - export interface SignatureDeclaration extends Declaration, ParsedSignature { } + export interface SignatureDeclaration extends Declaration, ParsedSignature, ClassElement { + } export interface VariableDeclaration extends Declaration { name: Identifier; @@ -360,7 +361,7 @@ module ts { initializer?: Expression; } - export interface PropertyDeclaration extends Declaration { + export interface PropertyDeclaration extends Declaration, ClassElement { type?: TypeNode; initializer?: Expression; } @@ -389,11 +390,11 @@ module ts { body?: Block; } - export interface MethodDeclaration extends FunctionLikeDeclaration { + export interface MethodDeclaration extends FunctionLikeDeclaration, ClassElement { body?: Block; } - export interface ConstructorDeclaration extends Declaration, ParsedSignature { + export interface ConstructorDeclaration extends Declaration, ParsedSignature, ClassElement { body?: Block; } @@ -674,7 +675,11 @@ module ts { typeParameters?: NodeArray; baseType?: TypeReferenceNode; implementedTypes?: NodeArray; - members: NodeArray; + members: NodeArray; + } + + export interface ClassElement extends Declaration { + _classElementBrand: any; } export interface InterfaceDeclaration extends Declaration, ModuleElement { From 16e28156e5567c1a20e53adf841c4ace20551821 Mon Sep 17 00:00:00 2001 From: Cyrus Najmabadi Date: Sun, 30 Nov 2014 15:38:45 -0800 Subject: [PATCH 133/195] Support arbitrary numbers of implements and extends clauses (with arbitrary numbers of types) for classes and interfaces. This vastly improves our error tolerance and messages for when the user writes an illegal heritage clause sequence. --- src/compiler/checker.ts | 36 ++-- .../diagnosticInformationMap.generated.ts | 5 + src/compiler/diagnosticMessages.json | 20 ++ src/compiler/emitter.ts | 38 ++-- src/compiler/parser.ts | 172 +++++++++++++++--- src/compiler/types.ts | 16 +- src/services/services.ts | 6 +- .../classExtendingPrimitive.errors.txt | 8 +- .../classExtendingPrimitive2.errors.txt | 8 +- .../classExtendsEveryObjectType.errors.txt | 9 +- .../classExtendsEveryObjectType2.errors.txt | 9 +- ...classExtendsMultipleBaseClasses.errors.txt | 11 +- ...ssHeritageWithTrailingSeparator.errors.txt | 4 +- .../extendsClauseAlreadySeen.errors.txt | 15 +- .../extendsClauseAlreadySeen2.errors.txt | 16 +- ...implementClausePrecedingExtends.errors.txt | 14 +- .../implementsClauseAlreadySeen.errors.txt | 21 +-- ...interfaceThatInheritsFromItself.errors.txt | 18 +- .../interfaceWithImplements1.errors.txt | 18 +- .../reference/multipleInheritance.errors.txt | 20 +- .../parserClassDeclaration1.errors.txt | 12 +- .../parserClassDeclaration2.errors.txt | 18 +- .../parserClassDeclaration3.errors.txt | 9 +- .../parserClassDeclaration4.errors.txt | 9 +- .../parserClassDeclaration5.errors.txt | 15 +- .../parserClassDeclaration6.errors.txt | 14 +- ...very_ExtendsOrImplementsClause1.errors.txt | 6 +- ...very_ExtendsOrImplementsClause2.errors.txt | 4 +- ...very_ExtendsOrImplementsClause3.errors.txt | 14 +- ...very_ExtendsOrImplementsClause5.errors.txt | 15 +- .../parserInterfaceDeclaration1.errors.txt | 12 +- .../parserInterfaceDeclaration2.errors.txt | 18 +- .../thisInInvalidContexts.errors.txt | 4 +- ...InInvalidContextsExternalModule.errors.txt | 4 +- .../completionListInExtendsClause.ts | 3 +- 35 files changed, 316 insertions(+), 305 deletions(-) diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index 52014289ad1..ef234ac6c4b 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -1937,8 +1937,9 @@ module ts { } type.baseTypes = []; var declaration = getDeclarationOfKind(symbol, SyntaxKind.ClassDeclaration); - if (declaration.baseType) { - var baseType = getTypeFromTypeReferenceNode(declaration.baseType); + var baseTypeNode = getClassBaseTypeNode(declaration); + if (baseTypeNode) { + var baseType = getTypeFromTypeReferenceNode(baseTypeNode); if (baseType !== unknownType) { if (getTargetType(baseType).flags & TypeFlags.Class) { if (type !== baseType && !hasBaseType(baseType, type)) { @@ -1949,7 +1950,7 @@ module ts { } } else { - error(declaration.baseType, Diagnostics.A_class_may_only_extend_another_class); + error(baseTypeNode, Diagnostics.A_class_may_only_extend_another_class); } } } @@ -1977,8 +1978,8 @@ module ts { } type.baseTypes = []; forEach(symbol.declarations, declaration => { - if (declaration.kind === SyntaxKind.InterfaceDeclaration && (declaration).baseTypes) { - forEach((declaration).baseTypes, node => { + if (declaration.kind === SyntaxKind.InterfaceDeclaration && getInterfaceBaseTypeNodes(declaration)) { + forEach(getInterfaceBaseTypeNodes(declaration), node => { var baseType = getTypeFromTypeReferenceNode(node); if (baseType !== unknownType) { if (getTargetType(baseType).flags & (TypeFlags.Class | TypeFlags.Interface)) { @@ -4628,7 +4629,7 @@ module ts { var isCallExpression = node.parent.kind === SyntaxKind.CallExpression && (node.parent).expression === node; var enclosingClass = getAncestor(node, SyntaxKind.ClassDeclaration); var baseClass: Type; - if (enclosingClass && enclosingClass.baseType) { + if (enclosingClass && getClassBaseTypeNode(enclosingClass)) { var classType = getDeclaredTypeOfSymbol(getSymbolOfNode(enclosingClass)); baseClass = classType.baseTypes.length && classType.baseTypes[0]; } @@ -6812,7 +6813,7 @@ module ts { // TS 1.0 spec (April 2014): 8.3.2 // Constructors of classes with no extends clause may not contain super calls, whereas // constructors of derived classes must contain at least one super call somewhere in their function body. - if ((node.parent).baseType) { + if (getClassBaseTypeNode(node.parent)) { if (containsSuperCall(node.body)) { // The first statement in the body of a constructor must be a super call if both of the following are true: @@ -7456,7 +7457,7 @@ module ts { return; } - if (enclosingClass.baseType) { + if (getClassBaseTypeNode(enclosingClass)) { var isDeclaration = node.kind !== SyntaxKind.Identifier; if (isDeclaration) { error(node, Diagnostics.Duplicate_identifier_super_Compiler_uses_super_to_capture_base_class_reference); @@ -7824,9 +7825,10 @@ module ts { var symbol = getSymbolOfNode(node); var type = getDeclaredTypeOfSymbol(symbol); var staticType = getTypeOfSymbol(symbol); - if (node.baseType) { + var baseTypeNode = getClassBaseTypeNode(node); + if (baseTypeNode) { emitExtends = emitExtends || !isInAmbientContext(node); - checkTypeReference(node.baseType); + checkTypeReference(baseTypeNode); } if (type.baseTypes.length) { if (fullTypeCheck) { @@ -7835,18 +7837,20 @@ module ts { var staticBaseType = getTypeOfSymbol(baseType.symbol); checkTypeAssignableTo(staticType, getTypeWithoutConstructors(staticBaseType), node.name, Diagnostics.Class_static_side_0_incorrectly_extends_base_class_static_side_1); - if (baseType.symbol !== resolveEntityName(node, node.baseType.typeName, SymbolFlags.Value)) { - error(node.baseType, Diagnostics.Type_name_0_in_extends_clause_does_not_reference_constructor_function_for_0, typeToString(baseType)); + if (baseType.symbol !== resolveEntityName(node, baseTypeNode.typeName, SymbolFlags.Value)) { + error(baseTypeNode, Diagnostics.Type_name_0_in_extends_clause_does_not_reference_constructor_function_for_0, typeToString(baseType)); } checkKindsOfPropertyMemberOverrides(type, baseType); } // Check that base type can be evaluated as expression - checkExpression(node.baseType.typeName); + checkExpression(baseTypeNode.typeName); } - if (node.implementedTypes) { - forEach(node.implementedTypes, typeRefNode => { + + var implementedTypeNodes = getClassImplementedTypeNodes(node); + if (implementedTypeNodes) { + forEach(implementedTypeNodes, typeRefNode => { checkTypeReference(typeRefNode); if (fullTypeCheck) { var t = getTypeFromTypeReferenceNode(typeRefNode); @@ -8041,7 +8045,7 @@ module ts { } } } - forEach(node.baseTypes, checkTypeReference); + forEach(getInterfaceBaseTypeNodes(node), checkTypeReference); forEach(node.members, checkSourceElement); if (fullTypeCheck) { diff --git a/src/compiler/diagnosticInformationMap.generated.ts b/src/compiler/diagnosticInformationMap.generated.ts index 4b4909a54f3..c17cf94e8c0 100644 --- a/src/compiler/diagnosticInformationMap.generated.ts +++ b/src/compiler/diagnosticInformationMap.generated.ts @@ -134,6 +134,11 @@ module ts { Computed_property_names_are_not_allowed_in_interfaces: { code: 1169, category: DiagnosticCategory.Error, key: "Computed property names are not allowed in interfaces." }, Computed_property_names_are_not_allowed_in_type_literals: { code: 1170, category: DiagnosticCategory.Error, key: "Computed property names are not allowed in type literals." }, A_comma_expression_is_not_allowed_in_a_computed_property_name: { code: 1171, category: DiagnosticCategory.Error, key: "A comma expression is not allowed in a computed property name." }, + extends_clause_already_seen: { code: 1172, category: DiagnosticCategory.Error, key: "'extends' clause already seen." }, + extends_clause_must_precede_implements_clause: { code: 1173, category: DiagnosticCategory.Error, key: "'extends' clause must precede 'implements' clause." }, + Classes_can_only_extend_a_single_class: { code: 1174, category: DiagnosticCategory.Error, key: "Classes can only extend a single class." }, + implements_clause_already_seen: { code: 1175, category: DiagnosticCategory.Error, key: "'implements' clause already seen." }, + Interface_declaration_cannot_have_implements_clause: { code: 1176, category: DiagnosticCategory.Error, key: "Interface declaration cannot have 'implements' clause." }, Duplicate_identifier_0: { code: 2300, category: DiagnosticCategory.Error, key: "Duplicate identifier '{0}'." }, Initializer_of_instance_member_variable_0_cannot_reference_identifier_1_declared_in_the_constructor: { code: 2301, category: 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: DiagnosticCategory.Error, key: "Static members cannot reference class type parameters." }, diff --git a/src/compiler/diagnosticMessages.json b/src/compiler/diagnosticMessages.json index c05d612b534..3d5be6d566a 100644 --- a/src/compiler/diagnosticMessages.json +++ b/src/compiler/diagnosticMessages.json @@ -527,6 +527,26 @@ "category": "Error", "code": 1171 }, + "'extends' clause already seen.": { + "category": "Error", + "code": 1172 + }, + "'extends' clause must precede 'implements' clause.": { + "category": "Error", + "code": 1173 + }, + "Classes can only extend a single class.": { + "category": "Error", + "code": 1174 + }, + "'implements' clause already seen.": { + "category": "Error", + "code": 1175 + }, + "Interface declaration cannot have 'implements' clause.": { + "category": "Error", + "code": 1176 + }, "Duplicate identifier '{0}'.": { "category": "Error", diff --git a/src/compiler/emitter.ts b/src/compiler/emitter.ts index e53cf510261..b79d25ef964 100644 --- a/src/compiler/emitter.ts +++ b/src/compiler/emitter.ts @@ -851,11 +851,11 @@ module ts { function getHeritageClauseVisibilityError(symbolAccesibilityResult: SymbolAccessiblityResult): SymbolAccessibilityDiagnostic { var diagnosticMessage: DiagnosticMessage; // Heritage clause is written by user so it can always be named - if (node.parent.kind === SyntaxKind.ClassDeclaration) { + if (node.parent.parent.kind === SyntaxKind.ClassDeclaration) { // Class or Interface implemented/extended is inaccessible diagnosticMessage = isImplementsList ? - Diagnostics.Implements_clause_of_exported_class_0_has_or_is_using_private_name_1 : - Diagnostics.Extends_clause_of_exported_class_0_has_or_is_using_private_name_1; + Diagnostics.Implements_clause_of_exported_class_0_has_or_is_using_private_name_1 : + Diagnostics.Extends_clause_of_exported_class_0_has_or_is_using_private_name_1; } else { // interface is inaccessible @@ -865,7 +865,7 @@ module ts { return { diagnosticMessage, errorNode: node, - typeName: (node.parent).name + typeName: (node.parent.parent).name }; } } @@ -890,10 +890,11 @@ module ts { var prevEnclosingDeclaration = enclosingDeclaration; enclosingDeclaration = node; emitTypeParameters(node.typeParameters); - if (node.baseType) { - emitHeritageClause([node.baseType], /*isImplementsList*/ false); + var baseTypeNode = getClassBaseTypeNode(node); + if (baseTypeNode) { + emitHeritageClause([baseTypeNode], /*isImplementsList*/ false); } - emitHeritageClause(node.implementedTypes, /*isImplementsList*/ true); + emitHeritageClause(getClassImplementedTypeNodes(node), /*isImplementsList*/ true); write(" {"); writeLine(); increaseIndent(); @@ -915,7 +916,7 @@ module ts { var prevEnclosingDeclaration = enclosingDeclaration; enclosingDeclaration = node; emitTypeParameters(node.typeParameters); - emitHeritageClause(node.baseTypes, /*isImplementsList*/ false); + emitHeritageClause(getInterfaceBaseTypeNodes(node), /*isImplementsList*/ false); write(" {"); writeLine(); increaseIndent(); @@ -3039,19 +3040,20 @@ module ts { write("var "); emit(node.name); write(" = (function ("); - if (node.baseType) { + var baseTypeNode = getClassBaseTypeNode(node); + if (baseTypeNode) { write("_super"); } write(") {"); increaseIndent(); scopeEmitStart(node); - if (node.baseType) { + if (baseTypeNode) { writeLine(); - emitStart(node.baseType); + emitStart(baseTypeNode); write("__extends("); emit(node.name); write(", _super);"); - emitEnd(node.baseType); + emitEnd(baseTypeNode); } writeLine(); emitConstructorOfClass(); @@ -3070,8 +3072,8 @@ module ts { scopeEmitEnd(); emitStart(node); write(")("); - if (node.baseType) { - emit(node.baseType.typeName); + if (baseTypeNode) { + emit(baseTypeNode.typeName); } write(");"); emitEnd(node); @@ -3112,7 +3114,7 @@ module ts { if (ctor) { emitDefaultValueAssignments(ctor); emitRestParameter(ctor); - if (node.baseType) { + if (baseTypeNode) { var superCall = findInitialSuperCall(ctor); if (superCall) { writeLine(); @@ -3122,11 +3124,11 @@ module ts { emitParameterPropertyAssignments(ctor); } else { - if (node.baseType) { + if (baseTypeNode) { writeLine(); - emitStart(node.baseType); + emitStart(baseTypeNode); write("_super.apply(this, arguments);"); - emitEnd(node.baseType); + emitEnd(baseTypeNode); } } emitMemberAssignments(node, /*nonstatic*/0); diff --git a/src/compiler/parser.ts b/src/compiler/parser.ts index 37ca5e3e5aa..01854d9e1dd 100644 --- a/src/compiler/parser.ts +++ b/src/compiler/parser.ts @@ -361,13 +361,12 @@ module ts { case SyntaxKind.ClassDeclaration: return child((node).name) || children((node).typeParameters) || - child((node).baseType) || - children((node).implementedTypes) || + children((node).heritageClauses) || children((node).members); case SyntaxKind.InterfaceDeclaration: return child((node).name) || - children((node).typeParameters) || - children((node).baseTypes) || + children((node).typeParameters) || + children((node).heritageClauses) || children((node).members); case SyntaxKind.TypeAliasDeclaration: return child((node).name) || @@ -393,6 +392,8 @@ module ts { return child((node).expression) || child((node).literal); case SyntaxKind.ComputedPropertyName: return child((node).expression); + case SyntaxKind.HeritageClause: + return children((node).types); } } @@ -681,6 +682,33 @@ module ts { return false; } + export function getClassBaseTypeNode(node: ClassDeclaration) { + var heritageClause = getHeritageClause(node.heritageClauses, SyntaxKind.ExtendsKeyword); + return heritageClause && heritageClause.types.length > 0 ? heritageClause.types[0] : undefined; + } + + export function getClassImplementedTypeNodes(node: ClassDeclaration) { + var heritageClause = getHeritageClause(node.heritageClauses, SyntaxKind.ImplementsKeyword); + return heritageClause ? heritageClause.types : undefined; + } + + export function getInterfaceBaseTypeNodes(node: InterfaceDeclaration) { + var heritageClause = getHeritageClause(node.heritageClauses, SyntaxKind.ExtendsKeyword); + return heritageClause ? heritageClause.types : undefined; + } + + export function getHeritageClause(clauses: NodeArray, kind: SyntaxKind) { + if (clauses) { + for (var i = 0, n = clauses.length; i < n; i++) { + if (clauses[i].token === kind) { + return clauses[i]; + } + } + } + + return undefined; + } + export function tryResolveScriptReference(program: Program, sourceFile: SourceFile, reference: FileReference) { if (!program.getCompilerOptions().noResolve) { var referenceFileName = isRootedDiskPath(reference.filename) ? reference.filename : combinePaths(getDirectoryPath(sourceFile.filename), reference.filename); @@ -741,6 +769,7 @@ module ts { TypeParameters, // Type parameters in type parameter list TypeArguments, // Type arguments in type argument list TupleElementTypes, // Element types in tuple element type list + HeritageClauses, // Heritage clauses for a class or interface declaration. Count // Number of parsing contexts } @@ -1362,6 +1391,8 @@ module ts { case ParsingContext.TypeArguments: case ParsingContext.TupleElementTypes: return token === SyntaxKind.CommaToken || isStartOfType(); + case ParsingContext.HeritageClauses: + return isHeritageClause(); } Debug.fail("Non-exhaustive case in 'isListElement'."); @@ -1404,6 +1435,9 @@ module ts { case ParsingContext.TypeArguments: // Tokens other than '>' are here for better error recovery return token === SyntaxKind.GreaterThanToken || token === SyntaxKind.OpenParenToken; + case ParsingContext.HeritageClauses: + return token === SyntaxKind.OpenBraceToken || token === SyntaxKind.CloseBraceToken; + } } @@ -3765,20 +3799,8 @@ module ts { parseExpected(SyntaxKind.ClassKeyword); node.name = parseIdentifier(); node.typeParameters = parseTypeParameters(); + node.heritageClauses = parseHeritageClauses(/*isClassHeritageClause:*/ true); - // TODO(jfreeman): Parse arbitrary sequence of heritage clauses and error for order and duplicates - - // ClassTail[Yield,GeneratorParameter] : See 14.5 - // [~GeneratorParameter]ClassHeritage[?Yield]opt { ClassBody[?Yield]opt } - // [+GeneratorParameter] ClassHeritageopt { ClassBodyopt } - - node.baseType = inGeneratorParameterContext() - ? doOutsideOfYieldContext(parseClassBaseType) - : parseClassBaseType(); - - if (parseOptional(SyntaxKind.ImplementsKeyword)) { - node.implementedTypes = parseDelimitedList(ParsingContext.BaseTypeReferences, parseTypeReference); - } if (parseExpected(SyntaxKind.OpenBraceToken)) { // ClassTail[Yield,GeneratorParameter] : See 14.5 // [~GeneratorParameter]ClassHeritage[?Yield]opt { ClassBody[?Yield]opt } @@ -3795,6 +3817,40 @@ module ts { return finishNode(node); } + function parseHeritageClauses(isClassHeritageClause: boolean): NodeArray { + // 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(ParsingContext.HeritageClauses, /*checkForStrictMode:*/ false, parseHeritageClause); + } + + function parseHeritageClause() { + if (token === SyntaxKind.ExtendsKeyword || token === SyntaxKind.ImplementsKeyword) { + var node = createNode(SyntaxKind.HeritageClause); + node.token = token; + nextToken(); + node.types = parseDelimitedList(ParsingContext.BaseTypeReferences, parseTypeReference); + return finishNode(node); + } + + return undefined; + } + + function isHeritageClause(): boolean { + return token === SyntaxKind.ExtendsKeyword || token === SyntaxKind.ImplementsKeyword; + } + function parseClassMembers() { return parseList(ParsingContext.ClassMembers, /*checkForStrictMode*/ false, parseClassElement); } @@ -3809,10 +3865,7 @@ module ts { parseExpected(SyntaxKind.InterfaceKeyword); node.name = parseIdentifier(); node.typeParameters = parseTypeParameters(); - // TODO(jfreeman): Parse arbitrary sequence of heritage clauses and error for order and duplicates - if (parseOptional(SyntaxKind.ExtendsKeyword)) { - node.baseTypes = parseDelimitedList(ParsingContext.BaseTypeReferences, parseTypeReference); - } + node.heritageClauses = parseHeritageClauses(/*isClassHeritageClause:*/ false); node.members = parseObjectType(); return finishNode(node); } @@ -4247,13 +4300,14 @@ module ts { case SyntaxKind.ComputedPropertyName: return checkComputedPropertyName(node); case SyntaxKind.Constructor: return checkConstructor(node); case SyntaxKind.DeleteExpression: return checkDeleteExpression( node); + case SyntaxKind.ElementAccessExpression: return checkElementAccessExpression(node); case SyntaxKind.ExportAssignment: return checkExportAssignment(node); case SyntaxKind.ForInStatement: return checkForInStatement(node); case SyntaxKind.ForStatement: return checkForStatement(node); case SyntaxKind.FunctionDeclaration: return checkFunctionDeclaration(node); case SyntaxKind.FunctionExpression: return checkFunctionExpression(node); case SyntaxKind.GetAccessor: return checkGetAccessor(node); - case SyntaxKind.ElementAccessExpression: return checkElementAccessExpression(node); + case SyntaxKind.HeritageClause: return checkHeritageClause(node); case SyntaxKind.IndexSignature: return checkIndexSignature(node); case SyntaxKind.InterfaceDeclaration: return checkInterfaceDeclaration(node); case SyntaxKind.LabeledStatement: return checkLabeledStatement(node); @@ -4500,8 +4554,45 @@ module ts { } function checkClassDeclaration(node: ClassDeclaration) { - return checkForDisallowedTrailingComma(node.implementedTypes) || - checkForAtLeastOneHeritageClause(node.implementedTypes, "implements"); + return checkClassDeclarationHeritageClauses(node); + } + + function checkClassDeclarationHeritageClauses(node: ClassDeclaration): boolean { + var seenExtendsClause = false; + var seenImplementsClause = false; + + if (node.heritageClauses) { + for (var i = 0, n = node.heritageClauses.length; i < n; i++) { + Debug.assert(i <= 2); + var heritageClause = node.heritageClauses[i]; + + if (heritageClause.token === SyntaxKind.ExtendsKeyword) { + if (seenExtendsClause) { + return grammarErrorOnFirstToken(heritageClause, Diagnostics.extends_clause_already_seen); + } + + if (seenImplementsClause) { + return grammarErrorOnFirstToken(heritageClause, Diagnostics.extends_clause_must_precede_implements_clause); + } + + if (heritageClause.types.length > 1) { + return grammarErrorOnFirstToken(heritageClause.types[1], Diagnostics.Classes_can_only_extend_a_single_class); + } + + seenExtendsClause = true; + } + else { + Debug.assert(heritageClause.token === SyntaxKind.ImplementsKeyword); + if (seenImplementsClause) { + return grammarErrorOnFirstToken(heritageClause, Diagnostics.implements_clause_already_seen); + } + + seenImplementsClause = true; + } + } + } + + return false; } function checkForAtLeastOneHeritageClause(types: NodeArray, listType: string): boolean { @@ -4664,6 +4755,11 @@ module ts { } } + function checkHeritageClause(node: HeritageClause): boolean { + return checkForDisallowedTrailingComma(node.types) || + checkForAtLeastOneHeritageClause(node.types, tokenToString(node.token)); + } + function checkIndexSignature(node: SignatureDeclaration): boolean { return checkIndexSignatureParameters(node) || checkForIndexSignatureModifiers(node); @@ -4709,8 +4805,32 @@ module ts { } function checkInterfaceDeclaration(node: InterfaceDeclaration) { - return checkForDisallowedTrailingComma(node.baseTypes) || - checkForAtLeastOneHeritageClause(node.baseTypes, "extends"); + return checkInterfaceDeclarationHeritageClauses(node); + } + + function checkInterfaceDeclarationHeritageClauses(node: InterfaceDeclaration): boolean { + var seenExtendsClause = false; + + if (node.heritageClauses) { + for (var i = 0, n = node.heritageClauses.length; i < n; i++) { + Debug.assert(i <= 1); + var heritageClause = node.heritageClauses[i]; + + if (heritageClause.token === SyntaxKind.ExtendsKeyword) { + if (seenExtendsClause) { + return grammarErrorOnFirstToken(heritageClause, Diagnostics.extends_clause_already_seen); + } + + seenExtendsClause = true; + } + else { + Debug.assert(heritageClause.token === SyntaxKind.ImplementsKeyword); + return grammarErrorOnFirstToken(heritageClause, Diagnostics.Interface_declaration_cannot_have_implements_clause); + } + } + } + + return false; } function checkMethod(node: MethodDeclaration) { diff --git a/src/compiler/types.ts b/src/compiler/types.ts index 2079afbca79..94c4c1b412a 100644 --- a/src/compiler/types.ts +++ b/src/compiler/types.ts @@ -203,8 +203,6 @@ module ts { ReturnStatement, WithStatement, SwitchStatement, - CaseClause, - DefaultClause, LabeledStatement, ThrowStatement, TryStatement, @@ -223,6 +221,10 @@ module ts { ModuleBlock, ImportDeclaration, ExportAssignment, + // Clauses + CaseClause, + DefaultClause, + HeritageClause, // Property assignments PropertyAssignment, ShorthandPropertyAssignment, @@ -673,8 +675,7 @@ module ts { export interface ClassDeclaration extends Declaration, ModuleElement { name: Identifier; typeParameters?: NodeArray; - baseType?: TypeReferenceNode; - implementedTypes?: NodeArray; + heritageClauses?: NodeArray; members: NodeArray; } @@ -685,10 +686,15 @@ module ts { export interface InterfaceDeclaration extends Declaration, ModuleElement { name: Identifier; typeParameters?: NodeArray; - baseTypes?: NodeArray; + heritageClauses?: NodeArray; members: NodeArray; } + export interface HeritageClause extends Node { + token: SyntaxKind; + types?: NodeArray; + } + export interface TypeAliasDeclaration extends Declaration, ModuleElement { name: Identifier; type: TypeNode; diff --git a/src/services/services.ts b/src/services/services.ts index 6386a472600..0ef6ab02b72 100644 --- a/src/services/services.ts +++ b/src/services/services.ts @@ -4428,11 +4428,11 @@ module ts { if (symbol && symbol.flags & (SymbolFlags.Class | SymbolFlags.Interface)) { forEach(symbol.getDeclarations(), declaration => { if (declaration.kind === SyntaxKind.ClassDeclaration) { - getPropertySymbolFromTypeReference((declaration).baseType); - forEach((declaration).implementedTypes, getPropertySymbolFromTypeReference); + getPropertySymbolFromTypeReference(getClassBaseTypeNode(declaration)); + forEach(getClassImplementedTypeNodes(declaration), getPropertySymbolFromTypeReference); } else if (declaration.kind === SyntaxKind.InterfaceDeclaration) { - forEach((declaration).baseTypes, getPropertySymbolFromTypeReference); + forEach(getInterfaceBaseTypeNodes(declaration), getPropertySymbolFromTypeReference); } }); } diff --git a/tests/baselines/reference/classExtendingPrimitive.errors.txt b/tests/baselines/reference/classExtendingPrimitive.errors.txt index cab86e9e38e..b27f1bc29d5 100644 --- a/tests/baselines/reference/classExtendingPrimitive.errors.txt +++ b/tests/baselines/reference/classExtendingPrimitive.errors.txt @@ -1,5 +1,5 @@ -tests/cases/conformance/classes/classDeclarations/classHeritageSpecification/classExtendingPrimitive.ts(7,19): error TS1003: Identifier expected. -tests/cases/conformance/classes/classDeclarations/classHeritageSpecification/classExtendingPrimitive.ts(9,19): error TS1003: Identifier expected. +tests/cases/conformance/classes/classDeclarations/classHeritageSpecification/classExtendingPrimitive.ts(7,19): error TS1133: Type reference expected. +tests/cases/conformance/classes/classDeclarations/classHeritageSpecification/classExtendingPrimitive.ts(9,19): error TS1133: Type reference expected. tests/cases/conformance/classes/classDeclarations/classHeritageSpecification/classExtendingPrimitive.ts(9,24): error TS1005: ';' expected. tests/cases/conformance/classes/classDeclarations/classHeritageSpecification/classExtendingPrimitive.ts(3,17): error TS2304: Cannot find name 'number'. tests/cases/conformance/classes/classDeclarations/classHeritageSpecification/classExtendingPrimitive.ts(4,18): error TS2304: Cannot find name 'string'. @@ -28,13 +28,13 @@ tests/cases/conformance/classes/classDeclarations/classHeritageSpecification/cla !!! error TS2304: Cannot find name 'Void'. class C4a extends void {} ~~~~ -!!! error TS1003: Identifier expected. +!!! error TS1133: Type reference expected. class C5 extends Null { } ~~~~ !!! error TS2304: Cannot find name 'Null'. class C5a extends null { } ~~~~ -!!! error TS1003: Identifier expected. +!!! error TS1133: Type reference expected. ~ !!! error TS1005: ';' expected. class C6 extends undefined { } diff --git a/tests/baselines/reference/classExtendingPrimitive2.errors.txt b/tests/baselines/reference/classExtendingPrimitive2.errors.txt index 9378c7bdc19..cc7da5de821 100644 --- a/tests/baselines/reference/classExtendingPrimitive2.errors.txt +++ b/tests/baselines/reference/classExtendingPrimitive2.errors.txt @@ -1,5 +1,5 @@ -tests/cases/conformance/classes/classDeclarations/classHeritageSpecification/classExtendingPrimitive2.ts(3,19): error TS1003: Identifier expected. -tests/cases/conformance/classes/classDeclarations/classHeritageSpecification/classExtendingPrimitive2.ts(4,19): error TS1003: Identifier expected. +tests/cases/conformance/classes/classDeclarations/classHeritageSpecification/classExtendingPrimitive2.ts(3,19): error TS1133: Type reference expected. +tests/cases/conformance/classes/classDeclarations/classHeritageSpecification/classExtendingPrimitive2.ts(4,19): error TS1133: Type reference expected. tests/cases/conformance/classes/classDeclarations/classHeritageSpecification/classExtendingPrimitive2.ts(4,24): error TS1005: ';' expected. @@ -8,9 +8,9 @@ tests/cases/conformance/classes/classDeclarations/classHeritageSpecification/cla class C4a extends void {} ~~~~ -!!! error TS1003: Identifier expected. +!!! error TS1133: Type reference expected. class C5a extends null { } ~~~~ -!!! error TS1003: Identifier expected. +!!! error TS1133: Type reference expected. ~ !!! error TS1005: ';' expected. \ No newline at end of file diff --git a/tests/baselines/reference/classExtendsEveryObjectType.errors.txt b/tests/baselines/reference/classExtendsEveryObjectType.errors.txt index 35fc2d30a35..031caf19e26 100644 --- a/tests/baselines/reference/classExtendsEveryObjectType.errors.txt +++ b/tests/baselines/reference/classExtendsEveryObjectType.errors.txt @@ -1,5 +1,4 @@ -tests/cases/conformance/classes/classDeclarations/classHeritageSpecification/classExtendsEveryObjectType.ts(6,18): error TS1003: Identifier expected. -tests/cases/conformance/classes/classDeclarations/classHeritageSpecification/classExtendsEveryObjectType.ts(16,18): error TS1003: Identifier expected. +tests/cases/conformance/classes/classDeclarations/classHeritageSpecification/classExtendsEveryObjectType.ts(16,18): error TS1133: Type reference expected. tests/cases/conformance/classes/classDeclarations/classHeritageSpecification/classExtendsEveryObjectType.ts(16,20): error TS1005: ';' expected. tests/cases/conformance/classes/classDeclarations/classHeritageSpecification/classExtendsEveryObjectType.ts(4,17): error TS2311: A class may only extend another class. tests/cases/conformance/classes/classDeclarations/classHeritageSpecification/classExtendsEveryObjectType.ts(8,18): error TS2304: Cannot find name 'x'. @@ -7,7 +6,7 @@ tests/cases/conformance/classes/classDeclarations/classHeritageSpecification/cla tests/cases/conformance/classes/classDeclarations/classHeritageSpecification/classExtendsEveryObjectType.ts(14,18): error TS2304: Cannot find name 'foo'. -==== tests/cases/conformance/classes/classDeclarations/classHeritageSpecification/classExtendsEveryObjectType.ts (7 errors) ==== +==== tests/cases/conformance/classes/classDeclarations/classHeritageSpecification/classExtendsEveryObjectType.ts (6 errors) ==== interface I { foo: string; } @@ -16,8 +15,6 @@ tests/cases/conformance/classes/classDeclarations/classHeritageSpecification/cla !!! error TS2311: A class may only extend another class. class C2 extends { foo: string; } { } // error - ~ -!!! error TS1003: Identifier expected. var x: { foo: string; } class C3 extends x { } // error ~ @@ -35,6 +32,6 @@ tests/cases/conformance/classes/classDeclarations/classHeritageSpecification/cla class C6 extends []{ } // error ~ -!!! error TS1003: Identifier expected. +!!! error TS1133: Type reference expected. ~ !!! error TS1005: ';' expected. \ No newline at end of file diff --git a/tests/baselines/reference/classExtendsEveryObjectType2.errors.txt b/tests/baselines/reference/classExtendsEveryObjectType2.errors.txt index a60745020e7..ce5d8aed7a9 100644 --- a/tests/baselines/reference/classExtendsEveryObjectType2.errors.txt +++ b/tests/baselines/reference/classExtendsEveryObjectType2.errors.txt @@ -1,15 +1,12 @@ -tests/cases/conformance/classes/classDeclarations/classHeritageSpecification/classExtendsEveryObjectType2.ts(1,18): error TS1003: Identifier expected. -tests/cases/conformance/classes/classDeclarations/classHeritageSpecification/classExtendsEveryObjectType2.ts(3,18): error TS1003: Identifier expected. +tests/cases/conformance/classes/classDeclarations/classHeritageSpecification/classExtendsEveryObjectType2.ts(3,18): error TS1133: Type reference expected. tests/cases/conformance/classes/classDeclarations/classHeritageSpecification/classExtendsEveryObjectType2.ts(3,20): error TS1005: ';' expected. -==== tests/cases/conformance/classes/classDeclarations/classHeritageSpecification/classExtendsEveryObjectType2.ts (3 errors) ==== +==== tests/cases/conformance/classes/classDeclarations/classHeritageSpecification/classExtendsEveryObjectType2.ts (2 errors) ==== class C2 extends { foo: string; } { } // error - ~ -!!! error TS1003: Identifier expected. class C6 extends []{ } // error ~ -!!! error TS1003: Identifier expected. +!!! error TS1133: Type reference expected. ~ !!! error TS1005: ';' expected. \ No newline at end of file diff --git a/tests/baselines/reference/classExtendsMultipleBaseClasses.errors.txt b/tests/baselines/reference/classExtendsMultipleBaseClasses.errors.txt index 86b271c9ae8..3c10d6c6e5f 100644 --- a/tests/baselines/reference/classExtendsMultipleBaseClasses.errors.txt +++ b/tests/baselines/reference/classExtendsMultipleBaseClasses.errors.txt @@ -1,12 +1,9 @@ -tests/cases/compiler/classExtendsMultipleBaseClasses.ts(3,18): error TS1005: '{' expected. -tests/cases/compiler/classExtendsMultipleBaseClasses.ts(3,21): error TS1005: ';' expected. +tests/cases/compiler/classExtendsMultipleBaseClasses.ts(3,19): error TS1174: Classes can only extend a single class. -==== tests/cases/compiler/classExtendsMultipleBaseClasses.ts (2 errors) ==== +==== tests/cases/compiler/classExtendsMultipleBaseClasses.ts (1 errors) ==== class A { } class B { } class C extends A,B { } - ~ -!!! error TS1005: '{' expected. - ~ -!!! error TS1005: ';' expected. \ No newline at end of file + ~ +!!! error TS1174: Classes can only extend a single class. \ No newline at end of file diff --git a/tests/baselines/reference/classHeritageWithTrailingSeparator.errors.txt b/tests/baselines/reference/classHeritageWithTrailingSeparator.errors.txt index 1a323fd5aa4..037a3a351fb 100644 --- a/tests/baselines/reference/classHeritageWithTrailingSeparator.errors.txt +++ b/tests/baselines/reference/classHeritageWithTrailingSeparator.errors.txt @@ -1,9 +1,9 @@ -tests/cases/compiler/classHeritageWithTrailingSeparator.ts(2,18): error TS1005: '{' expected. +tests/cases/compiler/classHeritageWithTrailingSeparator.ts(2,18): error TS1009: Trailing comma not allowed. ==== tests/cases/compiler/classHeritageWithTrailingSeparator.ts (1 errors) ==== class C { foo: number } class D extends C, { ~ -!!! error TS1005: '{' expected. +!!! error TS1009: Trailing comma not allowed. } \ No newline at end of file diff --git a/tests/baselines/reference/extendsClauseAlreadySeen.errors.txt b/tests/baselines/reference/extendsClauseAlreadySeen.errors.txt index b2df83aeb0f..472462d3dcf 100644 --- a/tests/baselines/reference/extendsClauseAlreadySeen.errors.txt +++ b/tests/baselines/reference/extendsClauseAlreadySeen.errors.txt @@ -1,21 +1,12 @@ -tests/cases/compiler/extendsClauseAlreadySeen.ts(4,19): error TS1005: '{' expected. -tests/cases/compiler/extendsClauseAlreadySeen.ts(4,29): error TS1005: ';' expected. -tests/cases/compiler/extendsClauseAlreadySeen.ts(5,11): error TS1005: ';' expected. -tests/cases/compiler/extendsClauseAlreadySeen.ts(5,5): error TS2304: Cannot find name 'baz'. +tests/cases/compiler/extendsClauseAlreadySeen.ts(4,19): error TS1172: 'extends' clause already seen. -==== tests/cases/compiler/extendsClauseAlreadySeen.ts (4 errors) ==== +==== tests/cases/compiler/extendsClauseAlreadySeen.ts (1 errors) ==== class C { } class D extends C extends C { ~~~~~~~ -!!! error TS1005: '{' expected. - ~ -!!! error TS1005: ';' expected. +!!! error TS1172: 'extends' clause already seen. baz() { } - ~ -!!! error TS1005: ';' expected. - ~~~ -!!! error TS2304: Cannot find name 'baz'. } \ No newline at end of file diff --git a/tests/baselines/reference/extendsClauseAlreadySeen2.errors.txt b/tests/baselines/reference/extendsClauseAlreadySeen2.errors.txt index 45971dc62f3..7985c62a365 100644 --- a/tests/baselines/reference/extendsClauseAlreadySeen2.errors.txt +++ b/tests/baselines/reference/extendsClauseAlreadySeen2.errors.txt @@ -1,20 +1,12 @@ -tests/cases/compiler/extendsClauseAlreadySeen2.ts(4,30): error TS1005: '{' expected. -tests/cases/compiler/extendsClauseAlreadySeen2.ts(4,38): error TS2365: Operator '>' cannot be applied to types 'boolean' and '{ baz: () => void; }'. -tests/cases/compiler/extendsClauseAlreadySeen2.ts(4,40): error TS2304: Cannot find name 'string'. +tests/cases/compiler/extendsClauseAlreadySeen2.ts(4,30): error TS1172: 'extends' clause already seen. -==== tests/cases/compiler/extendsClauseAlreadySeen2.ts (3 errors) ==== +==== tests/cases/compiler/extendsClauseAlreadySeen2.ts (1 errors) ==== class C { } class D extends C extends C { ~~~~~~~ -!!! error TS1005: '{' expected. - ~~~~~~~~~~~ - ~~~~~~ -!!! error TS2304: Cannot find name 'string'. +!!! error TS1172: 'extends' clause already seen. baz() { } - ~~~~~~~~~~~~~ - } - ~ -!!! error TS2365: Operator '>' cannot be applied to types 'boolean' and '{ baz: () => void; }'. \ No newline at end of file + } \ No newline at end of file diff --git a/tests/baselines/reference/implementClausePrecedingExtends.errors.txt b/tests/baselines/reference/implementClausePrecedingExtends.errors.txt index 0ded03b0808..90062c2ad74 100644 --- a/tests/baselines/reference/implementClausePrecedingExtends.errors.txt +++ b/tests/baselines/reference/implementClausePrecedingExtends.errors.txt @@ -1,16 +1,8 @@ -tests/cases/compiler/implementClausePrecedingExtends.ts(2,22): error TS1005: '{' expected. -tests/cases/compiler/implementClausePrecedingExtends.ts(2,32): error TS1005: ';' expected. -tests/cases/compiler/implementClausePrecedingExtends.ts(2,7): error TS2420: Class 'D' incorrectly implements interface 'C'. - Property 'foo' is missing in type 'D'. +tests/cases/compiler/implementClausePrecedingExtends.ts(2,22): error TS1173: 'extends' clause must precede 'implements' clause. -==== tests/cases/compiler/implementClausePrecedingExtends.ts (3 errors) ==== +==== tests/cases/compiler/implementClausePrecedingExtends.ts (1 errors) ==== class C { foo: number } class D implements C extends C { } ~~~~~~~ -!!! error TS1005: '{' expected. - ~ -!!! error TS1005: ';' expected. - ~ -!!! error TS2420: Class 'D' incorrectly implements interface 'C'. -!!! error TS2420: Property 'foo' is missing in type 'D'. \ No newline at end of file +!!! error TS1173: 'extends' clause must precede 'implements' clause. \ No newline at end of file diff --git a/tests/baselines/reference/implementsClauseAlreadySeen.errors.txt b/tests/baselines/reference/implementsClauseAlreadySeen.errors.txt index ca06cf9bb73..80265c0802f 100644 --- a/tests/baselines/reference/implementsClauseAlreadySeen.errors.txt +++ b/tests/baselines/reference/implementsClauseAlreadySeen.errors.txt @@ -1,27 +1,12 @@ -tests/cases/compiler/implementsClauseAlreadySeen.ts(4,22): error TS1005: '{' expected. -tests/cases/compiler/implementsClauseAlreadySeen.ts(4,33): error TS1005: ';' expected. -tests/cases/compiler/implementsClauseAlreadySeen.ts(4,35): error TS1005: ';' expected. -tests/cases/compiler/implementsClauseAlreadySeen.ts(5,11): error TS1005: ';' expected. -tests/cases/compiler/implementsClauseAlreadySeen.ts(4,22): error TS2304: Cannot find name 'implements'. -tests/cases/compiler/implementsClauseAlreadySeen.ts(5,5): error TS2304: Cannot find name 'baz'. +tests/cases/compiler/implementsClauseAlreadySeen.ts(4,22): error TS1175: 'implements' clause already seen. -==== tests/cases/compiler/implementsClauseAlreadySeen.ts (6 errors) ==== +==== tests/cases/compiler/implementsClauseAlreadySeen.ts (1 errors) ==== class C { } class D implements C implements C { ~~~~~~~~~~ -!!! error TS1005: '{' expected. - ~ -!!! error TS1005: ';' expected. - ~ -!!! error TS1005: ';' expected. - ~~~~~~~~~~ -!!! error TS2304: Cannot find name 'implements'. +!!! error TS1175: 'implements' clause already seen. baz() { } - ~ -!!! error TS1005: ';' expected. - ~~~ -!!! error TS2304: Cannot find name 'baz'. } \ No newline at end of file diff --git a/tests/baselines/reference/interfaceThatInheritsFromItself.errors.txt b/tests/baselines/reference/interfaceThatInheritsFromItself.errors.txt index 7aa5cc04a87..440650717bd 100644 --- a/tests/baselines/reference/interfaceThatInheritsFromItself.errors.txt +++ b/tests/baselines/reference/interfaceThatInheritsFromItself.errors.txt @@ -1,14 +1,10 @@ -tests/cases/conformance/interfaces/interfaceDeclarations/interfaceThatInheritsFromItself.ts(10,15): error TS1005: '{' expected. -tests/cases/conformance/interfaces/interfaceDeclarations/interfaceThatInheritsFromItself.ts(10,26): error TS1005: ';' expected. -tests/cases/conformance/interfaces/interfaceDeclarations/interfaceThatInheritsFromItself.ts(10,30): error TS1005: ';' expected. +tests/cases/conformance/interfaces/interfaceDeclarations/interfaceThatInheritsFromItself.ts(10,15): error TS1176: Interface declaration cannot have 'implements' clause. tests/cases/conformance/interfaces/interfaceDeclarations/interfaceThatInheritsFromItself.ts(1,11): error TS2310: Type 'Foo' recursively references itself as a base type. tests/cases/conformance/interfaces/interfaceDeclarations/interfaceThatInheritsFromItself.ts(4,11): error TS2310: Type 'Foo2' recursively references itself as a base type. tests/cases/conformance/interfaces/interfaceDeclarations/interfaceThatInheritsFromItself.ts(7,11): error TS2310: Type 'Foo3' recursively references itself as a base type. -tests/cases/conformance/interfaces/interfaceDeclarations/interfaceThatInheritsFromItself.ts(10,15): error TS2304: Cannot find name 'implements'. -tests/cases/conformance/interfaces/interfaceDeclarations/interfaceThatInheritsFromItself.ts(10,26): error TS2304: Cannot find name 'Bar'. -==== tests/cases/conformance/interfaces/interfaceDeclarations/interfaceThatInheritsFromItself.ts (8 errors) ==== +==== tests/cases/conformance/interfaces/interfaceDeclarations/interfaceThatInheritsFromItself.ts (4 errors) ==== interface Foo extends Foo { // error ~~~ !!! error TS2310: Type 'Foo' recursively references itself as a base type. @@ -26,15 +22,7 @@ tests/cases/conformance/interfaces/interfaceDeclarations/interfaceThatInheritsFr interface Bar implements Bar { // error ~~~~~~~~~~ -!!! error TS1005: '{' expected. - ~~~ -!!! error TS1005: ';' expected. - ~ -!!! error TS1005: ';' expected. - ~~~~~~~~~~ -!!! error TS2304: Cannot find name 'implements'. - ~~~ -!!! error TS2304: Cannot find name 'Bar'. +!!! error TS1176: Interface declaration cannot have 'implements' clause. } \ No newline at end of file diff --git a/tests/baselines/reference/interfaceWithImplements1.errors.txt b/tests/baselines/reference/interfaceWithImplements1.errors.txt index bb9465712d8..87faf921e95 100644 --- a/tests/baselines/reference/interfaceWithImplements1.errors.txt +++ b/tests/baselines/reference/interfaceWithImplements1.errors.txt @@ -1,22 +1,10 @@ -tests/cases/compiler/interfaceWithImplements1.ts(3,16): error TS1005: '{' expected. -tests/cases/compiler/interfaceWithImplements1.ts(3,27): error TS1005: ';' expected. -tests/cases/compiler/interfaceWithImplements1.ts(3,32): error TS1005: ';' expected. -tests/cases/compiler/interfaceWithImplements1.ts(3,16): error TS2304: Cannot find name 'implements'. -tests/cases/compiler/interfaceWithImplements1.ts(3,27): error TS2304: Cannot find name 'IFoo'. +tests/cases/compiler/interfaceWithImplements1.ts(3,16): error TS1176: Interface declaration cannot have 'implements' clause. -==== tests/cases/compiler/interfaceWithImplements1.ts (5 errors) ==== +==== tests/cases/compiler/interfaceWithImplements1.ts (1 errors) ==== interface IFoo { } interface IBar implements IFoo { ~~~~~~~~~~ -!!! error TS1005: '{' expected. - ~~~~ -!!! error TS1005: ';' expected. - ~ -!!! error TS1005: ';' expected. - ~~~~~~~~~~ -!!! error TS2304: Cannot find name 'implements'. - ~~~~ -!!! error TS2304: Cannot find name 'IFoo'. +!!! error TS1176: Interface declaration cannot have 'implements' clause. } \ No newline at end of file diff --git a/tests/baselines/reference/multipleInheritance.errors.txt b/tests/baselines/reference/multipleInheritance.errors.txt index b15a6978ef5..19ef1e755e3 100644 --- a/tests/baselines/reference/multipleInheritance.errors.txt +++ b/tests/baselines/reference/multipleInheritance.errors.txt @@ -1,14 +1,12 @@ -tests/cases/compiler/multipleInheritance.ts(9,19): error TS1005: '{' expected. -tests/cases/compiler/multipleInheritance.ts(9,24): error TS1005: ';' expected. -tests/cases/compiler/multipleInheritance.ts(18,19): error TS1005: '{' expected. -tests/cases/compiler/multipleInheritance.ts(18,24): error TS1005: ';' expected. +tests/cases/compiler/multipleInheritance.ts(9,21): error TS1174: Classes can only extend a single class. +tests/cases/compiler/multipleInheritance.ts(18,21): error TS1174: Classes can only extend a single class. tests/cases/compiler/multipleInheritance.ts(34,7): error TS2415: Class 'Baad' incorrectly extends base class 'Good'. Types of property 'g' are incompatible. Type '(n: number) => number' is not assignable to type '() => number'. tests/cases/compiler/multipleInheritance.ts(35,12): error TS2425: Class 'Good' defines instance member property 'f', but extended class 'Baad' defines it as instance member function. -==== tests/cases/compiler/multipleInheritance.ts (6 errors) ==== +==== tests/cases/compiler/multipleInheritance.ts (4 errors) ==== class B1 { public x; } @@ -18,10 +16,8 @@ tests/cases/compiler/multipleInheritance.ts(35,12): error TS2425: Class 'Good' d } class C extends B1, B2 { // duplicate member - ~ -!!! error TS1005: '{' expected. - ~ -!!! error TS1005: ';' expected. + ~~ +!!! error TS1174: Classes can only extend a single class. } class D1 extends B1 { @@ -31,10 +27,8 @@ tests/cases/compiler/multipleInheritance.ts(35,12): error TS2425: Class 'Good' d } class E extends D1, D2 { // nope, duplicate member - ~ -!!! error TS1005: '{' expected. - ~ -!!! error TS1005: ';' expected. + ~~ +!!! error TS1174: Classes can only extend a single class. } class N { diff --git a/tests/baselines/reference/parserClassDeclaration1.errors.txt b/tests/baselines/reference/parserClassDeclaration1.errors.txt index 9ab40a64262..5d148f9c5f6 100644 --- a/tests/baselines/reference/parserClassDeclaration1.errors.txt +++ b/tests/baselines/reference/parserClassDeclaration1.errors.txt @@ -1,17 +1,11 @@ -tests/cases/conformance/parser/ecmascript5/ClassDeclarations/parserClassDeclaration1.ts(1,19): error TS1005: '{' expected. -tests/cases/conformance/parser/ecmascript5/ClassDeclarations/parserClassDeclaration1.ts(1,29): error TS1005: ';' expected. +tests/cases/conformance/parser/ecmascript5/ClassDeclarations/parserClassDeclaration1.ts(1,19): error TS1172: 'extends' clause already seen. tests/cases/conformance/parser/ecmascript5/ClassDeclarations/parserClassDeclaration1.ts(1,17): error TS2304: Cannot find name 'A'. -tests/cases/conformance/parser/ecmascript5/ClassDeclarations/parserClassDeclaration1.ts(1,27): error TS2304: Cannot find name 'B'. -==== tests/cases/conformance/parser/ecmascript5/ClassDeclarations/parserClassDeclaration1.ts (4 errors) ==== +==== tests/cases/conformance/parser/ecmascript5/ClassDeclarations/parserClassDeclaration1.ts (2 errors) ==== class C extends A extends B { ~~~~~~~ -!!! error TS1005: '{' expected. - ~ -!!! error TS1005: ';' expected. +!!! error TS1172: 'extends' clause already seen. ~ !!! error TS2304: Cannot find name 'A'. - ~ -!!! error TS2304: Cannot find name 'B'. } \ No newline at end of file diff --git a/tests/baselines/reference/parserClassDeclaration2.errors.txt b/tests/baselines/reference/parserClassDeclaration2.errors.txt index 1f8509ce754..31887698f3d 100644 --- a/tests/baselines/reference/parserClassDeclaration2.errors.txt +++ b/tests/baselines/reference/parserClassDeclaration2.errors.txt @@ -1,23 +1,11 @@ -tests/cases/conformance/parser/ecmascript5/ClassDeclarations/parserClassDeclaration2.ts(1,22): error TS1005: '{' expected. -tests/cases/conformance/parser/ecmascript5/ClassDeclarations/parserClassDeclaration2.ts(1,33): error TS1005: ';' expected. -tests/cases/conformance/parser/ecmascript5/ClassDeclarations/parserClassDeclaration2.ts(1,35): error TS1005: ';' expected. +tests/cases/conformance/parser/ecmascript5/ClassDeclarations/parserClassDeclaration2.ts(1,22): error TS1175: 'implements' clause already seen. tests/cases/conformance/parser/ecmascript5/ClassDeclarations/parserClassDeclaration2.ts(1,20): error TS2304: Cannot find name 'A'. -tests/cases/conformance/parser/ecmascript5/ClassDeclarations/parserClassDeclaration2.ts(1,22): error TS2304: Cannot find name 'implements'. -tests/cases/conformance/parser/ecmascript5/ClassDeclarations/parserClassDeclaration2.ts(1,33): error TS2304: Cannot find name 'B'. -==== tests/cases/conformance/parser/ecmascript5/ClassDeclarations/parserClassDeclaration2.ts (6 errors) ==== +==== tests/cases/conformance/parser/ecmascript5/ClassDeclarations/parserClassDeclaration2.ts (2 errors) ==== class C implements A implements B { ~~~~~~~~~~ -!!! error TS1005: '{' expected. - ~ -!!! error TS1005: ';' expected. - ~ -!!! error TS1005: ';' expected. +!!! error TS1175: 'implements' clause already seen. ~ !!! error TS2304: Cannot find name 'A'. - ~~~~~~~~~~ -!!! error TS2304: Cannot find name 'implements'. - ~ -!!! error TS2304: Cannot find name 'B'. } \ No newline at end of file diff --git a/tests/baselines/reference/parserClassDeclaration3.errors.txt b/tests/baselines/reference/parserClassDeclaration3.errors.txt index f7c20f7cde9..38cac10f4df 100644 --- a/tests/baselines/reference/parserClassDeclaration3.errors.txt +++ b/tests/baselines/reference/parserClassDeclaration3.errors.txt @@ -1,15 +1,12 @@ -tests/cases/conformance/parser/ecmascript5/ClassDeclarations/parserClassDeclaration3.ts(1,22): error TS1005: '{' expected. -tests/cases/conformance/parser/ecmascript5/ClassDeclarations/parserClassDeclaration3.ts(1,32): error TS1005: ';' expected. +tests/cases/conformance/parser/ecmascript5/ClassDeclarations/parserClassDeclaration3.ts(1,22): error TS1173: 'extends' clause must precede 'implements' clause. tests/cases/conformance/parser/ecmascript5/ClassDeclarations/parserClassDeclaration3.ts(1,20): error TS2304: Cannot find name 'A'. tests/cases/conformance/parser/ecmascript5/ClassDeclarations/parserClassDeclaration3.ts(1,30): error TS2304: Cannot find name 'B'. -==== tests/cases/conformance/parser/ecmascript5/ClassDeclarations/parserClassDeclaration3.ts (4 errors) ==== +==== tests/cases/conformance/parser/ecmascript5/ClassDeclarations/parserClassDeclaration3.ts (3 errors) ==== class C implements A extends B { ~~~~~~~ -!!! error TS1005: '{' expected. - ~ -!!! error TS1005: ';' expected. +!!! error TS1173: 'extends' clause must precede 'implements' clause. ~ !!! error TS2304: Cannot find name 'A'. ~ diff --git a/tests/baselines/reference/parserClassDeclaration4.errors.txt b/tests/baselines/reference/parserClassDeclaration4.errors.txt index 4b4aceea66f..27808412228 100644 --- a/tests/baselines/reference/parserClassDeclaration4.errors.txt +++ b/tests/baselines/reference/parserClassDeclaration4.errors.txt @@ -1,15 +1,12 @@ -tests/cases/conformance/parser/ecmascript5/ClassDeclarations/parserClassDeclaration4.ts(1,32): error TS1005: '{' expected. -tests/cases/conformance/parser/ecmascript5/ClassDeclarations/parserClassDeclaration4.ts(1,42): error TS1005: ';' expected. +tests/cases/conformance/parser/ecmascript5/ClassDeclarations/parserClassDeclaration4.ts(1,32): error TS1172: 'extends' clause already seen. tests/cases/conformance/parser/ecmascript5/ClassDeclarations/parserClassDeclaration4.ts(1,17): error TS2304: Cannot find name 'A'. tests/cases/conformance/parser/ecmascript5/ClassDeclarations/parserClassDeclaration4.ts(1,30): error TS2304: Cannot find name 'B'. -==== tests/cases/conformance/parser/ecmascript5/ClassDeclarations/parserClassDeclaration4.ts (4 errors) ==== +==== tests/cases/conformance/parser/ecmascript5/ClassDeclarations/parserClassDeclaration4.ts (3 errors) ==== class C extends A implements B extends C { ~~~~~~~ -!!! error TS1005: '{' expected. - ~ -!!! error TS1005: ';' expected. +!!! error TS1172: 'extends' clause already seen. ~ !!! error TS2304: Cannot find name 'A'. ~ diff --git a/tests/baselines/reference/parserClassDeclaration5.errors.txt b/tests/baselines/reference/parserClassDeclaration5.errors.txt index a6c9ab07621..8cd90d61dee 100644 --- a/tests/baselines/reference/parserClassDeclaration5.errors.txt +++ b/tests/baselines/reference/parserClassDeclaration5.errors.txt @@ -1,23 +1,14 @@ -tests/cases/conformance/parser/ecmascript5/ClassDeclarations/parserClassDeclaration5.ts(1,32): error TS1005: '{' expected. -tests/cases/conformance/parser/ecmascript5/ClassDeclarations/parserClassDeclaration5.ts(1,43): error TS1005: ';' expected. -tests/cases/conformance/parser/ecmascript5/ClassDeclarations/parserClassDeclaration5.ts(1,45): error TS1005: ';' expected. +tests/cases/conformance/parser/ecmascript5/ClassDeclarations/parserClassDeclaration5.ts(1,32): error TS1175: 'implements' clause already seen. tests/cases/conformance/parser/ecmascript5/ClassDeclarations/parserClassDeclaration5.ts(1,17): error TS2304: Cannot find name 'A'. tests/cases/conformance/parser/ecmascript5/ClassDeclarations/parserClassDeclaration5.ts(1,30): error TS2304: Cannot find name 'B'. -tests/cases/conformance/parser/ecmascript5/ClassDeclarations/parserClassDeclaration5.ts(1,32): error TS2304: Cannot find name 'implements'. -==== tests/cases/conformance/parser/ecmascript5/ClassDeclarations/parserClassDeclaration5.ts (6 errors) ==== +==== tests/cases/conformance/parser/ecmascript5/ClassDeclarations/parserClassDeclaration5.ts (3 errors) ==== class C extends A implements B implements C { ~~~~~~~~~~ -!!! error TS1005: '{' expected. - ~ -!!! error TS1005: ';' expected. - ~ -!!! error TS1005: ';' expected. +!!! error TS1175: 'implements' clause already seen. ~ !!! error TS2304: Cannot find name 'A'. ~ !!! error TS2304: Cannot find name 'B'. - ~~~~~~~~~~ -!!! error TS2304: Cannot find name 'implements'. } \ No newline at end of file diff --git a/tests/baselines/reference/parserClassDeclaration6.errors.txt b/tests/baselines/reference/parserClassDeclaration6.errors.txt index 3898f34cd7f..af0139d4fe1 100644 --- a/tests/baselines/reference/parserClassDeclaration6.errors.txt +++ b/tests/baselines/reference/parserClassDeclaration6.errors.txt @@ -1,17 +1,11 @@ -tests/cases/conformance/parser/ecmascript5/ClassDeclarations/parserClassDeclaration6.ts(1,18): error TS1005: '{' expected. -tests/cases/conformance/parser/ecmascript5/ClassDeclarations/parserClassDeclaration6.ts(1,22): error TS1005: ';' expected. +tests/cases/conformance/parser/ecmascript5/ClassDeclarations/parserClassDeclaration6.ts(1,20): error TS1174: Classes can only extend a single class. tests/cases/conformance/parser/ecmascript5/ClassDeclarations/parserClassDeclaration6.ts(1,17): error TS2304: Cannot find name 'A'. -tests/cases/conformance/parser/ecmascript5/ClassDeclarations/parserClassDeclaration6.ts(1,20): error TS2304: Cannot find name 'B'. -==== tests/cases/conformance/parser/ecmascript5/ClassDeclarations/parserClassDeclaration6.ts (4 errors) ==== +==== tests/cases/conformance/parser/ecmascript5/ClassDeclarations/parserClassDeclaration6.ts (2 errors) ==== class C extends A, B { - ~ -!!! error TS1005: '{' expected. - ~ -!!! error TS1005: ';' expected. + ~ +!!! error TS1174: Classes can only extend a single class. ~ !!! error TS2304: Cannot find name 'A'. - ~ -!!! error TS2304: Cannot find name 'B'. } \ No newline at end of file diff --git a/tests/baselines/reference/parserErrorRecovery_ExtendsOrImplementsClause1.errors.txt b/tests/baselines/reference/parserErrorRecovery_ExtendsOrImplementsClause1.errors.txt index 1e484aff5c0..299143e84c9 100644 --- a/tests/baselines/reference/parserErrorRecovery_ExtendsOrImplementsClause1.errors.txt +++ b/tests/baselines/reference/parserErrorRecovery_ExtendsOrImplementsClause1.errors.txt @@ -1,8 +1,8 @@ -tests/cases/conformance/parser/ecmascript5/ErrorRecovery/ExtendsOrImplementsClauses/parserErrorRecovery_ExtendsOrImplementsClause1.ts(1,17): error TS1003: Identifier expected. +tests/cases/conformance/parser/ecmascript5/ErrorRecovery/ExtendsOrImplementsClauses/parserErrorRecovery_ExtendsOrImplementsClause1.ts(1,16): error TS1097: 'extends' list cannot be empty. ==== tests/cases/conformance/parser/ecmascript5/ErrorRecovery/ExtendsOrImplementsClauses/parserErrorRecovery_ExtendsOrImplementsClause1.ts (1 errors) ==== class C extends { - ~ -!!! error TS1003: Identifier expected. + +!!! error TS1097: 'extends' list cannot be empty. } \ No newline at end of file diff --git a/tests/baselines/reference/parserErrorRecovery_ExtendsOrImplementsClause2.errors.txt b/tests/baselines/reference/parserErrorRecovery_ExtendsOrImplementsClause2.errors.txt index f70f239ac6f..9e4d8b76d75 100644 --- a/tests/baselines/reference/parserErrorRecovery_ExtendsOrImplementsClause2.errors.txt +++ b/tests/baselines/reference/parserErrorRecovery_ExtendsOrImplementsClause2.errors.txt @@ -1,11 +1,11 @@ -tests/cases/conformance/parser/ecmascript5/ErrorRecovery/ExtendsOrImplementsClauses/parserErrorRecovery_ExtendsOrImplementsClause2.ts(1,18): error TS1005: '{' expected. +tests/cases/conformance/parser/ecmascript5/ErrorRecovery/ExtendsOrImplementsClauses/parserErrorRecovery_ExtendsOrImplementsClause2.ts(1,18): error TS1009: Trailing comma not allowed. tests/cases/conformance/parser/ecmascript5/ErrorRecovery/ExtendsOrImplementsClauses/parserErrorRecovery_ExtendsOrImplementsClause2.ts(1,17): error TS2304: Cannot find name 'A'. ==== tests/cases/conformance/parser/ecmascript5/ErrorRecovery/ExtendsOrImplementsClauses/parserErrorRecovery_ExtendsOrImplementsClause2.ts (2 errors) ==== class C extends A, { ~ -!!! error TS1005: '{' expected. +!!! error TS1009: Trailing comma not allowed. ~ !!! error TS2304: Cannot find name 'A'. } \ No newline at end of file diff --git a/tests/baselines/reference/parserErrorRecovery_ExtendsOrImplementsClause3.errors.txt b/tests/baselines/reference/parserErrorRecovery_ExtendsOrImplementsClause3.errors.txt index 8eedcc53f1d..c259e1804f8 100644 --- a/tests/baselines/reference/parserErrorRecovery_ExtendsOrImplementsClause3.errors.txt +++ b/tests/baselines/reference/parserErrorRecovery_ExtendsOrImplementsClause3.errors.txt @@ -1,17 +1,11 @@ -tests/cases/conformance/parser/ecmascript5/ErrorRecovery/ExtendsOrImplementsClauses/parserErrorRecovery_ExtendsOrImplementsClause3.ts(1,28): error TS1005: '{' expected. -tests/cases/conformance/parser/ecmascript5/ErrorRecovery/ExtendsOrImplementsClauses/parserErrorRecovery_ExtendsOrImplementsClause3.ts(1,30): error TS1005: ';' expected. -tests/cases/conformance/parser/ecmascript5/ErrorRecovery/ExtendsOrImplementsClauses/parserErrorRecovery_ExtendsOrImplementsClause3.ts(1,17): error TS2304: Cannot find name 'implements'. +tests/cases/conformance/parser/ecmascript5/ErrorRecovery/ExtendsOrImplementsClauses/parserErrorRecovery_ExtendsOrImplementsClause3.ts(1,16): error TS1097: 'extends' list cannot be empty. tests/cases/conformance/parser/ecmascript5/ErrorRecovery/ExtendsOrImplementsClauses/parserErrorRecovery_ExtendsOrImplementsClause3.ts(1,28): error TS2304: Cannot find name 'A'. -==== tests/cases/conformance/parser/ecmascript5/ErrorRecovery/ExtendsOrImplementsClauses/parserErrorRecovery_ExtendsOrImplementsClause3.ts (4 errors) ==== +==== tests/cases/conformance/parser/ecmascript5/ErrorRecovery/ExtendsOrImplementsClauses/parserErrorRecovery_ExtendsOrImplementsClause3.ts (2 errors) ==== class C extends implements A { - ~ -!!! error TS1005: '{' expected. - ~ -!!! error TS1005: ';' expected. - ~~~~~~~~~~ -!!! error TS2304: Cannot find name 'implements'. + +!!! error TS1097: 'extends' list cannot be empty. ~ !!! error TS2304: Cannot find name 'A'. } \ No newline at end of file diff --git a/tests/baselines/reference/parserErrorRecovery_ExtendsOrImplementsClause5.errors.txt b/tests/baselines/reference/parserErrorRecovery_ExtendsOrImplementsClause5.errors.txt index b95f08f2264..7ffab4742f3 100644 --- a/tests/baselines/reference/parserErrorRecovery_ExtendsOrImplementsClause5.errors.txt +++ b/tests/baselines/reference/parserErrorRecovery_ExtendsOrImplementsClause5.errors.txt @@ -1,20 +1,17 @@ -tests/cases/conformance/parser/ecmascript5/ErrorRecovery/ExtendsOrImplementsClauses/parserErrorRecovery_ExtendsOrImplementsClause5.ts(1,18): error TS1005: '{' expected. -tests/cases/conformance/parser/ecmascript5/ErrorRecovery/ExtendsOrImplementsClauses/parserErrorRecovery_ExtendsOrImplementsClause5.ts(1,31): error TS1005: ';' expected. +tests/cases/conformance/parser/ecmascript5/ErrorRecovery/ExtendsOrImplementsClauses/parserErrorRecovery_ExtendsOrImplementsClause5.ts(1,18): error TS1009: Trailing comma not allowed. +tests/cases/conformance/parser/ecmascript5/ErrorRecovery/ExtendsOrImplementsClauses/parserErrorRecovery_ExtendsOrImplementsClause5.ts(1,32): error TS1009: Trailing comma not allowed. tests/cases/conformance/parser/ecmascript5/ErrorRecovery/ExtendsOrImplementsClauses/parserErrorRecovery_ExtendsOrImplementsClause5.ts(1,17): error TS2304: Cannot find name 'A'. -tests/cases/conformance/parser/ecmascript5/ErrorRecovery/ExtendsOrImplementsClauses/parserErrorRecovery_ExtendsOrImplementsClause5.ts(1,20): error TS2304: Cannot find name 'implements'. tests/cases/conformance/parser/ecmascript5/ErrorRecovery/ExtendsOrImplementsClauses/parserErrorRecovery_ExtendsOrImplementsClause5.ts(1,31): error TS2304: Cannot find name 'B'. -==== tests/cases/conformance/parser/ecmascript5/ErrorRecovery/ExtendsOrImplementsClauses/parserErrorRecovery_ExtendsOrImplementsClause5.ts (5 errors) ==== +==== tests/cases/conformance/parser/ecmascript5/ErrorRecovery/ExtendsOrImplementsClauses/parserErrorRecovery_ExtendsOrImplementsClause5.ts (4 errors) ==== class C extends A, implements B, { ~ -!!! error TS1005: '{' expected. - ~ -!!! error TS1005: ';' expected. +!!! error TS1009: Trailing comma not allowed. + ~ +!!! error TS1009: Trailing comma not allowed. ~ !!! error TS2304: Cannot find name 'A'. - ~~~~~~~~~~ -!!! error TS2304: Cannot find name 'implements'. ~ !!! error TS2304: Cannot find name 'B'. } \ No newline at end of file diff --git a/tests/baselines/reference/parserInterfaceDeclaration1.errors.txt b/tests/baselines/reference/parserInterfaceDeclaration1.errors.txt index 0e1dbdb58dc..8c8f317b11a 100644 --- a/tests/baselines/reference/parserInterfaceDeclaration1.errors.txt +++ b/tests/baselines/reference/parserInterfaceDeclaration1.errors.txt @@ -1,17 +1,11 @@ -tests/cases/conformance/parser/ecmascript5/InterfaceDeclarations/parserInterfaceDeclaration1.ts(1,23): error TS1005: '{' expected. -tests/cases/conformance/parser/ecmascript5/InterfaceDeclarations/parserInterfaceDeclaration1.ts(1,33): error TS1005: ';' expected. +tests/cases/conformance/parser/ecmascript5/InterfaceDeclarations/parserInterfaceDeclaration1.ts(1,23): error TS1172: 'extends' clause already seen. tests/cases/conformance/parser/ecmascript5/InterfaceDeclarations/parserInterfaceDeclaration1.ts(1,21): error TS2304: Cannot find name 'A'. -tests/cases/conformance/parser/ecmascript5/InterfaceDeclarations/parserInterfaceDeclaration1.ts(1,31): error TS2304: Cannot find name 'B'. -==== tests/cases/conformance/parser/ecmascript5/InterfaceDeclarations/parserInterfaceDeclaration1.ts (4 errors) ==== +==== tests/cases/conformance/parser/ecmascript5/InterfaceDeclarations/parserInterfaceDeclaration1.ts (2 errors) ==== interface I extends A extends B { ~~~~~~~ -!!! error TS1005: '{' expected. - ~ -!!! error TS1005: ';' expected. +!!! error TS1172: 'extends' clause already seen. ~ !!! error TS2304: Cannot find name 'A'. - ~ -!!! error TS2304: Cannot find name 'B'. } \ No newline at end of file diff --git a/tests/baselines/reference/parserInterfaceDeclaration2.errors.txt b/tests/baselines/reference/parserInterfaceDeclaration2.errors.txt index 7b917b3be8c..9080fac53d2 100644 --- a/tests/baselines/reference/parserInterfaceDeclaration2.errors.txt +++ b/tests/baselines/reference/parserInterfaceDeclaration2.errors.txt @@ -1,20 +1,8 @@ -tests/cases/conformance/parser/ecmascript5/InterfaceDeclarations/parserInterfaceDeclaration2.ts(1,13): error TS1005: '{' expected. -tests/cases/conformance/parser/ecmascript5/InterfaceDeclarations/parserInterfaceDeclaration2.ts(1,24): error TS1005: ';' expected. -tests/cases/conformance/parser/ecmascript5/InterfaceDeclarations/parserInterfaceDeclaration2.ts(1,26): error TS1005: ';' expected. -tests/cases/conformance/parser/ecmascript5/InterfaceDeclarations/parserInterfaceDeclaration2.ts(1,13): error TS2304: Cannot find name 'implements'. -tests/cases/conformance/parser/ecmascript5/InterfaceDeclarations/parserInterfaceDeclaration2.ts(1,24): error TS2304: Cannot find name 'A'. +tests/cases/conformance/parser/ecmascript5/InterfaceDeclarations/parserInterfaceDeclaration2.ts(1,13): error TS1176: Interface declaration cannot have 'implements' clause. -==== tests/cases/conformance/parser/ecmascript5/InterfaceDeclarations/parserInterfaceDeclaration2.ts (5 errors) ==== +==== tests/cases/conformance/parser/ecmascript5/InterfaceDeclarations/parserInterfaceDeclaration2.ts (1 errors) ==== interface I implements A { ~~~~~~~~~~ -!!! error TS1005: '{' expected. - ~ -!!! error TS1005: ';' expected. - ~ -!!! error TS1005: ';' expected. - ~~~~~~~~~~ -!!! error TS2304: Cannot find name 'implements'. - ~ -!!! error TS2304: Cannot find name 'A'. +!!! error TS1176: Interface declaration cannot have 'implements' clause. } \ No newline at end of file diff --git a/tests/baselines/reference/thisInInvalidContexts.errors.txt b/tests/baselines/reference/thisInInvalidContexts.errors.txt index df4c946fa1b..3490e7bd80a 100644 --- a/tests/baselines/reference/thisInInvalidContexts.errors.txt +++ b/tests/baselines/reference/thisInInvalidContexts.errors.txt @@ -1,4 +1,4 @@ -tests/cases/conformance/expressions/thisKeyword/thisInInvalidContexts.ts(38,25): error TS1003: Identifier expected. +tests/cases/conformance/expressions/thisKeyword/thisInInvalidContexts.ts(38,25): error TS1133: Type reference expected. tests/cases/conformance/expressions/thisKeyword/thisInInvalidContexts.ts(38,30): error TS1005: ';' expected. tests/cases/conformance/expressions/thisKeyword/thisInInvalidContexts.ts(3,16): error TS2334: 'this' cannot be referenced in a static property initializer. tests/cases/conformance/expressions/thisKeyword/thisInInvalidContexts.ts(22,15): error TS2332: 'this' cannot be referenced in current location. @@ -53,7 +53,7 @@ tests/cases/conformance/expressions/thisKeyword/thisInInvalidContexts.ts(45,9): class ErrClass3 extends this { ~~~~ -!!! error TS1003: Identifier expected. +!!! error TS1133: Type reference expected. ~ !!! error TS1005: ';' expected. diff --git a/tests/baselines/reference/thisInInvalidContextsExternalModule.errors.txt b/tests/baselines/reference/thisInInvalidContextsExternalModule.errors.txt index 4cbfad2caf9..46d24e035c2 100644 --- a/tests/baselines/reference/thisInInvalidContextsExternalModule.errors.txt +++ b/tests/baselines/reference/thisInInvalidContextsExternalModule.errors.txt @@ -1,4 +1,4 @@ -tests/cases/conformance/expressions/thisKeyword/thisInInvalidContextsExternalModule.ts(38,25): error TS1003: Identifier expected. +tests/cases/conformance/expressions/thisKeyword/thisInInvalidContextsExternalModule.ts(38,25): error TS1133: Type reference expected. tests/cases/conformance/expressions/thisKeyword/thisInInvalidContextsExternalModule.ts(38,30): error TS1005: ';' expected. tests/cases/conformance/expressions/thisKeyword/thisInInvalidContextsExternalModule.ts(48,1): error TS1148: Cannot compile external modules unless the '--module' flag is provided. tests/cases/conformance/expressions/thisKeyword/thisInInvalidContextsExternalModule.ts(48,10): error TS1003: Identifier expected. @@ -55,7 +55,7 @@ tests/cases/conformance/expressions/thisKeyword/thisInInvalidContextsExternalMod class ErrClass3 extends this { ~~~~ -!!! error TS1003: Identifier expected. +!!! error TS1133: Type reference expected. ~ !!! error TS1005: ';' expected. diff --git a/tests/cases/fourslash/completionListInExtendsClause.ts b/tests/cases/fourslash/completionListInExtendsClause.ts index 97ebc51701c..ee2acc6a12c 100644 --- a/tests/cases/fourslash/completionListInExtendsClause.ts +++ b/tests/cases/fourslash/completionListInExtendsClause.ts @@ -27,6 +27,5 @@ verify.completionListIsEmpty(); goTo.marker("3"); verify.completionListIsEmpty(); -// This needs comletion list filtering based on location to work goTo.marker("4"); -verify.not.completionListIsEmpty(); \ No newline at end of file +verify.completionListIsEmpty(); \ No newline at end of file From 092475166c0c396c926de585c5ae2b2c2ba55fb3 Mon Sep 17 00:00:00 2001 From: Cyrus Najmabadi Date: Sun, 30 Nov 2014 15:54:39 -0800 Subject: [PATCH 134/195] Remove unnecessary tokens from the AST. --- src/compiler/parser.ts | 17 ++++++++--------- src/compiler/types.ts | 2 -- 2 files changed, 8 insertions(+), 11 deletions(-) diff --git a/src/compiler/parser.ts b/src/compiler/parser.ts index 01854d9e1dd..9c6f866cbcc 100644 --- a/src/compiler/parser.ts +++ b/src/compiler/parser.ts @@ -2903,10 +2903,9 @@ module ts { continue; } - if (token === SyntaxKind.OpenBracketToken) { + if (parseOptional(SyntaxKind.OpenBracketToken)) { var indexedAccess = createNode(SyntaxKind.ElementAccessExpression, expression.pos); indexedAccess.expression = expression; - indexedAccess.openBracketToken = parseTokenNode(SyntaxKind.OpenBracketToken); // It's not uncommon for a user to write: "new Type[]". // Check for that common pattern and report a better error message. @@ -2921,7 +2920,7 @@ module ts { indexedAccess.argumentExpression = createMissingNode(); } - indexedAccess.closeBracketToken = parseTokenNode(SyntaxKind.CloseBracketToken); + parseExpected(SyntaxKind.CloseBracketToken); expression = finishNode(indexedAccess); continue; } @@ -4742,15 +4741,15 @@ module ts { function checkElementAccessExpression(node: ElementAccessExpression) { if (node.argumentExpression.kind === SyntaxKind.Missing) { - if (node.parent.kind === SyntaxKind.NewExpression && - (node.parent).expression === node) { - - var start = skipTrivia(sourceText, node.openBracketToken.pos); - var end = node.closeBracketToken.end; + if (node.parent.kind === SyntaxKind.NewExpression && (node.parent).expression === node) { + var start = skipTrivia(sourceText, node.expression.end); + var end = node.end; return grammarErrorAtPos(start, end - start, Diagnostics.new_T_cannot_be_used_to_create_an_array_Use_new_Array_T_instead); } else { - return grammarErrorOnNode(node.closeBracketToken, Diagnostics.Expression_expected); + var start = node.end - "]".length; + var end = node.end; + return grammarErrorAtPos(start, end - start, Diagnostics.Expression_expected); } } } diff --git a/src/compiler/types.ts b/src/compiler/types.ts index 94c4c1b412a..94a3f9c48ee 100644 --- a/src/compiler/types.ts +++ b/src/compiler/types.ts @@ -553,9 +553,7 @@ module ts { export interface ElementAccessExpression extends MemberExpression { expression: LeftHandSideExpression; - openBracketToken: Node; argumentExpression: Expression; - closeBracketToken: Node; } export interface CallExpression extends LeftHandSideExpression { From f057d4efd80c2d417de937256fb22bba413e61ad Mon Sep 17 00:00:00 2001 From: Cyrus Najmabadi Date: Sun, 30 Nov 2014 19:23:06 -0800 Subject: [PATCH 135/195] CR feedback. --- src/compiler/checker.ts | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index ef234ac6c4b..1725d2f9b7c 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -4420,19 +4420,25 @@ module ts { return type; function narrowTypeByEquality(type: Type, expr: BinaryExpression, assumeTrue: boolean): Type { - var left = expr.left; - var right = expr.right; // Check that we have 'typeof ' on the left and string literal on the right - if (left.kind !== SyntaxKind.TypeOfExpression || - left.expression.kind !== SyntaxKind.Identifier || right.kind !== SyntaxKind.StringLiteral || - getResolvedSymbol(left.expression) !== symbol) { + if (expr.left.kind !== SyntaxKind.TypeOfExpression || expr.right.kind !== SyntaxKind.StringLiteral) { return type; } + + var left = expr.left; + var right = expr.right; + if (left.expression.kind !== SyntaxKind.Identifier || + getResolvedSymbol(left.expression) !== symbol) { + + return type; + } + var t = right.text; var checkType: Type = t === "string" ? stringType : t === "number" ? numberType : t === "boolean" ? booleanType : emptyObjectType; if (expr.operator === SyntaxKind.ExclamationEqualsEqualsToken) { assumeTrue = !assumeTrue; } + if (assumeTrue) { // The assumed result is true. If check was for a primitive type, that type is the narrowed type. Otherwise we can // remove the primitive types from the narrowed type. From 3c028f03e198d270ab5d3dec6b90efe4714719a9 Mon Sep 17 00:00:00 2001 From: Cyrus Najmabadi Date: Sun, 30 Nov 2014 19:51:42 -0800 Subject: [PATCH 136/195] Tighten types in the expression AST. --- src/compiler/types.ts | 12 ++++++------ src/services/syntax/parser.ts | 10 +++++----- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/src/compiler/types.ts b/src/compiler/types.ts index 94a3f9c48ee..e342eec58ec 100644 --- a/src/compiler/types.ts +++ b/src/compiler/types.ts @@ -457,7 +457,7 @@ module ts { export interface PrefixUnaryExpression extends UnaryExpression { operator: SyntaxKind; - operand: Expression; + operand: UnaryExpression; } export interface PostfixUnaryExpression extends PostfixExpression { @@ -482,15 +482,15 @@ module ts { } export interface DeleteExpression extends UnaryExpression { - expression: Expression; + expression: UnaryExpression; } export interface TypeOfExpression extends UnaryExpression { - expression: Expression; + expression: UnaryExpression; } export interface VoidExpression extends UnaryExpression { - expression: Expression; + expression: UnaryExpression; } export interface YieldExpression extends Expression { @@ -557,7 +557,7 @@ module ts { } export interface CallExpression extends LeftHandSideExpression { - expression: Expression; + expression: LeftHandSideExpression; typeArguments?: NodeArray; arguments: NodeArray; } @@ -573,7 +573,7 @@ module ts { export interface TypeAssertion extends UnaryExpression { type: TypeNode; - expression: Expression; + expression: UnaryExpression; } export interface Statement extends Node, ModuleElement { diff --git a/src/services/syntax/parser.ts b/src/services/syntax/parser.ts index c4b282380d7..36897ad1c88 100644 --- a/src/services/syntax/parser.ts +++ b/src/services/syntax/parser.ts @@ -999,18 +999,18 @@ module TypeScript.Parser { // Technically a keyword is valid here as all keywords are identifier names. // However, often we'll encounter this in error situations when the keyword // is actually starting another valid construct. - + // // So, we check for the following specific case: - + // // name. // keyword identifierNameOrKeyword - + // // Note: the newlines are important here. For example, if that above code // were rewritten into: - + // // name.keyword // identifierNameOrKeyword - + // // Then we would consider it valid. That's because ASI would take effect and // the code would be implicitly: "name.keyword; identifierNameOrKeyword". // In the first case though, ASI will not take effect because there is not a From 632591d3053974b7a03f40e75f17552d78250610 Mon Sep 17 00:00:00 2001 From: Cyrus Najmabadi Date: Sat, 29 Nov 2014 17:47:45 -0800 Subject: [PATCH 137/195] Rename some kinds to match new parser. Conflicts: src/services/syntax/SyntaxGenerator.js.map --- src/services/syntax/SyntaxGenerator.js | 8 ++-- src/services/syntax/SyntaxGenerator.js.map | 4 ++ src/services/syntax/parser.ts | 14 +++---- src/services/syntax/prettyPrinter.ts | 4 +- src/services/syntax/syntaxGenerator.ts | 4 +- .../syntax/syntaxInterfaces.generated.ts | 8 ++-- src/services/syntax/syntaxKind.ts | 4 +- .../syntax/syntaxNodes.concrete.generated.ts | 16 +++---- src/services/syntax/syntaxTree.ts | 10 ++--- src/services/syntax/syntaxUtilities.ts | 42 ++----------------- .../syntax/syntaxVisitor.generated.ts | 8 ++-- src/services/syntax/syntaxWalker.generated.ts | 4 +- 12 files changed, 47 insertions(+), 79 deletions(-) diff --git a/src/services/syntax/SyntaxGenerator.js b/src/services/syntax/SyntaxGenerator.js index 6d1d80bb75e..467c4f4ee9d 100644 --- a/src/services/syntax/SyntaxGenerator.js +++ b/src/services/syntax/SyntaxGenerator.js @@ -552,8 +552,8 @@ var TypeScript; SyntaxKind[SyntaxKind["EnumDeclaration"] = 140] = "EnumDeclaration"; SyntaxKind[SyntaxKind["ImportDeclaration"] = 141] = "ImportDeclaration"; SyntaxKind[SyntaxKind["ExportAssignment"] = 142] = "ExportAssignment"; - SyntaxKind[SyntaxKind["MemberFunctionDeclaration"] = 143] = "MemberFunctionDeclaration"; - SyntaxKind[SyntaxKind["MemberVariableDeclaration"] = 144] = "MemberVariableDeclaration"; + SyntaxKind[SyntaxKind["MethodDeclaration"] = 143] = "MethodDeclaration"; + SyntaxKind[SyntaxKind["PropertyDeclaration"] = 144] = "PropertyDeclaration"; SyntaxKind[SyntaxKind["ConstructorDeclaration"] = 145] = "ConstructorDeclaration"; SyntaxKind[SyntaxKind["GetAccessor"] = 146] = "GetAccessor"; SyntaxKind[SyntaxKind["SetAccessor"] = 147] = "SetAccessor"; @@ -1530,7 +1530,7 @@ var definitions = [ isTypeScriptSpecific: true }, { - name: 'MemberFunctionDeclarationSyntax', + name: 'MethodDeclarationSyntax', baseType: 'ISyntaxNode', interfaces: ['IMemberDeclarationSyntax', 'IPropertyAssignmentSyntax'], children: [ @@ -1568,7 +1568,7 @@ var definitions = [ isTypeScriptSpecific: true }, { - name: 'MemberVariableDeclarationSyntax', + name: 'PropertyDeclarationSyntax', baseType: 'ISyntaxNode', interfaces: ['IMemberDeclarationSyntax'], children: [ diff --git a/src/services/syntax/SyntaxGenerator.js.map b/src/services/syntax/SyntaxGenerator.js.map index 03cbba80a47..aeb0a13a3c9 100644 --- a/src/services/syntax/SyntaxGenerator.js.map +++ b/src/services/syntax/SyntaxGenerator.js.map @@ -20,6 +20,7 @@ <<<<<<< HEAD <<<<<<< HEAD <<<<<<< HEAD +<<<<<<< HEAD <<<<<<< Updated upstream {"version":3,"file":"SyntaxGenerator.js","sourceRoot":"","sources":["file:///C:/VSPro_1/src/typescript/public_cyrusn/src/compiler/sys.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/core/errors.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/core/arrayUtilities.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/core/stringUtilities.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/syntax/syntaxKind.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/syntax/syntaxFacts.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/syntax/SyntaxGenerator.ts"],"names":["getWScriptSystem","getWScriptSystem.readFile","getWScriptSystem.writeFile","getNodeSystem","getNodeSystem.readFile","getNodeSystem.writeFile","getNodeSystem.fileChanged","TypeScript","TypeScript.Errors","TypeScript.Errors.constructor","TypeScript.Errors.argument","TypeScript.Errors.argumentOutOfRange","TypeScript.Errors.argumentNull","TypeScript.Errors.abstract","TypeScript.Errors.notYetImplemented","TypeScript.Errors.invalidOperation","TypeScript.ArrayUtilities","TypeScript.ArrayUtilities.constructor","TypeScript.ArrayUtilities.sequenceEquals","TypeScript.ArrayUtilities.contains","TypeScript.ArrayUtilities.distinct","TypeScript.ArrayUtilities.last","TypeScript.ArrayUtilities.lastOrDefault","TypeScript.ArrayUtilities.firstOrDefault","TypeScript.ArrayUtilities.first","TypeScript.ArrayUtilities.sum","TypeScript.ArrayUtilities.select","TypeScript.ArrayUtilities.where","TypeScript.ArrayUtilities.any","TypeScript.ArrayUtilities.all","TypeScript.ArrayUtilities.binarySearch","TypeScript.ArrayUtilities.createArray","TypeScript.ArrayUtilities.grow","TypeScript.ArrayUtilities.copy","TypeScript.ArrayUtilities.indexOf","TypeScript.StringUtilities","TypeScript.StringUtilities.constructor","TypeScript.StringUtilities.isString","TypeScript.StringUtilities.endsWith","TypeScript.StringUtilities.startsWith","TypeScript.StringUtilities.repeat","TypeScript.SyntaxKind","TypeScript.SyntaxFacts","TypeScript.SyntaxFacts.getTokenKind","TypeScript.SyntaxFacts.getText","TypeScript.SyntaxFacts.isAnyKeyword","TypeScript.SyntaxFacts.isAnyPunctuation","TypeScript.SyntaxFacts.isPrefixUnaryExpressionOperatorToken","TypeScript.SyntaxFacts.isBinaryExpressionOperatorToken","TypeScript.SyntaxFacts.isAssignmentOperatorToken","TypeScript.SyntaxFacts.isType","firstKind","getStringWithoutSuffix","getNameWithoutSuffix","getType","camelCase","getSafeName","generateConstructorFunction","generateSyntaxInterfaces","generateSyntaxInterface","generateNodes","isInterface","generateWalker","firstEnumName","groupBy","generateKeywordCondition","min","max","generateUtilities","generateScannerUtilities","syntaxKindName","generateVisitor"],"mappings":"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"} ======= @@ -91,3 +92,6 @@ ======= {"version":3,"file":"SyntaxGenerator.js","sourceRoot":"","sources":["file:///C:/VSPro_1/src/typescript/public_cyrusn/src/compiler/sys.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/core/errors.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/core/arrayUtilities.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/core/stringUtilities.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/syntax/syntaxKind.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/syntax/syntaxFacts.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/syntax/SyntaxGenerator.ts"],"names":["getWScriptSystem","getWScriptSystem.readFile","getWScriptSystem.writeFile","getNodeSystem","getNodeSystem.readFile","getNodeSystem.writeFile","getNodeSystem.fileChanged","TypeScript","TypeScript.Errors","TypeScript.Errors.constructor","TypeScript.Errors.argument","TypeScript.Errors.argumentOutOfRange","TypeScript.Errors.argumentNull","TypeScript.Errors.abstract","TypeScript.Errors.notYetImplemented","TypeScript.Errors.invalidOperation","TypeScript.ArrayUtilities","TypeScript.ArrayUtilities.constructor","TypeScript.ArrayUtilities.sequenceEquals","TypeScript.ArrayUtilities.contains","TypeScript.ArrayUtilities.distinct","TypeScript.ArrayUtilities.last","TypeScript.ArrayUtilities.lastOrDefault","TypeScript.ArrayUtilities.firstOrDefault","TypeScript.ArrayUtilities.first","TypeScript.ArrayUtilities.sum","TypeScript.ArrayUtilities.select","TypeScript.ArrayUtilities.where","TypeScript.ArrayUtilities.any","TypeScript.ArrayUtilities.all","TypeScript.ArrayUtilities.binarySearch","TypeScript.ArrayUtilities.createArray","TypeScript.ArrayUtilities.grow","TypeScript.ArrayUtilities.copy","TypeScript.ArrayUtilities.indexOf","TypeScript.StringUtilities","TypeScript.StringUtilities.constructor","TypeScript.StringUtilities.isString","TypeScript.StringUtilities.endsWith","TypeScript.StringUtilities.startsWith","TypeScript.StringUtilities.repeat","TypeScript.SyntaxKind","TypeScript.SyntaxFacts","TypeScript.SyntaxFacts.getTokenKind","TypeScript.SyntaxFacts.getText","TypeScript.SyntaxFacts.isAnyKeyword","TypeScript.SyntaxFacts.isAnyPunctuation","TypeScript.SyntaxFacts.isPrefixUnaryExpressionOperatorToken","TypeScript.SyntaxFacts.isBinaryExpressionOperatorToken","TypeScript.SyntaxFacts.isAssignmentOperatorToken","TypeScript.SyntaxFacts.isType","getSyntaxKindEnum","firstKind","getStringWithoutSuffix","getNameWithoutSuffix","getType","camelCase","getSafeName","generateConstructorFunction","generateSyntaxInterfaces","generateSyntaxInterface","generateNodes","isInterface","generateWalker","firstEnumName","groupBy","generateKeywordCondition","min","max","generateUtilities","generateScannerUtilities","syntaxKindName","generateVisitor"],"mappings":"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"} >>>>>>> c9b778e... Rename 'CastExpression' to 'TypeAssertionExpression'. +======= +{"version":3,"file":"SyntaxGenerator.js","sourceRoot":"","sources":["file:///C:/VSPro_1/src/typescript/public_cyrusn/src/compiler/sys.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/core/errors.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/core/arrayUtilities.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/core/stringUtilities.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/syntax/syntaxKind.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/syntax/syntaxFacts.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/syntax/SyntaxGenerator.ts"],"names":["getWScriptSystem","getWScriptSystem.readFile","getWScriptSystem.writeFile","getNodeSystem","getNodeSystem.readFile","getNodeSystem.writeFile","getNodeSystem.fileChanged","TypeScript","TypeScript.Errors","TypeScript.Errors.constructor","TypeScript.Errors.argument","TypeScript.Errors.argumentOutOfRange","TypeScript.Errors.argumentNull","TypeScript.Errors.abstract","TypeScript.Errors.notYetImplemented","TypeScript.Errors.invalidOperation","TypeScript.ArrayUtilities","TypeScript.ArrayUtilities.constructor","TypeScript.ArrayUtilities.sequenceEquals","TypeScript.ArrayUtilities.contains","TypeScript.ArrayUtilities.distinct","TypeScript.ArrayUtilities.last","TypeScript.ArrayUtilities.lastOrDefault","TypeScript.ArrayUtilities.firstOrDefault","TypeScript.ArrayUtilities.first","TypeScript.ArrayUtilities.sum","TypeScript.ArrayUtilities.select","TypeScript.ArrayUtilities.where","TypeScript.ArrayUtilities.any","TypeScript.ArrayUtilities.all","TypeScript.ArrayUtilities.binarySearch","TypeScript.ArrayUtilities.createArray","TypeScript.ArrayUtilities.grow","TypeScript.ArrayUtilities.copy","TypeScript.ArrayUtilities.indexOf","TypeScript.StringUtilities","TypeScript.StringUtilities.constructor","TypeScript.StringUtilities.isString","TypeScript.StringUtilities.endsWith","TypeScript.StringUtilities.startsWith","TypeScript.StringUtilities.repeat","TypeScript.SyntaxKind","TypeScript.SyntaxFacts","TypeScript.SyntaxFacts.getTokenKind","TypeScript.SyntaxFacts.getText","TypeScript.SyntaxFacts.isAnyKeyword","TypeScript.SyntaxFacts.isAnyPunctuation","TypeScript.SyntaxFacts.isPrefixUnaryExpressionOperatorToken","TypeScript.SyntaxFacts.isBinaryExpressionOperatorToken","TypeScript.SyntaxFacts.isAssignmentOperatorToken","TypeScript.SyntaxFacts.isType","getSyntaxKindEnum","firstKind","getStringWithoutSuffix","getNameWithoutSuffix","getType","camelCase","getSafeName","generateConstructorFunction","generateSyntaxInterfaces","generateSyntaxInterface","generateNodes","isInterface","generateWalker","firstEnumName","groupBy","generateKeywordCondition","min","max","generateUtilities","generateScannerUtilities","syntaxKindName","generateVisitor"],"mappings":"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"} +>>>>>>> 5910bee... Rename some kinds to match new parser. diff --git a/src/services/syntax/parser.ts b/src/services/syntax/parser.ts index b811206c02f..262a9709f72 100644 --- a/src/services/syntax/parser.ts +++ b/src/services/syntax/parser.ts @@ -1375,10 +1375,10 @@ module TypeScript.Parser { // if we have a call signature. If so, then this is a member function, otherwise // it's a member variable. if (asterixToken || isCallSignature(/*peekIndex:*/ 0)) { - return parseMemberFunctionDeclaration(modifiers, asterixToken, propertyName); + return parseMethodDeclaration(modifiers, asterixToken, propertyName); } else { - return parseMemberVariableDeclaration(modifiers, propertyName); + return parsePropertyDeclaration(modifiers, propertyName); } } else { @@ -1405,13 +1405,13 @@ module TypeScript.Parser { parseFunctionBody(/*isGenerator:*/ false, /*asyncContext:*/ false)); } - function parseMemberFunctionDeclaration(modifiers: ISyntaxToken[], asteriskToken: ISyntaxToken, propertyName: IPropertyNameSyntax): MemberFunctionDeclarationSyntax { + function parseMethodDeclaration(modifiers: ISyntaxToken[], asteriskToken: ISyntaxToken, propertyName: IPropertyNameSyntax): MethodDeclarationSyntax { // Note: if we see an arrow after the close paren, then try to parse out a function // block anyways. It's likely the user just though '=> expr' was legal anywhere a // block was legal. var asyncContext = containsAsync(modifiers); var isGenerator = asteriskToken !== undefined; - return new MemberFunctionDeclarationSyntax(contextFlags, + return new MethodDeclarationSyntax(contextFlags, modifiers, asteriskToken, propertyName, @@ -1429,8 +1429,8 @@ module TypeScript.Parser { return false; } - function parseMemberVariableDeclaration(modifiers: ISyntaxToken[], propertyName: IPropertyNameSyntax): MemberVariableDeclarationSyntax { - return new MemberVariableDeclarationSyntax(contextFlags, + function parsePropertyDeclaration(modifiers: ISyntaxToken[], propertyName: IPropertyNameSyntax): PropertyDeclarationSyntax { + return new PropertyDeclarationSyntax(contextFlags, modifiers, new VariableDeclaratorSyntax(contextFlags, propertyName, parseOptionalTypeAnnotation(/*allowStringLiteral:*/ false), @@ -3664,7 +3664,7 @@ module TypeScript.Parser { var propertyName = parsePropertyName(); if (modifiers.length > 0 || asterixToken !== undefined || isCallSignature(/*peekIndex:*/ 0)) { - return parseMemberFunctionDeclaration(modifiers, asterixToken, propertyName); + return parseMethodDeclaration(modifiers, asterixToken, propertyName); } else { // PropertyName[?Yield] : AssignmentExpression[In, ?Yield] diff --git a/src/services/syntax/prettyPrinter.ts b/src/services/syntax/prettyPrinter.ts index b7808bc7023..8bbf84edb07 100644 --- a/src/services/syntax/prettyPrinter.ts +++ b/src/services/syntax/prettyPrinter.ts @@ -693,7 +693,7 @@ module TypeScript.PrettyPrinter { this.appendBody(node.body); } - public visitMemberFunctionDeclaration(node: MemberFunctionDeclarationSyntax): void { + public visitMethodDeclaration(node: MethodDeclarationSyntax): void { this.appendSpaceList(node.modifiers); this.ensureSpace(); visitNodeOrToken(this, node.propertyName); @@ -723,7 +723,7 @@ module TypeScript.PrettyPrinter { visitNodeOrToken(this, node.body); } - public visitMemberVariableDeclaration(node: MemberVariableDeclarationSyntax): void { + public visitPropertyDeclaration(node: PropertyDeclarationSyntax): void { this.appendSpaceList(node.modifiers); this.ensureSpace(); visitNodeOrToken(this, node.variableDeclarator); diff --git a/src/services/syntax/syntaxGenerator.ts b/src/services/syntax/syntaxGenerator.ts index 9ce1e49876a..fb528d9d5cd 100644 --- a/src/services/syntax/syntaxGenerator.ts +++ b/src/services/syntax/syntaxGenerator.ts @@ -670,7 +670,7 @@ var definitions:ITypeDefinition[] = [ isTypeScriptSpecific: true }, { - name: 'MemberFunctionDeclarationSyntax', + name: 'MethodDeclarationSyntax', baseType: 'ISyntaxNode', interfaces: ['IMemberDeclarationSyntax', 'IPropertyAssignmentSyntax'], children: [ @@ -708,7 +708,7 @@ var definitions:ITypeDefinition[] = [ isTypeScriptSpecific: true }, { - name: 'MemberVariableDeclarationSyntax', + name: 'PropertyDeclarationSyntax', baseType: 'ISyntaxNode', interfaces: ['IMemberDeclarationSyntax'], children: [ diff --git a/src/services/syntax/syntaxInterfaces.generated.ts b/src/services/syntax/syntaxInterfaces.generated.ts index 29cba2bec81..acde5351eda 100644 --- a/src/services/syntax/syntaxInterfaces.generated.ts +++ b/src/services/syntax/syntaxInterfaces.generated.ts @@ -150,21 +150,21 @@ module TypeScript { } export interface ExportAssignmentConstructor { new (data: number, modifiers: ISyntaxToken[], exportKeyword: ISyntaxToken, equalsToken: ISyntaxToken, identifier: ISyntaxToken, semicolonToken: ISyntaxToken): ExportAssignmentSyntax } - export interface MemberFunctionDeclarationSyntax extends ISyntaxNode, IMemberDeclarationSyntax, IPropertyAssignmentSyntax { + export interface MethodDeclarationSyntax extends ISyntaxNode, IMemberDeclarationSyntax, IPropertyAssignmentSyntax { modifiers: ISyntaxToken[]; asterixToken: ISyntaxToken; propertyName: IPropertyNameSyntax; callSignature: CallSignatureSyntax; body: BlockSyntax | ExpressionBody | ISyntaxToken; } - export interface MemberFunctionDeclarationConstructor { new (data: number, modifiers: ISyntaxToken[], asterixToken: ISyntaxToken, propertyName: IPropertyNameSyntax, callSignature: CallSignatureSyntax, body: BlockSyntax | ExpressionBody | ISyntaxToken): MemberFunctionDeclarationSyntax } + export interface MethodDeclarationConstructor { new (data: number, modifiers: ISyntaxToken[], asterixToken: ISyntaxToken, propertyName: IPropertyNameSyntax, callSignature: CallSignatureSyntax, body: BlockSyntax | ExpressionBody | ISyntaxToken): MethodDeclarationSyntax } - export interface MemberVariableDeclarationSyntax extends ISyntaxNode, IMemberDeclarationSyntax { + export interface PropertyDeclarationSyntax extends ISyntaxNode, IMemberDeclarationSyntax { modifiers: ISyntaxToken[]; variableDeclarator: VariableDeclaratorSyntax; semicolonToken: ISyntaxToken; } - export interface MemberVariableDeclarationConstructor { new (data: number, modifiers: ISyntaxToken[], variableDeclarator: VariableDeclaratorSyntax, semicolonToken: ISyntaxToken): MemberVariableDeclarationSyntax } + export interface PropertyDeclarationConstructor { new (data: number, modifiers: ISyntaxToken[], variableDeclarator: VariableDeclaratorSyntax, semicolonToken: ISyntaxToken): PropertyDeclarationSyntax } export interface ConstructorDeclarationSyntax extends ISyntaxNode, IClassElementSyntax { modifiers: ISyntaxToken[]; diff --git a/src/services/syntax/syntaxKind.ts b/src/services/syntax/syntaxKind.ts index ce60413d884..2d1b3e6638a 100644 --- a/src/services/syntax/syntaxKind.ts +++ b/src/services/syntax/syntaxKind.ts @@ -179,8 +179,8 @@ module TypeScript { ExportAssignment, // ClassElements - MemberFunctionDeclaration, - MemberVariableDeclaration, + MethodDeclaration, + PropertyDeclaration, ConstructorDeclaration, // ClassElement and PropertyAssignment diff --git a/src/services/syntax/syntaxNodes.concrete.generated.ts b/src/services/syntax/syntaxNodes.concrete.generated.ts index 4aa7f97398b..9409d94fed2 100644 --- a/src/services/syntax/syntaxNodes.concrete.generated.ts +++ b/src/services/syntax/syntaxNodes.concrete.generated.ts @@ -409,7 +409,7 @@ module TypeScript { } } - export var MemberFunctionDeclarationSyntax: MemberFunctionDeclarationConstructor = function(data: number, modifiers: ISyntaxToken[], asterixToken: ISyntaxToken, propertyName: IPropertyNameSyntax, callSignature: CallSignatureSyntax, body: BlockSyntax | ExpressionBody | ISyntaxToken) { + export var MethodDeclarationSyntax: MethodDeclarationConstructor = function(data: number, modifiers: ISyntaxToken[], asterixToken: ISyntaxToken, propertyName: IPropertyNameSyntax, callSignature: CallSignatureSyntax, body: BlockSyntax | ExpressionBody | ISyntaxToken) { if (data) { this.__data = data; } this.modifiers = modifiers, this.asterixToken = asterixToken, @@ -422,9 +422,9 @@ module TypeScript { callSignature.parent = this, body && (body.parent = this); }; - MemberFunctionDeclarationSyntax.prototype.kind = SyntaxKind.MemberFunctionDeclaration; - MemberFunctionDeclarationSyntax.prototype.childCount = 5; - MemberFunctionDeclarationSyntax.prototype.childAt = function(index: number): ISyntaxElement { + MethodDeclarationSyntax.prototype.kind = SyntaxKind.MethodDeclaration; + MethodDeclarationSyntax.prototype.childCount = 5; + MethodDeclarationSyntax.prototype.childAt = function(index: number): ISyntaxElement { switch (index) { case 0: return this.modifiers; case 1: return this.asterixToken; @@ -434,7 +434,7 @@ module TypeScript { } } - export var MemberVariableDeclarationSyntax: MemberVariableDeclarationConstructor = function(data: number, modifiers: ISyntaxToken[], variableDeclarator: VariableDeclaratorSyntax, semicolonToken: ISyntaxToken) { + export var PropertyDeclarationSyntax: PropertyDeclarationConstructor = function(data: number, modifiers: ISyntaxToken[], variableDeclarator: VariableDeclaratorSyntax, semicolonToken: ISyntaxToken) { if (data) { this.__data = data; } this.modifiers = modifiers, this.variableDeclarator = variableDeclarator, @@ -443,9 +443,9 @@ module TypeScript { variableDeclarator.parent = this, semicolonToken && (semicolonToken.parent = this); }; - MemberVariableDeclarationSyntax.prototype.kind = SyntaxKind.MemberVariableDeclaration; - MemberVariableDeclarationSyntax.prototype.childCount = 3; - MemberVariableDeclarationSyntax.prototype.childAt = function(index: number): ISyntaxElement { + PropertyDeclarationSyntax.prototype.kind = SyntaxKind.PropertyDeclaration; + PropertyDeclarationSyntax.prototype.childCount = 3; + PropertyDeclarationSyntax.prototype.childAt = function(index: number): ISyntaxElement { switch (index) { case 0: return this.modifiers; case 1: return this.variableDeclarator; diff --git a/src/services/syntax/syntaxTree.ts b/src/services/syntax/syntaxTree.ts index 99f415ebd78..b2b7739982d 100644 --- a/src/services/syntax/syntaxTree.ts +++ b/src/services/syntax/syntaxTree.ts @@ -551,13 +551,13 @@ module TypeScript { return false; } - public visitMemberVariableDeclaration(node: MemberVariableDeclarationSyntax): void { + public visitPropertyDeclaration(node: PropertyDeclarationSyntax): void { if (this.checkClassElementModifiers(node.modifiers) || this.checkForDisallowedAsyncModifier(node.modifiers)) { return; } - super.visitMemberVariableDeclaration(node); + super.visitPropertyDeclaration(node); } public visitMethodSignature(node: MethodSignatureSyntax): void { @@ -579,7 +579,7 @@ module TypeScript { super.visitPropertySignature(node); } - public visitMemberFunctionDeclaration(node: MemberFunctionDeclarationSyntax): void { + public visitMethodDeclaration(node: MethodDeclarationSyntax): void { if (node.parent && node.parent.parent && node.parent.kind === SyntaxKind.List && node.parent.parent.kind === SyntaxKind.ObjectLiteralExpression) { @@ -603,7 +603,7 @@ module TypeScript { return; } - super.visitMemberFunctionDeclaration(node); + super.visitMethodDeclaration(node); } private checkForDisallowedObjectLiteralMethod(modifiers: ISyntaxToken[]): boolean { @@ -1556,7 +1556,7 @@ module TypeScript { } private checkVariableDeclaratorIdentifier(node: VariableDeclaratorSyntax): boolean { - if (node.parent.kind !== SyntaxKind.MemberVariableDeclaration) { + if (node.parent.kind !== SyntaxKind.PropertyDeclaration) { Debug.assert(isToken(node.propertyName), "A normal variable declarator must always have a token for a name."); if (this.checkForDisallowedEvalOrArguments(node, node.propertyName)) { return true; diff --git a/src/services/syntax/syntaxUtilities.ts b/src/services/syntax/syntaxUtilities.ts index bbc9506637b..dc6aa33e041 100644 --- a/src/services/syntax/syntaxUtilities.ts +++ b/src/services/syntax/syntaxUtilities.ts @@ -18,7 +18,7 @@ module TypeScript { case SyntaxKind.ParenthesizedArrowFunctionExpression: case SyntaxKind.FunctionExpression: case SyntaxKind.FunctionDeclaration: - case SyntaxKind.MemberFunctionDeclaration: + case SyntaxKind.MethodDeclaration: case SyntaxKind.ConstructorDeclaration: case SyntaxKind.GetAccessor: case SyntaxKind.SetAccessor: @@ -101,11 +101,10 @@ module TypeScript { switch (element.kind) { case SyntaxKind.ConstructorDeclaration: case SyntaxKind.IndexSignature: - case SyntaxKind.MemberFunctionDeclaration: + case SyntaxKind.MethodDeclaration: case SyntaxKind.GetAccessor: case SyntaxKind.SetAccessor: - case SyntaxKind.MemberFunctionDeclaration: - case SyntaxKind.MemberVariableDeclaration: + case SyntaxKind.PropertyDeclaration: return true; } } @@ -227,40 +226,5 @@ module TypeScript { return undefined; } } - - export function isAmbientDeclarationSyntax(positionNode: ISyntaxNode): boolean { - if (!positionNode) { - return false; - } - - var node = positionNode; - switch (node.kind) { - case SyntaxKind.ModuleDeclaration: - case SyntaxKind.ClassDeclaration: - case SyntaxKind.FunctionDeclaration: - case SyntaxKind.VariableStatement: - case SyntaxKind.EnumDeclaration: - if (SyntaxUtilities.containsToken((node).modifiers, SyntaxKind.DeclareKeyword)) { - return true; - } - // Fall through to check if syntax container is ambient - - case SyntaxKind.ImportDeclaration: - case SyntaxKind.ConstructorDeclaration: - case SyntaxKind.MemberFunctionDeclaration: - case SyntaxKind.GetAccessor: - case SyntaxKind.SetAccessor: - case SyntaxKind.MemberVariableDeclaration: - if (SyntaxUtilities.isClassElement(node) || SyntaxUtilities.isModuleElement(node)) { - return SyntaxUtilities.isAmbientDeclarationSyntax(Syntax.containingNode(positionNode)); - } - - case SyntaxKind.EnumElement: - return SyntaxUtilities.isAmbientDeclarationSyntax(Syntax.containingNode(Syntax.containingNode(positionNode))); - - default: - return SyntaxUtilities.isAmbientDeclarationSyntax(Syntax.containingNode(positionNode)); - } - } } } \ No newline at end of file diff --git a/src/services/syntax/syntaxVisitor.generated.ts b/src/services/syntax/syntaxVisitor.generated.ts index 5fb6aae9911..a15496cf9f7 100644 --- a/src/services/syntax/syntaxVisitor.generated.ts +++ b/src/services/syntax/syntaxVisitor.generated.ts @@ -22,8 +22,8 @@ module TypeScript { case SyntaxKind.EnumDeclaration: return visitor.visitEnumDeclaration(element); case SyntaxKind.ImportDeclaration: return visitor.visitImportDeclaration(element); case SyntaxKind.ExportAssignment: return visitor.visitExportAssignment(element); - case SyntaxKind.MemberFunctionDeclaration: return visitor.visitMemberFunctionDeclaration(element); - case SyntaxKind.MemberVariableDeclaration: return visitor.visitMemberVariableDeclaration(element); + case SyntaxKind.MethodDeclaration: return visitor.visitMethodDeclaration(element); + case SyntaxKind.PropertyDeclaration: return visitor.visitPropertyDeclaration(element); case SyntaxKind.ConstructorDeclaration: return visitor.visitConstructorDeclaration(element); case SyntaxKind.GetAccessor: return visitor.visitGetAccessor(element); case SyntaxKind.SetAccessor: return visitor.visitSetAccessor(element); @@ -122,8 +122,8 @@ module TypeScript { visitEnumDeclaration(node: EnumDeclarationSyntax): any; visitImportDeclaration(node: ImportDeclarationSyntax): any; visitExportAssignment(node: ExportAssignmentSyntax): any; - visitMemberFunctionDeclaration(node: MemberFunctionDeclarationSyntax): any; - visitMemberVariableDeclaration(node: MemberVariableDeclarationSyntax): any; + visitMethodDeclaration(node: MethodDeclarationSyntax): any; + visitPropertyDeclaration(node: PropertyDeclarationSyntax): any; visitConstructorDeclaration(node: ConstructorDeclarationSyntax): any; visitGetAccessor(node: GetAccessorSyntax): any; visitSetAccessor(node: SetAccessorSyntax): any; diff --git a/src/services/syntax/syntaxWalker.generated.ts b/src/services/syntax/syntaxWalker.generated.ts index 4dd4df3f346..448c0bc5726 100644 --- a/src/services/syntax/syntaxWalker.generated.ts +++ b/src/services/syntax/syntaxWalker.generated.ts @@ -149,7 +149,7 @@ module TypeScript { this.visitOptionalToken(node.semicolonToken); } - public visitMemberFunctionDeclaration(node: MemberFunctionDeclarationSyntax): void { + public visitMethodDeclaration(node: MethodDeclarationSyntax): void { this.visitList(node.modifiers); this.visitOptionalToken(node.asterixToken); visitNodeOrToken(this, node.propertyName); @@ -157,7 +157,7 @@ module TypeScript { visitNodeOrToken(this, node.body); } - public visitMemberVariableDeclaration(node: MemberVariableDeclarationSyntax): void { + public visitPropertyDeclaration(node: PropertyDeclarationSyntax): void { this.visitList(node.modifiers); visitNodeOrToken(this, node.variableDeclarator); this.visitOptionalToken(node.semicolonToken); From ca396779e3bec45e9abd4eab77806367ad195a68 Mon Sep 17 00:00:00 2001 From: Cyrus Najmabadi Date: Sat, 29 Nov 2014 23:44:13 -0800 Subject: [PATCH 138/195] Rename MemberAccess to PropertyAccess. Conflicts: src/services/syntax/SyntaxGenerator.js.map --- src/services/syntax/SyntaxGenerator.js | 4 ++-- src/services/syntax/SyntaxGenerator.js.map | 4 ++++ src/services/syntax/parser.ts | 4 ++-- src/services/syntax/prettyPrinter.ts | 2 +- src/services/syntax/syntaxGenerator.ts | 2 +- src/services/syntax/syntaxInterfaces.generated.ts | 4 ++-- src/services/syntax/syntaxKind.ts | 2 +- src/services/syntax/syntaxNodes.concrete.generated.ts | 8 ++++---- src/services/syntax/syntaxUtilities.ts | 2 +- src/services/syntax/syntaxVisitor.generated.ts | 4 ++-- src/services/syntax/syntaxWalker.generated.ts | 2 +- 11 files changed, 21 insertions(+), 17 deletions(-) diff --git a/src/services/syntax/SyntaxGenerator.js b/src/services/syntax/SyntaxGenerator.js index 467c4f4ee9d..eef0fe43cc6 100644 --- a/src/services/syntax/SyntaxGenerator.js +++ b/src/services/syntax/SyntaxGenerator.js @@ -587,7 +587,7 @@ var TypeScript; SyntaxKind[SyntaxKind["ConditionalExpression"] = 175] = "ConditionalExpression"; SyntaxKind[SyntaxKind["BinaryExpression"] = 176] = "BinaryExpression"; SyntaxKind[SyntaxKind["PostfixUnaryExpression"] = 177] = "PostfixUnaryExpression"; - SyntaxKind[SyntaxKind["MemberAccessExpression"] = 178] = "MemberAccessExpression"; + SyntaxKind[SyntaxKind["PropertyAccessExpression"] = 178] = "PropertyAccessExpression"; SyntaxKind[SyntaxKind["InvocationExpression"] = 179] = "InvocationExpression"; SyntaxKind[SyntaxKind["ArrayLiteralExpression"] = 180] = "ArrayLiteralExpression"; SyntaxKind[SyntaxKind["ObjectLiteralExpression"] = 181] = "ObjectLiteralExpression"; @@ -1297,7 +1297,7 @@ var definitions = [ ] }, { - name: 'MemberAccessExpressionSyntax', + name: 'PropertyAccessExpressionSyntax', baseType: 'ISyntaxNode', interfaces: ['IMemberExpressionSyntax', 'ICallExpressionSyntax'], children: [ diff --git a/src/services/syntax/SyntaxGenerator.js.map b/src/services/syntax/SyntaxGenerator.js.map index aeb0a13a3c9..9969d9422c2 100644 --- a/src/services/syntax/SyntaxGenerator.js.map +++ b/src/services/syntax/SyntaxGenerator.js.map @@ -21,6 +21,7 @@ <<<<<<< HEAD <<<<<<< HEAD <<<<<<< HEAD +<<<<<<< HEAD <<<<<<< Updated upstream {"version":3,"file":"SyntaxGenerator.js","sourceRoot":"","sources":["file:///C:/VSPro_1/src/typescript/public_cyrusn/src/compiler/sys.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/core/errors.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/core/arrayUtilities.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/core/stringUtilities.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/syntax/syntaxKind.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/syntax/syntaxFacts.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/syntax/SyntaxGenerator.ts"],"names":["getWScriptSystem","getWScriptSystem.readFile","getWScriptSystem.writeFile","getNodeSystem","getNodeSystem.readFile","getNodeSystem.writeFile","getNodeSystem.fileChanged","TypeScript","TypeScript.Errors","TypeScript.Errors.constructor","TypeScript.Errors.argument","TypeScript.Errors.argumentOutOfRange","TypeScript.Errors.argumentNull","TypeScript.Errors.abstract","TypeScript.Errors.notYetImplemented","TypeScript.Errors.invalidOperation","TypeScript.ArrayUtilities","TypeScript.ArrayUtilities.constructor","TypeScript.ArrayUtilities.sequenceEquals","TypeScript.ArrayUtilities.contains","TypeScript.ArrayUtilities.distinct","TypeScript.ArrayUtilities.last","TypeScript.ArrayUtilities.lastOrDefault","TypeScript.ArrayUtilities.firstOrDefault","TypeScript.ArrayUtilities.first","TypeScript.ArrayUtilities.sum","TypeScript.ArrayUtilities.select","TypeScript.ArrayUtilities.where","TypeScript.ArrayUtilities.any","TypeScript.ArrayUtilities.all","TypeScript.ArrayUtilities.binarySearch","TypeScript.ArrayUtilities.createArray","TypeScript.ArrayUtilities.grow","TypeScript.ArrayUtilities.copy","TypeScript.ArrayUtilities.indexOf","TypeScript.StringUtilities","TypeScript.StringUtilities.constructor","TypeScript.StringUtilities.isString","TypeScript.StringUtilities.endsWith","TypeScript.StringUtilities.startsWith","TypeScript.StringUtilities.repeat","TypeScript.SyntaxKind","TypeScript.SyntaxFacts","TypeScript.SyntaxFacts.getTokenKind","TypeScript.SyntaxFacts.getText","TypeScript.SyntaxFacts.isAnyKeyword","TypeScript.SyntaxFacts.isAnyPunctuation","TypeScript.SyntaxFacts.isPrefixUnaryExpressionOperatorToken","TypeScript.SyntaxFacts.isBinaryExpressionOperatorToken","TypeScript.SyntaxFacts.isAssignmentOperatorToken","TypeScript.SyntaxFacts.isType","firstKind","getStringWithoutSuffix","getNameWithoutSuffix","getType","camelCase","getSafeName","generateConstructorFunction","generateSyntaxInterfaces","generateSyntaxInterface","generateNodes","isInterface","generateWalker","firstEnumName","groupBy","generateKeywordCondition","min","max","generateUtilities","generateScannerUtilities","syntaxKindName","generateVisitor"],"mappings":"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"} ======= @@ -95,3 +96,6 @@ ======= {"version":3,"file":"SyntaxGenerator.js","sourceRoot":"","sources":["file:///C:/VSPro_1/src/typescript/public_cyrusn/src/compiler/sys.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/core/errors.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/core/arrayUtilities.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/core/stringUtilities.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/syntax/syntaxKind.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/syntax/syntaxFacts.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/syntax/SyntaxGenerator.ts"],"names":["getWScriptSystem","getWScriptSystem.readFile","getWScriptSystem.writeFile","getNodeSystem","getNodeSystem.readFile","getNodeSystem.writeFile","getNodeSystem.fileChanged","TypeScript","TypeScript.Errors","TypeScript.Errors.constructor","TypeScript.Errors.argument","TypeScript.Errors.argumentOutOfRange","TypeScript.Errors.argumentNull","TypeScript.Errors.abstract","TypeScript.Errors.notYetImplemented","TypeScript.Errors.invalidOperation","TypeScript.ArrayUtilities","TypeScript.ArrayUtilities.constructor","TypeScript.ArrayUtilities.sequenceEquals","TypeScript.ArrayUtilities.contains","TypeScript.ArrayUtilities.distinct","TypeScript.ArrayUtilities.last","TypeScript.ArrayUtilities.lastOrDefault","TypeScript.ArrayUtilities.firstOrDefault","TypeScript.ArrayUtilities.first","TypeScript.ArrayUtilities.sum","TypeScript.ArrayUtilities.select","TypeScript.ArrayUtilities.where","TypeScript.ArrayUtilities.any","TypeScript.ArrayUtilities.all","TypeScript.ArrayUtilities.binarySearch","TypeScript.ArrayUtilities.createArray","TypeScript.ArrayUtilities.grow","TypeScript.ArrayUtilities.copy","TypeScript.ArrayUtilities.indexOf","TypeScript.StringUtilities","TypeScript.StringUtilities.constructor","TypeScript.StringUtilities.isString","TypeScript.StringUtilities.endsWith","TypeScript.StringUtilities.startsWith","TypeScript.StringUtilities.repeat","TypeScript.SyntaxKind","TypeScript.SyntaxFacts","TypeScript.SyntaxFacts.getTokenKind","TypeScript.SyntaxFacts.getText","TypeScript.SyntaxFacts.isAnyKeyword","TypeScript.SyntaxFacts.isAnyPunctuation","TypeScript.SyntaxFacts.isPrefixUnaryExpressionOperatorToken","TypeScript.SyntaxFacts.isBinaryExpressionOperatorToken","TypeScript.SyntaxFacts.isAssignmentOperatorToken","TypeScript.SyntaxFacts.isType","getSyntaxKindEnum","firstKind","getStringWithoutSuffix","getNameWithoutSuffix","getType","camelCase","getSafeName","generateConstructorFunction","generateSyntaxInterfaces","generateSyntaxInterface","generateNodes","isInterface","generateWalker","firstEnumName","groupBy","generateKeywordCondition","min","max","generateUtilities","generateScannerUtilities","syntaxKindName","generateVisitor"],"mappings":"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"} >>>>>>> 5910bee... Rename some kinds to match new parser. +======= +{"version":3,"file":"SyntaxGenerator.js","sourceRoot":"","sources":["file:///C:/VSPro_1/src/typescript/public_cyrusn/src/compiler/sys.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/core/errors.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/core/arrayUtilities.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/core/stringUtilities.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/syntax/syntaxKind.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/syntax/syntaxFacts.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/syntax/SyntaxGenerator.ts"],"names":["getWScriptSystem","getWScriptSystem.readFile","getWScriptSystem.writeFile","getNodeSystem","getNodeSystem.readFile","getNodeSystem.writeFile","getNodeSystem.fileChanged","TypeScript","TypeScript.Errors","TypeScript.Errors.constructor","TypeScript.Errors.argument","TypeScript.Errors.argumentOutOfRange","TypeScript.Errors.argumentNull","TypeScript.Errors.abstract","TypeScript.Errors.notYetImplemented","TypeScript.Errors.invalidOperation","TypeScript.ArrayUtilities","TypeScript.ArrayUtilities.constructor","TypeScript.ArrayUtilities.sequenceEquals","TypeScript.ArrayUtilities.contains","TypeScript.ArrayUtilities.distinct","TypeScript.ArrayUtilities.last","TypeScript.ArrayUtilities.lastOrDefault","TypeScript.ArrayUtilities.firstOrDefault","TypeScript.ArrayUtilities.first","TypeScript.ArrayUtilities.sum","TypeScript.ArrayUtilities.select","TypeScript.ArrayUtilities.where","TypeScript.ArrayUtilities.any","TypeScript.ArrayUtilities.all","TypeScript.ArrayUtilities.binarySearch","TypeScript.ArrayUtilities.createArray","TypeScript.ArrayUtilities.grow","TypeScript.ArrayUtilities.copy","TypeScript.ArrayUtilities.indexOf","TypeScript.StringUtilities","TypeScript.StringUtilities.constructor","TypeScript.StringUtilities.isString","TypeScript.StringUtilities.endsWith","TypeScript.StringUtilities.startsWith","TypeScript.StringUtilities.repeat","TypeScript.SyntaxKind","TypeScript.SyntaxFacts","TypeScript.SyntaxFacts.getTokenKind","TypeScript.SyntaxFacts.getText","TypeScript.SyntaxFacts.isAnyKeyword","TypeScript.SyntaxFacts.isAnyPunctuation","TypeScript.SyntaxFacts.isPrefixUnaryExpressionOperatorToken","TypeScript.SyntaxFacts.isBinaryExpressionOperatorToken","TypeScript.SyntaxFacts.isAssignmentOperatorToken","TypeScript.SyntaxFacts.isType","getSyntaxKindEnum","firstKind","getStringWithoutSuffix","getNameWithoutSuffix","getType","camelCase","getSafeName","generateConstructorFunction","generateSyntaxInterfaces","generateSyntaxInterface","generateNodes","isInterface","generateWalker","firstEnumName","groupBy","generateKeywordCondition","min","max","generateUtilities","generateScannerUtilities","syntaxKindName","generateVisitor"],"mappings":"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"} +>>>>>>> 4afcf50... Rename MemberAccess to PropertyAccess. diff --git a/src/services/syntax/parser.ts b/src/services/syntax/parser.ts index 262a9709f72..8737ed8558f 100644 --- a/src/services/syntax/parser.ts +++ b/src/services/syntax/parser.ts @@ -2898,7 +2898,7 @@ module TypeScript.Parser { continue; case SyntaxKind.DotToken: - expression = new MemberAccessExpressionSyntax(contextFlags, expression, consumeToken(_currentToken), eatIdentifierNameToken()); + expression = new PropertyAccessExpressionSyntax(contextFlags, expression, consumeToken(_currentToken), eatIdentifierNameToken()); continue; case SyntaxKind.NoSubstitutionTemplateToken: @@ -2990,7 +2990,7 @@ module TypeScript.Parser { var currentTokenKind = currentToken().kind; return currentTokenKind === SyntaxKind.OpenParenToken || currentTokenKind === SyntaxKind.DotToken ? expression - : new MemberAccessExpressionSyntax(contextFlags, expression, eatToken(SyntaxKind.DotToken), eatIdentifierNameToken()); + : new PropertyAccessExpressionSyntax(contextFlags, expression, eatToken(SyntaxKind.DotToken), eatIdentifierNameToken()); } function parsePostfixExpressionOrHigher(_currentToken: ISyntaxToken): IPostfixExpressionSyntax { diff --git a/src/services/syntax/prettyPrinter.ts b/src/services/syntax/prettyPrinter.ts index 8bbf84edb07..559e0719db5 100644 --- a/src/services/syntax/prettyPrinter.ts +++ b/src/services/syntax/prettyPrinter.ts @@ -535,7 +535,7 @@ module TypeScript.PrettyPrinter { this.appendNode(node.equalsValueClause); } - public visitMemberAccessExpression(node: MemberAccessExpressionSyntax): void { + public visitPropertyAccessExpression(node: PropertyAccessExpressionSyntax): void { visitNodeOrToken(this, node.expression); this.appendToken(node.dotToken); this.appendToken(node.name); diff --git a/src/services/syntax/syntaxGenerator.ts b/src/services/syntax/syntaxGenerator.ts index fb528d9d5cd..f3437dbcaa9 100644 --- a/src/services/syntax/syntaxGenerator.ts +++ b/src/services/syntax/syntaxGenerator.ts @@ -436,7 +436,7 @@ var definitions:ITypeDefinition[] = [ ] }, { - name: 'MemberAccessExpressionSyntax', + name: 'PropertyAccessExpressionSyntax', baseType: 'ISyntaxNode', interfaces: ['IMemberExpressionSyntax', 'ICallExpressionSyntax'], children: [ diff --git a/src/services/syntax/syntaxInterfaces.generated.ts b/src/services/syntax/syntaxInterfaces.generated.ts index acde5351eda..eb2e9788525 100644 --- a/src/services/syntax/syntaxInterfaces.generated.ts +++ b/src/services/syntax/syntaxInterfaces.generated.ts @@ -426,12 +426,12 @@ module TypeScript { } export interface PostfixUnaryExpressionConstructor { new (data: number, operand: ILeftHandSideExpressionSyntax, operatorToken: ISyntaxToken): PostfixUnaryExpressionSyntax } - export interface MemberAccessExpressionSyntax extends ISyntaxNode, IMemberExpressionSyntax, ICallExpressionSyntax { + export interface PropertyAccessExpressionSyntax extends ISyntaxNode, IMemberExpressionSyntax, ICallExpressionSyntax { expression: ILeftHandSideExpressionSyntax; dotToken: ISyntaxToken; name: ISyntaxToken; } - export interface MemberAccessExpressionConstructor { new (data: number, expression: ILeftHandSideExpressionSyntax, dotToken: ISyntaxToken, name: ISyntaxToken): MemberAccessExpressionSyntax } + export interface PropertyAccessExpressionConstructor { new (data: number, expression: ILeftHandSideExpressionSyntax, dotToken: ISyntaxToken, name: ISyntaxToken): PropertyAccessExpressionSyntax } export interface InvocationExpressionSyntax extends ISyntaxNode, ICallExpressionSyntax { expression: ILeftHandSideExpressionSyntax; diff --git a/src/services/syntax/syntaxKind.ts b/src/services/syntax/syntaxKind.ts index 2d1b3e6638a..22a43649215 100644 --- a/src/services/syntax/syntaxKind.ts +++ b/src/services/syntax/syntaxKind.ts @@ -222,7 +222,7 @@ module TypeScript { ConditionalExpression, BinaryExpression, PostfixUnaryExpression, - MemberAccessExpression, + PropertyAccessExpression, InvocationExpression, ArrayLiteralExpression, ObjectLiteralExpression, diff --git a/src/services/syntax/syntaxNodes.concrete.generated.ts b/src/services/syntax/syntaxNodes.concrete.generated.ts index 9409d94fed2..cf83f48d2e0 100644 --- a/src/services/syntax/syntaxNodes.concrete.generated.ts +++ b/src/services/syntax/syntaxNodes.concrete.generated.ts @@ -1167,7 +1167,7 @@ module TypeScript { } } - export var MemberAccessExpressionSyntax: MemberAccessExpressionConstructor = function(data: number, expression: ILeftHandSideExpressionSyntax, dotToken: ISyntaxToken, name: ISyntaxToken) { + export var PropertyAccessExpressionSyntax: PropertyAccessExpressionConstructor = function(data: number, expression: ILeftHandSideExpressionSyntax, dotToken: ISyntaxToken, name: ISyntaxToken) { if (data) { this.__data = data; } this.expression = expression, this.dotToken = dotToken, @@ -1176,9 +1176,9 @@ module TypeScript { dotToken.parent = this, name.parent = this; }; - MemberAccessExpressionSyntax.prototype.kind = SyntaxKind.MemberAccessExpression; - MemberAccessExpressionSyntax.prototype.childCount = 3; - MemberAccessExpressionSyntax.prototype.childAt = function(index: number): ISyntaxElement { + PropertyAccessExpressionSyntax.prototype.kind = SyntaxKind.PropertyAccessExpression; + PropertyAccessExpressionSyntax.prototype.childCount = 3; + PropertyAccessExpressionSyntax.prototype.childAt = function(index: number): ISyntaxElement { switch (index) { case 0: return this.expression; case 1: return this.dotToken; diff --git a/src/services/syntax/syntaxUtilities.ts b/src/services/syntax/syntaxUtilities.ts index dc6aa33e041..634296740d4 100644 --- a/src/services/syntax/syntaxUtilities.ts +++ b/src/services/syntax/syntaxUtilities.ts @@ -44,7 +44,7 @@ module TypeScript { export function isLeftHandSizeExpression(element: ISyntaxElement) { if (element) { switch (element.kind) { - case SyntaxKind.MemberAccessExpression: + case SyntaxKind.PropertyAccessExpression: case SyntaxKind.ElementAccessExpression: case SyntaxKind.TemplateAccessExpression: case SyntaxKind.ObjectCreationExpression: diff --git a/src/services/syntax/syntaxVisitor.generated.ts b/src/services/syntax/syntaxVisitor.generated.ts index a15496cf9f7..30b82c67da2 100644 --- a/src/services/syntax/syntaxVisitor.generated.ts +++ b/src/services/syntax/syntaxVisitor.generated.ts @@ -57,7 +57,7 @@ module TypeScript { case SyntaxKind.ConditionalExpression: return visitor.visitConditionalExpression(element); case SyntaxKind.BinaryExpression: return visitor.visitBinaryExpression(element); case SyntaxKind.PostfixUnaryExpression: return visitor.visitPostfixUnaryExpression(element); - case SyntaxKind.MemberAccessExpression: return visitor.visitMemberAccessExpression(element); + case SyntaxKind.PropertyAccessExpression: return visitor.visitPropertyAccessExpression(element); case SyntaxKind.InvocationExpression: return visitor.visitInvocationExpression(element); case SyntaxKind.ArrayLiteralExpression: return visitor.visitArrayLiteralExpression(element); case SyntaxKind.ObjectLiteralExpression: return visitor.visitObjectLiteralExpression(element); @@ -157,7 +157,7 @@ module TypeScript { visitConditionalExpression(node: ConditionalExpressionSyntax): any; visitBinaryExpression(node: BinaryExpressionSyntax): any; visitPostfixUnaryExpression(node: PostfixUnaryExpressionSyntax): any; - visitMemberAccessExpression(node: MemberAccessExpressionSyntax): any; + visitPropertyAccessExpression(node: PropertyAccessExpressionSyntax): any; visitInvocationExpression(node: InvocationExpressionSyntax): any; visitArrayLiteralExpression(node: ArrayLiteralExpressionSyntax): any; visitObjectLiteralExpression(node: ObjectLiteralExpressionSyntax): any; diff --git a/src/services/syntax/syntaxWalker.generated.ts b/src/services/syntax/syntaxWalker.generated.ts index 448c0bc5726..1fbec517439 100644 --- a/src/services/syntax/syntaxWalker.generated.ts +++ b/src/services/syntax/syntaxWalker.generated.ts @@ -390,7 +390,7 @@ module TypeScript { this.visitToken(node.operatorToken); } - public visitMemberAccessExpression(node: MemberAccessExpressionSyntax): void { + public visitPropertyAccessExpression(node: PropertyAccessExpressionSyntax): void { visitNodeOrToken(this, node.expression); this.visitToken(node.dotToken); this.visitToken(node.name); From a766df9ed13dbd61b88c24c89ec8f5240f5b6b86 Mon Sep 17 00:00:00 2001 From: Cyrus Najmabadi Date: Sun, 30 Nov 2014 19:50:14 -0800 Subject: [PATCH 139/195] Tighten the bounds on an 'await' expression. Share common helper code when parsing the right side of a dot. Conflicts: src/services/syntax/SyntaxGenerator.js.map --- src/services/syntax/SyntaxGenerator.js | 2 +- src/services/syntax/SyntaxGenerator.js.map | 4 +++ src/services/syntax/parser.ts | 32 ++++++++++++------- src/services/syntax/syntaxGenerator.ts | 2 +- .../syntax/syntaxInterfaces.generated.ts | 4 +-- .../syntax/syntaxNodes.concrete.generated.ts | 2 +- 6 files changed, 29 insertions(+), 17 deletions(-) diff --git a/src/services/syntax/SyntaxGenerator.js b/src/services/syntax/SyntaxGenerator.js index eef0fe43cc6..d58976f35b8 100644 --- a/src/services/syntax/SyntaxGenerator.js +++ b/src/services/syntax/SyntaxGenerator.js @@ -1900,7 +1900,7 @@ var definitions = [ interfaces: ['IUnaryExpressionSyntax'], children: [ { name: 'awaitKeyword', isToken: true }, - { name: 'expression', type: 'IExpressionSyntax', isOptional: true } + { name: 'expression', type: 'IUnaryExpressionSyntax', isOptional: true } ] }, { diff --git a/src/services/syntax/SyntaxGenerator.js.map b/src/services/syntax/SyntaxGenerator.js.map index 9969d9422c2..8faab5987a6 100644 --- a/src/services/syntax/SyntaxGenerator.js.map +++ b/src/services/syntax/SyntaxGenerator.js.map @@ -22,6 +22,7 @@ <<<<<<< HEAD <<<<<<< HEAD <<<<<<< HEAD +<<<<<<< HEAD <<<<<<< Updated upstream {"version":3,"file":"SyntaxGenerator.js","sourceRoot":"","sources":["file:///C:/VSPro_1/src/typescript/public_cyrusn/src/compiler/sys.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/core/errors.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/core/arrayUtilities.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/core/stringUtilities.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/syntax/syntaxKind.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/syntax/syntaxFacts.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/syntax/SyntaxGenerator.ts"],"names":["getWScriptSystem","getWScriptSystem.readFile","getWScriptSystem.writeFile","getNodeSystem","getNodeSystem.readFile","getNodeSystem.writeFile","getNodeSystem.fileChanged","TypeScript","TypeScript.Errors","TypeScript.Errors.constructor","TypeScript.Errors.argument","TypeScript.Errors.argumentOutOfRange","TypeScript.Errors.argumentNull","TypeScript.Errors.abstract","TypeScript.Errors.notYetImplemented","TypeScript.Errors.invalidOperation","TypeScript.ArrayUtilities","TypeScript.ArrayUtilities.constructor","TypeScript.ArrayUtilities.sequenceEquals","TypeScript.ArrayUtilities.contains","TypeScript.ArrayUtilities.distinct","TypeScript.ArrayUtilities.last","TypeScript.ArrayUtilities.lastOrDefault","TypeScript.ArrayUtilities.firstOrDefault","TypeScript.ArrayUtilities.first","TypeScript.ArrayUtilities.sum","TypeScript.ArrayUtilities.select","TypeScript.ArrayUtilities.where","TypeScript.ArrayUtilities.any","TypeScript.ArrayUtilities.all","TypeScript.ArrayUtilities.binarySearch","TypeScript.ArrayUtilities.createArray","TypeScript.ArrayUtilities.grow","TypeScript.ArrayUtilities.copy","TypeScript.ArrayUtilities.indexOf","TypeScript.StringUtilities","TypeScript.StringUtilities.constructor","TypeScript.StringUtilities.isString","TypeScript.StringUtilities.endsWith","TypeScript.StringUtilities.startsWith","TypeScript.StringUtilities.repeat","TypeScript.SyntaxKind","TypeScript.SyntaxFacts","TypeScript.SyntaxFacts.getTokenKind","TypeScript.SyntaxFacts.getText","TypeScript.SyntaxFacts.isAnyKeyword","TypeScript.SyntaxFacts.isAnyPunctuation","TypeScript.SyntaxFacts.isPrefixUnaryExpressionOperatorToken","TypeScript.SyntaxFacts.isBinaryExpressionOperatorToken","TypeScript.SyntaxFacts.isAssignmentOperatorToken","TypeScript.SyntaxFacts.isType","firstKind","getStringWithoutSuffix","getNameWithoutSuffix","getType","camelCase","getSafeName","generateConstructorFunction","generateSyntaxInterfaces","generateSyntaxInterface","generateNodes","isInterface","generateWalker","firstEnumName","groupBy","generateKeywordCondition","min","max","generateUtilities","generateScannerUtilities","syntaxKindName","generateVisitor"],"mappings":"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"} ======= @@ -99,3 +100,6 @@ ======= {"version":3,"file":"SyntaxGenerator.js","sourceRoot":"","sources":["file:///C:/VSPro_1/src/typescript/public_cyrusn/src/compiler/sys.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/core/errors.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/core/arrayUtilities.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/core/stringUtilities.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/syntax/syntaxKind.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/syntax/syntaxFacts.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/syntax/SyntaxGenerator.ts"],"names":["getWScriptSystem","getWScriptSystem.readFile","getWScriptSystem.writeFile","getNodeSystem","getNodeSystem.readFile","getNodeSystem.writeFile","getNodeSystem.fileChanged","TypeScript","TypeScript.Errors","TypeScript.Errors.constructor","TypeScript.Errors.argument","TypeScript.Errors.argumentOutOfRange","TypeScript.Errors.argumentNull","TypeScript.Errors.abstract","TypeScript.Errors.notYetImplemented","TypeScript.Errors.invalidOperation","TypeScript.ArrayUtilities","TypeScript.ArrayUtilities.constructor","TypeScript.ArrayUtilities.sequenceEquals","TypeScript.ArrayUtilities.contains","TypeScript.ArrayUtilities.distinct","TypeScript.ArrayUtilities.last","TypeScript.ArrayUtilities.lastOrDefault","TypeScript.ArrayUtilities.firstOrDefault","TypeScript.ArrayUtilities.first","TypeScript.ArrayUtilities.sum","TypeScript.ArrayUtilities.select","TypeScript.ArrayUtilities.where","TypeScript.ArrayUtilities.any","TypeScript.ArrayUtilities.all","TypeScript.ArrayUtilities.binarySearch","TypeScript.ArrayUtilities.createArray","TypeScript.ArrayUtilities.grow","TypeScript.ArrayUtilities.copy","TypeScript.ArrayUtilities.indexOf","TypeScript.StringUtilities","TypeScript.StringUtilities.constructor","TypeScript.StringUtilities.isString","TypeScript.StringUtilities.endsWith","TypeScript.StringUtilities.startsWith","TypeScript.StringUtilities.repeat","TypeScript.SyntaxKind","TypeScript.SyntaxFacts","TypeScript.SyntaxFacts.getTokenKind","TypeScript.SyntaxFacts.getText","TypeScript.SyntaxFacts.isAnyKeyword","TypeScript.SyntaxFacts.isAnyPunctuation","TypeScript.SyntaxFacts.isPrefixUnaryExpressionOperatorToken","TypeScript.SyntaxFacts.isBinaryExpressionOperatorToken","TypeScript.SyntaxFacts.isAssignmentOperatorToken","TypeScript.SyntaxFacts.isType","getSyntaxKindEnum","firstKind","getStringWithoutSuffix","getNameWithoutSuffix","getType","camelCase","getSafeName","generateConstructorFunction","generateSyntaxInterfaces","generateSyntaxInterface","generateNodes","isInterface","generateWalker","firstEnumName","groupBy","generateKeywordCondition","min","max","generateUtilities","generateScannerUtilities","syntaxKindName","generateVisitor"],"mappings":"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"} >>>>>>> 4afcf50... Rename MemberAccess to PropertyAccess. +======= +{"version":3,"file":"SyntaxGenerator.js","sourceRoot":"","sources":["file:///C:/VSPro_1/src/typescript/public_cyrusn/src/compiler/sys.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/core/errors.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/core/arrayUtilities.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/core/stringUtilities.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/syntax/syntaxKind.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/syntax/syntaxFacts.ts","file:///C:/VSPro_1/src/typescript/public_cyrusn/src/services/syntax/SyntaxGenerator.ts"],"names":["getWScriptSystem","getWScriptSystem.readFile","getWScriptSystem.writeFile","getNodeSystem","getNodeSystem.readFile","getNodeSystem.writeFile","getNodeSystem.fileChanged","TypeScript","TypeScript.Errors","TypeScript.Errors.constructor","TypeScript.Errors.argument","TypeScript.Errors.argumentOutOfRange","TypeScript.Errors.argumentNull","TypeScript.Errors.abstract","TypeScript.Errors.notYetImplemented","TypeScript.Errors.invalidOperation","TypeScript.ArrayUtilities","TypeScript.ArrayUtilities.constructor","TypeScript.ArrayUtilities.sequenceEquals","TypeScript.ArrayUtilities.contains","TypeScript.ArrayUtilities.distinct","TypeScript.ArrayUtilities.last","TypeScript.ArrayUtilities.lastOrDefault","TypeScript.ArrayUtilities.firstOrDefault","TypeScript.ArrayUtilities.first","TypeScript.ArrayUtilities.sum","TypeScript.ArrayUtilities.select","TypeScript.ArrayUtilities.where","TypeScript.ArrayUtilities.any","TypeScript.ArrayUtilities.all","TypeScript.ArrayUtilities.binarySearch","TypeScript.ArrayUtilities.createArray","TypeScript.ArrayUtilities.grow","TypeScript.ArrayUtilities.copy","TypeScript.ArrayUtilities.indexOf","TypeScript.StringUtilities","TypeScript.StringUtilities.constructor","TypeScript.StringUtilities.isString","TypeScript.StringUtilities.endsWith","TypeScript.StringUtilities.startsWith","TypeScript.StringUtilities.repeat","TypeScript.SyntaxKind","TypeScript.SyntaxFacts","TypeScript.SyntaxFacts.getTokenKind","TypeScript.SyntaxFacts.getText","TypeScript.SyntaxFacts.isAnyKeyword","TypeScript.SyntaxFacts.isAnyPunctuation","TypeScript.SyntaxFacts.isPrefixUnaryExpressionOperatorToken","TypeScript.SyntaxFacts.isBinaryExpressionOperatorToken","TypeScript.SyntaxFacts.isAssignmentOperatorToken","TypeScript.SyntaxFacts.isType","getSyntaxKindEnum","firstKind","getStringWithoutSuffix","getNameWithoutSuffix","getType","camelCase","getSafeName","generateConstructorFunction","generateSyntaxInterfaces","generateSyntaxInterface","generateNodes","isInterface","generateWalker","firstEnumName","groupBy","generateKeywordCondition","min","max","generateUtilities","generateScannerUtilities","syntaxKindName","generateVisitor"],"mappings":"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"} +>>>>>>> 7a4a842... Tighten the bounds on an 'await' expression. diff --git a/src/services/syntax/parser.ts b/src/services/syntax/parser.ts index 8737ed8558f..1226d3a2aec 100644 --- a/src/services/syntax/parser.ts +++ b/src/services/syntax/parser.ts @@ -993,24 +993,24 @@ module TypeScript.Parser { return tryParseName(allowIdentifierName) || eatIdentifierToken(); } - function eatRightSideOfName(allowIdentifierNames: boolean): ISyntaxToken { + function eatRightSideOfDot(allowIdentifierNames: boolean): ISyntaxToken { var _currentToken = currentToken(); // Technically a keyword is valid here as all keywords are identifier names. // However, often we'll encounter this in error situations when the keyword // is actually starting another valid construct. - + // // So, we check for the following specific case: - + // // name. // keyword identifierNameOrKeyword - + // // Note: the newlines are important here. For example, if that above code // were rewritten into: - + // // name.keyword // identifierNameOrKeyword - + // // Then we would consider it valid. That's because ASI would take effect and // the code would be implicitly: "name.keyword; identifierNameOrKeyword". // In the first case though, ASI will not take effect because there is not a @@ -1041,7 +1041,7 @@ module TypeScript.Parser { while (shouldContinue && currentToken().kind === SyntaxKind.DotToken) { var dotToken = consumeToken(currentToken()); - var identifierName = eatRightSideOfName(allowIdentifierNames); + var identifierName = eatRightSideOfDot(allowIdentifierNames); current = new QualifiedNameSyntax(contextFlags, current, dotToken, identifierName); shouldContinue = identifierName.fullWidth() > 0; @@ -2608,7 +2608,7 @@ module TypeScript.Parser { function parseAwaitExpression(awaitKeyword: ISyntaxToken): AwaitExpressionSyntax { return new AwaitExpressionSyntax(contextFlags, consumeToken(awaitKeyword), - parseAssignmentExpressionOrHigher()); + parseUnaryExpressionOrHigher(currentToken())); } function isYieldExpression(_currentToken: ISyntaxToken): boolean { @@ -2898,7 +2898,10 @@ module TypeScript.Parser { continue; case SyntaxKind.DotToken: - expression = new PropertyAccessExpressionSyntax(contextFlags, expression, consumeToken(_currentToken), eatIdentifierNameToken()); + expression = new PropertyAccessExpressionSyntax(contextFlags, + expression, + consumeToken(_currentToken), + eatRightSideOfDot(/*allowIdentifierNames:*/ true)); continue; case SyntaxKind.NoSubstitutionTemplateToken: @@ -2988,9 +2991,14 @@ module TypeScript.Parser { // If we have seen "super" it must be followed by '(' or '.'. // If it wasn't then just try to parse out a '.' and report an error. var currentTokenKind = currentToken().kind; - return currentTokenKind === SyntaxKind.OpenParenToken || currentTokenKind === SyntaxKind.DotToken - ? expression - : new PropertyAccessExpressionSyntax(contextFlags, expression, eatToken(SyntaxKind.DotToken), eatIdentifierNameToken()); + if (currentTokenKind === SyntaxKind.OpenParenToken || currentTokenKind === SyntaxKind.DotToken) { + return expression; + } + + return new PropertyAccessExpressionSyntax(contextFlags, + expression, + eatToken(SyntaxKind.DotToken), + eatRightSideOfDot(/*allowIdentifierNames:*/ true)); } function parsePostfixExpressionOrHigher(_currentToken: ISyntaxToken): IPostfixExpressionSyntax { diff --git a/src/services/syntax/syntaxGenerator.ts b/src/services/syntax/syntaxGenerator.ts index f3437dbcaa9..dcde211b1fa 100644 --- a/src/services/syntax/syntaxGenerator.ts +++ b/src/services/syntax/syntaxGenerator.ts @@ -1029,7 +1029,7 @@ var definitions:ITypeDefinition[] = [ interfaces: ['IUnaryExpressionSyntax'], children: [ { name: 'awaitKeyword', isToken: true }, - { name: 'expression', type: 'IExpressionSyntax', isOptional: true }] + { name: 'expression', type: 'IUnaryExpressionSyntax', isOptional: true }] }, { name: 'DebuggerStatementSyntax', diff --git a/src/services/syntax/syntaxInterfaces.generated.ts b/src/services/syntax/syntaxInterfaces.generated.ts index eb2e9788525..06236bcc477 100644 --- a/src/services/syntax/syntaxInterfaces.generated.ts +++ b/src/services/syntax/syntaxInterfaces.generated.ts @@ -534,9 +534,9 @@ module TypeScript { export interface AwaitExpressionSyntax extends ISyntaxNode, IUnaryExpressionSyntax { awaitKeyword: ISyntaxToken; - expression: IExpressionSyntax; + expression: IUnaryExpressionSyntax; } - export interface AwaitExpressionConstructor { new (data: number, awaitKeyword: ISyntaxToken, expression: IExpressionSyntax): AwaitExpressionSyntax } + export interface AwaitExpressionConstructor { new (data: number, awaitKeyword: ISyntaxToken, expression: IUnaryExpressionSyntax): AwaitExpressionSyntax } export interface VariableDeclarationSyntax extends ISyntaxNode { varConstOrLetKeyword: ISyntaxToken; diff --git a/src/services/syntax/syntaxNodes.concrete.generated.ts b/src/services/syntax/syntaxNodes.concrete.generated.ts index cf83f48d2e0..4f5f9667ad6 100644 --- a/src/services/syntax/syntaxNodes.concrete.generated.ts +++ b/src/services/syntax/syntaxNodes.concrete.generated.ts @@ -1454,7 +1454,7 @@ module TypeScript { } } - export var AwaitExpressionSyntax: AwaitExpressionConstructor = function(data: number, awaitKeyword: ISyntaxToken, expression: IExpressionSyntax) { + export var AwaitExpressionSyntax: AwaitExpressionConstructor = function(data: number, awaitKeyword: ISyntaxToken, expression: IUnaryExpressionSyntax) { if (data) { this.__data = data; } this.awaitKeyword = awaitKeyword, this.expression = expression, From 97460a197795bae4ba572a481e14c13ce30cb2d4 Mon Sep 17 00:00:00 2001 From: Cyrus Najmabadi Date: Sun, 30 Nov 2014 21:07:47 -0800 Subject: [PATCH 140/195] Simplify code. --- src/compiler/parser.ts | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) diff --git a/src/compiler/parser.ts b/src/compiler/parser.ts index 9c6f866cbcc..5c4ac068dc1 100644 --- a/src/compiler/parser.ts +++ b/src/compiler/parser.ts @@ -4620,15 +4620,10 @@ module ts { } function checkDeleteExpression(node: DeleteExpression) { - if (node.parserContextFlags & ParserContextFlags.StrictMode) { - // The identifier eval or arguments may not appear as the LeftHandSideExpression of an - // Assignment operator(11.13) or of a PostfixExpression(11.3) or as the UnaryExpression - // operated upon by a Prefix Increment(11.4.4) or a Prefix Decrement(11.4.5) operator - if (node.expression.kind === SyntaxKind.Identifier) { - // When a delete operator occurs within strict mode code, a SyntaxError is thrown if its - // UnaryExpression is a direct reference to a variable, function argument, or function name - return grammarErrorOnNode(node.expression, Diagnostics.delete_cannot_be_called_on_an_identifier_in_strict_mode); - } + if (node.parserContextFlags & ParserContextFlags.StrictMode && node.expression.kind === SyntaxKind.Identifier) { + // When a delete operator occurs within strict mode code, a SyntaxError is thrown if its + // UnaryExpression is a direct reference to a variable, function argument, or function name + return grammarErrorOnNode(node.expression, Diagnostics.delete_cannot_be_called_on_an_identifier_in_strict_mode); } } From e80d772579a9c6840f26e0d7df936e0f4ea47493 Mon Sep 17 00:00:00 2001 From: Cyrus Najmabadi Date: Sun, 30 Nov 2014 21:14:11 -0800 Subject: [PATCH 141/195] Change function names. --- src/compiler/parser.ts | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/src/compiler/parser.ts b/src/compiler/parser.ts index 5c4ac068dc1..6ea284b138d 100644 --- a/src/compiler/parser.ts +++ b/src/compiler/parser.ts @@ -1595,15 +1595,15 @@ module ts { return entity; } - function parseAnyTokenNode(): PrimaryExpression { + function parseTokenNode(): PrimaryExpression { var node = createNode(token); nextToken(); return finishNode(node); } - function parseTokenNode(kind: SyntaxKind): Node { + function parseExpectedTokenNode(kind: SyntaxKind): Node { if (token === kind) { - return parseAnyTokenNode(); + return parseTokenNode(); } parseExpected(kind); @@ -2050,7 +2050,7 @@ module ts { } function parseKeywordAndNoDot(): Node { - var node = parseAnyTokenNode(); + var node = parseTokenNode(); return token === SyntaxKind.DotToken ? undefined : node; } @@ -2837,7 +2837,7 @@ module ts { } function parseSuperExpression(): MemberExpression { - var expression = parseAnyTokenNode(); + var expression = parseTokenNode(); if (token === SyntaxKind.OpenParenToken || token === SyntaxKind.DotToken) { return expression; } @@ -2929,8 +2929,8 @@ module ts { var tagExpression = createNode(SyntaxKind.TaggedTemplateExpression, expression.pos); tagExpression.tag = expression; tagExpression.template = token === SyntaxKind.NoSubstitutionTemplateLiteral - ? parseLiteralNode() - : parseTemplateExpression(); + ? parseLiteralNode() + : parseTemplateExpression(); expression = finishNode(tagExpression); continue; } @@ -3007,7 +3007,7 @@ module ts { case SyntaxKind.NullKeyword: case SyntaxKind.TrueKeyword: case SyntaxKind.FalseKeyword: - return parseAnyTokenNode(); + return parseTokenNode(); case SyntaxKind.NumericLiteral: case SyntaxKind.StringLiteral: case SyntaxKind.NoSubstitutionTemplateLiteral: From aed8404b7d0c3f042b8047ebcbc080debba9e99d Mon Sep 17 00:00:00 2001 From: Cyrus Najmabadi Date: Sun, 30 Nov 2014 21:18:31 -0800 Subject: [PATCH 142/195] Simplify emitter. --- src/compiler/emitter.ts | 3 --- 1 file changed, 3 deletions(-) diff --git a/src/compiler/emitter.ts b/src/compiler/emitter.ts index b79d25ef964..179a01f5157 100644 --- a/src/compiler/emitter.ts +++ b/src/compiler/emitter.ts @@ -2411,9 +2411,6 @@ module ts { } function emitPostfixUnaryExpression(node: PostfixUnaryExpression) { - if (node.operator >= SyntaxKind.Identifier) { - write(" "); - } emit(node.operand); write(tokenToString(node.operator)); } From 7cc65ca73efa4d89266dc5ff3797fb3fbc4e568e Mon Sep 17 00:00:00 2001 From: Cyrus Najmabadi Date: Sun, 30 Nov 2014 21:22:23 -0800 Subject: [PATCH 143/195] Simplify the emitter. --- src/compiler/emitter.ts | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/src/compiler/emitter.ts b/src/compiler/emitter.ts index 179a01f5157..df99de098f3 100644 --- a/src/compiler/emitter.ts +++ b/src/compiler/emitter.ts @@ -2395,10 +2395,7 @@ module ts { // the resulting expression a prefix increment operation. And in the second, it will make the resulting // expression a prefix increment whose operand is a plus expression - (++(+x)) // The same is true of minus of course. - if (node.operator >= SyntaxKind.Identifier) { - write(" "); - } - else if (node.kind === SyntaxKind.PrefixUnaryExpression && node.operand.kind === SyntaxKind.PrefixUnaryExpression) { + if (node.operand.kind === SyntaxKind.PrefixUnaryExpression) { var operand = node.operand; if (node.operator === SyntaxKind.PlusToken && (operand.operator === SyntaxKind.PlusToken || operand.operator === SyntaxKind.PlusPlusToken)) { write(" "); From db2bf0a309b6885294c5c9e7e2470c595b79cfc6 Mon Sep 17 00:00:00 2001 From: Cyrus Najmabadi Date: Sun, 30 Nov 2014 21:46:39 -0800 Subject: [PATCH 144/195] Address issue where we were having to double cast between FunctionLikeDeclaration and Expression types. Provide brands in a few more places. Anywhere where we have a type that extends another, but only adds optional properties, we should consider brands. Stop SignatureDeclarations from being ClassElements. Instead, only IndexSignatureDeclaration is considered to be a ClassElement. --- src/compiler/checker.ts | 24 ++++++++++++++++-------- src/compiler/parser.ts | 12 ++++++------ src/compiler/types.ts | 12 +++++++++--- 3 files changed, 31 insertions(+), 17 deletions(-) diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index 1725d2f9b7c..738c684f554 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -4727,11 +4727,10 @@ module ts { // Return contextual type of parameter or undefined if no contextual type is available function getContextuallyTypedParameterType(parameter: ParameterDeclaration): Type { - var func = parameter.parent; - if (func.kind === SyntaxKind.FunctionExpression || func.kind === SyntaxKind.ArrowFunction) { - var funcExpr = parameter.parent; - if (isContextSensitiveExpression(funcExpr)) { - var contextualSignature = getContextualSignature(funcExpr); + if (isFunctionExpressionOrArrowFunction(parameter.parent)) { + var func = parameter.parent; + if (isContextSensitiveExpression(func)) { + var contextualSignature = getContextualSignature(func); if (contextualSignature) { var funcHasRestParameters = hasRestParameters(func); @@ -4779,7 +4778,7 @@ module ts { } // Otherwise, if the containing function is contextually typed by a function type with exactly one call signature // and that call signature is non-generic, return statements are contextually typed by the return type of the signature - var signature = getContextualSignature(func); + var signature = getContextualSignatureForFunctionLikeDeclaration(func); if (signature) { return getReturnTypeOfSignature(signature); } @@ -4951,12 +4950,21 @@ module ts { } } + function isFunctionExpressionOrArrowFunction(node: Node): boolean { + return node.kind === SyntaxKind.FunctionExpression || node.kind === SyntaxKind.ArrowFunction; + } + + function getContextualSignatureForFunctionLikeDeclaration(node: FunctionLikeDeclaration): Signature { + // Only function expressions and arrow functions are contextually typed. + return isFunctionExpressionOrArrowFunction(node) ? getContextualSignature(node) : undefined; + } + // Return the contextual signature for a given expression node. A contextual type provides a // contextual signature if it has a single call signature and if that call signature is non-generic. // If the contextual type is a union type, get the signature from each type possible and if they are // all identical ignoring their return type, the result is same signature but with return type as // union type of return types from these signatures - function getContextualSignature(node: Expression): Signature { + function getContextualSignature(node: FunctionExpression): Signature { var type = getContextualType(node); if (!type) { return undefined; @@ -5990,7 +5998,7 @@ module ts { } function getReturnTypeFromBody(func: FunctionLikeDeclaration, contextualMapper?: TypeMapper): Type { - var contextualSignature = getContextualSignature(func); + var contextualSignature = getContextualSignatureForFunctionLikeDeclaration(func); if (func.body.kind !== SyntaxKind.FunctionBlock) { var unwidenedType = checkAndMarkExpression(func.body, contextualMapper); var widenedType = getWidenedType(unwidenedType); diff --git a/src/compiler/parser.ts b/src/compiler/parser.ts index 6ea284b138d..d3860ef7c77 100644 --- a/src/compiler/parser.ts +++ b/src/compiler/parser.ts @@ -445,11 +445,11 @@ module ts { return false; } - export function getContainingFunction(node: Node): SignatureDeclaration { + export function getContainingFunction(node: Node): FunctionLikeDeclaration { while (true) { node = node.parent; if (!node || isAnyFunction(node)) { - return node; + return node; } } } @@ -1936,8 +1936,8 @@ module ts { }); } - function parseIndexSignatureMember(fullStart: number, modifiers: ModifiersArray): SignatureDeclaration { - var node = createNode(SyntaxKind.IndexSignature, fullStart); + function parseIndexSignatureDeclaration(fullStart: number, modifiers: ModifiersArray): IndexSignatureDeclaration { + var node = createNode(SyntaxKind.IndexSignature, fullStart); setModifiers(node, modifiers); node.parameters = parseBracketedList(ParsingContext.Parameters, parseParameter, SyntaxKind.OpenBracketToken, SyntaxKind.CloseBracketToken); node.type = parseTypeAnnotation(); @@ -1994,7 +1994,7 @@ module ts { return parseSignatureMember(SyntaxKind.CallSignature, SyntaxKind.ColonToken); case SyntaxKind.OpenBracketToken: // Indexer or computed property - return isIndexSignature() ? parseIndexSignatureMember(scanner.getStartPos(), /*modifiers:*/ undefined) : parsePropertyOrMethod(); + return isIndexSignature() ? parseIndexSignatureDeclaration(scanner.getStartPos(), /*modifiers:*/ undefined) : parsePropertyOrMethod(); case SyntaxKind.NewKeyword: if (lookAhead(() => nextToken() === SyntaxKind.OpenParenToken || token === SyntaxKind.LessThanToken)) { return parseSignatureMember(SyntaxKind.ConstructSignature, SyntaxKind.ColonToken); @@ -3779,7 +3779,7 @@ module ts { return parseConstructorDeclaration(fullStart, modifiers); } if (isIndexSignature()) { - return parseIndexSignatureMember(fullStart, modifiers); + return parseIndexSignatureDeclaration(fullStart, modifiers); } // It is very important that we check this *after* checking indexers because // the [ token can start an index signature or a computed property name diff --git a/src/compiler/types.ts b/src/compiler/types.ts index e342eec58ec..81b96ed3072 100644 --- a/src/compiler/types.ts +++ b/src/compiler/types.ts @@ -354,7 +354,7 @@ module ts { expression?: Expression; } - export interface SignatureDeclaration extends Declaration, ParsedSignature, ClassElement { + export interface SignatureDeclaration extends Declaration, ParsedSignature { } export interface VariableDeclaration extends Declaration { @@ -383,6 +383,8 @@ module ts { * AccessorDeclaration */ export interface FunctionLikeDeclaration extends SignatureDeclaration { + _functionLikeDeclarationBrand: any; + asteriskToken?: Node; body?: Block | Expression; } @@ -396,14 +398,18 @@ module ts { body?: Block; } - export interface ConstructorDeclaration extends Declaration, ParsedSignature, ClassElement { + export interface ConstructorDeclaration extends FunctionLikeDeclaration, ClassElement { body?: Block; } - export interface AccessorDeclaration extends FunctionLikeDeclaration { + export interface AccessorDeclaration extends FunctionLikeDeclaration, ClassElement { body?: Block; } + export interface IndexSignatureDeclaration extends SignatureDeclaration, ClassElement { + _indexSignatureDeclarationBrand: any; + } + export interface TypeNode extends Node { } export interface TypeReferenceNode extends TypeNode { From ebe8711a21ef7ecca2b877b5fe121b52edcd512e Mon Sep 17 00:00:00 2001 From: Cyrus Najmabadi Date: Sun, 30 Nov 2014 22:28:17 -0800 Subject: [PATCH 145/195] Better error recover when there is an unterminated expression before a declaration. --- src/compiler/parser.ts | 77 +++++++++---------- ...umConflictsWithGlobalIdentifier.errors.txt | 6 +- .../reference/enumMemberResolution.errors.txt | 6 +- 3 files changed, 44 insertions(+), 45 deletions(-) diff --git a/src/compiler/parser.ts b/src/compiler/parser.ts index d3860ef7c77..2b8acf0feb1 100644 --- a/src/compiler/parser.ts +++ b/src/compiler/parser.ts @@ -1589,12 +1589,47 @@ module ts { while (parseOptional(SyntaxKind.DotToken)) { var node = createNode(SyntaxKind.QualifiedName, entity.pos); node.left = entity; - node.right = allowReservedWords ? parseIdentifierName() : parseIdentifier(); + node.right = parseRightSideOfDot(allowReservedWords); entity = finishNode(node); } return entity; } + function parseRightSideOfDot(allowIdentifierNames: boolean): Identifier { + // Technically a keyword is valid here as all keywords are identifier names. + // However, often we'll encounter this in error situations when the keyword + // is actually starting another valid construct. + // + // So, we check for the following specific case: + // + // name. + // keyword identifierNameOrKeyword + // + // Note: the newlines are important here. For example, if that above code + // were rewritten into: + // + // name.keyword + // identifierNameOrKeyword + // + // Then we would consider it valid. That's because ASI would take effect and + // the code would be implicitly: "name.keyword; identifierNameOrKeyword". + // In the first case though, ASI will not take effect because there is not a + // line terminator after the keyword. + if (scanner.hasPrecedingLineBreak() && scanner.isReservedWord()) { + var matchesPattern = lookAhead(() => { + nextToken(); + return !scanner.hasPrecedingLineBreak() && (scanner.isIdentifier() || scanner.isReservedWord()); + }); + + if (matchesPattern) { + errorAtPos(scanner.getTokenPos(), 0, Diagnostics.Identifier_expected); + return createMissingNode(); + } + } + + return allowIdentifierNames ? parseIdentifierName() : parseIdentifier(); + } + function parseTokenNode(): PrimaryExpression { var node = createNode(token); nextToken(); @@ -2847,7 +2882,7 @@ module ts { var node = createNode(SyntaxKind.PropertyAccessExpression, expression.pos); node.expression = expression; parseExpected(SyntaxKind.DotToken, Diagnostics.super_must_be_followed_by_an_argument_list_or_member_access); - node.name = parseIdentifierName(); + node.name = parseRightSideOfDot(/*allowIdentifierNames:*/ true); return finishNode(node); } @@ -2865,40 +2900,8 @@ module ts { var dotOrBracketStart = scanner.getTokenPos(); if (parseOptional(SyntaxKind.DotToken)) { var propertyAccess = createNode(SyntaxKind.PropertyAccessExpression, expression.pos); - // Technically a keyword is valid here as all keywords are identifier names. - // However, often we'll encounter this in error situations when the keyword - // is actually starting another valid construct. - // - // So, we check for the following specific case: - // - // name. - // keyword identifierNameOrKeyword - // - // Note: the newlines are important here. For example, if that above code - // were rewritten into: - // - // name.keyword - // identifierNameOrKeyword - // - // Then we would consider it valid. That's because ASI would take effect and - // the code would be implicitly: "name.keyword; identifierNameOrKeyword". - // In the first case though, ASI will not take effect because there is not a - // line terminator after the keyword. - var id: Identifier; - if (scanner.hasPrecedingLineBreak() && scanner.isReservedWord()) { - var matchesPattern = lookAhead(() => { - nextToken(); - return !scanner.hasPrecedingLineBreak() && (scanner.isIdentifier() || scanner.isReservedWord); - }); - - if (matchesPattern) { - errorAtPos(dotOrBracketStart + 1, 0, Diagnostics.Identifier_expected); - id = createMissingNode(); - } - } - propertyAccess.expression = expression; - propertyAccess.name = id || parseIdentifierName(); + propertyAccess.name = parseRightSideOfDot(/*allowIdentifierNames:*/ true); expression = finishNode(propertyAccess); continue; } @@ -3226,9 +3229,7 @@ module ts { function parseDoStatement(): DoStatement { var node = createNode(SyntaxKind.DoStatement); parseExpected(SyntaxKind.DoKeyword); - node.statement = parseStatement(); - parseExpected(SyntaxKind.WhileKeyword); parseExpected(SyntaxKind.OpenParenToken); node.expression = allowInAnd(parseExpression); @@ -3248,9 +3249,7 @@ module ts { parseExpected(SyntaxKind.OpenParenToken); node.expression = allowInAnd(parseExpression); parseExpected(SyntaxKind.CloseParenToken); - node.statement = parseStatement(); - return finishNode(node); } diff --git a/tests/baselines/reference/enumConflictsWithGlobalIdentifier.errors.txt b/tests/baselines/reference/enumConflictsWithGlobalIdentifier.errors.txt index e6859558f74..b91ddad3eb4 100644 --- a/tests/baselines/reference/enumConflictsWithGlobalIdentifier.errors.txt +++ b/tests/baselines/reference/enumConflictsWithGlobalIdentifier.errors.txt @@ -1,4 +1,4 @@ -tests/cases/compiler/enumConflictsWithGlobalIdentifier.ts(4,29): error TS1003: Identifier expected. +tests/cases/compiler/enumConflictsWithGlobalIdentifier.ts(5,1): error TS1003: Identifier expected. tests/cases/compiler/enumConflictsWithGlobalIdentifier.ts(4,9): error TS2304: Cannot find name 'IgnoreRulesSpecific'. @@ -7,9 +7,9 @@ tests/cases/compiler/enumConflictsWithGlobalIdentifier.ts(4,9): error TS2304: Ca IgnoreRulesSpecific = 0, } var x = IgnoreRulesSpecific. - -!!! error TS1003: Identifier expected. ~~~~~~~~~~~~~~~~~~~ !!! error TS2304: Cannot find name 'IgnoreRulesSpecific'. var y = Position.IgnoreRulesSpecific; + +!!! error TS1003: Identifier expected. \ No newline at end of file diff --git a/tests/baselines/reference/enumMemberResolution.errors.txt b/tests/baselines/reference/enumMemberResolution.errors.txt index f446c0d7909..18910485236 100644 --- a/tests/baselines/reference/enumMemberResolution.errors.txt +++ b/tests/baselines/reference/enumMemberResolution.errors.txt @@ -1,4 +1,4 @@ -tests/cases/compiler/enumMemberResolution.ts(4,29): error TS1003: Identifier expected. +tests/cases/compiler/enumMemberResolution.ts(5,1): error TS1003: Identifier expected. tests/cases/compiler/enumMemberResolution.ts(4,9): error TS2304: Cannot find name 'IgnoreRulesSpecific'. @@ -7,10 +7,10 @@ tests/cases/compiler/enumMemberResolution.ts(4,9): error TS2304: Cannot find nam IgnoreRulesSpecific = 0 } var x = IgnoreRulesSpecific. // error - -!!! error TS1003: Identifier expected. ~~~~~~~~~~~~~~~~~~~ !!! error TS2304: Cannot find name 'IgnoreRulesSpecific'. var y = 1; + +!!! error TS1003: Identifier expected. var z = Position2.IgnoreRulesSpecific; // no error \ No newline at end of file From 0b8b90cdbc7f2e7a504b14bbe8d74bd92065c333 Mon Sep 17 00:00:00 2001 From: Cyrus Najmabadi Date: Sun, 30 Nov 2014 22:41:20 -0800 Subject: [PATCH 146/195] Code review feedback. Explain how TypeLiterals and ObjectLiterals are declarations. Rename variable to be clearer. --- src/compiler/checker.ts | 8 ++++---- src/compiler/types.ts | 4 +++- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index 738c684f554..c43d1074dfa 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -1575,12 +1575,12 @@ module ts { } // Container of resolvedExportSymbol is visible - return forEach(resolvedExportSymbol.declarations, (declaration: Node) => { - while (declaration) { - if (declaration === node) { + return forEach(resolvedExportSymbol.declarations, (current: Node) => { + while (current) { + if (current === node) { return true; } - declaration = declaration.parent; + current = current.parent; } }); } diff --git a/src/compiler/types.ts b/src/compiler/types.ts index 81b96ed3072..e97aaeb2edb 100644 --- a/src/compiler/types.ts +++ b/src/compiler/types.ts @@ -421,6 +421,7 @@ module ts { exprName: EntityName; } + // A TypeLiteral is the declaration node for an anonymous symbol. export interface TypeLiteralNode extends TypeNode, Declaration { members: NodeArray; } @@ -547,7 +548,8 @@ module ts { export interface ArrayLiteralExpression extends PrimaryExpression { elements: NodeArray; } - + + // An ObjectLiteralExpression is the declaration node for an anonymous symbol. export interface ObjectLiteralExpression extends PrimaryExpression, Declaration { properties: NodeArray; } From bab0c1d258de1a7af6ddc5c66a6d2bcc3a34cfda Mon Sep 17 00:00:00 2001 From: Cyrus Najmabadi Date: Sun, 30 Nov 2014 22:47:02 -0800 Subject: [PATCH 147/195] Simplify ASI parsing. --- src/services/syntax/parser.ts | 72 +++++++++++++++++++++-------------- 1 file changed, 44 insertions(+), 28 deletions(-) diff --git a/src/services/syntax/parser.ts b/src/services/syntax/parser.ts index 1226d3a2aec..be71c720de2 100644 --- a/src/services/syntax/parser.ts +++ b/src/services/syntax/parser.ts @@ -602,7 +602,7 @@ module TypeScript.Parser { return createMissingToken(SyntaxKind.IdentifierName, token, diagnosticCode); } - function canEatAutomaticSemicolon(allowWithoutNewLine: boolean): boolean { + function canEatAutomaticSemicolon(): boolean { var token = currentToken(); // An automatic semicolon is always allowed if we're at the end of the file. @@ -616,10 +616,6 @@ module TypeScript.Parser { return true; } - if (allowWithoutNewLine) { - return true; - } - // It is also allowed if there is a newline between the last token seen and the next one. if (token.hasLeadingNewLine()) { return true; @@ -628,17 +624,17 @@ module TypeScript.Parser { return false; } - function canEatExplicitOrAutomaticSemicolon(allowWithoutNewline: boolean): boolean { + function canEatExplicitOrAutomaticSemicolon(): boolean { var token = currentToken(); if (token.kind === SyntaxKind.SemicolonToken) { return true; } - return canEatAutomaticSemicolon(allowWithoutNewline); + return canEatAutomaticSemicolon(); } - function eatExplicitOrAutomaticSemicolon(allowWithoutNewline: boolean): ISyntaxToken { + function eatExplicitOrAutomaticSemicolon(): ISyntaxToken { var token = currentToken(); // If we see a semicolon, then we can definitely eat it. @@ -649,7 +645,7 @@ module TypeScript.Parser { // Check if an automatic semicolon could go here. If so, then there's no problem and // we can proceed without error. Return 'undefined' as there's no actual token for this // position. - if (canEatAutomaticSemicolon(allowWithoutNewline)) { + if (canEatAutomaticSemicolon()) { return undefined; } @@ -885,7 +881,12 @@ module TypeScript.Parser { function parseImportDeclaration(): ImportDeclarationSyntax { return new ImportDeclarationSyntax(contextFlags, - parseModifiers(), eatToken(SyntaxKind.ImportKeyword), eatIdentifierToken(), eatToken(SyntaxKind.EqualsToken), parseModuleReference(), eatExplicitOrAutomaticSemicolon(/*allowWithoutNewline:*/ false)); + parseModifiers(), + eatToken(SyntaxKind.ImportKeyword), + eatIdentifierToken(), + eatToken(SyntaxKind.EqualsToken), + parseModuleReference(), + eatExplicitOrAutomaticSemicolon()); } function parseExportAssignment(): ExportAssignmentSyntax { @@ -894,7 +895,7 @@ module TypeScript.Parser { eatToken(SyntaxKind.ExportKeyword), eatToken(SyntaxKind.EqualsToken), eatIdentifierToken(), - eatExplicitOrAutomaticSemicolon(/*allowWithoutNewline:*/ false)); + eatExplicitOrAutomaticSemicolon()); } function parseModuleReference(): IModuleReferenceSyntax { @@ -1435,7 +1436,7 @@ module TypeScript.Parser { new VariableDeclaratorSyntax(contextFlags, propertyName, parseOptionalTypeAnnotation(/*allowStringLiteral:*/ false), isEqualsValueClause(/*inParameter*/ false) ? allowInAnd(parseEqualsValueClause) : undefined), - eatExplicitOrAutomaticSemicolon(/*allowWithoutNewline:*/ false)); + eatExplicitOrAutomaticSemicolon()); } function isIndexMemberDeclaration(): boolean { @@ -1471,7 +1472,7 @@ module TypeScript.Parser { function parseFunctionBody(isGenerator: boolean, asyncContext: boolean): BlockSyntax | ExpressionBody | ISyntaxToken { return isBlockOrArrow() ? parseFunctionBlockOrExpressionBody(/*yieldContext:*/ isGenerator, /*asyncContext:*/ asyncContext) - : eatExplicitOrAutomaticSemicolon(/*allowWithoutNewline:*/ false); + : eatExplicitOrAutomaticSemicolon(); } function parseModuleName(): INameSyntax { @@ -1508,7 +1509,7 @@ module TypeScript.Parser { eatIdentifierToken(), eatToken(SyntaxKind.EqualsToken), parseType(), - eatExplicitOrAutomaticSemicolon(/*allowWithoutNewLine:*/ false)); + eatExplicitOrAutomaticSemicolon()); } function parseObjectType(): ObjectTypeSyntax { @@ -1902,7 +1903,9 @@ module TypeScript.Parser { } function parseDebuggerStatement(debuggerKeyword: ISyntaxToken): DebuggerStatementSyntax { - return new DebuggerStatementSyntax(contextFlags, consumeToken(debuggerKeyword), eatExplicitOrAutomaticSemicolon(/*allowWithoutNewline:*/ false)); + return new DebuggerStatementSyntax(contextFlags, + consumeToken(debuggerKeyword), + eatExplicitOrAutomaticSemicolon()); } function parseDoStatement(doKeyword: ISyntaxToken): DoStatementSyntax { @@ -1914,8 +1917,13 @@ module TypeScript.Parser { // spec but allowed in consensus reality. Approved -- this is the de-facto standard whereby // do;while(0)x will have a semicolon inserted before x. return new DoStatementSyntax(contextFlags, - consumeToken(doKeyword), parseStatement(/*inErrorRecovery:*/ false), eatToken(SyntaxKind.WhileKeyword), eatToken(SyntaxKind.OpenParenToken), - allowInAnd(parseExpression), eatToken(SyntaxKind.CloseParenToken), eatExplicitOrAutomaticSemicolon(/*allowWithoutNewline:*/ true)); + consumeToken(doKeyword), + parseStatement(/*inErrorRecovery:*/ false), + eatToken(SyntaxKind.WhileKeyword), + eatToken(SyntaxKind.OpenParenToken), + allowInAnd(parseExpression), + eatToken(SyntaxKind.CloseParenToken), + tryEatToken(SyntaxKind.SemicolonToken)); } function isLabeledStatement(currentToken: ISyntaxToken): boolean { @@ -2093,7 +2101,7 @@ module TypeScript.Parser { // If there is no newline after the break keyword, then we can consume an optional // identifier. var identifier: ISyntaxToken = undefined; - if (!canEatExplicitOrAutomaticSemicolon(/*allowWithoutNewline:*/ false)) { + if (!canEatExplicitOrAutomaticSemicolon()) { if (isIdentifier(currentToken())) { return eatIdentifierToken(); } @@ -2104,12 +2112,16 @@ module TypeScript.Parser { function parseBreakStatement(breakKeyword: ISyntaxToken): BreakStatementSyntax { return new BreakStatementSyntax(contextFlags, - consumeToken(breakKeyword), tryEatBreakOrContinueLabel(), eatExplicitOrAutomaticSemicolon(/*allowWithoutNewline:*/ false)); + consumeToken(breakKeyword), + tryEatBreakOrContinueLabel(), + eatExplicitOrAutomaticSemicolon()); } function parseContinueStatement(continueKeyword: ISyntaxToken): ContinueStatementSyntax { return new ContinueStatementSyntax(contextFlags, - consumeToken(continueKeyword), tryEatBreakOrContinueLabel(), eatExplicitOrAutomaticSemicolon(/*allowWithoutNewline:*/ false)); + consumeToken(continueKeyword), + tryEatBreakOrContinueLabel(), + eatExplicitOrAutomaticSemicolon()); } function parseSwitchExpression(openParenToken: ISyntaxToken) { @@ -2189,7 +2201,9 @@ module TypeScript.Parser { function parseThrowStatement(throwKeyword: ISyntaxToken): ThrowStatementSyntax { return new ThrowStatementSyntax(contextFlags, - consumeToken(throwKeyword), tryParseThrowStatementExpression(), eatExplicitOrAutomaticSemicolon(/*allowWithoutNewline:*/ false)); + consumeToken(throwKeyword), + tryParseThrowStatementExpression(), + eatExplicitOrAutomaticSemicolon()); } function tryParseThrowStatementExpression(): IExpressionSyntax { @@ -2201,19 +2215,21 @@ module TypeScript.Parser { // directly as that might consume an expression on the following line. // We just return 'undefined' in that case. The actual error will be reported in the // grammar walker. - return canEatExplicitOrAutomaticSemicolon(/*allowWithoutNewline:*/ false) ? undefined : allowInAnd(parseExpression); + return canEatExplicitOrAutomaticSemicolon() ? undefined : allowInAnd(parseExpression); } function parseReturnStatement(returnKeyword: ISyntaxToken): ReturnStatementSyntax { return new ReturnStatementSyntax(contextFlags, - consumeToken(returnKeyword), tryParseReturnStatementExpression(), eatExplicitOrAutomaticSemicolon(/*allowWithoutNewline:*/ false)); + consumeToken(returnKeyword), + tryParseReturnStatementExpression(), + eatExplicitOrAutomaticSemicolon()); } function tryParseReturnStatementExpression(): IExpressionSyntax { // ReturnStatement[Yield] : // return [no LineTerminator here]Expression[In, ?Yield]; - return canEatExplicitOrAutomaticSemicolon(/*allowWithoutNewline:*/ false) ? undefined : allowInAnd(parseExpression); + return canEatExplicitOrAutomaticSemicolon() ? undefined : allowInAnd(parseExpression); } function isExpressionStatement(currentToken: ISyntaxToken): boolean { @@ -2330,7 +2346,7 @@ module TypeScript.Parser { return new ExpressionStatementSyntax(contextFlags, allowInAnd(parseExpression), - eatExplicitOrAutomaticSemicolon(/*allowWithoutNewline:*/ false)); + eatExplicitOrAutomaticSemicolon()); } function parseIfStatement(ifKeyword: ISyntaxToken): IfStatementSyntax { @@ -2384,7 +2400,7 @@ module TypeScript.Parser { return new VariableStatementSyntax(contextFlags, parseModifiers(), allowInAnd(parseVariableDeclaration), - eatExplicitOrAutomaticSemicolon(/*allowWithoutNewline:*/ false)); + eatExplicitOrAutomaticSemicolon()); } function parseVariableDeclaration(): VariableDeclarationSyntax { @@ -3860,7 +3876,7 @@ module TypeScript.Parser { return consumeToken(_currentToken); } - return eatExplicitOrAutomaticSemicolon(/*allowWithoutNewline:*/ false); + return eatExplicitOrAutomaticSemicolon(); } function tryParseTypeParameterList(requireCompleteTypeParameterList: boolean): TypeParameterListSyntax { @@ -4653,7 +4669,7 @@ module TypeScript.Parser { } // We're done when we can eat a semicolon. - return canEatExplicitOrAutomaticSemicolon(/*allowWithoutNewline:*/ false); + return canEatExplicitOrAutomaticSemicolon(); } } From fde249d6a8e3f63acb0a7d24d9e50062e84437ed Mon Sep 17 00:00:00 2001 From: Mohamed Hegazy Date: Sun, 30 Nov 2014 23:54:21 -0800 Subject: [PATCH 148/195] Handle TypeReference nodes --- src/compiler/checker.ts | 1 + .../isDeclarationVisibleNodeKinds.js | 23 ++++++++++++++++++- .../isDeclarationVisibleNodeKinds.types | 19 +++++++++++++++ .../compiler/isDeclarationVisibleNodeKinds.ts | 9 +++++++- 4 files changed, 50 insertions(+), 2 deletions(-) diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index 025837511c6..9b4f6e16c73 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -1625,6 +1625,7 @@ module ts { case SyntaxKind.FunctionType: case SyntaxKind.ConstructorType: case SyntaxKind.TypeLiteral: + case SyntaxKind.TypeReference: case SyntaxKind.ArrayType: case SyntaxKind.TupleType: case SyntaxKind.UnionType: diff --git a/tests/baselines/reference/isDeclarationVisibleNodeKinds.js b/tests/baselines/reference/isDeclarationVisibleNodeKinds.js index 65fddb0a92a..fbdb179e6c8 100644 --- a/tests/baselines/reference/isDeclarationVisibleNodeKinds.js +++ b/tests/baselines/reference/isDeclarationVisibleNodeKinds.js @@ -48,7 +48,15 @@ module schema { export function createValidator7(schema: any): (new (data: T)=>T )[] { return undefined; } -} +} + +// Type reference +module schema { + export function createValidator8(schema: any): Array<{ (data: T) : T}> { + return undefined; + } +} + //// [isDeclarationVisibleNodeKinds.js] // Function types @@ -107,6 +115,14 @@ var schema; } _schema.createValidator7 = createValidator7; })(schema || (schema = {})); +// Type reference +var schema; +(function (_schema) { + function createValidator8(schema) { + return undefined; + } + _schema.createValidator8 = createValidator8; +})(schema || (schema = {})); //// [isDeclarationVisibleNodeKinds.d.ts] @@ -137,3 +153,8 @@ declare module schema { declare module schema { function createValidator7(schema: any): (new (data: T) => T)[]; } +declare module schema { + function createValidator8(schema: any): Array<{ + (data: T): T; + }>; +} diff --git a/tests/baselines/reference/isDeclarationVisibleNodeKinds.types b/tests/baselines/reference/isDeclarationVisibleNodeKinds.types index c95ded99be3..70b0fa09ebd 100644 --- a/tests/baselines/reference/isDeclarationVisibleNodeKinds.types +++ b/tests/baselines/reference/isDeclarationVisibleNodeKinds.types @@ -119,3 +119,22 @@ module schema { >undefined : undefined } } + +// Type reference +module schema { +>schema : typeof schema + + export function createValidator8(schema: any): Array<{ (data: T) : T}> { +>createValidator8 : (schema: any) => ((data: T) => T)[] +>schema : any +>Array : T[] +>T : T +>data : T +>T : T +>T : T + + return undefined; +>undefined : undefined + } +} + diff --git a/tests/cases/compiler/isDeclarationVisibleNodeKinds.ts b/tests/cases/compiler/isDeclarationVisibleNodeKinds.ts index 3e8b890ef56..34950be8943 100644 --- a/tests/cases/compiler/isDeclarationVisibleNodeKinds.ts +++ b/tests/cases/compiler/isDeclarationVisibleNodeKinds.ts @@ -48,4 +48,11 @@ module schema { export function createValidator7(schema: any): (new (data: T)=>T )[] { return undefined; } -} \ No newline at end of file +} + +// Type reference +module schema { + export function createValidator8(schema: any): Array<{ (data: T) : T}> { + return undefined; + } +} From f40421279333dbe4ca0f7154f140ea2613677e33 Mon Sep 17 00:00:00 2001 From: Cyrus Najmabadi Date: Mon, 1 Dec 2014 00:01:41 -0800 Subject: [PATCH 149/195] Make fewer direct calls to 'error' and 'errorAtPos' in the parser. --- src/compiler/parser.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/compiler/parser.ts b/src/compiler/parser.ts index 2b8acf0feb1..ffd32b6094c 100644 --- a/src/compiler/parser.ts +++ b/src/compiler/parser.ts @@ -1234,7 +1234,7 @@ module ts { } } else { - error(Diagnostics._0_expected, ";"); + parseExpected(SyntaxKind.SemicolonToken); } } @@ -1536,7 +1536,7 @@ module ts { if (isListTerminator(kind)) { break; } - error(Diagnostics._0_expected, ","); + parseExpected(SyntaxKind.CommaToken); } else if (isListTerminator(kind)) { break; From 7eb4e742d12341d9bd1ed85f1af38eb0bcfe1838 Mon Sep 17 00:00:00 2001 From: Cyrus Najmabadi Date: Mon, 1 Dec 2014 00:16:55 -0800 Subject: [PATCH 150/195] Don't directly produce errors while parsing 'try' statements. --- src/compiler/diagnosticInformationMap.generated.ts | 1 - src/compiler/diagnosticMessages.json | 4 ---- src/compiler/parser.ts | 9 +++++---- 3 files changed, 5 insertions(+), 9 deletions(-) diff --git a/src/compiler/diagnosticInformationMap.generated.ts b/src/compiler/diagnosticInformationMap.generated.ts index c17cf94e8c0..f593348e2a7 100644 --- a/src/compiler/diagnosticInformationMap.generated.ts +++ b/src/compiler/diagnosticInformationMap.generated.ts @@ -106,7 +106,6 @@ module ts { Type_argument_expected: { code: 1140, category: DiagnosticCategory.Error, key: "Type argument expected." }, String_literal_expected: { code: 1141, category: DiagnosticCategory.Error, key: "String literal expected." }, Line_break_not_permitted_here: { code: 1142, category: DiagnosticCategory.Error, key: "Line break not permitted here." }, - catch_or_finally_expected: { code: 1143, category: DiagnosticCategory.Error, key: "'catch' or 'finally' expected." }, Block_or_expected: { code: 1144, category: DiagnosticCategory.Error, key: "Block or ';' expected." }, Modifiers_not_permitted_on_index_signature_members: { code: 1145, category: DiagnosticCategory.Error, key: "Modifiers not permitted on index signature members." }, Declaration_expected: { code: 1146, category: DiagnosticCategory.Error, key: "Declaration expected." }, diff --git a/src/compiler/diagnosticMessages.json b/src/compiler/diagnosticMessages.json index 3d5be6d566a..ef45a93b298 100644 --- a/src/compiler/diagnosticMessages.json +++ b/src/compiler/diagnosticMessages.json @@ -415,10 +415,6 @@ "category": "Error", "code": 1142 }, - "'catch' or 'finally' expected.": { - "category": "Error", - "code": 1143 - }, "Block or ';' expected.": { "category": "Error", "code": 1144 diff --git a/src/compiler/parser.ts b/src/compiler/parser.ts index ffd32b6094c..5b4805cd74d 100644 --- a/src/compiler/parser.ts +++ b/src/compiler/parser.ts @@ -3397,12 +3397,13 @@ module ts { if (token === SyntaxKind.CatchKeyword) { node.catchBlock = parseCatchBlock(); } - if (token === SyntaxKind.FinallyKeyword) { + + // If we don't have a catch clause, then we must have a finally clause. Try to parse + // one out no matter what. + if (!node.catchBlock || token === SyntaxKind.FinallyKeyword) { node.finallyBlock = parseTokenAndBlock(SyntaxKind.FinallyKeyword, SyntaxKind.FinallyBlock); } - if (!(node.catchBlock || node.finallyBlock)) { - error(Diagnostics.catch_or_finally_expected); - } + return finishNode(node); } From f91996a80c5d03565e3df156db3608150280ddab Mon Sep 17 00:00:00 2001 From: Cyrus Najmabadi Date: Mon, 1 Dec 2014 00:31:31 -0800 Subject: [PATCH 151/195] Don't report an error directly when parsing a function body. --- src/compiler/diagnosticInformationMap.generated.ts | 2 +- src/compiler/diagnosticMessages.json | 2 +- src/compiler/parser.ts | 12 ++++-------- .../baselines/reference/dottedModuleName.errors.txt | 4 ++-- .../objectTypesWithOptionalProperties2.errors.txt | 8 ++++---- ...rErrantEqualsGreaterThanAfterFunction1.errors.txt | 4 ++-- ...rErrantEqualsGreaterThanAfterFunction2.errors.txt | 4 ++-- 7 files changed, 16 insertions(+), 20 deletions(-) diff --git a/src/compiler/diagnosticInformationMap.generated.ts b/src/compiler/diagnosticInformationMap.generated.ts index f593348e2a7..74341b96651 100644 --- a/src/compiler/diagnosticInformationMap.generated.ts +++ b/src/compiler/diagnosticInformationMap.generated.ts @@ -106,7 +106,7 @@ module ts { Type_argument_expected: { code: 1140, category: DiagnosticCategory.Error, key: "Type argument expected." }, String_literal_expected: { code: 1141, category: DiagnosticCategory.Error, key: "String literal expected." }, Line_break_not_permitted_here: { code: 1142, category: DiagnosticCategory.Error, key: "Line break not permitted here." }, - Block_or_expected: { code: 1144, category: DiagnosticCategory.Error, key: "Block or ';' expected." }, + or_expected: { code: 1144, category: DiagnosticCategory.Error, key: "'{' or ';' expected." }, Modifiers_not_permitted_on_index_signature_members: { code: 1145, category: DiagnosticCategory.Error, key: "Modifiers not permitted on index signature members." }, Declaration_expected: { code: 1146, category: DiagnosticCategory.Error, key: "Declaration expected." }, Import_declarations_in_an_internal_module_cannot_reference_an_external_module: { code: 1147, category: DiagnosticCategory.Error, key: "Import declarations in an internal module cannot reference an external module." }, diff --git a/src/compiler/diagnosticMessages.json b/src/compiler/diagnosticMessages.json index ef45a93b298..0e06f4fcfb0 100644 --- a/src/compiler/diagnosticMessages.json +++ b/src/compiler/diagnosticMessages.json @@ -415,7 +415,7 @@ "category": "Error", "code": 1142 }, - "Block or ';' expected.": { + "'{' or ';' expected.": { "category": "Error", "code": 1144 }, diff --git a/src/compiler/parser.ts b/src/compiler/parser.ts index 5b4805cd74d..934cec2c0bc 100644 --- a/src/compiler/parser.ts +++ b/src/compiler/parser.ts @@ -1226,7 +1226,7 @@ module ts { return token === SyntaxKind.CloseBraceToken || token === SyntaxKind.EndOfFileToken || scanner.hasPrecedingLineBreak(); } - function parseSemicolon(): void { + function parseSemicolon(diagnosticMessage?: DiagnosticMessage): void { if (canParseSemicolon()) { if (token === SyntaxKind.SemicolonToken) { // consume the semicolon if it was explicitly provided. @@ -1234,7 +1234,7 @@ module ts { } } else { - parseExpected(SyntaxKind.SemicolonToken); + parseExpected(SyntaxKind.SemicolonToken, diagnosticMessage); } } @@ -3572,12 +3572,8 @@ module ts { return parseFunctionBlock(isGenerator, /* ignoreMissingOpenBrace */ false); } - if (canParseSemicolon()) { - parseSemicolon(); - return undefined; - } - - error(Diagnostics.Block_or_expected); // block or ';' expected + parseSemicolon(Diagnostics.or_expected); + return undefined; } // DECLARATIONS diff --git a/tests/baselines/reference/dottedModuleName.errors.txt b/tests/baselines/reference/dottedModuleName.errors.txt index 0b8c3a5c422..9d9de6ee230 100644 --- a/tests/baselines/reference/dottedModuleName.errors.txt +++ b/tests/baselines/reference/dottedModuleName.errors.txt @@ -1,4 +1,4 @@ -tests/cases/compiler/dottedModuleName.ts(3,29): error TS1144: Block or ';' expected. +tests/cases/compiler/dottedModuleName.ts(3,29): error TS1144: '{' or ';' expected. tests/cases/compiler/dottedModuleName.ts(3,18): error TS2391: Function implementation is missing or not immediately following the declaration. tests/cases/compiler/dottedModuleName.ts(3,33): error TS2304: Cannot find name 'x'. @@ -8,7 +8,7 @@ tests/cases/compiler/dottedModuleName.ts(3,33): error TS2304: Cannot find name ' export module N { export function f(x:number)=>2*x; ~~ -!!! error TS1144: Block or ';' expected. +!!! error TS1144: '{' or ';' expected. ~ !!! error TS2391: Function implementation is missing or not immediately following the declaration. ~ diff --git a/tests/baselines/reference/objectTypesWithOptionalProperties2.errors.txt b/tests/baselines/reference/objectTypesWithOptionalProperties2.errors.txt index a427681b22e..533834baea7 100644 --- a/tests/baselines/reference/objectTypesWithOptionalProperties2.errors.txt +++ b/tests/baselines/reference/objectTypesWithOptionalProperties2.errors.txt @@ -2,11 +2,11 @@ tests/cases/conformance/types/objectTypeLiteral/methodSignatures/objectTypesWith tests/cases/conformance/types/objectTypeLiteral/methodSignatures/objectTypesWithOptionalProperties2.ts(4,9): error TS1131: Property or signature expected. tests/cases/conformance/types/objectTypeLiteral/methodSignatures/objectTypesWithOptionalProperties2.ts(8,8): error TS1005: ';' expected. tests/cases/conformance/types/objectTypeLiteral/methodSignatures/objectTypesWithOptionalProperties2.ts(8,9): error TS1131: Property or signature expected. -tests/cases/conformance/types/objectTypeLiteral/methodSignatures/objectTypesWithOptionalProperties2.ts(12,8): error TS1144: Block or ';' expected. +tests/cases/conformance/types/objectTypeLiteral/methodSignatures/objectTypesWithOptionalProperties2.ts(12,8): error TS1144: '{' or ';' expected. tests/cases/conformance/types/objectTypeLiteral/methodSignatures/objectTypesWithOptionalProperties2.ts(12,9): error TS1068: Unexpected token. A constructor, method, accessor, or property was expected. tests/cases/conformance/types/objectTypeLiteral/methodSignatures/objectTypesWithOptionalProperties2.ts(16,8): error TS1005: ';' expected. tests/cases/conformance/types/objectTypeLiteral/methodSignatures/objectTypesWithOptionalProperties2.ts(16,9): error TS1131: Property or signature expected. -tests/cases/conformance/types/objectTypeLiteral/methodSignatures/objectTypesWithOptionalProperties2.ts(20,8): error TS1144: Block or ';' expected. +tests/cases/conformance/types/objectTypeLiteral/methodSignatures/objectTypesWithOptionalProperties2.ts(20,8): error TS1144: '{' or ';' expected. tests/cases/conformance/types/objectTypeLiteral/methodSignatures/objectTypesWithOptionalProperties2.ts(20,9): error TS1068: Unexpected token. A constructor, method, accessor, or property was expected. tests/cases/conformance/types/objectTypeLiteral/methodSignatures/objectTypesWithOptionalProperties2.ts(25,8): error TS1005: '{' expected. tests/cases/conformance/types/objectTypeLiteral/methodSignatures/objectTypesWithOptionalProperties2.ts(25,9): error TS1136: Property assignment expected. @@ -37,7 +37,7 @@ tests/cases/conformance/types/objectTypeLiteral/methodSignatures/objectTypesWith class C { x()?: number; // error ~ -!!! error TS1144: Block or ';' expected. +!!! error TS1144: '{' or ';' expected. ~ !!! error TS1068: Unexpected token. A constructor, method, accessor, or property was expected. ~ @@ -55,7 +55,7 @@ tests/cases/conformance/types/objectTypeLiteral/methodSignatures/objectTypesWith class C2 { x()?: T; // error ~ -!!! error TS1144: Block or ';' expected. +!!! error TS1144: '{' or ';' expected. ~ !!! error TS1068: Unexpected token. A constructor, method, accessor, or property was expected. ~ diff --git a/tests/baselines/reference/parserErrantEqualsGreaterThanAfterFunction1.errors.txt b/tests/baselines/reference/parserErrantEqualsGreaterThanAfterFunction1.errors.txt index 70d6a8481ee..7c32d4433e4 100644 --- a/tests/baselines/reference/parserErrantEqualsGreaterThanAfterFunction1.errors.txt +++ b/tests/baselines/reference/parserErrantEqualsGreaterThanAfterFunction1.errors.txt @@ -1,10 +1,10 @@ -tests/cases/conformance/parser/ecmascript5/ErrorRecovery/parserErrantEqualsGreaterThanAfterFunction1.ts(1,14): error TS1144: Block or ';' expected. +tests/cases/conformance/parser/ecmascript5/ErrorRecovery/parserErrantEqualsGreaterThanAfterFunction1.ts(1,14): error TS1144: '{' or ';' expected. tests/cases/conformance/parser/ecmascript5/ErrorRecovery/parserErrantEqualsGreaterThanAfterFunction1.ts(1,10): error TS2391: Function implementation is missing or not immediately following the declaration. ==== tests/cases/conformance/parser/ecmascript5/ErrorRecovery/parserErrantEqualsGreaterThanAfterFunction1.ts (2 errors) ==== function f() => 4; ~~ -!!! error TS1144: Block or ';' expected. +!!! error TS1144: '{' or ';' expected. ~ !!! error TS2391: Function implementation is missing or not immediately following the declaration. \ No newline at end of file diff --git a/tests/baselines/reference/parserErrantEqualsGreaterThanAfterFunction2.errors.txt b/tests/baselines/reference/parserErrantEqualsGreaterThanAfterFunction2.errors.txt index a830b84ff6e..8df3b0bbff6 100644 --- a/tests/baselines/reference/parserErrantEqualsGreaterThanAfterFunction2.errors.txt +++ b/tests/baselines/reference/parserErrantEqualsGreaterThanAfterFunction2.errors.txt @@ -1,4 +1,4 @@ -tests/cases/conformance/parser/ecmascript5/ErrorRecovery/parserErrantEqualsGreaterThanAfterFunction2.ts(1,18): error TS1144: Block or ';' expected. +tests/cases/conformance/parser/ecmascript5/ErrorRecovery/parserErrantEqualsGreaterThanAfterFunction2.ts(1,18): error TS1144: '{' or ';' expected. tests/cases/conformance/parser/ecmascript5/ErrorRecovery/parserErrantEqualsGreaterThanAfterFunction2.ts(1,10): error TS2391: Function implementation is missing or not immediately following the declaration. tests/cases/conformance/parser/ecmascript5/ErrorRecovery/parserErrantEqualsGreaterThanAfterFunction2.ts(1,15): error TS2304: Cannot find name 'A'. tests/cases/conformance/parser/ecmascript5/ErrorRecovery/parserErrantEqualsGreaterThanAfterFunction2.ts(1,21): error TS2304: Cannot find name 'p'. @@ -7,7 +7,7 @@ tests/cases/conformance/parser/ecmascript5/ErrorRecovery/parserErrantEqualsGreat ==== tests/cases/conformance/parser/ecmascript5/ErrorRecovery/parserErrantEqualsGreaterThanAfterFunction2.ts (4 errors) ==== function f(p: A) => p; ~~ -!!! error TS1144: Block or ';' expected. +!!! error TS1144: '{' or ';' expected. ~ !!! error TS2391: Function implementation is missing or not immediately following the declaration. ~ From 2f634b7e5429ec8926b3c42ce5ba08da2ae4c73a Mon Sep 17 00:00:00 2001 From: Cyrus Najmabadi Date: Mon, 1 Dec 2014 00:45:18 -0800 Subject: [PATCH 152/195] Don't report errors directly when parsing throw statements or try/finally statements. --- src/compiler/parser.ts | 53 ++++++++++++++++++++++++++++-------------- 1 file changed, 35 insertions(+), 18 deletions(-) diff --git a/src/compiler/parser.ts b/src/compiler/parser.ts index 934cec2c0bc..1f060945740 100644 --- a/src/compiler/parser.ts +++ b/src/compiler/parser.ts @@ -3380,12 +3380,17 @@ module ts { } function parseThrowStatement(): ThrowStatement { + // ThrowStatement[Yield] : + // throw [no LineTerminator here]Expression[In, ?Yield]; + + // Because of automatic semicolon insertion, we need to report error if this + // throw could be terminated with a semicolon. Note: we can't call 'parseExpression' + // directly as that might consume an expression on the following line. + // We just return 'undefined' in that case. The actual error will be reported in the + // grammar walker. var node = createNode(SyntaxKind.ThrowStatement); parseExpected(SyntaxKind.ThrowKeyword); - if (scanner.hasPrecedingLineBreak()) { - error(Diagnostics.Line_break_not_permitted_here); - } - node.expression = allowInAnd(parseExpression); + node.expression = scanner.hasPrecedingLineBreak() ? undefined : allowInAnd(parseExpression); parseSemicolon(); return finishNode(node); } @@ -3393,25 +3398,20 @@ module ts { // TODO: Review for error recovery function parseTryStatement(): TryStatement { var node = createNode(SyntaxKind.TryStatement); - node.tryBlock = parseTokenAndBlock(SyntaxKind.TryKeyword, SyntaxKind.TryBlock); - if (token === SyntaxKind.CatchKeyword) { - node.catchBlock = parseCatchBlock(); - } + node.tryBlock = parseTokenAndBlock(SyntaxKind.TryKeyword); + node.catchBlock = token === SyntaxKind.CatchKeyword ? parseCatchBlock() : undefined; // If we don't have a catch clause, then we must have a finally clause. Try to parse // one out no matter what. - if (!node.catchBlock || token === SyntaxKind.FinallyKeyword) { - node.finallyBlock = parseTokenAndBlock(SyntaxKind.FinallyKeyword, SyntaxKind.FinallyBlock); - } - + node.finallyBlock = !node.catchBlock || token === SyntaxKind.FinallyKeyword ? parseTokenAndBlock(SyntaxKind.FinallyKeyword) : undefined; return finishNode(node); } - function parseTokenAndBlock(token: SyntaxKind, kind: SyntaxKind): Block { + function parseTokenAndBlock(token: SyntaxKind): Block { var pos = getNodePos(); parseExpected(token); var result = parseBlock(/* ignoreMissingOpenBrace */ false, /*checkForStrictMode*/ false); - result.kind = kind; + result.kind = token === SyntaxKind.TryKeyword ? SyntaxKind.TryBlock : SyntaxKind.FinallyBlock; result.pos = pos; return result; } @@ -4321,6 +4321,7 @@ module ts { case SyntaxKind.ShorthandPropertyAssignment: return checkShorthandPropertyAssignment(node); case SyntaxKind.SwitchStatement: return checkSwitchStatement(node); case SyntaxKind.TaggedTemplateExpression: return checkTaggedTemplateExpression(node); + case SyntaxKind.ThrowStatement: return checkThrowStatement(node); case SyntaxKind.TupleType: return checkTupleType(node); case SyntaxKind.TypeParameter: return checkTypeParameter(node); case SyntaxKind.TypeReference: return checkTypeReference(node); @@ -4331,12 +4332,22 @@ module ts { } } - function grammarErrorOnFirstToken(node: Node, message: DiagnosticMessage, arg0?: any, arg1?: any, arg2?: any): boolean { - var start = skipTrivia(sourceText, node.pos); + function scanToken(pos: number) { + var start = skipTrivia(sourceText, pos); scanner.setTextPos(start); scanner.scan(); - var end = scanner.getTextPos(); - grammarDiagnostics.push(createFileDiagnostic(file, start, end - start, message, arg0, arg1, arg2)); + return start; + } + + function grammarErrorOnFirstToken(node: Node, message: DiagnosticMessage, arg0?: any, arg1?: any, arg2?: any): boolean { + var start = scanToken(node.pos); + grammarDiagnostics.push(createFileDiagnostic(file, start, scanner.getTextPos() - start, message, arg0, arg1, arg2)); + return true; + } + + function grammarErrorAfterFirstToken(node: Node, message: DiagnosticMessage, arg0?: any, arg1?: any, arg2?: any): boolean { + scanToken(node.pos); + grammarDiagnostics.push(createFileDiagnostic(file, scanner.getTextPos(), 0, message, arg0, arg1, arg2)); return true; } @@ -5348,6 +5359,12 @@ module ts { } } + function checkThrowStatement(node: ThrowStatement) { + if (node.expression === undefined) { + return grammarErrorAfterFirstToken(node, Diagnostics.Line_break_not_permitted_here); + } + } + function checkTupleType(node: TupleTypeNode) { return checkForDisallowedTrailingComma(node.elementTypes) || checkForAtLeastOneType(node); From 94febee13874e2309be130e232ffe057ee1b025b Mon Sep 17 00:00:00 2001 From: Cyrus Najmabadi Date: Mon, 1 Dec 2014 00:52:52 -0800 Subject: [PATCH 153/195] Don't create errors directly when parsing template spans. --- src/compiler/diagnosticInformationMap.generated.ts | 1 - src/compiler/diagnosticMessages.json | 4 ---- src/compiler/parser.ts | 3 +-- tests/baselines/reference/TemplateExpression1.errors.txt | 4 ++-- 4 files changed, 3 insertions(+), 9 deletions(-) diff --git a/src/compiler/diagnosticInformationMap.generated.ts b/src/compiler/diagnosticInformationMap.generated.ts index 74341b96651..6b545ddfd0d 100644 --- a/src/compiler/diagnosticInformationMap.generated.ts +++ b/src/compiler/diagnosticInformationMap.generated.ts @@ -119,7 +119,6 @@ module ts { const_declarations_must_be_initialized: { code: 1155, category: DiagnosticCategory.Error, key: "'const' declarations must be initialized" }, const_declarations_can_only_be_declared_inside_a_block: { code: 1156, category: DiagnosticCategory.Error, key: "'const' declarations can only be declared inside a block." }, let_declarations_can_only_be_declared_inside_a_block: { code: 1157, category: DiagnosticCategory.Error, key: "'let' declarations can only be declared inside a block." }, - Invalid_template_literal_expected: { code: 1158, category: DiagnosticCategory.Error, key: "Invalid template literal; expected '}'" }, Tagged_templates_are_only_available_when_targeting_ECMAScript_6_and_higher: { code: 1159, category: DiagnosticCategory.Error, key: "Tagged templates are only available when targeting ECMAScript 6 and higher." }, Unterminated_template_literal: { code: 1160, category: DiagnosticCategory.Error, key: "Unterminated template literal." }, Unterminated_regular_expression_literal: { code: 1161, category: DiagnosticCategory.Error, key: "Unterminated regular expression literal." }, diff --git a/src/compiler/diagnosticMessages.json b/src/compiler/diagnosticMessages.json index 0e06f4fcfb0..8d9dbe94097 100644 --- a/src/compiler/diagnosticMessages.json +++ b/src/compiler/diagnosticMessages.json @@ -467,10 +467,6 @@ "category": "Error", "code": 1157 }, - "Invalid template literal; expected '}'": { - "category": "Error", - "code": 1158 - }, "Tagged templates are only available when targeting ECMAScript 6 and higher.": { "category": "Error", "code": 1159 diff --git a/src/compiler/parser.ts b/src/compiler/parser.ts index 1f060945740..9bfde417a2f 100644 --- a/src/compiler/parser.ts +++ b/src/compiler/parser.ts @@ -1676,13 +1676,12 @@ module ts { literal = parseLiteralNode(); } else { - error(Diagnostics.Invalid_template_literal_expected); + parseExpected(SyntaxKind.CloseBraceToken); literal = createMissingNode(); literal.text = ""; } span.literal = literal; - return finishNode(span); } diff --git a/tests/baselines/reference/TemplateExpression1.errors.txt b/tests/baselines/reference/TemplateExpression1.errors.txt index bf57f5ef24e..c13b0fabd54 100644 --- a/tests/baselines/reference/TemplateExpression1.errors.txt +++ b/tests/baselines/reference/TemplateExpression1.errors.txt @@ -1,10 +1,10 @@ -tests/cases/conformance/es6/templates/TemplateExpression1.ts(1,19): error TS1158: Invalid template literal; expected '}' +tests/cases/conformance/es6/templates/TemplateExpression1.ts(1,19): error TS1005: '}' expected. tests/cases/conformance/es6/templates/TemplateExpression1.ts(1,17): error TS2304: Cannot find name 'a'. ==== tests/cases/conformance/es6/templates/TemplateExpression1.ts (2 errors) ==== var v = `foo ${ a -!!! error TS1158: Invalid template literal; expected '}' +!!! error TS1005: '}' expected. ~ !!! error TS2304: Cannot find name 'a'. \ No newline at end of file From 08d3e4a90ea694422a1d6f88cdb5356ef1964f76 Mon Sep 17 00:00:00 2001 From: Cyrus Najmabadi Date: Mon, 1 Dec 2014 00:57:48 -0800 Subject: [PATCH 154/195] Don't directly create errors when parsing expressions. --- src/compiler/parser.ts | 24 +++++++++++------------- 1 file changed, 11 insertions(+), 13 deletions(-) diff --git a/src/compiler/parser.ts b/src/compiler/parser.ts index 9bfde417a2f..77d6d69ba10 100644 --- a/src/compiler/parser.ts +++ b/src/compiler/parser.ts @@ -1272,7 +1272,7 @@ module ts { // An identifier that starts with two underscores has an extra underscore character prepended to it to avoid issues // with magic property names like '__proto__'. The 'identifiers' object is used to share a single string instance for // each identifier in order to reduce memory consumption. - function createIdentifier(isIdentifier: boolean): Identifier { + function createIdentifier(isIdentifier: boolean, diagnosticMessage?: DiagnosticMessage): Identifier { identifierCount++; if (isIdentifier) { var node = createNode(SyntaxKind.Identifier); @@ -1280,14 +1280,18 @@ module ts { nextToken(); return finishNode(node); } - error(Diagnostics.Identifier_expected); + error(diagnosticMessage || Diagnostics.Identifier_expected); + return createMissingIdentifier(); + } + + function createMissingIdentifier() { var node = createMissingNode(); node.text = ""; return node; } - function parseIdentifier(): Identifier { - return createIdentifier(isIdentifier()); + function parseIdentifier(diagnosticMessage?: DiagnosticMessage): Identifier { + return createIdentifier(isIdentifier(), diagnosticMessage); } function parseIdentifierName(): Identifier { @@ -1677,8 +1681,7 @@ module ts { } else { parseExpected(SyntaxKind.CloseBraceToken); - literal = createMissingNode(); - literal.text = ""; + literal = createMissingIdentifier(); } span.literal = literal; @@ -3032,14 +3035,9 @@ module ts { break; case SyntaxKind.TemplateHead: return parseTemplateExpression(); - - default: - if (isIdentifier()) { - return parseIdentifier(); - } } - error(Diagnostics.Expression_expected); - return createMissingNode(); + + return parseIdentifier(Diagnostics.Expression_expected); } function parseParenthesizedExpression(): ParenthesizedExpression { From 4db6d3136cf19e82217cb50254ce296a7a4554fc Mon Sep 17 00:00:00 2001 From: Cyrus Najmabadi Date: Mon, 1 Dec 2014 01:10:21 -0800 Subject: [PATCH 155/195] Extract out common code from the list parsers. --- src/compiler/parser.ts | 41 +++++++++++++++++++++++++++-------------- 1 file changed, 27 insertions(+), 14 deletions(-) diff --git a/src/compiler/parser.ts b/src/compiler/parser.ts index 77d6d69ba10..45345237958 100644 --- a/src/compiler/parser.ts +++ b/src/compiler/parser.ts @@ -1280,6 +1280,7 @@ module ts { nextToken(); return finishNode(node); } + error(diagnosticMessage || Diagnostics.Identifier_expected); return createMissingIdentifier(); } @@ -1490,12 +1491,14 @@ module ts { var result = >[]; result.pos = getNodePos(); var savedStrictModeContext = inStrictModeContext(); + while (!isListTerminator(kind)) { if (isListElement(kind, /* inErrorRecovery */ false)) { var element = parseElement(); result.push(element); + // test elements only if we are not already in strict mode - if (!inStrictModeContext() && checkForStrictMode) { + if (checkForStrictMode && !inStrictModeContext()) { if (isPrologueDirective(element)) { if (isUseStrictPrologueDirective(element)) { setStrictModeContext(true); @@ -1506,21 +1509,32 @@ module ts { checkForStrictMode = false; } } + + continue; } - else { - error(parsingContextErrors(kind)); - if (isInSomeParsingContext()) { - break; - } - nextToken(); + + if (abortParsingListOrMoveToNextToken(kind)) { + break; } } + setStrictModeContext(savedStrictModeContext); result.end = getNodeEnd(); parsingContext = saveParsingContext; return result; } + // Returns true if we should abort parsing. + function abortParsingListOrMoveToNextToken(kind: ParsingContext) { + error(parsingContextErrors(kind)); + if (isInSomeParsingContext()) { + return true; + } + + nextToken(); + return false; + } + // Parses a comma-delimited list of elements function parseDelimitedList(kind: ParsingContext, parseElement: () => T): NodeArray { var saveParsingContext = parsingContext; @@ -1541,16 +1555,15 @@ module ts { break; } parseExpected(SyntaxKind.CommaToken); + continue; } - else if (isListTerminator(kind)) { + + if (isListTerminator(kind)) { break; } - else { - error(parsingContextErrors(kind)); - if (isInSomeParsingContext()) { - break; - } - nextToken(); + + if (abortParsingListOrMoveToNextToken(kind)) { + break; } } From ada6cebef37ff59ba22d647bfdd51bf9cccf8c9c Mon Sep 17 00:00:00 2001 From: Cyrus Najmabadi Date: Mon, 1 Dec 2014 03:00:27 -0800 Subject: [PATCH 156/195] Don't parse nodes, only to not include them in the tree. This will break incremental parsing scenarios. Properly store the data for an external module reference in the AST. --- src/compiler/checker.ts | 30 +++++--- src/compiler/emitter.ts | 13 ++-- src/compiler/parser.ts | 70 +++++++++++++------ src/compiler/types.ts | 8 ++- src/services/services.ts | 4 +- .../importNonStringLiteral.errors.txt | 5 +- 6 files changed, 85 insertions(+), 45 deletions(-) diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index c43d1074dfa..7a1bfafcb47 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -467,9 +467,9 @@ module ts { if (!links.target) { links.target = resolvingSymbol; var node = getDeclarationOfKind(symbol, SyntaxKind.ImportDeclaration); - var target = node.externalModuleName ? - resolveExternalModuleName(node, node.externalModuleName) : - getSymbolOfPartOfRightHandSideOfImport(node.entityName, node); + var target = node.externalModuleName + ? resolveExternalModuleName(node, node.externalModuleName.expression) + : getSymbolOfPartOfRightHandSideOfImport(node.entityName, node); if (links.target === resolvingSymbol) { links.target = target || unknownSymbol; } @@ -546,7 +546,12 @@ module ts { return moduleName.substr(0, 2) === "./" || moduleName.substr(0, 3) === "../" || moduleName.substr(0, 2) === ".\\" || moduleName.substr(0, 3) === "..\\"; } - function resolveExternalModuleName(location: Node, moduleLiteral: LiteralExpression): Symbol { + function resolveExternalModuleName(location: Node, moduleExpression: Expression): Symbol { + if (moduleExpression.kind !== SyntaxKind.StringLiteral) { + return; + } + + var moduleLiteral = moduleExpression; var searchPath = getDirectoryPath(getSourceFile(location).filename); var moduleName = moduleLiteral.text; if (!moduleName) return; @@ -8368,12 +8373,17 @@ module ts { // An ExternalImportDeclaration in an AmbientExternalModuleDeclaration may reference // other external modules only through top - level external module names. // Relative external module names are not permitted. - if (isExternalModuleNameRelative(node.externalModuleName.text)) { - error(node, Diagnostics.Import_declaration_in_an_ambient_external_module_declaration_cannot_reference_external_module_through_relative_external_module_name); - target = unknownSymbol; + if (node.externalModuleName.expression.kind === SyntaxKind.StringLiteral) { + if (isExternalModuleNameRelative((node.externalModuleName.expression).text)) { + error(node, Diagnostics.Import_declaration_in_an_ambient_external_module_declaration_cannot_reference_external_module_through_relative_external_module_name); + target = unknownSymbol; + } + else { + target = resolveImport(symbol); + } } else { - target = resolveImport(symbol); + target = unknownSymbol; } } else { @@ -8948,8 +8958,8 @@ module ts { case SyntaxKind.StringLiteral: // External module name in an import declaration - if (node.parent.kind === SyntaxKind.ImportDeclaration && (node.parent).externalModuleName === node) { - var importSymbol = getSymbolOfNode(node.parent); + if (node.parent.parent.kind === SyntaxKind.ImportDeclaration && (node.parent.parent).externalModuleName.expression === node) { + var importSymbol = getSymbolOfNode(node.parent.parent); var moduleType = getTypeOfSymbol(importSymbol); return moduleType ? moduleType.symbol : undefined; } diff --git a/src/compiler/emitter.ts b/src/compiler/emitter.ts index df99de098f3..f5e5c056def 100644 --- a/src/compiler/emitter.ts +++ b/src/compiler/emitter.ts @@ -671,7 +671,7 @@ module ts { } else { write("require("); - writeTextOfNode(currentSourceFile, node.externalModuleName); + writeTextOfNode(currentSourceFile, node.externalModuleName.expression); write(");"); } writer.writeLine(); @@ -3312,11 +3312,12 @@ module ts { emit(node.entityName); } else { + var literal = node.externalModuleName.expression; write("require("); - emitStart(node.externalModuleName); - emitLiteral(node.externalModuleName); - emitEnd(node.externalModuleName); - emitToken(SyntaxKind.CloseParenToken, node.externalModuleName.end); + emitStart(literal); + emitLiteral(literal); + emitEnd(literal); + emitToken(SyntaxKind.CloseParenToken, literal.end); } write(";"); emitEnd(node); @@ -3356,7 +3357,7 @@ module ts { write("[\"require\", \"exports\""); forEach(imports, imp => { write(", "); - emitLiteral(imp.externalModuleName); + emitLiteral(imp.externalModuleName.expression); }); forEach(node.amdDependencies, amdDependency => { var text = "\"" + amdDependency + "\""; diff --git a/src/compiler/parser.ts b/src/compiler/parser.ts index 45345237958..9e8424030ab 100644 --- a/src/compiler/parser.ts +++ b/src/compiler/parser.ts @@ -394,6 +394,8 @@ module ts { return child((node).expression); case SyntaxKind.HeritageClause: return children((node).types); + case SyntaxKind.ExternalModuleReference: + return child((node).expression); } } @@ -1726,14 +1728,6 @@ module ts { return node; } - function parseStringLiteral(): LiteralExpression { - if (token === SyntaxKind.StringLiteral) { - return parseLiteralNode(/*internName:*/ true); - } - error(Diagnostics.String_literal_expected); - return createMissingNode(); - } - // TYPES function parseTypeReference(): TypeReferenceNode { @@ -1786,9 +1780,7 @@ module ts { function parseParameterType(): TypeNode { return parseOptional(SyntaxKind.ColonToken) - ? token === SyntaxKind.StringLiteral - ? parseStringLiteral() - : parseType() + ? token === SyntaxKind.StringLiteral ? parseLiteralNode(/*internName:*/ true) : parseType() : undefined; } @@ -3940,7 +3932,7 @@ module ts { function parseAmbientExternalModuleDeclaration(fullStart: number, flags: NodeFlags): ModuleDeclaration { var node = createNode(SyntaxKind.ModuleDeclaration, fullStart); node.flags = flags; - node.name = parseStringLiteral(); + node.name = parseLiteralNode(/*internName:*/ true); node.body = parseModuleBlock(); return finishNode(node); } @@ -3952,24 +3944,45 @@ module ts { : parseInternalModuleTail(fullStart, flags); } + function isExternalModuleReference() { + if (token === SyntaxKind.RequireKeyword) { + return lookAhead(() => { + nextToken(); + return token === SyntaxKind.OpenParenToken; + }); + } + + return false; + } + function parseImportDeclaration(fullStart: number, modifiers: ModifiersArray): ImportDeclaration { var node = createNode(SyntaxKind.ImportDeclaration, fullStart); setModifiers(node, modifiers); parseExpected(SyntaxKind.ImportKeyword); node.name = parseIdentifier(); parseExpected(SyntaxKind.EqualsToken); - var entityName = parseEntityName(/*allowReservedWords*/ false); - if (entityName.kind === SyntaxKind.Identifier && (entityName).text === "require" && parseOptional(SyntaxKind.OpenParenToken)) { - node.externalModuleName = parseStringLiteral(); - parseExpected(SyntaxKind.CloseParenToken); + if (isExternalModuleReference()) { + node.externalModuleName = parseExternalModuleReference(); } else { - node.entityName = entityName; + node.entityName = parseEntityName(/*allowReservedWords*/ false); } parseSemicolon(); return finishNode(node); } + function parseExternalModuleReference() { + var node = createNode(SyntaxKind.ExternalModuleReference); + parseExpected(SyntaxKind.RequireKeyword); + parseExpected(SyntaxKind.OpenParenToken); + node.expression = parseExpression(); + if (node.expression.kind === SyntaxKind.StringLiteral) { + internIdentifier((node.expression).text); + } + parseExpected(SyntaxKind.CloseParenToken); + return finishNode(node); + } + function parseExportAssignmentTail(fullStart: number, modifiers: ModifiersArray): ExportAssignment { var node = createNode(SyntaxKind.ExportAssignment, fullStart); setModifiers(node, modifiers); @@ -4307,6 +4320,7 @@ module ts { case SyntaxKind.DeleteExpression: return checkDeleteExpression( node); case SyntaxKind.ElementAccessExpression: return checkElementAccessExpression(node); case SyntaxKind.ExportAssignment: return checkExportAssignment(node); + case SyntaxKind.ExternalModuleReference: return checkExternalModuleReference(node); case SyntaxKind.ForInStatement: return checkForInStatement(node); case SyntaxKind.ForStatement: return checkForStatement(node); case SyntaxKind.FunctionDeclaration: return checkFunctionDeclaration(node); @@ -4704,6 +4718,12 @@ module ts { } } + function checkExternalModuleReference(node: ExternalModuleReference) { + if (node.expression.kind !== SyntaxKind.StringLiteral) { + return grammarErrorOnNode(node.expression, Diagnostics.String_literal_expected); + } + } + function checkForInStatement(node: ForInStatement) { return checkVariableDeclarations(node.declarations) || checkForMoreThanOneDeclaration(node.declarations); @@ -4905,7 +4925,7 @@ module ts { return grammarErrorOnNode(statement, Diagnostics.An_export_assignment_cannot_be_used_in_an_internal_module); } else if (statement.kind === SyntaxKind.ImportDeclaration && (statement).externalModuleName) { - return grammarErrorOnNode((statement).externalModuleName, Diagnostics.Import_declarations_in_an_internal_module_cannot_reference_an_external_module); + return grammarErrorOnNode((statement).externalModuleName.expression, Diagnostics.Import_declarations_in_an_internal_module_cannot_reference_an_external_module); } } } @@ -5627,8 +5647,11 @@ module ts { function processImportedModules(file: SourceFile, basePath: string) { forEach(file.statements, node => { - if (node.kind === SyntaxKind.ImportDeclaration && (node).externalModuleName) { - var nameLiteral = (node).externalModuleName; + if (node.kind === SyntaxKind.ImportDeclaration && + (node).externalModuleName && + (node).externalModuleName.expression.kind === SyntaxKind.StringLiteral) { + + var nameLiteral = (node).externalModuleName.expression; var moduleName = nameLiteral.text; if (moduleName) { var searchPath = basePath; @@ -5653,8 +5676,11 @@ module ts { // The StringLiteral must specify a top - level external module name. // Relative external module names are not permitted forEachChild((node).body, node => { - if (node.kind === SyntaxKind.ImportDeclaration && (node).externalModuleName) { - var nameLiteral = (node).externalModuleName; + if (node.kind === SyntaxKind.ImportDeclaration && + (node).externalModuleName && + (node).externalModuleName.expression.kind === SyntaxKind.StringLiteral) { + + var nameLiteral = (node).externalModuleName.expression; var moduleName = nameLiteral.text; if (moduleName) { // TypeScript 1.0 spec (April 2014): 12.1.6 diff --git a/src/compiler/types.ts b/src/compiler/types.ts index e97aaeb2edb..0a636b94b06 100644 --- a/src/compiler/types.ts +++ b/src/compiler/types.ts @@ -221,6 +221,8 @@ module ts { ModuleBlock, ImportDeclaration, ExportAssignment, + // Module references + ExternalModuleReference, // Clauses CaseClause, DefaultClause, @@ -730,7 +732,11 @@ module ts { export interface ImportDeclaration extends Declaration, ModuleElement { name: Identifier; entityName?: EntityName; - externalModuleName?: LiteralExpression; + externalModuleName?: ExternalModuleReference; + } + + export interface ExternalModuleReference extends Node { + expression?: Expression; } export interface ExportAssignment extends Statement, ModuleElement { diff --git a/src/services/services.ts b/src/services/services.ts index 0ef6ab02b72..a4569d88791 100644 --- a/src/services/services.ts +++ b/src/services/services.ts @@ -1982,7 +1982,7 @@ module ts { function isNameOfExternalModuleImportOrDeclaration(node: Node): boolean { return node.kind === SyntaxKind.StringLiteral && (isNameOfModuleDeclaration(node) || - (node.parent.kind === SyntaxKind.ImportDeclaration && (node.parent).externalModuleName === node)); + (node.parent.parent.kind === SyntaxKind.ImportDeclaration && (node.parent.parent).externalModuleName.expression === node)); } /** Returns true if the position is within a comment */ @@ -3086,7 +3086,7 @@ module ts { displayParts.push(spacePart()); displayParts.push(keywordPart(SyntaxKind.RequireKeyword)); displayParts.push(punctuationPart(SyntaxKind.OpenParenToken)); - displayParts.push(displayPart(getTextOfNode(importDeclaration.externalModuleName), SymbolDisplayPartKind.stringLiteral)); + displayParts.push(displayPart(getTextOfNode(importDeclaration.externalModuleName.expression), SymbolDisplayPartKind.stringLiteral)); displayParts.push(punctuationPart(SyntaxKind.CloseParenToken)); } else { diff --git a/tests/baselines/reference/importNonStringLiteral.errors.txt b/tests/baselines/reference/importNonStringLiteral.errors.txt index ce3dbb3e1ec..7138680d709 100644 --- a/tests/baselines/reference/importNonStringLiteral.errors.txt +++ b/tests/baselines/reference/importNonStringLiteral.errors.txt @@ -1,12 +1,9 @@ tests/cases/conformance/externalModules/importNonStringLiteral.ts(2,22): error TS1141: String literal expected. -tests/cases/conformance/externalModules/importNonStringLiteral.ts(2,23): error TS1005: ';' expected. -==== tests/cases/conformance/externalModules/importNonStringLiteral.ts (2 errors) ==== +==== tests/cases/conformance/externalModules/importNonStringLiteral.ts (1 errors) ==== var x = "filename"; import foo = require(x); // invalid ~ !!! error TS1141: String literal expected. - ~ -!!! error TS1005: ';' expected. \ No newline at end of file From 1600b38760119457fe34c2e515e3920a43591faa Mon Sep 17 00:00:00 2001 From: Cyrus Najmabadi Date: Mon, 1 Dec 2014 03:15:51 -0800 Subject: [PATCH 157/195] Don't explicitly call 'error' when parsing a type. --- src/compiler/parser.ts | 20 +++++++------------ .../parservoidInQualifiedName1.errors.txt | 9 +++------ 2 files changed, 10 insertions(+), 19 deletions(-) diff --git a/src/compiler/parser.ts b/src/compiler/parser.ts index 9e8424030ab..db1f7b18ee3 100644 --- a/src/compiler/parser.ts +++ b/src/compiler/parser.ts @@ -1603,8 +1603,8 @@ module ts { } // The allowReservedWords parameter controls whether reserved words are permitted after the first dot - function parseEntityName(allowReservedWords: boolean): EntityName { - var entity: EntityName = parseIdentifier(); + function parseEntityName(allowReservedWords: boolean, diagnosticMessage?: DiagnosticMessage): EntityName { + var entity: EntityName = parseIdentifier(diagnosticMessage); while (parseOptional(SyntaxKind.DotToken)) { var node = createNode(SyntaxKind.QualifiedName, entity.pos); node.left = entity; @@ -1732,7 +1732,7 @@ module ts { function parseTypeReference(): TypeReferenceNode { var node = createNode(SyntaxKind.TypeReference); - node.typeName = parseEntityName(/*allowReservedWords*/ false); + node.typeName = parseEntityName(/*allowReservedWords*/ false, Diagnostics.Type_expected); if (!scanner.hasPrecedingLineBreak() && token === SyntaxKind.LessThanToken) { node.typeArguments = parseTypeArguments(); } @@ -2102,9 +2102,11 @@ module ts { case SyntaxKind.StringKeyword: case SyntaxKind.NumberKeyword: case SyntaxKind.BooleanKeyword: - case SyntaxKind.VoidKeyword: + // If these are followed by a dot, then parse these out as a dotted type reference instead. var node = tryParse(parseKeywordAndNoDot); return node || parseTypeReference(); + case SyntaxKind.VoidKeyword: + return parseTokenNode(); case SyntaxKind.TypeOfKeyword: return parseTypeQuery(); case SyntaxKind.OpenBraceToken: @@ -2114,12 +2116,8 @@ module ts { case SyntaxKind.OpenParenToken: return parseParenType(); default: - if (isIdentifier()) { - return parseTypeReference(); - } + return parseTypeReference(); } - error(Diagnostics.Type_expected); - return createMissingNode(); } function isStartOfType(): boolean { @@ -3852,10 +3850,6 @@ module ts { return parseList(ParsingContext.ClassMembers, /*checkForStrictMode*/ false, parseClassElement); } - function parseClassBaseType(): TypeReferenceNode { - return parseOptional(SyntaxKind.ExtendsKeyword) ? parseTypeReference() : undefined; - } - function parseInterfaceDeclaration(fullStart: number, modifiers: ModifiersArray): InterfaceDeclaration { var node = createNode(SyntaxKind.InterfaceDeclaration, fullStart); setModifiers(node, modifiers); diff --git a/tests/baselines/reference/parservoidInQualifiedName1.errors.txt b/tests/baselines/reference/parservoidInQualifiedName1.errors.txt index a8a77c9a220..d5433fb9078 100644 --- a/tests/baselines/reference/parservoidInQualifiedName1.errors.txt +++ b/tests/baselines/reference/parservoidInQualifiedName1.errors.txt @@ -1,10 +1,7 @@ -tests/cases/conformance/parser/ecmascript5/parservoidInQualifiedName1.ts(1,9): error TS1003: Identifier expected. -tests/cases/conformance/parser/ecmascript5/parservoidInQualifiedName1.ts(1,13): error TS1109: Expression expected. +tests/cases/conformance/parser/ecmascript5/parservoidInQualifiedName1.ts(1,13): error TS1005: ',' expected. -==== tests/cases/conformance/parser/ecmascript5/parservoidInQualifiedName1.ts (2 errors) ==== +==== tests/cases/conformance/parser/ecmascript5/parservoidInQualifiedName1.ts (1 errors) ==== var v : void.x; - ~~~~ -!!! error TS1003: Identifier expected. ~ -!!! error TS1109: Expression expected. \ No newline at end of file +!!! error TS1005: ',' expected. \ No newline at end of file From 64b1f232b5ae666cf2be800814cf7d0e2aaacf5a Mon Sep 17 00:00:00 2001 From: Cyrus Najmabadi Date: Mon, 1 Dec 2014 03:24:12 -0800 Subject: [PATCH 158/195] Simplify the code for parseDeclaration. This is to help get to a point where we can remove the direct call to 'error' within it. --- src/compiler/parser.ts | 60 +++++++++++++++++------------------------- 1 file changed, 24 insertions(+), 36 deletions(-) diff --git a/src/compiler/parser.ts b/src/compiler/parser.ts index db1f7b18ee3..6db6d2a30a7 100644 --- a/src/compiler/parser.ts +++ b/src/compiler/parser.ts @@ -3883,9 +3883,11 @@ module ts { return finishNode(node); } - function parseAndCheckEnumDeclaration(fullStart: number, flags: NodeFlags): EnumDeclaration { + function parseAndCheckEnumDeclaration(fullStart: number, modifiers: ModifiersArray, flags: NodeFlags): EnumDeclaration { var node = createNode(SyntaxKind.EnumDeclaration, fullStart); - node.flags = flags; + setModifiers(node, modifiers); + + node.flags |= flags; if (flags & NodeFlags.Const) { parseExpected(SyntaxKind.ConstKeyword); } @@ -3913,29 +3915,31 @@ module ts { return finishNode(node); } - function parseInternalModuleTail(fullStart: number, flags: NodeFlags): ModuleDeclaration { + function parseInternalModuleTail(fullStart: number, modifiers: ModifiersArray, flags: NodeFlags): ModuleDeclaration { var node = createNode(SyntaxKind.ModuleDeclaration, fullStart); - node.flags = flags; + setModifiers(node, modifiers); + node.flags |= flags; node.name = parseIdentifier(); node.body = parseOptional(SyntaxKind.DotToken) - ? parseInternalModuleTail(getNodePos(), NodeFlags.Export) + ? parseInternalModuleTail(getNodePos(), /*modifiers:*/undefined, NodeFlags.Export) : parseModuleBlock(); return finishNode(node); } - function parseAmbientExternalModuleDeclaration(fullStart: number, flags: NodeFlags): ModuleDeclaration { + function parseAmbientExternalModuleDeclaration(fullStart: number, modifiers: ModifiersArray, flags: NodeFlags): ModuleDeclaration { var node = createNode(SyntaxKind.ModuleDeclaration, fullStart); - node.flags = flags; + setModifiers(node, modifiers); + node.flags |= flags; node.name = parseLiteralNode(/*internName:*/ true); node.body = parseModuleBlock(); return finishNode(node); } - function parseModuleDeclaration(fullStart: number, flags: NodeFlags): ModuleDeclaration { + function parseModuleDeclaration(fullStart: number, modifiers: ModifiersArray, flags: NodeFlags): ModuleDeclaration { parseExpected(SyntaxKind.ModuleKeyword); return token === SyntaxKind.StringLiteral - ? parseAmbientExternalModuleDeclaration(fullStart, flags) - : parseInternalModuleTail(fullStart, flags); + ? parseAmbientExternalModuleDeclaration(fullStart, modifiers, flags) + : parseInternalModuleTail(fullStart, modifiers, flags); } function isExternalModuleReference() { @@ -4026,51 +4030,35 @@ module ts { } var flags = modifiers ? modifiers.flags : 0; - var result: ModuleElement; switch (token) { case SyntaxKind.VarKeyword: case SyntaxKind.LetKeyword: - result = parseVariableStatement(fullStart, modifiers); - break; + return parseVariableStatement(fullStart, modifiers); case SyntaxKind.ConstKeyword: var isConstEnum = lookAhead(() => nextToken() === SyntaxKind.EnumKeyword); if (isConstEnum) { - result = parseAndCheckEnumDeclaration(fullStart, flags | NodeFlags.Const); + return parseAndCheckEnumDeclaration(fullStart, modifiers, flags | NodeFlags.Const); } else { - result = parseVariableStatement(fullStart, modifiers); + return parseVariableStatement(fullStart, modifiers); } - break; case SyntaxKind.FunctionKeyword: - result = parseFunctionDeclaration(fullStart, modifiers); - break; + return parseFunctionDeclaration(fullStart, modifiers); case SyntaxKind.ClassKeyword: - result = parseClassDeclaration(fullStart, modifiers); - break; + return parseClassDeclaration(fullStart, modifiers); case SyntaxKind.InterfaceKeyword: - result = parseInterfaceDeclaration(fullStart, modifiers); - break; + return parseInterfaceDeclaration(fullStart, modifiers); case SyntaxKind.TypeKeyword: - result = parseTypeAliasDeclaration(fullStart, modifiers); - break; + return parseTypeAliasDeclaration(fullStart, modifiers); case SyntaxKind.EnumKeyword: - result = parseAndCheckEnumDeclaration(fullStart, flags); - break; + return parseAndCheckEnumDeclaration(fullStart, modifiers, flags); case SyntaxKind.ModuleKeyword: - result = parseModuleDeclaration(fullStart, flags); - break; + return parseModuleDeclaration(fullStart, modifiers, flags); case SyntaxKind.ImportKeyword: - result = parseImportDeclaration(fullStart, modifiers); - break; + return parseImportDeclaration(fullStart, modifiers); default: error(Diagnostics.Declaration_expected); } - - if (modifiers) { - result.modifiers = modifiers; - } - - return result; } function isSourceElement(inErrorRecovery: boolean): boolean { From bf731646ecd5b91d8ec03e939aca8c9d10691843 Mon Sep 17 00:00:00 2001 From: vvakame Date: Wed, 26 Nov 2014 22:28:52 +0900 Subject: [PATCH 159/195] Add missing prototype properties --- src/lib/core.d.ts | 1 + src/lib/extensions.d.ts | 3 +++ .../reference/constDeclarationShadowedByVarDeclaration3.types | 2 +- 3 files changed, 5 insertions(+), 1 deletion(-) diff --git a/src/lib/core.d.ts b/src/lib/core.d.ts index 7f498488f21..5abc7fe2037 100644 --- a/src/lib/core.d.ts +++ b/src/lib/core.d.ts @@ -822,6 +822,7 @@ interface RegExp { declare var RegExp: { new (pattern: string, flags?: string): RegExp; (pattern: string, flags?: string): RegExp; + prototype: RegExp; // Non-standard extensions $1: string; diff --git a/src/lib/extensions.d.ts b/src/lib/extensions.d.ts index 82cc129ecbc..f4387543c01 100644 --- a/src/lib/extensions.d.ts +++ b/src/lib/extensions.d.ts @@ -631,6 +631,7 @@ interface Map { } declare var Map: { new (): Map; + prototype: Map; } interface WeakMap { @@ -642,6 +643,7 @@ interface WeakMap { } declare var WeakMap: { new (): WeakMap; + prototype: WeakMap; } interface Set { @@ -654,6 +656,7 @@ interface Set { } declare var Set: { new (): Set; + prototype: Set; } declare module Intl { diff --git a/tests/baselines/reference/constDeclarationShadowedByVarDeclaration3.types b/tests/baselines/reference/constDeclarationShadowedByVarDeclaration3.types index 89490567f14..3e688cc7674 100644 --- a/tests/baselines/reference/constDeclarationShadowedByVarDeclaration3.types +++ b/tests/baselines/reference/constDeclarationShadowedByVarDeclaration3.types @@ -7,7 +7,7 @@ class Rule { >regex : RegExp >RegExp : RegExp >new RegExp('') : RegExp ->RegExp : { (pattern: string, flags?: string): RegExp; new (pattern: string, flags?: string): RegExp; $1: string; $2: string; $3: string; $4: string; $5: string; $6: string; $7: string; $8: string; $9: string; lastMatch: string; } +>RegExp : { (pattern: string, flags?: string): RegExp; new (pattern: string, flags?: string): RegExp; prototype: RegExp; $1: string; $2: string; $3: string; $4: string; $5: string; $6: string; $7: string; $8: string; $9: string; lastMatch: string; } public name: string = ''; >name : string From 847eb097cb131ffb28ba3cabf9198cdf68f6f7b7 Mon Sep 17 00:00:00 2001 From: Yui T Date: Mon, 1 Dec 2014 10:52:49 -0800 Subject: [PATCH 160/195] Add baseline --- ...erLiteralAndOctalIntegerLiteral.errors.txt | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 tests/baselines/reference/invalidBinaryIntegerLiteralAndOctalIntegerLiteral.errors.txt diff --git a/tests/baselines/reference/invalidBinaryIntegerLiteralAndOctalIntegerLiteral.errors.txt b/tests/baselines/reference/invalidBinaryIntegerLiteralAndOctalIntegerLiteral.errors.txt new file mode 100644 index 00000000000..1ff2501e278 --- /dev/null +++ b/tests/baselines/reference/invalidBinaryIntegerLiteralAndOctalIntegerLiteral.errors.txt @@ -0,0 +1,20 @@ +tests/cases/conformance/es6/binaryAndOctalIntegerLiteral/invalidBinaryIntegerLiteralAndOctalIntegerLiteral.ts(2,16): error TS1163: Binary digit expected. +tests/cases/conformance/es6/binaryAndOctalIntegerLiteral/invalidBinaryIntegerLiteralAndOctalIntegerLiteral.ts(3,17): error TS1163: Binary digit expected. +tests/cases/conformance/es6/binaryAndOctalIntegerLiteral/invalidBinaryIntegerLiteralAndOctalIntegerLiteral.ts(4,15): error TS1164: Octal digit expected. +tests/cases/conformance/es6/binaryAndOctalIntegerLiteral/invalidBinaryIntegerLiteralAndOctalIntegerLiteral.ts(5,15): error TS1164: Octal digit expected. + + +==== tests/cases/conformance/es6/binaryAndOctalIntegerLiteral/invalidBinaryIntegerLiteralAndOctalIntegerLiteral.ts (4 errors) ==== + // Error + var binary = 0b21010; + +!!! error TS1163: Binary digit expected. + var binary1 = 0B21010; + +!!! error TS1163: Binary digit expected. + var octal = 0o81010; + +!!! error TS1164: Octal digit expected. + var octal = 0O91010; + +!!! error TS1164: Octal digit expected. \ No newline at end of file From 0f6574e7e6c15213d2afcea740540cde65ab44ca Mon Sep 17 00:00:00 2001 From: Mohamed Hegazy Date: Mon, 1 Dec 2014 13:20:56 -0800 Subject: [PATCH 161/195] Add test for getters and setters --- .../isDeclarationVisibleNodeKinds.js | 41 ++++++++++++++++++- .../isDeclarationVisibleNodeKinds.types | 28 +++++++++++++ .../compiler/isDeclarationVisibleNodeKinds.ts | 13 ++++++ 3 files changed, 81 insertions(+), 1 deletion(-) diff --git a/tests/baselines/reference/isDeclarationVisibleNodeKinds.js b/tests/baselines/reference/isDeclarationVisibleNodeKinds.js index fbdb179e6c8..0d1664c7f59 100644 --- a/tests/baselines/reference/isDeclarationVisibleNodeKinds.js +++ b/tests/baselines/reference/isDeclarationVisibleNodeKinds.js @@ -56,7 +56,18 @@ module schema { return undefined; } } - + + +module schema { + export class T { + get createValidator9(): (data: T) => T { + return undefined; + } + + set createValidator10(v: (data: T) => T) { + } + } +} //// [isDeclarationVisibleNodeKinds.js] // Function types @@ -123,6 +134,28 @@ var schema; } _schema.createValidator8 = createValidator8; })(schema || (schema = {})); +var schema; +(function (schema) { + var T = (function () { + function T() { + } + Object.defineProperty(T.prototype, "createValidator9", { + get: function () { + return undefined; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(T.prototype, "createValidator10", { + set: function (v) { + }, + enumerable: true, + configurable: true + }); + return T; + })(); + schema.T = T; +})(schema || (schema = {})); //// [isDeclarationVisibleNodeKinds.d.ts] @@ -158,3 +191,9 @@ declare module schema { (data: T): T; }>; } +declare module schema { + class T { + createValidator9: (data: T) => T; + createValidator10: (data: T) => T; + } +} diff --git a/tests/baselines/reference/isDeclarationVisibleNodeKinds.types b/tests/baselines/reference/isDeclarationVisibleNodeKinds.types index 70b0fa09ebd..b3fe8d684b7 100644 --- a/tests/baselines/reference/isDeclarationVisibleNodeKinds.types +++ b/tests/baselines/reference/isDeclarationVisibleNodeKinds.types @@ -138,3 +138,31 @@ module schema { } } + +module schema { +>schema : typeof schema + + export class T { +>T : T + + get createValidator9(): (data: T) => T { +>createValidator9 : (data: T) => T +>T : T +>data : T +>T : T +>T : T + + return undefined; +>undefined : undefined + } + + set createValidator10(v: (data: T) => T) { +>createValidator10 : (data: T) => T +>v : (data: T) => T +>T : T +>data : T +>T : T +>T : T + } + } +} diff --git a/tests/cases/compiler/isDeclarationVisibleNodeKinds.ts b/tests/cases/compiler/isDeclarationVisibleNodeKinds.ts index 34950be8943..0434c40ee6a 100644 --- a/tests/cases/compiler/isDeclarationVisibleNodeKinds.ts +++ b/tests/cases/compiler/isDeclarationVisibleNodeKinds.ts @@ -1,4 +1,5 @@ // @declaration: true +// @target: es5 // Function types module schema { @@ -56,3 +57,15 @@ module schema { return undefined; } } + + +module schema { + export class T { + get createValidator9(): (data: T) => T { + return undefined; + } + + set createValidator10(v: (data: T) => T) { + } + } +} \ No newline at end of file From cc1da37e7267e3a03528a3ac3b86828121510822 Mon Sep 17 00:00:00 2001 From: Cyrus Najmabadi Date: Mon, 1 Dec 2014 13:24:33 -0800 Subject: [PATCH 162/195] Use a single member to represent a module reference. --- src/compiler/checker.ts | 27 +++++++++--------- src/compiler/emitter.ts | 25 +++++++--------- src/compiler/parser.ts | 57 ++++++++++++++++++++++++------------- src/compiler/types.ts | 6 ++-- src/services/breakpoints.ts | 2 +- src/services/services.ts | 17 ++++++----- 6 files changed, 77 insertions(+), 57 deletions(-) diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index 7a1bfafcb47..31cf28946fc 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -467,9 +467,9 @@ module ts { if (!links.target) { links.target = resolvingSymbol; var node = getDeclarationOfKind(symbol, SyntaxKind.ImportDeclaration); - var target = node.externalModuleName - ? resolveExternalModuleName(node, node.externalModuleName.expression) - : getSymbolOfPartOfRightHandSideOfImport(node.entityName, node); + var target = node.moduleReference.kind === SyntaxKind.ExternalModuleReference + ? resolveExternalModuleName(node, getExternalModuleImportDeclarationExpression(node)) + : getSymbolOfPartOfRightHandSideOfImport(node.moduleReference, node); if (links.target === resolvingSymbol) { links.target = target || unknownSymbol; } @@ -829,8 +829,8 @@ module ts { if (symbolFromSymbolTable.flags & SymbolFlags.Import) { if (!useOnlyExternalAliasing || // We can use any type of alias to get the name // Is this external alias, then use it to name - ts.forEach(symbolFromSymbolTable.declarations, declaration => - declaration.kind === SyntaxKind.ImportDeclaration && (declaration).externalModuleName)) { + ts.forEach(symbolFromSymbolTable.declarations, isExternalModuleImportDeclaration)) { + var resolvedImportedSymbol = resolveImport(symbolFromSymbolTable); if (isAccessible(symbolFromSymbolTable, resolveImport(symbolFromSymbolTable))) { return [symbolFromSymbolTable]; @@ -8343,16 +8343,16 @@ module ts { var symbol = getSymbolOfNode(node); var target: Symbol; - if (node.entityName) { + if (isInternalModuleImportDeclaration(node)) { target = resolveImport(symbol); // Import declaration for an internal module if (target !== unknownSymbol) { if (target.flags & SymbolFlags.Value) { // Target is a value symbol, check that it is not hidden by a local declaration with the same name and // ensure it can be evaluated as an expression - var moduleName = getFirstIdentifier(node.entityName); + var moduleName = getFirstIdentifier(node.moduleReference); if (resolveEntityName(node, moduleName, SymbolFlags.Value | SymbolFlags.Namespace).flags & SymbolFlags.Namespace) { - checkExpression(node.entityName); + checkExpression(node.moduleReference); } else { error(moduleName, Diagnostics.Module_0_is_hidden_by_a_local_declaration_with_the_same_name, declarationNameToString(moduleName)); @@ -8373,8 +8373,8 @@ module ts { // An ExternalImportDeclaration in an AmbientExternalModuleDeclaration may reference // other external modules only through top - level external module names. // Relative external module names are not permitted. - if (node.externalModuleName.expression.kind === SyntaxKind.StringLiteral) { - if (isExternalModuleNameRelative((node.externalModuleName.expression).text)) { + if (getExternalModuleImportDeclarationExpression(node).kind === SyntaxKind.StringLiteral) { + if (isExternalModuleNameRelative((getExternalModuleImportDeclarationExpression(node)).text)) { error(node, Diagnostics.Import_declaration_in_an_ambient_external_module_declaration_cannot_reference_external_module_through_relative_external_module_name); target = unknownSymbol; } @@ -8847,7 +8847,7 @@ module ts { } if (node.parent.kind === SyntaxKind.ImportDeclaration) { - return (node.parent).entityName === node; + return (node.parent).moduleReference === node; } if (node.parent.kind === SyntaxKind.ExportAssignment) { return (node.parent).exportName === node; @@ -8958,7 +8958,8 @@ module ts { case SyntaxKind.StringLiteral: // External module name in an import declaration - if (node.parent.parent.kind === SyntaxKind.ImportDeclaration && (node.parent.parent).externalModuleName.expression === node) { + if (isExternalModuleImportDeclaration(node.parent.parent) && + getExternalModuleImportDeclarationExpression(node.parent.parent) === node) { var importSymbol = getSymbolOfNode(node.parent.parent); var moduleType = getTypeOfSymbol(importSymbol); return moduleType ? moduleType.symbol : undefined; @@ -9145,7 +9146,7 @@ module ts { } function isTopLevelValueImportWithEntityName(node: ImportDeclaration): boolean { - if (node.parent.kind !== SyntaxKind.SourceFile || !node.entityName) { + if (node.parent.kind !== SyntaxKind.SourceFile || !isInternalModuleImportDeclaration(node)) { // parent is not source file or it is not reference to internal module return false; } diff --git a/src/compiler/emitter.ts b/src/compiler/emitter.ts index f5e5c056def..19a3355ff0a 100644 --- a/src/compiler/emitter.ts +++ b/src/compiler/emitter.ts @@ -665,13 +665,13 @@ module ts { write("import "); writeTextOfNode(currentSourceFile, node.name); write(" = "); - if (node.entityName) { - emitTypeWithNewGetSymbolAccessibilityDiangostic(node.entityName, getImportEntityNameVisibilityError); + if (isInternalModuleImportDeclaration(node)) { + emitTypeWithNewGetSymbolAccessibilityDiangostic(node.moduleReference, getImportEntityNameVisibilityError); write(";"); } else { write("require("); - writeTextOfNode(currentSourceFile, node.externalModuleName.expression); + writeTextOfNode(currentSourceFile, getExternalModuleImportDeclarationExpression(node)); write(");"); } writer.writeLine(); @@ -3288,7 +3288,7 @@ module ts { } if (emitImportDeclaration) { - if (node.externalModuleName && node.parent.kind === SyntaxKind.SourceFile && compilerOptions.module === ModuleKind.AMD) { + if (isExternalModuleImportDeclaration(node) && node.parent.kind === SyntaxKind.SourceFile && compilerOptions.module === ModuleKind.AMD) { if (node.flags & NodeFlags.Export) { writeLine(); emitLeadingComments(node); @@ -3308,11 +3308,11 @@ module ts { if (!(node.flags & NodeFlags.Export)) write("var "); emitModuleMemberName(node); write(" = "); - if (node.entityName) { - emit(node.entityName); + if (isInternalModuleImportDeclaration(node)) { + emit(node.moduleReference); } else { - var literal = node.externalModuleName.expression; + var literal = getExternalModuleImportDeclarationExpression(node); write("require("); emitStart(literal); emitLiteral(literal); @@ -3328,12 +3328,9 @@ module ts { function getExternalImportDeclarations(node: SourceFile): ImportDeclaration[] { var result: ImportDeclaration[] = []; - forEach(node.statements, stat => { - if (stat.kind === SyntaxKind.ImportDeclaration - && (stat).externalModuleName - && resolver.isReferencedImportDeclaration(stat)) { - - result.push(stat); + forEach(node.statements, statement => { + if (isExternalModuleImportDeclaration(statement) && resolver.isReferencedImportDeclaration(statement)) { + result.push(statement); } }); return result; @@ -3357,7 +3354,7 @@ module ts { write("[\"require\", \"exports\""); forEach(imports, imp => { write(", "); - emitLiteral(imp.externalModuleName.expression); + emitLiteral(getExternalModuleImportDeclarationExpression(imp)); }); forEach(node.amdDependencies, amdDependency => { var text = "\"" + amdDependency + "\""; diff --git a/src/compiler/parser.ts b/src/compiler/parser.ts index 6db6d2a30a7..6b130799ce7 100644 --- a/src/compiler/parser.ts +++ b/src/compiler/parser.ts @@ -382,8 +382,7 @@ module ts { child((node).body); case SyntaxKind.ImportDeclaration: return child((node).name) || - child((node).entityName) || - child((node).externalModuleName); + child((node).moduleReference); case SyntaxKind.ExportAssignment: return child((node).exportName); case SyntaxKind.TemplateExpression: @@ -591,6 +590,19 @@ module ts { return false; } + export function isExternalModuleImportDeclaration(node: Node) { + return node.kind === SyntaxKind.ImportDeclaration && (node).moduleReference.kind === SyntaxKind.ExternalModuleReference; + } + + export function getExternalModuleImportDeclarationExpression(node: Node) { + Debug.assert(isExternalModuleImportDeclaration(node)); + return ((node).moduleReference).expression; + } + + export function isInternalModuleImportDeclaration(node: Node) { + return node.kind === SyntaxKind.ImportDeclaration && (node).moduleReference.kind !== SyntaxKind.ExternalModuleReference; + } + export function hasRestParameters(s: SignatureDeclaration): boolean { return s.parameters.length > 0 && (s.parameters[s.parameters.length - 1].flags & NodeFlags.Rest) !== 0; } @@ -3403,7 +3415,9 @@ module ts { // If we don't have a catch clause, then we must have a finally clause. Try to parse // one out no matter what. - node.finallyBlock = !node.catchBlock || token === SyntaxKind.FinallyKeyword ? parseTokenAndBlock(SyntaxKind.FinallyKeyword) : undefined; + node.finallyBlock = !node.catchBlock || token === SyntaxKind.FinallyKeyword + ? parseTokenAndBlock(SyntaxKind.FinallyKeyword) + : undefined; return finishNode(node); } @@ -3959,20 +3973,25 @@ module ts { parseExpected(SyntaxKind.ImportKeyword); node.name = parseIdentifier(); parseExpected(SyntaxKind.EqualsToken); - if (isExternalModuleReference()) { - node.externalModuleName = parseExternalModuleReference(); - } - else { - node.entityName = parseEntityName(/*allowReservedWords*/ false); - } + node.moduleReference = parseModuleReference(); parseSemicolon(); return finishNode(node); } + function parseModuleReference() { + return isExternalModuleReference() + ? parseExternalModuleReference() + : parseEntityName(/*allowReservedWords*/ false); + } + function parseExternalModuleReference() { var node = createNode(SyntaxKind.ExternalModuleReference); parseExpected(SyntaxKind.RequireKeyword); parseExpected(SyntaxKind.OpenParenToken); + + // We allow arbitrary expressions here, even though the grammar only allows string + // literals. We check to ensure that it is only a string literal later in the grammar + // walker. node.expression = parseExpression(); if (node.expression.kind === SyntaxKind.StringLiteral) { internIdentifier((node.expression).text); @@ -4129,7 +4148,7 @@ module ts { function getExternalModuleIndicator() { return forEach(file.statements, node => node.flags & NodeFlags.Export - || node.kind === SyntaxKind.ImportDeclaration && (node).externalModuleName + || node.kind === SyntaxKind.ImportDeclaration && (node).moduleReference.kind === SyntaxKind.ExternalModuleReference || node.kind === SyntaxKind.ExportAssignment ? node : undefined); @@ -4906,8 +4925,8 @@ module ts { // Export assignments are not allowed in an internal module return grammarErrorOnNode(statement, Diagnostics.An_export_assignment_cannot_be_used_in_an_internal_module); } - else if (statement.kind === SyntaxKind.ImportDeclaration && (statement).externalModuleName) { - return grammarErrorOnNode((statement).externalModuleName.expression, Diagnostics.Import_declarations_in_an_internal_module_cannot_reference_an_external_module); + else if (isExternalModuleImportDeclaration(statement)) { + return grammarErrorOnNode(getExternalModuleImportDeclarationExpression(statement), Diagnostics.Import_declarations_in_an_internal_module_cannot_reference_an_external_module); } } } @@ -5629,11 +5648,10 @@ module ts { function processImportedModules(file: SourceFile, basePath: string) { forEach(file.statements, node => { - if (node.kind === SyntaxKind.ImportDeclaration && - (node).externalModuleName && - (node).externalModuleName.expression.kind === SyntaxKind.StringLiteral) { + if (isExternalModuleImportDeclaration(node) && + getExternalModuleImportDeclarationExpression(node).kind === SyntaxKind.StringLiteral) { - var nameLiteral = (node).externalModuleName.expression; + var nameLiteral = getExternalModuleImportDeclarationExpression(node); var moduleName = nameLiteral.text; if (moduleName) { var searchPath = basePath; @@ -5658,11 +5676,10 @@ module ts { // The StringLiteral must specify a top - level external module name. // Relative external module names are not permitted forEachChild((node).body, node => { - if (node.kind === SyntaxKind.ImportDeclaration && - (node).externalModuleName && - (node).externalModuleName.expression.kind === SyntaxKind.StringLiteral) { + if (isExternalModuleImportDeclaration(node) && + getExternalModuleImportDeclarationExpression(node).kind === SyntaxKind.StringLiteral) { - var nameLiteral = (node).externalModuleName.expression; + var nameLiteral = getExternalModuleImportDeclarationExpression(node); var moduleName = nameLiteral.text; if (moduleName) { // TypeScript 1.0 spec (April 2014): 12.1.6 diff --git a/src/compiler/types.ts b/src/compiler/types.ts index 0a636b94b06..19bc8154b7b 100644 --- a/src/compiler/types.ts +++ b/src/compiler/types.ts @@ -731,8 +731,10 @@ module ts { export interface ImportDeclaration extends Declaration, ModuleElement { name: Identifier; - entityName?: EntityName; - externalModuleName?: ExternalModuleReference; + + // 'EntityName' for an internal module reference, 'ExternalModuleReference' for an external + // module reference. + moduleReference: EntityName | ExternalModuleReference; } export interface ExternalModuleReference extends Node { diff --git a/src/services/breakpoints.ts b/src/services/breakpoints.ts index d4aa5e40f39..6cf775487fa 100644 --- a/src/services/breakpoints.ts +++ b/src/services/breakpoints.ts @@ -174,7 +174,7 @@ module ts.BreakpointResolver { case SyntaxKind.ImportDeclaration: // import statement without including semicolon - return textSpan(node, (node).entityName || (node).externalModuleName); + return textSpan(node,(node).moduleReference); case SyntaxKind.ModuleDeclaration: // span on complete module if it is instantiated diff --git a/src/services/services.ts b/src/services/services.ts index a4569d88791..e3012f42846 100644 --- a/src/services/services.ts +++ b/src/services/services.ts @@ -1980,9 +1980,12 @@ module ts { } function isNameOfExternalModuleImportOrDeclaration(node: Node): boolean { - return node.kind === SyntaxKind.StringLiteral && - (isNameOfModuleDeclaration(node) || - (node.parent.parent.kind === SyntaxKind.ImportDeclaration && (node.parent.parent).externalModuleName.expression === node)); + if (node.kind === SyntaxKind.StringLiteral) { + return isNameOfModuleDeclaration(node) || + (isExternalModuleImportDeclaration(node.parent.parent) && getExternalModuleImportDeclarationExpression(node.parent.parent) === node); + } + + return false; } /** Returns true if the position is within a comment */ @@ -3080,17 +3083,17 @@ module ts { ts.forEach(symbol.declarations, declaration => { if (declaration.kind === SyntaxKind.ImportDeclaration) { var importDeclaration = declaration; - if (importDeclaration.externalModuleName) { + if (isExternalModuleImportDeclaration(importDeclaration)) { displayParts.push(spacePart()); displayParts.push(punctuationPart(SyntaxKind.EqualsToken)); displayParts.push(spacePart()); displayParts.push(keywordPart(SyntaxKind.RequireKeyword)); displayParts.push(punctuationPart(SyntaxKind.OpenParenToken)); - displayParts.push(displayPart(getTextOfNode(importDeclaration.externalModuleName.expression), SymbolDisplayPartKind.stringLiteral)); + displayParts.push(displayPart(getTextOfNode(getExternalModuleImportDeclarationExpression(importDeclaration)), SymbolDisplayPartKind.stringLiteral)); displayParts.push(punctuationPart(SyntaxKind.CloseParenToken)); } else { - var internalAliasSymbol = typeResolver.getSymbolInfo(importDeclaration.entityName); + var internalAliasSymbol = typeResolver.getSymbolInfo(importDeclaration.moduleReference); if (internalAliasSymbol) { displayParts.push(spacePart()); displayParts.push(punctuationPart(SyntaxKind.EqualsToken)); @@ -4814,7 +4817,7 @@ module ts { while (node.parent.kind === SyntaxKind.QualifiedName) { node = node.parent; } - return node.parent.kind === SyntaxKind.ImportDeclaration && (node.parent).entityName === node; + return isInternalModuleImportDeclaration(node.parent) && (node.parent).moduleReference === node; } function getMeaningFromRightHandSideOfImport(node: Node) { From 7358b0f7d33733b64db08237dced05a0b3673172 Mon Sep 17 00:00:00 2001 From: Vladimir Matveev Date: Mon, 1 Dec 2014 13:29:49 -0800 Subject: [PATCH 163/195] take token kind from the tree in case if token kind from scanner is different --- src/services/formatting/formattingScanner.ts | 17 +++++++++++++++-- .../fourslash/formattingKeywordAsIdentifier.ts | 7 +++++++ 2 files changed, 22 insertions(+), 2 deletions(-) create mode 100644 tests/cases/fourslash/formattingKeywordAsIdentifier.ts diff --git a/src/services/formatting/formattingScanner.ts b/src/services/formatting/formattingScanner.ts index 220ac21bd8b..bc79b91a551 100644 --- a/src/services/formatting/formattingScanner.ts +++ b/src/services/formatting/formattingScanner.ts @@ -146,7 +146,7 @@ module ts.formatting { if (lastTokenInfo && expectedScanAction === lastScanAction) { // readTokenInfo was called before with the same expected scan action. // No need to re-scan text, return existing 'lastTokenInfo' - return lastTokenInfo; + return fixTokenKind(lastTokenInfo, n); } if (scanner.getStartPos() !== savedPos) { @@ -207,11 +207,13 @@ module ts.formatting { } } - return lastTokenInfo = { + lastTokenInfo = { leadingTrivia: leadingTrivia, trailingTrivia: trailingTrivia, token: token } + + return fixTokenKind(lastTokenInfo, n); } function isOnToken(): boolean { @@ -219,5 +221,16 @@ module ts.formatting { var startPos = (lastTokenInfo && lastTokenInfo.token.pos) || scanner.getStartPos(); return startPos < endPos && current !== SyntaxKind.EndOfFileToken && !isTrivia(current); } + + // when containing node in the tree is token + // but its kind differs from the kind that was returned by the scanner, + // then kind needs to be fixed. This might happen in cases + // when parser interprets token differently, i.e keyword treated as identifier + function fixTokenKind(tokenInfo: TokenInfo, container: Node): TokenInfo { + if (isToken(container) && tokenInfo.token.kind !== container.kind) { + tokenInfo.token.kind = container.kind; + } + return tokenInfo; + } } } \ No newline at end of file diff --git a/tests/cases/fourslash/formattingKeywordAsIdentifier.ts b/tests/cases/fourslash/formattingKeywordAsIdentifier.ts new file mode 100644 index 00000000000..aa1a636f624 --- /dev/null +++ b/tests/cases/fourslash/formattingKeywordAsIdentifier.ts @@ -0,0 +1,7 @@ +/// + +////declare var module/*1*/ + +goTo.marker("1"); +edit.insert(";"); +verify.currentLineContentIs("declare var module;"); \ No newline at end of file From 1a39d09939f2fc8d42c19a538690ab8d99f1814f Mon Sep 17 00:00:00 2001 From: Cyrus Najmabadi Date: Mon, 1 Dec 2014 13:42:27 -0800 Subject: [PATCH 164/195] Treat 'const' as a modifier if followed by 'enum'. --- src/compiler/parser.ts | 20 ++++++++------------ 1 file changed, 8 insertions(+), 12 deletions(-) diff --git a/src/compiler/parser.ts b/src/compiler/parser.ts index 6b130799ce7..ce5287482b1 100644 --- a/src/compiler/parser.ts +++ b/src/compiler/parser.ts @@ -896,6 +896,7 @@ module ts { case SyntaxKind.StaticKeyword: case SyntaxKind.ExportKeyword: case SyntaxKind.DeclareKeyword: + case SyntaxKind.ConstKeyword: return true; } return false; @@ -909,6 +910,7 @@ module ts { case SyntaxKind.PrivateKeyword: return NodeFlags.Private; case SyntaxKind.ExportKeyword: return NodeFlags.Export; case SyntaxKind.DeclareKeyword: return NodeFlags.Ambient; + case SyntaxKind.ConstKeyword: return NodeFlags.Const; } return 0; } @@ -1366,6 +1368,11 @@ module ts { function parseAnyContextualModifier(): boolean { return isModifier(token) && tryParse(() => { + if (token === SyntaxKind.ConstKeyword) { + // 'const' is only a modifier if followed by 'enum'. + return nextToken() === SyntaxKind.EnumKeyword; + } + nextToken(); return canFollowModifier(); }); @@ -3900,11 +3907,6 @@ module ts { function parseAndCheckEnumDeclaration(fullStart: number, modifiers: ModifiersArray, flags: NodeFlags): EnumDeclaration { var node = createNode(SyntaxKind.EnumDeclaration, fullStart); setModifiers(node, modifiers); - - node.flags |= flags; - if (flags & NodeFlags.Const) { - parseExpected(SyntaxKind.ConstKeyword); - } parseExpected(SyntaxKind.EnumKeyword); node.name = parseIdentifier(); if (parseExpected(SyntaxKind.OpenBraceToken)) { @@ -4054,13 +4056,7 @@ module ts { case SyntaxKind.LetKeyword: return parseVariableStatement(fullStart, modifiers); case SyntaxKind.ConstKeyword: - var isConstEnum = lookAhead(() => nextToken() === SyntaxKind.EnumKeyword); - if (isConstEnum) { - return parseAndCheckEnumDeclaration(fullStart, modifiers, flags | NodeFlags.Const); - } - else { - return parseVariableStatement(fullStart, modifiers); - } + return parseVariableStatement(fullStart, modifiers); case SyntaxKind.FunctionKeyword: return parseFunctionDeclaration(fullStart, modifiers); case SyntaxKind.ClassKeyword: From 3a6dba58789468255e47d6df61653d6d72f1d756 Mon Sep 17 00:00:00 2001 From: Cyrus Najmabadi Date: Mon, 1 Dec 2014 13:46:44 -0800 Subject: [PATCH 165/195] Replace unnecessary case in switch with assert. --- src/compiler/parser.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/compiler/parser.ts b/src/compiler/parser.ts index ce5287482b1..ed98cdfdf40 100644 --- a/src/compiler/parser.ts +++ b/src/compiler/parser.ts @@ -4072,7 +4072,7 @@ module ts { case SyntaxKind.ImportKeyword: return parseImportDeclaration(fullStart, modifiers); default: - error(Diagnostics.Declaration_expected); + Debug.fail("Mismatch between isDeclarationStart and parseDeclaration"); } } From eee6491521083927c55176c2df3a2261eefefdd7 Mon Sep 17 00:00:00 2001 From: Cyrus Najmabadi Date: Mon, 1 Dec 2014 14:14:39 -0800 Subject: [PATCH 166/195] Don't create a missing node for "foo[]". We want to remove 'missing' nodes, and we also want to improve increment reuse (which missing nodes interfere with). --- src/compiler/checker.ts | 28 +++++++++++++++++----------- src/compiler/parser.ts | 5 +---- src/compiler/types.ts | 2 +- 3 files changed, 19 insertions(+), 16 deletions(-) diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index 31cf28946fc..431740af125 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -5246,11 +5246,13 @@ module ts { function checkIndexedAccess(node: ElementAccessExpression): Type { // Obtain base constraint such that we can bail out if the constraint is an unknown type var objectType = getApparentType(checkExpression(node.expression)); - var indexType = checkExpression(node.argumentExpression); + var indexType = node.argumentExpression ? checkExpression(node.argumentExpression) : unknownType; - if (objectType === unknownType) return unknownType; + if (objectType === unknownType) { + return unknownType; + } - if (isConstEnumObjectType(objectType) && node.argumentExpression.kind !== SyntaxKind.StringLiteral) { + if (isConstEnumObjectType(objectType) && node.argumentExpression && node.argumentExpression.kind !== SyntaxKind.StringLiteral) { error(node.argumentExpression, Diagnostics.Index_expression_arguments_in_const_enums_must_be_of_type_string); } @@ -5264,12 +5266,14 @@ module ts { // - Otherwise, if IndexExpr is of type Any, the String or Number primitive type, or an enum type, the property access is of type Any. // See if we can index as a property. - if (node.argumentExpression.kind === SyntaxKind.StringLiteral || node.argumentExpression.kind === SyntaxKind.NumericLiteral) { - var name = (node.argumentExpression).text; - var prop = getPropertyOfType(objectType, name); - if (prop) { - getNodeLinks(node).resolvedSymbol = prop; - return getTypeOfSymbol(prop); + if (node.argumentExpression) { + if (node.argumentExpression.kind === SyntaxKind.StringLiteral || node.argumentExpression.kind === SyntaxKind.NumericLiteral) { + var name = (node.argumentExpression).text; + var prop = getPropertyOfType(objectType, name); + if (prop) { + getNodeLinks(node).resolvedSymbol = prop; + return getTypeOfSymbol(prop); + } } } @@ -6225,7 +6229,8 @@ module ts { case SyntaxKind.ElementAccessExpression: var index = (n).argumentExpression; var symbol = findSymbol((n).expression); - if (symbol && index.kind === SyntaxKind.StringLiteral) { + + if (symbol && index && index.kind === SyntaxKind.StringLiteral) { var name = (index).text; var prop = getPropertyOfType(getTypeOfSymbol(symbol), name); return prop && (prop.flags & SymbolFlags.Variable) !== 0 && (getDeclarationFlagsFromSymbol(prop) & NodeFlags.Const) !== 0; @@ -8196,7 +8201,8 @@ module ts { } else { if (e.kind === SyntaxKind.ElementAccessExpression) { - if ((e).argumentExpression.kind !== SyntaxKind.StringLiteral) { + if ((e).argumentExpression === undefined || + (e).argumentExpression.kind !== SyntaxKind.StringLiteral) { return undefined; } var enumType = getTypeOfNode((e).expression); diff --git a/src/compiler/parser.ts b/src/compiler/parser.ts index ed98cdfdf40..499b2e44f0a 100644 --- a/src/compiler/parser.ts +++ b/src/compiler/parser.ts @@ -2943,9 +2943,6 @@ module ts { literal.text = internIdentifier(literal.text); } } - else { - indexedAccess.argumentExpression = createMissingNode(); - } parseExpected(SyntaxKind.CloseBracketToken); expression = finishNode(indexedAccess); @@ -4769,7 +4766,7 @@ module ts { } function checkElementAccessExpression(node: ElementAccessExpression) { - if (node.argumentExpression.kind === SyntaxKind.Missing) { + if (!node.argumentExpression) { if (node.parent.kind === SyntaxKind.NewExpression && (node.parent).expression === node) { var start = skipTrivia(sourceText, node.expression.end); var end = node.end; diff --git a/src/compiler/types.ts b/src/compiler/types.ts index 19bc8154b7b..bc7ca28e515 100644 --- a/src/compiler/types.ts +++ b/src/compiler/types.ts @@ -563,7 +563,7 @@ module ts { export interface ElementAccessExpression extends MemberExpression { expression: LeftHandSideExpression; - argumentExpression: Expression; + argumentExpression?: Expression; } export interface CallExpression extends LeftHandSideExpression { From 284e136f2adea8ba976943e948e864782456aee5 Mon Sep 17 00:00:00 2001 From: Cyrus Najmabadi Date: Mon, 1 Dec 2014 14:23:08 -0800 Subject: [PATCH 167/195] Remove unused function. --- src/compiler/parser.ts | 9 --------- 1 file changed, 9 deletions(-) diff --git a/src/compiler/parser.ts b/src/compiler/parser.ts index 499b2e44f0a..97f81fbd95f 100644 --- a/src/compiler/parser.ts +++ b/src/compiler/parser.ts @@ -1674,15 +1674,6 @@ module ts { return finishNode(node); } - function parseExpectedTokenNode(kind: SyntaxKind): Node { - if (token === kind) { - return parseTokenNode(); - } - - parseExpected(kind); - return createMissingNode(); - } - function parseTemplateExpression(): TemplateExpression { var template = createNode(SyntaxKind.TemplateExpression); From af7b8d624f5ebd91f24426b5a7b62bef6438c66c Mon Sep 17 00:00:00 2001 From: Cyrus Najmabadi Date: Mon, 1 Dec 2014 14:44:58 -0800 Subject: [PATCH 168/195] Don't explicitly create a missing node when parsing arrow expressions. --- src/compiler/parser.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/compiler/parser.ts b/src/compiler/parser.ts index 97f81fbd95f..d0954a7f0d8 100644 --- a/src/compiler/parser.ts +++ b/src/compiler/parser.ts @@ -2475,7 +2475,7 @@ module ts { if (triState === Tristate.True) { // Arrow function are never generators. - var sig = parseSignature(SyntaxKind.CallSignature, SyntaxKind.ColonToken, /* returnTokenRequired */ false, /*yieldAndGeneratorParameterContext:*/ false); + var sig = parseSignature(SyntaxKind.CallSignature, SyntaxKind.ColonToken, /*returnTokenRequired:*/ false, /*yieldAndGeneratorParameterContext:*/ false); // If we have an arrow, then try to parse the body. // Even if not, try to parse if we have an opening brace, just in case we're in an error state. @@ -2484,7 +2484,7 @@ module ts { } else { // If not, we're probably better off bailing out and returning a bogus function expression. - return makeFunctionExpression(SyntaxKind.ArrowFunction, pos, /*asteriskToken:*/ undefined, /*name:*/ undefined, sig, createMissingNode()); + return makeFunctionExpression(SyntaxKind.ArrowFunction, pos, /*asteriskToken:*/ undefined, /*name:*/ undefined, sig, parseIdentifier(Diagnostics.Expression_expected)); } } From 5286f87b48e00c47c6158bbe6613c0294fc24748 Mon Sep 17 00:00:00 2001 From: Vladimir Matveev Date: Mon, 1 Dec 2014 15:50:17 -0800 Subject: [PATCH 169/195] added comments --- src/services/formatting/formattingScanner.ts | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/services/formatting/formattingScanner.ts b/src/services/formatting/formattingScanner.ts index bc79b91a551..710881bf80b 100644 --- a/src/services/formatting/formattingScanner.ts +++ b/src/services/formatting/formattingScanner.ts @@ -146,6 +146,10 @@ module ts.formatting { if (lastTokenInfo && expectedScanAction === lastScanAction) { // readTokenInfo was called before with the same expected scan action. // No need to re-scan text, return existing 'lastTokenInfo' + // it is ok to call fixTokenKind here since it does not affect + // what portion of text is consumed. In opposize rescanning can change it, + // i.e. for '>=' when originally scanner eats just one character + // and rescanning forces it to consume more. return fixTokenKind(lastTokenInfo, n); } From d730e5ca5594ac2d9c8c1ff71965093ba91e2f67 Mon Sep 17 00:00:00 2001 From: Cyrus Najmabadi Date: Mon, 1 Dec 2014 16:17:04 -0800 Subject: [PATCH 170/195] Remove 'missing' syntax kind. --- src/compiler/checker.ts | 33 +++++----- src/compiler/parser.ts | 61 ++++++++++++------- src/compiler/types.ts | 7 ++- src/services/formatting.ts | 4 +- src/services/services.ts | 20 +++--- src/services/signatureHelp.ts | 2 +- src/services/smartIndenter.ts | 6 +- ...umConflictsWithGlobalIdentifier.errors.txt | 6 +- .../reference/enumMemberResolution.errors.txt | 6 +- ...parserPostfixPostfixExpression1.errors.txt | 7 +-- .../parserPostfixUnaryExpression1.errors.txt | 7 +-- 11 files changed, 91 insertions(+), 68 deletions(-) diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index 431740af125..dad791fe8ce 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -338,7 +338,6 @@ module ts { // the nameNotFoundMessage argument is not undefined. Returns the resolved symbol, or undefined if no symbol with // the given name can be found. function resolveName(location: Node, name: string, meaning: SymbolFlags, nameNotFoundMessage: DiagnosticMessage, nameArg: string | Identifier): Symbol { - var result: Symbol; var lastLocation: Node; var propertyWithInvalidInitializer: Node; @@ -516,26 +515,27 @@ module ts { // Resolves a qualified name and any involved import aliases function resolveEntityName(location: Node, name: EntityName, meaning: SymbolFlags): Symbol { + if (getFullWidth(name) === 0) { + return undefined; + } + if (name.kind === SyntaxKind.Identifier) { - var symbol = resolveName(location, (name).text, meaning, Diagnostics.Cannot_find_name_0, name); + var symbol = resolveName(location,(name).text, meaning, Diagnostics.Cannot_find_name_0, name); if (!symbol) { return; } } else if (name.kind === SyntaxKind.QualifiedName) { - var namespace = resolveEntityName(location, (name).left, SymbolFlags.Namespace); - if (!namespace || namespace === unknownSymbol || (name).right.kind === SyntaxKind.Missing) return; - var symbol = getSymbol(namespace.exports, (name).right.text, meaning); + var namespace = resolveEntityName(location,(name).left, SymbolFlags.Namespace); + if (!namespace || namespace === unknownSymbol || getFullWidth((name).right) === 0) return; + var symbol = getSymbol(namespace.exports,(name).right.text, meaning); if (!symbol) { error(location, Diagnostics.Module_0_has_no_exported_member_1, getFullyQualifiedName(namespace), declarationNameToString((name).right)); return; } } - else { - // Missing identifier - return; - } + Debug.assert((symbol.flags & SymbolFlags.Instantiated) === 0, "Should never get an instantiated symbol here."); return symbol.flags & meaning ? symbol : resolveImport(symbol); } @@ -4256,7 +4256,7 @@ module ts { function getResolvedSymbol(node: Identifier): Symbol { var links = getNodeLinks(node); if (!links.resolvedSymbol) { - links.resolvedSymbol = resolveName(node, node.text, SymbolFlags.Value | SymbolFlags.ExportValue, Diagnostics.Cannot_find_name_0, node) || unknownSymbol; + links.resolvedSymbol = (getFullWidth(node) > 0 && resolveName(node, node.text, SymbolFlags.Value | SymbolFlags.ExportValue, Diagnostics.Cannot_find_name_0, node)) || unknownSymbol; } return links.resolvedSymbol; } @@ -5344,7 +5344,7 @@ module ts { var templateExpression = tagExpression.template; var lastSpan = lastOrUndefined(templateExpression.templateSpans); Debug.assert(lastSpan !== undefined); // we should always have at least one span. - callIsIncomplete = lastSpan.literal.kind === SyntaxKind.Missing || isUnterminatedTemplateEnd(lastSpan.literal); + callIsIncomplete = getFullWidth(lastSpan.literal) === 0 || isUnterminatedTemplateEnd(lastSpan.literal); } else { // If the template didn't end in a backtick, or its beginning occurred right prior to EOF, @@ -7051,7 +7051,7 @@ module ts { var isConstructor = (symbol.flags & SymbolFlags.Constructor) !== 0; function reportImplementationExpectedError(node: FunctionLikeDeclaration): void { - if (node.name && node.name.kind === SyntaxKind.Missing) { + if (node.name && getFullWidth(node.name) === 0) { return; } @@ -8889,6 +8889,11 @@ module ts { } if (isExpression(entityName)) { + if (getFullWidth(entityName) === 0) { + // Missing entity name. + return undefined; + } + if (entityName.kind === SyntaxKind.Identifier) { // Include Import in the meaning, this ensures that we do not follow aliases to where they point and instead // return the alias symbol. @@ -8909,10 +8914,6 @@ module ts { } return getNodeLinks(entityName).resolvedSymbol; } - else { - // Missing identifier - return; - } } else if (isTypeReferenceIdentifier(entityName)) { var meaning = entityName.parent.kind === SyntaxKind.TypeReference ? SymbolFlags.Type : SymbolFlags.Namespace; diff --git a/src/compiler/parser.ts b/src/compiler/parser.ts index d0954a7f0d8..e6f57c6e7f3 100644 --- a/src/compiler/parser.ts +++ b/src/compiler/parser.ts @@ -5,6 +5,10 @@ module ts { var nodeConstructors = new Array Node>(SyntaxKind.Count); + export function getFullWidth(node: Node) { + return node.end - node.pos; + } + export function getNodeConstructor(kind: SyntaxKind): new () => Node { return nodeConstructors[kind] || (nodeConstructors[kind] = objectAllocator.getNodeConstructor(kind)); } @@ -75,13 +79,14 @@ module ts { // Computed property names will just be emitted as "[]", where is the source // text of the expression in the computed property. export function declarationNameToString(name: DeclarationName) { - return name.kind === SyntaxKind.Missing ? "(Missing)" : getTextOfNode(name); + return getFullWidth(name) === 0 ? "(Missing)" : getTextOfNode(name); } export function createDiagnosticForNode(node: Node, message: DiagnosticMessage, arg0?: any, arg1?: any, arg2?: any): Diagnostic { node = getErrorSpanForNode(node); var file = getSourceFileOfNode(node); - var start = node.kind === SyntaxKind.Missing ? node.pos : skipTrivia(file.text, node.pos); + + var start = getFullWidth(node) === 0 ? node.pos : skipTrivia(file.text, node.pos); var length = node.end - start; return createFileDiagnostic(file, start, length, message, arg0, arg1, arg2); @@ -1200,14 +1205,14 @@ module ts { return inStrictModeContext() ? token > SyntaxKind.LastFutureReservedWord : token > SyntaxKind.LastReservedWord; } - function parseExpected(t: SyntaxKind, diagnosticMessage?: DiagnosticMessage): boolean { + function parseExpected(t: SyntaxKind, diagnosticMessage?: DiagnosticMessage, arg0?: any): boolean { if (token === t) { nextToken(); return true; } if (diagnosticMessage) { - error(diagnosticMessage); + error(diagnosticMessage, arg0); } else { error(Diagnostics._0_expected, tokenToString(t)); @@ -1276,8 +1281,24 @@ module ts { return node; } - function createMissingNode(pos?: number): Node { - return createNode(SyntaxKind.Missing, pos); + function createMissingNode(kind: SyntaxKind, reportAtCurrentPosition: boolean, diagnosticMessage: DiagnosticMessage, arg0?: any): Node { + if (diagnosticMessage) { + if (reportAtCurrentPosition) { + errorAtPos(scanner.getStartPos(), 0, diagnosticMessage, arg0); + } + else { + var start = scanner.getTokenPos(); + errorAtPos(start, scanner.getTextPos() - start, diagnosticMessage, arg0); + } + } + + return createMissingNodeWithoutError(kind); + } + + function createMissingNodeWithoutError(kind: SyntaxKind) { + var result = createNode(kind, scanner.getStartPos()); + (result).text = ""; + return finishNode(result); } function internIdentifier(text: string): string { @@ -1297,14 +1318,7 @@ module ts { return finishNode(node); } - error(diagnosticMessage || Diagnostics.Identifier_expected); - return createMissingIdentifier(); - } - - function createMissingIdentifier() { - var node = createMissingNode(); - node.text = ""; - return node; + return createMissingNode(SyntaxKind.Identifier, /*reportAtCurrentPosition:*/ false, diagnosticMessage || Diagnostics.Identifier_expected); } function parseIdentifier(diagnosticMessage?: DiagnosticMessage): Identifier { @@ -1660,8 +1674,10 @@ module ts { }); if (matchesPattern) { - errorAtPos(scanner.getTokenPos(), 0, Diagnostics.Identifier_expected); - return createMissingNode(); + // Report that we need an identifier. However, report it right after the dot, + // and not on the next token. This is because the next token might actually + // be an identifier and the error woudl be quite confusing. + return createMissingNode(SyntaxKind.Identifier, /*reportAtCurrentToken:*/ true, Diagnostics.Identifier_expected); } } @@ -1705,8 +1721,8 @@ module ts { literal = parseLiteralNode(); } else { - parseExpected(SyntaxKind.CloseBraceToken); - literal = createMissingIdentifier(); + literal = createMissingNode( + SyntaxKind.TemplateTail, /*reportAtCurrentPosition:*/ false, Diagnostics._0_expected, tokenToString(SyntaxKind.CloseBraceToken)); } span.literal = literal; @@ -1821,7 +1837,7 @@ module ts { ? doInYieldContext(parseIdentifier) : parseIdentifier(); - if (node.name.kind === SyntaxKind.Missing && node.flags === 0 && isModifier(token)) { + if (getFullWidth(node.name) === 0 && node.flags === 0 && isModifier(token)) { // in cases like // 'use strict' // function foo(static) @@ -3009,7 +3025,9 @@ module ts { // don't want to rollback just because we were missing a type arg. The grammar checker // will report the actual error later on. if (token === SyntaxKind.CommaToken) { - return createNode(SyntaxKind.Missing); + var result = createNode(SyntaxKind.TypeReference); + result.typeName = createMissingNodeWithoutError(SyntaxKind.Identifier); + return finishNode(result); } return parseType(); @@ -4202,7 +4220,6 @@ module ts { case SyntaxKind.ObjectLiteralExpression: case SyntaxKind.FunctionExpression: case SyntaxKind.Identifier: - case SyntaxKind.Missing: case SyntaxKind.RegularExpressionLiteral: case SyntaxKind.NumericLiteral: case SyntaxKind.StringLiteral: @@ -4533,7 +4550,7 @@ module ts { if (typeArguments) { for (var i = 0, n = typeArguments.length; i < n; i++) { var arg = typeArguments[i]; - if (arg.kind === SyntaxKind.Missing) { + if (arg.kind === SyntaxKind.TypeReference && getFullWidth((arg).typeName) === 0) { return grammarErrorAtPos(arg.pos, 0, Diagnostics.Type_expected); } } diff --git a/src/compiler/types.ts b/src/compiler/types.ts index bc7ca28e515..f4fc13f76d9 100644 --- a/src/compiler/types.ts +++ b/src/compiler/types.ts @@ -137,8 +137,9 @@ module ts { SetKeyword, StringKeyword, TypeKeyword, + // Parse tree nodes - Missing, + // Names QualifiedName, ComputedPropertyName, @@ -235,6 +236,7 @@ module ts { // Top-level nodes SourceFile, Program, + // Synthesized list SyntaxList, // Enum value count @@ -263,7 +265,8 @@ module ts { FirstOperator = SemicolonToken, LastOperator = CaretEqualsToken, FirstBinaryOperator = LessThanToken, - LastBinaryOperator = CaretEqualsToken + LastBinaryOperator = CaretEqualsToken, + FirstNode = QualifiedName, } export const enum NodeFlags { diff --git a/src/services/formatting.ts b/src/services/formatting.ts index fc64329c3e0..d986048cac3 100644 --- a/src/services/formatting.ts +++ b/src/services/formatting.ts @@ -483,8 +483,8 @@ module ts.formatting { if (!rangeOverlapsWithStartEnd(originalRange, child.pos, child.end)) { return inheritedIndentation; } - - if (child.kind === SyntaxKind.Missing) { + + if (child.getFullWidth() === 0) { return inheritedIndentation; } diff --git a/src/services/services.ts b/src/services/services.ts index e3012f42846..df762437e1e 100644 --- a/src/services/services.ts +++ b/src/services/services.ts @@ -218,7 +218,7 @@ module ts { } private createChildren(sourceFile?: SourceFile) { - if (this.kind > SyntaxKind.Missing) { + if (this.kind >= SyntaxKind.FirstNode) { scanner.setText((sourceFile || this.getSourceFile()).text); var children: Node[] = []; var pos = this.pos; @@ -264,8 +264,11 @@ module ts { var children = this.getChildren(); for (var i = 0; i < children.length; i++) { var child = children[i]; - if (child.kind < SyntaxKind.Missing) return child; - if (child.kind > SyntaxKind.Missing) return child.getFirstToken(sourceFile); + if (child.kind < SyntaxKind.FirstNode) { + return child; + } + + return child.getFirstToken(sourceFile); } } @@ -273,8 +276,11 @@ module ts { var children = this.getChildren(sourceFile); for (var i = children.length - 1; i >= 0; i--) { var child = children[i]; - if (child.kind < SyntaxKind.Missing) return child; - if (child.kind > SyntaxKind.Missing) return child.getLastToken(sourceFile); + if (child.kind < SyntaxKind.FirstNode) { + return child; + } + + return child.getLastToken(sourceFile); } } } @@ -758,7 +764,7 @@ module ts { case SyntaxKind.Method: var functionDeclaration = node; - if (functionDeclaration.name && functionDeclaration.name.kind !== SyntaxKind.Missing) { + if (functionDeclaration.name && functionDeclaration.name.getFullWidth() > 0) { var lastDeclaration = namedDeclarations.length > 0 ? namedDeclarations[namedDeclarations.length - 1] : undefined; @@ -2888,7 +2894,7 @@ module ts { if (location.parent && location.parent.kind === SyntaxKind.PropertyAccessExpression) { var right = (location.parent).name; // Either the location is on the right of a property access, or on the left and the right is missing - if (right === location || (right && right.kind === SyntaxKind.Missing)){ + if (right === location || (right && right.getFullWidth() === 0)){ location = location.parent; } } diff --git a/src/services/signatureHelp.ts b/src/services/signatureHelp.ts index e2b65e3c6e1..b8cb181a287 100644 --- a/src/services/signatureHelp.ts +++ b/src/services/signatureHelp.ts @@ -386,7 +386,7 @@ module ts.SignatureHelp { // leading up to the next token in case the user is about to type in a TemplateMiddle or TemplateTail. if (template.kind === SyntaxKind.TemplateExpression) { var lastSpan = lastOrUndefined((template).templateSpans); - if (lastSpan.literal.kind === SyntaxKind.Missing) { + if (lastSpan.literal.getFullWidth() === 0) { applicableSpanEnd = skipTrivia(sourceFile.text, applicableSpanEnd, /*stopAfterLineBreak*/ false); } } diff --git a/src/services/smartIndenter.ts b/src/services/smartIndenter.ts index 3fbfe142282..d13d2a62c68 100644 --- a/src/services/smartIndenter.ts +++ b/src/services/smartIndenter.ts @@ -393,6 +393,10 @@ module ts.formatting { * This function is always called when position of the cursor is located after the node */ function isCompletedNode(n: Node, sourceFile: SourceFile): boolean { + if (n.getFullWidth() === 0) { + return false; + } + switch (n.kind) { case SyntaxKind.ClassDeclaration: case SyntaxKind.InterfaceDeclaration: @@ -426,8 +430,6 @@ module ts.formatting { return isCompletedNode((n).expression, sourceFile); case SyntaxKind.ArrayLiteralExpression: return nodeEndsWith(n, SyntaxKind.CloseBracketToken, sourceFile); - case SyntaxKind.Missing: - return false; case SyntaxKind.CaseClause: case SyntaxKind.DefaultClause: // there is no such thing as terminator token for CaseClause\DefaultClause so for simplicitly always consider them non-completed diff --git a/tests/baselines/reference/enumConflictsWithGlobalIdentifier.errors.txt b/tests/baselines/reference/enumConflictsWithGlobalIdentifier.errors.txt index b91ddad3eb4..e6859558f74 100644 --- a/tests/baselines/reference/enumConflictsWithGlobalIdentifier.errors.txt +++ b/tests/baselines/reference/enumConflictsWithGlobalIdentifier.errors.txt @@ -1,4 +1,4 @@ -tests/cases/compiler/enumConflictsWithGlobalIdentifier.ts(5,1): error TS1003: Identifier expected. +tests/cases/compiler/enumConflictsWithGlobalIdentifier.ts(4,29): error TS1003: Identifier expected. tests/cases/compiler/enumConflictsWithGlobalIdentifier.ts(4,9): error TS2304: Cannot find name 'IgnoreRulesSpecific'. @@ -7,9 +7,9 @@ tests/cases/compiler/enumConflictsWithGlobalIdentifier.ts(4,9): error TS2304: Ca IgnoreRulesSpecific = 0, } var x = IgnoreRulesSpecific. + +!!! error TS1003: Identifier expected. ~~~~~~~~~~~~~~~~~~~ !!! error TS2304: Cannot find name 'IgnoreRulesSpecific'. var y = Position.IgnoreRulesSpecific; - -!!! error TS1003: Identifier expected. \ No newline at end of file diff --git a/tests/baselines/reference/enumMemberResolution.errors.txt b/tests/baselines/reference/enumMemberResolution.errors.txt index 18910485236..f446c0d7909 100644 --- a/tests/baselines/reference/enumMemberResolution.errors.txt +++ b/tests/baselines/reference/enumMemberResolution.errors.txt @@ -1,4 +1,4 @@ -tests/cases/compiler/enumMemberResolution.ts(5,1): error TS1003: Identifier expected. +tests/cases/compiler/enumMemberResolution.ts(4,29): error TS1003: Identifier expected. tests/cases/compiler/enumMemberResolution.ts(4,9): error TS2304: Cannot find name 'IgnoreRulesSpecific'. @@ -7,10 +7,10 @@ tests/cases/compiler/enumMemberResolution.ts(4,9): error TS2304: Cannot find nam IgnoreRulesSpecific = 0 } var x = IgnoreRulesSpecific. // error + +!!! error TS1003: Identifier expected. ~~~~~~~~~~~~~~~~~~~ !!! error TS2304: Cannot find name 'IgnoreRulesSpecific'. var y = 1; - -!!! error TS1003: Identifier expected. var z = Position2.IgnoreRulesSpecific; // no error \ No newline at end of file diff --git a/tests/baselines/reference/parserPostfixPostfixExpression1.errors.txt b/tests/baselines/reference/parserPostfixPostfixExpression1.errors.txt index ad664b91ab5..07c7352bbfc 100644 --- a/tests/baselines/reference/parserPostfixPostfixExpression1.errors.txt +++ b/tests/baselines/reference/parserPostfixPostfixExpression1.errors.txt @@ -1,16 +1,13 @@ tests/cases/conformance/parser/ecmascript5/Expressions/parserPostfixPostfixExpression1.ts(1,5): error TS1005: ';' expected. tests/cases/conformance/parser/ecmascript5/Expressions/parserPostfixPostfixExpression1.ts(1,7): error TS1109: Expression expected. tests/cases/conformance/parser/ecmascript5/Expressions/parserPostfixPostfixExpression1.ts(1,1): error TS2304: Cannot find name 'a'. -tests/cases/conformance/parser/ecmascript5/Expressions/parserPostfixPostfixExpression1.ts(1,7): error TS2357: The operand of an increment or decrement operator must be a variable, property or indexer. -==== tests/cases/conformance/parser/ecmascript5/Expressions/parserPostfixPostfixExpression1.ts (4 errors) ==== +==== tests/cases/conformance/parser/ecmascript5/Expressions/parserPostfixPostfixExpression1.ts (3 errors) ==== a++ ++; ~~ !!! error TS1005: ';' expected. ~ !!! error TS1109: Expression expected. ~ -!!! error TS2304: Cannot find name 'a'. - -!!! error TS2357: The operand of an increment or decrement operator must be a variable, property or indexer. \ No newline at end of file +!!! error TS2304: Cannot find name 'a'. \ No newline at end of file diff --git a/tests/baselines/reference/parserPostfixUnaryExpression1.errors.txt b/tests/baselines/reference/parserPostfixUnaryExpression1.errors.txt index 1e1f4ea709a..364efe36a73 100644 --- a/tests/baselines/reference/parserPostfixUnaryExpression1.errors.txt +++ b/tests/baselines/reference/parserPostfixUnaryExpression1.errors.txt @@ -1,16 +1,13 @@ tests/cases/conformance/parser/ecmascript5/Expressions/parserPostfixUnaryExpression1.ts(1,8): error TS1005: ';' expected. tests/cases/conformance/parser/ecmascript5/Expressions/parserPostfixUnaryExpression1.ts(1,10): error TS1109: Expression expected. tests/cases/conformance/parser/ecmascript5/Expressions/parserPostfixUnaryExpression1.ts(1,1): error TS2304: Cannot find name 'foo'. -tests/cases/conformance/parser/ecmascript5/Expressions/parserPostfixUnaryExpression1.ts(1,10): error TS2357: The operand of an increment or decrement operator must be a variable, property or indexer. -==== tests/cases/conformance/parser/ecmascript5/Expressions/parserPostfixUnaryExpression1.ts (4 errors) ==== +==== tests/cases/conformance/parser/ecmascript5/Expressions/parserPostfixUnaryExpression1.ts (3 errors) ==== foo ++ ++; ~~ !!! error TS1005: ';' expected. ~ !!! error TS1109: Expression expected. ~~~ -!!! error TS2304: Cannot find name 'foo'. - -!!! error TS2357: The operand of an increment or decrement operator must be a variable, property or indexer. \ No newline at end of file +!!! error TS2304: Cannot find name 'foo'. \ No newline at end of file From 1633e4abddcc3dd6ba92963e41cd250c26aeb423 Mon Sep 17 00:00:00 2001 From: Cyrus Najmabadi Date: Mon, 1 Dec 2014 16:26:34 -0800 Subject: [PATCH 171/195] Remove unnecessary diagnostic flag. --- src/compiler/parser.ts | 2 +- src/compiler/types.ts | 6 ------ src/services/formatting.ts | 4 ++-- 3 files changed, 3 insertions(+), 9 deletions(-) diff --git a/src/compiler/parser.ts b/src/compiler/parser.ts index e6f57c6e7f3..44d44995937 100644 --- a/src/compiler/parser.ts +++ b/src/compiler/parser.ts @@ -1092,7 +1092,6 @@ module ts { : -1; if (start !== lastErrorPos) { var diagnostic = createFileDiagnostic(file, start, length, message, arg0, arg1, arg2); - diagnostic.isParseError = true; file.parseDiagnostics.push(diagnostic); } @@ -4190,6 +4189,7 @@ module ts { file.parseDiagnostics = []; file.grammarDiagnostics = []; file.semanticDiagnostics = []; + var referenceComments = processReferenceComments(); file.referencedFiles = referenceComments.referencedFiles; file.amdDependencies = referenceComments.amdDependencies; diff --git a/src/compiler/types.ts b/src/compiler/types.ts index f4fc13f76d9..6f737083efc 100644 --- a/src/compiler/types.ts +++ b/src/compiler/types.ts @@ -1277,12 +1277,6 @@ module ts { * Early error - any error (can be produced at parsing\binding\typechecking step) that blocks emit */ isEarly?: boolean; - /** - * Parse error - error produced by parser when it scanner returns a token - * that parser does not understand in its current state - * (as opposed to grammar error when parser can interpret the token but interpretation is not legal from the grammar perespective) - */ - isParseError?: boolean; } export enum DiagnosticCategory { diff --git a/src/services/formatting.ts b/src/services/formatting.ts index d986048cac3..741b853b7ba 100644 --- a/src/services/formatting.ts +++ b/src/services/formatting.ts @@ -192,7 +192,7 @@ module ts.formatting { // pick only errors that fall in range var sorted = errors - .filter(d => d.isParseError && rangeOverlapsWithStartEnd(originalRange, d.start, d.start + d.length)) + .filter(d => rangeOverlapsWithStartEnd(originalRange, d.start, d.start + d.length)) .sort((e1, e2) => e1.start - e2.start); if (!sorted.length) { @@ -252,7 +252,7 @@ module ts.formatting { rulesProvider: RulesProvider, requestKind: FormattingRequestKind): TextChange[] { - var rangeContainsError = prepareRangeContainsErrorFunction(sourceFile.getSyntacticDiagnostics(), originalRange); + var rangeContainsError = prepareRangeContainsErrorFunction(sourceFile.parseDiagnostics, originalRange); // formatting context is used by rules provider var formattingContext = new FormattingContext(sourceFile, requestKind); From 9b54a0b54f648076b01623c8479d60bac3f64356 Mon Sep 17 00:00:00 2001 From: Cyrus Najmabadi Date: Mon, 1 Dec 2014 16:34:03 -0800 Subject: [PATCH 172/195] Don't use the parsing error path for reporting ///reference errors. --- src/compiler/parser.ts | 46 +++++++++++++++++++++--------------------- 1 file changed, 23 insertions(+), 23 deletions(-) diff --git a/src/compiler/parser.ts b/src/compiler/parser.ts index 44d44995937..0d1806adca4 100644 --- a/src/compiler/parser.ts +++ b/src/compiler/parser.ts @@ -828,7 +828,7 @@ module ts { export interface ReferencePathMatchResult { fileReference?: FileReference - diagnostic?: DiagnosticMessage + diagnosticMessage?: DiagnosticMessage isNoDefaultLib?: boolean } @@ -857,7 +857,7 @@ module ts { } else { return { - diagnostic: Diagnostics.Invalid_reference_directive_syntax, + diagnosticMessage: Diagnostics.Invalid_reference_directive_syntax, isNoDefaultLib: false }; } @@ -1083,14 +1083,16 @@ module ts { var start = scanner.getTokenPos(); var length = scanner.getTextPos() - start; - errorAtPos(start, length, message, arg0, arg1, arg2); + errorAtPosition(start, length, message, arg0, arg1, arg2); } - function errorAtPos(start: number, length: number, message: DiagnosticMessage, arg0?: any, arg1?: any, arg2?: any): void { - var lastErrorPos = file.parseDiagnostics.length + function errorAtPosition(start: number, length: number, message: DiagnosticMessage, arg0?: any, arg1?: any, arg2?: any): void { + var lastErrorPosition = file.parseDiagnostics.length ? file.parseDiagnostics[file.parseDiagnostics.length - 1].start : -1; - if (start !== lastErrorPos) { + + // Don't report another error if it would just be at the same position as the last error. + if (start !== lastErrorPosition) { var diagnostic = createFileDiagnostic(file, start, length, message, arg0, arg1, arg2); file.parseDiagnostics.push(diagnostic); } @@ -1102,7 +1104,7 @@ module ts { function scanError(message: DiagnosticMessage) { var pos = scanner.getTextPos(); - errorAtPos(pos, 0, message); + errorAtPosition(pos, 0, message); } function onComment(pos: number, end: number) { @@ -1204,17 +1206,18 @@ module ts { return inStrictModeContext() ? token > SyntaxKind.LastFutureReservedWord : token > SyntaxKind.LastReservedWord; } - function parseExpected(t: SyntaxKind, diagnosticMessage?: DiagnosticMessage, arg0?: any): boolean { - if (token === t) { + function parseExpected(kind: SyntaxKind, diagnosticMessage?: DiagnosticMessage, arg0?: any): boolean { + if (token === kind) { nextToken(); return true; } + // Report specific message if provided with one. Otherwise, report generic fallback message. if (diagnosticMessage) { error(diagnosticMessage, arg0); } else { - error(Diagnostics._0_expected, tokenToString(t)); + error(Diagnostics._0_expected, tokenToString(kind)); } return false; } @@ -1281,16 +1284,13 @@ module ts { } function createMissingNode(kind: SyntaxKind, reportAtCurrentPosition: boolean, diagnosticMessage: DiagnosticMessage, arg0?: any): Node { - if (diagnosticMessage) { - if (reportAtCurrentPosition) { - errorAtPos(scanner.getStartPos(), 0, diagnosticMessage, arg0); - } - else { - var start = scanner.getTokenPos(); - errorAtPos(start, scanner.getTextPos() - start, diagnosticMessage, arg0); - } + if (reportAtCurrentPosition) { + errorAtPosition(scanner.getStartPos(), 0, diagnosticMessage, arg0); } - + else { + error(diagnosticMessage, arg0); + } + return createMissingNodeWithoutError(kind); } @@ -4113,12 +4113,12 @@ module ts { if (referencePathMatchResult) { var fileReference = referencePathMatchResult.fileReference; file.hasNoDefaultLib = referencePathMatchResult.isNoDefaultLib; - var diagnostic = referencePathMatchResult.diagnostic; + var diagnosticMessage = referencePathMatchResult.diagnosticMessage; if (fileReference) { referencedFiles.push(fileReference); } - if (diagnostic) { - errorAtPos(range.pos, range.end - range.pos, diagnostic); + if (diagnosticMessage) { + file.parseDiagnostics.push(createFileDiagnostic(file, range.pos, range.end - range.pos, diagnosticMessage)); } } else { @@ -4126,7 +4126,7 @@ module ts { var amdModuleNameMatchResult = amdModuleNameRegEx.exec(comment); if(amdModuleNameMatchResult) { if(amdModuleName) { - errorAtPos(range.pos, range.end - range.pos, Diagnostics.An_AMD_module_cannot_have_multiple_name_assignments); + file.parseDiagnostics.push(createFileDiagnostic(file, range.pos, range.end - range.pos, Diagnostics.An_AMD_module_cannot_have_multiple_name_assignments)); } amdModuleName = amdModuleNameMatchResult[2]; } From 99d13f4e5c34bd04da86ced8154d51b49942fea4 Mon Sep 17 00:00:00 2001 From: Mohamed Hegazy Date: Mon, 1 Dec 2014 16:37:15 -0800 Subject: [PATCH 173/195] handel serializing diagnostics --- src/harness/test262Runner.ts | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/harness/test262Runner.ts b/src/harness/test262Runner.ts index 86e22aaeec0..5527b9383d1 100644 --- a/src/harness/test262Runner.ts +++ b/src/harness/test262Runner.ts @@ -34,6 +34,10 @@ class Test262BaselineRunner extends RunnerBase { case "symbol": case "locals": case "localSymbol": + case "kind": + case "semanticDiagnostics": + case "parseDiagnostics": + case "grammarDiagnostics": return undefined; case "nextContainer": if (n.nextContainer) { From ae3b03022380ffc746e2ddb031a407e486b2b9dc Mon Sep 17 00:00:00 2001 From: Cyrus Najmabadi Date: Mon, 1 Dec 2014 16:39:22 -0800 Subject: [PATCH 174/195] Don't set kinds after the fact. --- src/compiler/parser.ts | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/src/compiler/parser.ts b/src/compiler/parser.ts index 0d1806adca4..8348d7d802b 100644 --- a/src/compiler/parser.ts +++ b/src/compiler/parser.ts @@ -3209,8 +3209,8 @@ module ts { } // STATEMENTS - function parseBlock(ignoreMissingOpenBrace: boolean, checkForStrictMode: boolean): Block { - var node = createNode(SyntaxKind.Block); + function parseBlock(kind: SyntaxKind, ignoreMissingOpenBrace: boolean, checkForStrictMode: boolean): Block { + var node = createNode(kind); if (parseExpected(SyntaxKind.OpenBraceToken) || ignoreMissingOpenBrace) { node.statements = parseList(ParsingContext.BlockStatements, checkForStrictMode, parseStatement); parseExpected(SyntaxKind.CloseBraceToken); @@ -3225,8 +3225,7 @@ module ts { var savedYieldContext = inYieldContext(); setYieldContext(allowYield); - var block = parseBlock(ignoreMissingOpenBrace, /*checkForStrictMode*/ true); - block.kind = SyntaxKind.FunctionBlock; + var block = parseBlock(SyntaxKind.FunctionBlock, ignoreMissingOpenBrace, /*checkForStrictMode*/ true); setYieldContext(savedYieldContext); @@ -3436,8 +3435,9 @@ module ts { function parseTokenAndBlock(token: SyntaxKind): Block { var pos = getNodePos(); parseExpected(token); - var result = parseBlock(/* ignoreMissingOpenBrace */ false, /*checkForStrictMode*/ false); - result.kind = token === SyntaxKind.TryKeyword ? SyntaxKind.TryBlock : SyntaxKind.FinallyBlock; + var result = parseBlock( + token === SyntaxKind.TryKeyword ? SyntaxKind.TryBlock : SyntaxKind.FinallyBlock, + /* ignoreMissingOpenBrace */ false, /*checkForStrictMode*/ false); result.pos = pos; return result; } @@ -3449,8 +3449,7 @@ module ts { var variable = parseIdentifier(); var typeAnnotation = parseTypeAnnotation(); parseExpected(SyntaxKind.CloseParenToken); - var result = parseBlock(/* ignoreMissingOpenBrace */ false, /*checkForStrictMode*/ false); - result.kind = SyntaxKind.CatchBlock; + var result = parseBlock(SyntaxKind.CatchBlock, /* ignoreMissingOpenBrace */ false, /*checkForStrictMode*/ false); result.pos = pos; result.variable = variable; result.type = typeAnnotation; @@ -3549,7 +3548,7 @@ module ts { function parseStatement(): Statement { switch (token) { case SyntaxKind.OpenBraceToken: - return parseBlock(/* ignoreMissingOpenBrace */ false, /*checkForStrictMode*/ false); + return parseBlock(SyntaxKind.Block, /* ignoreMissingOpenBrace */ false, /*checkForStrictMode*/ false); case SyntaxKind.VarKeyword: case SyntaxKind.LetKeyword: case SyntaxKind.ConstKeyword: From df4f9044d90cdb521c5ac731cab4652fb7e85f16 Mon Sep 17 00:00:00 2001 From: Cyrus Najmabadi Date: Mon, 1 Dec 2014 17:07:13 -0800 Subject: [PATCH 175/195] Make sure we have an appropriate error for heritage clause lists. --- src/compiler/diagnosticInformationMap.generated.ts | 1 + src/compiler/diagnosticMessages.json | 4 ++++ src/compiler/parser.ts | 11 ++++++----- 3 files changed, 11 insertions(+), 5 deletions(-) diff --git a/src/compiler/diagnosticInformationMap.generated.ts b/src/compiler/diagnosticInformationMap.generated.ts index 6b545ddfd0d..69776f23a08 100644 --- a/src/compiler/diagnosticInformationMap.generated.ts +++ b/src/compiler/diagnosticInformationMap.generated.ts @@ -137,6 +137,7 @@ module ts { Classes_can_only_extend_a_single_class: { code: 1174, category: DiagnosticCategory.Error, key: "Classes can only extend a single class." }, implements_clause_already_seen: { code: 1175, category: DiagnosticCategory.Error, key: "'implements' clause already seen." }, Interface_declaration_cannot_have_implements_clause: { code: 1176, category: DiagnosticCategory.Error, key: "Interface declaration cannot have 'implements' clause." }, + Unexpected_token_expected: { code: 1177, category: DiagnosticCategory.Error, key: "Unexpected token. '{' expected." }, Duplicate_identifier_0: { code: 2300, category: DiagnosticCategory.Error, key: "Duplicate identifier '{0}'." }, Initializer_of_instance_member_variable_0_cannot_reference_identifier_1_declared_in_the_constructor: { code: 2301, category: 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: DiagnosticCategory.Error, key: "Static members cannot reference class type parameters." }, diff --git a/src/compiler/diagnosticMessages.json b/src/compiler/diagnosticMessages.json index 8d9dbe94097..317fc33953c 100644 --- a/src/compiler/diagnosticMessages.json +++ b/src/compiler/diagnosticMessages.json @@ -539,6 +539,10 @@ "category": "Error", "code": 1176 }, + "Unexpected token. '{' expected.": { + "category": "Error", + "code": 1177 + }, "Duplicate identifier '{0}'.": { "category": "Error", diff --git a/src/compiler/parser.ts b/src/compiler/parser.ts index 8348d7d802b..aabcae0324f 100644 --- a/src/compiler/parser.ts +++ b/src/compiler/parser.ts @@ -779,7 +779,7 @@ module ts { TypeMembers, // Members in interface or type literal ClassMembers, // Members in class declaration EnumMembers, // Members in enum declaration - BaseTypeReferences, // Type references in extends or implements clause + TypeReferences, // Type references in extends or implements clause VariableDeclarations, // Variable declarations in variable statement ArgumentExpressions, // Expressions in argument list ObjectLiteralMembers, // Members in object literal @@ -808,7 +808,7 @@ module ts { case ParsingContext.TypeMembers: return Diagnostics.Property_or_signature_expected; case ParsingContext.ClassMembers: return Diagnostics.Unexpected_token_A_constructor_method_accessor_or_property_was_expected; case ParsingContext.EnumMembers: return Diagnostics.Enum_member_expected; - case ParsingContext.BaseTypeReferences: return Diagnostics.Type_reference_expected; + case ParsingContext.TypeReferences: return Diagnostics.Type_reference_expected; case ParsingContext.VariableDeclarations: return Diagnostics.Variable_declaration_expected; case ParsingContext.ArgumentExpressions: return Diagnostics.Argument_expression_expected; case ParsingContext.ObjectLiteralMembers: return Diagnostics.Property_assignment_expected; @@ -817,6 +817,7 @@ module ts { case ParsingContext.TypeParameters: return Diagnostics.Type_parameter_declaration_expected; case ParsingContext.TypeArguments: return Diagnostics.Type_argument_expected; case ParsingContext.TupleElementTypes: return Diagnostics.Type_expected; + case ParsingContext.HeritageClauses: return Diagnostics.Unexpected_token_expected; } }; @@ -1416,7 +1417,7 @@ module ts { return token === SyntaxKind.OpenBracketToken || isLiteralPropertyName(); case ParsingContext.ObjectLiteralMembers: return token === SyntaxKind.OpenBracketToken || token === SyntaxKind.AsteriskToken || isLiteralPropertyName(); - case ParsingContext.BaseTypeReferences: + case ParsingContext.TypeReferences: return isIdentifier() && ((token !== SyntaxKind.ExtendsKeyword && token !== SyntaxKind.ImplementsKeyword) || !lookAhead(() => (nextToken(), isIdentifier()))); case ParsingContext.VariableDeclarations: case ParsingContext.TypeParameters: @@ -1455,7 +1456,7 @@ module ts { return token === SyntaxKind.CloseBraceToken; case ParsingContext.SwitchClauseStatements: return token === SyntaxKind.CloseBraceToken || token === SyntaxKind.CaseKeyword || token === SyntaxKind.DefaultKeyword; - case ParsingContext.BaseTypeReferences: + case ParsingContext.TypeReferences: return token === SyntaxKind.OpenBraceToken || token === SyntaxKind.ExtendsKeyword || token === SyntaxKind.ImplementsKeyword; case ParsingContext.VariableDeclarations: return isVariableDeclaratorListTerminator(); @@ -3860,7 +3861,7 @@ module ts { var node = createNode(SyntaxKind.HeritageClause); node.token = token; nextToken(); - node.types = parseDelimitedList(ParsingContext.BaseTypeReferences, parseTypeReference); + node.types = parseDelimitedList(ParsingContext.TypeReferences, parseTypeReference); return finishNode(node); } From d390f67f7dc8ae84837adfbea805a7df04718482 Mon Sep 17 00:00:00 2001 From: Mohamed Hegazy Date: Mon, 1 Dec 2014 17:17:29 -0800 Subject: [PATCH 176/195] add missing prototype definitions --- src/lib/es6.d.ts | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/lib/es6.d.ts b/src/lib/es6.d.ts index 81d52b7d434..0940f26cac5 100644 --- a/src/lib/es6.d.ts +++ b/src/lib/es6.d.ts @@ -656,6 +656,7 @@ interface Map { interface MapConstructor { new (): Map; new (iterable: Iterable<[K, V]>): Map; + prototype: Map; } declare var Map: MapConstructor; @@ -671,6 +672,7 @@ interface WeakMap { interface WeakMapConstructor { new (): WeakMap; new (iterable: Iterable<[K, V]>): WeakMap; + prototype: WeakMap; } declare var WeakMap: WeakMapConstructor; @@ -691,6 +693,7 @@ interface Set { interface SetConstructor { new (): Set; new (iterable: Iterable): Set; + prototype: Set; } declare var Set: SetConstructor; @@ -705,6 +708,7 @@ interface WeakSet { interface WeakSetConstructor { new (): WeakSet; new (iterable: Iterable): WeakSet; + prototype: WeakSet; } declare var WeakSet: WeakSetConstructor; From ad95cc8d4794ae0ccc6c2265358cfc44e6d6c3c5 Mon Sep 17 00:00:00 2001 From: Vladimir Matveev Date: Mon, 1 Dec 2014 17:18:50 -0800 Subject: [PATCH 177/195] handle cases when new expression is used with no arguments --- src/services/smartIndenter.ts | 3 ++- tests/cases/fourslash/indentNewExpressionNoBraces.ts | 7 +++++++ 2 files changed, 9 insertions(+), 1 deletion(-) create mode 100644 tests/cases/fourslash/indentNewExpressionNoBraces.ts diff --git a/src/services/smartIndenter.ts b/src/services/smartIndenter.ts index 3fbfe142282..ad06d55e39d 100644 --- a/src/services/smartIndenter.ts +++ b/src/services/smartIndenter.ts @@ -253,7 +253,8 @@ module ts.formatting { rangeContainsStartEnd((node.parent).typeArguments, start, node.getEnd())) { return (node.parent).typeArguments; } - if (rangeContainsStartEnd((node.parent).arguments, start, node.getEnd())) { + if ((node.parent).arguments && + rangeContainsStartEnd((node.parent).arguments, start, node.getEnd())) { return (node.parent).arguments; } break; diff --git a/tests/cases/fourslash/indentNewExpressionNoBraces.ts b/tests/cases/fourslash/indentNewExpressionNoBraces.ts new file mode 100644 index 00000000000..b1dac278ca3 --- /dev/null +++ b/tests/cases/fourslash/indentNewExpressionNoBraces.ts @@ -0,0 +1,7 @@ +/// + +////new Foo/*1*/ + +goTo.marker("1"); +edit.insert("\n"); +verify.indentationIs(0); \ No newline at end of file From 08ab517d5276cc261dd9e070a16969c811078a91 Mon Sep 17 00:00:00 2001 From: Vladimir Matveev Date: Mon, 1 Dec 2014 17:46:56 -0800 Subject: [PATCH 178/195] fix crash in getCompletionEntryDetails --- src/compiler/checker.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index 040b95f3532..d087059d19e 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -4379,7 +4379,7 @@ module ts { function getNarrowedTypeOfSymbol(symbol: Symbol, node: Node) { var type = getTypeOfSymbol(symbol); // Only narrow when symbol is variable of a structured type - if (node && (symbol.flags & SymbolFlags.Variable && type.flags & TypeFlags.Structured)) { + if (node && node.parent && (symbol.flags & SymbolFlags.Variable && type.flags & TypeFlags.Structured)) { loop: while (true) { var child = node; node = node.parent; From ef6830054d13dc22a8b73da562de45841bffb7f5 Mon Sep 17 00:00:00 2001 From: Vladimir Matveev Date: Mon, 1 Dec 2014 17:59:32 -0800 Subject: [PATCH 179/195] addressed CR feedback --- src/compiler/checker.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index d087059d19e..e5b5299ff44 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -4379,8 +4379,8 @@ module ts { function getNarrowedTypeOfSymbol(symbol: Symbol, node: Node) { var type = getTypeOfSymbol(symbol); // Only narrow when symbol is variable of a structured type - if (node && node.parent && (symbol.flags & SymbolFlags.Variable && type.flags & TypeFlags.Structured)) { - loop: while (true) { + if (node && (symbol.flags & SymbolFlags.Variable && type.flags & TypeFlags.Structured)) { + loop: while (node.parent) { var child = node; node = node.parent; var narrowedType = type; From a29862eea56cb8f7dc0442059e8559e282f70cb2 Mon Sep 17 00:00:00 2001 From: Cyrus Najmabadi Date: Mon, 1 Dec 2014 18:42:07 -0800 Subject: [PATCH 180/195] Provide greater type safety in the ast system. --- src/compiler/checker.ts | 53 ++++++++++++++++++++++------------------- src/compiler/emitter.ts | 36 ++++++++++++++-------------- src/compiler/parser.ts | 30 +++++++++++++---------- src/compiler/types.ts | 29 +++++++++++++++------- 4 files changed, 84 insertions(+), 64 deletions(-) diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index cefbc3105ec..58841f96349 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -1666,7 +1666,7 @@ module ts { return classType.typeParameters ? createTypeReference(classType, map(classType.typeParameters, _ => anyType)) : classType; } - function getTypeOfVariableOrPropertyDeclaration(declaration: VariableDeclaration | PropertyDeclaration): Type { + function getTypeOfVariableOrParameterOrPropertyDeclaration(declaration: VariableOrParameterOrPropertyDeclaration): Type { // A variable declared in a for..in statement is always of type any if (declaration.parent.kind === SyntaxKind.ForInStatement) { return anyType; @@ -1758,7 +1758,7 @@ module ts { } // Handle variable, parameter or property links.type = resolvingType; - var type = getTypeOfVariableOrPropertyDeclaration(declaration); + var type = getTypeOfVariableOrParameterOrPropertyDeclaration(declaration); if (links.type === resolvingType) { links.type = type; } @@ -1775,7 +1775,7 @@ module ts { return links.type; } - function getSetAccessorTypeAnnotationNode(accessor: AccessorDeclaration): TypeNode { + function getSetAccessorTypeAnnotationNode(accessor: AccessorDeclaration): TypeNode | LiteralExpression { return accessor && accessor.parameters.length > 0 && accessor.parameters[0].type; } @@ -3018,14 +3018,17 @@ module ts { return links.resolvedType; } - function getStringLiteralType(node: StringLiteralTypeNode): StringLiteralType { - if (hasProperty(stringLiteralTypes, node.text)) return stringLiteralTypes[node.text]; + function getStringLiteralType(node: LiteralExpression): StringLiteralType { + if (hasProperty(stringLiteralTypes, node.text)) { + return stringLiteralTypes[node.text]; + } + var type = stringLiteralTypes[node.text] = createType(TypeFlags.StringLiteral); type.text = getTextOfNode(node); return type; } - function getTypeFromStringLiteral(node: StringLiteralTypeNode): Type { + function getTypeFromStringLiteral(node: LiteralExpression): Type { var links = getNodeLinks(node); if (!links.resolvedType) { links.resolvedType = getStringLiteralType(node); @@ -3033,7 +3036,7 @@ module ts { return links.resolvedType; } - function getTypeFromTypeNode(node: TypeNode): Type { + function getTypeFromTypeNode(node: TypeNode | LiteralExpression): Type { switch (node.kind) { case SyntaxKind.AnyKeyword: return anyType; @@ -3046,7 +3049,7 @@ module ts { case SyntaxKind.VoidKeyword: return voidType; case SyntaxKind.StringLiteral: - return getTypeFromStringLiteral(node); + return getTypeFromStringLiteral(node); case SyntaxKind.TypeReference: return getTypeFromTypeReferenceNode(node); case SyntaxKind.TypeQuery: @@ -4771,13 +4774,13 @@ module ts { // typed function expression, the contextual type of an initializer expression is the contextual type of the // parameter. function getContextualTypeForInitializerExpression(node: Expression): Type { - var declaration = node.parent; + var declaration = node.parent; if (node === declaration.initializer) { if (declaration.type) { return getTypeFromTypeNode(declaration.type); } if (declaration.kind === SyntaxKind.Parameter) { - return getContextuallyTypedParameterType(declaration); + return getContextuallyTypedParameterType(declaration); } } return undefined; @@ -6661,7 +6664,7 @@ module ts { } function checkParameter(parameterDeclaration: ParameterDeclaration) { - checkVariableDeclaration(parameterDeclaration); + checkVariableOrParameterDeclaration(parameterDeclaration); if (fullTypeCheck) { checkCollisionWithIndexVariableInGeneratedCode(parameterDeclaration, parameterDeclaration.name); @@ -6784,7 +6787,7 @@ module ts { function checkPropertyDeclaration(node: PropertyDeclaration) { if (fullTypeCheck) { - checkVariableOrPropertyInFullTypeCheck(node); + checkVariableOrParameterOrPropertyInFullTypeCheck(node); } } @@ -7521,7 +7524,7 @@ module ts { } } - function checkCollisionWithConstDeclarations(node: VariableDeclaration) { + function checkCollisionWithConstDeclarations(node: VariableOrParameterDeclaration) { // Variable declarations are hoisted to the top of their function scope. They can shadow // block scoped declarations, which bind tighter. this will not be flagged as duplicate definition // by the binder as the declaration scope is different. @@ -7553,7 +7556,7 @@ module ts { } } - function checkVariableOrPropertyInFullTypeCheck(node: VariableDeclaration | PropertyDeclaration) { + function checkVariableOrParameterOrPropertyInFullTypeCheck(node: VariableOrParameterOrPropertyDeclaration) { Debug.assert(fullTypeCheck); checkSourceElement(node.type); @@ -7565,7 +7568,7 @@ module ts { var symbol = getSymbolOfNode(node); var type: Type; if (symbol.valueDeclaration !== node) { - type = getTypeOfVariableOrPropertyDeclaration(node); + type = getTypeOfVariableOrParameterOrPropertyDeclaration(node); } else { type = getTypeOfVariableOrParameterOrProperty(symbol); @@ -7579,9 +7582,9 @@ module ts { return type; } - function checkVariableDeclaration(node: VariableDeclaration) { + function checkVariableOrParameterDeclaration(node: VariableOrParameterDeclaration) { if (fullTypeCheck) { - var type = checkVariableOrPropertyInFullTypeCheck(node); + var type = checkVariableOrParameterOrPropertyInFullTypeCheck(node); checkExportsOnMergedDeclarations(node); if (node.initializer) { checkCollisionWithConstDeclarations(node); @@ -7604,7 +7607,7 @@ module ts { } function checkVariableStatement(node: VariableStatement) { - forEach(node.declarations, checkVariableDeclaration); + forEach(node.declarations, checkVariableOrParameterDeclaration); } function checkExpressionStatement(node: ExpressionStatement) { @@ -7628,7 +7631,7 @@ module ts { } function checkForStatement(node: ForStatement) { - if (node.declarations) forEach(node.declarations, checkVariableDeclaration); + if (node.declarations) forEach(node.declarations, checkVariableOrParameterDeclaration); if (node.initializer) checkExpression(node.initializer); if (node.condition) checkExpression(node.condition); if (node.iterator) checkExpression(node.iterator); @@ -7645,7 +7648,7 @@ module ts { if (node.declarations) { if (node.declarations.length >= 1) { var decl = node.declarations[0]; - checkVariableDeclaration(decl); + checkVariableOrParameterDeclaration(decl); if (decl.type) { error(decl, Diagnostics.The_left_hand_side_of_a_for_in_statement_cannot_use_a_type_annotation); } @@ -8847,7 +8850,7 @@ module ts { return node === (parent).type; case SyntaxKind.CallExpression: case SyntaxKind.NewExpression: - return (parent).typeArguments && (parent).typeArguments.indexOf(node) >= 0; + return (parent).typeArguments && indexOf((parent).typeArguments, node) >= 0; case SyntaxKind.TaggedTemplateExpression: // TODO (drosen): TaggedTemplateExpressions may eventually support type arguments. return false; @@ -9251,12 +9254,12 @@ module ts { return undefined; } - function writeTypeAtLocation(location: Node, enclosingDeclaration: Node, flags: TypeFormatFlags, writer: SymbolWriter) { + function writeTypeOfDeclaration(declaration: AccessorDeclaration | VariableOrParameterDeclaration, enclosingDeclaration: Node, flags: TypeFormatFlags, writer: SymbolWriter) { // Get type of the symbol if this is the valid symbol otherwise get type at location - var symbol = getSymbolOfNode(location); + var symbol = getSymbolOfNode(declaration); var type = symbol && !(symbol.flags & (SymbolFlags.TypeLiteral | SymbolFlags.CallSignature | SymbolFlags.ConstructSignature)) ? getTypeOfSymbol(symbol) - : getTypeFromTypeNode(location); + : unknownType; getSymbolDisplayBuilder().buildTypeDisplay(type, writer, enclosingDeclaration, flags); } @@ -9280,7 +9283,7 @@ module ts { isEmitBlocked, isDeclarationVisible, isImplementationOfOverload, - writeTypeAtLocation, + writeTypeOfDeclaration, writeReturnTypeOfSignatureDeclaration, isSymbolAccessible, isEntityNameVisible, diff --git a/src/compiler/emitter.ts b/src/compiler/emitter.ts index 95508687cd4..fab0433890a 100644 --- a/src/compiler/emitter.ts +++ b/src/compiler/emitter.ts @@ -440,7 +440,7 @@ module ts { handleSymbolAccessibilityError(resolver.isSymbolAccessible(symbol, enclosingDeclaration, meaning)); } - function writeTypeAtLocation(location: Node, type: TypeNode, getSymbolAccessibilityDiagnostic: GetSymbolAccessibilityDiagnostic) { + function writeTypeOfDeclaration(declaration: AccessorDeclaration | VariableOrParameterDeclaration, type: TypeNode | StringLiteralExpression, getSymbolAccessibilityDiagnostic: GetSymbolAccessibilityDiagnostic) { writer.getSymbolAccessibilityDiagnostic = getSymbolAccessibilityDiagnostic; write(": "); if (type) { @@ -448,7 +448,7 @@ module ts { emitType(type); } else { - resolver.writeTypeAtLocation(location, enclosingDeclaration, TypeFormatFlags.UseTypeOfFunction, writer); + resolver.writeTypeOfDeclaration(declaration, enclosingDeclaration, TypeFormatFlags.UseTypeOfFunction, writer); } } @@ -494,12 +494,12 @@ module ts { } } - function emitTypeWithNewGetSymbolAccessibilityDiangostic(type: TypeNode, getSymbolAccessibilityDiagnostic: GetSymbolAccessibilityDiagnostic) { + function emitTypeWithNewGetSymbolAccessibilityDiagnostic(type: TypeNode | EntityName, getSymbolAccessibilityDiagnostic: GetSymbolAccessibilityDiagnostic) { writer.getSymbolAccessibilityDiagnostic = getSymbolAccessibilityDiagnostic; emitType(type); } - function emitType(type: TypeNode) { + function emitType(type: TypeNode | StringLiteralExpression | Identifier | QualifiedName) { switch (type.kind) { case SyntaxKind.AnyKeyword: case SyntaxKind.StringKeyword: @@ -522,7 +522,7 @@ module ts { return emitParenType(type); case SyntaxKind.FunctionType: case SyntaxKind.ConstructorType: - return emitSignatureDeclarationWithJsDocComments(type); + return emitSignatureDeclarationWithJsDocComments(type); case SyntaxKind.TypeLiteral: return emitTypeLiteral(type); case SyntaxKind.Identifier: @@ -666,7 +666,7 @@ module ts { writeTextOfNode(currentSourceFile, node.name); write(" = "); if (isInternalModuleImportDeclaration(node)) { - emitTypeWithNewGetSymbolAccessibilityDiangostic(node.moduleReference, getImportEntityNameVisibilityError); + emitTypeWithNewGetSymbolAccessibilityDiagnostic(node.moduleReference, getImportEntityNameVisibilityError); write(";"); } else { @@ -716,7 +716,7 @@ module ts { write("type "); writeTextOfNode(currentSourceFile, node.name); write(" = "); - emitTypeWithNewGetSymbolAccessibilityDiangostic(node.type, getTypeAliasDeclarationVisibilityError); + emitTypeWithNewGetSymbolAccessibilityDiagnostic(node.type, getTypeAliasDeclarationVisibilityError); write(";"); writeLine(); } @@ -780,7 +780,7 @@ module ts { emitType(node.constraint); } else { - emitTypeWithNewGetSymbolAccessibilityDiangostic(node.constraint, getTypeParameterConstraintVisibilityError); + emitTypeWithNewGetSymbolAccessibilityDiagnostic(node.constraint, getTypeParameterConstraintVisibilityError); } } @@ -845,8 +845,8 @@ module ts { emitCommaList(typeReferences, emitTypeOfTypeReference); } - function emitTypeOfTypeReference(node: Node) { - emitTypeWithNewGetSymbolAccessibilityDiangostic(node, getHeritageClauseVisibilityError); + function emitTypeOfTypeReference(node: TypeReferenceNode) { + emitTypeWithNewGetSymbolAccessibilityDiagnostic(node, getHeritageClauseVisibilityError); function getHeritageClauseVisibilityError(symbolAccesibilityResult: SymbolAccessiblityResult): SymbolAccessibilityDiagnostic { var diagnosticMessage: DiagnosticMessage; @@ -950,7 +950,7 @@ module ts { emitTypeOfVariableDeclarationFromTypeLiteral(node); } else if (!(node.flags & NodeFlags.Private)) { - writeTypeAtLocation(node, node.type, getVariableDeclarationTypeVisibilityError); + writeTypeOfDeclaration(node, node.type, getVariableDeclarationTypeVisibilityError); } } @@ -996,7 +996,7 @@ module ts { } } - function emitTypeOfVariableDeclarationFromTypeLiteral(node: VariableDeclaration) { + function emitTypeOfVariableDeclarationFromTypeLiteral(node: VariableOrParameterDeclaration) { // if this is property of type literal, // or is parameter of method/call/construct/index signature of type literal // emit only if type is specified @@ -1044,17 +1044,17 @@ module ts { accessorWithTypeAnnotation = anotherAccessor; } } - writeTypeAtLocation(node, type, getAccessorDeclarationTypeVisibilityError); + writeTypeOfDeclaration(node, type, getAccessorDeclarationTypeVisibilityError); } write(";"); writeLine(); } - function getTypeAnnotationFromAccessor(accessor: AccessorDeclaration): TypeNode { + function getTypeAnnotationFromAccessor(accessor: AccessorDeclaration): TypeNode | StringLiteralExpression { if (accessor) { - return accessor.kind === SyntaxKind.GetAccessor ? - accessor.type : // Getter - return type - accessor.parameters[0].type; // Setter parameter type + return accessor.kind === SyntaxKind.GetAccessor + ? accessor.type // Getter - return type + : accessor.parameters[0].type; // Setter parameter type } } @@ -1267,7 +1267,7 @@ module ts { emitTypeOfVariableDeclarationFromTypeLiteral(node); } else if (!(node.parent.flags & NodeFlags.Private)) { - writeTypeAtLocation(node, node.type, getParameterDeclarationTypeVisibilityError); + writeTypeOfDeclaration(node, node.type, getParameterDeclarationTypeVisibilityError); } function getParameterDeclarationTypeVisibilityError(symbolAccesibilityResult: SymbolAccessiblityResult): SymbolAccessibilityDiagnostic { diff --git a/src/compiler/parser.ts b/src/compiler/parser.ts index 33973f4ac3d..687eab878f3 100644 --- a/src/compiler/parser.ts +++ b/src/compiler/parser.ts @@ -1665,8 +1665,8 @@ module ts { return allowIdentifierNames ? parseIdentifierName() : parseIdentifier(); } - function parseTokenNode(): PrimaryExpression { - var node = createNode(token); + function parseTokenNode(): T { + var node = createNode(token); nextToken(); return finishNode(node); } @@ -1789,10 +1789,14 @@ module ts { } } - function parseParameterType(): TypeNode { - return parseOptional(SyntaxKind.ColonToken) - ? token === SyntaxKind.StringLiteral ? parseLiteralNode(/*internName:*/ true) : parseType() - : undefined; + function parseParameterType(): TypeNode | StringLiteralExpression { + if (parseOptional(SyntaxKind.ColonToken)) { + return token === SyntaxKind.StringLiteral + ? parseLiteralNode(/*internName:*/ true) + : parseType(); + } + + return undefined; } function isStartOfParameter(): boolean { @@ -2095,15 +2099,15 @@ module ts { return finishNode(node); } - function parseFunctionType(typeKind: SyntaxKind): SignatureDeclaration { - var node = createNode(typeKind); + function parseFunctionType(typeKind: SyntaxKind): FunctionOrConstructorTypeNode { + var node = createNode(typeKind); fillSignature(typeKind === SyntaxKind.FunctionType ? SyntaxKind.CallSignature : SyntaxKind.ConstructSignature, SyntaxKind.EqualsGreaterThanToken, /* returnTokenRequired */ true, /*yieldAndGeneratorParameterContext:*/ false, node); return finishNode(node); } - function parseKeywordAndNoDot(): Node { - var node = parseTokenNode(); + function parseKeywordAndNoDot(): TypeNode { + var node = parseTokenNode(); return token === SyntaxKind.DotToken ? undefined : node; } @@ -2117,7 +2121,7 @@ module ts { var node = tryParse(parseKeywordAndNoDot); return node || parseTypeReference(); case SyntaxKind.VoidKeyword: - return parseTokenNode(); + return parseTokenNode(); case SyntaxKind.TypeOfKeyword: return parseTypeQuery(); case SyntaxKind.OpenBraceToken: @@ -2888,7 +2892,7 @@ module ts { } function parseSuperExpression(): MemberExpression { - var expression = parseTokenNode(); + var expression = parseTokenNode(); if (token === SyntaxKind.OpenParenToken || token === SyntaxKind.DotToken) { return expression; } @@ -3025,7 +3029,7 @@ module ts { case SyntaxKind.NullKeyword: case SyntaxKind.TrueKeyword: case SyntaxKind.FalseKeyword: - return parseTokenNode(); + return parseTokenNode(); case SyntaxKind.NumericLiteral: case SyntaxKind.StringLiteral: case SyntaxKind.NoSubstitutionTemplateLiteral: diff --git a/src/compiler/types.ts b/src/compiler/types.ts index ad74280dab5..277e2cce5ff 100644 --- a/src/compiler/types.ts +++ b/src/compiler/types.ts @@ -368,17 +368,24 @@ module ts { initializer?: Expression; } + export interface ParameterDeclaration extends Declaration { + name: Identifier; + type?: TypeNode | StringLiteralExpression; + initializer?: Expression; + } + export interface PropertyDeclaration extends Declaration, ClassElement { type?: TypeNode; initializer?: Expression; } + export type VariableOrParameterDeclaration = VariableDeclaration | ParameterDeclaration; + export type VariableOrParameterOrPropertyDeclaration = VariableOrParameterDeclaration | PropertyDeclaration; + export interface ShortHandPropertyDeclaration extends Declaration { name: Identifier; } - export interface ParameterDeclaration extends VariableDeclaration { } - /** * Several node kinds share function-like features such as a signature, * a name, and a body. These nodes should extend FunctionLikeDeclaration. @@ -415,7 +422,13 @@ module ts { _indexSignatureDeclarationBrand: any; } - export interface TypeNode extends Node { } + export interface TypeNode extends Node { + _typeNodeBrand: any; + } + + export interface FunctionOrConstructorTypeNode extends TypeNode, SignatureDeclaration { + _functionOrConstructorTypeNodeBrand: any; + } export interface TypeReferenceNode extends TypeNode { typeName: EntityName; @@ -447,10 +460,6 @@ module ts { type: TypeNode; } - export interface StringLiteralTypeNode extends TypeNode { - text: string; - } - // Note: 'brands' in our syntax nodes serve to give us a small amount of nominal typing. // Consider 'Expression'. Without the brand, 'Expression' is actually no different // (structurally) than 'Node'. Because of this you can pass any Node to a function that @@ -535,6 +544,10 @@ module ts { isUnterminated?: boolean; } + export interface StringLiteralExpression extends LiteralExpression { + _stringLiteralExpressionBrand: any; + } + export interface TemplateExpression extends PrimaryExpression { head: LiteralExpression; templateSpans: NodeArray; @@ -963,7 +976,7 @@ module ts { hasSemanticErrors(): boolean; isDeclarationVisible(node: Declaration): boolean; isImplementationOfOverload(node: FunctionLikeDeclaration): boolean; - writeTypeAtLocation(location: Node, enclosingDeclaration: Node, flags: TypeFormatFlags, writer: SymbolWriter): void; + writeTypeOfDeclaration(declaration: AccessorDeclaration | VariableOrParameterDeclaration, enclosingDeclaration: Node, flags: TypeFormatFlags, writer: SymbolWriter): void; writeReturnTypeOfSignatureDeclaration(signatureDeclaration: SignatureDeclaration, enclosingDeclaration: Node, flags: TypeFormatFlags, writer: SymbolWriter): void; isSymbolAccessible(symbol: Symbol, enclosingDeclaration: Node, meaning: SymbolFlags): SymbolAccessiblityResult; isEntityNameVisible(entityName: EntityName, enclosingDeclaration: Node): SymbolVisibilityResult; From f8a4fb0a15959bb0bfa1e9617402173e76dc4329 Mon Sep 17 00:00:00 2001 From: Cyrus Najmabadi Date: Mon, 1 Dec 2014 19:19:50 -0800 Subject: [PATCH 181/195] Put semantically relevant tokens in the tree. --- src/compiler/checker.ts | 14 +++++++------- src/compiler/emitter.ts | 2 +- src/compiler/parser.ts | 19 ++++++++++--------- src/compiler/types.ts | 2 +- src/services/breakpoints.ts | 2 +- 5 files changed, 20 insertions(+), 19 deletions(-) diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index a663b038844..2f765e556cb 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -1437,7 +1437,7 @@ module ts { } function buildParameterDisplay(p: Symbol, writer: SymbolWriter, enclosingDeclaration?: Node, flags?: TypeFormatFlags, typeStack?: Type[]) { - if (getDeclarationFlagsFromSymbol(p) & NodeFlags.Rest) { + if (hasDotDotDotToken(p.valueDeclaration)) { writePunctuation(writer, SyntaxKind.DotDotDotToken); } appendSymbolNameOnly(p, writer); @@ -1711,7 +1711,7 @@ module ts { } // Rest parameters default to type any[], other parameters default to type any - var type = declaration.flags & NodeFlags.Rest ? createArrayType(anyType) : anyType; + var type = hasDotDotDotToken(declaration) ? createArrayType(anyType) : anyType; checkImplicitAny(type); return type; @@ -1733,9 +1733,9 @@ module ts { var diagnostic = Diagnostics.Member_0_implicitly_has_an_1_type; break; case SyntaxKind.Parameter: - var diagnostic = declaration.flags & NodeFlags.Rest ? - Diagnostics.Rest_parameter_0_implicitly_has_an_any_type : - Diagnostics.Parameter_0_implicitly_has_an_1_type; + var diagnostic = hasDotDotDotToken(declaration) + ? Diagnostics.Rest_parameter_0_implicitly_has_an_any_type + : Diagnostics.Parameter_0_implicitly_has_an_1_type; break; default: var diagnostic = Diagnostics.Variable_0_implicitly_has_an_1_type; @@ -2527,7 +2527,7 @@ module ts { hasStringLiterals = true; } if (minArgumentCount < 0) { - if (param.initializer || param.flags & (NodeFlags.QuestionMark | NodeFlags.Rest)) { + if (param.initializer || param.flags & NodeFlags.QuestionMark || param.dotDotDotToken) { minArgumentCount = i; } } @@ -6673,7 +6673,7 @@ module ts { !(parameterDeclaration.parent.kind === SyntaxKind.Constructor && (parameterDeclaration.parent).body)) { error(parameterDeclaration, Diagnostics.A_parameter_property_is_only_allowed_in_a_constructor_implementation); } - if (parameterDeclaration.flags & NodeFlags.Rest) { + if (parameterDeclaration.dotDotDotToken) { if (!isArrayType(getTypeOfSymbol(parameterDeclaration.symbol))) { error(parameterDeclaration, Diagnostics.A_rest_parameter_must_be_of_an_array_type); } diff --git a/src/compiler/emitter.ts b/src/compiler/emitter.ts index fab0433890a..75454aa9807 100644 --- a/src/compiler/emitter.ts +++ b/src/compiler/emitter.ts @@ -1252,7 +1252,7 @@ module ts { function emitParameterDeclaration(node: ParameterDeclaration) { increaseIndent(); emitJsDocComments(node); - if (node.flags & NodeFlags.Rest) { + if (node.dotDotDotToken) { write("..."); } writeTextOfNode(currentSourceFile, node.name); diff --git a/src/compiler/parser.ts b/src/compiler/parser.ts index 687eab878f3..733c28d267e 100644 --- a/src/compiler/parser.ts +++ b/src/compiler/parser.ts @@ -608,8 +608,12 @@ module ts { return node.kind === SyntaxKind.ImportDeclaration && (node).moduleReference.kind !== SyntaxKind.ExternalModuleReference; } + export function hasDotDotDotToken(node: Node) { + return node && node.kind === SyntaxKind.Parameter && (node).dotDotDotToken !== undefined; + } + export function hasRestParameters(s: SignatureDeclaration): boolean { - return s.parameters.length > 0 && (s.parameters[s.parameters.length - 1].flags & NodeFlags.Rest) !== 0; + return s.parameters.length > 0 && s.parameters[s.parameters.length - 1].dotDotDotToken !== undefined; } export function isLiteralKind(kind: SyntaxKind): boolean { @@ -1812,11 +1816,8 @@ module ts { function parseParameter(): ParameterDeclaration { var node = createNode(SyntaxKind.Parameter); - var modifiers = parseModifiers(); - setModifiers(node, modifiers); - if (parseOptional(SyntaxKind.DotDotDotToken)) { - node.flags |= NodeFlags.Rest; - } + setModifiers(node, parseModifiers()); + node.dotDotDotToken = token === SyntaxKind.DotDotDotToken ? parseTokenNode() : undefined; // SingleNameBinding[Yield,GeneratorParameter] : See 13.2.3 // [+GeneratorParameter]BindingIdentifier[Yield]Initializer[In]opt @@ -4803,7 +4804,7 @@ module ts { return grammarErrorOnNode(node, Diagnostics.An_index_signature_must_have_exactly_one_parameter); } } - else if (parameter.flags & NodeFlags.Rest) { + else if (parameter.dotDotDotToken) { return grammarErrorOnNode(parameter.name, Diagnostics.An_index_signature_cannot_have_a_rest_parameter); } else if (parameter.flags & NodeFlags.Modifier) { @@ -5160,7 +5161,7 @@ module ts { for (var i = 0; i < parameterCount; i++) { var parameter = parameters[i]; - if (parameter.flags & NodeFlags.Rest) { + if (parameter.dotDotDotToken) { if (i !== (parameterCount - 1)) { return grammarErrorOnNode(parameter.name, Diagnostics.A_rest_parameter_must_be_last_in_a_parameter_list); } @@ -5298,7 +5299,7 @@ module ts { } else { var parameter = accessor.parameters[0]; - if (parameter.flags & NodeFlags.Rest) { + if (parameter.dotDotDotToken) { return grammarErrorOnNode(accessor.name, Diagnostics.A_set_accessor_cannot_have_rest_parameter); } else if (parameter.flags & NodeFlags.Modifier) { diff --git a/src/compiler/types.ts b/src/compiler/types.ts index 277e2cce5ff..fba331fdd3c 100644 --- a/src/compiler/types.ts +++ b/src/compiler/types.ts @@ -273,7 +273,6 @@ module ts { Export = 0x00000001, // Declarations Ambient = 0x00000002, // Declarations QuestionMark = 0x00000004, // Parameter/Property/Method - Rest = 0x00000008, // Parameter Public = 0x00000010, // Property/Method Private = 0x00000020, // Property/Method Protected = 0x00000040, // Property/Method @@ -369,6 +368,7 @@ module ts { } export interface ParameterDeclaration extends Declaration { + dotDotDotToken?: Node; name: Identifier; type?: TypeNode | StringLiteralExpression; initializer?: Expression; diff --git a/src/services/breakpoints.ts b/src/services/breakpoints.ts index 6cf775487fa..eb9c88088aa 100644 --- a/src/services/breakpoints.ts +++ b/src/services/breakpoints.ts @@ -297,7 +297,7 @@ module ts.BreakpointResolver { function canHaveSpanInParameterDeclaration(parameter: ParameterDeclaration): boolean { // Breakpoint is possible on parameter only if it has initializer, is a rest parameter, or has public or private modifier - return !!parameter.initializer || !!(parameter.flags & NodeFlags.Rest) || + return !!parameter.initializer || parameter.dotDotDotToken !== undefined || !!(parameter.flags & NodeFlags.Public) || !!(parameter.flags & NodeFlags.Private); } From 8ad4a0a5b873c4b7705e926595775bac0cce3ea9 Mon Sep 17 00:00:00 2001 From: Cyrus Najmabadi Date: Mon, 1 Dec 2014 20:45:29 -0800 Subject: [PATCH 182/195] Traverse into all nodes when walking the tree. --- src/compiler/parser.ts | 49 ++++++++++++++++++++++++++-------------- src/compiler/types.ts | 2 +- src/services/services.ts | 4 ++-- 3 files changed, 35 insertions(+), 20 deletions(-) diff --git a/src/compiler/parser.ts b/src/compiler/parser.ts index 733c28d267e..8e6f0fda479 100644 --- a/src/compiler/parser.ts +++ b/src/compiler/parser.ts @@ -216,13 +216,16 @@ module ts { return child((node).name) || child((node).constraint); case SyntaxKind.Parameter: - return child((node).name) || + return children(node.modifiers) || + child((node).dotDotDotToken) || + child((node).name) || child((node).type) || child((node).initializer); case SyntaxKind.Property: case SyntaxKind.PropertyAssignment: case SyntaxKind.ShorthandPropertyAssignment: - return child((node).name) || + return children(node.modifiers) || + child((node).name) || child((node).type) || child((node).initializer); case SyntaxKind.FunctionType: @@ -230,7 +233,8 @@ module ts { case SyntaxKind.CallSignature: case SyntaxKind.ConstructSignature: case SyntaxKind.IndexSignature: - return children((node).typeParameters) || + return children(node.modifiers) || + children((node).typeParameters) || children((node).parameters) || child((node).type); case SyntaxKind.Method: @@ -240,7 +244,8 @@ module ts { case SyntaxKind.FunctionExpression: case SyntaxKind.FunctionDeclaration: case SyntaxKind.ArrowFunction: - return child((node).name) || + return children(node.modifiers) || + child((node).name) || children((node).typeParameters) || children((node).parameters) || child((node).type) || @@ -308,7 +313,8 @@ module ts { case SyntaxKind.SourceFile: return children((node).statements); case SyntaxKind.VariableStatement: - return children((node).declarations); + return children(node.modifiers) || + children((node).declarations); case SyntaxKind.ExpressionStatement: return child((node).expression); case SyntaxKind.IfStatement: @@ -360,36 +366,44 @@ module ts { return child((node).variable) || children((node).statements); case SyntaxKind.VariableDeclaration: - return child((node).name) || + return children(node.modifiers) || + child((node).name) || child((node).type) || child((node).initializer); case SyntaxKind.ClassDeclaration: - return child((node).name) || + return children(node.modifiers) || + child((node).name) || children((node).typeParameters) || children((node).heritageClauses) || children((node).members); case SyntaxKind.InterfaceDeclaration: - return child((node).name) || - children((node).typeParameters) || - children((node).heritageClauses) || + return children(node.modifiers) || + child((node).name) || + children((node).typeParameters) || + children((node).heritageClauses) || children((node).members); case SyntaxKind.TypeAliasDeclaration: - return child((node).name) || + return children(node.modifiers) || + child((node).name) || child((node).type); case SyntaxKind.EnumDeclaration: - return child((node).name) || + return children(node.modifiers) || + child((node).name) || children((node).members); case SyntaxKind.EnumMember: return child((node).name) || child((node).initializer); case SyntaxKind.ModuleDeclaration: - return child((node).name) || + return children(node.modifiers) || + child((node).name) || child((node).body); case SyntaxKind.ImportDeclaration: - return child((node).name) || + return children(node.modifiers) || + child((node).name) || child((node).moduleReference); case SyntaxKind.ExportAssignment: - return child((node).exportName); + return children(node.modifiers) || + child((node).exportName); case SyntaxKind.TemplateExpression: return child((node).head) || children((node).templateSpans); case SyntaxKind.TemplateSpan: @@ -3759,7 +3773,7 @@ module ts { var flags = 0; var modifiers: ModifiersArray; while (true) { - var modifierStart = scanner.getTokenPos(); + var modifierStart = scanner.getStartPos(); var modifierKind = token; if (!parseAnyContextualModifier()) { @@ -3768,12 +3782,14 @@ module ts { 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; } @@ -4049,7 +4065,6 @@ module ts { switch (token) { case SyntaxKind.VarKeyword: case SyntaxKind.LetKeyword: - return parseVariableStatement(fullStart, modifiers); case SyntaxKind.ConstKeyword: return parseVariableStatement(fullStart, modifiers); case SyntaxKind.FunctionKeyword: diff --git a/src/compiler/types.ts b/src/compiler/types.ts index fba331fdd3c..8436399f74f 100644 --- a/src/compiler/types.ts +++ b/src/compiler/types.ts @@ -317,7 +317,7 @@ module ts { hasTrailingComma?: boolean; } - export interface ModifiersArray extends Array { + export interface ModifiersArray extends NodeArray { flags: number; } diff --git a/src/services/services.ts b/src/services/services.ts index 8bbc03aad6f..7e9e84cd7af 100644 --- a/src/services/services.ts +++ b/src/services/services.ts @@ -3836,8 +3836,8 @@ module ts { } forEach(nodes, node => { - if (node.flags & modifierFlag) { - forEach(node.getChildren(), child => pushKeywordIf(keywords, child, modifier)); + if (node.modifiers && node.flags & modifierFlag) { + forEach(node.modifiers, child => pushKeywordIf(keywords, child, modifier)); } }); From db89584a862bce6432ef7030ba79cf39732e2efe Mon Sep 17 00:00:00 2001 From: Cyrus Najmabadi Date: Mon, 1 Dec 2014 22:03:41 -0800 Subject: [PATCH 183/195] Put semantically relevant tokens in the tree. --- src/compiler/checker.ts | 46 +++++--- src/compiler/emitter.ts | 6 +- src/compiler/parser.ts | 111 +++++++++--------- src/compiler/types.ts | 5 +- src/services/signatureHelp.ts | 2 +- .../accessorWithRestParam.errors.txt | 8 +- ...rowfunctionsOptionalArgsErrors1.errors.txt | 4 +- .../functionOverloadErrorsSyntax.errors.txt | 4 +- .../indexSignatureTypeCheck.errors.txt | 8 +- .../indexSignatureTypeCheck2.errors.txt | 8 +- .../reference/indexerAsOptional.errors.txt | 8 +- .../indexerSignatureWithRestParam.errors.txt | 8 +- .../parserIndexSignature1.errors.txt | 4 +- .../parserIndexSignature3.errors.txt | 4 +- ...rserMemberAccessorDeclaration17.errors.txt | 4 +- ...rserMemberAccessorDeclaration18.errors.txt | 4 +- .../reference/parserParameterList1.errors.txt | 4 +- .../parserParameterList11.errors.txt | 4 +- .../reference/parserParameterList9.errors.txt | 4 +- .../reference/restParamAsOptional.errors.txt | 4 +- .../reference/restParameterNotLast.errors.txt | 4 +- ...eterWithoutAnnotationIsAnyArray.errors.txt | 12 +- .../restParametersOfNonArrayTypes.errors.txt | 12 +- .../restParametersOfNonArrayTypes2.errors.txt | 24 ++-- ...ametersWithArrayTypeAnnotations.errors.txt | 24 ++-- 25 files changed, 175 insertions(+), 151 deletions(-) diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index 2f765e556cb..9fca10b7341 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -756,7 +756,7 @@ module ts { // // x is an optional parameter, but it is a required property. return propertySymbol.valueDeclaration && - propertySymbol.valueDeclaration.flags & NodeFlags.QuestionMark && + hasQuestionToken(propertySymbol.valueDeclaration) && propertySymbol.valueDeclaration.kind !== SyntaxKind.Parameter; } @@ -1441,7 +1441,7 @@ module ts { writePunctuation(writer, SyntaxKind.DotDotDotToken); } appendSymbolNameOnly(p, writer); - if (p.valueDeclaration.flags & NodeFlags.QuestionMark || (p.valueDeclaration).initializer) { + if (hasQuestionToken(p.valueDeclaration) || (p.valueDeclaration).initializer) { writePunctuation(writer, SyntaxKind.QuestionToken); } writePunctuation(writer, SyntaxKind.ColonToken); @@ -2527,7 +2527,7 @@ module ts { hasStringLiterals = true; } if (minArgumentCount < 0) { - if (param.initializer || param.flags & NodeFlags.QuestionMark || param.dotDotDotToken) { + if (param.initializer || param.questionToken || param.dotDotDotToken) { minArgumentCount = i; } } @@ -7020,20 +7020,23 @@ module ts { return; } + function getCanonicalOverload(overloads: Declaration[], implementation: FunctionLikeDeclaration) { + // Consider the canonical set of flags to be the flags of the bodyDeclaration or the first declaration + // Error on all deviations from this canonical set of flags + // The caveat is that if some overloads are defined in lib.d.ts, we don't want to + // report the errors on those. To achieve this, we will say that the implementation is + // the canonical signature only if it is in the same container as the first overload + var implementationSharesContainerWithFirstOverload = implementation !== undefined && implementation.parent === overloads[0].parent; + return implementationSharesContainerWithFirstOverload ? implementation : overloads[0]; + } + function checkFlagAgreementBetweenOverloads(overloads: Declaration[], implementation: FunctionLikeDeclaration, flagsToCheck: NodeFlags, someOverloadFlags: NodeFlags, allOverloadFlags: NodeFlags): void { // Error if some overloads have a flag that is not shared by all overloads. To find the // deviations, we XOR someOverloadFlags with allOverloadFlags var someButNotAllOverloadFlags = someOverloadFlags ^ allOverloadFlags; if (someButNotAllOverloadFlags !== 0) { - // Consider the canonical set of flags to be the flags of the bodyDeclaration or the first declaration - // Error on all deviations from this canonical set of flags - // The caveat is that if some overloads are defined in lib.d.ts, we don't want to - // report the errors on those. To achieve this, we will say that the implementation is - // the canonical signature only if it is in the same container as the first overload - var implementationSharesContainerWithFirstOverload = implementation !== undefined && implementation.parent === overloads[0].parent; - var canonicalFlags = implementationSharesContainerWithFirstOverload - ? getEffectiveDeclarationFlags(implementation, flagsToCheck) - : getEffectiveDeclarationFlags(overloads[0], flagsToCheck); + var canonicalFlags = getEffectiveDeclarationFlags(getCanonicalOverload(overloads, implementation), flagsToCheck); + forEach(overloads, o => { var deviation = getEffectiveDeclarationFlags(o, flagsToCheck) ^ canonicalFlags; if (deviation & NodeFlags.Export) { @@ -7045,16 +7048,27 @@ module ts { else if (deviation & (NodeFlags.Private | NodeFlags.Protected)) { error(o.name, Diagnostics.Overload_signatures_must_all_be_public_private_or_protected); } - else if (deviation & NodeFlags.QuestionMark) { + }); + } + } + + function checkQuestionTokenAgreementBetweenOverloads(overloads: Declaration[], implementation: FunctionLikeDeclaration, someHaveQuestionToken: boolean, allHaveQuestionToken: boolean): void { + if (someHaveQuestionToken !== allHaveQuestionToken) { + var canonicalHasQuestionToken = hasQuestionToken(getCanonicalOverload(overloads, implementation)); + forEach(overloads, o => { + var deviation = hasQuestionToken(o) !== canonicalHasQuestionToken; + if (deviation) { error(o.name, Diagnostics.Overload_signatures_must_all_be_optional_or_required); } }); } } - var flagsToCheck: NodeFlags = NodeFlags.Export | NodeFlags.Ambient | NodeFlags.Private | NodeFlags.Protected | NodeFlags.QuestionMark; + var flagsToCheck: NodeFlags = NodeFlags.Export | NodeFlags.Ambient | NodeFlags.Private | NodeFlags.Protected; var someNodeFlags: NodeFlags = 0; var allNodeFlags = flagsToCheck; + var someHaveQuestionToken = false; + var allHaveQuestionToken = true; var hasOverloads = false; var bodyDeclaration: FunctionLikeDeclaration; var lastSeenNonAmbientDeclaration: FunctionLikeDeclaration; @@ -7128,6 +7142,8 @@ module ts { var currentNodeFlags = getEffectiveDeclarationFlags(node, flagsToCheck); someNodeFlags |= currentNodeFlags; allNodeFlags &= currentNodeFlags; + someHaveQuestionToken = someHaveQuestionToken || hasQuestionToken(node); + allHaveQuestionToken = allHaveQuestionToken && hasQuestionToken(node); if (node.body && bodyDeclaration) { if (isConstructor) { @@ -7176,6 +7192,8 @@ module ts { if (hasOverloads) { checkFlagAgreementBetweenOverloads(declarations, bodyDeclaration, flagsToCheck, someNodeFlags, allNodeFlags); + checkQuestionTokenAgreementBetweenOverloads(declarations, bodyDeclaration, someHaveQuestionToken, allHaveQuestionToken); + if (bodyDeclaration) { var signatures = getSignaturesOfSymbol(symbol); var bodySignature = getSignatureFromDeclaration(bodyDeclaration); diff --git a/src/compiler/emitter.ts b/src/compiler/emitter.ts index 75454aa9807..ff52209ba69 100644 --- a/src/compiler/emitter.ts +++ b/src/compiler/emitter.ts @@ -943,7 +943,7 @@ module ts { if (node.kind !== SyntaxKind.VariableDeclaration || resolver.isDeclarationVisible(node)) { writeTextOfNode(currentSourceFile, node.name); // If optional property emit ? - if (node.kind === SyntaxKind.Property && (node.flags & NodeFlags.QuestionMark)) { + if (node.kind === SyntaxKind.Property && hasQuestionToken(node)) { write("?"); } if (node.kind === SyntaxKind.Property && node.parent.kind === SyntaxKind.TypeLiteral) { @@ -1124,7 +1124,7 @@ module ts { } else { writeTextOfNode(currentSourceFile, node.name); - if (node.flags & NodeFlags.QuestionMark) { + if (hasQuestionToken(node)) { write("?"); } } @@ -1256,7 +1256,7 @@ module ts { write("..."); } writeTextOfNode(currentSourceFile, node.name); - if (node.initializer || (node.flags & NodeFlags.QuestionMark)) { + if (node.initializer || hasQuestionToken(node)) { write("?"); } decreaseIndent(); diff --git a/src/compiler/parser.ts b/src/compiler/parser.ts index 8e6f0fda479..97b973eb8d0 100644 --- a/src/compiler/parser.ts +++ b/src/compiler/parser.ts @@ -219,6 +219,7 @@ module ts { return children(node.modifiers) || child((node).dotDotDotToken) || child((node).name) || + child((node).questionToken) || child((node).type) || child((node).initializer); case SyntaxKind.Property: @@ -226,6 +227,7 @@ module ts { case SyntaxKind.ShorthandPropertyAssignment: return children(node.modifiers) || child((node).name) || + child((node).questionToken) || child((node).type) || child((node).initializer); case SyntaxKind.FunctionType: @@ -246,6 +248,7 @@ module ts { case SyntaxKind.ArrowFunction: return children(node.modifiers) || child((node).name) || + child((node).questionToken) || children((node).typeParameters) || children((node).parameters) || child((node).type) || @@ -626,6 +629,23 @@ module ts { return node && node.kind === SyntaxKind.Parameter && (node).dotDotDotToken !== undefined; } + export function hasQuestionToken(node: Node) { + if (node) { + switch (node.kind) { + case SyntaxKind.Parameter: + return (node).questionToken !== undefined; + case SyntaxKind.Method: + return (node).questionToken !== undefined; + case SyntaxKind.ShorthandPropertyAssignment: + case SyntaxKind.PropertyAssignment: + case SyntaxKind.Property: + return (node).questionToken !== undefined; + } + } + + return false; + } + export function hasRestParameters(s: SignatureDeclaration): boolean { return s.parameters.length > 0 && s.parameters[s.parameters.length - 1].dotDotDotToken !== undefined; } @@ -1853,9 +1873,7 @@ module ts { nextToken(); } - if (parseOptional(SyntaxKind.QuestionToken)) { - node.flags |= NodeFlags.QuestionMark; - } + node.questionToken = token === SyntaxKind.QuestionToken ? parseTokenNode() : undefined; node.type = parseParameterType(); node.initializer = inGeneratorParameterContext() ? doOutsideOfYieldContext(parseParameterInitializer) @@ -2020,15 +2038,12 @@ module ts { function parsePropertyOrMethod(): Declaration { var fullStart = scanner.getStartPos(); var name = parsePropertyName(); - var flags = 0; - if (parseOptional(SyntaxKind.QuestionToken)) { - flags = NodeFlags.QuestionMark; - } + var questionToken = token === SyntaxKind.QuestionToken ? parseTokenNode() : undefined; if (token === SyntaxKind.OpenParenToken || token === SyntaxKind.LessThanToken) { var method = createNode(SyntaxKind.Method, fullStart); method.name = name; - method.flags = flags; + method.questionToken = questionToken; // Method signatues don't exist in expression contexts. So they have neither // [Yield] nor [GeneratorParameter] @@ -2040,7 +2055,7 @@ module ts { else { var property = createNode(SyntaxKind.Property, fullStart); property.name = name; - property.flags = flags; + property.questionToken = questionToken; property.type = parseTypeAnnotation(); parseSemicolon(); return finishNode(property); @@ -3125,28 +3140,24 @@ module ts { return finishNode(node); } - var flags: NodeFlags = 0; - // Disallowing of optional property assignments happens in the grammar checker. - if (token === SyntaxKind.QuestionToken) { - flags |= NodeFlags.QuestionMark; - nextToken(); - } + var questionToken = token === SyntaxKind.QuestionToken ? parseTokenNode() : undefined; // Parse to check if it is short-hand property assignment or normal property assignment if ((token === SyntaxKind.CommaToken || token === SyntaxKind.CloseBraceToken) && tokenIsIdentifier) { - node = createNode(SyntaxKind.ShorthandPropertyAssignment, nodePos); - node.name = propertyName; + var shorthandDeclaration = createNode(SyntaxKind.ShorthandPropertyAssignment, nodePos); + shorthandDeclaration.name = propertyName; + shorthandDeclaration.questionToken = questionToken; + return finishNode(shorthandDeclaration); } else { - node = createNode(SyntaxKind.PropertyAssignment, nodePos); - node.name = propertyName; + var propertyDeclaration = createNode(SyntaxKind.PropertyAssignment, nodePos); + propertyDeclaration.name = propertyName; + propertyDeclaration.questionToken = questionToken; parseExpected(SyntaxKind.ColonToken); - (node).initializer = allowInAnd(parseAssignmentExpressionOrHigher); + propertyDeclaration.initializer = allowInAnd(parseAssignmentExpressionOrHigher); + return finishNode(propertyDeclaration); } - - node.flags = flags; - return finishNode(node); } function parseObjectLiteralMember(): Declaration { @@ -3671,23 +3682,18 @@ module ts { } function parsePropertyMemberDeclaration(fullStart: number, modifiers: ModifiersArray): ClassElement { - var flags = modifiers ? modifiers.flags : 0; var asteriskToken = parseOptionalToken(SyntaxKind.AsteriskToken); var name = parsePropertyName(); - if (parseOptional(SyntaxKind.QuestionToken)) { - // Note: this is not legal as per the grammar. But we allow it in the parser and - // report an error in the grammar checker. - flags |= NodeFlags.QuestionMark; - } + // Note: this is not legal as per the grammar. But we allow it in the parser and + // report an error in the grammar checker. + var questionToken = token === SyntaxKind.QuestionToken ? parseTokenNode() : undefined; if (asteriskToken || token === SyntaxKind.OpenParenToken || token === SyntaxKind.LessThanToken) { var method = createNode(SyntaxKind.Method, fullStart); setModifiers(method, modifiers); - if (flags) { - method.flags = flags; - } method.asteriskToken = asteriskToken; method.name = name; + method.questionToken = questionToken; fillSignature(SyntaxKind.CallSignature, SyntaxKind.ColonToken, /* returnTokenRequired */ false, /*yieldAndGeneratorParameterContext:*/ !!asteriskToken, method); method.body = parseFunctionBlockOrSemicolon(!!asteriskToken); return finishNode(method); @@ -3695,10 +3701,8 @@ module ts { else { var property = createNode(SyntaxKind.Property, fullStart); setModifiers(property, modifiers); - if (flags) { - property.flags = flags; - } property.name = name; + property.questionToken = questionToken; property.type = parseTypeAnnotation(); property.initializer = allowInAnd(() => parseInitializer(/*inParameter*/ false)); parseSemicolon(); @@ -4820,13 +4824,13 @@ module ts { } } else if (parameter.dotDotDotToken) { - return grammarErrorOnNode(parameter.name, Diagnostics.An_index_signature_cannot_have_a_rest_parameter); + return grammarErrorOnNode(parameter.dotDotDotToken, Diagnostics.An_index_signature_cannot_have_a_rest_parameter); } else if (parameter.flags & NodeFlags.Modifier) { return grammarErrorOnNode(parameter.name, Diagnostics.An_index_signature_parameter_cannot_have_an_accessibility_modifier); } - else if (parameter.flags & NodeFlags.QuestionMark) { - return grammarErrorOnNode(parameter.name, Diagnostics.An_index_signature_parameter_cannot_have_a_question_mark); + else if (parameter.questionToken) { + return grammarErrorOnNode(parameter.questionToken, Diagnostics.An_index_signature_parameter_cannot_have_a_question_mark); } else if (parameter.initializer) { return grammarErrorOnNode(parameter.name, Diagnostics.An_index_signature_parameter_cannot_have_an_initializer); @@ -4878,7 +4882,7 @@ module ts { return true; } if (node.parent.kind === SyntaxKind.ClassDeclaration) { - if (checkForInvalidQuestionMark(node, Diagnostics.A_class_member_cannot_be_declared_optional)) { + if (checkForInvalidQuestionMark(node, node.questionToken, Diagnostics.A_class_member_cannot_be_declared_optional)) { return true; } // Technically, computed properties in ambient contexts is disallowed @@ -5178,21 +5182,21 @@ module ts { var parameter = parameters[i]; if (parameter.dotDotDotToken) { if (i !== (parameterCount - 1)) { - return grammarErrorOnNode(parameter.name, Diagnostics.A_rest_parameter_must_be_last_in_a_parameter_list); + return grammarErrorOnNode(parameter.dotDotDotToken, Diagnostics.A_rest_parameter_must_be_last_in_a_parameter_list); } - if (parameter.flags & NodeFlags.QuestionMark) { - return grammarErrorOnNode(parameter.name, Diagnostics.A_rest_parameter_cannot_be_optional); + if (parameter.questionToken) { + return grammarErrorOnNode(parameter.questionToken, Diagnostics.A_rest_parameter_cannot_be_optional); } if (parameter.initializer) { return grammarErrorOnNode(parameter.name, Diagnostics.A_rest_parameter_cannot_have_an_initializer); } } - else if (parameter.flags & NodeFlags.QuestionMark || parameter.initializer) { + else if (parameter.questionToken || parameter.initializer) { seenOptionalParameter = true; - if (parameter.flags & NodeFlags.QuestionMark && parameter.initializer) { + if (parameter.questionToken && parameter.initializer) { return grammarErrorOnNode(parameter.name, Diagnostics.Parameter_cannot_have_question_mark_and_initializer); } } @@ -5226,7 +5230,7 @@ module ts { function checkProperty(node: PropertyDeclaration) { if (node.parent.kind === SyntaxKind.ClassDeclaration) { - if (checkForInvalidQuestionMark(node, Diagnostics.A_class_member_cannot_be_declared_optional) || + if (checkForInvalidQuestionMark(node, node.questionToken, Diagnostics.A_class_member_cannot_be_declared_optional) || checkForDisallowedComputedProperty(node.name, Diagnostics.Computed_property_names_are_not_allowed_in_class_property_declarations)) { return true; } @@ -5267,13 +5271,12 @@ module ts { } function checkPropertyAssignment(node: PropertyDeclaration) { - return checkForInvalidQuestionMark(node, Diagnostics.An_object_member_cannot_be_declared_optional); + return checkForInvalidQuestionMark(node, node.questionToken, Diagnostics.An_object_member_cannot_be_declared_optional); } - function checkForInvalidQuestionMark(node: Declaration, message: DiagnosticMessage) { - if (node.flags & NodeFlags.QuestionMark) { - var pos = skipTrivia(sourceText, node.name.end); - return grammarErrorAtPos(pos, "?".length, message); + function checkForInvalidQuestionMark(node: Declaration, questionToken: Node, message: DiagnosticMessage) { + if (questionToken) { + return grammarErrorOnNode(questionToken, message); } } @@ -5315,13 +5318,13 @@ module ts { else { var parameter = accessor.parameters[0]; if (parameter.dotDotDotToken) { - return grammarErrorOnNode(accessor.name, Diagnostics.A_set_accessor_cannot_have_rest_parameter); + return grammarErrorOnNode(parameter.dotDotDotToken, Diagnostics.A_set_accessor_cannot_have_rest_parameter); } else if (parameter.flags & NodeFlags.Modifier) { return grammarErrorOnNode(accessor.name, Diagnostics.A_parameter_property_is_only_allowed_in_a_constructor_implementation); } - else if (parameter.flags & NodeFlags.QuestionMark) { - return grammarErrorOnNode(accessor.name, Diagnostics.A_set_accessor_cannot_have_an_optional_parameter); + else if (parameter.questionToken) { + return grammarErrorOnNode(parameter.questionToken, Diagnostics.A_set_accessor_cannot_have_an_optional_parameter); } else if (parameter.initializer) { return grammarErrorOnNode(accessor.name, Diagnostics.A_set_accessor_parameter_cannot_have_an_initializer); @@ -5368,7 +5371,7 @@ module ts { } function checkShorthandPropertyAssignment(node: ShortHandPropertyDeclaration): boolean { - return checkForInvalidQuestionMark(node, Diagnostics.An_object_member_cannot_be_declared_optional); + return checkForInvalidQuestionMark(node, node.questionToken, Diagnostics.An_object_member_cannot_be_declared_optional); } function checkSwitchStatement(node: SwitchStatement) { diff --git a/src/compiler/types.ts b/src/compiler/types.ts index 8436399f74f..c2810e01acb 100644 --- a/src/compiler/types.ts +++ b/src/compiler/types.ts @@ -272,7 +272,6 @@ module ts { export const enum NodeFlags { Export = 0x00000001, // Declarations Ambient = 0x00000002, // Declarations - QuestionMark = 0x00000004, // Parameter/Property/Method Public = 0x00000010, // Property/Method Private = 0x00000020, // Property/Method Protected = 0x00000040, // Property/Method @@ -370,11 +369,13 @@ module ts { export interface ParameterDeclaration extends Declaration { dotDotDotToken?: Node; name: Identifier; + questionToken?: Node; type?: TypeNode | StringLiteralExpression; initializer?: Expression; } export interface PropertyDeclaration extends Declaration, ClassElement { + questionToken?: Node; type?: TypeNode; initializer?: Expression; } @@ -384,6 +385,7 @@ module ts { export interface ShortHandPropertyDeclaration extends Declaration { name: Identifier; + questionToken?: Node; } /** @@ -398,6 +400,7 @@ module ts { _functionLikeDeclarationBrand: any; asteriskToken?: Node; + questionToken?: Node; body?: Block | Expression; } diff --git a/src/services/signatureHelp.ts b/src/services/signatureHelp.ts index f3604b3dfdd..93363b4676b 100644 --- a/src/services/signatureHelp.ts +++ b/src/services/signatureHelp.ts @@ -524,7 +524,7 @@ module ts.SignatureHelp { var displayParts = mapToDisplayParts(writer => typeInfoResolver.getSymbolDisplayBuilder().buildParameterDisplay(parameter, writer, invocation)); - var isOptional = !!(parameter.valueDeclaration.flags & NodeFlags.QuestionMark); + var isOptional = hasQuestionToken(parameter.valueDeclaration); return { name: parameter.name, diff --git a/tests/baselines/reference/accessorWithRestParam.errors.txt b/tests/baselines/reference/accessorWithRestParam.errors.txt index 6162d5a8238..c6f3ef70563 100644 --- a/tests/baselines/reference/accessorWithRestParam.errors.txt +++ b/tests/baselines/reference/accessorWithRestParam.errors.txt @@ -1,14 +1,14 @@ -tests/cases/compiler/accessorWithRestParam.ts(3,9): error TS1053: A 'set' accessor cannot have rest parameter. -tests/cases/compiler/accessorWithRestParam.ts(4,16): error TS1053: A 'set' accessor cannot have rest parameter. +tests/cases/compiler/accessorWithRestParam.ts(3,11): error TS1053: A 'set' accessor cannot have rest parameter. +tests/cases/compiler/accessorWithRestParam.ts(4,18): error TS1053: A 'set' accessor cannot have rest parameter. ==== tests/cases/compiler/accessorWithRestParam.ts (2 errors) ==== class C { set X(...v) { } - ~ + ~~~ !!! error TS1053: A 'set' accessor cannot have rest parameter. static set X(...v2) { } - ~ + ~~~ !!! error TS1053: A 'set' accessor cannot have rest parameter. } \ No newline at end of file diff --git a/tests/baselines/reference/fatarrowfunctionsOptionalArgsErrors1.errors.txt b/tests/baselines/reference/fatarrowfunctionsOptionalArgsErrors1.errors.txt index 309e731e54f..5934ab52ccf 100644 --- a/tests/baselines/reference/fatarrowfunctionsOptionalArgsErrors1.errors.txt +++ b/tests/baselines/reference/fatarrowfunctionsOptionalArgsErrors1.errors.txt @@ -1,5 +1,5 @@ tests/cases/compiler/fatarrowfunctionsOptionalArgsErrors1.ts(1,9): error TS1016: A required parameter cannot follow an optional parameter. -tests/cases/compiler/fatarrowfunctionsOptionalArgsErrors1.ts(2,5): error TS1047: A rest parameter cannot be optional. +tests/cases/compiler/fatarrowfunctionsOptionalArgsErrors1.ts(2,8): error TS1047: A rest parameter cannot be optional. tests/cases/compiler/fatarrowfunctionsOptionalArgsErrors1.ts(4,5): error TS1048: A rest parameter cannot have an initializer. tests/cases/compiler/fatarrowfunctionsOptionalArgsErrors1.ts(7,12): error TS1016: A required parameter cannot follow an optional parameter. @@ -9,7 +9,7 @@ tests/cases/compiler/fatarrowfunctionsOptionalArgsErrors1.ts(7,12): error TS1016 ~~~~ !!! error TS1016: A required parameter cannot follow an optional parameter. (...arg?) => 102; - ~~~ + ~ !!! error TS1047: A rest parameter cannot be optional. (...arg) => 103; (...arg:number [] = []) => 104; diff --git a/tests/baselines/reference/functionOverloadErrorsSyntax.errors.txt b/tests/baselines/reference/functionOverloadErrorsSyntax.errors.txt index 98e7f4cd714..7c83759d02d 100644 --- a/tests/baselines/reference/functionOverloadErrorsSyntax.errors.txt +++ b/tests/baselines/reference/functionOverloadErrorsSyntax.errors.txt @@ -1,6 +1,6 @@ tests/cases/conformance/functions/functionOverloadErrorsSyntax.ts(2,27): error TS1016: A required parameter cannot follow an optional parameter. tests/cases/conformance/functions/functionOverloadErrorsSyntax.ts(5,38): error TS1016: A required parameter cannot follow an optional parameter. -tests/cases/conformance/functions/functionOverloadErrorsSyntax.ts(9,28): error TS1014: A rest parameter must be last in a parameter list. +tests/cases/conformance/functions/functionOverloadErrorsSyntax.ts(9,25): error TS1014: A rest parameter must be last in a parameter list. ==== tests/cases/conformance/functions/functionOverloadErrorsSyntax.ts (3 errors) ==== @@ -17,7 +17,7 @@ tests/cases/conformance/functions/functionOverloadErrorsSyntax.ts(9,28): error T //Function overload signature with rest param followed by non-optional parameter function fn5(x: string, ...y: any[], z: string); - ~ + ~~~ !!! error TS1014: A rest parameter must be last in a parameter list. function fn5() { } \ No newline at end of file diff --git a/tests/baselines/reference/indexSignatureTypeCheck.errors.txt b/tests/baselines/reference/indexSignatureTypeCheck.errors.txt index 1cc69f6294b..8a020fde5c6 100644 --- a/tests/baselines/reference/indexSignatureTypeCheck.errors.txt +++ b/tests/baselines/reference/indexSignatureTypeCheck.errors.txt @@ -1,5 +1,5 @@ -tests/cases/compiler/indexSignatureTypeCheck.ts(14,6): error TS1019: An index signature parameter cannot have a question mark. -tests/cases/compiler/indexSignatureTypeCheck.ts(15,9): error TS1017: An index signature cannot have a rest parameter. +tests/cases/compiler/indexSignatureTypeCheck.ts(14,8): error TS1019: An index signature parameter cannot have a question mark. +tests/cases/compiler/indexSignatureTypeCheck.ts(15,6): error TS1017: An index signature cannot have a rest parameter. tests/cases/compiler/indexSignatureTypeCheck.ts(16,6): error TS1096: An index signature must have exactly one parameter. tests/cases/compiler/indexSignatureTypeCheck.ts(17,6): error TS1096: An index signature must have exactly one parameter. @@ -19,10 +19,10 @@ tests/cases/compiler/indexSignatureTypeCheck.ts(17,6): error TS1096: An index si interface indexErrors { [p2?: string]; - ~~ + ~ !!! error TS1019: An index signature parameter cannot have a question mark. [...p3: any[]]; - ~~ + ~~~ !!! error TS1017: An index signature cannot have a rest parameter. [p4: string, p5?: string]; ~~ diff --git a/tests/baselines/reference/indexSignatureTypeCheck2.errors.txt b/tests/baselines/reference/indexSignatureTypeCheck2.errors.txt index 25e3ab94280..0fd594268c5 100644 --- a/tests/baselines/reference/indexSignatureTypeCheck2.errors.txt +++ b/tests/baselines/reference/indexSignatureTypeCheck2.errors.txt @@ -1,5 +1,5 @@ -tests/cases/compiler/indexSignatureTypeCheck2.ts(10,6): error TS1019: An index signature parameter cannot have a question mark. -tests/cases/compiler/indexSignatureTypeCheck2.ts(11,9): error TS1017: An index signature cannot have a rest parameter. +tests/cases/compiler/indexSignatureTypeCheck2.ts(10,8): error TS1019: An index signature parameter cannot have a question mark. +tests/cases/compiler/indexSignatureTypeCheck2.ts(11,6): error TS1017: An index signature cannot have a rest parameter. tests/cases/compiler/indexSignatureTypeCheck2.ts(12,6): error TS1096: An index signature must have exactly one parameter. tests/cases/compiler/indexSignatureTypeCheck2.ts(13,6): error TS1096: An index signature must have exactly one parameter. @@ -15,10 +15,10 @@ tests/cases/compiler/indexSignatureTypeCheck2.ts(13,6): error TS1096: An index s interface indexErrors { [p2?: string]; - ~~ + ~ !!! error TS1019: An index signature parameter cannot have a question mark. [...p3: any[]]; - ~~ + ~~~ !!! error TS1017: An index signature cannot have a rest parameter. [p4: string, p5?: string]; ~~ diff --git a/tests/baselines/reference/indexerAsOptional.errors.txt b/tests/baselines/reference/indexerAsOptional.errors.txt index 101c03acccd..cfd2d08cef9 100644 --- a/tests/baselines/reference/indexerAsOptional.errors.txt +++ b/tests/baselines/reference/indexerAsOptional.errors.txt @@ -1,18 +1,18 @@ -tests/cases/compiler/indexerAsOptional.ts(3,6): error TS1019: An index signature parameter cannot have a question mark. -tests/cases/compiler/indexerAsOptional.ts(8,6): error TS1019: An index signature parameter cannot have a question mark. +tests/cases/compiler/indexerAsOptional.ts(3,9): error TS1019: An index signature parameter cannot have a question mark. +tests/cases/compiler/indexerAsOptional.ts(8,9): error TS1019: An index signature parameter cannot have a question mark. ==== tests/cases/compiler/indexerAsOptional.ts (2 errors) ==== interface indexSig { //Index signatures can't be optional [idx?: number]: any; //err - ~~~ + ~ !!! error TS1019: An index signature parameter cannot have a question mark. } class indexSig2 { //Index signatures can't be optional [idx?: number]: any //err - ~~~ + ~ !!! error TS1019: An index signature parameter cannot have a question mark. } \ No newline at end of file diff --git a/tests/baselines/reference/indexerSignatureWithRestParam.errors.txt b/tests/baselines/reference/indexerSignatureWithRestParam.errors.txt index 4743ed8e91c..08c65816416 100644 --- a/tests/baselines/reference/indexerSignatureWithRestParam.errors.txt +++ b/tests/baselines/reference/indexerSignatureWithRestParam.errors.txt @@ -1,16 +1,16 @@ -tests/cases/compiler/indexerSignatureWithRestParam.ts(2,9): error TS1017: An index signature cannot have a rest parameter. -tests/cases/compiler/indexerSignatureWithRestParam.ts(6,9): error TS1017: An index signature cannot have a rest parameter. +tests/cases/compiler/indexerSignatureWithRestParam.ts(2,6): error TS1017: An index signature cannot have a rest parameter. +tests/cases/compiler/indexerSignatureWithRestParam.ts(6,6): error TS1017: An index signature cannot have a rest parameter. ==== tests/cases/compiler/indexerSignatureWithRestParam.ts (2 errors) ==== interface I { [...x]: string; - ~ + ~~~ !!! error TS1017: An index signature cannot have a rest parameter. } class C { [...x]: string - ~ + ~~~ !!! error TS1017: An index signature cannot have a rest parameter. } \ No newline at end of file diff --git a/tests/baselines/reference/parserIndexSignature1.errors.txt b/tests/baselines/reference/parserIndexSignature1.errors.txt index 74f5d0e0921..cde7259c7bd 100644 --- a/tests/baselines/reference/parserIndexSignature1.errors.txt +++ b/tests/baselines/reference/parserIndexSignature1.errors.txt @@ -1,9 +1,9 @@ -tests/cases/conformance/parser/ecmascript5/IndexSignatures/parserIndexSignature1.ts(2,7): error TS1017: An index signature cannot have a rest parameter. +tests/cases/conformance/parser/ecmascript5/IndexSignatures/parserIndexSignature1.ts(2,4): error TS1017: An index signature cannot have a rest parameter. ==== tests/cases/conformance/parser/ecmascript5/IndexSignatures/parserIndexSignature1.ts (1 errors) ==== interface I { [...a] - ~ + ~~~ !!! error TS1017: An index signature cannot have a rest parameter. } \ No newline at end of file diff --git a/tests/baselines/reference/parserIndexSignature3.errors.txt b/tests/baselines/reference/parserIndexSignature3.errors.txt index bc552fd6a1d..27310e4d0a4 100644 --- a/tests/baselines/reference/parserIndexSignature3.errors.txt +++ b/tests/baselines/reference/parserIndexSignature3.errors.txt @@ -1,9 +1,9 @@ -tests/cases/conformance/parser/ecmascript5/IndexSignatures/parserIndexSignature3.ts(2,4): error TS1019: An index signature parameter cannot have a question mark. +tests/cases/conformance/parser/ecmascript5/IndexSignatures/parserIndexSignature3.ts(2,5): error TS1019: An index signature parameter cannot have a question mark. ==== tests/cases/conformance/parser/ecmascript5/IndexSignatures/parserIndexSignature3.ts (1 errors) ==== interface I { [a?] - ~ + ~ !!! error TS1019: An index signature parameter cannot have a question mark. } \ No newline at end of file diff --git a/tests/baselines/reference/parserMemberAccessorDeclaration17.errors.txt b/tests/baselines/reference/parserMemberAccessorDeclaration17.errors.txt index 6edb9b98b7b..2d7f6e3be30 100644 --- a/tests/baselines/reference/parserMemberAccessorDeclaration17.errors.txt +++ b/tests/baselines/reference/parserMemberAccessorDeclaration17.errors.txt @@ -1,9 +1,9 @@ -tests/cases/conformance/parser/ecmascript5/MemberAccessorDeclarations/parserMemberAccessorDeclaration17.ts(2,8): error TS1051: A 'set' accessor cannot have an optional parameter. +tests/cases/conformance/parser/ecmascript5/MemberAccessorDeclarations/parserMemberAccessorDeclaration17.ts(2,13): error TS1051: A 'set' accessor cannot have an optional parameter. ==== tests/cases/conformance/parser/ecmascript5/MemberAccessorDeclarations/parserMemberAccessorDeclaration17.ts (1 errors) ==== class C { set Foo(a?: number) { } - ~~~ + ~ !!! error TS1051: A 'set' accessor cannot have an optional parameter. } \ No newline at end of file diff --git a/tests/baselines/reference/parserMemberAccessorDeclaration18.errors.txt b/tests/baselines/reference/parserMemberAccessorDeclaration18.errors.txt index 54d39a6d663..8296a087bab 100644 --- a/tests/baselines/reference/parserMemberAccessorDeclaration18.errors.txt +++ b/tests/baselines/reference/parserMemberAccessorDeclaration18.errors.txt @@ -1,9 +1,9 @@ -tests/cases/conformance/parser/ecmascript5/MemberAccessorDeclarations/parserMemberAccessorDeclaration18.ts(2,8): error TS1053: A 'set' accessor cannot have rest parameter. +tests/cases/conformance/parser/ecmascript5/MemberAccessorDeclarations/parserMemberAccessorDeclaration18.ts(2,12): error TS1053: A 'set' accessor cannot have rest parameter. ==== tests/cases/conformance/parser/ecmascript5/MemberAccessorDeclarations/parserMemberAccessorDeclaration18.ts (1 errors) ==== class C { set Foo(...a) { } - ~~~ + ~~~ !!! error TS1053: A 'set' accessor cannot have rest parameter. } \ No newline at end of file diff --git a/tests/baselines/reference/parserParameterList1.errors.txt b/tests/baselines/reference/parserParameterList1.errors.txt index 3b01ee02168..a7e9a533f63 100644 --- a/tests/baselines/reference/parserParameterList1.errors.txt +++ b/tests/baselines/reference/parserParameterList1.errors.txt @@ -1,9 +1,9 @@ -tests/cases/conformance/parser/ecmascript5/ParameterLists/parserParameterList1.ts(2,9): error TS1014: A rest parameter must be last in a parameter list. +tests/cases/conformance/parser/ecmascript5/ParameterLists/parserParameterList1.ts(2,6): error TS1014: A rest parameter must be last in a parameter list. ==== tests/cases/conformance/parser/ecmascript5/ParameterLists/parserParameterList1.ts (1 errors) ==== class C { F(...A, B) { } - ~ + ~~~ !!! error TS1014: A rest parameter must be last in a parameter list. } \ No newline at end of file diff --git a/tests/baselines/reference/parserParameterList11.errors.txt b/tests/baselines/reference/parserParameterList11.errors.txt index 1fcede6c398..2cb8def201d 100644 --- a/tests/baselines/reference/parserParameterList11.errors.txt +++ b/tests/baselines/reference/parserParameterList11.errors.txt @@ -1,7 +1,7 @@ -tests/cases/conformance/parser/ecmascript5/ParameterLists/parserParameterList11.ts(1,5): error TS1047: A rest parameter cannot be optional. +tests/cases/conformance/parser/ecmascript5/ParameterLists/parserParameterList11.ts(1,8): error TS1047: A rest parameter cannot be optional. ==== tests/cases/conformance/parser/ecmascript5/ParameterLists/parserParameterList11.ts (1 errors) ==== (...arg?) => 102; - ~~~ + ~ !!! error TS1047: A rest parameter cannot be optional. \ No newline at end of file diff --git a/tests/baselines/reference/parserParameterList9.errors.txt b/tests/baselines/reference/parserParameterList9.errors.txt index 2db96373cd0..5f670148faa 100644 --- a/tests/baselines/reference/parserParameterList9.errors.txt +++ b/tests/baselines/reference/parserParameterList9.errors.txt @@ -1,9 +1,9 @@ -tests/cases/conformance/parser/ecmascript5/ParameterLists/parserParameterList9.ts(2,11): error TS1047: A rest parameter cannot be optional. +tests/cases/conformance/parser/ecmascript5/ParameterLists/parserParameterList9.ts(2,14): error TS1047: A rest parameter cannot be optional. ==== tests/cases/conformance/parser/ecmascript5/ParameterLists/parserParameterList9.ts (1 errors) ==== class C { foo(...bar?) { } - ~~~ + ~ !!! error TS1047: A rest parameter cannot be optional. } \ No newline at end of file diff --git a/tests/baselines/reference/restParamAsOptional.errors.txt b/tests/baselines/reference/restParamAsOptional.errors.txt index ac061e5d98e..9ab684f0944 100644 --- a/tests/baselines/reference/restParamAsOptional.errors.txt +++ b/tests/baselines/reference/restParamAsOptional.errors.txt @@ -1,10 +1,10 @@ -tests/cases/compiler/restParamAsOptional.ts(1,15): error TS1047: A rest parameter cannot be optional. +tests/cases/compiler/restParamAsOptional.ts(1,16): error TS1047: A rest parameter cannot be optional. tests/cases/compiler/restParamAsOptional.ts(2,16): error TS1048: A rest parameter cannot have an initializer. ==== tests/cases/compiler/restParamAsOptional.ts (2 errors) ==== function f(...x?) { } - ~ + ~ !!! error TS1047: A rest parameter cannot be optional. function f2(...x = []) { } ~ diff --git a/tests/baselines/reference/restParameterNotLast.errors.txt b/tests/baselines/reference/restParameterNotLast.errors.txt index a5b91d05795..0d69ef154ba 100644 --- a/tests/baselines/reference/restParameterNotLast.errors.txt +++ b/tests/baselines/reference/restParameterNotLast.errors.txt @@ -1,7 +1,7 @@ -tests/cases/compiler/restParameterNotLast.ts(1,15): error TS1014: A rest parameter must be last in a parameter list. +tests/cases/compiler/restParameterNotLast.ts(1,12): error TS1014: A rest parameter must be last in a parameter list. ==== tests/cases/compiler/restParameterNotLast.ts (1 errors) ==== function f(...x, y) { } - ~ + ~~~ !!! error TS1014: A rest parameter must be last in a parameter list. \ No newline at end of file diff --git a/tests/baselines/reference/restParameterWithoutAnnotationIsAnyArray.errors.txt b/tests/baselines/reference/restParameterWithoutAnnotationIsAnyArray.errors.txt index e021204341e..0177f1e9a1c 100644 --- a/tests/baselines/reference/restParameterWithoutAnnotationIsAnyArray.errors.txt +++ b/tests/baselines/reference/restParameterWithoutAnnotationIsAnyArray.errors.txt @@ -1,6 +1,6 @@ -tests/cases/conformance/types/objectTypeLiteral/callSignatures/restParameterWithoutAnnotationIsAnyArray.ts(5,14): error TS1014: A rest parameter must be last in a parameter list. -tests/cases/conformance/types/objectTypeLiteral/callSignatures/restParameterWithoutAnnotationIsAnyArray.ts(13,12): error TS1014: A rest parameter must be last in a parameter list. -tests/cases/conformance/types/objectTypeLiteral/callSignatures/restParameterWithoutAnnotationIsAnyArray.ts(23,24): error TS1014: A rest parameter must be last in a parameter list. +tests/cases/conformance/types/objectTypeLiteral/callSignatures/restParameterWithoutAnnotationIsAnyArray.ts(5,11): error TS1014: A rest parameter must be last in a parameter list. +tests/cases/conformance/types/objectTypeLiteral/callSignatures/restParameterWithoutAnnotationIsAnyArray.ts(13,9): error TS1014: A rest parameter must be last in a parameter list. +tests/cases/conformance/types/objectTypeLiteral/callSignatures/restParameterWithoutAnnotationIsAnyArray.ts(23,21): error TS1014: A rest parameter must be last in a parameter list. ==== tests/cases/conformance/types/objectTypeLiteral/callSignatures/restParameterWithoutAnnotationIsAnyArray.ts (3 errors) ==== @@ -9,7 +9,7 @@ tests/cases/conformance/types/objectTypeLiteral/callSignatures/restParameterWith function foo(...x) { } var f = function foo(...x) { } var f2 = (...x, ...y) => { } - ~ + ~~~ !!! error TS1014: A rest parameter must be last in a parameter list. class C { @@ -19,7 +19,7 @@ tests/cases/conformance/types/objectTypeLiteral/callSignatures/restParameterWith interface I { (...x); foo(...x, ...y); - ~ + ~~~ !!! error TS1014: A rest parameter must be last in a parameter list. } @@ -31,7 +31,7 @@ tests/cases/conformance/types/objectTypeLiteral/callSignatures/restParameterWith var b = { foo(...x) { }, a: function foo(...x, ...y) { }, - ~ + ~~~ !!! error TS1014: A rest parameter must be last in a parameter list. b: (...x) => { } } diff --git a/tests/baselines/reference/restParametersOfNonArrayTypes.errors.txt b/tests/baselines/reference/restParametersOfNonArrayTypes.errors.txt index 2c7db9973d9..12cbd865d1c 100644 --- a/tests/baselines/reference/restParametersOfNonArrayTypes.errors.txt +++ b/tests/baselines/reference/restParametersOfNonArrayTypes.errors.txt @@ -1,6 +1,6 @@ -tests/cases/conformance/types/objectTypeLiteral/callSignatures/restParametersOfNonArrayTypes.ts(5,14): error TS1014: A rest parameter must be last in a parameter list. -tests/cases/conformance/types/objectTypeLiteral/callSignatures/restParametersOfNonArrayTypes.ts(13,12): error TS1014: A rest parameter must be last in a parameter list. -tests/cases/conformance/types/objectTypeLiteral/callSignatures/restParametersOfNonArrayTypes.ts(23,24): error TS1014: A rest parameter must be last in a parameter list. +tests/cases/conformance/types/objectTypeLiteral/callSignatures/restParametersOfNonArrayTypes.ts(5,11): error TS1014: A rest parameter must be last in a parameter list. +tests/cases/conformance/types/objectTypeLiteral/callSignatures/restParametersOfNonArrayTypes.ts(13,9): error TS1014: A rest parameter must be last in a parameter list. +tests/cases/conformance/types/objectTypeLiteral/callSignatures/restParametersOfNonArrayTypes.ts(23,21): error TS1014: A rest parameter must be last in a parameter list. tests/cases/conformance/types/objectTypeLiteral/callSignatures/restParametersOfNonArrayTypes.ts(3,14): error TS2370: A rest parameter must be of an array type. tests/cases/conformance/types/objectTypeLiteral/callSignatures/restParametersOfNonArrayTypes.ts(4,22): error TS2370: A rest parameter must be of an array type. tests/cases/conformance/types/objectTypeLiteral/callSignatures/restParametersOfNonArrayTypes.ts(5,11): error TS2370: A rest parameter must be of an array type. @@ -27,7 +27,7 @@ tests/cases/conformance/types/objectTypeLiteral/callSignatures/restParametersOfN ~~~~~~~~~~~~ !!! error TS2370: A rest parameter must be of an array type. var f2 = (...x: Date, ...y: boolean) => { } - ~ + ~~~ !!! error TS1014: A rest parameter must be last in a parameter list. ~~~~~~~~~~ !!! error TS2370: A rest parameter must be of an array type. @@ -45,7 +45,7 @@ tests/cases/conformance/types/objectTypeLiteral/callSignatures/restParametersOfN ~~~~~~~~~~~~ !!! error TS2370: A rest parameter must be of an array type. foo(...x: number, ...y: number); - ~ + ~~~ !!! error TS1014: A rest parameter must be last in a parameter list. ~~~~~~~~~~~~ !!! error TS2370: A rest parameter must be of an array type. @@ -67,7 +67,7 @@ tests/cases/conformance/types/objectTypeLiteral/callSignatures/restParametersOfN ~~~~~~~~~~~~ !!! error TS2370: A rest parameter must be of an array type. a: function foo(...x: number, ...y: Date) { }, - ~ + ~~~ !!! error TS1014: A rest parameter must be last in a parameter list. ~~~~~~~~~~~~ !!! error TS2370: A rest parameter must be of an array type. diff --git a/tests/baselines/reference/restParametersOfNonArrayTypes2.errors.txt b/tests/baselines/reference/restParametersOfNonArrayTypes2.errors.txt index 592993076fd..eef052e5cdf 100644 --- a/tests/baselines/reference/restParametersOfNonArrayTypes2.errors.txt +++ b/tests/baselines/reference/restParametersOfNonArrayTypes2.errors.txt @@ -1,9 +1,9 @@ -tests/cases/conformance/types/objectTypeLiteral/callSignatures/restParametersOfNonArrayTypes2.ts(9,14): error TS1014: A rest parameter must be last in a parameter list. -tests/cases/conformance/types/objectTypeLiteral/callSignatures/restParametersOfNonArrayTypes2.ts(17,12): error TS1014: A rest parameter must be last in a parameter list. -tests/cases/conformance/types/objectTypeLiteral/callSignatures/restParametersOfNonArrayTypes2.ts(27,24): error TS1014: A rest parameter must be last in a parameter list. -tests/cases/conformance/types/objectTypeLiteral/callSignatures/restParametersOfNonArrayTypes2.ts(36,14): error TS1014: A rest parameter must be last in a parameter list. -tests/cases/conformance/types/objectTypeLiteral/callSignatures/restParametersOfNonArrayTypes2.ts(44,12): error TS1014: A rest parameter must be last in a parameter list. -tests/cases/conformance/types/objectTypeLiteral/callSignatures/restParametersOfNonArrayTypes2.ts(54,24): error TS1014: A rest parameter must be last in a parameter list. +tests/cases/conformance/types/objectTypeLiteral/callSignatures/restParametersOfNonArrayTypes2.ts(9,11): error TS1014: A rest parameter must be last in a parameter list. +tests/cases/conformance/types/objectTypeLiteral/callSignatures/restParametersOfNonArrayTypes2.ts(17,9): error TS1014: A rest parameter must be last in a parameter list. +tests/cases/conformance/types/objectTypeLiteral/callSignatures/restParametersOfNonArrayTypes2.ts(27,21): error TS1014: A rest parameter must be last in a parameter list. +tests/cases/conformance/types/objectTypeLiteral/callSignatures/restParametersOfNonArrayTypes2.ts(36,11): error TS1014: A rest parameter must be last in a parameter list. +tests/cases/conformance/types/objectTypeLiteral/callSignatures/restParametersOfNonArrayTypes2.ts(44,9): error TS1014: A rest parameter must be last in a parameter list. +tests/cases/conformance/types/objectTypeLiteral/callSignatures/restParametersOfNonArrayTypes2.ts(54,21): error TS1014: A rest parameter must be last in a parameter list. tests/cases/conformance/types/objectTypeLiteral/callSignatures/restParametersOfNonArrayTypes2.ts(7,14): error TS2370: A rest parameter must be of an array type. tests/cases/conformance/types/objectTypeLiteral/callSignatures/restParametersOfNonArrayTypes2.ts(8,22): error TS2370: A rest parameter must be of an array type. tests/cases/conformance/types/objectTypeLiteral/callSignatures/restParametersOfNonArrayTypes2.ts(9,11): error TS2370: A rest parameter must be of an array type. @@ -48,7 +48,7 @@ tests/cases/conformance/types/objectTypeLiteral/callSignatures/restParametersOfN ~~~~~~~~~~~~~ !!! error TS2370: A rest parameter must be of an array type. var f2 = (...x: MyThing, ...y: MyThing) => { } - ~ + ~~~ !!! error TS1014: A rest parameter must be last in a parameter list. ~~~~~~~~~~~~~ !!! error TS2370: A rest parameter must be of an array type. @@ -66,7 +66,7 @@ tests/cases/conformance/types/objectTypeLiteral/callSignatures/restParametersOfN ~~~~~~~~~~~~~ !!! error TS2370: A rest parameter must be of an array type. foo(...x: MyThing, ...y: MyThing); - ~ + ~~~ !!! error TS1014: A rest parameter must be last in a parameter list. ~~~~~~~~~~~~~ !!! error TS2370: A rest parameter must be of an array type. @@ -88,7 +88,7 @@ tests/cases/conformance/types/objectTypeLiteral/callSignatures/restParametersOfN ~~~~~~~~~~~~~ !!! error TS2370: A rest parameter must be of an array type. a: function foo(...x: MyThing, ...y: MyThing) { }, - ~ + ~~~ !!! error TS1014: A rest parameter must be last in a parameter list. ~~~~~~~~~~~~~ !!! error TS2370: A rest parameter must be of an array type. @@ -109,7 +109,7 @@ tests/cases/conformance/types/objectTypeLiteral/callSignatures/restParametersOfN ~~~~~~~~~~~~~~~~~~~~~~ !!! error TS2370: A rest parameter must be of an array type. var f4 = (...x: MyThing2, ...y: MyThing2) => { } - ~ + ~~~ !!! error TS1014: A rest parameter must be last in a parameter list. ~~~~~~~~~~~~~~~~~~~~~~ !!! error TS2370: A rest parameter must be of an array type. @@ -127,7 +127,7 @@ tests/cases/conformance/types/objectTypeLiteral/callSignatures/restParametersOfN ~~~~~~~~~~~~~~~~~~~~~~ !!! error TS2370: A rest parameter must be of an array type. foo(...x: MyThing2, ...y: MyThing2); - ~ + ~~~ !!! error TS1014: A rest parameter must be last in a parameter list. ~~~~~~~~~~~~~~~~~~~~~~ !!! error TS2370: A rest parameter must be of an array type. @@ -149,7 +149,7 @@ tests/cases/conformance/types/objectTypeLiteral/callSignatures/restParametersOfN ~~~~~~~~~~~~~~~~~~~~~~ !!! error TS2370: A rest parameter must be of an array type. a: function foo(...x: MyThing2, ...y: MyThing2) { }, - ~ + ~~~ !!! error TS1014: A rest parameter must be last in a parameter list. ~~~~~~~~~~~~~~~~~~~~~~ !!! error TS2370: A rest parameter must be of an array type. diff --git a/tests/baselines/reference/restParametersWithArrayTypeAnnotations.errors.txt b/tests/baselines/reference/restParametersWithArrayTypeAnnotations.errors.txt index 65afe52efa1..06b2caefb9d 100644 --- a/tests/baselines/reference/restParametersWithArrayTypeAnnotations.errors.txt +++ b/tests/baselines/reference/restParametersWithArrayTypeAnnotations.errors.txt @@ -1,9 +1,9 @@ -tests/cases/conformance/types/objectTypeLiteral/callSignatures/restParametersWithArrayTypeAnnotations.ts(5,14): error TS1014: A rest parameter must be last in a parameter list. -tests/cases/conformance/types/objectTypeLiteral/callSignatures/restParametersWithArrayTypeAnnotations.ts(13,12): error TS1014: A rest parameter must be last in a parameter list. -tests/cases/conformance/types/objectTypeLiteral/callSignatures/restParametersWithArrayTypeAnnotations.ts(23,24): error TS1014: A rest parameter must be last in a parameter list. -tests/cases/conformance/types/objectTypeLiteral/callSignatures/restParametersWithArrayTypeAnnotations.ts(32,14): error TS1014: A rest parameter must be last in a parameter list. -tests/cases/conformance/types/objectTypeLiteral/callSignatures/restParametersWithArrayTypeAnnotations.ts(40,12): error TS1014: A rest parameter must be last in a parameter list. -tests/cases/conformance/types/objectTypeLiteral/callSignatures/restParametersWithArrayTypeAnnotations.ts(50,24): error TS1014: A rest parameter must be last in a parameter list. +tests/cases/conformance/types/objectTypeLiteral/callSignatures/restParametersWithArrayTypeAnnotations.ts(5,11): error TS1014: A rest parameter must be last in a parameter list. +tests/cases/conformance/types/objectTypeLiteral/callSignatures/restParametersWithArrayTypeAnnotations.ts(13,9): error TS1014: A rest parameter must be last in a parameter list. +tests/cases/conformance/types/objectTypeLiteral/callSignatures/restParametersWithArrayTypeAnnotations.ts(23,21): error TS1014: A rest parameter must be last in a parameter list. +tests/cases/conformance/types/objectTypeLiteral/callSignatures/restParametersWithArrayTypeAnnotations.ts(32,11): error TS1014: A rest parameter must be last in a parameter list. +tests/cases/conformance/types/objectTypeLiteral/callSignatures/restParametersWithArrayTypeAnnotations.ts(40,9): error TS1014: A rest parameter must be last in a parameter list. +tests/cases/conformance/types/objectTypeLiteral/callSignatures/restParametersWithArrayTypeAnnotations.ts(50,21): error TS1014: A rest parameter must be last in a parameter list. ==== tests/cases/conformance/types/objectTypeLiteral/callSignatures/restParametersWithArrayTypeAnnotations.ts (6 errors) ==== @@ -12,7 +12,7 @@ tests/cases/conformance/types/objectTypeLiteral/callSignatures/restParametersWit function foo(...x: number[]) { } var f = function foo(...x: number[]) { } var f2 = (...x: number[], ...y: number[]) => { } - ~ + ~~~ !!! error TS1014: A rest parameter must be last in a parameter list. class C { @@ -22,7 +22,7 @@ tests/cases/conformance/types/objectTypeLiteral/callSignatures/restParametersWit interface I { (...x: number[]); foo(...x: number[], ...y: number[]); - ~ + ~~~ !!! error TS1014: A rest parameter must be last in a parameter list. } @@ -34,7 +34,7 @@ tests/cases/conformance/types/objectTypeLiteral/callSignatures/restParametersWit var b = { foo(...x: number[]) { }, a: function foo(...x: number[], ...y: number[]) { }, - ~ + ~~~ !!! error TS1014: A rest parameter must be last in a parameter list. b: (...x: number[]) => { } } @@ -45,7 +45,7 @@ tests/cases/conformance/types/objectTypeLiteral/callSignatures/restParametersWit function foo2(...x: Array) { } var f3 = function foo(...x: Array) { } var f4 = (...x: Array, ...y: Array) => { } - ~ + ~~~ !!! error TS1014: A rest parameter must be last in a parameter list. class C2 { @@ -55,7 +55,7 @@ tests/cases/conformance/types/objectTypeLiteral/callSignatures/restParametersWit interface I2 { (...x: Array); foo(...x: Array, ...y: Array); - ~ + ~~~ !!! error TS1014: A rest parameter must be last in a parameter list. } @@ -67,7 +67,7 @@ tests/cases/conformance/types/objectTypeLiteral/callSignatures/restParametersWit var b2 = { foo(...x: Array) { }, a: function foo(...x: Array, ...y: Array) { }, - ~ + ~~~ !!! error TS1014: A rest parameter must be last in a parameter list. b: (...x: Array) => { } } \ No newline at end of file From 2459632a6234d871ae0d34519a7345d5d95254cb Mon Sep 17 00:00:00 2001 From: Cyrus Najmabadi Date: Mon, 1 Dec 2014 22:20:03 -0800 Subject: [PATCH 184/195] Simplifying the signature parsing code. --- src/compiler/parser.ts | 64 ++++++++++++++++++++++-------------------- 1 file changed, 34 insertions(+), 30 deletions(-) diff --git a/src/compiler/parser.ts b/src/compiler/parser.ts index 97b973eb8d0..5809eb8d771 100644 --- a/src/compiler/parser.ts +++ b/src/compiler/parser.ts @@ -1894,22 +1894,17 @@ module ts { return parseInitializer(/*inParameter*/ true); } - function parseSignature(kind: SyntaxKind, returnToken: SyntaxKind, returnTokenRequired: boolean, yieldAndGeneratorParameterContext: boolean): ParsedSignature { + function parseSignature(yieldAndGeneratorParameterContext: boolean): ParsedSignature { var signature = {}; - fillSignature(kind, returnToken, returnTokenRequired, yieldAndGeneratorParameterContext, signature); + fillSignature(SyntaxKind.ColonToken, yieldAndGeneratorParameterContext, signature); return signature; } function fillSignature( - kind: SyntaxKind, returnToken: SyntaxKind, - returnTokenRequired: boolean, yieldAndGeneratorParameterContext: boolean, signature: ParsedSignature): void { - - if (kind === SyntaxKind.ConstructSignature) { - parseExpected(SyntaxKind.NewKeyword); - } + var returnTokenRequired = returnToken === SyntaxKind.EqualsGreaterThanToken; signature.typeParameters = parseTypeParameters(); signature.parameters = parseParameterList(yieldAndGeneratorParameterContext); @@ -1960,9 +1955,12 @@ module ts { return createMissingList(); } - function parseSignatureMember(kind: SyntaxKind, returnToken: SyntaxKind): SignatureDeclaration { + function parseSignatureMember(kind: SyntaxKind): SignatureDeclaration { var node = createNode(kind); - fillSignature(kind, returnToken, /* returnTokenRequired */ false, /*yieldAndGeneratorParameterContext:*/ false, node); + if (kind === SyntaxKind.ConstructSignature) { + parseExpected(SyntaxKind.NewKeyword); + } + fillSignature(SyntaxKind.ColonToken, /*yieldAndGeneratorParameterContext:*/ false, node); parseSemicolon(); return finishNode(node); } @@ -2047,7 +2045,7 @@ module ts { // Method signatues don't exist in expression contexts. So they have neither // [Yield] nor [GeneratorParameter] - fillSignature(SyntaxKind.CallSignature, SyntaxKind.ColonToken, /* returnTokenRequired */ false, /*yieldAndGeneratorParameterContext:*/ false, method); + fillSignature(SyntaxKind.ColonToken, /*yieldAndGeneratorParameterContext:*/ false, method); parseSemicolon(); return finishNode(method); @@ -2069,8 +2067,12 @@ module ts { case SyntaxKind.OpenBracketToken: // Both for indexers and computed properties return true; default: - return isLiteralPropertyName() && lookAhead(() => nextToken() === SyntaxKind.OpenParenToken || token === SyntaxKind.LessThanToken || token === SyntaxKind.QuestionToken || - token === SyntaxKind.ColonToken || canParseSemicolon()); + return isLiteralPropertyName() && lookAhead(() => + nextToken() === SyntaxKind.OpenParenToken || + token === SyntaxKind.LessThanToken || + token === SyntaxKind.QuestionToken || + token === SyntaxKind.ColonToken || + canParseSemicolon()); } } @@ -2078,13 +2080,13 @@ module ts { switch (token) { case SyntaxKind.OpenParenToken: case SyntaxKind.LessThanToken: - return parseSignatureMember(SyntaxKind.CallSignature, SyntaxKind.ColonToken); + return parseSignatureMember(SyntaxKind.CallSignature); case SyntaxKind.OpenBracketToken: // Indexer or computed property return isIndexSignature() ? parseIndexSignatureDeclaration(scanner.getStartPos(), /*modifiers:*/ undefined) : parsePropertyOrMethod(); case SyntaxKind.NewKeyword: if (lookAhead(() => nextToken() === SyntaxKind.OpenParenToken || token === SyntaxKind.LessThanToken)) { - return parseSignatureMember(SyntaxKind.ConstructSignature, SyntaxKind.ColonToken); + return parseSignatureMember(SyntaxKind.ConstructSignature); } case SyntaxKind.StringLiteral: case SyntaxKind.NumericLiteral: @@ -2098,11 +2100,11 @@ module ts { function parseTypeLiteral(): TypeLiteralNode { var node = createNode(SyntaxKind.TypeLiteral); - node.members = parseObjectType(); + node.members = parseObjectTypeMembers(); return finishNode(node); } - function parseObjectType(): NodeArray { + function parseObjectTypeMembers(): NodeArray { var members: NodeArray; if (parseExpected(SyntaxKind.OpenBraceToken)) { members = parseList(ParsingContext.TypeMembers, /*checkForStrictMode*/ false, parseTypeMember); @@ -2129,10 +2131,12 @@ module ts { return finishNode(node); } - function parseFunctionType(typeKind: SyntaxKind): FunctionOrConstructorTypeNode { - var node = createNode(typeKind); - fillSignature(typeKind === SyntaxKind.FunctionType ? SyntaxKind.CallSignature : SyntaxKind.ConstructSignature, - SyntaxKind.EqualsGreaterThanToken, /* returnTokenRequired */ true, /*yieldAndGeneratorParameterContext:*/ false, node); + function parseFunctionType(kind: SyntaxKind): FunctionOrConstructorTypeNode { + var node = createNode(kind); + if (kind === SyntaxKind.ConstructorType) { + parseExpected(SyntaxKind.NewKeyword); + } + fillSignature(SyntaxKind.EqualsGreaterThanToken, /*yieldAndGeneratorParameterContext:*/ false, node); return finishNode(node); } @@ -2510,7 +2514,7 @@ module ts { if (triState === Tristate.True) { // Arrow function are never generators. - var sig = parseSignature(SyntaxKind.CallSignature, SyntaxKind.ColonToken, /*returnTokenRequired:*/ false, /*yieldAndGeneratorParameterContext:*/ false); + var sig = parseSignature(/*yieldAndGeneratorParameterContext:*/ false); // If we have an arrow, then try to parse the body. // Even if not, try to parse if we have an opening brace, just in case we're in an error state. @@ -2614,7 +2618,7 @@ module ts { function tryParseSignatureIfArrowOrBraceFollows(): ParsedSignature { return tryParse(() => { // Arrow functions are never generators. - var sig = parseSignature(SyntaxKind.CallSignature, SyntaxKind.ColonToken, /* returnTokenRequired */ false, /*yieldAndGeneratorParameterContext:*/ false); + var sig = parseSignature(/*yieldAndGeneratorParameterContext:*/ false); // Parsing a signature isn't enough. // Parenthesized arrow signatures often look like other valid expressions. @@ -3128,7 +3132,7 @@ module ts { if (asteriskToken || token === SyntaxKind.OpenParenToken || token === SyntaxKind.LessThanToken) { node = createNode(SyntaxKind.PropertyAssignment, nodePos); node.name = propertyName; - var sig = parseSignature(SyntaxKind.CallSignature, SyntaxKind.ColonToken, /* returnTokenRequired */ false, /*yieldAndGeneratorParameterContext:*/ !!asteriskToken); + var sig = parseSignature(/*yieldAndGeneratorParameterContext:*/ !!asteriskToken); var body = parseFunctionBlock(!!asteriskToken, /* ignoreMissingOpenBrace */ false); // do not propagate property name as name for function expression @@ -3192,7 +3196,7 @@ module ts { parseExpected(SyntaxKind.FunctionKeyword); var asteriskToken = parseOptionalToken(SyntaxKind.AsteriskToken); var name = asteriskToken ? doInYieldContext(parseOptionalIdentifier) : parseOptionalIdentifier(); - var sig = parseSignature(SyntaxKind.CallSignature, SyntaxKind.ColonToken, /* returnTokenRequired */ false, /*yieldAndGeneratorParameterContext:*/ !!asteriskToken); + var sig = parseSignature(/*yieldAndGeneratorParameterContext:*/ !!asteriskToken); var body = parseFunctionBlock(/*allowYield:*/ !!asteriskToken, /* ignoreMissingOpenBrace */ false); return makeFunctionExpression(SyntaxKind.FunctionExpression, pos, asteriskToken, name, sig, body); @@ -3667,7 +3671,7 @@ module ts { parseExpected(SyntaxKind.FunctionKeyword); node.asteriskToken = parseOptionalToken(SyntaxKind.AsteriskToken); node.name = parseIdentifier(); - fillSignature(SyntaxKind.CallSignature, SyntaxKind.ColonToken, /* returnTokenRequired */ false, /*yieldAndGeneratorParameterContext:*/ !!node.asteriskToken, node); + fillSignature(SyntaxKind.ColonToken, /*yieldAndGeneratorParameterContext:*/ !!node.asteriskToken, node); node.body = parseFunctionBlockOrSemicolon(!!node.asteriskToken); return finishNode(node); } @@ -3676,7 +3680,7 @@ module ts { var node = createNode(SyntaxKind.Constructor, pos); setModifiers(node, modifiers); parseExpected(SyntaxKind.ConstructorKeyword); - fillSignature(SyntaxKind.CallSignature, SyntaxKind.ColonToken, /* returnTokenRequired */ false, /*yieldAndGeneratorParameterContext:*/ false, node); + fillSignature(SyntaxKind.ColonToken, /*yieldAndGeneratorParameterContext:*/ false, node); node.body = parseFunctionBlockOrSemicolon(/*isGenerator:*/ false); return finishNode(node); } @@ -3694,7 +3698,7 @@ module ts { method.asteriskToken = asteriskToken; method.name = name; method.questionToken = questionToken; - fillSignature(SyntaxKind.CallSignature, SyntaxKind.ColonToken, /* returnTokenRequired */ false, /*yieldAndGeneratorParameterContext:*/ !!asteriskToken, method); + fillSignature(SyntaxKind.ColonToken, /*yieldAndGeneratorParameterContext:*/ !!asteriskToken, method); method.body = parseFunctionBlockOrSemicolon(!!asteriskToken); return finishNode(method); } @@ -3714,7 +3718,7 @@ module ts { var node = createNode(kind, fullStart); setModifiers(node, modifiers); node.name = parsePropertyName(); - fillSignature(SyntaxKind.CallSignature, SyntaxKind.ColonToken, /* returnTokenRequired */ false, /*yieldAndGeneratorParameterContext:*/ false, node); + fillSignature(SyntaxKind.ColonToken, /*yieldAndGeneratorParameterContext:*/ false, node); node.body = parseFunctionBlockOrSemicolon(/*isGenerator:*/ false); return finishNode(node); } @@ -3893,7 +3897,7 @@ module ts { node.name = parseIdentifier(); node.typeParameters = parseTypeParameters(); node.heritageClauses = parseHeritageClauses(/*isClassHeritageClause:*/ false); - node.members = parseObjectType(); + node.members = parseObjectTypeMembers(); return finishNode(node); } From af62715e8dc372114ff43e99c6aa383c3156bf03 Mon Sep 17 00:00:00 2001 From: Cyrus Najmabadi Date: Mon, 1 Dec 2014 22:30:22 -0800 Subject: [PATCH 185/195] Use helper function. Rename some functions to be clearer. --- src/compiler/parser.ts | 35 +++++++++++++++++------------------ 1 file changed, 17 insertions(+), 18 deletions(-) diff --git a/src/compiler/parser.ts b/src/compiler/parser.ts index 5809eb8d771..6549b86122d 100644 --- a/src/compiler/parser.ts +++ b/src/compiler/parser.ts @@ -1851,7 +1851,7 @@ module ts { function parseParameter(): ParameterDeclaration { var node = createNode(SyntaxKind.Parameter); setModifiers(node, parseModifiers()); - node.dotDotDotToken = token === SyntaxKind.DotDotDotToken ? parseTokenNode() : undefined; + node.dotDotDotToken = parseOptionalToken(SyntaxKind.DotDotDotToken); // SingleNameBinding[Yield,GeneratorParameter] : See 13.2.3 // [+GeneratorParameter]BindingIdentifier[Yield]Initializer[In]opt @@ -1873,7 +1873,7 @@ module ts { nextToken(); } - node.questionToken = token === SyntaxKind.QuestionToken ? parseTokenNode() : undefined; + node.questionToken = parseOptionalToken(SyntaxKind.QuestionToken); node.type = parseParameterType(); node.initializer = inGeneratorParameterContext() ? doOutsideOfYieldContext(parseParameterInitializer) @@ -2036,7 +2036,7 @@ module ts { function parsePropertyOrMethod(): Declaration { var fullStart = scanner.getStartPos(); var name = parsePropertyName(); - var questionToken = token === SyntaxKind.QuestionToken ? parseTokenNode() : undefined; + var questionToken = parseOptionalToken(SyntaxKind.QuestionToken); if (token === SyntaxKind.OpenParenToken || token === SyntaxKind.LessThanToken) { var method = createNode(SyntaxKind.Method, fullStart); @@ -2123,7 +2123,7 @@ module ts { return finishNode(node); } - function parseParenType(): ParenthesizedTypeNode { + function parseParenthesizedType(): ParenthesizedTypeNode { var node = createNode(SyntaxKind.ParenthesizedType); parseExpected(SyntaxKind.OpenParenToken); node.type = parseType(); @@ -2131,7 +2131,7 @@ module ts { return finishNode(node); } - function parseFunctionType(kind: SyntaxKind): FunctionOrConstructorTypeNode { + function parseFunctionOrConstructorType(kind: SyntaxKind): FunctionOrConstructorTypeNode { var node = createNode(kind); if (kind === SyntaxKind.ConstructorType) { parseExpected(SyntaxKind.NewKeyword); @@ -2163,7 +2163,7 @@ module ts { case SyntaxKind.OpenBracketToken: return parseTupleType(); case SyntaxKind.OpenParenToken: - return parseParenType(); + return parseParenthesizedType(); default: return parseTypeReference(); } @@ -2194,7 +2194,7 @@ module ts { } } - function parsePrimaryType(): TypeNode { + function parseArrayTypeOrHigher(): TypeNode { var type = parseNonArrayType(); while (!scanner.hasPrecedingLineBreak() && parseOptional(SyntaxKind.OpenBracketToken)) { parseExpected(SyntaxKind.CloseBracketToken); @@ -2205,13 +2205,13 @@ module ts { return type; } - function parseUnionType(): TypeNode { - var type = parsePrimaryType(); + function parseUnionTypeOrHigher(): TypeNode { + var type = parseArrayTypeOrHigher(); if (token === SyntaxKind.BarToken) { var types = >[type]; types.pos = type.pos; while (parseOptional(SyntaxKind.BarToken)) { - types.push(parsePrimaryType()); + types.push(parseArrayTypeOrHigher()); } types.end = getNodeEnd(); var node = createNode(SyntaxKind.UnionType, type.pos); @@ -2272,12 +2272,12 @@ module ts { function parseTypeWorker(): TypeNode { if (isStartOfFunctionType()) { - return parseFunctionType(SyntaxKind.FunctionType); + return parseFunctionOrConstructorType(SyntaxKind.FunctionType); } if (token === SyntaxKind.NewKeyword) { - return parseFunctionType(SyntaxKind.ConstructorType); + return parseFunctionOrConstructorType(SyntaxKind.ConstructorType); } - return parseUnionType(); + return parseUnionTypeOrHigher(); } function parseTypeAnnotation(): TypeNode { @@ -2486,9 +2486,8 @@ module ts { function parseSimpleArrowFunctionExpression(identifier: Identifier): Expression { Debug.assert(token === SyntaxKind.EqualsGreaterThanToken, "parseSimpleArrowFunctionExpression should only have been called if we had a =>"); - parseExpected(SyntaxKind.EqualsGreaterThanToken); - var parameter = createNode(SyntaxKind.Parameter, identifier.pos); + parseExpected(SyntaxKind.EqualsGreaterThanToken); parameter.name = identifier; finishNode(parameter); @@ -2497,7 +2496,7 @@ module ts { parameters.pos = parameter.pos; parameters.end = parameter.end; - var signature = { parameters: parameters }; + var signature = { parameters: parameters }; return parseArrowExpressionTail(identifier.pos, signature); } @@ -3145,7 +3144,7 @@ module ts { } // Disallowing of optional property assignments happens in the grammar checker. - var questionToken = token === SyntaxKind.QuestionToken ? parseTokenNode() : undefined; + var questionToken = parseOptionalToken(SyntaxKind.QuestionToken); // Parse to check if it is short-hand property assignment or normal property assignment if ((token === SyntaxKind.CommaToken || token === SyntaxKind.CloseBraceToken) && tokenIsIdentifier) { @@ -3691,7 +3690,7 @@ module ts { // Note: this is not legal as per the grammar. But we allow it in the parser and // report an error in the grammar checker. - var questionToken = token === SyntaxKind.QuestionToken ? parseTokenNode() : undefined; + var questionToken = parseOptionalToken(SyntaxKind.QuestionToken); if (asteriskToken || token === SyntaxKind.OpenParenToken || token === SyntaxKind.LessThanToken) { var method = createNode(SyntaxKind.Method, fullStart); setModifiers(method, modifiers); From b5c3cd8d4a73033d9dc7f575e41aeca5d9fa1f4d Mon Sep 17 00:00:00 2001 From: Cyrus Najmabadi Date: Mon, 1 Dec 2014 22:39:10 -0800 Subject: [PATCH 186/195] Simplify code. --- src/compiler/parser.ts | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) diff --git a/src/compiler/parser.ts b/src/compiler/parser.ts index 6549b86122d..a89a8fd52fb 100644 --- a/src/compiler/parser.ts +++ b/src/compiler/parser.ts @@ -2763,9 +2763,8 @@ module ts { function parsePrefixUnaryExpression() { var node = createNode(SyntaxKind.PrefixUnaryExpression); - var operator = token; + node.operator = token; nextToken(); - node.operator = operator; node.operand = parseUnaryExpressionOrHigher(); return finishNode(node); } @@ -2859,13 +2858,9 @@ module ts { // the last two CallExpression productions. Or we have a MemberExpression which either // completes the LeftHandSideExpression, or starts the beginning of the first four // CallExpression productions. - var expression: MemberExpression; - if (token === SyntaxKind.SuperKeyword) { - expression = parseSuperExpression(); - } - else { - expression = parseMemberExpressionOrHigher(); - } + var expression = token === SyntaxKind.SuperKeyword + ? parseSuperExpression() + : parseMemberExpressionOrHigher(); // Now, we *may* be complete. However, we might have consumed the start of a // CallExpression. As such, we need to consume the rest of it here to be complete. From 44627f859f99c2b8b211a6871726bdab13d8af16 Mon Sep 17 00:00:00 2001 From: Cyrus Najmabadi Date: Mon, 1 Dec 2014 22:50:03 -0800 Subject: [PATCH 187/195] Simplify parsing code. --- src/compiler/checker.ts | 7 ++++--- src/compiler/emitter.ts | 2 +- src/compiler/parser.ts | 21 ++++++++++++--------- src/compiler/types.ts | 8 +++++++- 4 files changed, 24 insertions(+), 14 deletions(-) diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index 9fca10b7341..64ed5f25bca 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -7743,13 +7743,14 @@ module ts { function checkSwitchStatement(node: SwitchStatement) { var expressionType = checkExpression(node.expression); forEach(node.clauses, clause => { - if (fullTypeCheck && clause.expression) { + if (fullTypeCheck && clause.kind === SyntaxKind.CaseClause) { + var caseClause = clause; // TypeScript 1.0 spec (April 2014):5.9 // In a 'switch' statement, each 'case' expression must be of a type that is assignable to or from the type of the 'switch' expression. - var caseType = checkExpression(clause.expression); + var caseType = checkExpression(caseClause.expression); if (!isTypeAssignableTo(expressionType, caseType)) { // check 'expressionType isAssignableTo caseType' failed, try the reversed check and report errors if it fails - checkTypeAssignableTo(caseType, expressionType, clause.expression, /*headMessage*/ undefined); + checkTypeAssignableTo(caseType, expressionType, caseClause.expression, /*headMessage*/ undefined); } } forEach(clause.statements, checkSourceElement); diff --git a/src/compiler/emitter.ts b/src/compiler/emitter.ts index ff52209ba69..b065287b7d2 100644 --- a/src/compiler/emitter.ts +++ b/src/compiler/emitter.ts @@ -2624,7 +2624,7 @@ module ts { function emitCaseOrDefaultClause(node: CaseOrDefaultClause) { if (node.kind === SyntaxKind.CaseClause) { write("case "); - emit(node.expression); + emit((node).expression); write(":"); } else { diff --git a/src/compiler/parser.ts b/src/compiler/parser.ts index a89a8fd52fb..a45de6309d4 100644 --- a/src/compiler/parser.ts +++ b/src/compiler/parser.ts @@ -353,9 +353,10 @@ module ts { return child((node).expression) || children((node).clauses); case SyntaxKind.CaseClause: + return child((node).expression) || + children((node).statements); case SyntaxKind.DefaultClause: - return child((node).expression) || - children((node).statements); + return children((node).statements); case SyntaxKind.LabeledStatement: return child((node).label) || child((node).statement); @@ -3215,7 +3216,11 @@ module ts { var node = createNode(SyntaxKind.NewExpression); parseExpected(SyntaxKind.NewKeyword); node.expression = parseMemberExpressionOrHigher(); - if (parseOptional(SyntaxKind.OpenParenToken) || (token === SyntaxKind.LessThanToken && (node.typeArguments = tryParse(parseTypeArgumentsAndOpenParen)))) { + if (token === SyntaxKind.LessThanToken) { + node.typeArguments = tryParse(parseTypeArgumentsAndOpenParen); + } + + if (node.typeArguments || parseOptional(SyntaxKind.OpenParenToken)) { node.arguments = parseDelimitedList(ParsingContext.ArgumentExpressions, parseArgumentExpression); parseExpected(SyntaxKind.CloseParenToken); } @@ -3381,8 +3386,8 @@ module ts { return finishNode(node); } - function parseCaseClause(): CaseOrDefaultClause { - var node = createNode(SyntaxKind.CaseClause); + function parseCaseClause(): CaseClause { + var node = createNode(SyntaxKind.CaseClause); parseExpected(SyntaxKind.CaseKeyword); node.expression = allowInAnd(parseExpression); parseExpected(SyntaxKind.ColonToken); @@ -3390,8 +3395,8 @@ module ts { return finishNode(node); } - function parseDefaultClause(): CaseOrDefaultClause { - var node = createNode(SyntaxKind.DefaultClause); + function parseDefaultClause(): DefaultClause { + var node = createNode(SyntaxKind.DefaultClause); parseExpected(SyntaxKind.DefaultKeyword); parseExpected(SyntaxKind.ColonToken); node.statements = parseList(ParsingContext.SwitchClauseStatements, /*checkForStrictMode*/ false, parseStatement); @@ -3409,9 +3414,7 @@ module ts { node.expression = allowInAnd(parseExpression); parseExpected(SyntaxKind.CloseParenToken); parseExpected(SyntaxKind.OpenBraceToken); - node.clauses = parseList(ParsingContext.SwitchClauses, /*checkForStrictMode*/ false, parseCaseOrDefaultClause); - parseExpected(SyntaxKind.CloseBraceToken); return finishNode(node); } diff --git a/src/compiler/types.ts b/src/compiler/types.ts index c2810e01acb..a042ceae14d 100644 --- a/src/compiler/types.ts +++ b/src/compiler/types.ts @@ -671,11 +671,17 @@ module ts { clauses: NodeArray; } - export interface CaseOrDefaultClause extends Node { + export interface CaseClause extends Node { expression?: Expression; statements: NodeArray; } + export interface DefaultClause extends Node { + statements: NodeArray; + } + + export type CaseOrDefaultClause = CaseClause | DefaultClause; + export interface LabeledStatement extends Statement { label: Identifier; statement: Statement; From 08165c0b17f18972b774c3fd6d316de39260ba71 Mon Sep 17 00:00:00 2001 From: Mohamed Hegazy Date: Mon, 1 Dec 2014 23:15:13 -0800 Subject: [PATCH 188/195] Ensure getEmitOutput only check the file requested --- src/compiler/checker.ts | 13 ++--- src/compiler/emitter.ts | 35 +++++++++---- src/compiler/types.ts | 3 +- src/harness/fourslash.ts | 7 ++- src/harness/harness.ts | 1 - src/services/services.ts | 52 ++++--------------- ...mitOutputWithEarlySyntacticErrors.baseline | 2 + ...ithSemanticErrorsForMultipleFiles.baseline | 8 +++ ...thSemanticErrorsForMultipleFiles2.baseline | 8 +++ ...thSyntacticErrorsForMultipleFiles.baseline | 6 +++ ...hSyntacticErrorsForMultipleFiles2.baseline | 2 + .../getEmitOutputWithEarlySemanticErrors.ts | 10 ++++ ...utputWithSemanticErrorsForMultipleFiles.ts | 16 ++++++ ...tputWithSemanticErrorsForMultipleFiles2.ts | 17 ++++++ ...tputWithSyntacticErrorsForMultipleFiles.ts | 15 ++++++ ...putWithSyntacticErrorsForMultipleFiles2.ts | 16 ++++++ 16 files changed, 142 insertions(+), 69 deletions(-) create mode 100644 tests/baselines/reference/getEmitOutputWithEarlySyntacticErrors.baseline create mode 100644 tests/baselines/reference/getEmitOutputWithSemanticErrorsForMultipleFiles.baseline create mode 100644 tests/baselines/reference/getEmitOutputWithSemanticErrorsForMultipleFiles2.baseline create mode 100644 tests/baselines/reference/getEmitOutputWithSyntacticErrorsForMultipleFiles.baseline create mode 100644 tests/baselines/reference/getEmitOutputWithSyntacticErrorsForMultipleFiles2.baseline create mode 100644 tests/cases/fourslash/getEmitOutputWithEarlySemanticErrors.ts create mode 100644 tests/cases/fourslash/getEmitOutputWithSemanticErrorsForMultipleFiles.ts create mode 100644 tests/cases/fourslash/getEmitOutputWithSemanticErrorsForMultipleFiles2.ts create mode 100644 tests/cases/fourslash/getEmitOutputWithSyntacticErrorsForMultipleFiles.ts create mode 100644 tests/cases/fourslash/getEmitOutputWithSyntacticErrorsForMultipleFiles2.ts diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index a663b038844..edf966a2fe1 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -85,7 +85,6 @@ module ts { getDiagnostics, getDeclarationDiagnostics, getGlobalDiagnostics, - checkProgram, getParentOfSymbol, getNarrowedTypeOfSymbol, getDeclaredTypeOfSymbol, @@ -8634,10 +8633,6 @@ module ts { } } - function checkProgram() { - forEach(program.getSourceFiles(), checkSourceFile); - } - function getSortedDiagnostics(): Diagnostic[]{ Debug.assert(fullTypeCheck, "diagnostics are available only in the full typecheck mode"); @@ -8650,12 +8645,11 @@ module ts { } function getDiagnostics(sourceFile?: SourceFile): Diagnostic[]{ - if (sourceFile) { checkSourceFile(sourceFile); return filter(getSortedDiagnostics(), d => d.file === sourceFile); } - checkProgram(); + forEach(program.getSourceFiles(), checkSourceFile); return getSortedDiagnostics(); } @@ -9173,9 +9167,9 @@ module ts { return isImportResolvedToValue(getSymbolOfNode(node)); } - function hasSemanticErrors() { + function hasSemanticErrors(sourceFile?: SourceFile) { // Return true if there is any semantic error in a file or globally - return getDiagnostics().length > 0 || getGlobalDiagnostics().length > 0; + return getDiagnostics(sourceFile).length > 0 || getGlobalDiagnostics().length > 0; } function isEmitBlocked(sourceFile?: SourceFile): boolean { @@ -9293,7 +9287,6 @@ module ts { function invokeEmitter(targetSourceFile?: SourceFile) { var resolver = createResolver(); - checkProgram(); return emitFiles(resolver, targetSourceFile); } diff --git a/src/compiler/emitter.ts b/src/compiler/emitter.ts index fab0433890a..cdb36cc5ac9 100644 --- a/src/compiler/emitter.ts +++ b/src/compiler/emitter.ts @@ -3791,20 +3791,14 @@ module ts { } } - var hasSemanticErrors = resolver.hasSemanticErrors(); - var isEmitBlocked = resolver.isEmitBlocked(targetSourceFile); - - function emitFile(jsFilePath: string, sourceFile?: SourceFile) { - if (!isEmitBlocked) { - emitJavaScript(jsFilePath, sourceFile); - if (!hasSemanticErrors && compilerOptions.declaration) { - writeDeclarationFile(jsFilePath, sourceFile); - } - } - } + var hasSemanticErrors: boolean = false; + var isEmitBlocked: boolean = false; if (targetSourceFile === undefined) { // No targetSourceFile is specified (e.g. calling emitter from batch compiler) + hasSemanticErrors = resolver.hasSemanticErrors(); + isEmitBlocked = resolver.isEmitBlocked(); + forEach(program.getSourceFiles(), sourceFile => { if (shouldEmitToOwnFile(sourceFile, compilerOptions)) { var jsFilePath = getOwnEmitOutputFilePath(sourceFile, program, ".js"); @@ -3820,16 +3814,35 @@ module ts { // targetSourceFile is specified (e.g calling emitter from language service or calling getSemanticDiagnostic from language service) if (shouldEmitToOwnFile(targetSourceFile, compilerOptions)) { // If shouldEmitToOwnFile returns true or targetSourceFile is an external module file, then emit targetSourceFile in its own output file + hasSemanticErrors = resolver.hasSemanticErrors(targetSourceFile); + isEmitBlocked = resolver.isEmitBlocked(targetSourceFile); + var jsFilePath = getOwnEmitOutputFilePath(targetSourceFile, program, ".js"); emitFile(jsFilePath, targetSourceFile); } else if (!isDeclarationFile(targetSourceFile) && compilerOptions.out) { // Otherwise, if --out is specified and targetSourceFile is not a declaration file, // Emit all, non-external-module file, into one single output file + forEach(program.getSourceFiles(), sourceFile => { + if (!shouldEmitToOwnFile(sourceFile, compilerOptions)) { + hasSemanticErrors = hasSemanticErrors || resolver.hasSemanticErrors(sourceFile); + isEmitBlocked = isEmitBlocked || resolver.isEmitBlocked(sourceFile); + } + }); + emitFile(compilerOptions.out); } } + function emitFile(jsFilePath: string, sourceFile?: SourceFile) { + if (!isEmitBlocked) { + emitJavaScript(jsFilePath, sourceFile); + if (!hasSemanticErrors && compilerOptions.declaration) { + writeDeclarationFile(jsFilePath, sourceFile); + } + } + } + // Sort and make the unique list of diagnostics diagnostics.sort(compareDiagnostics); diagnostics = deduplicateSortedDiagnostics(diagnostics); diff --git a/src/compiler/types.ts b/src/compiler/types.ts index 277e2cce5ff..0c3f3d96d98 100644 --- a/src/compiler/types.ts +++ b/src/compiler/types.ts @@ -861,7 +861,6 @@ module ts { getIdentifierCount(): number; getSymbolCount(): number; getTypeCount(): number; - checkProgram(): void; emitFiles(targetSourceFile?: SourceFile): EmitResult; getParentOfSymbol(symbol: Symbol): Symbol; getNarrowedTypeOfSymbol(symbol: Symbol, node: Node): Type; @@ -973,7 +972,7 @@ module ts { isTopLevelValueImportWithEntityName(node: ImportDeclaration): boolean; getNodeCheckFlags(node: Node): NodeCheckFlags; getEnumMemberValue(node: EnumMember): number; - hasSemanticErrors(): boolean; + hasSemanticErrors(sourceFile?: SourceFile): boolean; isDeclarationVisible(node: Declaration): boolean; isImplementationOfOverload(node: FunctionLikeDeclaration): boolean; writeTypeOfDeclaration(declaration: AccessorDeclaration | VariableOrParameterDeclaration, enclosingDeclaration: Node, flags: TypeFormatFlags, writer: SymbolWriter): void; diff --git a/src/harness/fourslash.ts b/src/harness/fourslash.ts index 05e65f5648f..7e364730ede 100644 --- a/src/harness/fourslash.ts +++ b/src/harness/fourslash.ts @@ -2217,11 +2217,10 @@ module FourSlash { // TODO (drosen): We need to enforce checking on these tests. var program = ts.createProgram([Harness.Compiler.fourslashFilename, fileName], { out: "fourslashTestOutput.js", noResolve: true }, host); var checker = ts.createTypeChecker(program, /*fullTypeCheckMode*/ true); - checker.checkProgram(); - var errs = program.getDiagnostics().concat(checker.getDiagnostics()); - if (errs.length > 0) { - throw new Error('Error compiling ' + fileName + ': ' + errs.map(e => e.messageText).join('\r\n')); + var errors = program.getDiagnostics().concat(checker.getDiagnostics()); + if (errors.length > 0) { + throw new Error('Error compiling ' + fileName + ': ' + errors.map(e => e.messageText).join('\r\n')); } checker.emitFiles(); result = result || ''; // Might have an empty fourslash file diff --git a/src/harness/harness.ts b/src/harness/harness.ts index 640d5f0ae53..c0d3ddedce3 100644 --- a/src/harness/harness.ts +++ b/src/harness/harness.ts @@ -801,7 +801,6 @@ module Harness { useCaseSensitiveFileNames)); var checker = program.getTypeChecker(/*fullTypeCheckMode*/ true); - checker.checkProgram(); var isEmitBlocked = checker.isEmitBlocked(); diff --git a/src/services/services.ts b/src/services/services.ts index 8bbc03aad6f..a191e5af83c 100644 --- a/src/services/services.ts +++ b/src/services/services.ts @@ -4665,18 +4665,14 @@ module ts { function getEmitOutput(filename: string): EmitOutput { synchronizeHostData(); + filename = normalizeSlashes(filename); - var compilerOptions = program.getCompilerOptions(); - var targetSourceFile = program.getSourceFile(filename); // Current selected file to be output - // If --out flag is not specified, shouldEmitToOwnFile is true. Otherwise shouldEmitToOwnFile is false. - var shouldEmitToOwnFile = ts.shouldEmitToOwnFile(targetSourceFile, compilerOptions); - var emitOutput: EmitOutput = { - outputFiles: [], - emitOutputStatus: undefined, - }; + var sourceFile = getSourceFile(filename); + + var outputFiles: OutputFile[] = []; function getEmitOutputWriter(filename: string, data: string, writeByteOrderMark: boolean) { - emitOutput.outputFiles.push({ + outputFiles.push({ name: filename, writeByteOrderMark: writeByteOrderMark, text: data @@ -4686,41 +4682,15 @@ module ts { // Initialize writer for CompilerHost.writeFile writer = getEmitOutputWriter; - var containSyntacticErrors = false; - - if (shouldEmitToOwnFile) { - // Check only the file we want to emit - containSyntacticErrors = containErrors(program.getDiagnostics(targetSourceFile)); - } else { - // Check the syntactic of only sourceFiles that will get emitted into single output - // Terminate the process immediately if we encounter a syntax error from one of the sourceFiles - containSyntacticErrors = forEach(program.getSourceFiles(), sourceFile => { - if (!isExternalModuleOrDeclarationFile(sourceFile)) { - // If emit to a single file then we will check all files that do not have external module - return containErrors(program.getDiagnostics(sourceFile)); - } - return false; - }); - } - - if (containSyntacticErrors) { - // If there is a syntax error, terminate the process and report outputStatus - emitOutput.emitOutputStatus = EmitReturnStatus.AllOutputGenerationSkipped; - // Reset writer back to undefined to make sure that we produce an error message - // if CompilerHost.writeFile is called when we are not in getEmitOutput - writer = undefined; - return emitOutput; - } - - // Perform semantic and force a type check before emit to ensure that all symbols are updated - // EmitFiles will report if there is an error from TypeChecker and Emitter - // Depend whether we will have to emit into a single file or not either emit only selected file in the project, emit all files into a single file - var emitFilesResult = getFullTypeCheckChecker().emitFiles(targetSourceFile); - emitOutput.emitOutputStatus = emitFilesResult.emitResultStatus; + var emitOutput = getFullTypeCheckChecker().emitFiles(sourceFile); // Reset writer back to undefined to make sure that we produce an error message if CompilerHost.writeFile method is called when we are not in getEmitOutput writer = undefined; - return emitOutput; + + return { + outputFiles, + emitOutputStatus: emitOutput.emitResultStatus + }; } function getMeaningFromDeclaration(node: Node): SemanticMeaning { diff --git a/tests/baselines/reference/getEmitOutputWithEarlySyntacticErrors.baseline b/tests/baselines/reference/getEmitOutputWithEarlySyntacticErrors.baseline new file mode 100644 index 00000000000..a5d5d2eb9d7 --- /dev/null +++ b/tests/baselines/reference/getEmitOutputWithEarlySyntacticErrors.baseline @@ -0,0 +1,2 @@ +EmitOutputStatus : AllOutputGenerationSkipped + diff --git a/tests/baselines/reference/getEmitOutputWithSemanticErrorsForMultipleFiles.baseline b/tests/baselines/reference/getEmitOutputWithSemanticErrorsForMultipleFiles.baseline new file mode 100644 index 00000000000..c6396314824 --- /dev/null +++ b/tests/baselines/reference/getEmitOutputWithSemanticErrorsForMultipleFiles.baseline @@ -0,0 +1,8 @@ +EmitOutputStatus : Succeeded +Filename : tests/cases/fourslash/inputFile1.js +// File to emit, does not contain semantic errors +// expected to be emitted correctelly regardless of the semantic errors in the other file +var noErrors = true; +Filename : tests/cases/fourslash/inputFile1.d.ts +declare var noErrors: boolean; + diff --git a/tests/baselines/reference/getEmitOutputWithSemanticErrorsForMultipleFiles2.baseline b/tests/baselines/reference/getEmitOutputWithSemanticErrorsForMultipleFiles2.baseline new file mode 100644 index 00000000000..41b16b40e65 --- /dev/null +++ b/tests/baselines/reference/getEmitOutputWithSemanticErrorsForMultipleFiles2.baseline @@ -0,0 +1,8 @@ +EmitOutputStatus : DeclarationGenerationSkipped +Filename : out.js +// File to emit, does not contain semantic errors, but --out is passed +// expected to not generate declarations because of the semantic errors in the other file +var noErrors = true; +// File not emitted, and contains semantic errors +var semanticError = "string"; + diff --git a/tests/baselines/reference/getEmitOutputWithSyntacticErrorsForMultipleFiles.baseline b/tests/baselines/reference/getEmitOutputWithSyntacticErrorsForMultipleFiles.baseline new file mode 100644 index 00000000000..bf27703890b --- /dev/null +++ b/tests/baselines/reference/getEmitOutputWithSyntacticErrorsForMultipleFiles.baseline @@ -0,0 +1,6 @@ +EmitOutputStatus : Succeeded +Filename : tests/cases/fourslash/inputFile1.js +// File to emit, does not contain syntactic errors +// expected to be emitted correctelly regardless of the syntactic errors in the other file +var noErrors = true; + diff --git a/tests/baselines/reference/getEmitOutputWithSyntacticErrorsForMultipleFiles2.baseline b/tests/baselines/reference/getEmitOutputWithSyntacticErrorsForMultipleFiles2.baseline new file mode 100644 index 00000000000..a5d5d2eb9d7 --- /dev/null +++ b/tests/baselines/reference/getEmitOutputWithSyntacticErrorsForMultipleFiles2.baseline @@ -0,0 +1,2 @@ +EmitOutputStatus : AllOutputGenerationSkipped + diff --git a/tests/cases/fourslash/getEmitOutputWithEarlySemanticErrors.ts b/tests/cases/fourslash/getEmitOutputWithEarlySemanticErrors.ts new file mode 100644 index 00000000000..2946fffb808 --- /dev/null +++ b/tests/cases/fourslash/getEmitOutputWithEarlySemanticErrors.ts @@ -0,0 +1,10 @@ +/// + +// @BaselineFile: getEmitOutputWithEarlySyntacticErrors.baseline + +// @Filename: inputFile1.ts +// @emitThisFile: true +//// // File contains early errors. All outputs should be skipped. +//// const uninitialized_const_error; + +verify.baselineGetEmitOutput(); \ No newline at end of file diff --git a/tests/cases/fourslash/getEmitOutputWithSemanticErrorsForMultipleFiles.ts b/tests/cases/fourslash/getEmitOutputWithSemanticErrorsForMultipleFiles.ts new file mode 100644 index 00000000000..5cfacc36715 --- /dev/null +++ b/tests/cases/fourslash/getEmitOutputWithSemanticErrorsForMultipleFiles.ts @@ -0,0 +1,16 @@ +/// + +// @BaselineFile: getEmitOutputWithSemanticErrorsForMultipleFiles.baseline +// @declaration: true + +// @Filename: inputFile1.ts +// @emitThisFile: true +//// // File to emit, does not contain semantic errors +//// // expected to be emitted correctelly regardless of the semantic errors in the other file +//// var noErrors = true; + +// @Filename: inputFile2.ts +//// // File not emitted, and contains semantic errors +//// var semanticError: boolean = "string"; + +verify.baselineGetEmitOutput(); \ No newline at end of file diff --git a/tests/cases/fourslash/getEmitOutputWithSemanticErrorsForMultipleFiles2.ts b/tests/cases/fourslash/getEmitOutputWithSemanticErrorsForMultipleFiles2.ts new file mode 100644 index 00000000000..d5cfd1346ca --- /dev/null +++ b/tests/cases/fourslash/getEmitOutputWithSemanticErrorsForMultipleFiles2.ts @@ -0,0 +1,17 @@ +/// + +// @BaselineFile: getEmitOutputWithSemanticErrorsForMultipleFiles2.baseline +// @declaration: true +// @out: out.js + +// @Filename: inputFile1.ts +// @emitThisFile: true +//// // File to emit, does not contain semantic errors, but --out is passed +//// // expected to not generate declarations because of the semantic errors in the other file +//// var noErrors = true; + +// @Filename: inputFile2.ts +//// // File not emitted, and contains semantic errors +//// var semanticError: boolean = "string"; + +verify.baselineGetEmitOutput(); \ No newline at end of file diff --git a/tests/cases/fourslash/getEmitOutputWithSyntacticErrorsForMultipleFiles.ts b/tests/cases/fourslash/getEmitOutputWithSyntacticErrorsForMultipleFiles.ts new file mode 100644 index 00000000000..3b3d01eaac8 --- /dev/null +++ b/tests/cases/fourslash/getEmitOutputWithSyntacticErrorsForMultipleFiles.ts @@ -0,0 +1,15 @@ +/// + +// @BaselineFile: getEmitOutputWithSyntacticErrorsForMultipleFiles.baseline + +// @Filename: inputFile1.ts +// @emitThisFile: true +//// // File to emit, does not contain syntactic errors +//// // expected to be emitted correctelly regardless of the syntactic errors in the other file +//// var noErrors = true; + +// @Filename: inputFile2.ts +//// // File not emitted, and contains syntactic errors +//// var syntactic Error; + +verify.baselineGetEmitOutput(); \ No newline at end of file diff --git a/tests/cases/fourslash/getEmitOutputWithSyntacticErrorsForMultipleFiles2.ts b/tests/cases/fourslash/getEmitOutputWithSyntacticErrorsForMultipleFiles2.ts new file mode 100644 index 00000000000..ce82f958b91 --- /dev/null +++ b/tests/cases/fourslash/getEmitOutputWithSyntacticErrorsForMultipleFiles2.ts @@ -0,0 +1,16 @@ +/// + +// @BaselineFile: getEmitOutputWithSyntacticErrorsForMultipleFiles2.baseline +// @out: out.js + +// @Filename: inputFile1.ts +// @emitThisFile: true +//// // File to emit, does not contain syntactic errors, but --out is passed +//// // expected to not generate outputs because of the syntactic errors in the other file. +//// var noErrors = true; + +// @Filename: inputFile2.ts +//// // File not emitted, and contains syntactic errors +//// var syntactic Error; + +verify.baselineGetEmitOutput(); \ No newline at end of file From 03a2d0197bebac728f22f597e0f5c78a12331c48 Mon Sep 17 00:00:00 2001 From: Cyrus Najmabadi Date: Mon, 1 Dec 2014 23:17:34 -0800 Subject: [PATCH 189/195] Make 'CatchClause' have-a block, instead of be-a block. --- src/compiler/binder.ts | 10 ++--- src/compiler/checker.ts | 16 +++---- src/compiler/emitter.ts | 18 ++++---- src/compiler/parser.ts | 45 +++++++++---------- src/compiler/types.ts | 12 +++-- src/services/breakpoints.ts | 6 ++- src/services/formatting.ts | 6 +-- src/services/formatting/rules.ts | 5 +-- src/services/outliningElementsCollector.ts | 4 +- src/services/services.ts | 14 +++--- src/services/smartIndenter.ts | 4 +- .../sourceMapValidationStatements.js.map | 2 +- ...ourceMapValidationStatements.sourcemap.txt | 20 ++++----- .../sourceMapValidationTryCatchFinally.js.map | 2 +- ...MapValidationTryCatchFinally.sourcemap.txt | 22 ++++----- 15 files changed, 94 insertions(+), 92 deletions(-) diff --git a/src/compiler/binder.ts b/src/compiler/binder.ts index 469a794d13d..a45561e7ed6 100644 --- a/src/compiler/binder.ts +++ b/src/compiler/binder.ts @@ -348,8 +348,8 @@ module ts { bindChildren(node, symbolKind, isBlockScopeContainer); } - function bindCatchVariableDeclaration(node: CatchBlock) { - var symbol = createSymbol(SymbolFlags.FunctionScopedVariable, node.variable.text || "__missing"); + function bindCatchVariableDeclaration(node: CatchClause) { + var symbol = createSymbol(SymbolFlags.FunctionScopedVariable, node.name.text || "__missing"); addDeclarationToSymbol(symbol, node, SymbolFlags.FunctionScopedVariable); var saveParent = parent; var savedBlockScopeContainer = blockScopeContainer; @@ -444,8 +444,8 @@ module ts { case SyntaxKind.ArrowFunction: bindAnonymousDeclaration(node, SymbolFlags.Function, "__function", /*isBlockScopeContainer*/ true); break; - case SyntaxKind.CatchBlock: - bindCatchVariableDeclaration(node); + case SyntaxKind.CatchClause: + bindCatchVariableDeclaration(node); break; case SyntaxKind.ClassDeclaration: bindDeclaration(node, SymbolFlags.Class, SymbolFlags.ClassExcludes, /*isBlockScopeContainer*/ false); @@ -478,7 +478,7 @@ module ts { case SyntaxKind.Block: case SyntaxKind.TryBlock: - case SyntaxKind.CatchBlock: + case SyntaxKind.CatchClause: case SyntaxKind.FinallyBlock: case SyntaxKind.ForStatement: case SyntaxKind.ForInStatement: diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index 64ed5f25bca..c6c58347b19 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -415,8 +415,8 @@ module ts { break loop; } break; - case SyntaxKind.CatchBlock: - var id = (location).variable; + case SyntaxKind.CatchClause: + var id = (location).name; if (name === id.text) { result = location.symbol; break loop; @@ -1753,7 +1753,7 @@ module ts { } // Handle catch clause variables var declaration = symbol.valueDeclaration; - if (declaration.kind === SyntaxKind.CatchBlock) { + if (declaration.kind === SyntaxKind.CatchClause) { return links.type = anyType; } // Handle variable, parameter or property @@ -4375,7 +4375,7 @@ module ts { case SyntaxKind.ThrowStatement: case SyntaxKind.TryStatement: case SyntaxKind.TryBlock: - case SyntaxKind.CatchBlock: + case SyntaxKind.CatchClause: case SyntaxKind.FinallyBlock: return forEachChild(node, isAssignedIn); } @@ -7767,7 +7767,7 @@ module ts { function checkTryStatement(node: TryStatement) { checkBlock(node.tryBlock); - if (node.catchBlock) checkBlock(node.catchBlock); + if (node.catchClause) checkBlock(node.catchClause.block); if (node.finallyBlock) checkBlock(node.finallyBlock); } @@ -8605,7 +8605,7 @@ module ts { case SyntaxKind.ThrowStatement: case SyntaxKind.TryStatement: case SyntaxKind.TryBlock: - case SyntaxKind.CatchBlock: + case SyntaxKind.CatchClause: case SyntaxKind.FinallyBlock: case SyntaxKind.VariableDeclaration: case SyntaxKind.ClassDeclaration: @@ -8767,8 +8767,8 @@ module ts { copySymbol(location.symbol, meaning); } break; - case SyntaxKind.CatchBlock: - if ((location).variable.text) { + case SyntaxKind.CatchClause: + if ((location).name.text) { copySymbol(location.symbol, meaning); } break; diff --git a/src/compiler/emitter.ts b/src/compiler/emitter.ts index b065287b7d2..53914ac4c62 100644 --- a/src/compiler/emitter.ts +++ b/src/compiler/emitter.ts @@ -2142,8 +2142,8 @@ module ts { return false; case SyntaxKind.LabeledStatement: return (node.parent).label === node; - case SyntaxKind.CatchBlock: - return (node.parent).variable === node; + case SyntaxKind.CatchClause: + return (node.parent).name === node; } } @@ -2650,7 +2650,7 @@ module ts { function emitTryStatement(node: TryStatement) { write("try "); emit(node.tryBlock); - emit(node.catchBlock); + emit(node.catchClause); if (node.finallyBlock) { writeLine(); write("finally "); @@ -2658,15 +2658,15 @@ module ts { } } - function emitCatchBlock(node: CatchBlock) { + function emitCatchClause(node: CatchClause) { writeLine(); var endPos = emitToken(SyntaxKind.CatchKeyword, node.pos); write(" "); emitToken(SyntaxKind.OpenParenToken, endPos); - emit(node.variable); - emitToken(SyntaxKind.CloseParenToken, node.variable.end); + emit(node.name); + emitToken(SyntaxKind.CloseParenToken, node.name.end); write(" "); - emitBlock(node); + emitBlock(node.block); } function emitDebuggerStatement(node: Node) { @@ -3599,8 +3599,8 @@ module ts { return emitThrowStatement(node); case SyntaxKind.TryStatement: return emitTryStatement(node); - case SyntaxKind.CatchBlock: - return emitCatchBlock(node); + case SyntaxKind.CatchClause: + return emitCatchClause(node); case SyntaxKind.DebuggerStatement: return emitDebuggerStatement(node); case SyntaxKind.VariableDeclaration: diff --git a/src/compiler/parser.ts b/src/compiler/parser.ts index a45de6309d4..553d51b1bd2 100644 --- a/src/compiler/parser.ts +++ b/src/compiler/parser.ts @@ -364,11 +364,12 @@ module ts { return child((node).expression); case SyntaxKind.TryStatement: return child((node).tryBlock) || - child((node).catchBlock) || + child((node).catchClause) || child((node).finallyBlock); - case SyntaxKind.CatchBlock: - return child((node).variable) || - children((node).statements); + case SyntaxKind.CatchClause: + return child((node).name) || + child((node).type) || + child((node).block); case SyntaxKind.VariableDeclaration: return children(node.modifiers) || child((node).name) || @@ -445,7 +446,7 @@ module ts { case SyntaxKind.LabeledStatement: case SyntaxKind.TryStatement: case SyntaxKind.TryBlock: - case SyntaxKind.CatchBlock: + case SyntaxKind.CatchClause: case SyntaxKind.FinallyBlock: return forEachChild(node, traverse); } @@ -733,8 +734,8 @@ module ts { return (parent).name === name; } - if (parent.kind === SyntaxKind.CatchBlock) { - return (parent).variable === name; + if (parent.kind === SyntaxKind.CatchClause) { + return (parent).name === name; } return false; @@ -3439,11 +3440,11 @@ module ts { function parseTryStatement(): TryStatement { var node = createNode(SyntaxKind.TryStatement); node.tryBlock = parseTokenAndBlock(SyntaxKind.TryKeyword); - node.catchBlock = token === SyntaxKind.CatchKeyword ? parseCatchBlock() : undefined; + node.catchClause = token === SyntaxKind.CatchKeyword ? parseCatchClause() : undefined; // If we don't have a catch clause, then we must have a finally clause. Try to parse // one out no matter what. - node.finallyBlock = !node.catchBlock || token === SyntaxKind.FinallyKeyword + node.finallyBlock = !node.catchClause || token === SyntaxKind.FinallyKeyword ? parseTokenAndBlock(SyntaxKind.FinallyKeyword) : undefined; return finishNode(node); @@ -3459,19 +3460,15 @@ module ts { return result; } - function parseCatchBlock(): CatchBlock { - var pos = getNodePos(); + function parseCatchClause(): CatchClause { + var result = createNode(SyntaxKind.CatchClause); parseExpected(SyntaxKind.CatchKeyword); parseExpected(SyntaxKind.OpenParenToken); - var variable = parseIdentifier(); - var typeAnnotation = parseTypeAnnotation(); + result.name = parseIdentifier(); + result.type = parseTypeAnnotation(); parseExpected(SyntaxKind.CloseParenToken); - var result = parseBlock(SyntaxKind.CatchBlock, /* ignoreMissingOpenBrace */ false, /*checkForStrictMode*/ false); - result.pos = pos; - result.variable = variable; - result.type = typeAnnotation; - - return result; + result.block = parseBlock(SyntaxKind.Block, /* ignoreMissingOpenBrace */ false, /*checkForStrictMode*/ false); + return finishNode(result); } function parseDebuggerStatement(): Statement { @@ -4325,7 +4322,7 @@ module ts { case SyntaxKind.EnumDeclaration: return checkEnumDeclaration(node); case SyntaxKind.BinaryExpression: return checkBinaryExpression(node); - case SyntaxKind.CatchBlock: return checkCatchBlock(node); + case SyntaxKind.CatchClause: return checkCatchClause(node); case SyntaxKind.ClassDeclaration: return checkClassDeclaration(node); case SyntaxKind.ComputedPropertyName: return checkComputedPropertyName(node); case SyntaxKind.Constructor: return checkConstructor(node); @@ -4583,15 +4580,15 @@ module ts { } } - function checkCatchBlock(node: CatchBlock) { + function checkCatchClause(node: CatchClause) { if (node.type) { - var colonStart = skipTrivia(sourceText, node.variable.end); + var colonStart = skipTrivia(sourceText, node.name.end); return grammarErrorAtPos(colonStart, ":".length, Diagnostics.Catch_clause_parameter_cannot_have_a_type_annotation); } - if (node.parserContextFlags & ParserContextFlags.StrictMode && isEvalOrArgumentsIdentifier(node.variable)) { + if (node.parserContextFlags & ParserContextFlags.StrictMode && isEvalOrArgumentsIdentifier(node.name)) { // It is a SyntaxError if a TryStatement with a Catch occurs within strict code and the Identifier of the // Catch production is eval or arguments - return reportInvalidUseInStrictMode(node.variable); + return reportInvalidUseInStrictMode(node.name); } } diff --git a/src/compiler/types.ts b/src/compiler/types.ts index a042ceae14d..d8cbf204ebc 100644 --- a/src/compiler/types.ts +++ b/src/compiler/types.ts @@ -208,7 +208,6 @@ module ts { ThrowStatement, TryStatement, TryBlock, - CatchBlock, FinallyBlock, DebuggerStatement, VariableDeclaration, @@ -222,12 +221,16 @@ module ts { ModuleBlock, ImportDeclaration, ExportAssignment, + // Module references ExternalModuleReference, + // Clauses CaseClause, DefaultClause, HeritageClause, + CatchClause, + // Property assignments PropertyAssignment, ShorthandPropertyAssignment, @@ -693,13 +696,14 @@ module ts { export interface TryStatement extends Statement { tryBlock: Block; - catchBlock?: CatchBlock; + catchClause?: CatchClause; finallyBlock?: Block; } - export interface CatchBlock extends Block, Declaration { - variable: Identifier; + export interface CatchClause extends Declaration { + name: Identifier; type?: TypeNode; + block: Block; } export interface ModuleElement extends Node { diff --git a/src/services/breakpoints.ts b/src/services/breakpoints.ts index eb9c88088aa..a67a89dd82f 100644 --- a/src/services/breakpoints.ts +++ b/src/services/breakpoints.ts @@ -106,11 +106,13 @@ module ts.BreakpointResolver { case SyntaxKind.Block: case SyntaxKind.TryBlock: - case SyntaxKind.CatchBlock: case SyntaxKind.FinallyBlock: case SyntaxKind.ModuleBlock: return spanInBlock(node); + case SyntaxKind.CatchClause: + return spanInBlock((node).block); + case SyntaxKind.ExpressionStatement: // span on the expression return textSpan((node).expression); @@ -420,7 +422,7 @@ module ts.BreakpointResolver { case SyntaxKind.Block: case SyntaxKind.TryBlock: - case SyntaxKind.CatchBlock: + case SyntaxKind.CatchClause: case SyntaxKind.FinallyBlock: return spanInNode((node.parent).statements[(node.parent).statements.length - 1]);; diff --git a/src/services/formatting.ts b/src/services/formatting.ts index 741b853b7ba..3322ea1e65b 100644 --- a/src/services/formatting.ts +++ b/src/services/formatting.ts @@ -155,10 +155,11 @@ module ts.formatting { case SyntaxKind.SourceFile: case SyntaxKind.Block: case SyntaxKind.TryBlock: - case SyntaxKind.CatchBlock: case SyntaxKind.FinallyBlock: case SyntaxKind.ModuleBlock: - return rangeContainsRange((parent).statements, node) + return rangeContainsRange((parent).statements, node); + case SyntaxKind.CatchClause: + return rangeContainsRange((parent).block.statements, node); } return false; @@ -898,7 +899,6 @@ module ts.formatting { case SyntaxKind.Block: case SyntaxKind.FunctionBlock: case SyntaxKind.TryBlock: - case SyntaxKind.CatchBlock: case SyntaxKind.FinallyBlock: case SyntaxKind.ModuleBlock: return true; diff --git a/src/services/formatting/rules.ts b/src/services/formatting/rules.ts index 7de7baee6ca..2723b50af7b 100644 --- a/src/services/formatting/rules.ts +++ b/src/services/formatting/rules.ts @@ -525,7 +525,6 @@ module ts.formatting { case SyntaxKind.SwitchStatement: case SyntaxKind.ObjectLiteralExpression: case SyntaxKind.TryBlock: - case SyntaxKind.CatchBlock: case SyntaxKind.FinallyBlock: case SyntaxKind.FunctionBlock: case SyntaxKind.ModuleBlock: @@ -581,7 +580,7 @@ module ts.formatting { case SyntaxKind.EnumDeclaration: case SyntaxKind.Block: case SyntaxKind.TryBlock: - case SyntaxKind.CatchBlock: + case SyntaxKind.CatchClause: case SyntaxKind.FinallyBlock: case SyntaxKind.FunctionBlock: case SyntaxKind.ModuleBlock: @@ -603,7 +602,7 @@ module ts.formatting { case SyntaxKind.WithStatement: // TODO // case SyntaxKind.ElseClause: - case SyntaxKind.CatchBlock: + case SyntaxKind.CatchClause: case SyntaxKind.FinallyBlock: return true; diff --git a/src/services/outliningElementsCollector.ts b/src/services/outliningElementsCollector.ts index 7f071e5c224..68f30bee781 100644 --- a/src/services/outliningElementsCollector.ts +++ b/src/services/outliningElementsCollector.ts @@ -79,7 +79,8 @@ module ts { parent.kind === SyntaxKind.ForStatement || parent.kind === SyntaxKind.IfStatement || parent.kind === SyntaxKind.WhileStatement || - parent.kind === SyntaxKind.WithStatement) { + parent.kind === SyntaxKind.WithStatement || + parent.kind === SyntaxKind.CatchClause) { addOutliningSpan(parent, openBrace, closeBrace, autoCollapse(n)); } @@ -100,7 +101,6 @@ module ts { case SyntaxKind.FunctionBlock: case SyntaxKind.ModuleBlock: case SyntaxKind.TryBlock: - case SyntaxKind.CatchBlock: case SyntaxKind.FinallyBlock: var openBrace = findChildOfKind(n, SyntaxKind.OpenBraceToken, sourceFile); var closeBrace = findChildOfKind(n, SyntaxKind.CloseBraceToken, sourceFile); diff --git a/src/services/services.ts b/src/services/services.ts index 7e9e84cd7af..b20067887b3 100644 --- a/src/services/services.ts +++ b/src/services/services.ts @@ -2576,7 +2576,7 @@ module ts { isFunction(containingNodeKind); case SyntaxKind.OpenParenToken: - return containingNodeKind === SyntaxKind.CatchBlock || + return containingNodeKind === SyntaxKind.CatchClause || isFunction(containingNodeKind); case SyntaxKind.OpenBraceToken: @@ -3567,8 +3567,8 @@ module ts { else if (node.kind === SyntaxKind.TryStatement) { var tryStatement = node; - if (tryStatement.catchBlock) { - aggregate(tryStatement.catchBlock); + if (tryStatement.catchClause) { + aggregate(tryStatement.catchClause); } else { // Exceptions thrown within a try block lacking a catch clause @@ -3607,7 +3607,7 @@ module ts { if (parent.kind === SyntaxKind.TryStatement) { var tryStatement = parent; - if (tryStatement.tryBlock === child && tryStatement.catchBlock) { + if (tryStatement.tryBlock === child && tryStatement.catchClause) { return child; } } @@ -3623,8 +3623,8 @@ module ts { pushKeywordIf(keywords, tryStatement.getFirstToken(), SyntaxKind.TryKeyword); - if (tryStatement.catchBlock) { - pushKeywordIf(keywords, tryStatement.catchBlock.getFirstToken(), SyntaxKind.CatchKeyword); + if (tryStatement.catchClause) { + pushKeywordIf(keywords, tryStatement.catchClause.getFirstToken(), SyntaxKind.CatchKeyword); } if (tryStatement.finallyBlock) { @@ -4738,7 +4738,7 @@ module ts { case SyntaxKind.FunctionDeclaration: case SyntaxKind.FunctionExpression: case SyntaxKind.ArrowFunction: - case SyntaxKind.CatchBlock: + case SyntaxKind.CatchClause: return SemanticMeaning.Value; case SyntaxKind.TypeParameter: diff --git a/src/services/smartIndenter.ts b/src/services/smartIndenter.ts index 4e32522040e..82226449b96 100644 --- a/src/services/smartIndenter.ts +++ b/src/services/smartIndenter.ts @@ -328,7 +328,6 @@ module ts.formatting { case SyntaxKind.Block: case SyntaxKind.FunctionBlock: case SyntaxKind.TryBlock: - case SyntaxKind.CatchBlock: case SyntaxKind.FinallyBlock: case SyntaxKind.ModuleBlock: case SyntaxKind.ObjectLiteralExpression: @@ -404,12 +403,13 @@ module ts.formatting { case SyntaxKind.EnumDeclaration: case SyntaxKind.ObjectLiteralExpression: case SyntaxKind.Block: - case SyntaxKind.CatchBlock: case SyntaxKind.FinallyBlock: case SyntaxKind.FunctionBlock: case SyntaxKind.ModuleBlock: case SyntaxKind.SwitchStatement: return nodeEndsWith(n, SyntaxKind.CloseBraceToken, sourceFile); + case SyntaxKind.CatchClause: + return isCompletedNode((n).block, sourceFile); case SyntaxKind.ParenthesizedExpression: case SyntaxKind.CallSignature: case SyntaxKind.CallExpression: diff --git a/tests/baselines/reference/sourceMapValidationStatements.js.map b/tests/baselines/reference/sourceMapValidationStatements.js.map index 02b5c0bb806..8eb99944914 100644 --- a/tests/baselines/reference/sourceMapValidationStatements.js.map +++ b/tests/baselines/reference/sourceMapValidationStatements.js.map @@ -1,2 +1,2 @@ //// [sourceMapValidationStatements.js.map] -{"version":3,"file":"sourceMapValidationStatements.js","sourceRoot":"","sources":["sourceMapValidationStatements.ts"],"names":["f"],"mappings":"AAAA,SAAS,CAAC;IACNA,IAAIA,CAACA,CAACA;IACNA,IAAIA,CAACA,GAAGA,CAACA,CAACA;IACVA,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,EAAEA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;QAC1BA,CAACA,IAAIA,CAACA,CAACA;QACPA,CAACA,IAAIA,CAACA,CAACA;IACXA,CAACA;IACDA,EAAEA,CAACA,CAACA,CAACA,GAAGA,EAAEA,CAACA,CAACA,CAACA;QACTA,CAACA,IAAIA,CAACA,CAACA;IACXA,CAACA;IAACA,IAAIA,CAACA,CAACA;QACJA,CAACA,IAAIA,EAAEA,CAACA;QACRA,CAACA,EAAEA,CAACA;IACRA,CAACA;IACDA,IAAIA,CAACA,GAAGA;QACJA,CAACA;QACDA,CAACA;QACDA,CAACA;KACJA,CAACA;IACFA,IAAIA,GAAGA,GAAGA;QACNA,CAACA,EAAEA,CAACA;QACJA,CAACA,EAAEA,OAAOA;KACbA,CAACA;IACFA,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,IAAIA,CAACA,CAACA,CAACA,CAACA;QACdA,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,CAACA,CAACA,CAACA;QACbA,IAAIA,CAACA,GAAGA,EAAEA,CAACA;IACfA,CAACA;IACDA,IAAAA,CAACA;QACGA,GAAGA,CAACA,CAACA,GAAGA,MAAMA,CAACA;IACnBA,CAAEA;IAAAA,KAAKA,CAACA,CAACA,CAACA,CAACA,CAATA,CAACA;QACCA,EAAEA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,EAAEA,CAACA,CAACA,CAACA;YACbA,GAAGA,CAACA,CAACA,GAAGA,EAAEA,CAACA;QACfA,CAACA;QAACA,IAAIA,CAACA,CAACA;YACJA,GAAGA,CAACA,CAACA,GAAGA,KAAKA,CAACA;QAClBA,CAACA;IACLA,CAACA;IACDA,IAAAA,CAACA;QACGA,MAAMA,IAAIA,KAAKA,EAAEA,CAACA;IACtBA,CAAEA;IAAAA,KAAKA,CAACA,CAACA,EAAEA,CAACA,CAAVA,CAACA;QACCA,IAAIA,CAACA,GAAGA,EAAEA,CAACA;IACfA,CAACA;YAACA,CAACA;QACCA,CAACA,GAAGA,EAAEA,CAACA;IACXA,CAACA;IACDA,MAAMA,GAAGA,EAAEA,CAACA;QACRA,CAACA,GAAGA,CAACA,CAACA;QACNA,CAACA,GAAGA,EAAEA,CAACA;IACXA,CAACA;IACDA,MAAMA,CAACA,CAACA,GAAGA,CAACA,CAACA,CAACA,CAACA,CAACA;QACZA,KAAKA,CAACA,EAAEA,CAACA;YACLA,CAACA,EAAEA,CAACA;YACJA,KAAKA,CAACA;QAEVA,CAACA;QACDA,KAAKA,CAACA,EAAEA,CAACA;YACLA,CAACA,EAAEA,CAACA;YACJA,KAAKA,CAACA;QAEVA,CAACA;QACDA,SAASA,CAACA;YACNA,CAACA,IAAIA,CAACA,CAACA;YACPA,CAACA,GAAGA,EAAEA,CAACA;YACPA,KAAKA,CAACA;QAEVA,CAACA;IACLA,CAACA;IACDA,OAAOA,CAACA,GAAGA,EAAEA,EAAEA,CAACA;QACZA,CAACA,EAAEA,CAACA;IACRA,CAACA;IACDA,GAAGA,CAACA;QACAA,CAACA,EAAEA,CAACA;IACRA,CAACA,QAAQA,CAACA,GAAGA,CAACA,EAACA;IACfA,CAACA,GAAGA,CAACA,CAACA;IACNA,IAAIA,CAACA,GAAGA,CAACA,CAACA,IAAIA,CAACA,CAACA,GAAGA,CAACA,GAAGA,CAACA,GAAGA,CAACA,GAAGA,CAACA,CAACA;IACjCA,CAACA,CAACA,IAAIA,CAACA,CAACA,GAAGA,CAACA,GAAGA,CAACA,GAAGA,CAACA,GAAGA,CAACA,CAACA;IACzBA,CAACA,KAAKA,CAACA,CAACA;IACRA,CAACA,GAAGA,CAACA,GAAGA,EAAEA,CAACA;IACXA,IAAIA,CAACA,GAAGA,CAACA,CAACA;IACVA,MAAMA,CAACA;AACXA,CAACA;AACD,IAAI,CAAC,GAAG;IACJ,IAAI,CAAC,GAAG,EAAE,CAAC;IACX,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACd,CAAC,CAAC;AACF,CAAC,EAAE,CAAC"} \ No newline at end of file +{"version":3,"file":"sourceMapValidationStatements.js","sourceRoot":"","sources":["sourceMapValidationStatements.ts"],"names":["f"],"mappings":"AAAA,SAAS,CAAC;IACNA,IAAIA,CAACA,CAACA;IACNA,IAAIA,CAACA,GAAGA,CAACA,CAACA;IACVA,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,EAAEA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;QAC1BA,CAACA,IAAIA,CAACA,CAACA;QACPA,CAACA,IAAIA,CAACA,CAACA;IACXA,CAACA;IACDA,EAAEA,CAACA,CAACA,CAACA,GAAGA,EAAEA,CAACA,CAACA,CAACA;QACTA,CAACA,IAAIA,CAACA,CAACA;IACXA,CAACA;IAACA,IAAIA,CAACA,CAACA;QACJA,CAACA,IAAIA,EAAEA,CAACA;QACRA,CAACA,EAAEA,CAACA;IACRA,CAACA;IACDA,IAAIA,CAACA,GAAGA;QACJA,CAACA;QACDA,CAACA;QACDA,CAACA;KACJA,CAACA;IACFA,IAAIA,GAAGA,GAAGA;QACNA,CAACA,EAAEA,CAACA;QACJA,CAACA,EAAEA,OAAOA;KACbA,CAACA;IACFA,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,IAAIA,CAACA,CAACA,CAACA,CAACA;QACdA,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,CAACA,CAACA,CAACA;QACbA,IAAIA,CAACA,GAAGA,EAAEA,CAACA;IACfA,CAACA;IACDA,IAAAA,CAACA;QACGA,GAAGA,CAACA,CAACA,GAAGA,MAAMA,CAACA;IACnBA,CAAEA;IAAAA,KAAKA,CAACA,CAACA,CAACA,CAACA,CAACA,CAACA;QACTA,EAAEA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,EAAEA,CAACA,CAACA,CAACA;YACbA,GAAGA,CAACA,CAACA,GAAGA,EAAEA,CAACA;QACfA,CAACA;QAACA,IAAIA,CAACA,CAACA;YACJA,GAAGA,CAACA,CAACA,GAAGA,KAAKA,CAACA;QAClBA,CAACA;IACLA,CAACA;IACDA,IAAAA,CAACA;QACGA,MAAMA,IAAIA,KAAKA,EAAEA,CAACA;IACtBA,CAAEA;IAAAA,KAAKA,CAACA,CAACA,EAAEA,CAACA,CAACA,CAACA;QACVA,IAAIA,CAACA,GAAGA,EAAEA,CAACA;IACfA,CAACA;YAACA,CAACA;QACCA,CAACA,GAAGA,EAAEA,CAACA;IACXA,CAACA;IACDA,MAAMA,GAAGA,EAAEA,CAACA;QACRA,CAACA,GAAGA,CAACA,CAACA;QACNA,CAACA,GAAGA,EAAEA,CAACA;IACXA,CAACA;IACDA,MAAMA,CAACA,CAACA,GAAGA,CAACA,CAACA,CAACA,CAACA,CAACA;QACZA,KAAKA,CAACA,EAAEA,CAACA;YACLA,CAACA,EAAEA,CAACA;YACJA,KAAKA,CAACA;QAEVA,CAACA;QACDA,KAAKA,CAACA,EAAEA,CAACA;YACLA,CAACA,EAAEA,CAACA;YACJA,KAAKA,CAACA;QAEVA,CAACA;QACDA,SAASA,CAACA;YACNA,CAACA,IAAIA,CAACA,CAACA;YACPA,CAACA,GAAGA,EAAEA,CAACA;YACPA,KAAKA,CAACA;QAEVA,CAACA;IACLA,CAACA;IACDA,OAAOA,CAACA,GAAGA,EAAEA,EAAEA,CAACA;QACZA,CAACA,EAAEA,CAACA;IACRA,CAACA;IACDA,GAAGA,CAACA;QACAA,CAACA,EAAEA,CAACA;IACRA,CAACA,QAAQA,CAACA,GAAGA,CAACA,EAACA;IACfA,CAACA,GAAGA,CAACA,CAACA;IACNA,IAAIA,CAACA,GAAGA,CAACA,CAACA,IAAIA,CAACA,CAACA,GAAGA,CAACA,GAAGA,CAACA,GAAGA,CAACA,GAAGA,CAACA,CAACA;IACjCA,CAACA,CAACA,IAAIA,CAACA,CAACA,GAAGA,CAACA,GAAGA,CAACA,GAAGA,CAACA,GAAGA,CAACA,CAACA;IACzBA,CAACA,KAAKA,CAACA,CAACA;IACRA,CAACA,GAAGA,CAACA,GAAGA,EAAEA,CAACA;IACXA,IAAIA,CAACA,GAAGA,CAACA,CAACA;IACVA,MAAMA,CAACA;AACXA,CAACA;AACD,IAAI,CAAC,GAAG;IACJ,IAAI,CAAC,GAAG,EAAE,CAAC;IACX,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACd,CAAC,CAAC;AACF,CAAC,EAAE,CAAC"} \ No newline at end of file diff --git a/tests/baselines/reference/sourceMapValidationStatements.sourcemap.txt b/tests/baselines/reference/sourceMapValidationStatements.sourcemap.txt index 1a288e3a830..ef7aef275c0 100644 --- a/tests/baselines/reference/sourceMapValidationStatements.sourcemap.txt +++ b/tests/baselines/reference/sourceMapValidationStatements.sourcemap.txt @@ -557,16 +557,16 @@ sourceFile:sourceMapValidationStatements.ts 4 > ( 5 > e 6 > ) -7 > -8 > c +7 > +8 > { 1->Emitted(31, 5) Source(29, 7) + SourceIndex(0) name (f) 2 >Emitted(31, 10) Source(29, 12) + SourceIndex(0) name (f) 3 >Emitted(31, 11) Source(29, 13) + SourceIndex(0) name (f) 4 >Emitted(31, 12) Source(29, 14) + SourceIndex(0) name (f) 5 >Emitted(31, 13) Source(29, 15) + SourceIndex(0) name (f) 6 >Emitted(31, 14) Source(29, 16) + SourceIndex(0) name (f) -7 >Emitted(31, 15) Source(29, 7) + SourceIndex(0) name (f) -8 >Emitted(31, 16) Source(29, 8) + SourceIndex(0) name (f) +7 >Emitted(31, 15) Source(29, 17) + SourceIndex(0) name (f) +8 >Emitted(31, 16) Source(29, 18) + SourceIndex(0) name (f) --- >>> if (obj.z < 10) { 1->^^^^^^^^ @@ -581,7 +581,7 @@ sourceFile:sourceMapValidationStatements.ts 10> ^ 11> ^ 12> ^ -1->atch (e) { +1-> > 2 > if 3 > @@ -759,16 +759,16 @@ sourceFile:sourceMapValidationStatements.ts 4 > ( 5 > e1 6 > ) -7 > -8 > c +7 > +8 > { 1->Emitted(42, 5) Source(38, 7) + SourceIndex(0) name (f) 2 >Emitted(42, 10) Source(38, 12) + SourceIndex(0) name (f) 3 >Emitted(42, 11) Source(38, 13) + SourceIndex(0) name (f) 4 >Emitted(42, 12) Source(38, 14) + SourceIndex(0) name (f) 5 >Emitted(42, 14) Source(38, 16) + SourceIndex(0) name (f) 6 >Emitted(42, 15) Source(38, 17) + SourceIndex(0) name (f) -7 >Emitted(42, 16) Source(38, 7) + SourceIndex(0) name (f) -8 >Emitted(42, 17) Source(38, 8) + SourceIndex(0) name (f) +7 >Emitted(42, 16) Source(38, 18) + SourceIndex(0) name (f) +8 >Emitted(42, 17) Source(38, 19) + SourceIndex(0) name (f) --- >>> var b = e1; 1->^^^^^^^^ @@ -777,7 +777,7 @@ sourceFile:sourceMapValidationStatements.ts 4 > ^^^ 5 > ^^ 6 > ^ -1->atch (e1) { +1-> > 2 > var 3 > b diff --git a/tests/baselines/reference/sourceMapValidationTryCatchFinally.js.map b/tests/baselines/reference/sourceMapValidationTryCatchFinally.js.map index 24b7b84a3d0..89716807538 100644 --- a/tests/baselines/reference/sourceMapValidationTryCatchFinally.js.map +++ b/tests/baselines/reference/sourceMapValidationTryCatchFinally.js.map @@ -1,2 +1,2 @@ //// [sourceMapValidationTryCatchFinally.js.map] -{"version":3,"file":"sourceMapValidationTryCatchFinally.js","sourceRoot":"","sources":["sourceMapValidationTryCatchFinally.ts"],"names":[],"mappings":"AAAA,IAAI,CAAC,GAAG,EAAE,CAAC;AACX,IAAA,CAAC;IACG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACd,CAAE;AAAA,KAAK,CAAC,CAAC,CAAC,CAAC,CAAT,CAAC;IACC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACd,CAAC;QAAC,CAAC;IACC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;AACf,CAAC;AACD,IAAA,CAAC;IAEG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACV,MAAM,IAAI,KAAK,EAAE,CAAC;AACtB,CACA;AAAA,KAAK,CAAC,CAAC,CAAC,CAAC,CAAT,CAAC;IAEG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACd,CAAC;QACD,CAAC;IAEG,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;AACf,CAAC"} \ No newline at end of file +{"version":3,"file":"sourceMapValidationTryCatchFinally.js","sourceRoot":"","sources":["sourceMapValidationTryCatchFinally.ts"],"names":[],"mappings":"AAAA,IAAI,CAAC,GAAG,EAAE,CAAC;AACX,IAAA,CAAC;IACG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACd,CAAE;AAAA,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACT,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACd,CAAC;QAAC,CAAC;IACC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;AACf,CAAC;AACD,IAAA,CAAC;IAEG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACV,MAAM,IAAI,KAAK,EAAE,CAAC;AACtB,CACA;AAAA,KAAK,CAAC,CAAC,CAAC,CAAC,CACT,CAAC;IACG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACd,CAAC;QACD,CAAC;IAEG,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;AACf,CAAC"} \ No newline at end of file diff --git a/tests/baselines/reference/sourceMapValidationTryCatchFinally.sourcemap.txt b/tests/baselines/reference/sourceMapValidationTryCatchFinally.sourcemap.txt index aa0b846ece8..25dee4fbc45 100644 --- a/tests/baselines/reference/sourceMapValidationTryCatchFinally.sourcemap.txt +++ b/tests/baselines/reference/sourceMapValidationTryCatchFinally.sourcemap.txt @@ -91,16 +91,16 @@ sourceFile:sourceMapValidationTryCatchFinally.ts 4 > ( 5 > e 6 > ) -7 > -8 > c +7 > +8 > { 1->Emitted(5, 1) Source(4, 3) + SourceIndex(0) 2 >Emitted(5, 6) Source(4, 8) + SourceIndex(0) 3 >Emitted(5, 7) Source(4, 9) + SourceIndex(0) 4 >Emitted(5, 8) Source(4, 10) + SourceIndex(0) 5 >Emitted(5, 9) Source(4, 11) + SourceIndex(0) 6 >Emitted(5, 10) Source(4, 12) + SourceIndex(0) -7 >Emitted(5, 11) Source(4, 3) + SourceIndex(0) -8 >Emitted(5, 12) Source(4, 4) + SourceIndex(0) +7 >Emitted(5, 11) Source(4, 13) + SourceIndex(0) +8 >Emitted(5, 12) Source(4, 14) + SourceIndex(0) --- >>> x = x - 1; 1->^^^^ @@ -110,7 +110,7 @@ sourceFile:sourceMapValidationTryCatchFinally.ts 5 > ^^^ 6 > ^ 7 > ^ -1->atch (e) { +1-> > 2 > x 3 > = @@ -266,16 +266,17 @@ sourceFile:sourceMapValidationTryCatchFinally.ts 4 > ( 5 > e 6 > ) -7 > -8 > c +7 > + > +8 > { 1->Emitted(15, 1) Source(14, 1) + SourceIndex(0) 2 >Emitted(15, 6) Source(14, 6) + SourceIndex(0) 3 >Emitted(15, 7) Source(14, 7) + SourceIndex(0) 4 >Emitted(15, 8) Source(14, 8) + SourceIndex(0) 5 >Emitted(15, 9) Source(14, 9) + SourceIndex(0) 6 >Emitted(15, 10) Source(14, 10) + SourceIndex(0) -7 >Emitted(15, 11) Source(14, 1) + SourceIndex(0) -8 >Emitted(15, 12) Source(14, 2) + SourceIndex(0) +7 >Emitted(15, 11) Source(15, 1) + SourceIndex(0) +8 >Emitted(15, 12) Source(15, 2) + SourceIndex(0) --- >>> x = x - 1; 1->^^^^ @@ -285,8 +286,7 @@ sourceFile:sourceMapValidationTryCatchFinally.ts 5 > ^^^ 6 > ^ 7 > ^ -1->atch (e) - >{ +1-> > 2 > x 3 > = From 581ef9f2b093ec51a28d2c31a4da654dc5df25ec Mon Sep 17 00:00:00 2001 From: Cyrus Najmabadi Date: Mon, 1 Dec 2014 23:39:44 -0800 Subject: [PATCH 190/195] Remove arrow allocations from the parser in a few places. --- src/compiler/parser.ts | 28 +++++++++++++++------------- 1 file changed, 15 insertions(+), 13 deletions(-) diff --git a/src/compiler/parser.ts b/src/compiler/parser.ts index 553d51b1bd2..4198ad50221 100644 --- a/src/compiler/parser.ts +++ b/src/compiler/parser.ts @@ -3551,7 +3551,7 @@ module ts { case SyntaxKind.StaticKeyword: // When followed by an identifier or keyword, these do not start a statement but // might instead be following type members - if (lookAhead(() => nextToken() >= SyntaxKind.Identifier)) { + if (lookAhead(() => nextToken() >= SyntaxKind.Identifier && !scanner.hasPrecedingLineBreak())) { return false; } default: @@ -3702,12 +3702,16 @@ module ts { property.name = name; property.questionToken = questionToken; property.type = parseTypeAnnotation(); - property.initializer = allowInAnd(() => parseInitializer(/*inParameter*/ false)); + property.initializer = allowInAnd(parseNonParameterInitializer); parseSemicolon(); return finishNode(property); } } + function parseNonParameterInitializer() { + return parseInitializer(/*inParameter*/ false); + } + function parseMemberAccessorDeclaration(kind: SyntaxKind, fullStart: number, modifiers: ModifiersArray): MethodDeclaration { var node = createNode(kind, fullStart); setModifiers(node, modifiers); @@ -3913,11 +3917,11 @@ module ts { function parseEnumMember(): EnumMember { var node = createNode(SyntaxKind.EnumMember, scanner.getStartPos()); node.name = parsePropertyName(); - node.initializer = allowInAnd(() => parseInitializer(/*inParameter*/ false)); + node.initializer = allowInAnd(parseNonParameterInitializer); return finishNode(node); } - function parseAndCheckEnumDeclaration(fullStart: number, modifiers: ModifiersArray, flags: NodeFlags): EnumDeclaration { + function parseEnumDeclaration(fullStart: number, modifiers: ModifiersArray): EnumDeclaration { var node = createNode(SyntaxKind.EnumDeclaration, fullStart); setModifiers(node, modifiers); parseExpected(SyntaxKind.EnumKeyword); @@ -3935,7 +3939,7 @@ module ts { function parseModuleBlock(): ModuleBlock { var node = createNode(SyntaxKind.ModuleBlock, scanner.getStartPos()); if (parseExpected(SyntaxKind.OpenBraceToken)) { - node.statements = parseList(ParsingContext.ModuleElements, /*checkForStrictMode*/ false, parseModuleElement); + node.statements = parseList(ParsingContext.ModuleElements, /*checkForStrictMode*/false, parseModuleElement); parseExpected(SyntaxKind.CloseBraceToken); } else { @@ -3955,20 +3959,19 @@ module ts { return finishNode(node); } - function parseAmbientExternalModuleDeclaration(fullStart: number, modifiers: ModifiersArray, flags: NodeFlags): ModuleDeclaration { + function parseAmbientExternalModuleDeclaration(fullStart: number, modifiers: ModifiersArray): ModuleDeclaration { var node = createNode(SyntaxKind.ModuleDeclaration, fullStart); setModifiers(node, modifiers); - node.flags |= flags; node.name = parseLiteralNode(/*internName:*/ true); node.body = parseModuleBlock(); return finishNode(node); } - function parseModuleDeclaration(fullStart: number, modifiers: ModifiersArray, flags: NodeFlags): ModuleDeclaration { + function parseModuleDeclaration(fullStart: number, modifiers: ModifiersArray): ModuleDeclaration { parseExpected(SyntaxKind.ModuleKeyword); return token === SyntaxKind.StringLiteral - ? parseAmbientExternalModuleDeclaration(fullStart, modifiers, flags) - : parseInternalModuleTail(fullStart, modifiers, flags); + ? parseAmbientExternalModuleDeclaration(fullStart, modifiers) + : parseInternalModuleTail(fullStart, modifiers, modifiers? modifiers.flags : 0); } function isExternalModuleReference() { @@ -4063,7 +4066,6 @@ module ts { } } - var flags = modifiers ? modifiers.flags : 0; switch (token) { case SyntaxKind.VarKeyword: case SyntaxKind.LetKeyword: @@ -4078,9 +4080,9 @@ module ts { case SyntaxKind.TypeKeyword: return parseTypeAliasDeclaration(fullStart, modifiers); case SyntaxKind.EnumKeyword: - return parseAndCheckEnumDeclaration(fullStart, modifiers, flags); + return parseEnumDeclaration(fullStart, modifiers); case SyntaxKind.ModuleKeyword: - return parseModuleDeclaration(fullStart, modifiers, flags); + return parseModuleDeclaration(fullStart, modifiers); case SyntaxKind.ImportKeyword: return parseImportDeclaration(fullStart, modifiers); default: From deca94427c0f160899e4e9bc14ee89fe46f427d6 Mon Sep 17 00:00:00 2001 From: Cyrus Najmabadi Date: Tue, 2 Dec 2014 00:02:15 -0800 Subject: [PATCH 191/195] Reduce arrow function allocations in the parser. --- src/compiler/parser.ts | 411 ++++++++++++++++++++++++----------------- 1 file changed, 245 insertions(+), 166 deletions(-) diff --git a/src/compiler/parser.ts b/src/compiler/parser.ts index 4198ad50221..9397661839d 100644 --- a/src/compiler/parser.ts +++ b/src/compiler/parser.ts @@ -1347,11 +1347,11 @@ module ts { } function parseIdentifierName(): Identifier { - return createIdentifier(token >= SyntaxKind.Identifier); + return createIdentifier(isIdentifierOrKeyword()); } function isLiteralPropertyName(): boolean { - return token >= SyntaxKind.Identifier || + return isIdentifierOrKeyword() || token === SyntaxKind.StringLiteral || token === SyntaxKind.NumericLiteral; } @@ -1439,7 +1439,9 @@ module ts { case ParsingContext.ObjectLiteralMembers: return token === SyntaxKind.OpenBracketToken || token === SyntaxKind.AsteriskToken || isLiteralPropertyName(); case ParsingContext.TypeReferences: - return isIdentifier() && ((token !== SyntaxKind.ExtendsKeyword && token !== SyntaxKind.ImplementsKeyword) || !lookAhead(() => (nextToken(), isIdentifier()))); + // We want to make sure that the "extends" in "extends foo" or the "implements" in + // "implements foo" is not considered a type name. + return isIdentifier() && !isNotHeritageClauseTypeName(); case ParsingContext.VariableDeclarations: case ParsingContext.TypeParameters: return isIdentifier(); @@ -1459,6 +1461,21 @@ module ts { Debug.fail("Non-exhaustive case in 'isListElement'."); } + function nextTokenIsIdentifier() { + nextToken(); + return isIdentifier(); + } + + function isNotHeritageClauseTypeName(): boolean { + if (token === SyntaxKind.ImplementsKeyword || + token === SyntaxKind.ExtendsKeyword) { + + return lookAhead(nextTokenIsIdentifier); + } + + return false; + } + // True if positioned at a list terminator function isListTerminator(kind: ParsingContext): boolean { if (token === SyntaxKind.EndOfFileToken) { @@ -1689,10 +1706,7 @@ module ts { // In the first case though, ASI will not take effect because there is not a // line terminator after the keyword. if (scanner.hasPrecedingLineBreak() && scanner.isReservedWord()) { - var matchesPattern = lookAhead(() => { - nextToken(); - return !scanner.hasPrecedingLineBreak() && (scanner.isIdentifier() || scanner.isReservedWord()); - }); + var matchesPattern = lookAhead(nextTokenIsIdentifierOrKeywordOnSameLine); if (matchesPattern) { // Report that we need an identifier. However, report it right after the dot, @@ -1705,6 +1719,8 @@ module ts { return allowIdentifierNames ? parseIdentifierName() : parseIdentifier(); } + + function parseTokenNode(): T { var node = createNode(token); nextToken(); @@ -1972,58 +1988,62 @@ module ts { return false; } - return lookAhead(() => { - // The only allowed sequence is: - // - // [id: - // - // However, for error recovery, we also check the following cases: - // - // [... - // [id, - // [id?, - // [id?: - // [id?] - // [public id - // [private id - // [protected id - // [] - // - if (nextToken() === SyntaxKind.DotDotDotToken || token === SyntaxKind.CloseBracketToken) { + return lookAhead(isUnambiguouslyIndexSignature); + } + + function isUnambiguouslyIndexSignature() { + // The only allowed sequence is: + // + // [id: + // + // However, for error recovery, we also check the following cases: + // + // [... + // [id, + // [id?, + // [id?: + // [id?] + // [public id + // [private id + // [protected id + // [] + // + nextToken(); + if (token === SyntaxKind.DotDotDotToken || token === SyntaxKind.CloseBracketToken) { + return true; + } + + if (isModifier(token)) { + nextToken(); + if (isIdentifier()) { return true; } + } + else if (!isIdentifier()) { + return false; + } + else { + // Skip the identifier + nextToken(); + } - if (isModifier(token)) { - nextToken(); - if (isIdentifier()) { - return true; - } - } - else if (!isIdentifier()) { - return false; - } - else { - // Skip the identifier - nextToken(); - } + // A colon signifies a well formed indexer + // A comma should be a badly formed indexer because comma expressions are not allowed + // in computed properties. + if (token === SyntaxKind.ColonToken || token === SyntaxKind.CommaToken) { + return true; + } - // A colon signifies a well formed indexer - // A comma should be a badly formed indexer because comma expressions are not allowed - // in computed properties. - if (token === SyntaxKind.ColonToken || token === SyntaxKind.CommaToken) { - return true; - } + // Question mark could be an indexer with an optional property, + // or it could be a conditional expression in a computed property. + if (token !== SyntaxKind.QuestionToken) { + return false; + } - // Question mark could be an indexer with an optional property, - // or it could be a conditional expression in a computed property. - if (token !== SyntaxKind.QuestionToken) { - return false; - } - - // If any of the following tokens are after the question mark, it cannot - // be a conditional expression, so treat it as an indexer. - return nextToken() === SyntaxKind.ColonToken || token === SyntaxKind.CommaToken || token === SyntaxKind.CloseBracketToken; - }); + // If any of the following tokens are after the question mark, it cannot + // be a conditional expression, so treat it as an indexer. + nextToken(); + return token === SyntaxKind.ColonToken || token === SyntaxKind.CommaToken || token === SyntaxKind.CloseBracketToken; } function parseIndexSignatureDeclaration(fullStart: number, modifiers: ModifiersArray): IndexSignatureDeclaration { @@ -2069,15 +2089,19 @@ module ts { case SyntaxKind.OpenBracketToken: // Both for indexers and computed properties return true; default: - return isLiteralPropertyName() && lookAhead(() => - nextToken() === SyntaxKind.OpenParenToken || - token === SyntaxKind.LessThanToken || - token === SyntaxKind.QuestionToken || - token === SyntaxKind.ColonToken || - canParseSemicolon()); + return isLiteralPropertyName() && lookAhead(isTypeMemberWithLiteralPropertyName); } } + function isTypeMemberWithLiteralPropertyName() { + nextToken(); + return token === SyntaxKind.OpenParenToken || + token === SyntaxKind.LessThanToken || + token === SyntaxKind.QuestionToken || + token === SyntaxKind.ColonToken || + canParseSemicolon(); + } + function parseTypeMember(): Declaration { switch (token) { case SyntaxKind.OpenParenToken: @@ -2087,19 +2111,25 @@ module ts { // Indexer or computed property return isIndexSignature() ? parseIndexSignatureDeclaration(scanner.getStartPos(), /*modifiers:*/ undefined) : parsePropertyOrMethod(); case SyntaxKind.NewKeyword: - if (lookAhead(() => nextToken() === SyntaxKind.OpenParenToken || token === SyntaxKind.LessThanToken)) { + if (lookAhead(isStartOfConstructSignature)) { return parseSignatureMember(SyntaxKind.ConstructSignature); } + // fall through. case SyntaxKind.StringLiteral: case SyntaxKind.NumericLiteral: return parsePropertyOrMethod(); default: - if (token >= SyntaxKind.Identifier) { + if (isIdentifierOrKeyword()) { return parsePropertyOrMethod(); } } } + function isStartOfConstructSignature() { + nextToken(); + return token === SyntaxKind.OpenParenToken || token === SyntaxKind.LessThanToken; + } + function parseTypeLiteral(): TypeLiteralNode { var node = createNode(SyntaxKind.TypeLiteral); node.members = parseObjectTypeMembers(); @@ -2187,15 +2217,17 @@ module ts { case SyntaxKind.OpenParenToken: // Only consider '(' the start of a type if followed by ')', '...', an identifier, a modifier, // or something that starts a type. We don't want to consider things like '(1)' a type. - return lookAhead(() => { - nextToken(); - return token === SyntaxKind.CloseParenToken || isStartOfParameter() || isStartOfType(); - }); + return lookAhead(isStartOfParenthesizedOrFunctionType); default: return isIdentifier(); } } + function isStartOfParenthesizedOrFunctionType() { + nextToken(); + return token === SyntaxKind.CloseParenToken || isStartOfParameter() || isStartOfType(); + } + function parseArrayTypeOrHigher(): TypeNode { var type = parseNonArrayType(); while (!scanner.hasPrecedingLineBreak() && parseOptional(SyntaxKind.OpenBracketToken)) { @@ -2224,35 +2256,41 @@ module ts { } function isStartOfFunctionType(): boolean { - return token === SyntaxKind.LessThanToken || token === SyntaxKind.OpenParenToken && lookAhead(() => { + if (token === SyntaxKind.LessThanToken) { + return true; + } + + return token === SyntaxKind.OpenParenToken && lookAhead(isUnambiguouslyStartOfFunctionType); + } + + function isUnambiguouslyStartOfFunctionType() { + nextToken(); + if (token === SyntaxKind.CloseParenToken || token === SyntaxKind.DotDotDotToken) { + // ( ) + // ( ... + return true; + } + if (isIdentifier() || isModifier(token)) { nextToken(); - if (token === SyntaxKind.CloseParenToken || token === SyntaxKind.DotDotDotToken) { - // ( ) - // ( ... + if (token === SyntaxKind.ColonToken || token === SyntaxKind.CommaToken || + token === SyntaxKind.QuestionToken || token === SyntaxKind.EqualsToken || + isIdentifier() || isModifier(token)) { + // ( id : + // ( id , + // ( id ? + // ( id = + // ( modifier id return true; } - if (isIdentifier() || isModifier(token)) { + if (token === SyntaxKind.CloseParenToken) { nextToken(); - if (token === SyntaxKind.ColonToken || token === SyntaxKind.CommaToken || - token === SyntaxKind.QuestionToken || token === SyntaxKind.EqualsToken || - isIdentifier() || isModifier(token)) { - // ( id : - // ( id , - // ( id ? - // ( id = - // ( modifier id + if (token === SyntaxKind.EqualsGreaterThanToken) { + // ( id ) => return true; } - if (token === SyntaxKind.CloseParenToken) { - nextToken(); - if (token === SyntaxKind.EqualsGreaterThanToken) { - // ( id ) => - return true; - } - } } - return false; - }); + } + return false; } function parseType(): TypeNode { @@ -2455,15 +2493,17 @@ module ts { // for now we just check if the next token is an identifier. More heuristics // can be added here later as necessary. We just need to make sure that we // don't accidently consume something legal. - return lookAhead(() => { - nextToken(); - return !scanner.hasPrecedingLineBreak() && isIdentifier(); - }); + return lookAhead(nextTokenIsIdentifierOnSameLine); } return false; } + function nextTokenIsIdentifierOnSameLine() { + nextToken(); + return !scanner.hasPrecedingLineBreak() && isIdentifier() + } + function parseYieldExpression(): YieldExpression { var node = createNode(SyntaxKind.YieldExpression); @@ -2546,66 +2586,9 @@ module ts { // Speculatively look ahead to be sure, and rollback if not. function isParenthesizedArrowFunctionExpression(): Tristate { if (token === SyntaxKind.OpenParenToken || token === SyntaxKind.LessThanToken) { - return lookAhead(() => { - var first = token; - var second = nextToken(); - - if (first === SyntaxKind.OpenParenToken) { - if (second === SyntaxKind.CloseParenToken) { - // Simple cases: "() =>", "(): ", and "() {". - // This is an arrow function with no parameters. - // The last one is not actually an arrow function, - // but this is probably what the user intended. - var third = nextToken(); - switch (third) { - case SyntaxKind.EqualsGreaterThanToken: - case SyntaxKind.ColonToken: - case SyntaxKind.OpenBraceToken: - return Tristate.True; - default: - return Tristate.False; - } - } - - // Simple case: "(..." - // This is an arrow function with a rest parameter. - if (second === SyntaxKind.DotDotDotToken) { - return Tristate.True; - } - - // If we had "(" followed by something that's not an identifier, - // then this definitely doesn't look like a lambda. - // Note: we could be a little more lenient and allow - // "(public" or "(private". These would not ever actually be allowed, - // but we could provide a good error message instead of bailing out. - if (!isIdentifier()) { - return Tristate.False; - } - - // If we have something like "(a:", then we must have a - // type-annotated parameter in an arrow function expression. - if (nextToken() === SyntaxKind.ColonToken) { - return Tristate.True; - } - - // This *could* be a parenthesized arrow function. - // Return Unknown to let the caller know. - return Tristate.Unknown; - } - else { - Debug.assert(first === SyntaxKind.LessThanToken); - - // If we have "<" not followed by an identifier, - // then this definitely is not an arrow function. - if (!isIdentifier()) { - return Tristate.False; - } - - // This *could* be a parenthesized arrow function. - return Tristate.Unknown; - } - }); + return lookAhead(isParenthesizedArrowFunctionExpressionWorker); } + if (token === SyntaxKind.EqualsGreaterThanToken) { // ERROR RECOVERY TWEAK: // If we see a standalone => try to parse it as an arrow function expression as that's @@ -2616,6 +2599,66 @@ module ts { return Tristate.False; } + function isParenthesizedArrowFunctionExpressionWorker() { + var first = token; + var second = nextToken(); + + if (first === SyntaxKind.OpenParenToken) { + if (second === SyntaxKind.CloseParenToken) { + // Simple cases: "() =>", "(): ", and "() {". + // This is an arrow function with no parameters. + // The last one is not actually an arrow function, + // but this is probably what the user intended. + var third = nextToken(); + switch (third) { + case SyntaxKind.EqualsGreaterThanToken: + case SyntaxKind.ColonToken: + case SyntaxKind.OpenBraceToken: + return Tristate.True; + default: + return Tristate.False; + } + } + + // Simple case: "(..." + // This is an arrow function with a rest parameter. + if (second === SyntaxKind.DotDotDotToken) { + return Tristate.True; + } + + // If we had "(" followed by something that's not an identifier, + // then this definitely doesn't look like a lambda. + // Note: we could be a little more lenient and allow + // "(public" or "(private". These would not ever actually be allowed, + // but we could provide a good error message instead of bailing out. + if (!isIdentifier()) { + return Tristate.False; + } + + // If we have something like "(a:", then we must have a + // type-annotated parameter in an arrow function expression. + if (nextToken() === SyntaxKind.ColonToken) { + return Tristate.True; + } + + // This *could* be a parenthesized arrow function. + // Return Unknown to let the caller know. + return Tristate.Unknown; + } + else { + Debug.assert(first === SyntaxKind.LessThanToken); + + // If we have "<" not followed by an identifier, + // then this definitely is not an arrow function. + if (!isIdentifier()) { + return Tristate.False; + } + + // This *could* be a parenthesized arrow function. + return Tristate.Unknown; + } + } + function tryParseSignatureIfArrowOrBraceFollows(): ParsedSignature { return tryParse(() => { // Arrow functions are never generators. @@ -3479,7 +3522,11 @@ module ts { } function isLabel(): boolean { - return isIdentifier() && lookAhead(() => nextToken() === SyntaxKind.ColonToken); + return isIdentifier() && lookAhead(nextTokenIsColonToken); + } + + function nextTokenIsColonToken() { + return nextToken() === SyntaxKind.ColonToken; } function parseLabeledStatement(): LabeledStatement { @@ -3532,7 +3579,7 @@ module ts { // const keyword can precede enum keyword when defining constant enums // 'const enum' do not start statement. // In ES 6 'enum' is a future reserved keyword, so it should not be used as identifier - var isConstEnum = lookAhead(() => nextToken() === SyntaxKind.EnumKeyword); + var isConstEnum = lookAhead(nextTokenIsEnumKeyword); return !isConstEnum; case SyntaxKind.InterfaceKeyword: case SyntaxKind.ClassKeyword: @@ -3551,7 +3598,7 @@ module ts { case SyntaxKind.StaticKeyword: // When followed by an identifier or keyword, these do not start a statement but // might instead be following type members - if (lookAhead(() => nextToken() >= SyntaxKind.Identifier && !scanner.hasPrecedingLineBreak())) { + if (lookAhead(nextTokenIsIdentifierOrKeywordOnSameLine)) { return false; } default: @@ -3559,6 +3606,16 @@ module ts { } } + function nextTokenIsEnumKeyword() { + nextToken(); + return token === SyntaxKind.EnumKeyword + } + + function nextTokenIsIdentifierOrKeywordOnSameLine() { + nextToken(); + return isIdentifierOrKeyword() && !scanner.hasPrecedingLineBreak(); + } + function parseStatement(): Statement { switch (token) { case SyntaxKind.OpenBraceToken: @@ -3817,7 +3874,7 @@ module ts { } // It is very important that we check this *after* checking indexers because // the [ token can start an index signature or a computed property name - if (token >= SyntaxKind.Identifier || token === SyntaxKind.StringLiteral || token === SyntaxKind.NumericLiteral || + if (isIdentifierOrKeyword() || token === SyntaxKind.StringLiteral || token === SyntaxKind.NumericLiteral || token === SyntaxKind.AsteriskToken || token === SyntaxKind.OpenBracketToken) { return parsePropertyMemberDeclaration(fullStart, modifiers); } @@ -3975,14 +4032,12 @@ module ts { } function isExternalModuleReference() { - if (token === SyntaxKind.RequireKeyword) { - return lookAhead(() => { - nextToken(); - return token === SyntaxKind.OpenParenToken; - }); - } + return token === SyntaxKind.RequireKeyword && + lookAhead(nextTokenIsOpenParen); + } - return false; + function nextTokenIsOpenParen() { + return nextToken() === SyntaxKind.OpenParenToken; } function parseImportDeclaration(fullStart: number, modifiers: ModifiersArray): ImportDeclaration { @@ -4039,23 +4094,47 @@ module ts { case SyntaxKind.ImportKeyword: case SyntaxKind.TypeKeyword: // Not true keywords so ensure an identifier follows - return lookAhead(() => nextToken() >= SyntaxKind.Identifier); + return lookAhead(nextTokenIsIdentifierOrKeyword); case SyntaxKind.ModuleKeyword: // Not a true keyword so ensure an identifier or string literal follows - return lookAhead(() => nextToken() >= SyntaxKind.Identifier || token === SyntaxKind.StringLiteral); + return lookAhead(nextTokenIsIdentifierOrKeywordOrStringLiteral); case SyntaxKind.ExportKeyword: // Check for export assignment or modifier on source element - return lookAhead(() => nextToken() === SyntaxKind.EqualsToken || isDeclarationStart()); + return lookAhead(nextTokenIsEqualsTokenOrDeclarationStart); case SyntaxKind.DeclareKeyword: case SyntaxKind.PublicKeyword: case SyntaxKind.PrivateKeyword: case SyntaxKind.ProtectedKeyword: case SyntaxKind.StaticKeyword: // Check for modifier on source element - return lookAhead(() => { nextToken(); return isDeclarationStart(); }); + return lookAhead(nextTokenIsDeclarationStart); } } + function isIdentifierOrKeyword() { + return token >= SyntaxKind.Identifier; + } + + function nextTokenIsIdentifierOrKeyword() { + nextToken(); + return isIdentifierOrKeyword(); + } + + function nextTokenIsIdentifierOrKeywordOrStringLiteral() { + nextToken(); + return isIdentifierOrKeyword() || token === SyntaxKind.StringLiteral; + } + + function nextTokenIsEqualsTokenOrDeclarationStart() { + nextToken(); + return token === SyntaxKind.EqualsToken || isDeclarationStart(); + } + + function nextTokenIsDeclarationStart() { + nextToken(); + return isDeclarationStart(); + } + function parseDeclaration(): ModuleElement { var fullStart = getNodePos(); var modifiers = parseModifiers(); From 8b078c2734f9ce6b4fa3c5f212f966c5c0a27ba0 Mon Sep 17 00:00:00 2001 From: Sheetal Nandi Date: Tue, 2 Dec 2014 08:46:33 -0800 Subject: [PATCH 192/195] baseline change conflict not caught during github merge --- .../reference/conditionalOperatorConditionIsObjectType.types | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/baselines/reference/conditionalOperatorConditionIsObjectType.types b/tests/baselines/reference/conditionalOperatorConditionIsObjectType.types index 7887f71c2c2..f99c591b593 100644 --- a/tests/baselines/reference/conditionalOperatorConditionIsObjectType.types +++ b/tests/baselines/reference/conditionalOperatorConditionIsObjectType.types @@ -180,7 +180,7 @@ condObject.valueOf() ? exprIsObject1 : exprIsObject2; new Date() ? exprString1 : exprBoolean1; // union >new Date() ? exprString1 : exprBoolean1 : string | boolean >new Date() : Date ->Date : { (): string; new (): Date; new (value: number): Date; new (value: string): Date; new (year: number, month: number, date?: number, hours?: number, minutes?: number, seconds?: number, ms?: number): Date; prototype: Date; parse(s: string): number; UTC(year: number, month: number, date?: number, hours?: number, minutes?: number, seconds?: number, ms?: number): number; now(): number; } +>Date : DateConstructor >exprString1 : string >exprBoolean1 : boolean From a6fe980d19c93b8763b00475a1b3e120cc0f3aca Mon Sep 17 00:00:00 2001 From: Cyrus Najmabadi Date: Tue, 2 Dec 2014 13:54:44 -0800 Subject: [PATCH 193/195] Add explanatory comment. Reduce function allocations in the parser. --- src/compiler/parser.ts | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/src/compiler/parser.ts b/src/compiler/parser.ts index 9397661839d..de2d75286dc 100644 --- a/src/compiler/parser.ts +++ b/src/compiler/parser.ts @@ -1395,10 +1395,12 @@ module ts { } function parseContextualModifier(t: SyntaxKind): boolean { - return token === t && tryParse(() => { - nextToken(); - return canFollowModifier(); - }); + return token === t && tryParse(nextTokenCanFollowModifier); + } + + function nextTokenCanFollowModifier() { + nextToken(); + return canFollowModifier(); } function parseAnyContextualModifier(): boolean { @@ -4066,9 +4068,13 @@ module ts { // literals. We check to ensure that it is only a string literal later in the grammar // walker. node.expression = parseExpression(); + + // Ensure the string being required is in our 'identifier' table. This will ensure + // that features like 'find refs' will look inside this file when search for its name. if (node.expression.kind === SyntaxKind.StringLiteral) { internIdentifier((node.expression).text); } + parseExpected(SyntaxKind.CloseParenToken); return finishNode(node); } From a6a7e81de2d27671229d6ed7ce68842f40f974e3 Mon Sep 17 00:00:00 2001 From: Cyrus Najmabadi Date: Tue, 2 Dec 2014 14:05:35 -0800 Subject: [PATCH 194/195] Add failing test. --- ...oduleReferenceDoubleUnderscore1.errors.txt | 22 +++++++++++++++++++ ...xternalModuleReferenceDoubleUnderscore1.js | 19 ++++++++++++++++ ...xternalModuleReferenceDoubleUnderscore1.ts | 16 ++++++++++++++ 3 files changed, 57 insertions(+) create mode 100644 tests/baselines/reference/externalModuleReferenceDoubleUnderscore1.errors.txt create mode 100644 tests/baselines/reference/externalModuleReferenceDoubleUnderscore1.js create mode 100644 tests/cases/compiler/externalModuleReferenceDoubleUnderscore1.ts diff --git a/tests/baselines/reference/externalModuleReferenceDoubleUnderscore1.errors.txt b/tests/baselines/reference/externalModuleReferenceDoubleUnderscore1.errors.txt new file mode 100644 index 00000000000..80e2725d694 --- /dev/null +++ b/tests/baselines/reference/externalModuleReferenceDoubleUnderscore1.errors.txt @@ -0,0 +1,22 @@ +tests/cases/compiler/externalModuleReferenceDoubleUnderscore1.ts(2,29): error TS2307: Cannot find external module '__timezonecomplete/basics'. + + +==== tests/cases/compiler/externalModuleReferenceDoubleUnderscore1.ts (1 errors) ==== + declare module 'timezonecomplete' { + import basics = require("__timezonecomplete/basics"); + ~~~~~~~~~~~~~~~~~~~~~~~~~~~ +!!! error TS2307: Cannot find external module '__timezonecomplete/basics'. + export import TimeUnit = basics.TimeUnit; + } + + declare module '__timezonecomplete/basics' { + export enum TimeUnit { + Second = 0, + Minute = 1, + Hour = 2, + Day = 3, + Week = 4, + Month = 5, + Year = 6, + } + } \ No newline at end of file diff --git a/tests/baselines/reference/externalModuleReferenceDoubleUnderscore1.js b/tests/baselines/reference/externalModuleReferenceDoubleUnderscore1.js new file mode 100644 index 00000000000..f6f9572ba6b --- /dev/null +++ b/tests/baselines/reference/externalModuleReferenceDoubleUnderscore1.js @@ -0,0 +1,19 @@ +//// [externalModuleReferenceDoubleUnderscore1.ts] +declare module 'timezonecomplete' { + import basics = require("__timezonecomplete/basics"); + export import TimeUnit = basics.TimeUnit; +} + +declare module '__timezonecomplete/basics' { + export enum TimeUnit { + Second = 0, + Minute = 1, + Hour = 2, + Day = 3, + Week = 4, + Month = 5, + Year = 6, + } +} + +//// [externalModuleReferenceDoubleUnderscore1.js] diff --git a/tests/cases/compiler/externalModuleReferenceDoubleUnderscore1.ts b/tests/cases/compiler/externalModuleReferenceDoubleUnderscore1.ts new file mode 100644 index 00000000000..1ff020b4919 --- /dev/null +++ b/tests/cases/compiler/externalModuleReferenceDoubleUnderscore1.ts @@ -0,0 +1,16 @@ +declare module 'timezonecomplete' { + import basics = require("__timezonecomplete/basics"); + export import TimeUnit = basics.TimeUnit; +} + +declare module '__timezonecomplete/basics' { + export enum TimeUnit { + Second = 0, + Minute = 1, + Hour = 2, + Day = 3, + Week = 4, + Month = 5, + Year = 6, + } +} \ No newline at end of file From ec17f369a2acd19a18bcd6e63327c36634093eac Mon Sep 17 00:00:00 2001 From: Cyrus Najmabadi Date: Tue, 2 Dec 2014 14:14:57 -0800 Subject: [PATCH 195/195] Find imported external modules that start with double underscores. --- src/compiler/checker.ts | 16 +++++--- ...oduleReferenceDoubleUnderscore1.errors.txt | 22 ----------- ...rnalModuleReferenceDoubleUnderscore1.types | 37 +++++++++++++++++++ 3 files changed, 47 insertions(+), 28 deletions(-) delete mode 100644 tests/baselines/reference/externalModuleReferenceDoubleUnderscore1.errors.txt create mode 100644 tests/baselines/reference/externalModuleReferenceDoubleUnderscore1.types diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index 4fdab0a44a6..9b6af72eb52 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -545,14 +545,18 @@ module ts { return moduleName.substr(0, 2) === "./" || moduleName.substr(0, 3) === "../" || moduleName.substr(0, 2) === ".\\" || moduleName.substr(0, 3) === "..\\"; } - function resolveExternalModuleName(location: Node, moduleExpression: Expression): Symbol { - if (moduleExpression.kind !== SyntaxKind.StringLiteral) { + function resolveExternalModuleName(location: Node, moduleReferenceExpression: Expression): Symbol { + if (moduleReferenceExpression.kind !== SyntaxKind.StringLiteral) { return; } - var moduleLiteral = moduleExpression; + var moduleReferenceLiteral = moduleReferenceExpression; var searchPath = getDirectoryPath(getSourceFile(location).filename); - var moduleName = moduleLiteral.text; + + // Module names are escaped in our symbol table. However, string literal values aren't. + // Escape the name in the "require(...)" clause to ensure we find the right symbol. + var moduleName = escapeIdentifier(moduleReferenceLiteral.text); + if (!moduleName) return; var isRelative = isExternalModuleNameRelative(moduleName); if (!isRelative) { @@ -573,10 +577,10 @@ module ts { if (sourceFile.symbol) { return getResolvedExportSymbol(sourceFile.symbol); } - error(moduleLiteral, Diagnostics.File_0_is_not_an_external_module, sourceFile.filename); + error(moduleReferenceLiteral, Diagnostics.File_0_is_not_an_external_module, sourceFile.filename); return; } - error(moduleLiteral, Diagnostics.Cannot_find_external_module_0, moduleName); + error(moduleReferenceLiteral, Diagnostics.Cannot_find_external_module_0, moduleName); } function getResolvedExportSymbol(moduleSymbol: Symbol): Symbol { diff --git a/tests/baselines/reference/externalModuleReferenceDoubleUnderscore1.errors.txt b/tests/baselines/reference/externalModuleReferenceDoubleUnderscore1.errors.txt deleted file mode 100644 index 80e2725d694..00000000000 --- a/tests/baselines/reference/externalModuleReferenceDoubleUnderscore1.errors.txt +++ /dev/null @@ -1,22 +0,0 @@ -tests/cases/compiler/externalModuleReferenceDoubleUnderscore1.ts(2,29): error TS2307: Cannot find external module '__timezonecomplete/basics'. - - -==== tests/cases/compiler/externalModuleReferenceDoubleUnderscore1.ts (1 errors) ==== - declare module 'timezonecomplete' { - import basics = require("__timezonecomplete/basics"); - ~~~~~~~~~~~~~~~~~~~~~~~~~~~ -!!! error TS2307: Cannot find external module '__timezonecomplete/basics'. - export import TimeUnit = basics.TimeUnit; - } - - declare module '__timezonecomplete/basics' { - export enum TimeUnit { - Second = 0, - Minute = 1, - Hour = 2, - Day = 3, - Week = 4, - Month = 5, - Year = 6, - } - } \ No newline at end of file diff --git a/tests/baselines/reference/externalModuleReferenceDoubleUnderscore1.types b/tests/baselines/reference/externalModuleReferenceDoubleUnderscore1.types new file mode 100644 index 00000000000..e255e64d467 --- /dev/null +++ b/tests/baselines/reference/externalModuleReferenceDoubleUnderscore1.types @@ -0,0 +1,37 @@ +=== tests/cases/compiler/externalModuleReferenceDoubleUnderscore1.ts === +declare module 'timezonecomplete' { + import basics = require("__timezonecomplete/basics"); +>basics : typeof basics + + export import TimeUnit = basics.TimeUnit; +>TimeUnit : typeof basics.TimeUnit +>basics : typeof basics +>TimeUnit : basics.TimeUnit +} + +declare module '__timezonecomplete/basics' { + export enum TimeUnit { +>TimeUnit : TimeUnit + + Second = 0, +>Second : TimeUnit + + Minute = 1, +>Minute : TimeUnit + + Hour = 2, +>Hour : TimeUnit + + Day = 3, +>Day : TimeUnit + + Week = 4, +>Week : TimeUnit + + Month = 5, +>Month : TimeUnit + + Year = 6, +>Year : TimeUnit + } +}